Timeline



Dec 13, 2019:

10:37 PM Changeset in webkit [253521] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Nullptr crash if SVG element if element parent becomes document node
https://bugs.webkit.org/show_bug.cgi?id=205217

Patch by Sunny He <sunny_he@apple.com> on 2019-12-13
Reviewed by Ryosuke Niwa.

Test: svg/dom/replaceChild-document-crash.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation const):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::layout):

8:34 PM Changeset in webkit [253520] by ysuzuki@apple.com
  • 23 edits
    3 adds
    2 deletes in trunk

[JSC] Remove JSFixedArray, and use JSImmutableButterfly instead
https://bugs.webkit.org/show_bug.cgi?id=204402

Reviewed by Mark Lam.

JSTests:

  • stress/new-array-with-spread-cow-double.js: Added.

(shouldBe):
(shouldBeArray):
(test):

  • stress/new-array-with-spread-cow-int.js: Added.

(shouldBe):
(shouldBeArray):
(test):

  • stress/new-array-with-spread-cow.js: Added.

(shouldBe):
(shouldBeArray):
(test):

Source/JavaScriptCore:

This patch removes JSFixedArray, and use JSImmutableButterfly instead. JSFixedArray can be replaced by
JSImmutableButterfly with Contiguous shape. And further, we can create an array from JSImmutableButterfly
generated by Spread node in NewArrayBufferWithSpread.

Currently, we are always creating contiguous JSImmutableButterfly from Spread. If it takes contiguous CoW
array, we can reuse JSImmutableButterfly of the input. But if it is CoW and not contiguous shape (like,
CopyOnWriteArrayWithInt32), we create a JSImmutableButterfly and copy it to this new butterfly. We can
extend it to accept non-contiguous JSImmutableButterfly in the future.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecompiler/BytecodeGenerator.cpp:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
(JSC::DFG::SpeculativeJIT::compileObjectKeys):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::toButterfly):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • interpreter/Interpreter.cpp:

(JSC::sizeOfVarargs):
(JSC::loadVarargs):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSCast.h:
  • runtime/JSFixedArray.cpp: Removed.
  • runtime/JSFixedArray.h: Removed.
  • runtime/JSImmutableButterfly.h:

(JSC::JSImmutableButterfly::createFromArray):
(JSC::JSImmutableButterfly::offsetOfPublicLength):
(JSC::JSImmutableButterfly::offsetOfVectorLength):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
7:12 PM Changeset in webkit [253519] by beidson@apple.com
  • 33 edits in trunk/Source

Refactor ScriptController's proliferation of ExceptionDetails*.
https://bugs.webkit.org/show_bug.cgi?id=205151

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Refactor, no behavior change).

There's so many ExceptionDetails* null pointers being passed around in the ScriptController
family of functions.

Let's make it a little more explicit which callers get exceptions and which don't.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::execute):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorldIgnoringException):
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::evaluateIgnoringException):
(WebCore::ScriptController::executeScriptInWorldIgnoringException):
(WebCore::ScriptController::executeScriptInWorld):
(WebCore::ScriptController::executeUserAgentScriptInWorld):
(WebCore::ScriptController::executeScriptIgnoringException):
(WebCore::ScriptController::executeIfJavaScriptURL):
(WebCore::ScriptController::evaluate): Deleted.
(WebCore::ScriptController::executeScript): Deleted.

  • bindings/js/ScriptController.h:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):

  • dom/Document.cpp:

(WebCore::Document::ensurePlugInsInjectedScript):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeClassicScript):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::evaluateAsBoolean):
(WebCore::InspectorFrontendClientLocal::evaluateOnLoad):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::didDecide):

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

  • xml/XMLTreeViewer.cpp:

(WebCore::XMLTreeViewer::transformDocumentToTreeView):

Source/WebKit:

  • UIProcess/API/C/WKPage.cpp:

(WKPageRunJavaScriptInMainFrame):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _evaluateJavaScript:forceUserGesture:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld):
(WebKit::WebPageProxy::runJavaScriptInFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performJavaScriptURLRequest):

  • WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp:

(WebKit::WebInspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateQueuedExpressions):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::save):
(WebInspectorFrontendClient::append):

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):

  • WebView/WebView.mm:

(-[WebView aeDescByEvaluatingJavaScriptFromString:]):

Source/WebKitLegacy/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::performRequest):

  • WebFrame.cpp:

(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):

  • WebView.cpp:

(WebView::stringByEvaluatingJavaScriptFromString):

6:10 PM Changeset in webkit [253518] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the macCatalyst build after r253486

Replace the #elif with an #else, so that the codepath is compiled on non-iOS (but iOS-family) platforms such as
watchOS and macCatalyst.

  • TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:

(readMarkupFromPasteboard):

6:08 PM Changeset in webkit [253517] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Structure should have a bloom filter of seen identifiers
https://bugs.webkit.org/show_bug.cgi?id=205182

Reviewed by Yusuke Suzuki and Tadeu Zagallo.

This patch adds a bloom filter of seen identifiers to Structure. This usually allows
us to quickly determine if a Structure *has not* seen a particular property. Based
on some logging I added in JetStream2 and Speedometer2, 70% of calls to Structure::get
result in us returning invalidOffset (e.g, the property does not exist). This patch
allows that path to be even faster. This bloom filter is just modeling what goes inside
Structure's property table. For that reason, we don't need to consider things inside
the static property table. We reason about the static property table inside JSObject's
property lookup.

This patch appears to be a 0.5% progression on Speedometer2.

  • runtime/Structure.cpp:

(JSC::Structure::Structure):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::get):
(JSC::Structure::add):

5:52 PM Changeset in webkit [253516] by eric.carlson@apple.com
  • 16 edits in trunk/Source

Add remote media player message to load and play
https://bugs.webkit.org/show_bug.cgi?id=205220
<rdar://problem/57927486>

Reviewed by Jer Noble.
Source/WebCore:

No new tests. Tested manually because it is not possible to test on a bot yet.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::loadWithNextMediaEngine): Call the new method prepareForPlayback
instead of making four calls to set properties on a new player.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::load): Add a load variant that takes a URL,
contentType, and keySystem.
(WebCore::MediaPlayerPrivateInterface::prepareForPlayback):

Source/WebKit:

Add WP -> GPU process messages: PrepareForPlayback, Load, CancelLoad, Play, Pause,
SetVolume, and SetMuted
Add GPUP -> WP message: PlaybackStateChanged

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerManagerProxy::load):
(WebKit::RemoteMediaPlayerManagerProxy::cancelLoad):
(WebKit::RemoteMediaPlayerManagerProxy::play):
(WebKit::RemoteMediaPlayerManagerProxy::pause):
(WebKit::RemoteMediaPlayerManagerProxy::setVolume):
(WebKit::RemoteMediaPlayerManagerProxy::setMuted):
(WebKit::RemoteMediaPlayerManagerProxy::logChannel const):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:

(WebKit::RemoteMediaPlayerManagerProxy::gpuConnectionToWebProcess const):
(WebKit::RemoteMediaPlayerManagerProxy::webProcessConnection const): Deleted.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::load):
(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::cancelLoad):
(WebKit::RemoteMediaPlayerProxy::play):
(WebKit::RemoteMediaPlayerProxy::pause):
(WebKit::RemoteMediaPlayerProxy::setVolume):
(WebKit::RemoteMediaPlayerProxy::setMuted):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerVolumeChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMuteChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerTimeChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDurationChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRateChanged):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveMessage):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::cancelLoad):
(WebKit::MediaPlayerPrivateRemote::play):
(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::setVolumeDouble):
(WebKit::MediaPlayerPrivateRemote::setMuted):
(WebKit::MediaPlayerPrivateRemote::muteChanged):
(WebKit::MediaPlayerPrivateRemote::timeChanged):
(WebKit::MediaPlayerPrivateRemote::playbackStateChanged):
(WebKit::MediaPlayerPrivateRemote::paused const): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::RemoteMediaPlayerManager):
(WebKit::RemoteMediaPlayerManager::~RemoteMediaPlayerManager):
(WebKit::RemoteMediaPlayerManager::playbackStateChanged):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:

(WebKit::RemoteMediaPlayerManager::didReceiveMessageFromWebProcess):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in:
5:51 PM Changeset in webkit [253515] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix bad exception assertion in ExceptionHelpers.cpp's createError().
https://bugs.webkit.org/show_bug.cgi?id=205230
<rdar://problem/57875688>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/test-exception-assert-in-ExceptionHelpers-createError.js: Added.

Source/JavaScriptCore:

The code in createError() was doing the following:

String valueDescription = errorDescriptionForValue(globalObject, value);

EXCEPTION_ASSERT(scope.exception()
!!valueDescription);

if (!valueDescription) {

scope.clearException();
return createOutOfMemoryError(globalObject);

}

If errorDescriptionForValue() throws an exception, then we expect the
valueDescription string to be null so that we can throw an OutOfMemoryError.
However, errorDescriptionForValue() can detect an imminent overflow in String
length and just return a null string without throwing an exception which fails
the above assertion.

The fix is to simply do an explicit exception check in addition to the null string
check and remove the assertion.

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):

5:39 PM Changeset in webkit [253514] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[macOS] Swipe gesture snapshot stays too long if provisional load has not started yet when endSwipeGesture() is called
https://bugs.webkit.org/show_bug.cgi?id=205206

Reviewed by Tim Horton.

Swipe gesture snapshot stays too long if provisional load has not started yet when endSwipeGesture() is called on macOS.
This is because the SnapshotRemovalTracker::eventOccurred() calls get ignored while the SnapshotRemovalTracker is paused
and the SnapshotRemovalTracker only gets unpaused once the provisional load has started. The idea is that we should ignore
any events from a previous navigation. However, the SwipeGestureEnd event is a UI-side event fired by the
ViewGestureController itself, so there is reason to ignore it. Since we ask the WebContent process to do the load in
willEndSwipeGesture(), it is possible that the provisional load has not started yet by the time endSwipeGesture() is
called. In such case, the SwipeGestureEnd event would get ignored and we would keep the snapshot until the timeout.

  • UIProcess/ViewGestureController.cpp:

(WebKit::stopWaitingForEvent):
(WebKit::ViewGestureController::SnapshotRemovalTracker::eventOccurred):
(WebKit::ViewGestureController::endSwipeGesture):
(WebKit::ViewGestureController::SnapshotRemovalTracker::stopWaitingForEvent): Deleted.

  • UIProcess/ViewGestureController.h:
5:36 PM Changeset in webkit [253513] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ANGLE: fix blending with alpha:false context
https://bugs.webkit.org/show_bug.cgi?id=205218

Fixes WebGL conformance test context-hidden-alpha.html.

Patch by James Darpinian <James Darpinian> on 2019-12-13
Reviewed by Alex Christensen.

  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):

Specify internalformat GL_RGB instead of GL_BGRA_EXT when alpha is disabled.

5:20 PM Changeset in webkit [253512] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add an option to run_webkit_tests.py to enable all GPU process related features and choose the additional expectations
https://bugs.webkit.org/show_bug.cgi?id=205214

The option also specifies the result-report-flavor.

Patch by Peng Liu <Peng Liu> on 2019-12-13
Reviewed by Tim Horton.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

5:20 PM Changeset in webkit [253511] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed 32-bit build fix: explicitly cast the bitrate to an int when creating a JSON
object for logging purposes.

  • platform/mediacapabilities/MediaCapabilitiesLogging.cpp:

(WebCore::toJSONObject):

5:10 PM Changeset in webkit [253510] by Alan Coon
  • 1 copy in tags/Safari-609.1.11.4

Tag Safari-609.1.11.4.

5:08 PM Changeset in webkit [253509] by Alan Coon
  • 7 edits in branches/safari-609.1.11.4-branch/Source

Versioning.

5:05 PM Changeset in webkit [253508] by Alan Coon
  • 1 edit in tags/Safari-609.1.12/Source/WebCore/platform/graphics/cocoa/GraphicsContext3DCocoa.mm

Unreviewed build fix. rdar://problem/57925932

4:56 PM Changeset in webkit [253507] by Alan Coon
  • 1 copy in branches/safari-609.1.11.4-branch

New branch.

4:56 PM Changeset in webkit [253506] by dino@apple.com
  • 1 edit in trunk/Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

Build fix for WebCoreTestSupport.

  • Configurations/WebCoreTestSupport.xcconfig:
4:35 PM CommitterTips edited by Alexey Shvayka
Add webkit-changes mailing list (diff)
4:33 PM Changeset in webkit [253505] by Alan Coon
  • 1 copy in tags/Safari-609.1.11.3

Tag Safari-609.1.11.3.

3:42 PM Changeset in webkit [253504] by Alan Coon
  • 18 edits
    1 delete in tags/Safari-609.1.12/Source

Apply patch. rdar://problem/57925932

3:30 PM Changeset in webkit [253503] by Alexey Shvayka
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
3:13 PM Changeset in webkit [253502] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Add MESSAGE_CHECK() for selectedIndex in Messages::WebPageProxy::ShowPopupMenu
<https://webkit.org/b/205177>
<rdar://problem/57337872>

Reviewed by Chris Dumez.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showPopupMenu): Add MESSAGE_CHECK() to
validate the selectedIndex parameter, which must be -1 to
select no items, or a valid zero-based index into items.

2:38 PM Changeset in webkit [253501] by commit-queue@webkit.org
  • 5 edits in trunk

Allow cross-origin requests to WKURLSchemeHandlers
https://bugs.webkit.org/show_bug.cgi?id=205198
<rdar://problem/57897836>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-13
Reviewed by Brady Eidson.

Source/WebKit:

Covered by an API test.

  • UIProcess/API/Cocoa/WKURLSchemeTask.h:

Document the requirements for cross-origin requests.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::registerURLSchemeHandler):
When we register a scheme handler, allow cross origin resources for that scheme.
This will make the check in DocumentThreadableLoader::checkURLSchemeAsCORSEnabled allow the request to get to the WKURLSchemeHandler.
The resposne must still have CORS header fields in order for the data to get to the web content, like CORS with HTTP.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

Verify that a cross origin request is received by the WKURLSchemeHandler. It was not before.
Verify that loading will fail unless there are CORS headers in the response.

2:37 PM Changeset in webkit [253500] by sbarati@apple.com
  • 5 edits in trunk/Source

Add a Heap::finalize function that takes WTF::Function<void()>
https://bugs.webkit.org/show_bug.cgi?id=205211

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::addFinalizer):
(JSC::Heap::FinalizerOwner::finalize):

  • heap/Heap.h:

Source/WTF:

  • wtf/Function.h:

(WTF::Function<Out):

2:35 PM Changeset in webkit [253499] by dino@apple.com
  • 6 edits in trunk/Source

MacCatalyst build of libANGLE is installed in the incorrect location
https://bugs.webkit.org/show_bug.cgi?id=205219
<rdar://problem/57713353>

Reviewed by Simon Fraser.

Source/ThirdParty/ANGLE:

Rename libANGLE.dylib into libANGLE-shared.dylib, so we can
avoid accidentally trying to link to the libANGLE.a that was
removed recently (but still exists in the SDK for now).

Also, make sure that we install into the correct location for
a Catalyst build.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE.xcconfig:
  • Configurations/Base.xcconfig:

Source/WebCore:

The location that WebCore was looking for embedded libraries was
incorrect for Catalyst builds. We never noticed because until now
there were no embedded libraries, and local builds all go into
the same location so this would only happen on Production builds.

Also, libANGLE became libANGLE-shared.

  • Configurations/WebCore.xcconfig: Link with libANGLE's new name, and

look in the correct directory.

1:46 PM Changeset in webkit [253498] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[watchOS] Apple.com is rendered in Times New Roman
https://bugs.webkit.org/show_bug.cgi?id=205179
<rdar://problem/57233936>

Reviewed by Tim Horton.

Source/WebCore:

We should just make watchOS use the same font lookup attributes as iOS and macOS.

Test: fast/text/smiley-local-font-src.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::fontForPostScriptName):

LayoutTests:

  • fast/text/smiley-local-font-src-expected.html: Added.
  • fast/text/smiley-local-font-src.html: Added.
1:36 PM Changeset in webkit [253497] by Chris Dumez
  • 59 edits
    2 copies in trunk

Implement PostMessageOptions for postMessage
https://bugs.webkit.org/show_bug.cgi?id=191028

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that we have more passes.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
  • web-platform-tests/html/browsers/windows/document-access/document_access_parent_access.tentative-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-frozen.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt:
  • web-platform-tests/webmessaging/message-channels/dictionary-transferrable-expected.txt:
  • web-platform-tests/webmessaging/message-channels/user-activation.tentative-expected.txt:
  • web-platform-tests/webmessaging/postMessage_MessagePorts_xsite.sub.window-expected.txt:
  • web-platform-tests/webmessaging/with-options/host-specific-origin-expected.txt:
  • web-platform-tests/webmessaging/with-options/message-channel-transferable-expected.txt:
  • web-platform-tests/webmessaging/with-options/no-target-origin-expected.txt:
  • web-platform-tests/webmessaging/with-options/null-transfer-expected.txt:
  • web-platform-tests/webmessaging/with-options/one-arg-expected.txt:
  • web-platform-tests/webmessaging/with-options/slash-origin-expected.txt:
  • web-platform-tests/webmessaging/with-options/undefined-transferable-expected.txt:
  • web-platform-tests/webmessaging/with-options/unknown-parameter-expected.txt:
  • web-platform-tests/webmessaging/without-ports/008-expected.txt:
  • web-platform-tests/webmessaging/worker_postMessage_user_activation.tentative-expected.txt:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary-expected.txt:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-expected.txt:

Source/WebCore:

Implement PostMessageOptions dictionary parameter for postMessage:

Blink and Gecko already support this.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::postMessage):

  • dom/MessagePort.h:
  • dom/MessagePort.idl:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):

  • page/DOMWindow.h:

(WebCore::WindowPostMessageOptions::WindowPostMessageOptions):

  • page/DOMWindow.idl:
  • page/PostMessageOptions.h: Copied from Source/WebCore/workers/service/ServiceWorkerClient.idl.

(WebCore::PostMessageOptions::PostMessageOptions):

  • page/PostMessageOptions.idl: Copied from Source/WebCore/workers/service/ServiceWorkerClient.idl.
  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::postMessage):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.cpp:

(WebCore::Worker::postMessage):

  • workers/Worker.h:
  • workers/Worker.idl:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::postMessage):

  • workers/service/ServiceWorkerClient.h:
  • workers/service/ServiceWorkerClient.idl:

LayoutTests:

Update a few existing tests due to the behavior change.

  • TestExpectations:
  • fast/dom/Window/post-message-crash.html:
  • fast/events/message-port-multi-expected.txt:
  • fast/events/resources/message-port-multi.js:
  • fast/workers/resources/worker-context-thread-multi-port.js:
  • fast/workers/resources/worker-multi-port.js:
  • fast/workers/worker-multi-port-expected.txt:
  • http/tests/security/postMessage/target-origin-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
1:31 PM Changeset in webkit [253496] by cturner@igalia.com
  • 2 edits in trunk/LayoutTests

[GStreamer][EME] Update expectation for media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html
https://bugs.webkit.org/show_bug.cgi?id=205215

Unreviewed gardening.

  • platform/gtk/TestExpectations: Update bug URL to new failure reason.
1:22 PM Changeset in webkit [253495] by Wenson Hsieh
  • 7 edits in trunk/Source

Implement encoding/decoding for DisplayList::DrawNativeImage
https://bugs.webkit.org/show_bug.cgi?id=205200

Reviewed by Simon Fraser.

Source/WebCore:

Implements basic encoding and decoding for the DrawNativeImage drawing item, such that it can be sent and
replayed in the GPU process. See WebKit ChangeLogs for more details. Eventually, we should avoid calling into
drawNativeImage in the web process altogether, but for now, both DrawNativeImage and DrawImage drawing items
rely on drawing native images into ImageBuffers. See: <https://webkit.org/b/205213>.

  • platform/graphics/NativeImage.h:

Add a NativeImageHandle wrapper around a NativeImagePtr to make it simpler to decode and encode NativeImagePtrs
using << and >> operators.

  • platform/graphics/displaylists/DisplayListItems.cpp:
  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::encode const):
(WebCore::DisplayList::DrawNativeImage::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

Source/WebKit:

Add helper functions to encode and decode NativeImagePtr (RetainPtr<CGImageRef> on Cocoa platforms). This
mirrors the implementation of encoding and decoding for WebCore::Image, which create and draws into
ShareableBitmap, and send a handle to the data over IPC.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeImage):
(IPC::decodeImage):
(IPC::encodeNativeImage):
(IPC::decodeNativeImage):

Additionally make Image and NativeImagePtr encoding and decoding helpers fail quickly in the case where the
ShareableBitmap failed to create a graphics context by having the encoder indicate whether a graphics context
was created, and having the decoder fail if the graphics context could not be created.

(IPC::encodeOptionalNativeImage):
(IPC::decodeOptionalNativeImage):
(IPC::ArgumentCoder<NativeImageHandle>::encode):
(IPC::ArgumentCoder<NativeImageHandle>::decode):

  • Shared/WebCoreArgumentCoders.h:
12:49 PM Changeset in webkit [253494] by youenn@apple.com
  • 11 edits in trunk

Add support for WebIDL set-like forEach
https://bugs.webkit.org/show_bug.cgi?id=204847

Reviewed by Chris Dumez.

Source/WebCore:

Add support to setlike forEach as done for maplike.
Covered by rebased binding tests and updated layout test.

  • bindings/js/JSDOMBindingInternals.js:

(forEachWrapper):

  • bindings/js/JSDOMMapLike.cpp:

(WebCore::forwardForEachCallToBackingMap):

  • bindings/js/JSDOMSetLike.cpp:

(WebCore::DOMSetAdapter::clear):
(WebCore::forwardForEachCallToBackingSet):

  • bindings/js/JSDOMSetLike.h:

(WebCore::DOMSetAdapter::add):
(WebCore::getAndInitializeBackingSet):
(WebCore::forwardSizeToSetLike):
(WebCore::forwardEntriesToSetLike):
(WebCore::forwardKeysToSetLike):
(WebCore::forwardValuesToSetLike):
(WebCore::forwardForEachToSetLike):
(WebCore::forwardClearToSetLike):
(WebCore::forwardHasToSetLike):
(WebCore::forwardAddToSetLike):
(WebCore::forwardDeleteToSetLike):

  • bindings/scripts/IDLParser.pm:

(parseSetLikeProperties):

  • bindings/scripts/test/JS/JSReadOnlySetLike.cpp:

(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEach):

  • bindings/scripts/test/JS/JSSetLike.cpp:

(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionForEach):

LayoutTests:

  • js/dom/maplike.html:
  • js/dom/setlike.html:
12:38 PM Changeset in webkit [253493] by Chris Dumez
  • 10 edits in trunk

REGRESSION: (r251677) imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205164
<rdar://problem/57879042>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that they are passing.

  • web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-expected.txt:

Source/WebCore:

Submitting a form should cancel any pending navigation scheduled by a previous submission of this form:

No new tests, rebaselined existing tests.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit):

  • html/HTMLFormElement.h:
  • loader/FormSubmission.h:

(WebCore::FormSubmission::cancel):
(WebCore::FormSubmission::wasCancelled const):

  • loader/NavigationScheduler.cpp:

LayoutTests:

Unskip test that should no longer be flaky.

  • platform/mac/TestExpectations:
11:37 AM Changeset in webkit [253492] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Source/ThirdParty/ANGLE

Revert r253333. rdar://problem/57713353

11:37 AM Changeset in webkit [253491] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Source/ThirdParty/ANGLE

Revert r253383. rdar://problem/57713353

11:31 AM Changeset in webkit [253490] by Devin Rousso
  • 4 edits in trunk/Tools

Teach prepare-ChangeLog about JavaScript async functions
https://bugs.webkit.org/show_bug.cgi?id=205195

Reviewed by Jonathan Bedard.

  • Scripts/prepare-ChangeLog:

(get_function_line_ranges_for_javascript):

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/javascript_unittests.js:

(AsyncFuncClass): Added.
(AsyncFuncClass.async staticAsync): Added.
(AsyncFuncClass.prototype.async methodAsync): Added.
(AsyncFuncClass.prototype.async get getAsync): Added.
(AsyncFuncClass.prototype.async set setAsync): Added.
(async asyncFunc1): Added.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/javascript_unittests-expected.txt:
11:18 AM Changeset in webkit [253489] by wilander@apple.com
  • 5 edits
    3 adds in trunk

IsLoggedIn: Abstract data type for IsLoggedIn state
https://bugs.webkit.org/show_bug.cgi?id=205041
<rdar://problem/56723904>

Reviewed by Chris Dumez.

Source/WebCore:

New API tests added.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/LoggedInStatus.cpp: Added.

(WebCore::LoggedInStatus::create):
(WebCore::LoggedInStatus::LoggedInStatus):
(WebCore::LoggedInStatus::setTimeToLive):
(WebCore::LoggedInStatus::hasExpired const):
(WebCore::LoggedInStatus::expiry const):

  • page/LoggedInStatus.h: Added.

(WebCore::LoggedInStatus::registrableDomain const):
(WebCore::LoggedInStatus::username const):
(WebCore::LoggedInStatus::credentialTokenType const):
(WebCore::LoggedInStatus::authenticationType const):
(WebCore::LoggedInStatus::loggedInTime const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/LoggedInStatus.cpp: Added.

(TestWebKitAPI::TEST):

11:07 AM Changeset in webkit [253488] by pvollan@apple.com
  • 11 edits
    4 adds in trunk

[iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=205134
<rdar://problem/56984257>

Reviewed by Brent Fulgham.

Source/WebCore:

Add method to Internals checking mach lookup access to a given XPC service name.

Test: fast/sandbox/ios/sandbox-mach-lookup.html

  • testing/Internals.cpp:

(WebCore::Internals::hasSandboxMachLookupAccessToXPCServiceName):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Remove mach lookup access to "*.apple-extension-service" in the sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

Source/WTF:

Add enum value for the XPC service name filter type.

  • wtf/spi/darwin/SandboxSPI.h:

LayoutTests:

Add test for mach lookup access to "*.apple-extension-service".

  • TestExpectations:
  • fast/sandbox: Added.
  • fast/sandbox/ios: Added.
  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt: Added.
  • fast/sandbox/ios/sandbox-mach-lookup.html: Added.
  • platform/ios-device-wk2/TestExpectations:
10:58 AM Changeset in webkit [253487] by youenn@apple.com
  • 7 edits in trunk

Help debugging flaky http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html
https://bugs.webkit.org/show_bug.cgi?id=205209

Reviewed by Chris Dumez.

Source/WebKit:

Add a bunch of asserts that no pending activity is happening in the Cache Storage backend is happening
when querying the backend representation, which is a debug tool.
No change of behavior.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::representation):

  • NetworkProcess/cache/CacheStorageEngineCache.h:

(WebKit::CacheStorage::Cache::hasPendingOpeningCallbacks const):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::appendRepresentation const):

LayoutTests:

In case of error, query the cache representation.
This will help debugging the flaky tests and ensure that no pending activity is happening in error cases.

  • http/tests/cache-storage/page-cache-domcache-pending-promise.html:
  • http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html:
10:39 AM Changeset in webkit [253486] by Wenson Hsieh
  • 14 edits
    4 adds in trunk

[Clipboard API] Sanitize HTML and image data written using clipboard.write
https://bugs.webkit.org/show_bug.cgi?id=205188
<rdar://problem/57612968>

Reviewed by Darin Adler.

Source/WebCore:

Sanitizes HTML ("text/html") and image ("image/png") content when writing to the platform pasteboard using the
clipboard API. See below for more details.

Tests: editing/async-clipboard/sanitize-when-reading-markup.html

editing/async-clipboard/sanitize-when-writing-image.html
ClipboardTests.WriteSanitizedMarkup

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):

Add a new helper method to sanitize m_data after loading finishes, but before invoking the completion handler
to notify the data source about the clipboard data. Currently, we support writing "text/plain", "text/uri-list",
"text/html" and "image/png"; we sanitize HTML by stripping away hidden content such as comments, script, and
event listeners, and sanitize image data by painting it into a new graphics context and re-encoding the rendered
contents as an image.

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::invokeCompletionHandler):

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.h:
  • platform/PlatformPasteboard.h:
  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::cocoaTypeToImageType):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::platformPasteboardTypeForSafeTypeForDOMToReadAndWrite):

Adjust these helpers to map "image/png" to the platform PNG type on iOS ("public.png"). The extra
IncludeImageTypes argument was added to avoid considering "image/png" a web-safe type for writing and reading
when exercising DataTransfer APIs, which currently don't support reading the "image/png" MIME type. In the
future, we should consider adding support for image sanitization when using DataTransfer.setData or
DataTransferItemList.add, and then remove this flag.

(WebCore::createItemProviderRegistrationList):

  • platform/mac/LegacyNSPasteboardTypes.h:

Add an entry for legacyPNGPasteboardType on macOS, and replace one use of it in PasteboardCocoa.mm.

(WebCore::legacyPNGPasteboardType):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::write):
(WebCore::PlatformPasteboard::platformPasteboardTypeForSafeTypeForDOMToReadAndWrite):

Likewise, map "image/png" to legacyPNGPasteboardType() on macOS, which was added above.

(WebCore::createPasteboardItem):

Tools:

Adds an API test to verify that the markup written to the platform pasteboard on macOS and iOS is sanitized, and
does not contain hidden content, such as script elements.

  • TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:

(-[TestWKWebView writeString:toClipboardWithType:]):
(readMarkupFromPasteboard):

  • TestWebKitAPI/Tests/WebKitCocoa/clipboard.html:

LayoutTests:

  • editing/async-clipboard/sanitize-when-reading-markup-expected.txt: Added.
  • editing/async-clipboard/sanitize-when-reading-markup.html: Added.

Add a test to verify that markup is sanitized when copying and pasting across different security origins.

  • editing/async-clipboard/sanitize-when-writing-image-expected.txt: Added.
  • editing/async-clipboard/sanitize-when-writing-image.html: Added.

Add a test to verify that "image/png" data is sanitized, and one or more written image data that cannot be
decoded results in the promise being rejected.

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
10:35 AM Changeset in webkit [253485] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

Minor WKWebView.mm code rearrangement
https://bugs.webkit.org/show_bug.cgi?id=205129

Reviewed by Tim Horton.

Throw in some more #pragma marks and move some functions around, with the goal of
having the implementation order mostly follow header order, and grouping related functions.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _pageForTesting]):
(-[WKWebView _page]):
(-[WKWebView urlSchemeHandlerForURLScheme:]):
(+[WKWebView handlesURLScheme:]):
(-[WKWebView _resolutionForShareSheetImmediateCompletionForTesting]):
(-[WKWebView createPDFWithConfiguration:completionHandler:]):
(-[WKWebView createWebArchiveDataWithCompletionHandler:]):
(toFindOptions):
(-[WKWebView findString:withConfiguration:completionHandler:]):
(-[WKWebView setMediaType:]):
(-[WKWebView mediaType]):
(-[WKWebView layoutSubviews]):
(-[WKWebView scrollView]):
(-[WKWebView _isShowingVideoPictureInPicture]):
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):
(-[WKWebView _incrementFocusPreservationCount]):
(-[WKWebView _decrementFocusPreservationCount]):
(-[WKWebView _resetFocusPreservationCount]):
(-[WKWebView _isRetainingActiveFocusedState]):
(-[WKWebView _effectiveAppearanceIsDark]):
(-[WKWebView _effectiveUserInterfaceLevelIsElevated]):
(-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]):
(-[WKWebView _dragInteractionPolicy]):
(-[WKWebView _setDragInteractionPolicy:]):
(-[WKWebView _populateArchivedSubviews:]):
(-[WKWebView _isBackground]):
(-[WKWebView _setShouldSuppressFirstResponderChanges:]):
(-[WKWebView _retainActiveFocusedState]):
(-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):
(-[WKWebView _dataDetectionResults]):
(-[WKWebView _accessibilityRetrieveSpeakSelectionContent]):
(-[WKWebView _accessibilityDidGetSpeakSelectionContent:]):
(-[WKWebView _viewportSizeForCSSViewportUnits]):
(-[WKWebView _setViewportSizeForCSSViewportUnits:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm: Unified sources build fix (seen while doing other stuff).
10:13 AM Changeset in webkit [253484] by Kate Cheney
  • 22 edits
    8 adds in trunk

Create WebKit API calls for ITP Data
https://bugs.webkit.org/show_bug.cgi?id=204932
<rdar://problem/57632753>

Reviewed by Alex Christensen.

Source/WebKit:

This patch exposes ITP data captured in the network process through the
Objective C API using two new classes: _WKResourceLoadStatisticsFirstParty
and _WKResourceLoadStatisticsThirdParty.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ensureThirdPartyDataForSpecificFirstPartyDomain):
(WebKit::getThirdPartyDataForSpecificFirstPartyDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::aggregatedThirdPartyData const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

Updated mentions of ThirdPartyData to include the
WebResourceLoadStatisticsStore:: class specifier after relocating
ThirdPartyData.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::aggregatedThirdPartyData):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

Updated the data to be sent via completion handler from
WebResourceLoadStatisticsStore so that calls to
aggregatedThirdPartyData() are happening on a background thread.

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/APIResourceLoadStatisticsFirstParty.h: Added.
  • UIProcess/API/APIResourceLoadStatisticsThirdParty.h: Added.
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getResourceLoadStatisticsDataSummary:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm: Added.

(-[_WKResourceLoadStatisticsFirstParty dealloc]):
(-[_WKResourceLoadStatisticsFirstParty firstPartyDomain]):
(-[_WKResourceLoadStatisticsFirstParty storageAccess]):
(-[_WKResourceLoadStatisticsFirstParty _apiObject]):

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstPartyInternal.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm: Added.

(-[_WKResourceLoadStatisticsThirdParty dealloc]):
(-[_WKResourceLoadStatisticsThirdParty thirdPartyDomain]):
(-[_WKResourceLoadStatisticsThirdParty underFirstParties]):
(-[_WKResourceLoadStatisticsThirdParty _apiObject]):

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdPartyInternal.h: Added.

_WKResourceLoadStatisticsFirstParty and _WKResourceLoadStatisticsThirdParty
represent first and third party domains respectively which hold ITP
data and are strongly typed to ensure the correct data is being
exposed via API. The function and parameter names for storage access
specify "third party" because each WKITPFirstParty holds data relevent
to a specific third party and storage access would not make sense in
just a first party context.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getResourceLoadStatisticsDataSummary):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getResourceLoadStatisticsDataSummary):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Added a test to check that the ITP data summary was being properly
aggregated and sent to the UIProcess, and to make sure the API works
as expected. Added interface declarations to the file to allow for
use of the _WKResourceLoadStatisticsFirstParty and
_WKResourceLoadStatisticsThirdParty classes without having
to import the header files.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

9:53 AM Changeset in webkit [253483] by Chris Dumez
  • 8 edits in trunk

Behavior of GetOwnProperty? for cross-origin windows is not spec-compliant
https://bugs.webkit.org/show_bug.cgi?id=205184

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

Source/WebCore:

Behavior of GetOwnProperty? for cross-origin windows is not spec-compliant:

We should be able to return frames by name, even if their name conflict with the name of a
same-origin window property (e.g. "close"). Previously, we would throw a SecurityError in
this case.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):

LayoutTests:

  • http/tests/security/document-all-expected.txt:

The test is accessing the "alert" property on a cross-origin window. We used to throw a SecurityError,
but we now return a Window object since there is a Window whose name is "alert". The test still passes
as it is not able to call alert() cross-origin.

  • http/tests/security/xss-DENIED-window-name-navigator-expected.txt:
  • http/tests/security/xss-DENIED-window-name-navigator.html:

Update test to use console.log() to print the result instead of alert() since alert() is not allowed
in a sandbox iframe. I updated the expectation so that top.navigator returns the window with the
name "navigator" instead of undefined, as per the behavior change in this patch. I have verified that
our behavior on this test is consistent with Firefox and Chrome.

9:49 AM Changeset in webkit [253482] by eric.carlson@apple.com
  • 34 edits
    1 copy
    12 adds in trunk/Source

Add infrastructure needed for playing media player in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=205094
<rdar://problem/57815393>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, no functional change yet.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/ContentType.h:

(WebCore::ContentType::encode const):
(WebCore::ContentType::decode):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::nullLogger):
(WebCore::nullContentTypeVector):
(WebCore::mutableInstalledMediaEnginesVector):
(WebCore::registerRemotePlayerCallback):
(WebCore::RemoteMediaPlayerSupport::setRegisterRemotePlayerCallback):
(WebCore::buildMediaEnginesVector):
(WebCore::installedMediaEngines):
(WebCore::addMediaEngine):
(WebCore::MediaPlayer::mediaEngine):
(WebCore::bestMediaEngineForSupportParameters):
(WebCore::MediaPlayer::nextMediaEngine):
(WebCore::MediaPlayer::create):
(WebCore::MediaPlayer::MediaPlayer):
(WebCore::MediaPlayer::nextBestMediaEngine):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::MediaPlayer::getSupportedTypes):
(WebCore::MediaPlayer::originsInMediaCache):
(WebCore::MediaPlayer::clearMediaCache):
(WebCore::MediaPlayer::clearMediaCacheForOrigins):
(WebCore::MediaPlayer::supportsKeySystem):
(WebCore::MediaPlayer::networkStateChanged):
(WebCore::nextMediaEngine): Deleted.
(WebCore::MediaPlayer::nextBestMediaEngine const): Deleted.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaEngineSupportParameters::encode const):
(WebCore::MediaEngineSupportParameters::decode):
(WebCore::MediaPlayerFactory::~MediaPlayerFactory):
(WebCore::MediaPlayerFactory::originsInMediaCache const):
(WebCore::MediaPlayerFactory::clearMediaCache const):
(WebCore::MediaPlayerFactory::clearMediaCacheForOrigins const):
(WebCore::MediaPlayerFactory::supportsKeySystem const):
(WebCore::MediaPlayer::setVideoFullscreenLayer): Deleted.
(WebCore::MediaPlayer::size const): Deleted.
(WebCore::MediaPlayer::invalidTime): Deleted.
(WebCore::MediaPlayer::platformVolumeConfigurationRequired const): Deleted.
(WebCore::MediaPlayer::contentMIMEType const): Deleted.
(WebCore::MediaPlayer::contentTypeCodecs const): Deleted.
(WebCore::MediaPlayer::contentMIMETypeWasInferredFromExtension const): Deleted.
(WebCore::MediaPlayer::mediaPlayerLogIdentifier): Deleted.
(WebCore::MediaPlayer::renderingCanBeAccelerated const): Deleted.
(WebCore::MediaPlayer::renderingModeChanged const): Deleted.
(WebCore::MediaPlayer::acceleratedCompositingEnabled): Deleted.
(WebCore::MediaPlayer::activeSourceBuffersChanged): Deleted.
(WebCore::MediaPlayer::playerContentBoxRect const): Deleted.
(WebCore::MediaPlayer::playerContentsScale const): Deleted.
(WebCore::MediaPlayer::shouldUsePersistentCache const): Deleted.
(WebCore::MediaPlayer::mediaCacheDirectory const): Deleted.
(WebCore::MediaPlayer::isVideoPlayer const): Deleted.
(WebCore::MediaPlayer::mediaEngineUpdated): Deleted.
(WebCore::MediaPlayer::isLooping const): Deleted.
(WebCore::MediaPlayer::requestInstallMissingPlugins): Deleted.
(WebCore::MediaPlayer::client const): Deleted.

  • platform/graphics/MediaPlayerEngineIdentifiers.h: Copied from Source/WebCore/platform/ContentType.h.

(WebCore::MediaPlayerEngineIdentifiers::avFoundationEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::avFoundationMSEEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::avFoundationMediaStreamEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::GStreamerMediaEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::GStreamerMSEMediaEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::holePunchMediaEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::MediaFoundationMediaEngineIdentifier):

  • platform/graphics/PlatformTimeRanges.h:

(WebCore::PlatformTimeRanges::PlatformTimeRanges): Deleted.
(WebCore::PlatformTimeRanges::length const): Deleted.
(WebCore::PlatformTimeRanges::Range::Range): Deleted.
(WebCore::PlatformTimeRanges::Range::isPointInRange const): Deleted.
(WebCore::PlatformTimeRanges::Range::isOverlappingRange const): Deleted.
(WebCore::PlatformTimeRanges::Range::isContiguousWithRange const): Deleted.
(WebCore::PlatformTimeRanges::Range::unionWithOverlappingOrContiguousRange const): Deleted.
(WebCore::PlatformTimeRanges::Range::isBeforeRange const): Deleted.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::registerMediaEngine):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp:

(WebCore::MediaPlayerPrivateHolePunch::registerMediaEngine):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::registerMediaEngine):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::registerMediaEngine):

Source/WebKit:

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
(WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: Added.

(WebKit::nullLogger):
(WebKit::RemoteMediaPlayerManagerProxy::PlayerProxy::PlayerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::PlayerProxy::~PlayerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::getSupportedTypes):
(WebKit::RemoteMediaPlayerManagerProxy::supportsType):
(WebKit::RemoteMediaPlayerManagerProxy::originsInMediaCache):
(WebKit::RemoteMediaPlayerManagerProxy::clearMediaCache):
(WebKit::RemoteMediaPlayerManagerProxy::clearMediaCacheForOrigins):
(WebKit::RemoteMediaPlayerManagerProxy::supportsKeySystem):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h: Added.

(WebKit::RemoteMediaPlayerManagerProxy::webProcessConnection const):
(WebKit::RemoteMediaPlayerManagerProxy::didReceiveMessageFromWebProcess):
(WebKit::RemoteMediaPlayerManagerProxy::didReceiveSyncMessageFromWebProcess):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: Added.
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: Added.

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::cancelLoad):
(WebKit::MediaPlayerPrivateRemote::prepareToPlay):
(WebKit::MediaPlayerPrivateRemote::platformLayer const):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer):
(WebKit::MediaPlayerPrivateRemote::updateVideoFullscreenInlineImage):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenMode):
(WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged):
(WebKit::MediaPlayerPrivateRemote::accessLog const):
(WebKit::MediaPlayerPrivateRemote::errorLog const):
(WebKit::MediaPlayerPrivateRemote::platformErrorCode const):
(WebKit::MediaPlayerPrivateRemote::play):
(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::setBufferingPolicy):
(WebKit::MediaPlayerPrivateRemote::supportsPictureInPicture const):
(WebKit::MediaPlayerPrivateRemote::supportsFullscreen const):
(WebKit::MediaPlayerPrivateRemote::supportsScanning const):
(WebKit::MediaPlayerPrivateRemote::requiresImmediateCompositing const):
(WebKit::MediaPlayerPrivateRemote::canSaveMediaData const):
(WebKit::MediaPlayerPrivateRemote::naturalSize const):
(WebKit::MediaPlayerPrivateRemote::hasVideo const):
(WebKit::MediaPlayerPrivateRemote::hasAudio const):
(WebKit::MediaPlayerPrivateRemote::setVisible):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::durationMediaTime const):
(WebKit::MediaPlayerPrivateRemote::currentMediaTime const):
(WebKit::MediaPlayerPrivateRemote::getStartDate const):
(WebKit::MediaPlayerPrivateRemote::seek):
(WebKit::MediaPlayerPrivateRemote::seekWithTolerance):
(WebKit::MediaPlayerPrivateRemote::seeking const):
(WebKit::MediaPlayerPrivateRemote::startTime const):
(WebKit::MediaPlayerPrivateRemote::setRateDouble):
(WebKit::MediaPlayerPrivateRemote::rate const):
(WebKit::MediaPlayerPrivateRemote::setPreservesPitch):
(WebKit::MediaPlayerPrivateRemote::paused const):
(WebKit::MediaPlayerPrivateRemote::setVolumeDouble):
(WebKit::MediaPlayerPrivateRemote::setMuted):
(WebKit::MediaPlayerPrivateRemote::hasClosedCaptions const):
(WebKit::MediaPlayerPrivateRemote::setClosedCaptionsVisible):
(WebKit::MediaPlayerPrivateRemote::maxFastForwardRate const):
(WebKit::MediaPlayerPrivateRemote::minFastReverseRate const):
(WebKit::MediaPlayerPrivateRemote::networkState const):
(WebKit::MediaPlayerPrivateRemote::readyState const):
(WebKit::MediaPlayerPrivateRemote::seekable const):
(WebKit::MediaPlayerPrivateRemote::buffered const):
(WebKit::MediaPlayerPrivateRemote::maxMediaTimeSeekable const):
(WebKit::MediaPlayerPrivateRemote::minMediaTimeSeekable const):
(WebKit::MediaPlayerPrivateRemote::seekableTimeRangesLastModifiedTime const):
(WebKit::MediaPlayerPrivateRemote::liveUpdateInterval const):
(WebKit::MediaPlayerPrivateRemote::totalBytes const):
(WebKit::MediaPlayerPrivateRemote::didLoadingProgress const):
(WebKit::MediaPlayerPrivateRemote::setSize):
(WebKit::MediaPlayerPrivateRemote::paint):
(WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext):
(WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture):
(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime):
(WebKit::MediaPlayerPrivateRemote::setPreload):
(WebKit::MediaPlayerPrivateRemote::hasAvailableVideoFrame const):
(WebKit::MediaPlayerPrivateRemote::canLoadPoster const):
(WebKit::MediaPlayerPrivateRemote::setPoster):
(WebKit::MediaPlayerPrivateRemote::enterFullscreen):
(WebKit::MediaPlayerPrivateRemote::exitFullscreen):
(WebKit::MediaPlayerPrivateRemote::wirelessPlaybackTargetName const):
(WebKit::MediaPlayerPrivateRemote::wirelessPlaybackTargetType const):
(WebKit::MediaPlayerPrivateRemote::wirelessVideoPlaybackDisabled const):
(WebKit::MediaPlayerPrivateRemote::setWirelessVideoPlaybackDisabled):
(WebKit::MediaPlayerPrivateRemote::canPlayToWirelessPlaybackTarget const):
(WebKit::MediaPlayerPrivateRemote::isCurrentPlaybackTargetWireless const):
(WebKit::MediaPlayerPrivateRemote::setWirelessPlaybackTarget):
(WebKit::MediaPlayerPrivateRemote::setShouldPlayToPlaybackTarget):
(WebKit::MediaPlayerPrivateRemote::canEnterFullscreen const):
(WebKit::MediaPlayerPrivateRemote::supportsAcceleratedRendering const):
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
(WebKit::MediaPlayerPrivateRemote::shouldMaintainAspectRatio const):
(WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio):
(WebKit::MediaPlayerPrivateRemote::hasSingleSecurityOrigin const):
(WebKit::MediaPlayerPrivateRemote::didPassCORSAccessCheck const):
(WebKit::MediaPlayerPrivateRemote::wouldTaintOrigin const):
(WebKit::MediaPlayerPrivateRemote::movieLoadType const):
(WebKit::MediaPlayerPrivateRemote::prepareForRendering):
(WebKit::MediaPlayerPrivateRemote::mediaTimeForTimeValue const):
(WebKit::MediaPlayerPrivateRemote::maximumDurationToCacheMediaTime const):
(WebKit::MediaPlayerPrivateRemote::decodedFrameCount const):
(WebKit::MediaPlayerPrivateRemote::droppedFrameCount const):
(WebKit::MediaPlayerPrivateRemote::audioDecodedByteCount const):
(WebKit::MediaPlayerPrivateRemote::videoDecodedByteCount const):
(WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode):
(WebKit::MediaPlayerPrivateRemote::engineDescription const):
(WebKit::MediaPlayerPrivateRemote::audioSourceProvider):
(WebKit::MediaPlayerPrivateRemote::createSession):
(WebKit::MediaPlayerPrivateRemote::setCDMSession):
(WebKit::MediaPlayerPrivateRemote::keyAdded):
(WebKit::MediaPlayerPrivateRemote::cdmInstanceAttached):
(WebKit::MediaPlayerPrivateRemote::cdmInstanceDetached):
(WebKit::MediaPlayerPrivateRemote::attemptToDecryptWithInstance):
(WebKit::MediaPlayerPrivateRemote::waitingForKey const):
(WebKit::MediaPlayerPrivateRemote::requiresTextTrackRepresentation const):
(WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation):
(WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds):
(WebKit::MediaPlayerPrivateRemote::tracksChanged):
(WebKit::MediaPlayerPrivateRemote::simulateAudioInterruption):
(WebKit::MediaPlayerPrivateRemote::beginSimulatedHDCPError):
(WebKit::MediaPlayerPrivateRemote::endSimulatedHDCPError):
(WebKit::MediaPlayerPrivateRemote::languageOfPrimaryAudioTrack const):
(WebKit::MediaPlayerPrivateRemote::extraMemoryCost const):
(WebKit::MediaPlayerPrivateRemote::fileSize const):
(WebKit::MediaPlayerPrivateRemote::ended const):
(WebKit::MediaPlayerPrivateRemote::videoPlaybackQualityMetrics):
(WebKit::MediaPlayerPrivateRemote::notifyTrackModeChanged):
(WebKit::MediaPlayerPrivateRemote::notifyActiveSourceBuffersChanged):
(WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep):
(WebKit::MediaPlayerPrivateRemote::applicationWillResignActive):
(WebKit::MediaPlayerPrivateRemote::applicationDidBecomeActive):
(WebKit::MediaPlayerPrivateRemote::performTaskAtMediaTime):
(WebKit::MediaPlayerPrivateRemote::shouldIgnoreIntrinsicSize):
(WebKit::MediaPlayerPrivateRemote::logChannel const):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h: Added.
  • WebProcess/GPU/media/MediaPlayerPrivateRemoteIdentifier.h: Added.
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: Added.

(WebKit::MediaPlayerRemoteFactory::MediaPlayerRemoteFactory):
(WebKit::RemoteMediaPlayerManager::RemoteMediaPlayerManager):
(WebKit::RemoteMediaPlayerManager::~RemoteMediaPlayerManager):
(WebKit::RemoteMediaPlayerManager::supplementName):
(WebKit::RemoteMediaPlayerManager::initialize):
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::getSupportedTypes):
(WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerManager::supportsKeySystem):
(WebKit::RemoteMediaPlayerManager::originsInMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins):
(WebKit::RemoteMediaPlayerManager::networkStateChanged):
(WebKit::RemoteMediaPlayerManager::updatePreferences):
(WebKit::RemoteMediaPlayerManager::gpuProcessConnection const):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h: Added.
  • WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebProcess.cpp:
9:37 AM Changeset in webkit [253481] by cathiechen
  • 2 edits in trunk/Source/WebCore

Fixed compile error in BaseAudioSharedUnit.h
https://bugs.webkit.org/show_bug.cgi?id=205205

Need to include some headers and put "#pragma once" in front.

Unreviewed, fixed compile error.

  • platform/mediastream/mac/BaseAudioSharedUnit.h:
9:10 AM Changeset in webkit [253480] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/simple-line-with-br.html
https://bugs.webkit.org/show_bug.cgi?id=205207
<rdar://problem/57913504>

Reviewed by Antti Koivisto.

Apply https://www.w3.org/TR/css-text-3/#white-space-property's matrix to end-of-the-line whitespace.
(Keep white-space: mormal no-wrap pre-wrap and pre-line content)

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::shouldKeepEndOfLineWhitespace):
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::Content::isVisuallyEmptyWhitespaceContentOnly const):
(WebCore::Layout::isTrailingWhitespaceWithPreWrap): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::InlineItemRun::isTrimmableWhitespace const):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):

9:01 AM Changeset in webkit [253479] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

Fix some errors on the TestExpectations files.

Unreviewed gardening.

  • TestExpectations: Add missing expectation.
  • platform/gtk/TestExpectations: Remove repeated entries
8:42 AM Changeset in webkit [253478] by Devin Rousso
  • 3 edits in trunk/Tools

Prefix CSS selectors with all applicable CSS groupings when generating a ChangeLog
https://bugs.webkit.org/show_bug.cgi?id=205196

Reviewed by Jonathan Bedard.

  • Scripts/prepare-ChangeLog:

(get_selector_line_ranges_for_css):

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt:
8:29 AM Changeset in webkit [253477] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, address flakiness of fast/scrolling/ios/scroll-event-from-scrollTo.html

  • fast/scrolling/ios/scroll-event-from-scrollTo.html:
8:24 AM Changeset in webkit [253476] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, rebaseline a couple of iOS swiping tests after r253450

  • platform/ios/swipe/main-frame-pinning-requirement-expected.txt:
  • platform/ios/swipe/pushState-cached-back-swipe-expected.txt:
8:23 AM Changeset in webkit [253475] by commit-queue@webkit.org
  • 11 edits in trunk/Source

[GTK] WebKitGTK build hangs on g-ir-scanner
https://bugs.webkit.org/show_bug.cgi?id=204715

This patch fixes the static initialization order problem
introduced by Bug 204503.

The patch replaces the static data members with statics that
are constructed only upon first access (i.e., the 'construct
on first use' idiom).

Patch by Jim Mason <jmason@ibinx.com> on 2019-12-13
Reviewed by Carlos Garcia Campos.

Source/JavaScriptCore:

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/glib/RemoteInspectorGlib.cpp:

(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::messageHandlers):

  • inspector/remote/glib/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::messageHandlers):
(Inspector::RemoteInspectorServer::incomingConnectionCallback):

  • inspector/remote/glib/RemoteInspectorServer.h:

Source/WebDriver:

  • SessionHost.h:
  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::messageHandlers):
(WebDriver::SessionHost::connectToBrowser):

Source/WebKit:

  • UIProcess/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::messageHandlers):
(WebKit::RemoteInspectorClient::RemoteInspectorClient):

  • UIProcess/glib/RemoteInspectorClient.h:
8:22 AM Changeset in webkit [253474] by commit-queue@webkit.org
  • 14 edits in trunk

Implement OffscreenCanvas.convertToBlob
https://bugs.webkit.org/show_bug.cgi?id=202573

Patch by Chris Lord <Chris Lord> on 2019-12-13
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update with fixed worker tests and SecurityError checks. See wpe
issues #20694 and #20698.

  • web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob-expected.txt:
  • web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.html:
  • web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.w-expected.txt:
  • web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.w.html:

Source/WebCore:

Implement OffscreenCanvas.convertToBlob. This also involves making
isSupportedImageMIMETypeForEncoding safe to use off the main thread,
and implementing OffscreenCanvas.securityOrigin.

No new tests, these changes fix existing tests.

  • html/OffscreenCanvas.cpp:

(WebCore::toEncodingMimeType):
(WebCore::qualityFromDouble):
(WebCore::OffscreenCanvas::convertToBlob):
(WebCore::OffscreenCanvas::securityOrigin const):

  • html/OffscreenCanvas.h:
  • html/OffscreenCanvas.idl:
  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::createMIMETypeRegistryThreadGlobalData):
(WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):

  • platform/MIMETypeRegistry.h:

(WebCore::MIMETypeRegistryThreadGlobalData::MIMETypeRegistryThreadGlobalData):
(WebCore::MIMETypeRegistryThreadGlobalData::supportedImageMIMETypesForEncoding const):

  • platform/ThreadGlobalData.cpp:

(WebCore::ThreadGlobalData::mimeTypeRegistryThreadGlobalData):

  • platform/ThreadGlobalData.h:
  • workers/WorkerGlobalScope.h:
8:19 AM Changeset in webkit [253473] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Make DOMCacheStorage::retrieveCaches take a CompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=205204

Patch by youenn fablet <youenn@apple.com> on 2019-12-13
Reviewed by Chris Dumez.

Covered by existing tests.

  • Modules/cache/DOMCacheEngine.cpp:

(WebCore::DOMCacheEngine::errorToException):
This will improve logging and will make sure we do not crash in debug in case of stopped error.

  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::retrieveCaches):
Use of a completion handler to make sure we answer the caller, even with an error case.

  • Modules/cache/DOMCacheStorage.h:
8:16 AM Changeset in webkit [253472] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip several SharedWorkers tests as we do not support this feature.

8:02 AM Changeset in webkit [253471] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] The AGX compiler service is incorrectly listed as a global name in sandbox
https://bugs.webkit.org/show_bug.cgi?id=205189

Reviewed by Brent Fulgham.

It should be a XPC service name.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
7:18 AM Changeset in webkit [253470] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[HarfBuzz] WebKitWebProcess crashes when displaying a KaTeX formula
https://bugs.webkit.org/show_bug.cgi?id=204689

Reviewed by Carlos Alberto Lopez Perez.

We are creating and caching an hb_font_t for the given FontPlatformData's FT_Face, but the face is not
referenced so it is destroyed eventually while the hb_font_t is still alive. We need to keep a reference of the
FT_Face while the hb_font_t is alive.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::createOpenTypeMathHarfBuzzFont const): Create the hb_face_t with
hb_ft_face_create_referenced() instead of hb_ft_face_create_cached().

6:32 AM Changeset in webkit [253469] by ajuma@chromium.org
  • 3 edits
    2 adds in trunk

Crash in RenderLayerBacking::updateCompositedBounds from using cleared WeakPtr from m_backingSharingLayers
https://bugs.webkit.org/show_bug.cgi?id=204648

Reviewed by Simon Fraser.

Source/WebCore:

RenderLayerBacking's clearBackingSharingProviders clears layers'
backingSharingProviders unconditionally, even when a layer's
backingSharingProvider is some other RenderLayerBacking's owning
layer. This leaves the layer in a state where its backingProviderLayer
is null, even though it appears in the other RenderLayerBacking's
m_backingSharingLayers, which leads to a crash if this layer is destroyed
and the other RenderLayerBacking tries to use its pointer to this
layer.

Avoid this inconsistency by making clearBackingSharingProviders check
whether a layer's backingSharingProvider is the current RenderLayerBacking's
owner, before clearing it.

Test: compositing/shared-backing/move-sharing-child.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::clearBackingSharingLayerProviders):
(WebCore::RenderLayerBacking::setBackingSharingLayers):
(WebCore::RenderLayerBacking::clearBackingSharingLayers):

LayoutTests:

  • compositing/shared-backing/move-sharing-child-expected.txt: Added.
  • compositing/shared-backing/move-sharing-child.html: Added.
5:47 AM Changeset in webkit [253468] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/simple-line-with-multiple-renderers.html
https://bugs.webkit.org/show_bug.cgi?id=205193
<rdar://problem/57900709>

Reviewed by Antti Koivisto.

Use LazyLineBreakIterator to find out if 2 (visually)adjacent non-whitespace inline items are
on a soft breaking opportunity.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::endsWithBreakingOpportunity):
(WebCore::Layout::LineBreaker::Content::isAtContentBoundary):

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::moveToNextBreakablePosition):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::findNextBreakablePosition):

  • layout/inlineformatting/text/TextUtil.h:
2:54 AM Changeset in webkit [253467] by Carlos Garcia Campos
  • 6 edits in trunk

[GTK] Several tests crashing after r247898 "Reorganize UIScriptController into platform-specific subclasses"
https://bugs.webkit.org/show_bug.cgi?id=200534

Reviewed by Alejandro G. Castro.

Tools:

Add implementation of several UIScriptController virtual methods to avoid crashes.

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::~PlatformWebView):
(WTR::PlatformWebView::addToWindow):
(WTR::PlatformWebView::removeFromWindow):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::doAsyncTask):
(WTR::UIScriptControllerGtk::setContinuousSpellCheckingEnabled):
(WTR::UIScriptControllerGtk::copyText):
(WTR::UIScriptControllerGtk::dismissMenu):
(WTR::UIScriptControllerGtk::isShowingMenu const):
(WTR::UIScriptControllerGtk::activateAtPoint):
(WTR::UIScriptControllerGtk::activateDataListSuggestion):
(WTR::UIScriptControllerGtk::simulateAccessibilitySettingsChangeNotification):
(WTR::UIScriptControllerGtk::removeViewFromWindow):
(WTR::UIScriptControllerGtk::addViewToWindow):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.h:

LayoutTests:

Update expectations.

  • platform/gtk/TestExpectations:
12:40 AM Changeset in webkit [253466] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Uninitialized variables in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=205165

Reviewed by Simon Fraser.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer): Initialize m_isNormalFlowOnly and m_isCSSStackingContext.

Dec 12, 2019:

10:06 PM Changeset in webkit [253465] by Simon Fraser
  • 51 edits
    1 copy
    6 adds in trunk

Move WKWebView code related to testing to new files, with new private "for testing" headers.
https://bugs.webkit.org/show_bug.cgi?id=205021

Reviewed by Tim Horton.
Source/WebKit:

Move testing-only SPI to new private headers to discourage first parties from using
them by mistake. Move test-only code to new files to reduce the size of WKWebView.mm.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]):
(-[WKWebView _prepareForImmediateActionAnimation]):
(-[WKWebView _cancelImmediateActionAnimation]):
(-[WKWebView _completeImmediateActionAnimation]):
(-[WKWebView _useSystemAppearance]):
(-[WKWebView _setUseSystemAppearance:]):
(-[WKWebView _pageRefForTransitionToWKWebView]):
(-[WKWebView _canChangeFrameLayout:]):
(-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]):
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _hasActiveVideoForControlsManager]):
(-[WKWebView _dismissContentRelativeChildWindows]):
(-[WKWebView _gestureEventWasNotHandledByWebCore:]):
(-[WKWebView _disableFrameSizeUpdates]):
(-[WKWebView _enableFrameSizeUpdates]):
(-[WKWebView _beginDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChangesSync]):
(-[WKWebView _fullScreenPlaceholderView]):
(-[WKWebView _fullScreenWindow]):
(-[WKWebView _underlayColor]):
(-[WKWebView _setUnderlayColor:]):
(-[WKWebView _setCustomSwipeViews:]):
(-[WKWebView _setCustomSwipeViewsTopContentInset:]):
(-[WKWebView _setDidMoveSwipeSnapshotCallback:]):
(-[WKWebView _setFrame:andScrollBy:]):
(-[WKWebView _setTotalHeightOfBanners:]):
(-[WKWebView _totalHeightOfBanners]):
(-[WKWebView _setFont:sender:]):
(-[WKWebView _setFontSize:sender:]):
(-[WKWebView _setTextColor:sender:]):
(-[WKWebView inputAccessoryView]):
(-[WKWebView inputView]):
(-[WKWebView _requestActivatedElementAtPosition:completionBlock:]):
(-[WKWebView _contentVisibleRect]):
(-[WKWebView _convertPointFromContentsToView:]):
(-[WKWebView _convertPointFromViewToContents:]):
(-[WKWebView didStartFormControlInteraction]):
(-[WKWebView didEndFormControlInteraction]):
(-[WKWebView _uiTextCaretRect]):
(-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]):
(-[WKWebView _accessibilityStoreSelection]):
(-[WKWebView _accessibilityClearSelection]):
(-[WKWebView _contentViewIsFirstResponder]):
(-[WKWebView _inspector]):
(-[WKWebView _mainFrame]):
(-[WKWebView _isEditable]):
(-[WKWebView _setEditable:]):
(-[WKWebView _executeEditCommand:argument:completion:]):
(-[WKWebView _textManipulationDelegate]):
(-[WKWebView _setTextManipulationDelegate:]):
(-[WKWebView _startTextManipulationsWithConfiguration:completion:]):
(-[WKWebView _completeTextManipulation:completion:]):
(-[WKWebView _takeFindStringFromSelection:]):
(+[WKWebView _stringForFind]):
(+[WKWebView _setStringForFind:]):
(-[WKWebView _remoteObjectRegistry]):
(-[WKWebView _handle]):
(-[WKWebView _observedRenderingProgressEvents]):
(-[WKWebView _historyDelegate]):
(-[WKWebView _setHistoryDelegate:]):
(-[WKWebView _updateMediaPlaybackControlsManager]):
(-[WKWebView _canTogglePictureInPicture]):
(-[WKWebView _isPictureInPictureActive]):
(-[WKWebView _togglePictureInPicture]):
(-[WKWebView _closeAllMediaPresentations]):
(-[WKWebView _stopMediaCapture]):
(-[WKWebView _stopAllMediaPlayback]):
(-[WKWebView _suspendAllMediaPlayback]):
(-[WKWebView _resumeAllMediaPlayback]):
(-[WKWebView _unreachableURL]):
(-[WKWebView _mainFrameURL]):
(-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
(-[WKWebView _loadRequest:shouldOpenExternalURLs:]):
(-[WKWebView _certificateChain]):
(-[WKWebView _committedURL]):
(-[WKWebView _MIMEType]):
(-[WKWebView _userAgent]):
(-[WKWebView _applicationNameForUserAgent]):
(-[WKWebView _setApplicationNameForUserAgent:]):
(-[WKWebView _customUserAgent]):
(-[WKWebView _setCustomUserAgent:]):
(-[WKWebView _setUserContentExtensionsEnabled:]):
(-[WKWebView _userContentExtensionsEnabled]):
(-[WKWebView _webProcessIdentifier]):
(-[WKWebView _provisionalWebProcessIdentifier]):
(-[WKWebView _killWebContentProcess]):
(-[WKWebView _safeBrowsingWarning]):
(-[WKWebView _reloadWithoutContentBlockers]):
(-[WKWebView _reloadExpiredOnly]):
(-[WKWebView _killWebContentProcessAndResetState]):
(-[WKWebView _convertRectFromRootViewCoordinates:]):
(-[WKWebView _convertRectToRootViewCoordinates:]):
(-[WKWebView _requestTextInputContextsInRect:completionHandler:]):
(-[WKWebView _focusTextInputContext:completionHandler:]):
(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):
(-[WKWebView _setShouldSuppressFirstResponderChanges:]):
(-[WKWebView _retainActiveFocusedState]):
(-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):
(-[WKWebView _dataDetectionResults]):
(-[WKWebView _accessibilityRetrieveSpeakSelectionContent]):
(-[WKWebView _accessibilityDidGetSpeakSelectionContent:]):
(-[WKWebView inputAssistantItem]):
(-[WKWebView _sessionStateData]):
(-[WKWebView _sessionState]):
(-[WKWebView _sessionStateWithFilter:]):
(-[WKWebView _restoreFromSessionStateData:]):
(-[WKWebView _restoreSessionState:andNavigate:]):
(-[WKWebView _close]):
(-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]):
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]):
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
(-[WKWebView _attachmentForIdentifier:]):
(-[WKWebView _simulateDeviceOrientationChangeWithAlpha:beta:gamma:]):
(+[WKWebView _handlesSafeBrowsing]):
(-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]):
(-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]):
(+[WKWebView _confirmMalwareSentinel]):
(+[WKWebView _visitUnsafeWebsiteSentinel]):
(-[WKWebView _isJITEnabled:]):
(-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]):
(-[WKWebView _updateWebsitePolicies:]):
(-[WKWebView _allowsRemoteInspection]):
(-[WKWebView _setAllowsRemoteInspection:]):
(-[WKWebView _remoteInspectionNameOverride]):
(-[WKWebView _setRemoteInspectionNameOverride:]):
(-[WKWebView _addsVisitedLinks]):
(-[WKWebView _setAddsVisitedLinks:]):
(-[WKWebView _networkRequestsInProgress]):
(layoutMilestones):
(-[WKWebView _setObservedRenderingProgressEvents:]):
(-[WKWebView _getMainResourceDataWithCompletionHandler:]):
(-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]):
(-[WKWebView _getApplicationManifestWithCompletionHandler:]):
(-[WKWebView _paginationMode]):
(-[WKWebView _setPaginationMode:]):
(-[WKWebView _paginationBehavesLikeColumns]):
(-[WKWebView _setPaginationBehavesLikeColumns:]):
(-[WKWebView _pageLength]):
(-[WKWebView _setPageLength:]):
(-[WKWebView _gapBetweenPages]):
(-[WKWebView _setGapBetweenPages:]):
(-[WKWebView _paginationLineGridEnabled]):
(-[WKWebView _setPaginationLineGridEnabled:]):
(-[WKWebView _pageCount]):
(-[WKWebView _supportsTextZoom]):
(-[WKWebView _textZoomFactor]):
(-[WKWebView _setTextZoomFactor:]):
(-[WKWebView setPageZoom:]):
(-[WKWebView pageZoom]):
(-[WKWebView _pageZoomFactor]):
(-[WKWebView _setPageZoomFactor:]):
(-[WKWebView _diagnosticLoggingDelegate]):
(-[WKWebView _setDiagnosticLoggingDelegate:]):
(-[WKWebView _findDelegate]):
(-[WKWebView _setFindDelegate:]):
(toFindOptions):
(-[WKWebView _countStringMatches:options:maxCount:]):
(-[WKWebView _findString:options:maxCount:]):
(-[WKWebView _hideFindUI]):
(-[WKWebView _saveBackForwardSnapshotForItem:]):
(-[WKWebView _inputDelegate]):
(-[WKWebView _setInputDelegate:]):
(-[WKWebView _isDisplayingStandaloneImageDocument]):
(-[WKWebView _isDisplayingStandaloneMediaDocument]):
(-[WKWebView _isPlayingAudio]):
(-[WKWebView _isShowingNavigationGestureSnapshot]):
(-[WKWebView _layoutMode]):
(-[WKWebView _setLayoutMode:]):
(-[WKWebView _fixedLayoutSize]):
(-[WKWebView _setFixedLayoutSize:]):
(-[WKWebView _setBackgroundExtendsBeyondPage:]):
(-[WKWebView _backgroundExtendsBeyondPage]):
(-[WKWebView _viewScale]):
(-[WKWebView _setViewScale:]):
(-[WKWebView _setMinimumEffectiveDeviceWidth:]):
(-[WKWebView _minimumEffectiveDeviceWidth]):
(-[WKWebView _setScrollPerformanceDataCollectionEnabled:]):
(-[WKWebView _scrollPerformanceDataCollectionEnabled]):
(-[WKWebView _scrollPerformanceData]):
(-[WKWebView _allowsMediaDocumentInlinePlayback]):
(-[WKWebView _setAllowsMediaDocumentInlinePlayback:]):
(-[WKWebView _webProcessIsResponsive]):
(-[WKWebView _setFullscreenDelegate:]):
(-[WKWebView _fullscreenDelegate]):
(-[WKWebView _isInFullscreen]):
(-[WKWebView _mediaCaptureState]):
(-[WKWebView _setMediaCaptureEnabled:]):
(-[WKWebView _mediaCaptureEnabled]):
(-[WKWebView _setPageMuted:]):
(-[WKWebView _removeDataDetectedLinks:]):
(-[WKWebView _doAfterNextPresentationUpdate:]):
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]):
(-[WKWebView _doAfterNextStablePresentationUpdate:]):
(-[WKWebView _detectDataWithTypes:completionHandler:]):
(-[WKWebView removeFromSuperview]):
(-[WKWebView _minimumLayoutSizeOverride]):
(-[WKWebView _setViewLayoutSizeOverride:]):
(-[WKWebView _obscuredInsets]):
(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]):
(-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]):
(-[WKWebView _unobscuredSafeAreaInsets]):
(-[WKWebView _setUnobscuredSafeAreaInsets:]):
(-[WKWebView _safeAreaShouldAffectObscuredInsets]):
(-[WKWebView _setInterfaceOrientationOverride:]):
(-[WKWebView _interfaceOrientationOverride]):
(-[WKWebView _clearInterfaceOrientationOverride]):
(-[WKWebView _maximumUnobscuredSizeOverride]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _setAllowsViewportShrinkToFit:]):
(-[WKWebView _allowsViewportShrinkToFit]):
(-[WKWebView _beginInteractiveObscuredInsetsChange]):
(-[WKWebView _endInteractiveObscuredInsetsChange]):
(-[WKWebView _hideContentUntilNextUpdate]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
(-[WKWebView _setOverlaidAccessoryViewsInset:]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):
(-[WKWebView _clearOverrideLayoutParameters]):
(viewportArgumentsFromDictionary):
(-[WKWebView _overrideViewportWithArguments:]):
(-[WKWebView _viewForFindUI]):
(-[WKWebView _isDisplayingPDF]):
(-[WKWebView _dataForDisplayedPDF]):
(-[WKWebView _suggestedFilenameForDisplayedPDF]):
(-[WKWebView _webViewPrintFormatter]):
(toUserInterfaceLayoutDirection):
(-[WKWebView setSemanticContentAttribute:]):
(-[WKWebView _drawsBackground]):
(-[WKWebView _setDrawsBackground:]):
(-[WKWebView _backgroundColor]):
(-[WKWebView _setBackgroundColor:]):
(-[WKWebView _setDrawsTransparentBackground:]):
(-[WKWebView _inspectorAttachmentView]):
(-[WKWebView _setInspectorAttachmentView:]):
(-[WKWebView _setOverlayScrollbarStyle:]):
(-[WKWebView _overlayScrollbarStyle]):
(-[WKWebView _windowOcclusionDetectionEnabled]):
(-[WKWebView _setWindowOcclusionDetectionEnabled:]):
(-[WKWebView shareSheetDidDismiss:]):
(-[WKWebView _setOverrideDeviceScaleFactor:]):
(-[WKWebView _overrideDeviceScaleFactor]):
(-[WKWebView _setTopContentInset:]):
(-[WKWebView _topContentInset]):
(-[WKWebView _pageExtendedBackgroundColor]):
(-[WKWebView _pinnedState]):
(-[WKWebView _rubberBandingEnabled]):
(-[WKWebView _setRubberBandingEnabled:]):
(-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]):
(-[WKWebView _setAutomaticallyAdjustsContentInsets:]):
(-[WKWebView _automaticallyAdjustsContentInsets]):
(-[WKWebView _minimumLayoutWidth]):
(-[WKWebView _setMinimumLayoutWidth:]):
(-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]):
(-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]):
(-[WKWebView _alwaysShowsHorizontalScroller]):
(-[WKWebView _setAlwaysShowsHorizontalScroller:]):
(-[WKWebView _alwaysShowsVerticalScroller]):
(-[WKWebView _setAlwaysShowsVerticalScroller:]):
(-[WKWebView _printOperationWithPrintInfo:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):
(-[WKWebView setUserInterfaceLayoutDirection:]):
(-[WKWebView _wantsMediaPlaybackControlsView]):
(-[WKWebView _setWantsMediaPlaybackControlsView:]):
(-[WKWebView _mediaPlaybackControlsView]):
(-[WKWebView _addMediaPlaybackControlsView:]):
(-[WKWebView _removeMediaPlaybackControlsView]):
(-[WKWebView _prepareForMoveToWindow:completionHandler:]):
(-[WKWebView _setThumbnailView:]):
(-[WKWebView _thumbnailView]):
(-[WKWebView _setIgnoresAllEvents:]):
(-[WKWebView _ignoresAllEvents]):
(-[WKWebView _spellCheckerDocumentTag]):
(-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]): Deleted.
(-[WKWebView _contentsOfUserInterfaceItem:]): Deleted.
(-[WKWebView _setDeviceOrientationUserPermissionHandlerForTesting:]): Deleted.
(-[WKWebView keyboardAccessoryBarNext]): Deleted.
(-[WKWebView keyboardAccessoryBarPrevious]): Deleted.
(-[WKWebView applyAutocorrection:toString:withCompletionHandler:]): Deleted.
(-[WKWebView dismissFormAccessoryView]): Deleted.
(-[WKWebView _dismissFilePicker]): Deleted.
(-[WKWebView setTimePickerValueToHour:minute:]): Deleted.
(-[WKWebView selectFormAccessoryPickerRow:]): Deleted.
(-[WKWebView selectFormPopoverTitle]): Deleted.
(-[WKWebView textContentTypeForTesting]): Deleted.
(-[WKWebView formInputLabel]): Deleted.
(-[WKWebView _didShowContextMenu]): Deleted.
(-[WKWebView _didDismissContextMenu]): Deleted.
(-[WKWebView _inputViewBounds]): Deleted.
(-[WKWebView _uiTextSelectionRects]): Deleted.
(-[WKWebView _scrollingTreeAsText]): Deleted.
(-[WKWebView _stableStateOverride]): Deleted.
(-[WKWebView _propertiesOfLayerWithID:]): Deleted.
(-[WKWebView _doAfterResettingSingleTapGesture:]): Deleted.
(-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]): Deleted.
(-[WKWebView _requestControlledElementID]): Deleted.
(-[WKWebView _handleControlledElementIDResponse:]): Deleted.
(-[WKWebView _handleAcceptedCandidate:]): Deleted.
(-[WKWebView _didHandleAcceptedCandidate]): Deleted.
(-[WKWebView _didUpdateCandidateListVisibility:]): Deleted.
(-[WKWebView _forceRequestCandidates]): Deleted.
(-[WKWebView _shouldRequestCandidates]): Deleted.
(-[WKWebView _insertText:replacementRange:]): Deleted.
(-[WKWebView _candidateRect]): Deleted.
(-[WKWebView viewDidChangeEffectiveAppearance]): Deleted.
(-[WKWebView _setHeaderBannerHeight:]): Deleted.
(-[WKWebView _setFooterBannerHeight:]): Deleted.
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): Deleted.
(-[WKWebView _activeMenu]): Deleted.
(-[WKWebView _requestActiveNowPlayingSessionInfo:]): Deleted.
(-[WKWebView _setPageScale:withOrigin:]): Deleted.
(-[WKWebView _pageScale]): Deleted.
(-[WKWebView _scrollingUpdatesDisabledForTesting]): Deleted.
(-[WKWebView _setScrollingUpdatesDisabledForTesting:]): Deleted.
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]): Deleted.
(-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Deleted.
(-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]): Deleted.
(-[WKWebView _dragCaretRect]): Deleted.
(-[WKWebView _simulateLongPressActionAtLocation:]): Deleted.
(-[WKWebView _simulateTextEntered:]): Deleted.
(-[WKWebView _dynamicUserInterfaceTraitDidChange]): Deleted.
(-[WKWebView _beginBackSwipeForTesting]): Deleted.
(-[WKWebView _completeBackSwipeForTesting]): Deleted.
(-[WKWebView _setDefersLoadingForTesting:]): Deleted.
(-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]): Deleted.
(-[WKWebView _hasInspectorFrontend]): Deleted.
(-[WKWebView _processWillSuspendImminentlyForTesting]): Deleted.
(-[WKWebView _processDidResumeForTesting]): Deleted.
(-[WKWebView _setAssertionStateForTesting:]): Deleted.
(-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]): Deleted.
(-[WKWebView _hasServiceWorkerForegroundActivityForTesting]): Deleted.
(-[WKWebView _denyNextUserMediaRequest]): Deleted.
(-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h: Added.
  • UIProcess/API/Cocoa/WKWebViewTesting.mm: Added.

(-[WKWebView _setPageScale:withOrigin:]):
(-[WKWebView _pageScale]):
(-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]):
(-[WKWebView _contentsOfUserInterfaceItem:]):
(-[WKWebView _requestActiveNowPlayingSessionInfo:]):
(-[WKWebView _scrollingUpdatesDisabledForTesting]):
(-[WKWebView _setScrollingUpdatesDisabledForTesting:]):
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]):
(-[WKWebView _doAfterNextVisibleContentRectUpdate:]):
(-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]):
(-[WKWebView _beginBackSwipeForTesting]):
(-[WKWebView _completeBackSwipeForTesting]):
(-[WKWebView _setDefersLoadingForTesting:]):
(-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]):
(-[WKWebView _hasInspectorFrontend]):
(-[WKWebView _processWillSuspendImminentlyForTesting]):
(-[WKWebView _processDidResumeForTesting]):
(-[WKWebView _setAssertionStateForTesting:]):
(-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]):
(-[WKWebView _hasServiceWorkerForegroundActivityForTesting]):
(-[WKWebView _denyNextUserMediaRequest]):

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h: Added.
  • UIProcess/API/ios/WKWebViewTestingIOS.mm: Added.

(-[WKWebView keyboardAccessoryBarNext]):
(-[WKWebView keyboardAccessoryBarPrevious]):
(-[WKWebView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKWebView dismissFormAccessoryView]):
(-[WKWebView _dismissFilePicker]):
(-[WKWebView setTimePickerValueToHour:minute:]):
(-[WKWebView selectFormAccessoryPickerRow:]):
(-[WKWebView selectFormPopoverTitle]):
(-[WKWebView textContentTypeForTesting]):
(-[WKWebView formInputLabel]):
(-[WKWebView _didShowContextMenu]):
(-[WKWebView _didDismissContextMenu]):
(-[WKWebView _inputViewBounds]):
(-[WKWebView _uiTextSelectionRects]):
(-[WKWebView _scrollingTreeAsText]):
(-[WKWebView _stableStateOverride]):
(-[WKWebView _propertiesOfLayerWithID:]):
(-[WKWebView _doAfterResettingSingleTapGesture:]):
(-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]):
(-[WKWebView _dragCaretRect]):
(-[WKWebView _simulateLongPressActionAtLocation:]):
(-[WKWebView _simulateTextEntered:]):
(-[WKWebView _dynamicUserInterfaceTraitDidChange]):
(-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]):
(-[WKWebView _setDeviceOrientationUserPermissionHandlerForTesting:]):

  • UIProcess/API/mac/WKWebViewPrivateForTestingMac.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm.
  • UIProcess/API/mac/WKWebViewTestingMac.mm: Added.

(-[WKWebView _requestControlledElementID]):
(-[WKWebView _handleControlledElementIDResponse:]):
(-[WKWebView _handleAcceptedCandidate:]):
(-[WKWebView _didHandleAcceptedCandidate]):
(-[WKWebView _didUpdateCandidateListVisibility:]):
(-[WKWebView _forceRequestCandidates]):
(-[WKWebView _shouldRequestCandidates]):
(-[WKWebView _insertText:replacementRange:]):
(-[WKWebView _candidateRect]):
(-[WKWebView viewDidChangeEffectiveAppearance]):
(-[WKWebView _setHeaderBannerHeight:]):
(-[WKWebView _setFooterBannerHeight:]):
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]):
(-[WKWebView _activeMenu]):

  • UIProcess/Cocoa/PageClientImplCocoa.mm:
  • UIProcess/ios/PageClientImplIOS.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/WKMouseGestureRecognizer.h:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
  • UIProcess/mac/PageClientImplMac.mm:
  • UIProcess/mac/WKFullScreenWindowController.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Move testing-only SPI to new private headers to discourage first parties from using
them by mistake. Move test-only code to new files to reduce the size of WKWebView.mm.

  • MiniBrowser/mac/WK2BrowserWindowController.m:
  • TestWebKitAPI/EditingTestHarness.mm:
  • TestWebKitAPI/Tests/WebKit/ResponsivenessTimerCrash.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoading.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaBufferingPolicy.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspendMediaBuffering.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SnapshotStore.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCandidateTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewFirstResponderTests.mm:
  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:
  • TestWebKitAPI/Tests/ios/FocusPreservationTests.mm:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
  • WebKitTestRunner/ios/TestControllerIOS.mm:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:
9:46 PM Changeset in webkit [253464] by jh718.park@samsung.com
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix the build warnings below since r253353.
warning: unused parameter 'foo' [-Wunused-parameter]

Also, remove unnecessary tab spaces from Internals.h.

No new tests, no new behavioral changes.

Patch by Joonghun Park <jh718.park@samsung.com> on 2019-12-12

  • testing/Internals.cpp:

(WebCore::Internals::hasSandboxMachLookupAccessToGlobalName):

  • testing/Internals.h:
8:01 PM Changeset in webkit [253463] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Protect lifetime of frame and frameView objects
https://bugs.webkit.org/show_bug.cgi?id=205128

Patch by Jack Lee <Jack Lee> on 2019-12-12
Reviewed by Ryosuke Niwa.

Could not write a reproducible test case for this.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::focus):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::focusDocumentView):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::focusDocumentView):

6:13 PM Changeset in webkit [253462] by Jonathan Bedard
  • 3 edits in trunk/Tools

Python 3: Support serial webkitpy.common tests
https://bugs.webkit.org/show_bug.cgi?id=205162

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/common/system/executive.py:

(Executive.running_pids): Processess are encoded as bytes.

  • Scripts/webkitpy/common/system/executive_unittest.py:

(ExecutiveTest.serial_test_run_in_parallel): Use Python 3 compatible print statements.

5:57 PM Changeset in webkit [253461] by ysuzuki@apple.com
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Puts fixed-sized cells into IsoSubspace more
https://bugs.webkit.org/show_bug.cgi?id=205183

Reviewed by Saam Barati.

This patch puts many of fixed-sized cells into IsoSubspace.

  • Exception
  • JSPropertyNameEnumerator
  • RegExp
  • StructureChain
  • MapBucket
  • JSMapIterator
  • ScopedArgumentsTable
  • SetBucket
  • JSSetIterator
  • JSScriptFetchParameters
  • JSScriptFetcher
  • JSSourceCode
  • JSTemplateObjectDescriptor
  • runtime/Exception.h:
  • runtime/HashMapImpl.h:

(JSC::HashMapBucket::selectStructure): Deleted.
(JSC::HashMapBucket::info): Deleted.
(JSC::HashMapBucket::createStructure): Deleted.
(JSC::HashMapBucket::create): Deleted.
(JSC::HashMapBucket::createSentinel): Deleted.
(JSC::HashMapBucket::HashMapBucket): Deleted.
(JSC::HashMapBucket::setNext): Deleted.
(JSC::HashMapBucket::setPrev): Deleted.
(JSC::HashMapBucket::setKey): Deleted.
(JSC::HashMapBucket::setValue): Deleted.
(JSC::HashMapBucket::key const): Deleted.
(JSC::HashMapBucket::value const): Deleted.
(JSC::HashMapBucket::next const): Deleted.
(JSC::HashMapBucket::prev const): Deleted.
(JSC::HashMapBucket::deleted const): Deleted.
(JSC::HashMapBucket::makeDeleted): Deleted.
(JSC::HashMapBucket::offsetOfKey): Deleted.
(JSC::HashMapBucket::offsetOfValue): Deleted.
(JSC::HashMapBucket::offsetOfNext): Deleted.
(JSC::HashMapBucket::extractValue): Deleted.

  • runtime/JSMapIterator.h:
  • runtime/JSPropertyNameEnumerator.h:
  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/JSSetIterator.h:
  • runtime/JSSourceCode.h:
  • runtime/JSTemplateObjectDescriptor.h:
  • runtime/RegExp.h:
  • runtime/ScopedArgumentsTable.h:
  • runtime/StructureChain.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
5:53 PM Changeset in webkit [253460] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Wasm init-expr should reject mutable globals
https://bugs.webkit.org/show_bug.cgi?id=205191

Reviewed by Mark Lam.

JSTests:

  • wasm/js-api/global-error.js:

(assert.throws.new.WebAssembly.Module.bin):
(new.WebAssembly.Module): Deleted.
(assert.throws): Deleted.
(new.Number): Deleted.

Source/JavaScriptCore:

For init-expr, expr must be a constant[1]. Constant expr, which is defined in Wasm spec, requires that, if the expr is GetGlobal,
global's mutability is immutable. Previously our imported globals are always immutable, so we are using ASSERT instead of checking
mutability in WasmSectionParser. But now, we have ability to import mutable globals. We should check mutability when parsing init-expr.
We do not have this check previously, which leads to spec-correctness issue that we can initialize globals/elements/data-segments
with snapshot values of mutable globals (this is safe, but this is not spec-compliant, and it is not reasonable semantics), while
such an attempt should be rejected when compiling Wasm modules.

This patch adds necessary checks.

[1]: https://webassembly.github.io/spec/core/valid/instructions.html#valid-constant

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseInitExpr):

5:49 PM Changeset in webkit [253459] by Fujii Hironori
  • 3 edits in trunk/Tools

webkit-patch print-expectations fails to format TestExpectationLine with DumpJSConsoleLogInStdErr
https://bugs.webkit.org/show_bug.cgi?id=194283

Reviewed by Youenn Fablet.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser): Add DumpJSConsoleLogInStdErr to TestExpectationParser._expectation_tokens.

  • Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:

Added a tokenize test and round tip test for DumpJSConsoleLogInStdErr.

5:11 PM Changeset in webkit [253458] by mark.lam@apple.com
  • 7 edits
    1 add in trunk

Fix missing exception in JSValue::toWTFStringSlowCase().
https://bugs.webkit.org/show_bug.cgi?id=205176
<rdar://problem/57871899>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/missing-exception-check-in-JSValue-toWTFStringSlowCase.js: Added.

Source/JavaScriptCore:

Also fix all the new exception check failures that fall out of change.
Also replaced some ASSERTs with EXCEPTION_ASSERT so that we can run the exception
check validation on a release build.

  • dfg/DFGOperations.cpp:
  • jsc.cpp:

(dumpException):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncPush):

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toWTFStringSlowCase const):

5:09 PM Changeset in webkit [253457] by Chris Dumez
  • 25 edits
    15 adds
    101 deletes in trunk/LayoutTests

Re-sync service-workers web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205181

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync service-workers web-platform-tests from upstream 178762b6fce688979.

  • web-platform-tests/service-workers/*: Updated

LayoutTests:

  • tests-options.json:
4:53 PM Changeset in webkit [253456] by Chris Dumez
  • 1 edit
    10 adds in trunk/LayoutTests/imported/w3c

Unreviewed, land missing baselines from r253453.

  • web-platform-tests/workers/SharedWorker-MessageEvent-source.any-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-MessageEvent-source.any.worker-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-replace-EventHandler.any-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-replace-EventHandler.any.worker-expected.txt: Added.
  • web-platform-tests/workers/examples/onconnect.any-expected.txt: Added.
  • web-platform-tests/workers/examples/onconnect.any.worker-expected.txt: Added.
  • web-platform-tests/workers/semantics/interface-objects/003.any-expected.txt: Added.
  • web-platform-tests/workers/semantics/interface-objects/003.any.worker-expected.txt: Added.
  • web-platform-tests/workers/semantics/interface-objects/004.any-expected.txt: Added.
  • web-platform-tests/workers/semantics/interface-objects/004.any.worker-expected.txt: Added.
4:48 PM Changeset in webkit [253455] by jer.noble@apple.com
  • 4 edits
    2 adds in trunk/Source/WebCore

Add logging for MediaCapabilities.decodeInfo()
https://bugs.webkit.org/show_bug.cgi?id=205172

Reviewed by Eric Carlson.

Add logging for decodingInfo() that can emit string versions of both the input
MediaConfiguration and the output MediaCapabilitiesInfo objects.

  • Modules/mediacapabilities/MediaCapabilities.cpp:

(WebCore::MediaCapabilities::decodingInfo):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediacapabilities/MediaCapabilitiesLogging.cpp: Added.

(WebCore::toJSONObject):
(WebCore::toJSONString):
(WTF::LogArgument<WebCore::VideoConfiguration>::toString):
(WTF::LogArgument<WebCore::AudioConfiguration>::toString):
(WTF::LogArgument<WebCore::MediaConfiguration>::toString):
(WTF::LogArgument<WebCore::MediaDecodingConfiguration>::toString):
(WTF::LogArgument<WebCore::MediaEncodingConfiguration>::toString):
(WTF::LogArgument<WebCore::MediaCapabilitiesInfo>::toString):
(WTF::LogArgument<WebCore::MediaCapabilitiesDecodingInfo>::toString):
(WTF::LogArgument<WebCore::MediaCapabilitiesEncodingInfo>::toString):
(WTF::LogArgument<WebCore::ColorGamut>::toString):
(WTF::LogArgument<WebCore::HdrMetadataType>::toString):
(WTF::LogArgument<WebCore::TransferFunction>::toString):
(WTF::LogArgument<WebCore::MediaDecodingType>::toString):
(WTF::LogArgument<WebCore::MediaEncodingType>::toString):

  • platform/mediacapabilities/MediaCapabilitiesLogging.h: Added.
4:26 PM Changeset in webkit [253454] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add sandbox telemetry to mach lookup rules in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=205175

Reviewed by Brent Fulgham.

We have already added telemetry to many mach lookup rules, but some were missing telemetry.

No new tests, no behavior change.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:20 PM Changeset in webkit [253453] by Chris Dumez
  • 22 edits
    60 adds
    4 deletes in trunk/LayoutTests

Re-sync workers web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205180

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync workers web-platform-tests from upstream 178762b6fce688979e261f3ac8.

  • web-platform-tests/workers/*: Updated.

LayoutTests:

4:10 PM Changeset in webkit [253452] by sihui_liu@apple.com
  • 16 edits
    1 move in trunk/Source/WebKit

IndexedDB: make WebIDBServer a MessageReceiver to replace WebIDBConnection
https://bugs.webkit.org/show_bug.cgi?id=205145

Reviewed by Alex Christensen.

Work towards <rdar://problem/56908496>. Move message handling from WebIDBConnectionToClient to WebIDBServer.

Also, WebIDBConnectionClient now is owned by WebIDBServer instead of NetworkConnectionToWebProcess.

No behavior change.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::messageSenderConnection const):
(WebKit::WebIDBConnectionToClient::idbServer): Deleted.
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): Deleted.
(WebKit::WebIDBConnectionToClient::deleteDatabase): Deleted.
(WebKit::WebIDBConnectionToClient::openDatabase): Deleted.
(WebKit::WebIDBConnectionToClient::abortTransaction): Deleted.
(WebKit::WebIDBConnectionToClient::commitTransaction): Deleted.
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): Deleted.
(WebKit::WebIDBConnectionToClient::createObjectStore): Deleted.
(WebKit::WebIDBConnectionToClient::deleteObjectStore): Deleted.
(WebKit::WebIDBConnectionToClient::renameObjectStore): Deleted.
(WebKit::WebIDBConnectionToClient::clearObjectStore): Deleted.
(WebKit::WebIDBConnectionToClient::createIndex): Deleted.
(WebKit::WebIDBConnectionToClient::deleteIndex): Deleted.
(WebKit::WebIDBConnectionToClient::renameIndex): Deleted.
(WebKit::WebIDBConnectionToClient::putOrAdd): Deleted.
(WebKit::WebIDBConnectionToClient::getRecord): Deleted.
(WebKit::WebIDBConnectionToClient::getAllRecords): Deleted.
(WebKit::WebIDBConnectionToClient::getCount): Deleted.
(WebKit::WebIDBConnectionToClient::deleteRecord): Deleted.
(WebKit::WebIDBConnectionToClient::openCursor): Deleted.
(WebKit::WebIDBConnectionToClient::iterateCursor): Deleted.
(WebKit::WebIDBConnectionToClient::establishTransaction): Deleted.
(WebKit::WebIDBConnectionToClient::databaseConnectionPendingClose): Deleted.
(WebKit::WebIDBConnectionToClient::databaseConnectionClosed): Deleted.
(WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded): Deleted.
(WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): Deleted.
(WebKit::WebIDBConnectionToClient::openDBRequestCancelled): Deleted.
(WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer): Deleted.
(WebKit::WebIDBConnectionToClient::getAllDatabaseNames): Deleted.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::getAllDatabaseNames):
(WebKit::WebIDBServer::addConnection):
(WebKit::WebIDBServer::removeConnection):

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/IndexedDB/WebIDBServer.messages.in: Renamed from Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in.
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker):
(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): Deleted.
NetworkConnectionToWebProcess::establishIDBConnectionToServer was used to ensure WebIDBConnectionToCilent member
exists in NetworkConnectionToWebProcess. Now WebIDBConnectionToCilent is created in
WebIDBServer::addConnection(when NetworkConnectionToWebProcess is created), so we don't need the message to do
initialization.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::connectionToWebProcessClosed):

  • NetworkProcess/NetworkProcess.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::createObjectStore):
(WebKit::WebIDBConnectionToServer::deleteObjectStore):
(WebKit::WebIDBConnectionToServer::renameObjectStore):
(WebKit::WebIDBConnectionToServer::clearObjectStore):
(WebKit::WebIDBConnectionToServer::createIndex):
(WebKit::WebIDBConnectionToServer::deleteIndex):
(WebKit::WebIDBConnectionToServer::renameIndex):
(WebKit::WebIDBConnectionToServer::putOrAdd):
(WebKit::WebIDBConnectionToServer::getRecord):
(WebKit::WebIDBConnectionToServer::getAllRecords):
(WebKit::WebIDBConnectionToServer::getCount):
(WebKit::WebIDBConnectionToServer::deleteRecord):
(WebKit::WebIDBConnectionToServer::openCursor):
(WebKit::WebIDBConnectionToServer::iterateCursor):
(WebKit::WebIDBConnectionToServer::establishTransaction):
(WebKit::WebIDBConnectionToServer::databaseConnectionPendingClose):
(WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
(WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):
(WebKit::WebIDBConnectionToServer::openDBRequestCancelled):
(WebKit::WebIDBConnectionToServer::confirmDidCloseFromServer):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames):

4:02 PM Changeset in webkit [253451] by Chris Dumez
  • 14 edits
    4 copies
    52 adds in trunk/LayoutTests

Re-sync webmessaging web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205178

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync webmessaging web-platform-tests from upstream ab28e18f067f17a.

  • web-platform-tests/webmessaging/*: Updated

LayoutTests:

3:53 PM Changeset in webkit [253450] by Chris Dumez
  • 5 edits in trunk

Regression(r253394) swipe/basic-cached-back-swipe.html is timing out on iOS
https://bugs.webkit.org/show_bug.cgi?id=205173

Reviewed by Tim Horton.

Source/WebKit:

Test test was calling beginSimulatedSwipeInDirectionForTesting / completeSimulatedSwipeInDirectionForTesting
on the ViewGestureController. This was causing beginSwipeGesture() and endSwipeGesture() but not
willEndSwipeGesture(). This was causing the timeout since willEndSwipeGesture() now actually triggers the
load.

This patch also gets rid of the SnapshotRemovalTracker::SwipeAnimationEnd. We don't really need it since
we already wait for SnapshotRemovalTracker::RepaintAfterNavigation and we won't repaint until the swipe
animation is over (due to the layer tree being frozen during the swipe animation). The SwipeAnimationEnd
was causing trouble because the provisional load may not have started yet by the time endSwipeGesture()
is called, which means that the call to eventOccurred(SwipeAnimationEnd) would get ignored because the
SnapshotRemovalTracker is still paused (it gets unpaused when the provisional load actually starts).

  • UIProcess/ViewGestureController.h:
  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::willEndSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

LayoutTests:

  • platform/ios/swipe/basic-cached-back-swipe-expected.txt:
3:42 PM Changeset in webkit [253449] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

NetworkDataTaskCocoa and NetworkSessionCocoa should use public methods instead of being friends
https://bugs.webkit.org/show_bug.cgi?id=204242

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-12
Reviewed by Chris Dumez.

This makes them stay good abstractions, and probably could make a good meme about not having any friends.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
3:35 PM Changeset in webkit [253448] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, try to address flakiness of http/tests/cache-storage/page-cache-domcache-pending-promise.html on EWS

  • http/tests/cache-storage/page-cache-domcache-pending-promise.html:
3:29 PM Changeset in webkit [253447] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Source/ThirdParty/ANGLE

Cherry-pick r253383. rdar://problem/57713353

Produce a dummy libANGLE.a file to fool Apple's build test infrastructure
https://bugs.webkit.org/show_bug.cgi?id=205068
<rdar://problem/57713353>

Unreviewed followup to apply the script to Mac Catalyst builds.

Note that this phase can be removed in a few days when Apple's Test
Platform realises it doesn't need libANGLE.a any more.

  • ANGLE.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253383 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:29 PM Changeset in webkit [253446] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Source/ThirdParty/ANGLE

Cherry-pick r253333. rdar://problem/57713353

Produce a dummy libANGLE.a file to fool Apple's build test infrastructure
https://bugs.webkit.org/show_bug.cgi?id=205068
<rdar://problem/57713353>

Reviewed by Alex Christensen.

Create a dummy libANGLE.a file until our infrastructure realises it
doesn't need that file any more. Hopefully the fact that it isn't
really a static library, but just a text file, is ok.

  • ANGLE.xcodeproj/project.pbxproj: Add a new shell script phase that creates a dummy file.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253333 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:09 PM Changeset in webkit [253445] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r172814): Don't export inline SQLiteDatabase::disableThreadingChecks() method
<https://webkit.org/b/205140>

Reviewed by Alex Christensen.

  • platform/sql/SQLiteDatabase.h:

(WebCore::SQLiteDatabase::disableThreadingChecks):
Remove WEBCORE_EXPORT macro from inline method. This only seems
to occur on Release builds with compiler optimizations disabled.

1:46 PM Changeset in webkit [253444] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Don't assert in HTTPServer::respondToRequests when connections fail
https://bugs.webkit.org/show_bug.cgi?id=205072
<rdar://problem/57718266>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-12
Reviewed by Alexey Proskuryakov.

We have records that this assertion is being hit, but it's probably when things are being torn down after the test passes.
If someone actually has a connection failure that breaks a test, we'll notice elsewhere.

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondToRequests):

1:33 PM Changeset in webkit [253443] by ysuzuki@apple.com
  • 99 edits in trunk/Source

[JSC] Lock-down JSGlobalObject and derived classes in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205108

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch puts JSGlobalLexicalEnvironment and JSGlobalObject (and its derived classes including JSDOMWindow etc.) in IsoSubspace.
We were using addFinalizer feature to call destructors for these objects since they do not inherit JSDestructibleObject. But now
each derived classes has its IsoSubspace. So we do not need to use finalizer feature: just setting specialized HeapCellType works.

  • API/JSAPIGlobalObject.h:
  • API/JSCallbackObject.cpp:
  • API/glib/JSAPIWrapperGlobalObject.cpp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/SuperSampler.h:
  • heap/CellAttributes.h:
  • heap/FreeList.h:
  • heap/IsoHeapCellType.cpp:

(JSC::IsoHeapCellType::IsoHeapCellType):

  • heap/IsoHeapCellType.h:
  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::setIsFreeListed): Deleted.

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::setIsFreeListed):

  • jsc.cpp:

(GlobalObject::create): Deleted.
(GlobalObject::createStructure): Deleted.
(GlobalObject::javaScriptRuntimeFlags): Deleted.
(GlobalObject::finishCreation): Deleted.
(GlobalObject::addFunction): Deleted.

  • runtime/JSGlobalLexicalEnvironment.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::subspaceFor):

  • runtime/JSSegmentedVariableObject.cpp:

(JSC::JSSegmentedVariableObject::JSSegmentedVariableObject):
(JSC::JSSegmentedVariableObject::finishCreation):
(JSC::JSSegmentedVariableObject::destroy): Deleted.

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::subspaceFor):
(JSC::JSSegmentedVariableObject::classInfo const): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • testRegExp.cpp:

(GlobalObject::create): Deleted.
(GlobalObject::createStructure): Deleted.
(GlobalObject::finishCreation): Deleted.

Source/WebCore:

We put derived classes of JSGlobalObject in IsoSubspace in WebCore side too.

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWrapper.cpp:

(WebCore::globalObjectOutputConstraintSubspaceFor): Deleted.

  • bindings/js/JSDOMWrapper.h:
  • bindings/js/JSRemoteDOMWindowBase.h:
  • bindings/js/JSWindowProxy.h:
  • bindings/js/JSWorkerGlobalScopeBase.h:

(WebCore::JSWorkerGlobalScopeBase::subspaceFor):

  • bindings/js/JSWorkletGlobalScopeBase.h:

(WebCore::JSWorkletGlobalScopeBase::subspaceFor):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSVMClientData::subspaceForJSDOMWindow):
(WebCore::JSVMClientData::subspaceForJSDedicatedWorkerGlobalScope):
(WebCore::JSVMClientData::subspaceForJSRemoteDOMWindow):
(WebCore::JSVMClientData::subspaceForJSWorkerGlobalScope):
(WebCore::JSVMClientData::subspaceForJSServiceWorkerGlobalScope):
(WebCore::JSVMClientData::subspaceForJSPaintWorkletGlobalScope):
(WebCore::JSVMClientData::subspaceForJSWorkletGlobalScope):
(WebCore::JSVMClientData::forEachOutputConstraintSpace):
(WebCore::JSVMClientData::globalObjectOutputConstraintSpace): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GeneratePrototypeDeclaration):

  • bindings/scripts/test/JS/JSInterfaceName.cpp:
  • bindings/scripts/test/JS/JSMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlySetLike.cpp:
  • bindings/scripts/test/JS/JSSetLike.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:

(WebCore::JSTestGlobalObject::subspaceFor):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
  • bindings/scripts/test/JS/JSTestSerialization.cpp:
  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestStringifier.cpp:
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bridge/runtime_method.h:
1:32 PM Changeset in webkit [253442] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Paint seemingly blank runs (0 width, result of negative letter-spacing)
https://bugs.webkit.org/show_bug.cgi?id=205114
<rdar://problem/57837165>

Reviewed by Antti Koivisto.

Let's not intersect the run's rect with the damaged area when we don't yet have any paint
overflow information (This should rather use the line box set to identify the line range to paint.)

  • layout/displaytree/DisplayInlineContent.cpp:

(WebCore::Display:: const):

11:19 AM Changeset in webkit [253441] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix missing exception check in JSON Stringifier's gap function.
https://bugs.webkit.org/show_bug.cgi?id=205171
<rdar://problem/57871842>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/missing-exception-check-in-json-stringifier-gap.js: Added.

Source/JavaScriptCore:

  • runtime/JSONObject.cpp:

(JSC::gap):

11:09 AM Changeset in webkit [253440] by pvollan@apple.com
  • 12 edits in trunk

[iOS] Deny mach lookup access to content filter service in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=205077

Reviewed by Brent Fulgham.

Source/WebCore:

Add a global flag to ParentalControlsContentFilter to indicate whether the Web content filter extension has
been consumed. If the flag has been set, there is no need to check [WebFilterEvaluator isManagedSession],
since the flag will tell if filtering is required.

The API test ContentFiltering.LazilyLoadPlatformFrameworks has been modified to pass after this change.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/ParentalControlsContentFilter.h:
  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::ParentalControlsContentFilter::enabled):
(WebCore::ParentalControlsContentFilter::setHasConsumedSandboxExtension):

Source/WebKit:

Mach lookup access to the content filter service in the WebContent process is only needed if
[WebFilterEvaluator isManagedSession] evaluates to true. If this is the case, issue the needed
mach lookup sandbox extension to the WebContent process, where it will be consumed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

With this patch, the WebContentAnalysis framework will not be loaded in the WebContent process unless
[WebFilterEvaluator isManagedSession] returns YES. Swizzle this method to return YES in the UI process.

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:

(isManagedSession):
(TEST):

10:45 AM Changeset in webkit [253439] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION (r229930, r231063): WebKitLegacy.xcconfig overwrites OTHER_CFLAGS, OTHER_CPLUSPLUSFLAGS and OTHER_LDFLAGS from Base.xcconfig
<https://webkit.org/b/205144>

Reviewed by Alexey Proskuryakov.

  • Configurations/WebKitLegacy.xcconfig:

(OTHER_CFLAGS): Add back $(inherited) to fix the bug.
(OTHER_CFLAGS_COCOA_TOUCH): Add variable to hold value.
(OTHER_CFLAGS_COCOA_TOUCH_YES): Remove unused $(inherited).
(OTHER_CFLAGS_COCOA_TOUCH_NO): Ditto.
(OTHER_CPLUSPLUSFLAGS): Add back $(inherited) to fix the
bug, and don't assume $(OTHER_CFLAGS) is identical to this.
(OTHER_LDFLAGS): Add back $(inherited) to fix the bug.

10:35 AM Changeset in webkit [253438] by Alan Coon
  • 7 edits in branches/safari-609.1.11.3-branch/Source

Versioning.

10:33 AM Changeset in webkit [253437] by yurys@chromium.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Error: Can't make a ContentView for an unknown representedObject of type: CallFrame
https://bugs.webkit.org/show_bug.cgi?id=204823

Reviewed by Devin Rousso.

If no type is stored in the cookie matching by type should fail.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie.treeElementMatchesCookie):
(WI.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):

10:33 AM Changeset in webkit [253436] by Chris Dumez
  • 4 edits in trunk/LayoutTests

window.AudioContext / window.OfflineAudioContext should not be enumerable
https://bugs.webkit.org/show_bug.cgi?id=205163

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

LayoutTests:

  • resources/testharnessreport.js:
10:27 AM Changeset in webkit [253435] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/whitespace/023.html
https://bugs.webkit.org/show_bug.cgi?id=205170
<rdar://problem/57881365>

Reviewed by Antti Koivisto.

Do not try to find expansion opportunities in content with preserved whitespace.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::ContinousContent::ContinousContent):
(WebCore::Layout::LineBuilder::ContinousContent::append):
(WebCore::Layout::LineBuilder::ContinousContent::close):

10:26 AM Changeset in webkit [253434] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [Mac wk1] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205168

Unreviewed test gardneing

  • platform/mac-wk1/TestExpectations:
10:24 AM Changeset in webkit [253433] by Alan Coon
  • 1 copy in branches/safari-609.1.11.3-branch

New branch.

10:07 AM Changeset in webkit [253432] by mark.lam@apple.com
  • 6 edits
    1 add in trunk

DFG and FTL expects String.prototype to not qualify for StringObjectUse.
https://bugs.webkit.org/show_bug.cgi?id=205147
<rdar://problem/57748888>

Reviewed by Saam Barati.

JSTests:

  • stress/ftl-expects-string-prototype-to-not-be-StringObjectUse.js: Added.

Source/JavaScriptCore:

Currently, String.prototype's JSType is StringObjectType.

However, in the compiler, there are a few places that expect that the
String.prototype value to not qualify as StringObjectUse. These places are:

  1. SpeculatedType.cpp's speculationFromClassInfo() will speculate SpecObjectOther for the StringPrototype object.
  2. DFGFixupPhase.cpp's addCheckStructureForOriginalStringObjectUse() only emits a CheckStructure against globalObject->stringObjectStructure(). It does not check against String.prototype's structure.

To resolve this discrepancy, we can either do:

  1. change String.prototype's JSType to something else.
  2. fix the places in the compiler to accept String.prototype as StringObjectUse.

(a) is trivial and cheap to do. (b) is doable but will result in less optimal
compiled code. Since passing String.prototype as a StringObject is expected to
be a rare thing in JS code, it's not worth incurring the cost for (b). In this
patch, we apply (a) to fix the discrepancy.

Also added a specialization case to FOR_EACH_JS_DYNAMIC_CAST_JS_TYPE_OVERLOAD
for jsDynamicCast<StringObject> for completeness.

  • runtime/JSCast.h:
  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/StringPrototype.h:
9:51 AM Changeset in webkit [253431] by Patrick Griffis
  • 8 edits in trunk

[SOUP] Use new API for strict secure cookies
https://bugs.webkit.org/show_bug.cgi?id=169356

Reviewed by Michael Catanzaro.

Source/WebCore:

The new soup API implements this spec:

https://tools.ietf.org/html/draft-ietf-httpbis-cookie-alone-01

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::setCookies):

Tools:

Update libsoup to fix a secure cookie test

  • gtk/jhbuild.modules:
  • wpe/jhbuild.modules:

LayoutTests:

Remove expected failures for secure cookie tests

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
9:49 AM Changeset in webkit [253430] by don.olmstead@sony.com
  • 4 edits in trunk

[CMake] Add LibPSL::LibPSL target
https://bugs.webkit.org/show_bug.cgi?id=205149

Reviewed by Michael Catanzaro.

.:

Add a LibPSL target into the FindLibPSL module.

  • Source/cmake/FindLibPSL.cmake:

Source/WebCore:

Use LibPSL target.

  • platform/Curl.cmake:
9:25 AM Changeset in webkit [253429] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: (r251677) imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205164

Unreviewed test gardening

  • platform/mac/TestExpectations:
7:48 AM Changeset in webkit [253428] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/whitespace/simple-line-layout-tab-position.html
https://bugs.webkit.org/show_bug.cgi?id=205160
<rdar://problem/57876474>

Reviewed by Antti Koivisto.

Use the content box (and not the border box) as the start position when measuring text and also include
the not-yet committed content.
e.g. <pre style="padding: 100px;">text[tab character]</pre>
When we measure the width of the [tab] character, the start position input to the text measuring is

  1. relative to the content box (0px vs 100px)
  2. includes the [text] not-yet committed content width

This patch also ensures that we only fast-path the collapsible whitespace characters.

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):

7:18 AM Changeset in webkit [253427] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

REGRESSION(r252979): Avoid unnecessary work when searching for the flow when constructing line layout iteratorAvoid unnecessary work when searching for the flow when constructing line layout iterator
https://bugs.webkit.org/show_bug.cgi?id=205155
<rdar://problem/57846936>

Reviewed by Zalan Bujtas.

We unecessarily searched the ancestor chain flow the RenderFlow. We can avoid this
for now since we know only candidate it the direct parent.

  • rendering/line/LineLayoutTraversal.cpp:

(WebCore::LineLayoutTraversal::lineLayoutSystemFlowForRenderer):
(WebCore::LineLayoutTraversal::firstTextBoxFor):
(WebCore::LineLayoutTraversal::firstTextBoxInTextOrderFor):
(WebCore::LineLayoutTraversal::elementBoxFor):
(WebCore::LineLayoutTraversal::flowForText): Deleted.

6:22 AM Changeset in webkit [253426] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Roll-out part of revision 253275 related to rotation handling
https://bugs.webkit.org/show_bug.cgi?id=205156

Unreviewed.

These changes only work for a remote source, not a local one.
Roll-them out until we have a proper fix.

  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::m_source):
(WebCore::RealtimeVideoSource::sourceSettingsChanged):

  • platform/mediastream/RealtimeVideoSource.h:
3:05 AM Changeset in webkit [253425] by Carlos Garcia Campos
  • 4 edits
    1 add in trunk/Source

WebDriver: tests is_element_enabled/enabled.py::test_fieldset_disabled_descendant are failing
https://bugs.webkit.org/show_bug.cgi?id=204700

Reviewed by Carlos Alberto Lopez Perez.

Source/WebDriver:

Fixes: imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[button]

imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[input]
imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[select]
imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[textarea]

  • CMakeLists.txt: Add ElementEnabled.js to compilation.
  • Session.cpp:

(WebDriver::Session::isElementEnabled): Use ElementEnabled atom instead.

Source/WebKit:

Add ElementEnabled atom to easily implement is element enabled command.

  • UIProcess/Automation/atoms/ElementEnabled.js: Added.

(isEnabled.isDisabledAttributeSupported):
(isEnabled.findParent):
(isEnabled):

1:49 AM Changeset in webkit [253424] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo

  • platform/wincairo/TestExpectations: Unskip fast/text.
1:36 AM Changeset in webkit [253423] by ysuzuki@apple.com
  • 32 edits
    2 copies in trunk/Source/JavaScriptCore

[JSC] IsoHeapCellType should have destroy function member instead of specializing template function
https://bugs.webkit.org/show_bug.cgi?id=205152

Reviewed by Saam Barati.

We were specializing MarkedBlock::Handle::specializedSweep in 5 different ways for each IsoSubspace-ed cell.
This bloats binary. Instead of specializing it with CellType, we specialize it with one functor, which invokes
function pointer held by IsoHeapCellType. This requires one indirect function call per cell. But this is OK since,

  1. We were using JSDestructibleObject's cell->classInfo->methodTable.destroy function call to dispatch destruction, before IsoSubspace replaces them with IsoHeapCellType-based destruction. Compared to that, the new one is still saving one pointer chasing basically (classInfo dereference, we assume cell deference is no cost since it will be done anyway).
  2. We still keep JSString's destroy function inlining by using IsoInlinedHeapCellType. This is important since it is critical to performance and we had JSStringHeapCellType before we replaced it with IsoHeapCellType. But IsoInlinedHeapCellType specialization is for only one class so generated binary size is the same to the old code using JSStringHeapCellType.

This saves 480KB binary-size in JavaScriptCore. And more importantly, after this patch, adding IsoSubspace
will not bloat code, so we can simply put things into IsoSubspace.

This patch also removes using namespace JSC; in global code in JavaScriptCore except for API codes, since
it starts causing build failure due to unified builds: API defines JSType enum in a global scope, which is
different from our JSC::JSType. If we do using namespace JSC; in a global scope, it can lead to ambiguity of
looking up.

  • API/JSHeapFinalizerPrivate.cpp:

(JSContextGroupAddHeapFinalizer):
(JSContextGroupRemoveHeapFinalizer):

  • API/JSHeapFinalizerPrivate.h:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/AbstractMacroAssembler.cpp:
  • bindings/ScriptFunctionCall.cpp:
  • bindings/ScriptObject.cpp:
  • bindings/ScriptValue.cpp:
  • heap/IsoHeapCellType.cpp: Copied from Source/JavaScriptCore/assembler/AbstractMacroAssembler.cpp.

(JSC::IsoHeapCellType::finishSweep):
(JSC::IsoHeapCellType::destroy):

  • heap/IsoHeapCellType.h:
  • heap/IsoInlinedHeapCellType.h: Copied from Source/JavaScriptCore/heap/IsoHeapCellType.h.
  • heap/MutatorState.cpp:
  • heap/Synchronousness.cpp:
  • inspector/InjectedScriptHost.cpp:
  • inspector/InjectedScriptManager.cpp:
  • inspector/JSGlobalObjectConsoleClient.cpp:
  • inspector/JSGlobalObjectInspectorController.cpp:
  • inspector/JSGlobalObjectScriptDebugServer.cpp:
  • inspector/JSInjectedScriptHost.cpp:
  • inspector/JSInjectedScriptHostPrototype.cpp:
  • inspector/JSJavaScriptCallFrame.cpp:
  • inspector/JSJavaScriptCallFramePrototype.cpp:
  • inspector/JavaScriptCallFrame.cpp:
  • inspector/PerGlobalObjectWrapperWorld.cpp:
  • inspector/ScriptCallStackFactory.cpp:
  • inspector/ScriptDebugServer.cpp:
  • inspector/agents/InspectorHeapAgent.cpp:
  • inspector/agents/InspectorScriptProfilerAgent.cpp:
  • inspector/agents/JSGlobalObjectAuditAgent.cpp:
  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
  • inspector/agents/JSGlobalObjectRuntimeAgent.cpp:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
12:48 AM Changeset in webkit [253422] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Remove debug ASSERT in PeerConnectionBackend
https://bugs.webkit.org/show_bug.cgi?id=205061

Reviewed by Eric Carlson.

Remove two wrong debug asserts.
Move the isClosed check just before resolving/rejecting the promise since at resume time, a lot might happen,
including closing the peer connection.
Covered by tests no longer crashing.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
(WebCore::PeerConnectionBackend::addIceCandidateFailed):

12:24 AM Changeset in webkit [253421] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r251227): Uncaught Exception: undefined is not an object (evaluating 'target.DOMAgent.setInspectModeEnabled')
https://bugs.webkit.org/show_bug.cgi?id=205148

Reviewed by Joseph Pecoraro.

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setTimelineProfilingEnabled):
(InspectorFrontendAPI.setElementSelectionEnabled):
If there are no targets available yet (WI.targetsAvailable()), then wait for targets to
be available (WI.whenTargetsAvailable()) before performing the intended logic, as the
InspectorFrontendAPI only waits for the backend connection to be established before
dispatching, meaning that there may not be a page target yet. Other InspectorFrontendAPI
functions don't need to be changed because they don't cause commands to be invoked.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.set inspectModeEnabled):
Drive-by: don't assume that inspect mode is disabled if an error is thrown.

  • UserInterface/Base/Main.js:

Drive-by: remove duplicate function WI._toggleInspectMode as it already exists.

Dec 11, 2019:

11:03 PM Changeset in webkit [253420] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo

  • platform/wincairo/TestExpectations: Skip editing/async-clipboard.
10:31 PM Changeset in webkit [253419] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Add a missing entry in EnumTraits<WebCore::DisplayList::ItemType>
https://bugs.webkit.org/show_bug.cgi?id=205154
<rdar://problem/57864862>

Reviewed by Tim Horton.

Add a missing ItemType::SetCTM. This will be tested in a future patch by enabling canvas layout tests with
GPU process enabled.

  • platform/graphics/displaylists/DisplayListItems.h:
7:51 PM Changeset in webkit [253418] by Chris Dumez
  • 7 edits in trunk

Trying to set toString / valueOf on a cross-origin Location object should throw a SecurityError
https://bugs.webkit.org/show_bug.cgi?id=205143

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/frame.html:

Resync from upstream ab28e18f067f17a76d9. This was causing 3 sanity checks in cross-origin-objects.html
to fail.

Source/WebCore:

Trying to set toString / valueOf on a cross-origin Location object should throw a SecurityError.
We previously silently ignored those.

No new tests, rebaselined existing test.

fast/dom/Window/Location/location-override-toString.html also makes sure we still cannot override the
value to location.toString (same origin).

  • bindings/js/JSLocationCustom.cpp:

(WebCore::putCommon):

7:49 PM Changeset in webkit [253417] by Wenson Hsieh
  • 9 edits in trunk

Implement DisplayListRecorder::Recorder::getCTM and DisplayListRecorder::Recorder::setCTM
https://bugs.webkit.org/show_bug.cgi?id=205139

Reviewed by Simon Fraser.

Source/WebCore:

Implements these two methods on Recorder, which are invoked from GraphicsContext::setCTM and
GraphicsContext::getCTM, respectively. See below for more details.

Additionally rebaselines displaylists/extent-includes-transforms.html.

  • platform/graphics/displaylists/DisplayList.h:

Add a new type to represent the SetCTM display list item.

(WebCore::DisplayList::Item::isStateItemType):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::SetCTM::SetCTM):
(WebCore::DisplayList::SetCTM::apply const):
(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetCTM::create):
(WebCore::DisplayList::SetCTM::transform const):
(WebCore::DisplayList::SetCTM::encode const):
(WebCore::DisplayList::SetCTM::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

Add DisplayList::SetCTM, which represents a call to set the current transformation matrix on the graphics
context. This is very similar to ConcatCTM.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::setCTM):

Set the current state's CTM to the new value. Additionally, update clipBounds by applying the inverse
transformation matrix of the inverse of the original CTM, multiplied by the new CTM. This is because setting
the CTM from to B from A is equivalent to multiplying A by A_inverse * B, so we want to map the clip
rect through the inverse of this matrix, (A_inverse * B)_inverse.

(WebCore::DisplayList::Recorder::getCTM):

Return the current CTM by asking the topmost state on the stack, and ignore the IncludeDeviceScale flag for the
time being.

(WebCore::DisplayList::Recorder::ContextState::setCTM):

  • platform/graphics/displaylists/DisplayListRecorder.h:

LayoutTests:

  • displaylists/extent-includes-transforms-expected.txt:
  • platform/mac-wk1/displaylists/extent-includes-transforms-expected.txt:
6:24 PM Changeset in webkit [253416] by Alan Coon
  • 3 edits
    1 add in tags/Safari-609.1.12

Cherry-pick r253280. rdar://problem/57733405

[WebAssembly] Fix LLIntGenerator's checkConsistency contract
https://bugs.webkit.org/show_bug.cgi?id=204998
<rdar://problem/57733405>

Reviewed by Mark Lam.

JSTests:

  • wasm/regress/stack-consistency.js: Added.

Source/JavaScriptCore:

We check the consistency of the WebAssembly parser's expression stack every time the LLIntGenerator calls
push to allocate a new stack value. However, if we call push more than once (e.g. in a loop), the stack
is no longer consistent, since those values have not yet been placed in the parser's expression stack, so
the generator and parser's stacks are out of sync. Instead, whenever we need to push multiple values, we
should first manually call checkConsistency before any pushes, and all pushes after that should be replaced
with push(NoConsistencyCheck).

  • wasm/WasmLLIntGenerator.cpp: (JSC::Wasm::LLIntGenerator::callInformationForCaller): (JSC::Wasm::LLIntGenerator::addArguments): (JSC::Wasm::LLIntGenerator::addLocal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253280 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:22 PM Changeset in webkit [253415] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Tools

Cherry-pick r253328. rdar://problem/57759297

Disable video capture in UIProcess for WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=205054

Reviewed by Eric Carlson.

  • WebKitTestRunner/TestOptions.h: Some tests are still flaky as noted in bug 205053 and this option is still experimental.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253328 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:15 PM Changeset in webkit [253414] by Alan Coon
  • 1 copy in tags/Safari-609.1.12

Tag Safari-609.1.12.

6:08 PM Changeset in webkit [253413] by Alan Coon
  • 1 copy in branches/safari-609.1.12-branch

New branch.

6:05 PM Changeset in webkit [253412] by Alan Coon
  • 1 delete in branches/safari-609.1.12-branch

Delete branch.

5:38 PM Changeset in webkit [253411] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: Console: unable to switch execution contexts
https://bugs.webkit.org/show_bug.cgi?id=205102
<rdar://problem/57748393>

Reviewed by Brian Burg.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole):
Wait to initialize the main execution context path component until we actually have a main
execution context.

(WI.QuickConsole.prototype._pageTargetTransitioned):
Remove unnecessary duplicate early return.

(WI.QuickConsole.prototype._initializeMainExecutionContextPathComponent):
Restore the link to the next path component if the main execution context path component is
recreated when there already exist other execution contexts.

(WI.QuickConsole.prototype._selectExecutionContext):
Remove unnecessary assertion.

(WI.QuickConsole.prototype._removeExecutionContextPathComponentForFrame):
When the execution context of the main frame changes, recreate the main execution context
path component so it has the right representedObject.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WI.HierarchicalPathNavigationItem.prototype.update):
Only hide the tooltip if we're not sizeToFit as otherwise we never unhide it due to an
early return (sizeToFit just makes everything visible).

5:28 PM Changeset in webkit [253410] by Jonathan Bedard
  • 3 edits in trunk/Tools

Python 3: Support serial ServerProcess tests
https://bugs.webkit.org/show_bug.cgi?id=205146

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.write): Flush stdin after writing to it.

  • Scripts/webkitpy/port/server_process_unittest.py:

(TestServerProcess): print to stderr in Python 2/3 compatible way.
(TestServerProcess.serial_test_basic): ServerProcess speaks in bytes.
(TestServerProcess.serial_test_read_after_process_exits): Ditto.
(TestServerProcess.serial_test_process_crashing): Ditto.
(TestServerProcess.serial_test_process_crashing_no_data): Ditto.

5:23 PM Changeset in webkit [253409] by Alan Coon
  • 1 copy in branches/safari-609.1.12-branch

New branch.

5:17 PM Changeset in webkit [253408] by Alan Coon
  • 1 delete in branches/safari-609.1.12-branch

Delete branch.

5:13 PM Changeset in webkit [253407] by Alan Coon
  • 2 edits in branches/safari-609.1.12-branch/Tools

Cherry-pick r253328. rdar://problem/57759297

Disable video capture in UIProcess for WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=205054

Reviewed by Eric Carlson.

  • WebKitTestRunner/TestOptions.h: Some tests are still flaky as noted in bug 205053 and this option is still experimental.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253328 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:54 PM Changeset in webkit [253406] by don.olmstead@sony.com
  • 6 edits
    1 add in trunk

[CMake] Add OpenJPEG find module
https://bugs.webkit.org/show_bug.cgi?id=204657

Reviewed by Michael Catanzaro.

.:

Add a FindOpenJPEG CMake module. Update GTK and WPE ports to use this and
require v2.2.0 or later. Add support for OpenJPEG in WinCairo port.

  • Source/cmake/FindOpenJPEG.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/OptionsWinCairo.cmake:

Source/WebCore:

Use OpenJPEG target.

  • platform/ImageDecoders.cmake:
4:40 PM Changeset in webkit [253405] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: hovering over an invalid value while holding ⌘ doesn't change the color of the text
https://bugs.webkit.org/show_bug.cgi?id=205039

Reviewed by Brian Burg.

Only apply a color or -webkit-text-decoration-color when either the ⌘ key is not pressed
or if the mouse is not actively hovering over the node when the ⌘ is pressed.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .name:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .name:not(:hover, .editing)): Added.
(.spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value:not(:hover, .editing)): Added.
(.spreadsheet-style-declaration-editor .property.disabled):
(.spreadsheet-style-declaration-editor > .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) > .content > *:not(.name, .value-container), .spreadsheet-style-declaration-editor > .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) > .content > .value-container > *:not(.value), body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) > .content > :matches(.name, value-container):not(.editing), body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) > .content > .value-container > value:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) > .content > :matches(.name, value-container):not(:hover, .editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) > .content > .value-container > .value:not(:hover, .editing)): Added.
(.spreadsheet-style-declaration-editor > .property.invalid-name:not(.disabled) > .content > *:not(.name, .value-container), .spreadsheet-style-declaration-editor > .property.invalid-name:not(.disabled) > .content > .value-container > *:not(.value), body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property.invalid-name:not(.disabled) > .content > :matches(.name, .value-container):not(.editing), body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property.invalid-name:not(.disabled) > .content > .value-container > .value:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property.invalid-name:not(.disabled) > .content > :matches(.name, .value-container):not(:hover, .editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property.invalid-name:not(.disabled) > .content > .value-container > .value:not(:hover, .editing)): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property.invalid-value:not(.disabled) > .content > .value:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property.invalid-value:not(.disabled) > .content > .value:not(:hover, .editing)): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value:not(.editing) .token-link, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value:not(:hover, .editing) .token-link): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value:not(.editing) .token-string, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value:not(:hover, .editing) .token-string): Added.
(body.meta-key-pressed .spreadsheet-css-declaration:not(.locked) > .spreadsheet-style-declaration-editor > .property > .content :matches(.name, .value):not(.editing):hover): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value:not(.editing) .token-comment, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content > .value:not(:hover, .editing) .token-comment): Added.
(.spreadsheet-style-declaration-editor .property:not(.disabled) .name): Deleted.
(.spreadsheet-style-declaration-editor .property:not(.disabled) .value): Deleted.
(.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *): Deleted.
(.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled) .content > *): Deleted.
(.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .content .value): Deleted.
(.spreadsheet-style-declaration-editor .property:not(.disabled) .token-link): Deleted.
(.spreadsheet-style-declaration-editor .property:not(.disabled) .token-string): Deleted.
(.meta-key-pressed .spreadsheet-css-declaration:not(.locked) :matches(.name, .value):not(.editing):hover): Deleted.
(.spreadsheet-style-declaration-editor .property:not(.disabled) .token-comment): Deleted.

4:39 PM Changeset in webkit [253404] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r253173): Console: evaluating a command should automatically scroll to it's result
https://bugs.webkit.org/show_bug.cgi?id=205105

Reviewed by Brian Burg.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView):
(WI.LogContentView.prototype.get scrollableElements):
(WI.LogContentView.prototype._updateMessagesSelection):
(WI.LogContentView.prototype._highlightSearchMatchAtIndex):
(WI.LogContentView.prototype.layout): Deleted.
(WI.LogContentView.prototype._ensureMessageIsVisible): Deleted.
(WI.LogContentView.prototype._positionForMessage): Deleted.
Now that this uses display: flex;, the actual scrollable element is the messagesElement,
so use that instead when manually setting the scrollTop. Use scrollIntoViewIfNeeded when
revealing search results instead of any custom scroll offset calculations.

  • UserInterface/Views/LogContentView.css:

(.content-view.log > .hidden-messages-banner):
Drive-by: ensure that the hidden messages banner doesn't shrink.

4:25 PM Changeset in webkit [253403] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: simplify the text of the script blackboxing context menu item
https://bugs.webkit.org/show_bug.cgi?id=205099

Reviewed by Brian Burg.

"Blackbox script to ignore it when debugging" is a bit too long for a context menu item.
We should use something simpler, like "Blackbox Script".

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • Localizations/en.lproj/localizedStrings.js:
4:23 PM Changeset in webkit [253402] by Devin Rousso
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: replace all "Remove" context menu items with "Delete" to be consistent
https://bugs.webkit.org/show_bug.cgi?id=205098

Reviewed by Brian Burg.

  • UserInterface/Views/BlackboxSettingsView.js:

(WI.BlackboxSettingsView.prototype._addRow):

  • UserInterface/Views/BootstrapScriptTreeElement.js:

(WI.BootstrapScriptTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/BreakpointActionView.js:

(WI.BreakpointActionView):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):
Drive-by: if a local override exists for the given source code, add an item for

enabling/disabling and deleting it.

  • UserInterface/Views/LocalResourceOverrideTreeElement.js:

(WI.LocalResourceOverrideTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WI.ProbeSetDetailsSection):

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WI.ScopeChainDetailsSidebarPanel.prototype._objectTreeElementAddContextMenuItems):

  • Localizations/en.lproj/localizedStrings.js:
4:17 PM Changeset in webkit [253401] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a nit after r253366

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:

Change the parameter type of the completion handler from NSData to NSString.

3:45 PM Changeset in webkit [253400] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove unused Frame parameter from moveByGranularityRespectingWordBoundary() and take const VisiblePosition&
https://bugs.webkit.org/show_bug.cgi?id=205137

Reviewed by Wenson Hsieh.

moveByGranularityRespectingWordBoundary() never makes use of the passed Frame and does not mutate the
passed VisiblePosition. So, do not accept the former and take the latter as a const lvalue reference.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::moveByGranularityRespectingWordBoundary):
(WebKit::WebPage::requestDocumentEditingContext):

3:43 PM Changeset in webkit [253399] by dbates@webkit.org
  • 4 edits in trunk

UIWKDocumentContext returns 0 character rects when caret is at beginning or end of text
https://bugs.webkit.org/show_bug.cgi?id=205135
<rdar://problem/56887914>

Reviewed by Wenson Hsieh.

Source/WebKit:

When the specified position to move from is at the beginning or end of the text then return
the position of the beginning or end of the nearest word based on the specified direction.

Currently we always return the null position. As a result we do not compute a valid
character range to convert to rectangles.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::moveByGranularityRespectingWordBoundary):

Tools:

Add tests that request rects when the insertion point is at the beginning or end of the text.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

3:19 PM Changeset in webkit [253398] by jiewen_tan@apple.com
  • 33 edits
    4 copies
    1 move
    1 add in trunk

[WebAuthn] Combine AuthenticatorResponse and PublicKeyCredentialData
https://bugs.webkit.org/show_bug.cgi?id=190783
<rdar://problem/57781183>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch combines AuthenticatorResponse and PublicKeyCredentialData, and therefore renames
PublicKeyCredentialData to AuthenticatorResponseData as well. The complexity of WebKit's CTAP
implementation has reached the point that PublicKeyCredentialData is not appropriate to represent
all the different type of responses from authenticators anymore. For example, authenticatorGetNextAssertion
depends on the numberOfCredentials member from authenticatorGetAssertion response to function, but
numberOfCredentials is not used anywhere else. Therefore, a polymorphic type is needed to
represent different responses from authenticators instead of an uniform one, i.e., PublicKeyCredentialData.

AuthenticatorResponse seems to be the best fit. However, there are some limitations:
1) it is a WebIDL interface, and therefore is RefCounted. RefCounted objects cannot be serialized through
IPC. To solve this, AuthenticatorResponseData (PublicKeyCredentialData) is kept as an intermediate type
that is only used during IPC.
2) it doesn't contain all the information from an actual authenticator response. To solve this, it
has been enlarged to include all members from PublicKeyCredential. After this patch, PublicKeyCredential
will be a thin wrapper on top of AuthenticatorResponse.

Covered by existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/webauthn/AuthenticationExtensionsClientOutputs.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
  • Modules/webauthn/AuthenticationExtensionsClientOutputs.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.

This is separated from PublicKeyCredential such that AuthenticatorResponse can include it.

  • Modules/webauthn/AuthenticatorAssertionResponse.cpp: Added.

(WebCore::AuthenticatorAssertionResponse::create):
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):
(WebCore::AuthenticatorAssertionResponse::data const):

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

(WebCore::AuthenticatorAssertionResponse::create): Deleted.
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse): Deleted.

  • Modules/webauthn/AuthenticatorAttestationResponse.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorAttestationResponse.h.

(WebCore::AuthenticatorAttestationResponse::create):
(WebCore::AuthenticatorAttestationResponse::AuthenticatorAttestationResponse):
(WebCore::AuthenticatorAttestationResponse::data const):

  • Modules/webauthn/AuthenticatorAttestationResponse.h:

(WebCore::AuthenticatorAttestationResponse::create): Deleted.
(WebCore::AuthenticatorAttestationResponse::AuthenticatorAttestationResponse): Deleted.

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinator::create const):
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):

  • Modules/webauthn/AuthenticatorCoordinatorClient.h:
  • Modules/webauthn/AuthenticatorResponse.cpp: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp.

(WebCore::AuthenticatorResponse::tryCreate):
(WebCore::AuthenticatorResponse::data const):
(WebCore::AuthenticatorResponse::extensions const):
(WebCore::AuthenticatorResponse::setClientDataJSON):
(WebCore::AuthenticatorResponse::clientDataJSON const):
(WebCore::AuthenticatorResponse::AuthenticatorResponse):

  • Modules/webauthn/AuthenticatorResponse.h:

(WebCore::AuthenticatorResponse::rawId const):
(WebCore::AuthenticatorResponse::setExtensions):
(WebCore::AuthenticatorResponse::AuthenticatorResponse): Deleted.
(WebCore::AuthenticatorResponse::clientDataJSON const): Deleted.

  • Modules/webauthn/AuthenticatorResponseData.h: Renamed from Source/WebCore/Modules/webauthn/PublicKeyCredentialData.h.

(WebCore::AuthenticatorResponseData::encode const):
(WebCore::AuthenticatorResponseData::decode):

  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredential::create):
(WebCore::PublicKeyCredential::rawId const):
(WebCore::PublicKeyCredential::getClientExtensionResults const):
(WebCore::PublicKeyCredential::PublicKeyCredential):
(WebCore::PublicKeyCredential::tryCreate): Deleted.

  • Modules/webauthn/PublicKeyCredential.h:
  • Modules/webauthn/PublicKeyCredential.idl:
  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::readCTAPMakeCredentialResponse):
(fido::readCTAPGetAssertionResponse):

  • Modules/webauthn/fido/DeviceResponseConverter.h:

A more appropriate derived type of AuthenticatorResponse is used to replace PublicKeyCredentialData.

  • Modules/webauthn/fido/U2fResponseConverter.cpp:

(fido::readU2fRegisterResponse):
(fido::readU2fSignResponse):

  • Modules/webauthn/fido/U2fResponseConverter.h:

A more appropriate derived type of AuthenticatorResponse is used to replace PublicKeyCredentialData.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Code in WebKit are changed to use AuthenticatorResponse and its subtypes.

  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::respondReceived):
(WebKit::AuthenticatorManager::invokePendingCompletionHandler):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived const):
(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):

  • UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:

(WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived):
(WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived):

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):
Updates tests accordingly.

2:24 PM Changeset in webkit [253397] by eric.carlson@apple.com
  • 36 edits in trunk/Source/WebCore

Add encoders for MediaPlayerEnum enums
https://bugs.webkit.org/show_bug.cgi?id=205125
<rdar://problem/57842985>

Reviewed by Dean Jackson.

No new tests, no functional change.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::getSupportedCapabilitiesForAudioVideoType):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::setPrivateAndOpen):
(WebCore::MediaSource::seekToTime):
(WebCore::MediaSource::monitorSourceBuffers):
(WebCore::MediaSource::streamEndedWithError):
(WebCore::MediaSource::isTypeSupported):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::removeCodedFrames):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):
(WebCore::HTMLMediaElement::canPlayType const):
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::mediaLoadingFailedFatally):
(WebCore::HTMLMediaElement::mediaLoadingFailed):
(WebCore::HTMLMediaElement::setNetworkState):
(WebCore::HTMLMediaElement::seekWithTolerance):
(WebCore::HTMLMediaElement::movieLoadType const):
(WebCore::HTMLMediaElement::preload const):
(WebCore::HTMLMediaElement::selectNextSourceChild):
(WebCore::HTMLMediaElement::mediaPlayerResourceNotSupported):
(WebCore::stringForNetworkState): Deleted.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::videoFullscreenGravity const):
(WebCore::HTMLMediaElement::preloadValue const):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::effectivePreloadForElement const):

  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::requestFullscreenMode):
(WebCore::VideoFullscreenModelVideoElement::setVideoLayerGravity):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::bestMediaEngineForSupportParameters):
(WebCore::MediaPlayer::supportsType):
(WebCore::MediaPlayer::networkStateChanged):
(WebCore::convertEnumerationToString):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerEnums.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::hasAvailableVideoFrame const):
(WebCore::MediaPlayerPrivateInterface::movieLoadType const):

  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType):
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::load):
(WebCore::MediaPlayerPrivateAVFoundation::prepareToPlay):
(WebCore::MediaPlayerPrivateAVFoundation::isReadyForVideoSetup const):
(WebCore::MediaPlayerPrivateAVFoundation::updateStates):
(WebCore::MediaPlayerPrivateAVFoundation::movieLoadType const):
(WebCore::MediaPlayerPrivateAVFoundation::setPreload):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::metaDataAvailable const):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::supportsType):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::movieLoadType const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::shouldBePlaying const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsType):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load):

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
(WebCore::MediaSourcePrivateAVFObjC::markEndOfStream):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::readyState const):
(WebCore::SourceBufferPrivateAVFObjC::canSwitchToType):

  • platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:

(WebCore::createMediaPlayerDecodingConfigurationCocoa):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::loadFull):
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::cancelLoad):
(WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::setPreload):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):
(WebCore::MediaPlayerPrivateGStreamer::supportsType):
(WebCore::MediaPlayerPrivateGStreamer::updateDownloadBufferingFlag):
(WebCore::MediaPlayerPrivateGStreamer::movieLoadType const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(dumpReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::supportsType):
(WebCore::MediaPlayerPrivateGStreamerMSE::currentMediaTime const):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp:

(WebCore::MediaPlayerPrivateHolePunch::supportsType):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::supportsType):
(WebCore::MediaPlayerPrivateMediaFoundation::load):
(WebCore::MediaPlayerPrivateMediaFoundation::updateReadyState):
(WebCore::MediaPlayerPrivateMediaFoundation::onSessionEnded):

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer setVideoGravity:]):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::supportsType):
(WebCore::MockMediaPlayerMediaSource::MockMediaPlayerMediaSource):

  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::addSourceBuffer):
(WebCore::MockMediaSourcePrivate::markEndOfStream):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockSourceBufferPrivate::readyState const):
(WebCore::MockSourceBufferPrivate::canSwitchToType):

2:11 PM Changeset in webkit [253396] by Truitt Savell
  • 54 edits
    5 deletes in trunk

Unreviewed, rolling out r253376.

Broke internal builds

Reverted changeset:

"Move WKWebView code related to testing to new files, with
their own headers, and stop exposing test-only functions as
SPI."
https://bugs.webkit.org/show_bug.cgi?id=205021
https://trac.webkit.org/changeset/253376

2:05 PM Changeset in webkit [253395] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

There should be no user-noticeable delay when closing a tab
https://bugs.webkit.org/show_bug.cgi?id=205069
<rdar://problem/57797494>

Reviewed by Ryosuke Niwa.

There should be no user-noticeable delay when closing a tab. To achieve this, use a timeout of 50ms for doing the
IPC handshake with the WebContent process, instead of 500ms.

  • UIProcess/WebPageProxy.cpp:
2:04 PM Changeset in webkit [253394] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

[iOS] Issue load sooner on swipe back/forward navigation
https://bugs.webkit.org/show_bug.cgi?id=205127
<rdar://problem/57843862>

Reviewed by Tim Horton.

Issue load sooner on swipe back/forward navigation on iOS. We were waiting until the end of
the swipe animation to issue the load. We now issue the load as soon as the user lifts the finger
off the screen and thus commits to navigating. This results in improved perceived performance
when swiping back/forward to navigate.

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::didStartProvisionalOrSameDocumentLoadForMainFrame):
(WebKit::ViewGestureController::willEndSwipeGesture):

  • UIProcess/ViewGestureController.h:
  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::willEndSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

1:47 PM Changeset in webkit [253393] by sihui_liu@apple.com
  • 14 edits
    2 adds in trunk/Source

IndexedDB: Introduce WebIDBServer class
https://bugs.webkit.org/show_bug.cgi?id=205095

Reviewed by Alex Christensen.

Source/WebCore:

No behavior change.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::create):

  • Modules/indexeddb/server/IDBServer.h:

Source/WebKit:

Work towards <rdar://problem/56908496>. WebIDBServer currently is just a wrapper of WebCore::IDBServer.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::idbServer):

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBServer.cpp: Added.

(WebKit::WebIDBServer::create):
(WebKit::WebIDBServer::WebIDBServer):
(WebKit::WebIDBServer::registerConnection):
(WebKit::WebIDBServer::unregisterConnection):
(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::suspend):
(WebKit::WebIDBServer::resume):
(WebKit::WebIDBServer::openDatabase):
(WebKit::WebIDBServer::deleteDatabase):
(WebKit::WebIDBServer::abortTransaction):
(WebKit::WebIDBServer::commitTransaction):
(WebKit::WebIDBServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBServer::createObjectStore):
(WebKit::WebIDBServer::deleteObjectStore):
(WebKit::WebIDBServer::renameObjectStore):
(WebKit::WebIDBServer::clearObjectStore):
(WebKit::WebIDBServer::createIndex):
(WebKit::WebIDBServer::deleteIndex):
(WebKit::WebIDBServer::renameIndex):
(WebKit::WebIDBServer::putOrAdd):
(WebKit::WebIDBServer::getRecord):
(WebKit::WebIDBServer::getAllRecords):
(WebKit::WebIDBServer::getCount):
(WebKit::WebIDBServer::deleteRecord):
(WebKit::WebIDBServer::openCursor):
(WebKit::WebIDBServer::iterateCursor):
(WebKit::WebIDBServer::establishTransaction):
(WebKit::WebIDBServer::databaseConnectionPendingClose):
(WebKit::WebIDBServer::databaseConnectionClosed):
(WebKit::WebIDBServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBServer::didFireVersionChangeEvent):
(WebKit::WebIDBServer::openDBRequestCancelled):
(WebKit::WebIDBServer::getAllDatabaseNames):
(WebKit::WebIDBServer::confirmDidCloseFromServer):

  • NetworkProcess/IndexedDB/WebIDBServer.h: Added.
  • NetworkProcess/NetworkProcess.cpp: replace WebCore::IDBServer with WebIDBServer.

(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):
(WebKit::NetworkProcess::createWebIDBServer):
(WebKit::NetworkProcess::webIDBServer):
(WebKit::NetworkProcess::createIDBServer): Deleted.
(WebKit::NetworkProcess::idbServer): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::requestSpace):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::create):

1:45 PM Changeset in webkit [253392] by Jonathan Bedard
  • 6 edits in trunk/Tools

Python 3: Add support in webkitpy.performance_tests
https://bugs.webkit.org/show_bug.cgi?id=205122

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.performance_tests.
  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest.run): Use range over xrange.
(PerfTest.log_statistics): Python 3 may use more precision than Python 2.
(PerfTest._run_with_driver): Convert list to map.

  • Scripts/webkitpy/performance_tests/perftest_unittest.py:

(TestPerfTest._assert_results_are_correct): Convert map to list.

  • Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:

(MainTest._test_run_with_json_output): Use range over xrange, convert keys to list.
(MainTest.test_run_with_upload_json_should_generate_perf_webkit_json):

  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:

(MainTest.test_collect_tests_with_multile_files): Use assertEqual over assertItemsEqual.
(MainTest.test_collect_tests_with_skipped_list): Ditto.
(MainTest.test_collect_tests_with_skipped_list_and_files): Ditto.
(MainTest.test_collect_tests_with_ignored_skipped_list): Ditto.

1:30 PM Changeset in webkit [253391] by Jonathan Bedard
  • 9 edits in trunk/Tools

Python 3: Add support in webkitpy.w3c
https://bugs.webkit.org/show_bug.cgi?id=205118

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.w3c.
  • Scripts/webkitpy/common/system/filesystem_mock.py:

(MockFileSystem.open_binary_file_for_reading): Missing file should cause Filesystem exception.
(MockFileSystem.read_binary_file): Ditto.
(MockFileSystem.open_text_file_for_reading): Ditto.
(MockFileSystem.remove): Ditto.

  • Scripts/webkitpy/w3c/test_converter.py:

(convert_for_webkit): Convert binary file to text file.
(_W3CTestConverter.read_webkit_prefixed_css_property_list): Use items over iteritems.

  • Scripts/webkitpy/w3c/test_converter_unittest.py:

(verify_test_harness_paths): Use Python 3 compatible type check.

  • Scripts/webkitpy/w3c/test_downloader.py:

(TestDownloader._init_paths_from_expectations): Use items over iteritems.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.readEnvironmentsForTemplateTest): Convert filter to list.

  • Scripts/webkitpy/w3c/wpt_github.py:

(WPTGitHub.auth_token): Encode base64 input and decode base64 output.

  • Scripts/webkitpy/w3c/wpt_github_unittest.py:

(WPTGitHubTest.test_auth_token):

12:42 PM Changeset in webkit [253390] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: Missing frame for given frameId (on techcrunch.com)
https://bugs.webkit.org/show_bug.cgi?id=205130
<rdar://problem/57847699>

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/ApplicationCacheManager.js:

(WI.ApplicationCacheManager.prototype._manifestForFrameLoaded):
A frame can go away between ApplicationCache.getManifestForFrame being called and the
response being received, so don't re-throw the error if the frontend no longer has a
matching WI.Frame for the given frameId.

12:32 PM Changeset in webkit [253389] by Alan Coon
  • 1 copy in tags/Safari-609.1.11.2

Tag Safari-609.1.11.2.

12:30 PM Changeset in webkit [253388] by don.olmstead@sony.com
  • 9 edits in trunk

[CMake] Add HarfBuzz targets
https://bugs.webkit.org/show_bug.cgi?id=205042

Reviewed by Konstantin Tokarev.

.:

Modernize the FindHarfBuzz.cmake module so it creates targets that can be
referenced rather than using HARFBUZZ_LIBRARIES and HARFBUZZ_INCLUDE_DIRS.
Also making ICU a component within the module, and allowing alternate names
for the library to be set by the platform.

  • Source/cmake/FindHarfBuzz.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Use the HarfBuzz targets directly instead of HARFBUZZ_LIBRARIES and
HARFBUZZ_INCLUDE_DIRS.

  • platform/FreeType.cmake:

Source/WebKit:

Use the HarfBuzz targets directly instead of HARFBUZZ_LIBRARIES and
HARFBUZZ_INCLUDE_DIRS.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
12:25 PM Changeset in webkit [253387] by Alan Coon
  • 7 edits in branches/safari-609.1.11.2-branch/Source

Versioning.

12:22 PM Changeset in webkit [253386] by Alan Coon
  • 1 copy in branches/safari-609.1.11.2-branch

New branch.

12:17 PM Changeset in webkit [253385] by Alan Coon
  • 1 copy in branches/safari-609.1.12-branch/Safari-609.1.11.1

New branch.

12:15 PM Changeset in webkit [253384] by keith_miller@apple.com
  • 1 edit
    1 add in trunk/JSTests

Add test for osr exiting with interpreter on the stack
https://bugs.webkit.org/show_bug.cgi?id=205124

Reviewed by Mark Lam.

I forgot to add this test before.

  • stress/osr-exit-with-interpreter-on-stack.js: Added.

(foo):

11:39 AM Changeset in webkit [253383] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Produce a dummy libANGLE.a file to fool Apple's build test infrastructure
https://bugs.webkit.org/show_bug.cgi?id=205068
<rdar://problem/57713353>

Unreviewed followup to apply the script to Mac Catalyst builds.

Note that this phase can be removed in a few days when Apple's Test
Platform realises it doesn't need libANGLE.a any more.

  • ANGLE.xcodeproj/project.pbxproj:
11:30 AM Changeset in webkit [253382] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a nit after r253366

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:

Improve the naming of the new SPI a bit.

11:05 AM Changeset in webkit [253381] by Chris Dumez
  • 9 edits in trunk

[Bindings] Cross-origin checks happen too late for overloaded methods
https://bugs.webkit.org/show_bug.cgi?id=205092

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is failing a bit later.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

Source/WebCore:

Cross-origin checks happen too late for overloaded methods. We're supposed to do the security check
and then find the right overload to call [1]. In our bindings, we first find the right overload body
to call and then do the security check in the body of the chosen overload. This results in the wrong
exception being thrown in some cases (TypeError due to missing arguments instead of a SecurityError).

[1] https://heycam.github.io/webidl/#dfn-create-operation-function

No new tests, updated existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOperationBodyDefinition):
(GenerateOperationDefinition):

LayoutTests:

Extend layout test coverage.

  • http/tests/security/cross-origin-window-property-access-expected.txt:
  • http/tests/security/cross-origin-window-property-access.html:
10:42 AM Changeset in webkit [253380] by Wenson Hsieh
  • 6 edits in trunk/Source

Make incremental builds faster after modifying DisplayListItems.h
https://bugs.webkit.org/show_bug.cgi?id=205032

Reviewed by Tim Horton.

Source/WebCore:

Move the declaration of DisplayList::Item currently in DisplayListItems.h out into DisplayList.h, such that
adding or modifying encoding and decoding logic in DisplayListItems.h dirties fewer source files when
rebuilding.

  • Headers.cmake:
  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::Item::type const):
(WebCore::DisplayList::Item::isDrawingItem const):
(WebCore::DisplayList::Item::isStateItem const):
(WebCore::DisplayList::Item::isStateItemType):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::Item::type const): Deleted.
(WebCore::DisplayList::Item::isDrawingItem const): Deleted.
(WebCore::DisplayList::Item::isStateItem const): Deleted.
(WebCore::DisplayList::Item::isStateItemType): Deleted.

Source/WebKit:

Include DisplayListItems.h directly, since these need to know about the actual display list items (and how to
encode or decode them).

  • GPUProcess/GPUConnectionToWebProcess.h:
10:24 AM Changeset in webkit [253379] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKitLegacy

Add type to StorageThread
https://bugs.webkit.org/show_bug.cgi?id=205082

Reviewed by Alex Christensen.

  • Storage/StorageThread.cpp:

(WebCore::StorageThread::StorageThread):
(WebCore::StorageThread::start):

  • Storage/StorageThread.h:
10:02 AM Changeset in webkit [253378] by sihui_liu@apple.com
  • 14 edits in trunk/Source/WebCore

IndexedDB: export some functions in WebCore
https://bugs.webkit.org/show_bug.cgi?id=205081

Reviewed by Alex Christensen.

We will need these in https://bugs.webkit.org/show_bug.cgi?id=203690.

No behavior change.

  • Modules/indexeddb/IDBKeyData.h:
  • Modules/indexeddb/IDBKeyRangeData.h:
  • Modules/indexeddb/IDBValue.h:
  • Modules/indexeddb/shared/IDBCursorInfo.h:
  • Modules/indexeddb/shared/IDBError.h:
  • Modules/indexeddb/shared/IDBGetAllRecordsData.h:
  • Modules/indexeddb/shared/IDBGetRecordData.h:
  • Modules/indexeddb/shared/IDBIterateCursorData.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:
  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
  • Modules/indexeddb/shared/IDBResultData.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.h:
9:56 AM Changeset in webkit [253377] by sihui_liu@apple.com
  • 8 edits in trunk/Source/WebCore

IndexedDB: remove LockHolder parameters
https://bugs.webkit.org/show_bug.cgi?id=205076

Reviewed by Alex Christensen.

The LockHolder parameters were used to only ensure we have acquired a lock before using IDBBackingStore. To work
toward https://bugs.webkit.org/show_bug.cgi?id=203690 we will not need these any more.

No behavior change.

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::abortTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::commitTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::createIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::renameIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteRange):
(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getAllRecords):
(WebCore::IDBServer::MemoryIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getCount):
(WebCore::IDBServer::MemoryIDBBackingStore::generateKeyNumber):
(WebCore::IDBServer::MemoryIDBBackingStore::revertGeneratedKeyNumber):
(WebCore::IDBServer::MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber):
(WebCore::IDBServer::MemoryIDBBackingStore::openCursor):
(WebCore::IDBServer::MemoryIDBBackingStore::iterateCursor):
(WebCore::IDBServer::MemoryIDBBackingStore::infoForObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteBackingStore):
(WebCore::IDBServer::MemoryIDBBackingStore::close):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::abortTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::commitTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRange):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):
(WebCore::IDBServer::SQLiteIDBBackingStore::generateKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::revertGeneratedKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::openCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::prefetchCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::close):
(WebCore::IDBServer::SQLiteIDBBackingStore::hasTransaction const):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::performUnconditionalDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::shutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::performStartVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performRenameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performRenameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetIndexRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performOpenCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performIterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performPrefetchCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performActivateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransactionOnMainThread):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransactionOnMainThread):
(WebCore::IDBServer::UniqueIDBDatabase::suspend):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
9:50 AM Changeset in webkit [253376] by Simon Fraser
  • 54 edits
    1 copy
    6 adds in trunk

Move WKWebView code related to testing to new files, with their own headers, and stop exposing test-only functions as SPI.
https://bugs.webkit.org/show_bug.cgi?id=205021

Reviewed by Tim Horton.
Source/WebKit:

Stop exposing WKWebView (WKTesting) as SPI, because everyone added SPI here by mistake, and
internal clients kept using testing SPI.

Instead, move testing-only functions to internal headers that are not present in the built framework,
and move to WKWebView (WKPrivate) properties and functions that webkit clients rely on.

Add WKWebViewTesting/WKWebViewTestingMac/WKWebViewTestingIOS for test-only code.

WKWebViewTesting* headers are copied to a "WebKitTestSupport" directory in the Products directory, and WTR/DRT and TestWebKitAPI
get header search paths to find the headers there.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]):
(-[WKWebView _prepareForImmediateActionAnimation]):
(-[WKWebView _cancelImmediateActionAnimation]):
(-[WKWebView _completeImmediateActionAnimation]):
(-[WKWebView _useSystemAppearance]):
(-[WKWebView _setUseSystemAppearance:]):
(-[WKWebView _pageRefForTransitionToWKWebView]):
(-[WKWebView _canChangeFrameLayout:]):
(-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]):
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _hasActiveVideoForControlsManager]):
(-[WKWebView _dismissContentRelativeChildWindows]):
(-[WKWebView _gestureEventWasNotHandledByWebCore:]):
(-[WKWebView _disableFrameSizeUpdates]):
(-[WKWebView _enableFrameSizeUpdates]):
(-[WKWebView _beginDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChangesSync]):
(-[WKWebView _fullScreenPlaceholderView]):
(-[WKWebView _fullScreenWindow]):
(-[WKWebView _underlayColor]):
(-[WKWebView _setUnderlayColor:]):
(-[WKWebView _setCustomSwipeViews:]):
(-[WKWebView _setCustomSwipeViewsTopContentInset:]):
(-[WKWebView _setDidMoveSwipeSnapshotCallback:]):
(-[WKWebView _setFrame:andScrollBy:]):
(-[WKWebView _setTotalHeightOfBanners:]):
(-[WKWebView _totalHeightOfBanners]):
(-[WKWebView _setFont:sender:]):
(-[WKWebView _setFontSize:sender:]):
(-[WKWebView _setTextColor:sender:]):
(-[WKWebView inputAccessoryView]):
(-[WKWebView inputView]):
(-[WKWebView _requestActivatedElementAtPosition:completionBlock:]):
(-[WKWebView _contentVisibleRect]):
(-[WKWebView _convertPointFromContentsToView:]):
(-[WKWebView _convertPointFromViewToContents:]):
(-[WKWebView didStartFormControlInteraction]):
(-[WKWebView didEndFormControlInteraction]):
(-[WKWebView _uiTextCaretRect]):
(-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]):
(-[WKWebView _accessibilityStoreSelection]):
(-[WKWebView _accessibilityClearSelection]):
(-[WKWebView _contentViewIsFirstResponder]):
(-[WKWebView _inspector]):
(-[WKWebView _mainFrame]):
(-[WKWebView _isEditable]):
(-[WKWebView _setEditable:]):
(-[WKWebView _executeEditCommand:argument:completion:]):
(-[WKWebView _textManipulationDelegate]):
(-[WKWebView _setTextManipulationDelegate:]):
(-[WKWebView _startTextManipulationsWithConfiguration:completion:]):
(-[WKWebView _completeTextManipulation:completion:]):
(-[WKWebView _takeFindStringFromSelection:]):
(+[WKWebView _stringForFind]):
(+[WKWebView _setStringForFind:]):
(-[WKWebView _remoteObjectRegistry]):
(-[WKWebView _handle]):
(-[WKWebView _observedRenderingProgressEvents]):
(-[WKWebView _historyDelegate]):
(-[WKWebView _setHistoryDelegate:]):
(-[WKWebView _updateMediaPlaybackControlsManager]):
(-[WKWebView _canTogglePictureInPicture]):
(-[WKWebView _isPictureInPictureActive]):
(-[WKWebView _togglePictureInPicture]):
(-[WKWebView _closeAllMediaPresentations]):
(-[WKWebView _stopMediaCapture]):
(-[WKWebView _stopAllMediaPlayback]):
(-[WKWebView _suspendAllMediaPlayback]):
(-[WKWebView _resumeAllMediaPlayback]):
(-[WKWebView _unreachableURL]):
(-[WKWebView _mainFrameURL]):
(-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
(-[WKWebView _loadRequest:shouldOpenExternalURLs:]):
(-[WKWebView _certificateChain]):
(-[WKWebView _committedURL]):
(-[WKWebView _MIMEType]):
(-[WKWebView _userAgent]):
(-[WKWebView _applicationNameForUserAgent]):
(-[WKWebView _setApplicationNameForUserAgent:]):
(-[WKWebView _customUserAgent]):
(-[WKWebView _setCustomUserAgent:]):
(-[WKWebView _setUserContentExtensionsEnabled:]):
(-[WKWebView _userContentExtensionsEnabled]):
(-[WKWebView _webProcessIdentifier]):
(-[WKWebView _provisionalWebProcessIdentifier]):
(-[WKWebView _killWebContentProcess]):
(-[WKWebView _safeBrowsingWarning]):
(-[WKWebView _reloadWithoutContentBlockers]):
(-[WKWebView _reloadExpiredOnly]):
(-[WKWebView _killWebContentProcessAndResetState]):
(-[WKWebView _convertRectFromRootViewCoordinates:]):
(-[WKWebView _convertRectToRootViewCoordinates:]):
(-[WKWebView _requestTextInputContextsInRect:completionHandler:]):
(-[WKWebView _focusTextInputContext:completionHandler:]):
(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):
(-[WKWebView _setShouldSuppressFirstResponderChanges:]):
(-[WKWebView _retainActiveFocusedState]):
(-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):
(-[WKWebView _dataDetectionResults]):
(-[WKWebView _accessibilityRetrieveSpeakSelectionContent]):
(-[WKWebView _accessibilityDidGetSpeakSelectionContent:]):
(-[WKWebView inputAssistantItem]):
(-[WKWebView _sessionStateData]):
(-[WKWebView _sessionState]):
(-[WKWebView _sessionStateWithFilter:]):
(-[WKWebView _restoreFromSessionStateData:]):
(-[WKWebView _restoreSessionState:andNavigate:]):
(-[WKWebView _close]):
(-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]):
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]):
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
(-[WKWebView _attachmentForIdentifier:]):
(-[WKWebView _simulateDeviceOrientationChangeWithAlpha:beta:gamma:]):
(+[WKWebView _handlesSafeBrowsing]):
(-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]):
(-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]):
(+[WKWebView _confirmMalwareSentinel]):
(+[WKWebView _visitUnsafeWebsiteSentinel]):
(-[WKWebView _isJITEnabled:]):
(-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]):
(-[WKWebView _updateWebsitePolicies:]):
(-[WKWebView _allowsRemoteInspection]):
(-[WKWebView _setAllowsRemoteInspection:]):
(-[WKWebView _remoteInspectionNameOverride]):
(-[WKWebView _setRemoteInspectionNameOverride:]):
(-[WKWebView _addsVisitedLinks]):
(-[WKWebView _setAddsVisitedLinks:]):
(-[WKWebView _networkRequestsInProgress]):
(layoutMilestones):
(-[WKWebView _setObservedRenderingProgressEvents:]):
(-[WKWebView _getMainResourceDataWithCompletionHandler:]):
(-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]):
(-[WKWebView _getApplicationManifestWithCompletionHandler:]):
(-[WKWebView _paginationMode]):
(-[WKWebView _setPaginationMode:]):
(-[WKWebView _paginationBehavesLikeColumns]):
(-[WKWebView _setPaginationBehavesLikeColumns:]):
(-[WKWebView _pageLength]):
(-[WKWebView _setPageLength:]):
(-[WKWebView _gapBetweenPages]):
(-[WKWebView _setGapBetweenPages:]):
(-[WKWebView _paginationLineGridEnabled]):
(-[WKWebView _setPaginationLineGridEnabled:]):
(-[WKWebView _pageCount]):
(-[WKWebView _supportsTextZoom]):
(-[WKWebView _textZoomFactor]):
(-[WKWebView _setTextZoomFactor:]):
(-[WKWebView setPageZoom:]):
(-[WKWebView pageZoom]):
(-[WKWebView _pageZoomFactor]):
(-[WKWebView _setPageZoomFactor:]):
(-[WKWebView _diagnosticLoggingDelegate]):
(-[WKWebView _setDiagnosticLoggingDelegate:]):
(-[WKWebView _findDelegate]):
(-[WKWebView _setFindDelegate:]):
(toFindOptions):
(-[WKWebView _countStringMatches:options:maxCount:]):
(-[WKWebView _findString:options:maxCount:]):
(-[WKWebView _hideFindUI]):
(-[WKWebView _saveBackForwardSnapshotForItem:]):
(-[WKWebView _inputDelegate]):
(-[WKWebView _setInputDelegate:]):
(-[WKWebView _isDisplayingStandaloneImageDocument]):
(-[WKWebView _isDisplayingStandaloneMediaDocument]):
(-[WKWebView _isPlayingAudio]):
(-[WKWebView _isShowingNavigationGestureSnapshot]):
(-[WKWebView _layoutMode]):
(-[WKWebView _setLayoutMode:]):
(-[WKWebView _fixedLayoutSize]):
(-[WKWebView _setFixedLayoutSize:]):
(-[WKWebView _setBackgroundExtendsBeyondPage:]):
(-[WKWebView _backgroundExtendsBeyondPage]):
(-[WKWebView _viewScale]):
(-[WKWebView _setViewScale:]):
(-[WKWebView _setMinimumEffectiveDeviceWidth:]):
(-[WKWebView _minimumEffectiveDeviceWidth]):
(-[WKWebView _setScrollPerformanceDataCollectionEnabled:]):
(-[WKWebView _scrollPerformanceDataCollectionEnabled]):
(-[WKWebView _scrollPerformanceData]):
(-[WKWebView _allowsMediaDocumentInlinePlayback]):
(-[WKWebView _setAllowsMediaDocumentInlinePlayback:]):
(-[WKWebView _webProcessIsResponsive]):
(-[WKWebView _setFullscreenDelegate:]):
(-[WKWebView _fullscreenDelegate]):
(-[WKWebView _isInFullscreen]):
(-[WKWebView _mediaCaptureState]):
(-[WKWebView _setMediaCaptureEnabled:]):
(-[WKWebView _mediaCaptureEnabled]):
(-[WKWebView _setPageMuted:]):
(-[WKWebView _removeDataDetectedLinks:]):
(-[WKWebView _doAfterNextPresentationUpdate:]):
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]):
(-[WKWebView _doAfterNextStablePresentationUpdate:]):
(-[WKWebView _detectDataWithTypes:completionHandler:]):
(-[WKWebView removeFromSuperview]):
(-[WKWebView _minimumLayoutSizeOverride]):
(-[WKWebView _setViewLayoutSizeOverride:]):
(-[WKWebView _obscuredInsets]):
(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]):
(-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]):
(-[WKWebView _unobscuredSafeAreaInsets]):
(-[WKWebView _setUnobscuredSafeAreaInsets:]):
(-[WKWebView _safeAreaShouldAffectObscuredInsets]):
(-[WKWebView _setInterfaceOrientationOverride:]):
(-[WKWebView _interfaceOrientationOverride]):
(-[WKWebView _clearInterfaceOrientationOverride]):
(-[WKWebView _maximumUnobscuredSizeOverride]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _setAllowsViewportShrinkToFit:]):
(-[WKWebView _allowsViewportShrinkToFit]):
(-[WKWebView _beginInteractiveObscuredInsetsChange]):
(-[WKWebView _endInteractiveObscuredInsetsChange]):
(-[WKWebView _hideContentUntilNextUpdate]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
(-[WKWebView _setOverlaidAccessoryViewsInset:]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):
(-[WKWebView _clearOverrideLayoutParameters]):
(viewportArgumentsFromDictionary):
(-[WKWebView _overrideViewportWithArguments:]):
(-[WKWebView _viewForFindUI]):
(-[WKWebView _isDisplayingPDF]):
(-[WKWebView _dataForDisplayedPDF]):
(-[WKWebView _suggestedFilenameForDisplayedPDF]):
(-[WKWebView _webViewPrintFormatter]):
(toUserInterfaceLayoutDirection):
(-[WKWebView setSemanticContentAttribute:]):
(-[WKWebView _drawsBackground]):
(-[WKWebView _setDrawsBackground:]):
(-[WKWebView _backgroundColor]):
(-[WKWebView _setBackgroundColor:]):
(-[WKWebView _setDrawsTransparentBackground:]):
(-[WKWebView _inspectorAttachmentView]):
(-[WKWebView _setInspectorAttachmentView:]):
(-[WKWebView _setOverlayScrollbarStyle:]):
(-[WKWebView _overlayScrollbarStyle]):
(-[WKWebView _windowOcclusionDetectionEnabled]):
(-[WKWebView _setWindowOcclusionDetectionEnabled:]):
(-[WKWebView shareSheetDidDismiss:]):
(-[WKWebView _setOverrideDeviceScaleFactor:]):
(-[WKWebView _overrideDeviceScaleFactor]):
(-[WKWebView _setTopContentInset:]):
(-[WKWebView _topContentInset]):
(-[WKWebView _pageExtendedBackgroundColor]):
(-[WKWebView _pinnedState]):
(-[WKWebView _rubberBandingEnabled]):
(-[WKWebView _setRubberBandingEnabled:]):
(-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]):
(-[WKWebView _setAutomaticallyAdjustsContentInsets:]):
(-[WKWebView _automaticallyAdjustsContentInsets]):
(-[WKWebView _minimumLayoutWidth]):
(-[WKWebView _setMinimumLayoutWidth:]):
(-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]):
(-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]):
(-[WKWebView _alwaysShowsHorizontalScroller]):
(-[WKWebView _setAlwaysShowsHorizontalScroller:]):
(-[WKWebView _alwaysShowsVerticalScroller]):
(-[WKWebView _setAlwaysShowsVerticalScroller:]):
(-[WKWebView _printOperationWithPrintInfo:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):
(-[WKWebView setUserInterfaceLayoutDirection:]):
(-[WKWebView _wantsMediaPlaybackControlsView]):
(-[WKWebView _setWantsMediaPlaybackControlsView:]):
(-[WKWebView _mediaPlaybackControlsView]):
(-[WKWebView _addMediaPlaybackControlsView:]):
(-[WKWebView _removeMediaPlaybackControlsView]):
(-[WKWebView _prepareForMoveToWindow:completionHandler:]):
(-[WKWebView _setThumbnailView:]):
(-[WKWebView _thumbnailView]):
(-[WKWebView _setIgnoresAllEvents:]):
(-[WKWebView _ignoresAllEvents]):
(-[WKWebView _spellCheckerDocumentTag]):
(-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]): Deleted.
(-[WKWebView _contentsOfUserInterfaceItem:]): Deleted.
(-[WKWebView keyboardAccessoryBarNext]): Deleted.
(-[WKWebView keyboardAccessoryBarPrevious]): Deleted.
(-[WKWebView applyAutocorrection:toString:withCompletionHandler:]): Deleted.
(-[WKWebView dismissFormAccessoryView]): Deleted.
(-[WKWebView _dismissFilePicker]): Deleted.
(-[WKWebView setTimePickerValueToHour:minute:]): Deleted.
(-[WKWebView selectFormAccessoryPickerRow:]): Deleted.
(-[WKWebView selectFormPopoverTitle]): Deleted.
(-[WKWebView textContentTypeForTesting]): Deleted.
(-[WKWebView formInputLabel]): Deleted.
(-[WKWebView _didShowContextMenu]): Deleted.
(-[WKWebView _didDismissContextMenu]): Deleted.
(-[WKWebView _inputViewBounds]): Deleted.
(-[WKWebView _uiTextSelectionRects]): Deleted.
(-[WKWebView _scrollingTreeAsText]): Deleted.
(-[WKWebView _stableStateOverride]): Deleted.
(-[WKWebView _propertiesOfLayerWithID:]): Deleted.
(-[WKWebView _doAfterResettingSingleTapGesture:]): Deleted.
(-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]): Deleted.
(-[WKWebView _requestControlledElementID]): Deleted.
(-[WKWebView _handleControlledElementIDResponse:]): Deleted.
(-[WKWebView _handleAcceptedCandidate:]): Deleted.
(-[WKWebView _didHandleAcceptedCandidate]): Deleted.
(-[WKWebView _didUpdateCandidateListVisibility:]): Deleted.
(-[WKWebView _forceRequestCandidates]): Deleted.
(-[WKWebView _shouldRequestCandidates]): Deleted.
(-[WKWebView _insertText:replacementRange:]): Deleted.
(-[WKWebView _candidateRect]): Deleted.
(-[WKWebView viewDidChangeEffectiveAppearance]): Deleted.
(-[WKWebView _setHeaderBannerHeight:]): Deleted.
(-[WKWebView _setFooterBannerHeight:]): Deleted.
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): Deleted.
(-[WKWebView _activeMenu]): Deleted.
(-[WKWebView _requestActiveNowPlayingSessionInfo:]): Deleted.
(-[WKWebView _setPageScale:withOrigin:]): Deleted.
(-[WKWebView _pageScale]): Deleted.
(-[WKWebView _scrollingUpdatesDisabledForTesting]): Deleted.
(-[WKWebView _setScrollingUpdatesDisabledForTesting:]): Deleted.
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]): Deleted.
(-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Deleted.
(-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]): Deleted.
(-[WKWebView _dragCaretRect]): Deleted.
(-[WKWebView _simulateLongPressActionAtLocation:]): Deleted.
(-[WKWebView _simulateTextEntered:]): Deleted.
(-[WKWebView _dynamicUserInterfaceTraitDidChange]): Deleted.
(-[WKWebView _beginBackSwipeForTesting]): Deleted.
(-[WKWebView _completeBackSwipeForTesting]): Deleted.
(-[WKWebView _setDefersLoadingForTesting:]): Deleted.
(-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]): Deleted.
(-[WKWebView _hasInspectorFrontend]): Deleted.
(-[WKWebView _processWillSuspendImminentlyForTesting]): Deleted.
(-[WKWebView _processDidResumeForTesting]): Deleted.
(-[WKWebView _setAssertionStateForTesting:]): Deleted.
(-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]): Deleted.
(-[WKWebView _hasServiceWorkerForegroundActivityForTesting]): Deleted.
(-[WKWebView _denyNextUserMediaRequest]): Deleted.
(-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.h: Added.
  • UIProcess/API/Cocoa/WKWebViewTesting.mm: Added.

(-[WKWebView _setPageScale:withOrigin:]):
(-[WKWebView _pageScale]):
(-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]):
(-[WKWebView _contentsOfUserInterfaceItem:]):
(-[WKWebView _requestActiveNowPlayingSessionInfo:]):
(-[WKWebView _scrollingUpdatesDisabledForTesting]):
(-[WKWebView _setScrollingUpdatesDisabledForTesting:]):
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]):
(-[WKWebView _doAfterNextVisibleContentRectUpdate:]):
(-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]):
(-[WKWebView _beginBackSwipeForTesting]):
(-[WKWebView _completeBackSwipeForTesting]):
(-[WKWebView _setDefersLoadingForTesting:]):
(-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]):
(-[WKWebView _hasInspectorFrontend]):
(-[WKWebView _processWillSuspendImminentlyForTesting]):
(-[WKWebView _processDidResumeForTesting]):
(-[WKWebView _setAssertionStateForTesting:]):
(-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]):
(-[WKWebView _hasServiceWorkerForegroundActivityForTesting]):
(-[WKWebView _denyNextUserMediaRequest]):

  • UIProcess/API/ios/WKWebViewTestingIOS.h: Added.
  • UIProcess/API/ios/WKWebViewTestingIOS.mm: Added.

(-[WKWebView keyboardAccessoryBarNext]):
(-[WKWebView keyboardAccessoryBarPrevious]):
(-[WKWebView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKWebView dismissFormAccessoryView]):
(-[WKWebView _dismissFilePicker]):
(-[WKWebView setTimePickerValueToHour:minute:]):
(-[WKWebView selectFormAccessoryPickerRow:]):
(-[WKWebView selectFormPopoverTitle]):
(-[WKWebView textContentTypeForTesting]):
(-[WKWebView formInputLabel]):
(-[WKWebView _didShowContextMenu]):
(-[WKWebView _didDismissContextMenu]):
(-[WKWebView _inputViewBounds]):
(-[WKWebView _uiTextSelectionRects]):
(-[WKWebView _scrollingTreeAsText]):
(-[WKWebView _stableStateOverride]):
(-[WKWebView _propertiesOfLayerWithID:]):
(-[WKWebView _doAfterResettingSingleTapGesture:]):
(-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]):
(-[WKWebView _dragCaretRect]):
(-[WKWebView _simulateLongPressActionAtLocation:]):
(-[WKWebView _simulateTextEntered:]):
(-[WKWebView _dynamicUserInterfaceTraitDidChange]):
(-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]):

  • UIProcess/API/mac/WKWebViewTestingMac.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm.
  • UIProcess/API/mac/WKWebViewTestingMac.mm: Added.

(-[WKWebView _requestControlledElementID]):
(-[WKWebView _handleControlledElementIDResponse:]):
(-[WKWebView _handleAcceptedCandidate:]):
(-[WKWebView _didHandleAcceptedCandidate]):
(-[WKWebView _didUpdateCandidateListVisibility:]):
(-[WKWebView _forceRequestCandidates]):
(-[WKWebView _shouldRequestCandidates]):
(-[WKWebView _insertText:replacementRange:]):
(-[WKWebView _candidateRect]):
(-[WKWebView viewDidChangeEffectiveAppearance]):
(-[WKWebView _setHeaderBannerHeight:]):
(-[WKWebView _setFooterBannerHeight:]):
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]):
(-[WKWebView _activeMenu]):

  • UIProcess/Cocoa/PageClientImplCocoa.mm:
  • UIProcess/ios/PageClientImplIOS.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/WKMouseGestureRecognizer.h:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
  • UIProcess/mac/PageClientImplMac.mm:
  • UIProcess/mac/WKFullScreenWindowController.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Stop exposing WKWebView (WKTesting) as SPI, because everyone added SPI here by mistake, and
internal clients kept using testing SPI.

Instead, move testing-only functions to internal headers that are not present in the built framework,
and move to WKWebView (WKPrivate) properties and functions that webkit clients rely on.

Add WKWebViewTesting/WKWebViewTestingMac/WKWebViewTestingIOS for test-only code.

WKWebViewTesting* headers are copied to a "WebKitTestSupport" directory in the Products directory, and WTR/DRT and TestWebKitAPI
get header search paths to find the headers there.

  • MiniBrowser/Configurations/Base.xcconfig:
  • MiniBrowser/mac/WK2BrowserWindowController.m:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/EditingTestHarness.mm:
  • TestWebKitAPI/Tests/WebKit/ResponsivenessTimerCrash.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoading.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaBufferingPolicy.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspendMediaBuffering.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SnapshotStore.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCandidateTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewFirstResponderTests.mm:
  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:
  • TestWebKitAPI/Tests/ios/FocusPreservationTests.mm:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
  • WebKitTestRunner/ios/TestControllerIOS.mm:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:
9:39 AM Changeset in webkit [253375] by youenn@apple.com
  • 9 edits in trunk

(r252889) webrtc/peerconnection-page-cache.html is crashing on iOS Debug
https://bugs.webkit.org/show_bug.cgi?id=205017
<rdar://problem/57757026>

Reviewed by Eric Carlson.

Source/WebCore:

HTMLMediaElement is scheduling some tasks using Timers that are not suspendable.
This patch uses task enqueuing through the script execution context event loop which respects page cache suspend/resume logic
for the update play state timer.
Other timers should follow.

Covered by tests no longer crashing in Debug mode.

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::enqueueTaskForDispatcher):

  • dom/TaskSource.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::enqueueTaskForDispatcher):

  • html/HTMLMediaElement.h:
  • platform/DeferrableTask.h:

(WebCore::DeferrableTask::DeferrableTask):

  • platform/GenericTaskQueue.h:

(WebCore::TaskDispatcher::TaskDispatcher):
(WebCore::TaskDispatcher::postTask):
(WebCore::GenericTaskQueue::GenericTaskQueue):

LayoutTests:

  • platform/ios/TestExpectations:
9:14 AM Changeset in webkit [253374] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed iOS build fix after r253343.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
8:36 AM Changeset in webkit [253373] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/hyphenate-limit-lines.html
https://bugs.webkit.org/show_bug.cgi?id=205115
<rdar://problem/57837829>

Reviewed by Antti Koivisto.

Do not adjust the m_successiveHyphenatedLineCount unless it's the end of the line (either split or push).

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::processUncommittedContent):

7:55 AM Changeset in webkit [253372] by magomez@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening after r253360.

  • platform/gtk/TestExpectations:
7:13 AM Changeset in webkit [253371] by Jonathan Bedard
  • 2 edits
    1 add in trunk/Tools

Add test-lldb-webkit
https://bugs.webkit.org/show_bug.cgi?id=187916

Reviewed by Stephanie Lewis.

  • Scripts/test-lldb-webkit: Added.

(NoAction): Argparse action which support --<variable> and --no-<variable>.
(LldbTester): Wrapper around webkitpy's Tester class.
(LldbTester.parse_args): Specialized argparse for lldb tests.
(LldbTester.run): Setup environment and build lldb test runner.
(main):

  • Scripts/webkitpy/test/main.py:

(main): Remove lldb testing code.
(Tester._parse_args): Ditto.
(Tester.run): Ditto.
(Tester._run_tests): Ditto.
(Tester._test_names): Ditto.
(_supports_building_and_running_lldb_tests): Deleted.

6:37 AM Changeset in webkit [253370] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Move single whitespace measuring to TextUtil
https://bugs.webkit.org/show_bug.cgi?id=205096
<rdar://problem/57818442>

Reviewed by Antti Koivisto.

If the TextUtil::width() callsites pass in the InlineTextItem, we can fast-path the single whitespace
character case (performance) and return width < 0 (correctness) when word-spacing is negative.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::inlineItemWidth):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::hyphenPositionBefore): Deleted.

  • layout/inlineformatting/text/TextUtil.h:
6:28 AM Changeset in webkit [253369] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Partial trailing width should include the hyphen when applicable
https://bugs.webkit.org/show_bug.cgi?id=205090
<rdar://problem/57813491>

Reviewed by Antti Koivisto.

In order to properly text-align: justify the content, we need to know the final width of
the trailing run including the injected hyphen.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::tryBreakingTextRun const):

6:04 AM Changeset in webkit [253368] by commit-queue@webkit.org
  • 9 edits in trunk

[GStreamer][MediaStream] Fix GStreamer capturer mock
https://bugs.webkit.org/show_bug.cgi?id=205066

  • Presets where wrongly generated based on GStreamer capabilities
  • Audio capturer was not taking into account echo cancellation

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-12-11
Reviewed by Philippe Normand.

Source/WebCore:

This fixes a few tests

  • platform/mediastream/RealtimeVideoCaptureSource.h:

(WebCore::RealtimeVideoCaptureSource::canResizeVideoFrames const):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:

(WebCore::WrappedMockRealtimeAudioSource::addHum):

  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:

(WebCore::WrappedMockRealtimeVideoSource::presets):
(WebCore::MockGStreamerVideoCaptureSource::generatePresets):

  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h:
  • platform/mock/MockRealtimeVideoSource.h:

LayoutTests:

  • platform/gtk/TestExpectations: Updated expectations as required
  • platform/wpe/TestExpectations: Updated expectations as required
4:10 AM Changeset in webkit [253367] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Invalid use of UTF-8 validation in ClearKey key data
https://bugs.webkit.org/show_bug.cgi?id=205106

Reviewed by Xabier Rodriguez-Calvar.

media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse.html

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(findAndSetKey): Mistakenly was using utf-8 conversions on binary
data, which in some cases caused invalid key data being given to
GCrypt.

3:07 AM Changeset in webkit [253366] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Implement dummy _WKWebAuthenticationPanel SPIs for CTAP PIN support
https://bugs.webkit.org/show_bug.cgi?id=205100
<rdar://problem/57822953>

Reviewed by Brent Fulgham.

This patch implements dummy _WKWebAuthenticationPanel SPIs for CTAP PIN support.
CTAP PIN is a way for authenticators to be able to do user verification by asking
clients/users for a pre-set PIN. Here is the spec:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorClientPIN
In order to support this, WebKit needs to interacts with UIClients to ask users
to enter the PINs. Therefore, a new set of SPI is needed.

Here is the proposed SPI for WebKit to ask Safari for the PIN:
@protocol _WKWebAuthenticationPanelDelegate <NSObject>
@optional
...

  • (void)panel:(_WKWebAuthenticationPanel *)panel requestPINWithRetries:(NSUInteger)retries completionHandler:(void ()(NSData *))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

...
@end

Retries is the number of retires before the authenticator getting blocked, which
is a state that only factory reset can save the authenticator. UIClients can have
a threshold and WARN users loudly when the threshold is reached.
A byte array that is less than or equal to 63 bytes is expected to return to the
passed completion handler. Otherwise, the completion handler will bail out.

For error handling:
typedef NS_ENUM(NSInteger, _WKWebAuthenticationPanelUpdate) {

...
_WKWebAuthenticationPanelUpdatePINBlocked,
_WKWebAuthenticationPanelUpdatePINAuthBlocked,
_WKWebAuthenticationPanelUpdatePINInvalid,

} WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

The above three error will be passed to UIClients via updateWebAuthenticationPanel SPI.
_WKWebAuthenticationPanelUpdatePINBlocked means the authenticator is dead. A factory
reset is needed.
_WKWebAuthenticationPanelUpdatePINAuthBlocked means 3 consecutive mismatches. The
authenticator will need to be reconnected.
_WKWebAuthenticationPanelUpdatePINInvalid means a wrong PIN is provided. This will
often be followed with another requestPINWithRetries delegate call.
Here is the spec for the error:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#using-pinToken-in-authenticatorMakeCredential.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
1:48 AM Changeset in webkit [253365] by ysuzuki@apple.com
  • 26 edits in trunk/Source

[JSC] Put all API related JS cells into IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205097

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch puts API related JS cells into IsoSubspace.

  • API/JSAPIGlobalObject.h:

(JSC::JSAPIGlobalObject::create): Deleted.
(JSC::JSAPIGlobalObject::createStructure): Deleted.
(JSC::JSAPIGlobalObject::JSAPIGlobalObject): Deleted.

  • API/JSAPIValueWrapper.h:
  • API/JSAPIWrapperObject.h:

(JSC::JSAPIWrapperObject::subspaceFor):

  • API/JSAPIWrapperObject.mm:

(JSC::JSCallbackObject<JSAPIWrapperObject>::subspaceForImpl):

  • API/JSCallbackConstructor.cpp:

(JSC::JSCallbackConstructor::JSCallbackConstructor):

  • API/JSCallbackConstructor.h:
  • API/JSCallbackObject.cpp:

(JSC::JSCallbackObject<JSNonFinalObject>::createStructure):
(JSC::JSCallbackObject<JSNonFinalObject>::subspaceForImpl):
(JSC::JSCallbackObject<JSGlobalObject>::subspaceForImpl):
(JSC::JSCallbackObject<JSDestructibleObject>::createStructure): Deleted.

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::init):

  • API/JSClassRef.cpp:

(OpaqueJSClass::prototype):

  • API/JSObjectRef.cpp:

(JSObjectMake):
(JSObjectGetPrivate):
(JSObjectSetPrivate):
(JSObjectGetPrivateProperty):
(JSObjectSetPrivateProperty):
(JSObjectDeletePrivateProperty):

  • API/JSValueRef.cpp:

(JSValueIsObjectOfClass):

  • API/JSWeakObjectMapRefPrivate.cpp:
  • API/glib/JSAPIWrapperGlobalObject.cpp:

(JSC::JSCallbackObject<JSAPIWrapperGlobalObject>::subspaceForImpl):

  • API/glib/JSAPIWrapperGlobalObject.h:

(JSC::JSAPIWrapperGlobalObject::subspaceFor):

  • API/glib/JSAPIWrapperObjectGLib.cpp:

(JSC::JSCallbackObject<JSAPIWrapperObject>::subspaceForImpl):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSSegmentedVariableObject.cpp:

(JSC::JSSegmentedVariableObject::finishCreation):

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::classInfo const):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WebCore:

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::finishCreation):

  • bindings/js/JSDOMWrapper.cpp:

(WebCore::JSDOMObject::JSDOMObject):

  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::setWindow):

Dec 10, 2019:

11:45 PM Changeset in webkit [253364] by youenn@apple.com
  • 12 edits in trunk/Source/WebCore

TrackListBase does not need to be an ActiveDOMObject
https://bugs.webkit.org/show_bug.cgi?id=205063

Reviewed by Eric Carlson.

Made TrackListBase a ContextDestructrionObserver instead of an ActiveDOMObject.
No observable change of behavior.

  • html/track/AudioTrackList.cpp:

(WebCore::AudioTrackList::activeDOMObjectName const): Deleted.

  • html/track/AudioTrackList.h:
  • html/track/AudioTrackList.idl:
  • html/track/TextTrackList.cpp:

(WebCore::TextTrackList::activeDOMObjectName const): Deleted.

  • html/track/TextTrackList.h:
  • html/track/TextTrackList.idl:
  • html/track/TrackListBase.cpp:

(WebCore::TrackListBase::TrackListBase):

  • html/track/TrackListBase.h:
  • html/track/VideoTrackList.cpp:

(WebCore::VideoTrackList::activeDOMObjectName const): Deleted.

  • html/track/VideoTrackList.h:
  • html/track/VideoTrackList.idl:
10:46 PM Changeset in webkit [253363] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

BytecodeDumper should print out of line jump targets
https://bugs.webkit.org/show_bug.cgi?id=205091

Reviewed by Tadeu Zagallo and Yusuke Suzuki.

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumperBase::dumpValue):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::outOfLineJumpOffset):

10:37 PM Changeset in webkit [253362] by cathiechen
  • 2 edits in trunk/Source/WebCore

Fixed Pattern.h compile error
https://bugs.webkit.org/show_bug.cgi?id=205101

Need to include "Image.h" to use ImageHandle.

Unreviewed, fixed compile error.

  • platform/graphics/Pattern.h:
10:06 PM Changeset in webkit [253361] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] Adhocly created CallLinkInfo in GetterSetterAccess should be owned by GCAwareJITStubRoutine
https://bugs.webkit.org/show_bug.cgi?id=204876

Reviewed by Saam Barati.

JSTests:

  • stress/code-emitted-by-getter-setter-access-case-should-hold-ownership-of-call-link-info.js: Added.

(func):

Source/JavaScriptCore:

When emitting GetterSetterAccessCase code in IC, we dynamically create CallLinkInfo which is owned by GetterSetterAccessCase,
and we use this pointer for GetterSetter calls (like, operationLinkCall etc.). The problem is that IC code is not destroyed
so long as it is live in the stack. For example, GetterSetterAccessCase might be destroyed when the StructureStubInfo is reset,
while executing the emitted code. So, the code is still pointing already-destroyed CallLinkInfo.

In this patch, CallLinkInfo used for GetterSetterAccessCase code is owned by emitted code, which means, owned by
MarkingGCAwareJITStubRoutine. So it is kept so long as the code is live. We use Bag<CallLinkInfo> to create a CallLinkInfo,
and MarkingGCAwareJITStubRoutine owns it.

The important question is whether we should call CallLinkInfo::visitWeak when the associated GetterSetterAccessCase is already
destroyed. We do not need to call it since (1) it is just clearing CallLinkInfo, and (2) this information will not be used
by anyone since associated GetterSetterAccessCase is already destroyed.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/GetterSetterAccessCase.h:

(JSC::GetterSetterAccessCase::callLinkInfo const):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitDumbVirtualCall):

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::MarkingGCAwareJITStubRoutine::MarkingGCAwareJITStubRoutine):
(JSC::GCAwareJITStubRoutineWithExceptionHandler::GCAwareJITStubRoutineWithExceptionHandler):
(JSC::createJITStubRoutine):

  • jit/GCAwareJITStubRoutine.h:

(JSC::GCAwareJITStubRoutine::create):
(JSC::createJITStubRoutine): Deleted.

  • jit/Repatch.cpp:

(JSC::linkSlowFor):
(JSC::linkVirtualFor):

6:16 PM Changeset in webkit [253360] by Chris Dumez
  • 9 edits in trunk/Source/WebKit

[macOS] Issue load sooner on swipe back/forward navigation
https://bugs.webkit.org/show_bug.cgi?id=205087

Reviewed by Tim Horton.

Issue load sooner on swipe back/forward navigation on macOS. We were waiting until the end of
the swipe animation to issue the load. We now issue the load as soon as the user lifts the finger
off the screen and thus commits to navigating. This results in improved perceived performance
when swiping back/forward to navigate.

This patch does not take care of iOS because the ViewGestureController logic is different on that
platform. There is no reason we shouldn't be able to do the same optimization on iOS too though.

To achieve the behavior change on macOS, the following was done:

  • Issue the load in ViewGestureController::willEndSwipeGesture() instead of ViewGestureController::endSwipeGesture().
  • Add a new SnapshotRemovalTracker::Event::SwipeAnimationEnd event and wait for this event before taking away the snapshot. This makes sure we do not take away the swipe snapshot until the swipe animation is actually over (now that we start the navigation during the animation, instead of after).
  • To make sure that layer being swiped away stays the same until the end of the animation, I added a new SwipeAnimation reason for freezing the layer tree. At the beginning of the animation, the UIProcess sends a FreezeLayerTreeDueToSwipeAnimation IPC to the WebProcess to add this layer tree freeze reason. At the end of the animation, the UIProcess sends the UnfreezeLayerTreeDueToSwipeAnimation IPC to remove this freeze reason. Without this change, the layer being swiped away would sometimes start showing the destination site being loaded before the end of the animation. On cross-process navigation, not freezing the layer tree would cause the swipe animation to get interrupted when we have something to paint in the new process before the end of the swipe animation.
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::initializeWebPage):

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::SnapshotRemovalTracker::eventsDescription):
(WebKit::ViewGestureController::willEndSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/ViewGestureController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::commitProvisionalPage):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isLayerTreeFrozenDueToSwipeAnimation const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::freezeLayerTreeDueToSwipeAnimation):
(WebKit::WebPage::unfreezeLayerTreeDueToSwipeAnimation):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
5:52 PM Changeset in webkit [253359] by Fujii Hironori
  • 9 edits in trunk/Source

[Win] Fix MSVC warning C4701: potentially uninitialized local variable 'x' used
https://bugs.webkit.org/show_bug.cgi?id=205052

Reviewed by Don Olmstead.

Source/WebCore:

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::setLineCap): Zero-initialize a local variable cairoCap.
(WebCore::Cairo::setLineJoin): Zero-initialize a local variable cairoJoin

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::shouldBlockCookies const): Added
ASSERT_NOT_REACHED() and return false at the end of the function.

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::getToplevelBrowsingContextRect):
(WebDriver::Session::computeElementLayout):
Zero-initialized local variables.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired const):
Zero-initialized local variables.

5:45 PM Changeset in webkit [253358] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Worklist::deleteCancelledPlansForVM() should not assume that a cancelled plan is ready for deletion.
https://bugs.webkit.org/show_bug.cgi?id=205086
<rdar://problem/57795002>

Reviewed by Saam Barati.

Consider this race scenario:

  1. The DFG thread finds a plan and started compiling, and it's holding a ref to the plan while it's compiling.
  2. The GC thread discovers that we no longer need the plan and cancels it.
  3. After the plan is cancelled but while the DFG thread is still compiling, the mutator thread calls Worklist::deleteCancelledPlansForVM().

Worklist::deleteCancelledPlansForVM() was assuming that by the time it is
called, Worklist::m_cancelledPlansPendingDestruction will contain the last ref
to the cancelled plan. However, this is an incorrect assumption, and the
assertion there that asserts refCount == 1 will fail.

This patch fixes Worklist::deleteCancelledPlansForVM() to append the cancelled
plan back into m_cancelledPlansPendingDestruction if its refCount is not 1
(implying that the compiler thread still has a ref to it), and defer deletion of
the plan to a subsequent call to deleteCancelledPlansForVM().

This patch also adds a WTFMove to Worklist::removeDeadPlans() when we append the
cancelled plan to m_cancelledPlansPendingDestruction there. This saves us one
unnecessary ref and deref of the plan.

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::deleteCancelledPlansForVM):
(JSC::DFG::Worklist::removeDeadPlans):

5:35 PM Changeset in webkit [253357] by pvollan@apple.com
  • 17 edits in trunk/Source

[iOS] Calls to the device motion API should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=204770

Reviewed by Brent Fulgham.

Source/WebCore:

The device motion API on iOS is communicating with iohideventsystem. Since mach lookup to this daemon
will be closed, the calls to this API should be moved from the WebContent process to the UI process.
This patch implements forwarding of the device orientation requests to the UI process through the
class, DeviceOrientationUpdateProvider, which is subclassed by WebDeviceOrientationUpdateProvider in
modern WebKit. This class implements forwarding of the requests to the UI process, and receives
device orientation updates from the UI process. An instance of this class will be shared by all
device orientation clients on a page, and passed as part of the page configuration parameters. On
the UI process side, the class WebDeviceOrientationUpdateProviderProxy attached to the Web page
proxy is taking care of calling the device orientation API through the existing WebCoreMotionManager
Objective-C class, and send device orientation updates back to the Web process. Also, use a weak
hash set of clients in WebDeviceOrientationUpdateProvider.

No new tests, covered by existing tests.

  • dom/Document.cpp:
  • platform/ios/DeviceMotionClientIOS.h:
  • platform/ios/DeviceMotionClientIOS.mm:

(WebCore::DeviceMotionClientIOS::DeviceMotionClientIOS):
(WebCore::DeviceMotionClientIOS::startUpdating):
(WebCore::DeviceMotionClientIOS::stopUpdating):
(WebCore::DeviceMotionClientIOS::deviceMotionControllerDestroyed):

  • platform/ios/DeviceOrientationClientIOS.mm:

(WebCore::DeviceOrientationClientIOS::startUpdating):
(WebCore::DeviceOrientationClientIOS::stopUpdating):
(WebCore::DeviceOrientationClientIOS::deviceOrientationControllerDestroyed):

  • platform/ios/DeviceOrientationUpdateProvider.h:
  • platform/ios/MotionManagerClient.h:

(WebCore::MotionManagerClient::orientationChanged):
(WebCore::MotionManagerClient::motionChanged):

  • platform/ios/WebCoreMotionManager.h:
  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager addMotionClient:]):
(-[WebCoreMotionManager removeMotionClient:]):
(-[WebCoreMotionManager checkClientStatus]):
(-[WebCoreMotionManager sendAccelerometerData:]):
(-[WebCoreMotionManager sendMotionData:withHeading:]):

Source/WebKit:

The class WebDeviceOrientationUpdateProviderProxy will handle messages to start and stop updating device motion
in the UI process. Also, add a message to update the device motion in the WebContent process. In the UI process,
the device motion API is called through the already existing WebCoreMotionManager class.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.h:
  • UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.messages.in:
  • UIProcess/ios/WebDeviceOrientationUpdateProviderProxy.mm:

(WebKit::WebDeviceOrientationUpdateProviderProxy::startUpdatingDeviceMotion):
(WebKit::WebDeviceOrientationUpdateProviderProxy::stopUpdatingDeviceMotion):
(WebKit::WebDeviceOrientationUpdateProviderProxy::motionChanged):

  • WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.cpp:

(WebKit::WebDeviceOrientationUpdateProvider::startUpdatingDeviceOrientation):
(WebKit::WebDeviceOrientationUpdateProvider::stopUpdatingDeviceOrientation):
(WebKit::WebDeviceOrientationUpdateProvider::startUpdatingDeviceMotion):
(WebKit::WebDeviceOrientationUpdateProvider::stopUpdatingDeviceMotion):
(WebKit::WebDeviceOrientationUpdateProvider::deviceOrientationChanged):
(WebKit::WebDeviceOrientationUpdateProvider::deviceMotionChanged):
(WebKit::WebDeviceOrientationUpdateProvider::startUpdating): Deleted.
(WebKit::WebDeviceOrientationUpdateProvider::stopUpdating): Deleted.

  • WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.h:
  • WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.messages.in:
5:25 PM Changeset in webkit [253356] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Create a TestExpectations file for the GPU process related work
https://bugs.webkit.org/show_bug.cgi?id=205088

Patch by Peng Liu <Peng Liu> on 2019-12-10
Reviewed by Tim Horton.

  • gpu-process/TestExpectations: Added.
5:19 PM Changeset in webkit [253355] by pvollan@apple.com
  • 2 edits in trunk/Tools

Fix API test failure after r253351
https://bugs.webkit.org/show_bug.cgi?id=205089

Reviewed by Brent Fulgham.

With the patch landed in r253351, the NetworkExtension framework will not be loaded in the WebContent process unless
[NEFilterSource filterRequired] returns YES. Swizzle this method to return YES in the UI process.

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:

(filterRequired):
(TEST):

3:59 PM Changeset in webkit [253354] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, drop debug assertion in InspectorTargetProxy::didCommitProvisionalTarget() that is hitting after r253337

r253337 causes the ProvisionalPageProxy to get destroyed a little bit early, before didCommitProvisionalTarget()
is called. didCommitProvisionalTarget() had an assertion that isProvisional() returns true, which merely checked
that the ProvisionalPageProxy is still alive before nulling out its WeakPtr.

  • UIProcess/InspectorTargetProxy.cpp:

(WebKit::InspectorTargetProxy::didCommitProvisionalTarget):

3:39 PM Changeset in webkit [253353] by pvollan@apple.com
  • 4 edits in trunk/Source/WebCore

Make it possible to add regression tests for blocked XPC services
https://bugs.webkit.org/show_bug.cgi?id=204967

Reviewed by Brent Fulgham.

On macOS and iOS, it should be possible to add regression tests for blocked mach services. Add a method
to Internals, which checks whether a given process has access to mach lookup for a given global service
name. Currently, the only supported process is the WebContent process since the PIDs of other processes
are not readily available in Internals, but support for other processes will be added when needed.

No new tests, since this patch is in preparation for adding regression tests for sandbox changes.

  • testing/Internals.cpp:

(WebCore::Internals::hasSandboxMachLookupAccessToGlobalName):

  • testing/Internals.h:
  • testing/Internals.idl:
3:28 PM Changeset in webkit [253352] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

IndexedDB: remove timer for completed operation in IDBTransaction
https://bugs.webkit.org/show_bug.cgi?id=205043

Reviewed by Brady Eidson.

Using a zero-delay Timer is slower than executing task immediately, and there is no specific reason to use a
Timer here.

Covered by existing tests.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::operationCompletedOnServer):
(WebCore::IDBTransaction::handleOperationsCompletedOnServer):
(WebCore::IDBTransaction::finishedDispatchEventForRequest):
(WebCore::IDBTransaction::scheduleCompletedOperationTimer): Deleted.
(WebCore::IDBTransaction::completedOperationTimerFired): Deleted.

  • Modules/indexeddb/IDBTransaction.h:
3:21 PM Changeset in webkit [253351] by pvollan@apple.com
  • 11 edits in trunk/Source

[iOS] Deny mach lookup access to network extension services in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=203929

Reviewed by Brent Fulgham.

Source/WebCore:

Add a global flag to NetworkExtensionContentFilter to indicate whether network extension sandbox extensions have
been consumed. If the flag has been set, there is no need to check NEFilterSource.filterRequired, since the flag
will tell if filtering is required. Checking NEFilterSource.filterRequired will lead to other mach lookups which
we are trying to avoid.

The test ContentFiltering.LazilyLoadPlatformFrameworks has been modified.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/NetworkExtensionContentFilter.h:
  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::enabled):

Source/WebKit:

Mach lookup access to network extension services in the WebContent process is only needed if
NEFilterSource.filterRequired is true. If this is the case, issue the needed mach lookup
sandbox extensions to the WebContent process, where they will be consumed. Eventually, all
the content filtering code should be moved to the Networking process, but since this is a
bigger undertaking, we can issue extensions in the meantime to strengthen the sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:
3:08 PM Changeset in webkit [253350] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

methodOfGettingAValueProfileFor should return argument value profiles even when node and operandNode are the same origin
https://bugs.webkit.org/show_bug.cgi?id=205083

Reviewed by Yusuke Suzuki.

Inside methodOfGettingAValueProfileFor, we only grab profiles when the child
node and the parent node were from different code origins. This policy doesn't
make sense when the child node is the load of an argument value. In that case,
we can always just grab the argument profile.

We might want to reconsider this policy in general, since it's common for a
node to emit a GetLocal to grab its incoming arguments (this is frequently
done in the DFG when reloading locals across basic blocks).

This fixes an OSR exit compile loop inside Speedometer 2's React-Redux-TodoMVC
benchmark. That benchmark would repeatedly exit inside CompareStrictEq by
repeatedly speculating Object. That node would run with 95% incoming Objects,
and 5% incoming strings, and because we didn't grab the argument value profile
during exit, we never updated the profile with the String type information.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

3:06 PM Changeset in webkit [253349] by Alan Coon
  • 1 copy in tags/Safari-608.5.5

Tag Safari-608.5.5.

3:01 PM Changeset in webkit [253348] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r251038): Elements: Computed: implicit shorthands are not shown when "Prefer Shorthands" is enabled
https://bugs.webkit.org/show_bug.cgi?id=205035
<rdar://problem/57773470>

Reviewed by Brian Burg.

The computed style treats most shorthand properties as "implicit", meaning that if "Prefer
Shorthands" is enabled, we won't show the shorthand properties unless "Show All" is also
enabled. The frontend can fix this by checking to see if there are any non-implicit longhand
values for each shorthand value, and therefore decide not to hide the "implicit" shorthand.

  • UserInterface/Views/ComputedStyleSection.js:

(WI.ComputedStyleSection.prototype.get propertiesToRender):
(WI.ComputedStyleSection.prototype.get propertiesToRender.hasNonImplicitLonghand): Added.
Drive-by: filter the list of properties to render before sorting them for performance.

2:40 PM Changeset in webkit [253347] by Alan Coon
  • 1 copy in tags/Safari-608.5.0.2.2

Tag Safari-608.5.0.2.2.

2:29 PM Changeset in webkit [253346] by Chris Dumez
  • 19 edits in trunk/Source/WebKit

Leverage the fact that WebPageProxy subclasses IPC::MessageSender to simplify IPC sending code
https://bugs.webkit.org/show_bug.cgi?id=205065

Reviewed by Alex Christensen.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::selectOptionElement):
(WebKit::WebAutomationSession::setFilesForInputFileUpload):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::takeScreenshot):

  • UIProcess/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::load):
(WebKit::RemoteWebInspectorProxy::sendMessageToFrontend):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy):

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::unapply):
(WebKit::WebEditCommandProxy::reapply):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::loadURL):
(WebKit::WebFrameProxy::loadData):
(WebKit::WebFrameProxy::stopLoading const):

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::sendMessageToFrontend):
(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::close):
(WebKit::WebInspectorProxy::updateForNewPageProcess):
(WebKit::WebInspectorProxy::setFrontendConnection):
(WebKit::WebInspectorProxy::showConsole):
(WebKit::WebInspectorProxy::showResources):
(WebKit::WebInspectorProxy::showMainResourceForFrame):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::togglePageProfiling):
(WebKit::WebInspectorProxy::toggleElementSelection):
(WebKit::WebInspectorProxy::openLocalInspectorFrontend):
(WebKit::WebInspectorProxy::open):
(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
(WebKit::WebInspectorProxy::attachAvailabilityChanged):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setUIClient):
(WebKit::WebPageProxy::setIconLoadingClient):
(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::launchProcessWithItem):
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPageProxy::stopLoading):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::tryRestoreScrollPosition):
(WebKit::WebPageProxy::setControlledByAutomation):
(WebKit::WebPageProxy::setIndicating):
(WebKit::WebPageProxy::setBackgroundColor):
(WebKit::WebPageProxy::setTopContentInset):
(WebKit::WebPageProxy::setUnderlayColor):
(WebKit::WebPageProxy::viewWillStartLiveResize):
(WebKit::WebPageProxy::viewWillEndLiveResize):
(WebKit::WebPageProxy::viewDidEnterWindow):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::layerHostingModeDidChange):
(WebKit::WebPageProxy::setInitialFocus):
(WebKit::WebPageProxy::clearSelection):
(WebKit::WebPageProxy::restoreSelectionInFocusedEditableElement):
(WebKit::WebPageProxy::validateCommand):
(WebKit::WebPageProxy::increaseListLevel):
(WebKit::WebPageProxy::decreaseListLevel):
(WebKit::WebPageProxy::changeListType):
(WebKit::WebPageProxy::setBaseWritingDirection):
(WebKit::WebPageProxy::setNeedsFontAttributes):
(WebKit::WebPageProxy::scheduleFullEditorStateUpdate):
(WebKit::WebPageProxy::selectAll):
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):
(WebKit::WebPageProxy::setEditable):
(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::dragEnded):
(WebKit::WebPageProxy::didStartDrag):
(WebKit::WebPageProxy::dragCancelled):
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::handleGestureEvent):
(WebKit::WebPageProxy::handlePreventableTouchEvent):
(WebKit::WebPageProxy::resetPotentialTapSecurityOrigin):
(WebKit::WebPageProxy::handleUnpreventableTouchEvent):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::cancelPointer):
(WebKit::WebPageProxy::touchWithIdentifierWasRemoved):
(WebKit::WebPageProxy::scrollBy):
(WebKit::WebPageProxy::centerSelectionInVisibleArea):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::setUserAgent):
(WebKit::WebPageProxy::resumeActiveDOMObjectsAndAnimations):
(WebKit::WebPageProxy::suspendActiveDOMObjectsAndAnimations):
(WebKit::WebPageProxy::setCustomTextEncodingName):
(WebKit::WebPageProxy::restoreFromSessionState):
(WebKit::WebPageProxy::setTextZoomFactor):
(WebKit::WebPageProxy::setPageZoomFactor):
(WebKit::WebPageProxy::setPageAndTextZoomFactors):
(WebKit::WebPageProxy::scalePage):
(WebKit::WebPageProxy::scalePageInViewCoordinates):
(WebKit::WebPageProxy::scaleView):
(WebKit::WebPageProxy::windowScreenDidChange):
(WebKit::WebPageProxy::accessibilitySettingsDidChange):
(WebKit::WebPageProxy::setUseFixedLayout):
(WebKit::WebPageProxy::setFixedLayoutSize):
(WebKit::WebPageProxy::setAlwaysShowsHorizontalScroller):
(WebKit::WebPageProxy::setAlwaysShowsVerticalScroller):
(WebKit::WebPageProxy::listenForLayoutMilestones):
(WebKit::WebPageProxy::setSuppressScrollbarAnimations):
(WebKit::WebPageProxy::setEnableVerticalRubberBanding):
(WebKit::WebPageProxy::setEnableHorizontalRubberBanding):
(WebKit::WebPageProxy::setBackgroundExtendsBeyondPage):
(WebKit::WebPageProxy::setPaginationMode):
(WebKit::WebPageProxy::setPaginationBehavesLikeColumns):
(WebKit::WebPageProxy::setPageLength):
(WebKit::WebPageProxy::setGapBetweenPages):
(WebKit::WebPageProxy::setPaginationLineGridEnabled):
(WebKit::WebPageProxy::findStringMatches):
(WebKit::WebPageProxy::findString):
(WebKit::WebPageProxy::getImageForFindMatch):
(WebKit::WebPageProxy::selectFindMatch):
(WebKit::WebPageProxy::indicateFindMatch):
(WebKit::WebPageProxy::hideFindUI):
(WebKit::WebPageProxy::countStringMatches):
(WebKit::WebPageProxy::replaceMatches):
(WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld):
(WebKit::WebPageProxy::runJavaScriptInFrame):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::getContentsAsMHTMLData):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::getSelectionAsWebArchiveData):
(WebKit::WebPageProxy::getMainResourceDataOfFrame):
(WebKit::WebPageProxy::getResourceDataFromFrame):
(WebKit::WebPageProxy::getWebArchiveOfFrame):
(WebKit::WebPageProxy::forceRepaint):
(WebKit::WebPageProxy::preferencesDidChange):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::willSubmitForm):
(WebKit::WebPageProxy::showShareSheet):
(WebKit::WebPageProxy::setMediaVolume):
(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::stopMediaCapture):
(WebKit::WebPageProxy::stopAllMediaPlayback):
(WebKit::WebPageProxy::suspendAllMediaPlayback):
(WebKit::WebPageProxy::resumeAllMediaPlayback):
(WebKit::WebPageProxy::handleMediaEvent):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSave):

2:08 PM Changeset in webkit [253345] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

1:56 PM Changeset in webkit [253344] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Unreviewed, rolling out r253321.
https://bugs.webkit.org/show_bug.cgi?id=205084

1% regression in RAMification (Requested by yusukesuzuki on
#webkit).

Reverted changeset:

"[JSC] Put JSArray in IsoSubspace"
https://bugs.webkit.org/show_bug.cgi?id=205049
https://trac.webkit.org/changeset/253321

1:27 PM Changeset in webkit [253343] by Chris Dumez
  • 8 edits in trunk

Gyroscope (DeviceMotion related) permission cannot be requested in WKWebView unless the client app sets a WKUIDelegate
https://bugs.webkit.org/show_bug.cgi?id=203287

Reviewed by Alex Christensen.

Source/WebKit:

Device orientation / motion events permission dialog would not be shown unless the client app
set a WKUIDelegate on the WKWebView, even though we do not need this WKUIDelegate to show the
prompt.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _deviceOrientationUserPermissionHandler]):
(-[WKWebView _setDeviceOrientationUserPermissionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess):

  • UIProcess/Cocoa/WKOrientationAccessAlert.mm:

(WebKit::presentOrientationAccessAlert):

Tools:

Add layout test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:

(runDeviceOrientationTest):
(TEST):

1:18 PM Changeset in webkit [253342] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, drop bad assertion in PreconnectTask::willSendRedirectedRequest()

PreconnectTask::willSendRedirectedRequest() may get called in case of HSTS redirect,
so the ASSERT_NOT_REACHED() is wrong.

  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::willSendRedirectedRequest):

12:56 PM Changeset in webkit [253341] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Call RenderText:text() to get the rendered content instead of ::originalText()
https://bugs.webkit.org/show_bug.cgi?id=205079
<rdar://problem/57804297>

Reviewed by Antti Koivisto.

It fixes the cases when the original text content is different from the rendered content (e.g. Yen symbol).

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutBox):

12:19 PM Changeset in webkit [253340] by Chris Dumez
  • 3 edits in trunk/LayoutTests/imported/w3c

Re-sync imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html from usptream
https://bugs.webkit.org/show_bug.cgi?id=205070

Reviewed by Alex Christensen.

Re-sync imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html from usptream
ab28e18f067f17a76d9c32.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
12:10 PM Changeset in webkit [253339] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r253212.
https://bugs.webkit.org/show_bug.cgi?id=205074

'<rdar://problem/57771300> REGRESSION (253212): Safari does
not load local html file, base system Safari does not load
RecoveryInformation.html' (Requested by nham on #webkit).

Reverted changeset:

"Drop support for NSURLCache callbacks in NetworkProcess"
https://bugs.webkit.org/show_bug.cgi?id=203344
https://trac.webkit.org/changeset/253212

12:09 PM Changeset in webkit [253338] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION(r252523): Web Inspector: Styles: semicolon is wrongly positioned in multiline values
https://bugs.webkit.org/show_bug.cgi?id=205034
<rdar://problem/57772846>

Reviewed by Brian Burg.

Wrap the value node in another <span class="value-container"> so that the semicolon can be
included as part of the display: inline-block; when there are multiple lines in the value.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.update):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property:not(.disabled).has-newline .value-container): Added.
(.spreadsheet-style-declaration-editor .property:not(.disabled).has-newline .value): Deleted.

12:04 PM Changeset in webkit [253337] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

[WK2][iOS] Visibility propagation view is not properly updated when navigating cross-process
https://bugs.webkit.org/show_bug.cgi?id=205028

Reviewed by Tim Horton.

Make sure we keep the contextIDForVisibilityPropagation on the ProvisionalPageProxy / SuspendedPageProxy
objects and update WebPageProxy::m_contextIDForVisibilityPropagation whenever we commit a provisional
page. Also update ProvisionalPageProxy to listen for the WebPageProxy::DidCreateContextForVisibilityPropagation
IPC so that it can update m_contextIDForVisibilityPropagation once the WebPage is created in the
provisional WebProcess (which creates the visibility propagation view).

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::didCreateContextForVisibilityPropagation):
(WebKit::ProvisionalPageProxy::didReceiveMessage):

  • UIProcess/ProvisionalPageProxy.h:

(WebKit::ProvisionalPageProxy::contextIDForVisibilityPropagation const):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::swapToProvisionalPage):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::swapToWebProcess): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _setupVisibilityPropagationView]):
(-[WKContentView _removeVisibilityPropagationView]):

11:51 AM Changeset in webkit [253336] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: there is a double border between the last rule and the class list area or filter area
https://bugs.webkit.org/show_bug.cgi?id=205040

Reviewed by Brian Burg.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style.style-rules > .content ~ :matches(.options-container, .class-list-container)): Added.
(.sidebar > .panel.details.css-style > .content ~ .options-container):
Use a CSS transform to move the class list area and filter area up when the Styles panel is
selected in the details sidebar of the Elements Tab.

11:41 AM Changeset in webkit [253335] by Tadeu Zagallo
  • 13 edits
    1 copy in trunk/Source/JavaScriptCore

Reduce JSC's binary size
https://bugs.webkit.org/show_bug.cgi?id=204549

Reviewed by Saam Barati.

The Wasm interpreter landed in r251886 and significantly increased JSC's binary size. To try and
offset that, here and some easy fixes that get us ~200kb back:

  • We were generating 2 instances of dumpBytecode, at 30kb each. I changed the generator to emit a cpp file instead, avoiding the duplication.
  • We had 3 instances of computeUsesForBytecodeIndex at 11kb each. I kept the work that depended on the template type in the template function and moved the massive switch into computeUsesForBytecodeIndexImpl. I also did the same for computeDefsForBytecodeIndex.
  • We had 8 instances of emit_compareAndJump(Slow) at 8kb (7kb for Slow) each. I kept the code that extracts the data from the bytecode in the template, but moved the bulk of the function into emit_compareAndJump(Slow)Impl.
  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumperBase::printLocationAndOp):
(JSC::BytecodeDumperBase::dumpValue):

  • bytecode/BytecodeDumper.h:

(JSC::BytecodeDumperBase::~BytecodeDumperBase):
(JSC::BytecodeDumperBase::dumpValue):
(JSC::BytecodeDumperBase::BytecodeDumperBase):
(JSC::BytecodeDumper::BytecodeDumper):

  • bytecode/BytecodeUseDef.cpp: Copied from Source/JavaScriptCore/bytecode/BytecodeUseDef.h.

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeIndex):
(JSC::computeDefsForBytecodeIndex):

  • generator/DSL.rb:
  • generator/Opcode.rb:
  • generator/Options.rb:
  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_compareAndJump):
(JSC::JIT::emit_compareAndJumpImpl):
(JSC::JIT::emit_compareUnsignedAndJump):
(JSC::JIT::emit_compareUnsignedAndJumpImpl):
(JSC::JIT::emit_compareUnsigned):
(JSC::JIT::emit_compareUnsignedImpl):
(JSC::JIT::emit_compareAndJumpSlow):
(JSC::JIT::emit_compareAndJumpSlowImpl):

11:38 AM Changeset in webkit [253334] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC][Painting] TextRuns always have 0 left offset
https://bugs.webkit.org/show_bug.cgi?id=205071
<rdar://problem/57801254>

Reviewed by Antti Koivisto.

As the comment indicates TextRun start with the left offset of 0.
This patch also removes some FloatRect -> LayoutRect conversions (to match SLL's painting coordinates).

  • layout/displaytree/DisplayInlineContent.cpp:

(WebCore::Display:: const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::computeVisualOverflow):
(WebCore::LayoutIntegration::LineLayout::collectOverflow):
(WebCore::LayoutIntegration::LineLayout::paint):

11:23 AM Changeset in webkit [253333] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Produce a dummy libANGLE.a file to fool Apple's build test infrastructure
https://bugs.webkit.org/show_bug.cgi?id=205068
<rdar://problem/57713353>

Reviewed by Alex Christensen.

Create a dummy libANGLE.a file until our infrastructure realises it
doesn't need that file any more. Hopefully the fact that it isn't
really a static library, but just a text file, is ok.

  • ANGLE.xcodeproj/project.pbxproj: Add a new shell script phase that

creates a dummy file.

11:20 AM Changeset in webkit [253332] by Alan Coon
  • 7 edits in branches/safari-608.5.0.2-branch/Source

Versioning.

10:51 AM Changeset in webkit [253331] by youenn@apple.com
  • 158 edits in trunk

Mark some WPT test folders as DumpJSConsoleLogInStdErr
https://bugs.webkit.org/show_bug.cgi?id=204793

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Updated tests with removed console log lines.

  • web-platform-tests/cors/304-expected.txt:
  • web-platform-tests/cors/basic-expected.txt:
  • web-platform-tests/cors/client-hint-request-headers-expected.txt:
  • web-platform-tests/cors/cors-safelisted-request-header.any-expected.txt:
  • web-platform-tests/cors/cors-safelisted-request-header.any.worker-expected.txt:
  • web-platform-tests/cors/origin-expected.txt:
  • web-platform-tests/cors/preflight-failure-expected.txt:
  • web-platform-tests/cors/redirect-origin-expected.txt:
  • web-platform-tests/cors/redirect-preflight-2-expected.txt:
  • web-platform-tests/cors/remote-origin-expected.txt:
  • web-platform-tests/cors/simple-requests-expected.txt:
  • web-platform-tests/cors/status-async-expected.txt:
  • web-platform-tests/cors/status-expected.txt:
  • web-platform-tests/fetch/api/abort/general.any-expected.txt:
  • web-platform-tests/fetch/api/basic/integrity.sub.any-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin.any.worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-blob.sub.any-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data.any-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-others.sub.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-origin.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-status.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-preflight.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/sandboxed-iframe-expected.txt:
  • web-platform-tests/fetch/api/policies/csp-blocked-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-mode.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-mode.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-schemes-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl.any.worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-bad-port-expected.txt:
  • web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt:
  • web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt:
  • web-platform-tests/fetch/api/response/response-stream-with-broken-then.any-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/fetch-in-iframe-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/fetch.any-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/fetch.any.worker-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/iframe-loads-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/image-loads-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/scheme-restriction.any-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/scheme-restriction.any.worker-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/scheme-restriction.https.window-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/script-loads-expected.txt:
  • web-platform-tests/fetch/data-urls/base64.any-expected.txt:
  • web-platform-tests/fetch/data-urls/processing.any-expected.txt:
  • web-platform-tests/fetch/images/canvas-remote-read-remote-image-redirect-expected.txt:
  • web-platform-tests/fetch/security/redirect-to-url-with-credentials.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-fetch-with-appcache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/controller-with-no-fetch-event-handler.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-image-cache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-image.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-csp.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-fallback.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/opaque-response-preloaded.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/webvtt-cross-origin.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
  • web-platform-tests/service-workers/stub-3.1-service-worker-obj-expected.txt:
  • web-platform-tests/service-workers/stub-3.2-navigator-service-worker-expected.txt:
  • web-platform-tests/service-workers/stub-4.1-service-worker-global-scope-expected.txt:
  • web-platform-tests/service-workers/stub-4.4-request-objects-expected.txt:
  • web-platform-tests/service-workers/stub-4.5-response-objects-expected.txt:
  • web-platform-tests/service-workers/stub-4.6.3-cache-storage-expected.txt:
  • web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt:
  • web-platform-tests/xhr/access-control-basic-denied-expected.txt:
  • web-platform-tests/xhr/access-control-basic-non-cors-safelisted-content-type-expected.txt:
  • web-platform-tests/xhr/access-control-basic-preflight-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-request-invalid-status-301-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-request-invalid-status-400-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-request-invalid-status-501-expected.txt:
  • web-platform-tests/xhr/access-control-recursive-failed-request-expected.txt:
  • web-platform-tests/xhr/access-control-sandboxed-iframe-denied-expected.txt:
  • web-platform-tests/xhr/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
  • web-platform-tests/xhr/getresponseheader-error-state-expected.txt:
  • web-platform-tests/xhr/open-method-responsetype-set-sync-expected.txt:
  • web-platform-tests/xhr/open-url-redirected-sharedworker-origin-expected.txt:
  • web-platform-tests/xhr/responsetype.any-expected.txt:
  • web-platform-tests/xhr/security-consideration.sub-expected.txt:
  • web-platform-tests/xhr/send-authentication-basic-cors-expected.txt:
  • web-platform-tests/xhr/send-data-arraybuffer-expected.txt:
  • web-platform-tests/xhr/send-network-error-async-events.sub-expected.txt:
  • web-platform-tests/xhr/send-non-same-origin-expected.txt:
  • web-platform-tests/xhr/setrequestheader-content-type-expected.txt:
  • web-platform-tests/xhr/setrequestheader-header-forbidden-expected.txt:
  • web-platform-tests/xhr/timeout-cors-async-expected.txt:
  • web-platform-tests/xhr/timeout-sync-expected.txt:
  • web-platform-tests/xhr/xmlhttprequest-timeout-synconmain-expected.txt:

Tools:

Make DTR and WTR set the default DumpJSConsoleLogInStdErr to true for some WPT sub-folders.
This is easier done there instead of TestExpectations as TestExpectations can be overriden in more specific expectations.

  • DumpRenderTree/TestOptions.cpp:

(pathContains):
(shouldDumpJSConsoleLogInStdErr):
(TestOptions::TestOptions):

  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::shouldDumpJSConsoleLogInStdErr):
(WTR::TestOptions::TestOptions):

LayoutTests:

Remove no longer needed DumpJSConsoleLogInStdErr expectations.

10:38 AM Changeset in webkit [253330] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r253167): Elements: class list toggle doesn't stay sticky to the bottom of the sidebar
https://bugs.webkit.org/show_bug.cgi?id=205033

Reviewed by Brian Burg.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content):
Ensure that the main content of the sidebar panel takes up as much space as possible.

10:35 AM Changeset in webkit [253329] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: this._objectTree.resetPropertyPath is not a function. (In 'this._objectTree.resetPropertyPath()', 'this._objectTree.resetPropertyPath' is undefined)
https://bugs.webkit.org/show_bug.cgi?id=205026

Reviewed by Brian Burg.

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype.clearSessionState):
The _objectTree can also be an WI.ErrorObjectView, which doesn't have a property path.

9:15 AM Changeset in webkit [253328] by youenn@apple.com
  • 2 edits in trunk/Tools

Disable video capture in UIProcess for WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=205054

Reviewed by Eric Carlson.

  • WebKitTestRunner/TestOptions.h:

Some tests are still flaky as noted in bug 205053 and this option is still experimental.

9:02 AM Changeset in webkit [253327] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r253277) ASSERTION FAILED: !parameters.request.httpBody() in NetworkConnectionToWebProcess::preconnectTo()
https://bugs.webkit.org/show_bug.cgi?id=205030

Reviewed by Antti Koivisto.

Instead of using the full request as preconnect request, create a simple one that contains only the destination URL.
This avoids sending a request body unnecessarily over IPC, which was the cause of the assertion.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):

8:57 AM Changeset in webkit [253326] by Antti Koivisto
  • 28 edits in trunk

Source/WebCore:
Remove behavior that makes <br> boxes 0-height in quirks mode
https://bugs.webkit.org/show_bug.cgi?id=205004

Reviewed by Zalan Bujtas.

Implementation of the <br> quirk includes zeroing its height. This has no layout or rendering effects,
it exists purely to maintain render tree dump output for tests.

This patch removes this behavior but maintains the render tree dump output on the RenderTreeAsText
level (thus avoiding giant test rebasing), and makes it easier to get the same output from all paths.

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::logicalHeight const):
(WebCore::InlineBox::baselinePosition const):
(WebCore::InlineBox::lineHeight const):

Remove the hack from line boxes.

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::boundingBoxForRenderTreeDump const):

Add special bounding box code for this case.
This can be removed in future with a test rebase.

  • rendering/RenderLineBreak.h:
  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::Run::rect const):

Remove the hack from simple lines.

(WebCore::SimpleLineLayout::RunResolver::RunResolver):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Run::baselineOffset const):
(WebCore::SimpleLineLayout::RunResolver::Iterator::atBegin const):

  • rendering/line/LineLayoutTraversal.h:

(WebCore::LineLayoutTraversal::Box::baselineOffset const):
(WebCore::LineLayoutTraversal::Box::isHorizontal const):
(WebCore::LineLayoutTraversal::Box::useLineBreakBoxRenderTreeDumpQuirk const):

  • rendering/line/LineLayoutTraversalComplexPath.h:

(WebCore::LineLayoutTraversal::ComplexPath::isHorizontal const):
(WebCore::LineLayoutTraversal::ComplexPath::baselineOffset const):
(WebCore::LineLayoutTraversal::ComplexPath::useLineBreakBoxRenderTreeDumpQuirk const):

  • rendering/line/LineLayoutTraversalDisplayRunPath.h:

(WebCore::LineLayoutTraversal::DisplayRunPath::baselineOffset const):
(WebCore::LineLayoutTraversal::DisplayRunPath::isHorizontal const):
(WebCore::LineLayoutTraversal::DisplayRunPath::useLineBreakBoxRenderTreeDumpQuirk const):
(WebCore::LineLayoutTraversal::DisplayRunPath::isLastOnLine const):
(WebCore::LineLayoutTraversal::DisplayRunPath::lineBox const):

  • rendering/line/LineLayoutTraversalSimplePath.h:

(WebCore::LineLayoutTraversal::SimplePath::baselineOffset const):
(WebCore::LineLayoutTraversal::SimplePath::isHorizontal const):
(WebCore::LineLayoutTraversal::SimplePath::useLineBreakBoxRenderTreeDumpQuirk const):

LayoutTests:
Remove hack that makes <br> boxes 0-height in quirks mode
https://bugs.webkit.org/show_bug.cgi?id=205004

Reviewed by Zalan Bujtas.

A few changes due to aligning simple line path with complex, rounding, and some vertical text details.

  • fast/multicol/pagination-h-horizontal-bt-expected.txt:
  • fast/multicol/pagination-v-horizontal-bt-expected.txt:
  • fast/ruby/position-after-expected.txt:
  • platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt:
  • platform/ios/fast/writing-mode/english-bt-text-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/mac/fast/text/svg-font-face-with-kerning-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/english-bt-text-expected.txt:
  • platform/mac/fast/writing-mode/text-orientation-basic-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/win/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/win/fast/writing-mode/english-bt-text-expected.txt:
  • platform/win/fast/writing-mode/text-orientation-basic-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
8:13 AM Changeset in webkit [253325] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

Make preconnectTo()'s completionHandler optional
https://bugs.webkit.org/show_bug.cgi?id=205011

Reviewed by Antti Koivisto.

Make preconnectTo()'s completionHandler optional, so that the network process does not unnecessarily
send an IPC back if the client is not interested.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preconnectTo):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::preconnectTo):

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):

7:15 AM Changeset in webkit [253324] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Output hyphen strings
https://bugs.webkit.org/show_bug.cgi?id=205058

Reviewed by Zalan Bujtas.

  • rendering/line/LineLayoutTraversalDisplayRunPath.h:

(WebCore::LineLayoutTraversal::DisplayRunPath::hasHyphen const):

6:38 AM Changeset in webkit [253323] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/simple-line-layout-hyphenation-constrains.html
https://bugs.webkit.org/show_bug.cgi?id=205048
<rdar://problem/57780425>

Reviewed by Antti Koivisto.

Remove this hack for now and come up with a more sensible fix later if it breaks some tests.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::tryBreakingTextRun const):

6:34 AM Changeset in webkit [253322] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/basic/005.html
https://bugs.webkit.org/show_bug.cgi?id=205047
<rdar://problem/57780017>

Reviewed by Antti Koivisto.

Remove the code that triggers the assert on negative word-spacing.
Trimming is safe with negative values (and any negative trimmed width special handing should be in LineBreaker).

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::TrimmableContent::append):

1:41 AM Changeset in webkit [253321] by ysuzuki@apple.com
  • 11 edits in trunk/Source

[JSC] Put JSArray in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205049

Reviewed by Mark Lam.

Source/JavaScriptCore:

Put JSArray in IsoSubspace.

  • runtime/ArrayPrototype.h:
  • runtime/JSArray.h:

(JSC::JSArray::subspaceFor):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • tools/JSDollarVM.cpp:

Source/WebCore:

RuntimeArray is inheriting JSArray. We should have separate IsoSubspace for this.

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSVMClientData::runtimeArraySpace):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::subspaceForImpl):

  • bridge/runtime_array.h:

(JSC::RuntimeArray::create): Deleted.
(JSC::RuntimeArray::getLength const): Deleted.
(JSC::RuntimeArray::getConcreteArray const): Deleted.
(JSC::RuntimeArray::createPrototype): Deleted.
(JSC::RuntimeArray::createStructure): Deleted.

Dec 9, 2019:

9:02 PM Changeset in webkit [253320] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix the x86_64 probe so that we can get a full stack trace with libunwind and lldb.
https://bugs.webkit.org/show_bug.cgi?id=205050

Reviewed by Michael Saboff.

Before this patch, the stack trace from inside a probe function is cut off at ctiMasmProbeTrampoline:

(lldb) bt

  • thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)

...
frame #4: 0x0000000100824607 JavaScriptCore`WTF::Function<void (JSC::Probe::Context&)>::operator(this=0x000000010b88bd00, in=0x00007ffeefbfd400)(JSC::Probe::Context&) const at Function.h:79:35
frame #5: 0x0000000100823996 JavaScriptCore`JSC::stdFunctionCallback(context=0x00007ffeefbfd400) at MacroAssembler.cpp:53:5
frame #6: 0x000000010082701e JavaScriptCore`JSC::Probe::executeProbe(state=0x00007ffeefbfd480) at ProbeContext.cpp:51:5
frame #7: 0x000000010082614b JavaScriptCore`ctiMasmProbeTrampoline + 299

(lldb)

After this patch, we'll now get the full stack trace from inside the probe function:

(lldb) bt

  • thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)

...
frame #4: 0x0000000100826d17 JavaScriptCore`WTF::Function<void (JSC::Probe::Context&)>::operator(this=0x0000000106b878f8, in=0x00007ffeefbfd400)(JSC::Probe::Context&) const at Function.h:79:35
frame #5: 0x0000000100826106 JavaScriptCore`JSC::stdFunctionCallback(context=0x00007ffeefbfd400) at MacroAssembler.cpp:53:5
frame #6: 0x000000010082986e JavaScriptCore`JSC::Probe::executeProbe(state=0x00007ffeefbfd480) at ProbeContext.cpp:51:5
frame #7: 0x00000001008289a2 JavaScriptCore`ctiMasmProbeTrampoline + 338
frame #8: 0x0000466db28025be
frame #9: 0x0000000100754ffc JavaScriptCore`llint_entry at LowLevelInterpreter.asm:994
frame #10: 0x0000000100738173 JavaScriptCore`vmEntryToJavaScript at LowLevelInterpreter64.asm:307
frame #11: 0x0000000101489307 JavaScriptCore`JSC::JITCode::execute(this=0x0000000106ba1520, vm=0x0000000106d00000, protoCallFrame=0x00007ffeefbfd9b8) at JITCodeInlines.h:38:38
frame #12: 0x0000000101488982 JavaScriptCore`JSC::Interpreter::executeProgram(this=0x0000000106bfd1f8, source=0x00007ffeefbff090, (null)=0x000000010d0e0000, thisObj=0x000000010d0e8020) at Interpreter.cpp:847:51
frame #13: 0x00000001017d1f9c JavaScriptCore`JSC::evaluate(globalObject=0x000000010d0e0000, source=0x00007ffeefbff090, thisValue=JSValue @ 0x00007ffeefbfef60, returnedException=0x00007ffeefbff0b0) at Completion.cpp:146:38
frame #14: 0x000000010005838f jsc`runWithOptions(globalObject=0x000000010d0e0000, options=0x00007ffeefbff620, success=0x00007ffeefbff48b) at jsc.cpp:2670:35
frame #15: 0x000000010002a0da jsc`jscmain(this=0x00007ffeefbff5a0, vm=0x0000000106d00000, globalObject=0x000000010d0e0000, success=0x00007ffeefbff48b)::$_6::operator()(JSC::VM&, GlobalObject*, bool&) const at jsc.cpp:3157:13
frame #16: 0x0000000100006eff jsc`int runJSC<jscmain(int, char)::$_6>(options=0x00007ffeefbff620, isWorker=false, func=0x00007ffeefbff5a0)::$_6 const&) at jsc.cpp:3003:9
frame #17: 0x0000000100005988 jsc`jscmain(argc=10, argv=0x00007ffeefbff6c8) at jsc.cpp:3150:18
frame #18: 0x000000010000575e jsc`main(argc=10, argv=0x00007ffeefbff6c8) at jsc.cpp:2498:15
frame #19: 0x00007fff6cfc4da9 libdyld.dylib`start + 1
frame #20: 0x00007fff6cfc4da9 libdyld.dylib`start + 1

(lldb)

The difference is that the x86_64 ctiMasmProbeTrampoline now uses the standard
function prologue, and keeps %rbp pointing to trampoline function's semblance of
a frame that libunwind can understand while it calls the probe function.

  • assembler/MacroAssemblerX86Common.cpp:
8:07 PM Changeset in webkit [253319] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Put CustomGetterSetter and DOMAttributeGetterSetter in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205044

Reviewed by Sam Weinig.

Put CustomGetterSetter and DOMAttributeGetterSetter in IsoSubspace.

  • runtime/CustomGetterSetter.h:

(JSC::CustomGetterSetter::subspaceFor):

  • runtime/DOMAttributeGetterSetter.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
7:57 PM Changeset in webkit [253318] by ysuzuki@apple.com
  • 8 edits
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Remove NativeStdFunctionCell
https://bugs.webkit.org/show_bug.cgi?id=205045

Reviewed by Sam Weinig.

NativeStdFunctionCell is introduced because we were not able to make derived classes of JSFunction destructible.
But now we can do that by using IsoSubspace. And we already have IsoSubspace for JSNativeStdFunction. So we do
not need to have NativeStdFunctionCell cell. This patch removes it. And making JSNativeStdFunction destructible.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeAsyncCall):

  • runtime/JSNativeStdFunction.cpp:

(JSC::JSNativeStdFunction::JSNativeStdFunction):
(JSC::JSNativeStdFunction::visitChildren):
(JSC::JSNativeStdFunction::finishCreation):
(JSC::runStdFunction):
(JSC::JSNativeStdFunction::create):

  • runtime/JSNativeStdFunction.h:
  • runtime/NativeStdFunctionCell.cpp: Removed.
  • runtime/NativeStdFunctionCell.h: Removed.
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
6:39 PM Changeset in webkit [253317] by Kocsen Chung
  • 2 edits
    1 add in branches/safari-608-branch/Tools/TestWebKitAPI

Apply patch. rdar://problem/57363565

6:10 PM Changeset in webkit [253316] by eric.carlson@apple.com
  • 10 edits in trunk/Source

Rename media in the GPU process preference
https://bugs.webkit.org/show_bug.cgi?id=205013
<rdar://problem/57755319>

Reviewed by Tim Horton.

Source/WebCore:

  • page/Settings.yaml:

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences useGPUProcessForMedia]):
(-[WebPreferences setUseGPUProcessForMedia:]):
(-[WebPreferences outOfProcessMediaEnabled]): Deleted.
(-[WebPreferences setOutOfProcessMediaEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

5:54 PM Changeset in webkit [253315] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

[MSVC] writeNumberToBufferUnsigned is unsafe for bool type
https://bugs.webkit.org/show_bug.cgi?id=204873

Reviewed by Darin Adler.

MSVC reports warning for using / operator for bool type.

warning C4804: '/': unsafe use of type 'bool' in operation

And, 'bool' isn't expected to be serialized as '0' or '1'. 'bool' isn't supported.

  • wtf/text/IntegerToStringConversion.h: Added a static_assert to ensure UnsignedIntegerType isn't bool.
5:54 PM Changeset in webkit [253314] by Tadeu Zagallo
  • 11 edits
    2 deletes in trunk/Source/JavaScriptCore

[WebAssembly] Remove WasmValidate
https://bugs.webkit.org/show_bug.cgi?id=205037

Reviewed by Saam Barati.

It's currently only used when JSC_useWasmLLInt is false and it creates an additional instantiation
of Wasm::FunctionParser, which adds about 100kb to the binary size. This does not introduce any
behavior changes with the default options, but it means that we'll generate bytecode when calling
WebAssembly.validate/new WebAssembly.Module even when the WasmLLInt is disabled.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::didReceiveFunctionData):

  • wasm/WasmEntryPlan.cpp:
  • wasm/WasmLLIntPlan.cpp:
  • wasm/WasmModule.cpp:

(JSC::Wasm::makeValidationResult):
(JSC::Wasm::makeValidationCallback):
(JSC::Wasm::Module::validateSync):
(JSC::Wasm::Module::validateAsync):

  • wasm/WasmModule.h:
  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmPlan.cpp:
  • wasm/WasmValidate.cpp: Removed.
  • wasm/WasmValidate.h: Removed.
5:50 PM Changeset in webkit [253313] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[WinCairo] Add support of Unicode surrogate pair for simple texts
https://bugs.webkit.org/show_bug.cgi?id=205003

Reviewed by Don Olmstead.

FontCache::systemFallbackForCharacters of Windows port was working
only for BMP because it's using GetFontUnicodeRanges API which
supports only BMP. Use GetCharacterPlacement API to get glyphs for
non-BMP.

GlyphPage::fill of WinCairo port was working only for BMP because
it's using GetGlyphIndices API which supports only BMP. Use
GetCharacterPlacement API to get glyphs for non-BMP.

This change can be tested by pixel tests, but WinCairo port
doesn't include -expected.png files yet. Tested manually.

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::currentFontContainsCharacterNonBMP): Added.
(WebCore::currentFontContainsCharacter): Changed to take a string
instead of a 16bit character.
(WebCore::FontCache::systemFallbackForCharacters):

  • platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:

(WebCore::GlyphPage::fill): Use GetCharacterPlacement for non-BMP.

5:48 PM Changeset in webkit [253312] by Patrick Griffis
  • 7 edits
    1 copy
    35 adds in trunk/LayoutTests

Import secure cookie tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=204193

Reviewed by Carlos Alberto Lopez Perez.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/cookies/resources/cookie-helper.sub.js: Added.

(credFetch):
(assert_dom_cookie):
(assert_cookie):
(resetSameSiteCookies):
(resetSecureCookies):

  • web-platform-tests/cookies/resources/drop.py: Added.

(main):

  • web-platform-tests/cookies/resources/dropSameSite.py: Added.

(main):

  • web-platform-tests/cookies/resources/dropSecure.py: Added.

(main):

  • web-platform-tests/cookies/resources/echo-cookie.html: Added.
  • web-platform-tests/cookies/resources/echo-json.py: Added.

(main):

  • web-platform-tests/cookies/resources/helpers.py: Added.

(setNoCacheAndCORSHeaders):
(makeCookieHeader):
(makeCookieHeader.makeAV):
(makeDropCookie):
(readParameter):
(readCookies):

  • web-platform-tests/cookies/resources/imgIfMatch.py: Added.

(main):

  • web-platform-tests/cookies/resources/list.py: Added.

(main):

  • web-platform-tests/cookies/resources/postToParent.py: Added.

(main):

  • web-platform-tests/cookies/resources/redirectWithCORSHeaders.py: Added.

(main):

  • web-platform-tests/cookies/resources/set-cookie.py: Added.

(main):

  • web-platform-tests/cookies/resources/set.py: Added.

(main):

  • web-platform-tests/cookies/resources/setSameSite.py: Added.

(main):

  • web-platform-tests/cookies/resources/setSecure.py: Added.

(main):

  • web-platform-tests/cookies/resources/testharness-helpers.js: Added.

(executeNextTest):
(executeTestsSerially):

  • web-platform-tests/cookies/secure/set-from-dom.https.sub-expected.txt: Added.
  • web-platform-tests/cookies/secure/set-from-dom.https.sub.html: Added.
  • web-platform-tests/cookies/secure/set-from-dom.sub-expected.txt: Added.
  • web-platform-tests/cookies/secure/set-from-dom.sub.html: Added.
  • web-platform-tests/cookies/secure/set-from-http.https.sub-expected.txt: Added.
  • web-platform-tests/cookies/secure/set-from-http.https.sub.html: Added.
  • web-platform-tests/cookies/secure/set-from-http.https.sub.html.headers: Added.
  • web-platform-tests/cookies/secure/set-from-http.sub-expected.txt: Added.
  • web-platform-tests/cookies/secure/set-from-http.sub.html: Added.
  • web-platform-tests/cookies/secure/set-from-http.sub.html.headers: Added.
  • web-platform-tests/cookies/secure/set-from-ws.sub-expected.txt: Added.
  • web-platform-tests/cookies/secure/set-from-ws.sub.html: Added.
  • web-platform-tests/cookies/secure/set-from-wss.https.sub-expected.txt: Added.
  • web-platform-tests/cookies/secure/set-from-wss.https.sub.html: Added.

LayoutTests:

Mark newly imported test as failing.
Pending fix for WPE/GTK in webkit.org/b/169356

  • platform/gtk/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies-expected.txt: Added.
5:12 PM Changeset in webkit [253311] by Jonathan Bedard
  • 2 edits in trunk/Tools

test-webkitpy: Remove --<configuration> flags from CI
https://bugs.webkit.org/show_bug.cgi?id=205016

Reviewed by Stephanie Lewis.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunPythonTests): Remove --debug/--release flags to test-webkitpy.

4:57 PM Changeset in webkit [253310] by Simon Fraser
  • 3 edits in trunk/LayoutTests

compositing/video/video-border-radius-clipping.html is a flaky Image Failure
https://bugs.webkit.org/show_bug.cgi?id=204951
rdar://problem/57703078

Unreviewed test gardening. Make the test seek so we have a higher chance
of getting a video frame. It's apparently impossible to know when we have
a frame for ref testing.

  • compositing/video/video-border-radius-clipping-expected.html:
  • compositing/video/video-border-radius-clipping.html:
4:53 PM Changeset in webkit [253309] by Megan Gardner
  • 10 edits
    2 adds in trunk

Fill HighlightRangeGroup and HighlightMap with values from JavaScript
https://bugs.webkit.org/show_bug.cgi?id=204934
Source/WebCore:

rdar://problem/57686335

Reviewed by Simon Fraser.

Fillout HighlightMap and HighlightRangeGroup with the information that we're passed from
the JavaScript side. Make sure that the javascript objects are filled out correctly.

Test: highlight/highlight-map-and-group.html

  • Modules/highlight/HighlightMap.cpp:

(WebCore::HighlightMap::synchronizeBackingMap):
(WebCore::HighlightMap::setFromMapLike):
(WebCore::HighlightMap::clear):
(WebCore::HighlightMap::remove):
(WebCore::HighlightMap::getGroupForStyle):
(WebCore::HighlightMap::addHighlightGroup): Deleted.
(WebCore::HighlightMap::namedItem const): Deleted.
(WebCore::HighlightMap::setNamedItem): Deleted.
(WebCore::HighlightMap::deleteNamedProperty): Deleted.

  • Modules/highlight/HighlightMap.h:

(WebCore::HighlightMap::backingMap):
(WebCore::HighlightMap::synchronizeBackingMap): Deleted.
(WebCore::HighlightMap::clear): Deleted.

  • Modules/highlight/HighlightMap.idl:
  • Modules/highlight/HighlightRangeGroup.cpp:

(WebCore::HighlightRangeGroup::HighlightRangeGroup):
(WebCore::HighlightRangeGroup::initializeSetLike):
(WebCore::HighlightRangeGroup::removeFromSetLike):
(WebCore::HighlightRangeGroup::clearFromSetLike):
(WebCore::HighlightRangeGroup::addToSetLike):
(WebCore::HighlightRangeGroup::addRange): Deleted.
(WebCore::HighlightRangeGroup::removeRange): Deleted.
(WebCore::HighlightRangeGroup::Iterator::Iterator): Deleted.
(WebCore::HighlightRangeGroup::Iterator::next): Deleted.

  • Modules/highlight/HighlightRangeGroup.h:

(WebCore::HighlightRangeGroup::ranges const):
(): Deleted.
(WebCore::HighlightRangeGroup::createIterator): Deleted.

  • Modules/highlight/HighlightRangeGroup.idl:
  • dom/StaticRange.cpp:

(WebCore::StaticRange::operator== const):

  • dom/StaticRange.h:

LayoutTests:

Reviewed by Simon Fraser.

  • highlight/highlight-map-and-group-expected.txt: Added.
  • highlight/highlight-map-and-group.html: Added.
4:47 PM Changeset in webkit [253308] by Truitt Savell
  • 29 edits
    4 deletes in trunk

Unreviewed, rolling out r253299.

Casued 30+ imported/ test failures on Mac wk2

Reverted changeset:

"Throttling requestAnimationFrame should be controlled by
RenderingUpdateScheduler"
https://bugs.webkit.org/show_bug.cgi?id=204713
https://trac.webkit.org/changeset/253299

4:43 PM Changeset in webkit [253307] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

4:38 PM Changeset in webkit [253306] by Alan Coon
  • 3 edits
    1 add in branches/safari-609.1.12-branch

Cherry-pick r253280. rdar://problem/57733405

[WebAssembly] Fix LLIntGenerator's checkConsistency contract
https://bugs.webkit.org/show_bug.cgi?id=204998
<rdar://problem/57733405>

Reviewed by Mark Lam.

JSTests:

  • wasm/regress/stack-consistency.js: Added.

Source/JavaScriptCore:

We check the consistency of the WebAssembly parser's expression stack every time the LLIntGenerator calls
push to allocate a new stack value. However, if we call push more than once (e.g. in a loop), the stack
is no longer consistent, since those values have not yet been placed in the parser's expression stack, so
the generator and parser's stacks are out of sync. Instead, whenever we need to push multiple values, we
should first manually call checkConsistency before any pushes, and all pushes after that should be replaced
with push(NoConsistencyCheck).

  • wasm/WasmLLIntGenerator.cpp: (JSC::Wasm::LLIntGenerator::callInformationForCaller): (JSC::Wasm::LLIntGenerator::addArguments): (JSC::Wasm::LLIntGenerator::addLocal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253280 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:08 PM Changeset in webkit [253305] by Alan Coon
  • 1 copy in branches/safari-609.1.12-branch

New branch.

3:39 PM Changeset in webkit [253304] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

Regression(r249329) ViewGestureController::requestRenderTreeSizeNotificationIfNeeded() sometimes uses wrong webPageID for IPC
https://bugs.webkit.org/show_bug.cgi?id=205012

Reviewed by Tim Horton.

  • UIProcess/InspectorTargetProxy.cpp:

(WebKit::InspectorTargetProxy::connect):
(WebKit::InspectorTargetProxy::disconnect):
(WebKit::InspectorTargetProxy::sendMessageToTargetBackend):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::initializeWebPage):
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
(WebKit::ProvisionalPageProxy::messageSenderConnection const):
(WebKit::ProvisionalPageProxy::messageSenderDestinationID const):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::unsuspend):
(WebKit::SuspendedPageProxy::close):
(WebKit::SuspendedPageProxy::messageSenderConnection const):
(WebKit::SuspendedPageProxy::messageSenderDestinationID const):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::continueNavigationInNewProcess):
Have SuspendedPageProxy & ProvisionalPageProxy subclass IPC::MessageSender so that we can call send()
on them without having to pass in a PageIdentifier. Passing a PageIdentifier was error-prone.

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::requestRenderTreeSizeNotificationIfNeeded):
When there was a provisonal page proxy, we would properly send the IPC to the provisional page's process
but would use the wrong PageIdentifier for the IPC. We would use the identifier of the committed WebPage
instead of the one of the provisional WebPage.

3:23 PM Changeset in webkit [253303] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

REGRESSION(r253140): WebAssembly validation should check for unmatched else before calling addElse/addElseToUnreachable
https://bugs.webkit.org/show_bug.cgi?id=205022
<rdar://problem/57748159>

Reviewed by Saam Barati.

JSTests:

  • wasm/regress/unmatched-else.js: Added.

(catch):

Source/JavaScriptCore:

When moving the validation code into the parser in r253140, I missed the validation check of whether
an if block was at the top of the control stack before calling addElse/addElseToUnreachable.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

2:53 PM Changeset in webkit [253302] by Wenson Hsieh
  • 14 edits in trunk

Finish encoding/decoding support for DisplayList::SetState
https://bugs.webkit.org/show_bug.cgi?id=205018

Reviewed by Tim Horton.

Source/WebCore:

Finishes encoding and decoding support for the SetState display list item. See below for more details.

  • platform/graphics/Gradient.h:

(WebCore::Gradient::ColorStop::encode const):
(WebCore::Gradient::ColorStop::decode):
(WebCore::Gradient::LinearData::encode const):
(WebCore::Gradient::LinearData::decode):
(WebCore::Gradient::RadialData::encode const):
(WebCore::Gradient::RadialData::decode):
(WebCore::Gradient::ConicData::encode const):
(WebCore::Gradient::ConicData::decode):
(WebCore::Gradient::encode const):
(WebCore::Gradient::decode):

Introduce encoding and decoding support for WebCore::Gradient, and all of its constituent data members.

  • platform/graphics/GraphicsContext.h:

Remove ShadowColorChange, which was unused; instead, shadow color changes are indicated by the ShadowChange
flag, which also encompasses shadow offset and blur.

  • platform/graphics/Image.h:

Move DisplayList::ImageHandle to ImageHandle in Image.h, so that it can be referenced in the encode/decode
methods of WebCore::Pattern.

  • platform/graphics/Pattern.h:

(WebCore::Pattern::encode const):
(WebCore::Pattern::decode):

Introduce encoding and decoding support for WebCore::Pattern.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::FillRectWithGradient::FillRectWithGradient):

Implement encode and decode for FillRectWithGradient, now that we're able to encode and decode Gradients.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetState::encode const):
(WebCore::DisplayList::SetState::decode):

Encode the remaining data members of a GraphicsContextStateChange's state. These are: strokeGradient,
strokePattern, fillGradient, fillPattern, shadowOffset, shadowBlur, shadowColor (which was not previously being
encoded due to ShadowColorChange never being set), strokeThickness, textDrawingMode, strokeStyle, fillRule,
compositeOperator, blendMode, imageInterpolationQuality, shouldAntialias, shouldSmoothFonts,
shouldSubpixelQuantizeFonts and shadowsIgnoreTransforms.

(WebCore::DisplayList::FillRectWithGradient::encode const):
(WebCore::DisplayList::FillRectWithGradient::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):
(WebCore::DisplayList::FillRectWithGradient::FillRectWithGradient): Deleted.

Source/WebKit:

Replaces WebCore::DisplayList::ImageHandle with just WebCore::ImageHandle. See WebCore ChangeLog for more
details.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ImageHandle>::encode):
(IPC::ArgumentCoder<ImageHandle>::decode):
(IPC::ArgumentCoder<DisplayList::ImageHandle>::encode): Deleted.
(IPC::ArgumentCoder<DisplayList::ImageHandle>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:

LayoutTests:

Rebaseline several display list layout tests.

  • displaylists/layer-dispay-list-expected.txt:
  • platform/mac-wk1/displaylists/extent-includes-shadow-expected.txt:
  • platform/mac-wk1/displaylists/extent-includes-transforms-expected.txt:
2:19 PM Changeset in webkit [253301] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add support for word-break: break-word (and overflow-wrap)
https://bugs.webkit.org/show_bug.cgi?id=205024
<rdar://problem/57766087>

Reviewed by Antti Koivisto.

isTextSplitAtArbitraryPositionAllowed() returns true if the text content can just split anywhere.
word-break: break-word behaves like that unless the line already has breaking opportunity.
See https://www.w3.org/TR/css-text-3/#word-break-property

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::isTextContentWrappingAllowed):
(WebCore::Layout::isContentSplitAllowed):
(WebCore::Layout::isTextSplitAtArbitraryPositionAllowed):
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::isContentWrappingAllowed): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
1:42 PM Changeset in webkit [253300] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Stop active DOM objects in removedLastRef
https://bugs.webkit.org/show_bug.cgi?id=204975

Reviewed by Antti Koivisto.

Always stop active DOM objects before reaching the destructor.

  • dom/Document.cpp:

(WebCore::Document::~Document):
(WebCore::Document::removedLastRef):
(WebCore::Document::commonTeardown):
(WebCore::Document::prepareForDestruction):

1:12 PM Changeset in webkit [253299] by commit-queue@webkit.org
  • 29 edits
    4 adds in trunk

Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler
https://bugs.webkit.org/show_bug.cgi?id=204713

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-12-09
Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/animation/request-animation-frame-throttling-outside-viewport.html

requestAnimationFrame is throttled by a timer although its callback are
serviced by the page RenderingUpdate. This led to excessive rAF firing
which makes it more than the preferred frame per seconds.

The solution is to have two throttling types:

1) Page throttling (or full throttling) which slows down all the steps of

RenderingUpdate for the main document and all the sub-documents.

2) Document throttling (or partial throttling) which only slows down the

rAF of a certain document.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationInterval const):
(WebCore::DocumentTimeline::updateThrottlingState): Deleted.

  • animation/DocumentTimeline.h:

There is no need to have DocumentTimeline throttling. It is throttled
when the page RenderingUpdate is throttled.

  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateLastHandledUserGestureTimestamp):
LowPowerMode throttling is now handled by the page. So remove its handling
in the Document side.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::ScriptedAnimationController::page const):
(WebCore::ScriptedAnimationController::interval const):
(WebCore::ScriptedAnimationController::isThrottled const):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::throttlingReasonToString): Deleted.
(WebCore::throttlingReasonsToString): Deleted.
(WebCore::ScriptedAnimationController::addThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::removeThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::animationTimerFired): Deleted.

  • dom/ScriptedAnimationController.h:

(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
Get rid of the rAF throttling timer. Service the rAF callback only when
the period from the current time stamp till the last service time stamp
is greater than the preferred rAF interval .

  • page/FrameView.cpp:

(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):
ThrottlingReason is now defined outside ScriptedAnimationController.

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):
Use forEachDocument().

(WebCore::Page::preferredRenderingUpdateInterval const):
Calculate the preferred RenderingUpdate interval from the throttling
reasons.

(WebCore::Page::setIsVisuallyIdleInternal):
(WebCore::Page::handleLowModePowerChange):
Call adjustRenderingUpdateFrequency() when isLowPowerModeEnabled or
IsVisuallyIdle is toggled.

(WebCore::updateScriptedAnimationsThrottlingReason): Deleted.

  • page/Page.h:

(WebCore::Page::isRenderingUpdateThrottled const):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::adjustFramesPerSecond):
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency):
Change the preferredFramesPerSecond of the DisplayRefreshMonitor if the
throttling is not aggressive e.g. 10_s. Otherwise use the timer.

(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
Call adjustFramesPerSecond() when DisplayRefreshMonitor is created.

(WebCore::RenderingUpdateScheduler::startTimer):

  • page/RenderingUpdateScheduler.h:
  • platform/graphics/AnimationFrameRate.h: Added.

(WebCore::preferredFrameInterval):
(WebCore::preferredFramesPerSecond):

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::monitorForClient):
Rename createMonitorForClient() to monitorForClient() since it may return
a cached DisplayRefreshMonitor.

(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh):
No need to call registerClient(). This function was just ensuring the
DisplayRefreshMonitor is created. scheduleAnimation() does the same thing.

(WebCore::DisplayRefreshMonitorManager::createMonitorForClient): Deleted.
(WebCore::DisplayRefreshMonitorManager::registerClient): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.h:

(WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager): Deleted.

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):

  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:

(-[WebDisplayLinkHandler setPreferredFramesPerSecond:]):
Set the preferredFramesPerSecond of the CADisplayLink.

Source/WebKit:

Create an IPC message on the DrawingArea to send a message from the
WebProcess to the UIProcess to setPreferredFramesPerSecond of the
DisplayRefreshMonitor.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond):
Set the preferredFramesPerSecond of the CADisplayLink.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond):
Delegate the call to RemoteLayerTreeDrawingArea.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond):
Send the IPC message from the WebProcess to the UIProcess.

LayoutTests:

  • fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Added.
  • fast/animation/request-animation-frame-throttling-outside-viewport.html: Added.
  • fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
  • fast/animation/request-animation-frame-throttling-lowPowerMode.html:
  • fast/animation/resources/frame-with-animation-2.html: Added.
12:51 PM Changeset in webkit [253298] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

GetByIdVariant::dumpInContext() should not ref UniqueStringImpls.
https://bugs.webkit.org/show_bug.cgi?id=205023
<rdar://problem/57747265>

Reviewed by Saam Barati.

This is because GetByIdVariant::dumpInContext() may be called from the compiler
thread. GetByIdVariant::dumpInContext() inadvertently invoking the String copy
constructor on an Identifier, which in turn, refs the underlying UniqueStringImpl.
This results in a race against the mutator to adjust the refCount.

The fix is to have GetByIdVariant::dumpInContext() print the underlying
StringImpl instead of the Identifier itself.

  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::dumpInContext const):

12:05 PM Changeset in webkit [253297] by youenn@apple.com
  • 7 edits
    6 adds in trunk

NetworkResourceLoader should consume its sandbox extensions when starting a fetch through service worker
https://bugs.webkit.org/show_bug.cgi?id=204883
<rdar://problem/57568535>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Allow http/wpt tests to use LayoutTests/resources files.

  • resources/config.json:

Source/WebKit:

Consume sandbox extensions in network process before sending fetch task to service worker.
This makes sure network process can send proper sandbox extensions to the service worker and it also ensures
it will have the necessary rights to access the file if the fetch task is not handled by service worker.
Test: http/wpt/service-workers/file-upload.html

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::consumeSandboxExtensionsIfNeeded):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::startFetch):

LayoutTests:

  • http/tests/resources/create-temp-file-iframe.html: Added.
  • http/tests/resources/delete-temp-file-iframe.html: Added.
  • http/wpt/service-workers/file-upload-check.py: Added.
  • http/wpt/service-workers/file-upload-expected.txt: Added.
  • http/wpt/service-workers/file-upload-worker.js: Added.
  • http/wpt/service-workers/file-upload.html: Added.
11:23 AM Changeset in webkit [253296] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative tvOS build fix after r253231.

  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager sendMotionData:withHeading:]):

10:37 AM Changeset in webkit [253295] by Truitt Savell
  • 2 edits in trunk/LayoutTests

(r252889) webrtc/peerconnection-page-cache.html is crashing on iOS Debug
https://bugs.webkit.org/show_bug.cgi?id=205017

Unreviewed test gardening.

  • platform/ios/TestExpectations:
10:34 AM Changeset in webkit [253294] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] fix fast/text/simple-lines-multiple-renderers-break.html
https://bugs.webkit.org/show_bug.cgi?id=205014
<rdar://problem/57756348>

Reviewed by Antti Koivisto.

When dealing with series of runs (<span>text</span><span>content</span>) a partial content does not
necessarily mean partial runs. The content can actually be split right at a run boundary.
In such cases we have a partial trailing content but not a partial trailing run.

This patch also covers the case when the overflown run can't be split and
we attempt to find a previous breakable run (in the list of candidate runs).
Since it's guaranteed (with the FIXME of the extremely long hyphen) that all the previous runs fit the line,
we just pass in an infinite available width to LineBreaker::tryBreakingTextRun indicating that we only look for the last breakable position.

e.g. <span style="word-break: break-all">breakable</span><span>and</span><span>longandunbreakablecontent</span>
[breakable][and][longandunbreakablecontent] <- we try to commit this continuous list of runs
[longandunbreakablecontent] <- does not fit so let's go back to the previous runs to see if any of them can be split -> [breakableand].
result:
breakable
andlongandunbreakablecontent

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::processUncommittedContent):

  • layout/inlineformatting/LineLayoutContext.h:
10:34 AM Changeset in webkit [253293] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the macCatalyst build after r253267

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

10:00 AM Changeset in webkit [253292] by achristensen@apple.com
  • 9 edits in trunk

Re-disable TLS1.0 and TLS1.1 by default
https://bugs.webkit.org/show_bug.cgi?id=204922
<rdar://problem/57677752>

Reviewed by Youenn Fablet.

Source/WebKit:

Covered by updated API tests.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Tools:

  • TestWebKitAPI/TCPServer.cpp:

(TestWebKitAPI::TCPServer::respondWithOK):

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):
(TestWebKitAPI::getWebSocketEventWebKitLegacy):

9:49 AM Changeset in webkit [253291] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix debug assertion for ApplePay API tests on iOS after r253277.

Disable server preconnect if the load will be handled by the LegacyCustomProtocolManager.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preconnectTo):

9:12 AM Changeset in webkit [253290] by Darin Adler
  • 31 edits
    1 delete in trunk/Source

Streamline PODIntervalTree code and remove ValueToString
https://bugs.webkit.org/show_bug.cgi?id=199782

Reviewed by Anders Carlsson.

Source/WebCore:

  • dom/Element.cpp: Updated includes.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ignoreTrackDisplayUpdateRequests const): Moved this
function out of line so we don't have to include PODIntervalTree.h in the header.
But also, it's only used inside this file. Also updated for m_cueData.
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): More of the same.
(WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
(WebCore::HTMLMediaElement::textTrackRemoveCue): Ditto.
(WebCore::HTMLMediaElement::currentlyActiveCues const): Ditto.

  • html/HTMLMediaElement.h: Changed to not include PODIntervalTree.h, which in turn

includes PODRedBlackTree.h, to significantly cut down how many times we have to
compile those headers. Moved some functions out of line. Made m_cueData to hold the
two cue-related objects so they don't have to be defined in the header. Also
removed ValueToString specializations.

  • html/track/TextTrackCue.cpp:

(WebCore::operator<<): Added debug-only overload of TextStream operator.
(WebCore::TextTrackCue::debugString const): Deleted.

  • html/track/TextTrackCue.h: Updated for the above.
  • html/track/VTTCue.h: Added comments about the incorrect implementation of

isType for VTTCue. Tweaked formatting a bit as well.

  • platform/LayoutUnit.h: Removed ValueToString specialization.
  • platform/PODInterval.h: Use #pragma once. Removed inaccurate comments

saying this works only with POD. Use TextStream instead of ValueToString.
Added overloads to the constructor so we can do move semantics instead of
copy semantics, slightly better for WeakPtr. Removed the toString function
and added an overload of operator<< with TextStream. Use "{ }" instead of
"0" as the default value for user data.

  • platform/PODIntervalTree.h: Removed unneeded includes and unusual default

argument types for the templates. Changed setNeedsFullOrderingComparisons
and node updating to use template arguments instead of virtual functions
and runtime setters. This allowed removal of the constructor and the init
function since the defaults take care of both. Removed the overload of
the allOverlaps function that uses an out argument. Removed unneeded use
of WTF_MAKE_NONCOPYABLE. Use "{ }" instead of 0 for the default value
for user data. Changed the createInterval function to use move semantics.
Changed the nextIntervalAfter function to just take a point, not require
and interval and use its high point. The PODIntervalTree::updateNode
function is replaced with the PODIntervalNodeUpdater::update function.
Removed the ValueToString use and the overriding as well and replaced
with TextStream use.

  • platform/PODRedBlackTree.h: Updated comments to reflect the fact

that this is not specific to POD and uses TextStream. Also that the
needsFullOrderingComparisons technique is now a template argument.
Use pragma once. Added FIXME about a few major improvements we should
make.
(WebCore::PODRedBlackTree::~PODRedBlackTree): Made non-virtual since
we use template arguments for polymorphism and don't need virtual
functions too.
(WebCore::PODRedBlackTree::clear): Rewrote to use a non-recursive
algorithm to delete the tree nodes.
(WebCore::PODRedBlackTree::add): Added an overload that takes an
rvalue reference for move semantics.
(WebCore::PODRedBlackTree::visitInorder const): Deleted.
(WebCore::PODRedBlackTree::size const): Deleted.
(WebCore::PODRedBlackTree::isEmpty const): Replaced the inefficiently
implemented size function with this much faster function. Could have
also made a more efficient size function, but no client needs it.
(WebCore::PODRedBlackTree::setNeedsFullOrderingComparisons): Deleted.
(WebCore::PODRedBlackTree::checkInvariants const): Made non-virtual
since there is no need for polymorphism.
(WebCore::PODRedBlackTree::Node::Node): Use rvalue reference and
move semantics.
(WebCore::PODRedBlackTree::Node::copyFrom): Deleted.
(WebCore::PODRedBlackTree::Node::moveDataFrom): Use move instead of
copy. Also removed the gratuitous use of virtual.
(WebCore::PODRedBlackTree::updateNode): Made non-virtual and instead
call through the NodeUpdaterType (actually more like "traits").
(WebCore::PODRedBlackTree::treeSearch const): Use template argument
instead of data member.
(WebCore::PODRedBlackTree::treeSuccessor): Made a static member function.
(WebCore::PODRedBlackTree::treeMinimum): Ditto.
(WebCore::PODRedBlackTree::treeSuccessorInPostOrder): Added. Useful
when deleting the tree so we visit children before deleting the parent.
(WebCore::PODRedBlackTree::deleteNode): Use moveDataFrom when moving
the data from a node that we are about to delete.
(WebCore::PODRedBlackTree::visitInorderImpl const): Deleted.
(WebCore::PODRedBlackTree::markFree): Deleted.
(WebCore::PODRedBlackTree::Counter): Deleted.
(WebCore::PODRedBlackTree::dumpFromNode const): Use TextStream.

  • platform/graphics/FloatPolygon.cpp:

(WebCore::FloatPolygon::FloatPolygon): Tweaked coding style a bit.
(WebCore::FloatPolygon::overlappingEdges const): Changed to use a return
value instead of an out argument. Also tweaked coding style a bit.
(WebCore::FloatPolygonEdge::debugString const): Deleted.
(WebCore::ooperator>>): Implemented TextStream overload.

  • platform/graphics/FloatPolygon.h: Updated for above, removed

ValueToString specialization.

  • rendering/FloatingObjects.cpp:

(WebCore::FloatingObject::debugString const): Deleted.
(WebCore::operator<<): Implemented TextStream overload.

  • rendering/FloatingObjects.h: Ditto. Also removed include of

PODIntervalTree.h and used a forward declaration instead.

  • rendering/RenderBlock.cpp: Updated includes.
  • rendering/RenderFragmentContainer.cpp:

(WebCore::RenderFragmentContainer::debugString const): Deleted.
(WebCore::operator<<): Implemented TextStream overload.

  • rendering/RenderFragmentContainer.h: Ditto.
  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::FragmentSearchAdapter::FragmentSearchAdapter):
Moved this class here from the header, moving the one function body that was
already here up in the file.
(WebCore::RenderFragmentedFlow::fragmentAtBlockOffset const): Refactored and
tweaked code sequence a bit, did not change logic.
(WebCore::RenderFragmentedFlow::updateFragmentsFragmentedFlowPortionRect):
Tweaked code style a bit.

  • rendering/RenderFragmentedFlow.h: Moved FragmentSearchAdapter out of the

header, and tweaked coding style a bit. Removed ValueToString specialization.

  • rendering/shapes/PolygonShape.cpp:

(WebCore::PolygonShape::getExcludedInterval const): Updated to use the
return value from the overlappingEdges function rather than an out argument.

  • rendering/updating/RenderTreeBuilder.cpp: Updated includes.
  • rendering/updating/RenderTreeBuilderFirstLetter.h: Updated forward declarations.
  • rendering/updating/RenderTreeBuilderMultiColumn.cpp: Updated includes.
  • rendering/updating/RenderTreePosition.h: Removed includes of

RenderFragmentedFlow.h, RenderText.h, and RenderView.h, since none are
needed by this header.

  • rendering/updating/RenderTreeUpdater.cpp: Updated includes.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj: Remove ValueToString.h.
  • wtf/CMakeLists.txt: Ditto.
  • wtf/MediaTime.cpp:

(WTF::operator<<): Implement debug-only TextStream serialization
based on toJSONString.

  • wtf/MediaTime.h: Ditto.
  • wtf/text/ValueToString.h: Removed.
8:41 AM Changeset in webkit [253289] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Do not create PartialContent for a single character run when it does not fit.
https://bugs.webkit.org/show_bug.cgi?id=205010
<rdar://problem/57752705>

Reviewed by Antti Koivisto.

Use ContentWrappingRule::Keep instead of ContentWrappingRule::Split when dealing with single character overflown runs on empty lines.
<div style="width: 0px; word-break: break-all">text</div> <- produces single character runs.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):

7:36 AM Changeset in webkit [253288] by youenn@apple.com
  • 20 edits
    2 adds in trunk

Add an option to capture audio in GPU process
https://bugs.webkit.org/show_bug.cgi?id=205007

Reviewed by Eric Carlson.

Source/WebCore:

Add JS console logging of error when trying to create a MediaStream.
Test: fast/mediastream/captureAudioInGPUProcess.html

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::createMediaStream):

  • platform/mediastream/RealtimeMediaSourceCenter.h:

Source/WebKit:

Add a flag to make audio capture in GPU process.
In WebProcess, if trying to capture through GPUProcess, send back an error since this is not implemented.

  • Shared/WebPreferences.yaml:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCaptureAudioInGPUProcessEnabled):
(WKPreferencesGetCaptureAudioInGPUProcessEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::createWebPage):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::initialize):
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:

(WebKit::UserMediaCaptureManager::AudioFactory::setShouldCaptureInGPUProcess):

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

  • fast/mediastream/captureAudioInGPUProcess-expected.txt: Added.
  • fast/mediastream/captureAudioInGPUProcess.html: Added.
7:28 AM Changeset in webkit [253287] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

[LFC][Integration] Hit testing
https://bugs.webkit.org/show_bug.cgi?id=205008

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):

Hit test LFC.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::LayoutTreeContent::addLayoutBoxForRenderer):

Add Layout::Box -> RenderObject map.

  • layout/layouttree/LayoutTreeBuilder.h:

(WebCore::Layout::LayoutTreeContent::rendererForLayoutBox const):
(WebCore::Layout::LayoutTreeContent::addLayoutBoxForRenderer): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::hitTestInlineChildren):

Call into LFC hit test function.

6:46 AM Changeset in webkit [253286] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/word-break.html
https://bugs.webkit.org/show_bug.cgi?id=204999
<rdar://problem/57736608>

Reviewed by Antti Koivisto.

Keep at least one character on the line when even the first character overflows and the line is empty.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::Content::firstTextRunIndex const):

  • layout/inlineformatting/InlineLineBreaker.h:
6:24 AM Changeset in webkit [253285] by youenn@apple.com
  • 5 edits in trunk

fast/mediastream/mediastreamtrack-video-clone.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205006

Reviewed by Eric Carlson.

Source/WebCore:

Covered by test no longer flaky.

  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::clone):
When cloning the source, clone its size in addition to its settings.

LayoutTests:

  • fast/mediastream/mediastreamtrack-video-clone-expected.txt:
  • fast/mediastream/mediastreamtrack-video-clone.html:

Add br to spot any potential issue with video elements to text dump.

1:18 AM Changeset in webkit [253284] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] Crashes in MediaPlayerPrivateGStreamer::ensureGstGLContext
https://bugs.webkit.org/show_bug.cgi?id=204848

Reviewed by Michael Catanzaro.

Make sure the GL video sink uses a valid WebKit shared GL context.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(ensureGstGLContext):
(webKitGLVideoSinkProbePlatform):

12:17 AM Changeset in webkit [253283] by Wenson Hsieh
  • 6 edits in trunk/Source/WebCore

Add encoding and decoding support for more DisplayListItems
https://bugs.webkit.org/show_bug.cgi?id=205001

Reviewed by Tim Horton.

Adds boilerplate code to encode and decode the following display list items: SetLineCap, SetLineDash,
SetLineJoin, SetMiterLimit, ClearShadow, Clip, ClipOut, ClipOutToPath, ClipPath, BeginTransparencyLayer,
EndTransparencyLayer, DrawLine, DrawLinesForText, DrawDotsForDocumentMarker, DrawEllipse, DrawFocusRingPath,
DrawFocusRingRects, FillRectWithRoundedHole, FillEllipse, StrokeRect, StrokePath, StrokeEllipse,
ApplyStrokePattern, ApplyFillPattern, ApplyDeviceScaleFactor, DrawTiledImage, DrawTiledScaledImage, and
DrawPattern.

  • platform/graphics/GraphicsContext.h:

(WebCore::DocumentMarkerLineStyle::encode const):
(WebCore::DocumentMarkerLineStyle::decode):

  • platform/graphics/GraphicsTypes.h:
  • platform/graphics/WindRule.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

Additionally make a few other WebCore classes and enums encodable and decodable.

(WebCore::DisplayList::SetLineCap::SetLineCap):
(WebCore::DisplayList::SetLineDash::SetLineDash):
(WebCore::DisplayList::SetLineJoin::SetLineJoin):
(WebCore::DisplayList::SetMiterLimit::SetMiterLimit):
(WebCore::DisplayList::ClearShadow::ClearShadow):
(WebCore::DisplayList::Clip::Clip):
(WebCore::DisplayList::ClipOut::ClipOut):
(WebCore::DisplayList::ClipOutToPath::ClipOutToPath):
(WebCore::DisplayList::ClipPath::ClipPath):
(WebCore::DisplayList::DrawLine::DrawLine):
(WebCore::DisplayList::DrawLinesForText::DrawLinesForText):
(WebCore::DisplayList::DrawDotsForDocumentMarker::DrawDotsForDocumentMarker):
(WebCore::DisplayList::DrawEllipse::DrawEllipse):
(WebCore::DisplayList::DrawFocusRingPath::DrawFocusRingPath):
(WebCore::DisplayList::DrawFocusRingRects::DrawFocusRingRects):
(WebCore::DisplayList::FillRectWithRoundedHole::FillRectWithRoundedHole):
(WebCore::DisplayList::FillEllipse::FillEllipse):
(WebCore::DisplayList::StrokeRect::StrokeRect):
(WebCore::DisplayList::StrokeEllipse::StrokeEllipse):
(WebCore::DisplayList::StrokePath::StrokePath):

Also remove m_blockLocation from StrokePath (this member variable was unused, and seems to have been copied over
from other drawing items).

(WebCore::DisplayList::BeginTransparencyLayer::BeginTransparencyLayer):
(WebCore::DisplayList::EndTransparencyLayer::EndTransparencyLayer):
(WebCore::DisplayList::ApplyStrokePattern::ApplyStrokePattern):
(WebCore::DisplayList::ApplyFillPattern::ApplyFillPattern):
(WebCore::DisplayList::ApplyDeviceScaleFactor::ApplyDeviceScaleFactor):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetLineCap::encode const):
(WebCore::DisplayList::SetLineCap::decode):
(WebCore::DisplayList::SetLineDash::encode const):
(WebCore::DisplayList::SetLineDash::decode):
(WebCore::DisplayList::SetLineJoin::encode const):
(WebCore::DisplayList::SetLineJoin::decode):
(WebCore::DisplayList::SetMiterLimit::encode const):
(WebCore::DisplayList::SetMiterLimit::decode):
(WebCore::DisplayList::ClearShadow::encode const):
(WebCore::DisplayList::ClearShadow::decode):
(WebCore::DisplayList::Clip::encode const):
(WebCore::DisplayList::Clip::decode):
(WebCore::DisplayList::ClipOut::encode const):
(WebCore::DisplayList::ClipOut::decode):
(WebCore::DisplayList::ClipOutToPath::encode const):
(WebCore::DisplayList::ClipOutToPath::decode):
(WebCore::DisplayList::ClipPath::encode const):
(WebCore::DisplayList::ClipPath::decode):
(WebCore::DisplayList::DrawTiledImage::encode const):
(WebCore::DisplayList::DrawTiledImage::decode):
(WebCore::DisplayList::DrawTiledScaledImage::encode const):
(WebCore::DisplayList::DrawTiledScaledImage::decode):
(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::encode const):
(WebCore::DisplayList::DrawPattern::decode):
(WebCore::DisplayList::BeginTransparencyLayer::encode const):
(WebCore::DisplayList::BeginTransparencyLayer::decode):
(WebCore::DisplayList::EndTransparencyLayer::encode const):
(WebCore::DisplayList::EndTransparencyLayer::decode):
(WebCore::DisplayList::DrawLine::encode const):
(WebCore::DisplayList::DrawLine::decode):
(WebCore::DisplayList::DrawLinesForText::encode const):
(WebCore::DisplayList::DrawLinesForText::decode):
(WebCore::DisplayList::DrawDotsForDocumentMarker::encode const):
(WebCore::DisplayList::DrawDotsForDocumentMarker::decode):
(WebCore::DisplayList::DrawEllipse::encode const):
(WebCore::DisplayList::DrawEllipse::decode):
(WebCore::DisplayList::DrawFocusRingPath::encode const):
(WebCore::DisplayList::DrawFocusRingPath::decode):
(WebCore::DisplayList::DrawFocusRingRects::encode const):
(WebCore::DisplayList::DrawFocusRingRects::decode):
(WebCore::DisplayList::FillRectWithRoundedHole::encode const):
(WebCore::DisplayList::FillRectWithRoundedHole::decode):
(WebCore::DisplayList::FillEllipse::encode const):
(WebCore::DisplayList::FillEllipse::decode):
(WebCore::DisplayList::StrokeRect::encode const):
(WebCore::DisplayList::StrokeRect::decode):
(WebCore::DisplayList::StrokePath::encode const):
(WebCore::DisplayList::StrokePath::decode):
(WebCore::DisplayList::StrokeEllipse::encode const):
(WebCore::DisplayList::StrokeEllipse::decode):
(WebCore::DisplayList::ApplyStrokePattern::encode const):
(WebCore::DisplayList::ApplyStrokePattern::decode):
(WebCore::DisplayList::ApplyFillPattern::encode const):
(WebCore::DisplayList::ApplyFillPattern::decode):
(WebCore::DisplayList::ApplyDeviceScaleFactor::encode const):
(WebCore::DisplayList::ApplyDeviceScaleFactor::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):
(WebCore::DisplayList::SetLineCap::SetLineCap): Deleted.
(WebCore::DisplayList::SetLineDash::SetLineDash): Deleted.
(WebCore::DisplayList::SetLineJoin::SetLineJoin): Deleted.
(WebCore::DisplayList::SetMiterLimit::SetMiterLimit): Deleted.
(WebCore::DisplayList::ClearShadow::ClearShadow): Deleted.
(WebCore::DisplayList::Clip::Clip): Deleted.
(WebCore::DisplayList::ClipOut::ClipOut): Deleted.
(WebCore::DisplayList::ClipOutToPath::ClipOutToPath): Deleted.
(WebCore::DisplayList::ClipPath::ClipPath): Deleted.
(WebCore::DisplayList::BeginTransparencyLayer::BeginTransparencyLayer): Deleted.
(WebCore::DisplayList::EndTransparencyLayer::EndTransparencyLayer): Deleted.
(WebCore::DisplayList::DrawLine::DrawLine): Deleted.
(WebCore::DisplayList::DrawLinesForText::DrawLinesForText): Deleted.
(WebCore::DisplayList::DrawDotsForDocumentMarker::DrawDotsForDocumentMarker): Deleted.
(WebCore::DisplayList::DrawEllipse::DrawEllipse): Deleted.
(WebCore::DisplayList::DrawFocusRingPath::DrawFocusRingPath): Deleted.
(WebCore::DisplayList::DrawFocusRingRects::DrawFocusRingRects): Deleted.
(WebCore::DisplayList::FillRectWithRoundedHole::FillRectWithRoundedHole): Deleted.
(WebCore::DisplayList::FillEllipse::FillEllipse): Deleted.
(WebCore::DisplayList::StrokeRect::StrokeRect): Deleted.
(WebCore::DisplayList::StrokePath::StrokePath): Deleted.
(WebCore::DisplayList::StrokeEllipse::StrokeEllipse): Deleted.
(WebCore::DisplayList::ApplyStrokePattern::ApplyStrokePattern): Deleted.
(WebCore::DisplayList::ApplyFillPattern::ApplyFillPattern): Deleted.
(WebCore::DisplayList::ApplyDeviceScaleFactor::ApplyDeviceScaleFactor): Deleted.

Note: See TracTimeline for information about the timeline view.