⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Mar 7, 2020:

9:39 PM Changeset in webkit [258101] by Brent Fulgham
  • 17 edits in trunk/Source

Create a flag to disable in-app browser quirks
https://bugs.webkit.org/show_bug.cgi?id=208777
<rdar://problem/60062197>

Reviewed by Simon Fraser.

This patch makes the following changes:

  1. Adds a new flag 'NeedsInAppBrowserPrivacyQuirks' to allow quirks to be toggled during testing.
  2. Reclassify this new flag, and the existing 'InAppBrowserPrivacyEnabled' flag from 'settings' to Internal Debug settings

The renamed flags are covered by existing tests.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setNeedsInAppBrowserPrivacyQuirks):
(WebCore::RuntimeEnabledFeatures::needsInAppBrowserPrivacyQuirks const):

  • page/Settings.yaml:

Source/WebKit:

  • FeatureFlags/WebKit.plist:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultInAppBrowserPrivacy):
(WebKit::defaultNeedsInAppBrowserPrivacyQuirks):

  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _needsInAppBrowserPrivacyQuirks]):
(-[WKPreferences _setNeedsInAppBrowserPrivacyQuirks:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/WebPageProxy.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

  • WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Add new flag.
(-[WebPreferences needsInAppBrowserPrivacyQuirks]): Ditto.
(-[WebPreferences setNeedsInAppBrowserPrivacyQuirks:]): Ditto.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:
9:13 PM Changeset in webkit [258100] by jer.noble@apple.com
  • 10 edits in trunk/Source/WebCore

[GPUP] Implement Legacy EME API in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=208402

Reviewed by Eric Carlson.

Prepare for running the LegacyCDM et. al. in the GPU process.

Slightly modernize LegacyCDM to allow all methods representaing a LegacyCDMFactory to be WTF::Functions.

Allow the list of registered factories to be cleared and reset at runtime.

Modify WebKitMediaKeys to notify the MediaPlayer when the keys object is added to a HTMLMediaElement.

Expose the pointer to the internal CDMPrivateInterface for use in WebKit.

  • Modules/encryptedmedia/legacy/LegacyCDM.cpp:

(WebCore::LegacyCDM::platformRegisterFactories):
(WebCore::installedCDMFactories):
(WebCore::LegacyCDM::registerCDMFactory):
(WebCore::LegacyCDMFactoryForKeySystem):
(WebCore::LegacyCDM::supportsKeySystem):
(WebCore::LegacyCDM::keySystemSupportsMimeType):
(WebCore::LegacyCDM::LegacyCDM):
(WebCore::LegacyCDM::createSession):

  • Modules/encryptedmedia/legacy/LegacyCDM.h:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.cpp:

(WebCore::WebKitMediaKeys::setMediaElement):

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaEngineWasUpdated):

  • platform/graphics/LegacyCDMSession.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setCDM):

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

(WebCore::MediaPlayerPrivateInterface::setCDM):

8:38 PM Changeset in webkit [258099] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[GPUP] LayoutTest debug assertion crashes: InitDataRegistry::registerInitDataType() called mulitple times with same type
https://bugs.webkit.org/show_bug.cgi?id=208765

Reviewed by Simon Fraser.

Wrap calls to registerInitDataType() in a std::call_once, to ensure it's not called muliple times when
platformRegisterFactories() is called multiple times.

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMFactory::platformRegisterFactories):

8:35 PM Changeset in webkit [258098] by Simon Fraser
  • 7 edits in trunk/Source

Generalize setSynchronousScrollingReasons() to take a ScrollingNodeID
https://bugs.webkit.org/show_bug.cgi?id=208774

Reviewed by Zalan Bujtas.

Source/WebCore:

We'll be calling setSynchronousScrollingReasons() for overflow nodes at some point,
so change the argument from FrameView to ScrollingNodeID.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):

Source/WebKit:

Whitespace.

  • WebProcess/WebPage/EventDispatcher.h:
8:20 PM Changeset in webkit [258097] by Ross Kirsling
  • 35 edits
    1 move in trunk/Tools

Replace the use of term "rollout" to "revert" in various tools
https://bugs.webkit.org/show_bug.cgi?id=208775

Reviewed by Ryosuke Niwa.

See this webkit-dev thread for the originating discussion:
https://lists.webkit.org/pipermail/webkit-dev/2020-March/031132.html

'rollout' is a confusing term to anyone unacquainted with WebKit;
consensus seems to be that 'revert' would be the best replacement (as opposed to 'rollback').

Given the long legacy of this term within WebKit, it's important to deprecate and not remove 'rollout' commands.
As such, this patch aims to make 'revert' the preferred term everywhere without making 'rollout' fail.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/trac_unittests.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions_unittests.js:
  • BuildSlaveSupport/ews-build/steps.py:
  • BuildSlaveSupport/ews-build/steps_unittest.py:
  • Scripts/webkit-tools-completion.sh:
  • Scripts/webkitpy/common/checkout/changelog_unittest.py:
  • Scripts/webkitpy/common/checkout/checkout_unittest.py:
  • Scripts/webkitpy/common/checkout/scm/svn.py:
  • Scripts/webkitpy/common/net/bugzilla/attachment.py:
  • Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:
  • Scripts/webkitpy/tool/bot/commitqueuetask.py:
  • Scripts/webkitpy/tool/bot/feeders.py:
  • Scripts/webkitpy/tool/bot/feeders_unittest.py:
  • Scripts/webkitpy/tool/bot/irc_command.py:
  • Scripts/webkitpy/tool/bot/irc_command_unittest.py:
  • Scripts/webkitpy/tool/bot/ircbot_unittest.py:
  • Scripts/webkitpy/tool/bot/sheriff.py:
  • Scripts/webkitpy/tool/commands/download.py:
  • Scripts/webkitpy/tool/commands/download_unittest.py:
  • Scripts/webkitpy/tool/commands/newcommitbot.py:
  • Scripts/webkitpy/tool/commands/newcommitbot_unittest.py:
  • Scripts/webkitpy/tool/commands/queues_unittest.py:
  • Scripts/webkitpy/tool/commands/sheriffbot_unittest.py:
  • Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
  • Scripts/webkitpy/tool/steps/init.py:
  • Scripts/webkitpy/tool/steps/postdiffforrevert.py:
  • Scripts/webkitpy/tool/steps/preparechangelogforrevert.py:
  • Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
  • Scripts/webkitpy/tool/steps/reopenbugafterrevert.py: Renamed from Tools/Scripts/webkitpy/tool/steps/reopenbugafterrollout.py.
8:19 PM Changeset in webkit [258096] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit

Make PDF range requests to the network.
https://bugs.webkit.org/show_bug.cgi?id=208776

Reviewed by Alex Christensen.

We already handle a set of range requests from our data provider callbacks.
The current strategy is "wait until we've streamed enough of the entire resource,
perform that request's callback"

For linearized PDFs the second request ever made is for the very end of the PDF document,
so we have to wait for the entire document to load (which is what we already do in non-incremental mode)

Now, we'll actually make the requests for missing data chunks from the network by using the document's request
and adding range headers.

While it is now entirely misnamed, NetscapePlugInStreamLoader is a perfect fit for this.

Once the range request completes from the network we can unblock the PDF thread and go to the next request.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::unconditionalCompleteOutstandingRangeRequests):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::ByteRangeRequest::clearStreamLoader):
(WebKit::PDFPlugin::ByteRangeRequest::completeWithBytes):
(WebKit::PDFPlugin::ByteRangeRequest::completeWithAccumulatedData):
(WebKit::PDFPlugin::ByteRangeRequest::maybeComplete):
(WebKit::PDFPlugin::ByteRangeRequest::completeUnconditionally):
(WebKit::PDFPlugin::willSendRequest):
(WebKit::PDFPlugin::didReceiveResponse):
(WebKit::PDFPlugin::didReceiveData):
(WebKit::PDFPlugin::didFail):
(WebKit::PDFPlugin::didFinishLoading):
(WebKit::PDFPlugin::byteRangeRequestForLoader):
(WebKit::PDFPlugin::cancelAndForgetLoader):
(WebKit::PDFPlugin::manualStreamDidReceiveData):
(WebKit::PDFPlugin::unconditionalCompleteRangeRequest): Deleted.

8:01 PM Changeset in webkit [258095] by david_quesada@apple.com
  • 6 edits in trunk

Crash in -[_WKRemoteObjectRegistry _invokeMethod:] block when calling a reply block after the web view has deallocated
https://bugs.webkit.org/show_bug.cgi?id=208781
rdar://problem/60061016

Reviewed by Alex Christensen.

Source/WebKit:

Covered by API tests.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]):

When the app calls a reply block for a message from the injected bundle, add a nil
check for the underlying WebKit::RemoteObjectRegistry before attempting to send the
reply details back to the web process. It's possible that before this block is
called, the associated web view could have been deallocated, which would invalidate
this _WKRemoteObjectRegistry.

Tools:

Add a test that recreates the conditions of this crash:

  • Send a message from the injected bundle to the UI process that contains a reply block.
  • Hold a reference to the reply block.
  • Let the web view deallocate.
  • Call the block, and expect not to crash.
  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.h:

(localObjectInterface):

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.mm:

(-[LocalObject doSomethingWithCompletionHandler:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn callUIProcessMethodWithReplyBlock]):

7:58 PM Changeset in webkit [258094] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

REGRESSION: (r257760?) [ Mac wk2 Debug ] ASSERTION FAILED: child->parentObject() == this in WebCore::AccessibilityObject::insertChild
https://bugs.webkit.org/show_bug.cgi?id=208648

Reviewed by Chris Fleizach.

[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions] must
not update the backing store but instead just get the backing object.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):

7:52 PM Changeset in webkit [258093] by rniwa@webkit.org
  • 5 edits in trunk

TextManipulationController should work with ARIA labels
https://bugs.webkit.org/show_bug.cgi?id=208759

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch makes TextManipulationController work with a few ARIA content attributes.

It also makes observeParagraphs observe content across the entire document since canonicalizing
the starting position can end up skipping some content with ARIA.

Tests: TextManipulation.StartTextManipulationFindAttributeContent

TextManipulation.CompleteTextManipulationShouldReplaceAttributeContent

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::startObservingParagraphs): Now takes two Positions instead
of two VisiblePositions.
(WebCore::isAttributeForTextManipulation): Added.
(WebCore::TextManipulationController::observeParagraphs): Added the code to find elements with
ARIA attributes and a few other elements that don't generate RenderObject's.
(WebCore::TextManipulationController::scheduleObservartionUpdate):
(WebCore::TextManipulationController::addItem): Now takes ManipulationItemData instead of indivisual
fields in it.
(WebCore::TextManipulationController::replace): Added the logic to handle ManipulationItemData
that specify element and attributeName.

  • editing/TextManipulationController.h:

(WebCore::TextManipulationController::ManipulationItemData): Added element and attributeName.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TextManipulation.StartTextManipulationFindAttributeContent): Added.
(TextManipulation.CompleteTextManipulationShouldPreserveOrderOfBlockImage): Updated
the expected number of tokens for the first item as the very first image is correctly
detected per the code change.
(TextManipulation.CompleteTextManipulationShouldReplaceAttributeContent): Added.

7:41 PM Changeset in webkit [258092] by Megan Gardner
  • 5 edits in trunk/Source

Adopt UIContextMenu for WKFileUploadPanel
https://bugs.webkit.org/show_bug.cgi?id=208687

Reviewed by Tim Horton.

Source/WebCore:

New string, no tests needed.

  • en.lproj/Localizable.strings:

Source/WebKit:

Move from the depricated UIDocumentMenuViewController to UIContextMenu.
UI change, not currently testable.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel dealloc]):
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
(-[WKFileUploadPanel dismiss]):
(-[WKFileUploadPanel _browseFilesButtonLabel]):
(-[WKFileUploadPanel contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):
(-[WKFileUploadPanel _contextMenuInteraction:styleForMenuWithConfiguration:]):
(-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKFileUploadPanel contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKFileUploadPanel _removeInteraction]):
(-[WKFileUploadPanel _initInteraction]):
(-[WKFileUploadPanel _showFilePickerMenu]):
(-[WKFileUploadPanel _showDocumentPickerMenu]):
(-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]):
(-[WKFileUploadPanel _presentFullscreenViewController:animated:]):
(photoLibraryIcon): Deleted.
(cameraIcon): Deleted.
(-[WKFileUploadPanel documentMenu:didPickDocumentPicker:]): Deleted.
(-[WKFileUploadPanel documentMenuWasCancelled:]): Deleted.

5:56 PM Changeset in webkit [258091] by achristensen@apple.com
  • 2 edits in trunk/Tools

Regression r258042: Failing API test TestWebKitAPI.URLSchemeHandler.Frames
https://bugs.webkit.org/show_bug.cgi?id=208767

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

The frameID of the main frame before loading is only 0 on Mac right now.
The test is still good because it validates that execution works in the main frame before loading.

5:20 PM Changeset in webkit [258090] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Use the feature flags mechanism to give default feature preference values
https://bugs.webkit.org/show_bug.cgi?id=208607

Reviewed by Simon Fraser.

Fix a Catalyst build failure (We should not copy the WebKit.plist for the Catalyst build).

  • WebKit.xcodeproj/project.pbxproj:
4:38 PM Changeset in webkit [258089] by dbates@webkit.org
  • 2 edits in trunk/Source/WTF

[iOS] Implement support for dictation alternatives
https://bugs.webkit.org/show_bug.cgi?id=208720
<rdar://problem/58540114>

Reviewed by Wenson Hsieh.

Part 5

Enable USE_DICTATION_ALTERNATIVES on iOS.

  • wtf/PlatformUse.h:
4:33 PM Changeset in webkit [258088] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

[iOS] Implement support for dictation alternatives
https://bugs.webkit.org/show_bug.cgi?id=208720
<rdar://problem/58540114>

Reviewed by Brady Eidson.

Part 4

This patch was originally written by Morgan Winer. I just simplified it a bit and fixed some
formatting issues to conform to the code style guidelines.

Note that I haven't enable USE_DICTATION_ALTERNATIVES on iOS. So, this code isn't being
compiled for iOS. I will do that in a subsequent change once after all the code is in place
to do so.

  • Platform/spi/ios/UIKitSPI.h: Expose more SPI.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView insertText:alternatives:style:]): Added.

4:30 PM Changeset in webkit [258087] by dbates@webkit.org
  • 11 edits in trunk/Source

[iOS] Implement support for dictation alternatives
https://bugs.webkit.org/show_bug.cgi?id=208720
<rdar://problem/58540114>

Reviewed by Brent Fulgham.

Part 3

Source/WebCore:

Separate code that is actually USE(AUTOCORRECTION_PANEL)-specific from code that can also
be used when building with USE(DICTATION_ALTERNATIVES) enabled.

Note that I haven't enable USE_DICTATION_ALTERNATIVES on iOS. So, this code isn't being
compiled for iOS. I will do that in a subsequent change once after all the code is in place
to do so.

  • SourcesCocoa.txt: Mark TextAlternativeWithRange.mm as @no-unify to fix build breakage when

a unified source file includes both TextAlternativeWithRange.mm and a file that ultimately
includes LengthBox.h (e.g. WebArchiveResourceFromNSAttributedString.mm). TextAlternativeWithRange.mm
ultimately includes SFNTLayoutTypes.h, which defines a Fixed type that conflicts with enumerator
Fixed (part of the LengthType enumeration) defined in Length.h. Ideally the LengthType enumeration
would be an enum class or scoped to Length to avoid this ambiguity. This would be a big change to do
and so for now I am fixing the build breakage using @no-unify.

  • WebCore.xcodeproj/project.pbxproj: Add TextAlternativeWithRange.mm to the project now that

it is excluded from the unified build.

  • editing/AlternativeTextController.cpp:

(WebCore::markerTypesForAppliedDictationAlternative):
(WebCore::AlternativeTextController::alternativeTextClient):
(WebCore::AlternativeTextController::markerDescriptionForAppliedAlternativeText):
(WebCore::AlternativeTextController::applyAlternativeTextToRange):

  • editing/AlternativeTextController.h:

Source/WebKit:

Move code that was guarded under PLATFORM(MAC) outside of that guard so that we compile it
so long as USE(DICTATION_ALTERNATIVES) is enabled.

Note that I haven't enable USE_DICTATION_ALTERNATIVES on iOS. So, this code isn't being
compiled for iOS. I will do that in a subsequent change once after all the code is in place
to do so.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:

Source/WebKitLegacy/mac:

Guard code that requires USE(AUTOCORRECTION_PANEL) to be enabled. Specifically, -_showDictationAlternativeUI
calls -handleAcceptedAlternativeText, but the latter is only compiled in when USE(AUTOCORRECTION_PANEL)
is enabled.

Note that I haven't enable USE_DICTATION_ALTERNATIVES on iOS. So, this code isn't being
compiled for iOS. I will do that in a subsequent change once after all the code is in place
to do so.

  • WebView/WebView.mm:
4:27 PM Changeset in webkit [258086] by dbates@webkit.org
  • 12 edits in trunk/Source

[iOS] Implement support for dictation alternatives
https://bugs.webkit.org/show_bug.cgi?id=208720
<rdar://problem/58540114>

Reviewed by Wenson Hsieh.

Part 2

Source/WebCore:

Include UIKitSPI.h in TextAlternativeWithRange.mm to get the definition of NSTextAlternatives
when building for iOS. Also while I am here, fix up some code style issues and use uniform
initializer syntax.

Note that I haven't enable USE_DICTATION_ALTERNATIVES on iOS. So, this code isn't being
compiled for iOS. I will do that in a subsequent change once after all the code is in place
to do so.

  • editing/mac/TextAlternativeWithRange.mm:

(WebCore::TextAlternativeWithRange::TextAlternativeWithRange):

Source/WebKit:

Move insertDictatedTextAsync() from the Mac-specific implementation files to Cocoa-specific
implementation files as it can be shared by both Mac and iOS. I did very minor C++ modernization:
just more uses of auto and uniform initializer syntax.

Note that I haven't enable USE_DICTATION_ALTERNATIVES on iOS. So, this code isn't being
compiled for iOS. I will do that in a subsequent change once after all the code is in place
to do so.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::insertDictatedTextAsync):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::insertDictatedTextAsync): Deleted.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::insertDictatedTextAsync):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::insertDictatedTextAsync): Deleted.

4:26 PM Changeset in webkit [258085] by dbates@webkit.org
  • 13 edits
    1 copy
    2 moves
    1 add in trunk/Source

[iOS] Implement support for dictation alternatives
https://bugs.webkit.org/show_bug.cgi?id=208720
<rdar://problem/58540114>

Reviewed by Wenson Hsieh.

Part 1

Source/WebCore:

Rename editing/mac/AlternativeTextUIController.{h, mm} to editing/cocoa/AlternativeTextUIController.{h, mm}
as it can be shared by both Mac and iOS. I also took this opportunity to do some very minor modernization
and cleanup to these files: use =default constructors and put the * on the right side for Objective-C types.

Note that I haven't enable USE_DICTATION_ALTERNATIVES on iOS. So, this code isn't being
compiled for iOS. I will do that in a subsequent change once after all the code is in place
to do so.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/AlternativeTextContextController.h:
  • editing/cocoa/AlternativeTextContextController.mm: Added.

(WebCore::AlternativeTextContextController::addAlternatives):
(WebCore::AlternativeTextContextController::alternativesForContext):
(WebCore::AlternativeTextContextController::removeAlternativesForContext):
(WebCore::AlternativeTextContextController::clear):

  • editing/cocoa/AlternativeTextUIController.h: Renamed from Source/WebCore/editing/mac/AlternativeTextUIController.h.
  • editing/cocoa/AlternativeTextUIController.mm: Renamed from Source/WebCore/editing/mac/AlternativeTextUIController.mm.

(WebCore::AlternativeTextUIController::addAlternatives):
(WebCore::AlternativeTextUIController::alternativesForContext):
(WebCore::AlternativeTextUIController::clear):
(WebCore::AlternativeTextUIController::showAlternatives):
(WebCore::AlternativeTextUIController::handleAcceptedAlternative):
(WebCore::AlternativeTextUIController::dismissAlternatives):
(WebCore::AlternativeTextUIController::removeAlternatives):

Source/WebCore/PAL:

Expose some more SPI.

  • pal/spi/ios/UIKitSPI.h:

Source/WebKit:

Move some of the PageClientMac dictation alternatives code to PageClientImplCocoa so that it
can be shared with iOS.

Note that I haven't enable USE_DICTATION_ALTERNATIVES on iOS. So, this code isn't being
compiled for iOS. I will do that in a subsequent change once after all the code is in place
to do so.

  • UIProcess/Cocoa/PageClientImplCocoa.h:

(WebKit::PageClientImplCocoa::PageClientImplCocoa): Deleted; moved to be out-of-line to avoid
needing to #include AlternativeTextUIController.h from this file. Declare out-of-line destructor
for the same reason.

  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::PageClientImplCocoa): Moved from PageClientImplCocoa.h.
(WebKit::PageClientImplCocoa::pageClosed):
(WebKit::PageClientImplCocoa::addDictationAlternatives): Moved from PageClientImplMac.mm.
(WebKit::PageClientImplCocoa::removeDictationAlternatives): Ditto.
(WebKit::PageClientImplCocoa::dictationAlternatives): Ditto.

  • UIProcess/PageClient.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::showDictationAlternativeUI): Added; stub function.
(WebKit::PageClientImpl::pageClosed): Deleted; now we will use the base class implementation.

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::PageClientImpl): Moved AlternativeTextUIController logic from here to PageClientImplCocoa::PageClientImplCocoa().
(WebKit::PageClientImpl::pageClosed): Moved AlternativeTextUIController logic from here to PageClientImplCocoa::pageClosed()
so it can be shared and modified this function to call the base class implementation.
(WebKit::PageClientImpl::~PageClientImpl): Deleted; moved to PageClientImplCocoa.mm.
(WebKit::PageClientImpl::addDictationAlternatives): Deleted; moved to PageClientImplCocoa.mm.
(WebKit::PageClientImpl::removeDictationAlternatives): Deleted; moved to PageClientImplCocoa.mm.
(WebKit::PageClientImpl::dictationAlternatives): Deleted; moved to PageClientImplCocoa.mm.

4:14 PM Changeset in webkit [258084] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] commit queue is not skipping layout tests for rollout patches
https://bugs.webkit.org/show_bug.cgi?id=208716

Unreviewed minor fix.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTests.doStepIf):
(RunWebKit1Tests.doStepIf): Moved to base class RunWebKitTests.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-test.
3:20 PM Changeset in webkit [258083] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[CMake][Win] GenerateSettings.rb are invoked twice in WebCoreBindings.vcxproj and WebCoreTestSupportBindings.vcxproj
https://bugs.webkit.org/show_bug.cgi?id=208771

Reviewed by Konstantin Tokarev.

CMake Visual Studio generator put a custom command of
GenerateSettings.rb into both WebCoreBindings.vcxproj and
WebCoreTestSupportBindings.vcxproj because both projects are
using the generated files as source files. This causes
unnecessary recompilation.

The fundamental issue of this bug was fixed in CMake 3.12.
<https://gitlab.kitware.com/cmake/cmake/issues/16767>
All Windows ports are using newer CMake for Visual Studio 2019
support.

However, WebCoreTestSupportBindings needs to have a direct or
indirect dependency to WebCoreBindings for CMake Visual Studio
generator to eliminate duplicated custom commands. Otherwise,
GenerateSettings.rb will be triggered in both projects.

  • CMakeLists.txt: Added a explicit dependency to WebCoreBindings

for WebCoreTestSupportBindings.

  • WebCoreMacros.cmake: Removed stale comment.
3:19 PM Changeset in webkit [258082] by eric.carlson@apple.com
  • 24 edits in trunk/Source

Implement setWirelessPlaybackTarget, performTaskAtMediaTime, and wouldTaintOrigin in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=208651
<rdar://problem/60088298>

Reviewed by Youenn Fablet.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Remove unused lambda parameter.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::performTaskAtMediaTime): Make MediaTime parameter const ref
so it isn't copied.

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

(WebCore::MediaPlayerPrivateInterface::performTaskAtMediaTime): Ditto.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtMediaTime): Ditto.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtMediaTime): Ditto.

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

(WebCore::VideoLayerManagerObjC::setVideoFullscreenLayer): Don't set inline image
contents if image is NULL.

Source/WebKit:

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage): Dispatch player manager messages.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::didReceiveSyncPlayerMessage): Dispatch player messages.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::~RemoteMediaPlayerProxy): Clear the completion handler
do its destructor doesn't assert.
(WebKit::RemoteMediaPlayerProxy::setWirelessPlaybackTarget): Implement.
(WebKit::RemoteMediaPlayerProxy::performTaskAtMediaTime): Ditto.
(WebKit::RemoteMediaPlayerProxy::wouldTaintOrigin): Ditto.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::updateCachedState): Update wireless playback target name.
(WebKit::MediaPlayerPrivateRemote::load): Don't log as unimplemented.
(WebKit::MediaPlayerPrivateRemote::wirelessPlaybackTargetName const): Return cached name.
(WebKit::MediaPlayerPrivateRemote::setWirelessPlaybackTarget): Implement.
(WebKit::MediaPlayerPrivateRemote::wouldTaintOrigin const): Ditto.
(WebKit::MediaPlayerPrivateRemote::performTaskAtMediaTime): Ditto.
(WebKit::MediaPlayerPrivateRemote::setClosedCaptionsVisible): Deleted, not needed.
(WebKit::MediaPlayerPrivateRemote::simulateAudioInterruption): Ditto.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerConfiguration.h:

(WebKit::RemoteMediaPlayerConfiguration::decode): Decode supportsFullscreen too.

2:53 PM Changeset in webkit [258081] by Alexey Shvayka
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r258049): Unchecked JS exception in jsc::Stringifier::toJSON
https://bugs.webkit.org/show_bug.cgi?id=208766

Reviewed by Yusuke Suzuki.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::toJSON): Add missing RELEASE_AND_RETURN.

2:13 PM Changeset in webkit [258080] by beidson@apple.com
  • 8 edits in trunk/Source

Add runtime flag for incremental PDF loading.
https://bugs.webkit.org/show_bug.cgi?id=208763

Reviewed by Tim Horton.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setIncrementalPDFLoadingEnabled):
(WebCore::RuntimeEnabledFeatures::incrementalPDFLoadingEnabled const):

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultIncrementalPDFEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::pdfDocumentDidLoad):
(WebKit::PDFPlugin::manualStreamDidReceiveData):
(WebKit::PDFPlugin::manualStreamDidFail):

2:05 PM Changeset in webkit [258079] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Verification] Use the table wrapper box's offset when matching out-of-flow tables
https://bugs.webkit.org/show_bug.cgi?id=208769
<rdar://problem/60191322>

Reviewed by Antti Koivisto.

Source/WebCore:

In LFC, an out-of-flow table initiates a wrapper table box (out-of-flow) and a child table box (in-flow).
Apply the wrapper table box's offset, when matching the display and the render tree.

Test: fast/layoutformattingcontext/absolute-positioned-simple-table2.html

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

LayoutTests:

  • fast/layoutformattingcontext/absolute-positioned-simple-table2-expected.html: Added.
  • fast/layoutformattingcontext/absolute-positioned-simple-table2.html: Added.
1:56 PM Changeset in webkit [258078] by mark.lam@apple.com
  • 3 edits
    2 adds in trunk

Remove bad assertion in FTLLowerDFGToB3's compileDelBy().
https://bugs.webkit.org/show_bug.cgi?id=208764
<rdar://problem/59940095>

Reviewed by Keith Miller.

JSTests:

  • stress/delete-by-val-with-base-and-subscript-using-same-cell.js: Added.
  • stress/delete-by-val-with-base-and-subscript-using-same-non-cell.js: Added.

Source/JavaScriptCore:

The assertion ASSERT(base.gpr() != params[2].gpr()) is wrong because it is legal
JS to pass in the same value as the base and subscript. The runtime will handle
it properly.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):

1:46 PM Changeset in webkit [258077] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Make Editor::applyEditingStyleToBodyElement do things in a straightforward manner
https://bugs.webkit.org/show_bug.cgi?id=208177

Reviewed by Wenson Hsieh.

  • editing/Editor.cpp:

(WebCore::Editor::applyEditingStyleToBodyElement const): Use Document::body and
StyledElement::setInlineStyleProperty to apply styles to the body. The older code
was looping over all body elements in the document, for no good reason, and using
the CSS object model wrapper object for the styles, also for no good reason.

11:35 AM Changeset in webkit [258076] by weinig@apple.com
  • 15 edits in trunk

Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=207436
<rdar://problem/59296762>

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Remove JSC related defines.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Remove JSC related defines.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Remove JSC related defines.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Remove JSC related defines.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Remove JSC related defines.

Source/WTF:

  • wtf/PlatformEnable.h:

Add default values for ENABLE_FAST_JIT_PERMISSIONS and ENABLE_SEPARATED_WX_HEAP.

  • wtf/PlatformEnableCocoa.h:

Added ENABLE_FAST_JIT_PERMISSIONS and ENABLE_INTL (from FeatureDefines.xcconfig), ENABLE_SEPARATED_WX_HEAP
(from PlatformEnable.h) and ENABLE_FTL_JIT (from both FeatureDefines.xcconfig and PlatformEnable.h).

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

Remove JSC related defines.

10:34 AM Changeset in webkit [258075] by Chris Fleizach
  • 15 edits in trunk

AX: Provide a way to run tests in isolated tree mode
https://bugs.webkit.org/show_bug.cgi?id=208629
<rdar://problem/60075583>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Now that we have a way to run this with tests, we don't need to allow usage for an unknown client.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clientSupportsIsolatedTree):

Tools:

Provide the ability to run tests for accessibility in the isolated tree mode.
This sends a flag over to the injected bundle which calls the right HIServices override so that
the system thinks it is in isolated mode.

  • Scripts/compare-webkit-configurations:

(flag_for_comparison):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(parse_args):

  • Scripts/webkitpy/port/driver.py:

(Driver.cmd_line):

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::AccessibilityController):
(WTR::AccessibilityController::setAccessibilityIsolatedTreeMode):
(WTR::AccessibilityController::updateIsolatedTreeMode):
(WTR::AccessibilityController::executeOnAXThreadIfPossible):

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):
(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionAccessibilityIsolatedTreeMode):
(WTR::OptionsHandler::OptionsHandler):

  • WebKitTestRunner/Options.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::resetStateToConsistentValues):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::accessibilityIsolatedTreeMode const):

10:26 AM Changeset in webkit [258074] by Simon Fraser
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening.

Land results with new console log line numbers.

  • http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
  • http/tests/security/anchor-download-block-crossorigin-expected.txt:
9:52 AM Changeset in webkit [258073] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Use start-aligned horizontal adjustment when justify is not eligible.
https://bugs.webkit.org/show_bug.cgi?id=208762
<rdar://problem/60188433>

Reviewed by Antti Koivisto.

Make sure we apply "text-align: start" when "text-align: justify" is not eligible.
Currently "text-align: start" is a no-op, so no chnange in functionality (this might change in the future).

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::alignHorizontally):
(WebCore::Layout::LineBuilder::removeTrailingTrimmableContent):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::isTextAlignJustify const): Deleted.
(WebCore::Layout::LineBuilder::isTextAlignRight const): Deleted.

9:26 AM Changeset in webkit [258072] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed unified build fix; forward declare referenced types. In this case, WebCore::ImageData.

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:
8:09 AM Changeset in webkit [258071] by ysuzuki@apple.com
  • 22 edits in trunk

[JSC] Enable public class fields
https://bugs.webkit.org/show_bug.cgi?id=208756

Reviewed by Mark Lam.

JSTests:

Rename useClassFields to usePublicClassFields to keep separate from usePrivateClassFields once
it is implemented.

  • stress/big-int-as-property-name.js:
  • stress/class-fields-bytecode-cache.js:
  • stress/class-fields-computed-to-property-key.js:
  • stress/class-fields-function-name.js:
  • stress/class-fields-harmony.js:
  • stress/class-fields-proxy-define-property.js:
  • stress/class-fields-stress-instance.js:
  • stress/class-fields-to-property-key-const-string-ftl.js:
  • stress/class-fields-to-property-key-const-symbol-ftl.js:
  • stress/class-fields-to-property-key-slow-object-tostring-ftl.js:
  • stress/class-fields-to-property-key-slow-object-valueof-ftl.js:
  • stress/class-fields-to-property-key-string-object-ftl.js:
  • stress/class-fields-to-property-key-string-or-string-object-ftl.js:
  • stress/generator-syntax.js:
  • stress/method-name.js:
  • test262/config.yaml:

Source/JavaScriptCore:

This patch turns public-class-fields feature on, implemented in r254653.
To separate from private-class-fields, this patch renames the flag from useClassFields to usePublicClassFields,
and first enable public-class-fields feature.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallValueNode::emitBytecode):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):

  • runtime/OptionsList.h:
8:06 AM Changeset in webkit [258070] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Do not text-align: justify the runs on the current line if they are followed by a forced break
https://bugs.webkit.org/show_bug.cgi?id=208761
<rdar://problem/59825136>

Reviewed by Antti Koivisto.

Source/WebCore:

https://www.w3.org/TR/css-text-3/#text-align-property
"Text is justified according to the method specified by the text-justify property,
in order to exactly fill the line box. Unless otherwise specified by text-align-last,
the last line before a forced break or the end of the block is start-aligned."

Test: fast/text/text-align-justify-and-forced-line-break.html

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::alignHorizontally):

LayoutTests:

  • fast/text/text-align-justify-and-forced-line-break-expected.html: Added.
  • fast/text/text-align-justify-and-forced-line-break.html: Added.
1:28 AM Changeset in webkit [258069] by mmaxfield@apple.com
  • 13 edits
    1 add in trunk/Source/WebKit

[GPU Process] Implement CanvasRenderingContext2D.getImageData()
https://bugs.webkit.org/show_bug.cgi?id=208560
<rdar://problem/60060618>

Reviewed by Said Abou-Hallawa.

Adds a new synchronous message between the Web Process and the GPU Process.
Unfortunately, getImageData() synchronously returns results, and we don't
have the infrastructure to make JavaScript interruptible, so this means that
the message has to be synchronous, at least until we add that infrastructure.

When the RemoteImageBuffer receives the getImageData() call, it first
asynchronously flushes the pending display list, doesn't wait for a response,
and then sends the synchronous getImageData() message. Because the GPU Process
receives messages in-order, the Web Process doesn't have to wait for the
response from the flush message.

After this patch, there are a few optimization opportunities we can exploit
where we use SharedBuffer directly instead of copying into and out of the
ImageData.

No new tests because there is no behavior change. We're just using the GPU
process now, instead of implementing the command locally in the Web Process.

  • GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.h:
  • GPUProcess/graphics/RemoteImageBufferProxy.h:
  • GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::getImageData):

  • GPUProcess/graphics/RemoteRenderingBackendProxy.h:
  • GPUProcess/graphics/RemoteRenderingBackendProxy.messages.in:
  • Platform/IPC/ImageDataReference.h: Added.

(IPC::ImageDataReference::ImageDataReference):
(IPC::ImageDataReference::buffer):
(IPC::ImageDataReference::buffer const):
(IPC::ImageDataReference::encode const):
(IPC::ImageDataReference::decode):

  • Platform/IPC/MessageSender.h:

(IPC::MessageSender::sendSync):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<RefPtr<WebCore::ImageData>>::encode):
(IPC::ArgumentCoder<RefPtr<WebCore::ImageData>>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/RemoteImageBuffer.h:
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp:

(WebKit::RemoteImageBufferMessageHandler::getImageData const):
(WebKit::RemoteImageBufferMessageHandler::flushDrawingContext):
(WebKit::RemoteImageBufferMessageHandler::flushDrawingContextAndWaitCommit):

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:
1:17 AM Changeset in webkit [258068] by Konstantin Tokarev
  • 4 edits in trunk/Source/WebCore

REGRESSION(r257975): [GTK][WPE] Build failure after a clean build
https://bugs.webkit.org/show_bug.cgi?id=208711

Reviewed by Yusuke Suzuki.

Make sure that InternalSettingsGenerated,idl is generated before bindings
generation starts.

Also, make IDL preprocessor die if specified IDL file is missing, instead
of going on silently.

  • CMakeLists.txt:
  • WebCoreMacros.cmake:
  • bindings/scripts/preprocess-idls.pl:

(getFileContents):

1:13 AM Changeset in webkit [258067] by Andres Gonzalez
  • 10 edits in trunk/Source/WebCore

AXIsolatedObject support for documentLinks.
https://bugs.webkit.org/show_bug.cgi?id=208734

Reviewed by Chris Fleizach.

  • Expose documentLinks through the AXCoreObject interface, so that

wrapper code works for both AXObject and AXIsolatedObjects.

  • Struct NodeChange now retains wrapper which was causing crash as the

wrapper was destroyed before it was attached to the IsolatedObject.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentLinks):
(WebCore::AccessibilityRenderObject::getDocumentLinks): Deleted.

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::setFocusedNode):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

12:17 AM Changeset in webkit [258066] by Chris Fleizach
  • 11 edits
    1 delete in trunk/Source

Unreviewed, rolling out r258047.

Referenced SPI not yet available for Safari builders.

Reverted changeset:

"Implementation of AccessibilitySupport AXSIsolatedTreeMode."
https://bugs.webkit.org/show_bug.cgi?id=208691
https://trac.webkit.org/changeset/258047

Mar 6, 2020:

11:39 PM Changeset in webkit [258065] by commit-queue@webkit.org
  • 4 edits
    2 adds
    2 deletes in trunk/LayoutTests

Fix original-crossorigin-applied.sub.html WPT test
https://bugs.webkit.org/show_bug.cgi?id=208119

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-06
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rename original-crossorigin-applied.sub.html to
image-loading-lazy-crossorigin-change.sub.html and change the
test to expect the latest rather than the original crossorigin
attribute value since crossorigin is a relevant mutation.

  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-crossorigin-change.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-crossorigin-change.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub-expected.txt: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub.html: Removed.

LayoutTests:

Skip test on mac-wk1 and win.

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
10:58 PM Changeset in webkit [258064] by pvollan@apple.com
  • 26 edits
    1 copy
    1 move in trunk

[Cocoa] Re-enable CFPrefs direct mode
https://bugs.webkit.org/show_bug.cgi?id=208690

Reviewed by Brent Fulgham.

Source/WebKit:

This patch re-enabled CF prefs direct mode on iOS and macOS, and addresses performance issues and Accessibility issues
with the original patch. Performance issues are addressed by creating the NSUserDefaults objects in the UI process on
a non-main thread, while the Accessibility issues are fixed by issuing an extension to the preferences service when
Accessibility is enabled.

API test: WebKit.GrantAccessPreferencesService

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

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _grantAccessToPreferenceService]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/PreferenceObserver.mm:

(registerDefaultsOverride):
(-[WKUserDefaults _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:]):
(-[WKPreferenceObserver init]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::grantAccessToPreferenceService):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
(WebKit::WebProcessProxy::unblockPreferenceServiceIfNeeded):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::unblockAccessibilityServer): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformInitializeProcess):
(WebKit::WebProcess::unblockPreferenceService):
(WebKit::WebProcess::unblockAccessibilityServer):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

  • wtf/PlatformEnable.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/GrantAccessToPreferencesService.mm: Added.

(TEST):

  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:

(TestWebKitAPI::TEST):

10:28 PM Changeset in webkit [258063] by mark.lam@apple.com
  • 19 edits in trunk/Source/JavaScriptCore

Add "AndOrdered" to the names of ordered DoubleConditions.
https://bugs.webkit.org/show_bug.cgi?id=208736

Reviewed by Keith Miller.

Renamed the following:

DoubleEqual ==> DoubleEqualAndOrdered
DoubleNotEqual ==> DoubleNotEqualAndOrdered
DoubleGreaterThan ==> DoubleGreaterThanAndOrdered
DoubleGreaterThanOrEqual ==> DoubleGreaterThanOrEqualAndOrdered
DoubleLessThan ==> DoubleLessThanAndOrdered
DoubleLessThanOrEqual ==> DoubleLessThanOrEqualAndOrdered

The comment for these enums in MacroAssemblerARM64.h says:

These conditions will only evaluate to true if the comparison is ordered - i.e. neither operand is NaN.

Adding "AndOrdered" to their names makes this property explicit.

From reading the original names, one might intuitively think that these conditions
map directly to the C++ double comparisons. This intuition is incorrect.
Consider the DoubleNotEqual case: let's compare 2 doubles, a and b:

result = (a != b);

For C++, if either a or b are NaNs, then a != b will actually return true.
This is contrary to the behavior documented in the MacroAssemblerARM64.h comment
above about how DoubleNotEqual should behave. In our code, DoubleNotEqual actually
means DoubleNotEqualAndOrdered. The C++ != behavior actually matches our
DoubleNotEqualOrUnordered condition instead.

The tendency to want to associate DoubleNotEqual with the behavior of the C++
!= operator is precisely why we should give these conditions better names.
Adding the "AndOperand" name make the expected behavior explicit in the name, and
leave no room for confusion with C++ double comparison semantics.

  • assembler/MacroAssembler.cpp:

(WTF::printInternal):

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::invert):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::moveConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::moveDoubleConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::jumpAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::floatingPointCompare):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchDouble):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchDouble):
(JSC::MacroAssemblerMIPS::branchDoubleNonZero):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchDoubleNonZero):
(JSC::MacroAssemblerX86Common::moveConditionallyDouble):
(JSC::MacroAssemblerX86Common::invert):
(JSC::MacroAssemblerX86Common::floatingPointCompare):
(JSC::MacroAssemblerX86Common::jumpAfterFloatingPointCompare):
(JSC::MacroAssemblerX86Common::moveConditionallyAfterFloatingPointCompare):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::truncateDoubleToUint64):
(JSC::MacroAssemblerX86_64::truncateFloatToUint64):

  • assembler/testmasm.cpp:

(JSC::testCompareDouble):
(JSC::testCompareDoubleSameArg):
(JSC::testMoveConditionallyFloatingPoint):
(JSC::testMoveDoubleConditionallyDouble):
(JSC::testMoveDoubleConditionallyDoubleDestSameAsThenCase):
(JSC::testMoveDoubleConditionallyDoubleDestSameAsElseCase):
(JSC::testMoveDoubleConditionallyFloat):
(JSC::testMoveDoubleConditionallyFloatDestSameAsThenCase):
(JSC::testMoveDoubleConditionallyFloatDestSameAsElseCase):
(JSC::testMoveConditionallyFloatingPointSameArg):
(JSC::run):

  • b3/B3LowerToAir.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::compileClampDoubleToByte):
(JSC::DFG::SpeculativeJIT::compileArithRounding):
(JSC::DFG::SpeculativeJIT::compileArithMinMax):
(JSC::DFG::SpeculativeJIT::compileArithPow):
(JSC::DFG::SpeculativeJIT::compileStrictEq):
(JSC::DFG::SpeculativeJIT::compileArrayIndexOf):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNumberIsInteger):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNotNaN):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitSlow_op_jless):
(JSC::JIT::emitSlow_op_jlesseq):
(JSC::JIT::emitSlow_op_jgreater):
(JSC::JIT::emitSlow_op_jgreatereq):

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emitBinaryDoubleOp):

  • jit/ThunkGenerators.cpp:

(JSC::floorThunkGenerator):
(JSC::roundThunkGenerator):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Le>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Lt>):
(JSC::Wasm::AirIRGenerator::addFloatingPointMinOrMax):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Gt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Ge>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Lt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Eq>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Le>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Ge>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Eq>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Gt>):

9:53 PM Changeset in webkit [258062] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r258038): Build failure on Windows 10 bots
<https://bugs.webkit.org/show_bug.cgi?id=208731>
<rdar://problem/59222568>

  • assembler/testmasm.cpp:

(JSC::testCompareDouble):
(JSC::testCompareDoubleSameArg):
(JSC::testMoveConditionallyFloatingPoint):
(JSC::testMoveConditionallyFloatingPointSameArg):

  • Add RELEASE_ASSERT_NOT_REACHED() statements to try to fix the bots.
9:46 PM Changeset in webkit [258061] by Simon Fraser
  • 2 edits in trunk/Source/WebKitLegacy/mac

Flaky Test: editing/spelling/spellcheck-async.html
https://bugs.webkit.org/show_bug.cgi?id=160571

Reviewed by Ryosuke Niwa.

Second try to fix this crash; the WebEditorClient can go away before all the NSSpellChecker
callbacks are done (which happens off the main thread), so store a WeakPtr<WebEditorClient>.
We have to create the WeakPtr on the main thread, and it gets copied into the first block.

  • WebCoreSupport/WebEditorClient.mm:

(-[WebEditorSpellCheckResponder initWithClient:sequence:results:]):
(-[WebEditorSpellCheckResponder perform]):
(WebEditorClient::requestCheckingOfString):

9:32 PM Changeset in webkit [258060] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r258051): WinCairo/WPE/GTK build failures
<https://bugs.webkit.org/show_bug.cgi?id=208621>
<rdar://problem/60068047>

  • Headers.cmake:

(WebCore_PRIVATE_FRAMEWORK_HEADERS): Add html/ImageData.h to
attempt a build fix.

9:29 PM Changeset in webkit [258059] by ysuzuki@apple.com
  • 138 edits in trunk/Source

Put remaining fixed-sized cells into IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=208754

Reviewed by Keith Miller.

Source/JavaScriptCore:

Put remaining fixed-sized cells into IsoSubspace. Now all the fixed-sized cells have their own IsoSubspaces.

  1. JSArray (We need to care about RAMification number, or compensate RAMification regression with improvements).
  2. Inspector's objects
  3. All prototype objects have one IsoSubspace since they are plain objects.
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::JSInjectedScriptHost):

  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHostPrototype.h:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::JSJavaScriptCallFrame):

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.h:
  • jsc.cpp:

(JSC::Masquerader::subspaceFor):
(JSCMemoryFootprint::subspaceFor):

  • runtime/ArrayIteratorPrototype.h:
  • runtime/ArrayPrototype.h:
  • runtime/AsyncFromSyncIteratorPrototype.h:
  • runtime/AsyncFunctionPrototype.h:
  • runtime/AsyncGeneratorFunctionPrototype.h:
  • runtime/AsyncGeneratorPrototype.h:
  • runtime/AsyncIteratorPrototype.h:
  • runtime/AtomicsObject.h:
  • runtime/BigIntPrototype.h:
  • runtime/ConsoleObject.h:
  • runtime/DatePrototype.h:
  • runtime/ErrorPrototype.h:
  • runtime/ExceptionHelpers.h:
  • runtime/GeneratorFunctionPrototype.h:
  • runtime/GeneratorPrototype.h:
  • runtime/InspectorInstrumentationObject.h:
  • runtime/IntlCollatorPrototype.h:
  • runtime/IntlDateTimeFormatPrototype.h:
  • runtime/IntlNumberFormatPrototype.h:
  • runtime/IntlObject.h:
  • runtime/IntlPluralRulesPrototype.h:
  • runtime/IteratorPrototype.h:
  • runtime/JSArray.h:

(JSC::JSArray::subspaceFor):

  • runtime/JSArrayBufferPrototype.h:
  • runtime/JSDataViewPrototype.h:
  • runtime/JSDestructibleObject.h:

(JSC::JSDestructibleObject::subspaceFor): Deleted.

  • runtime/JSGenericTypedArrayViewPrototype.h:
  • runtime/JSModuleLoader.h:
  • runtime/JSONObject.h:
  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSFinalObject::subspaceFor):
(JSC::JSObject::subspaceFor): Deleted.

  • runtime/JSPromisePrototype.h:

(JSC::JSPromisePrototype::subspaceFor):

  • runtime/JSTypedArrayViewPrototype.h:
  • runtime/MapIteratorPrototype.h:
  • runtime/MapPrototype.h:
  • runtime/MathObject.h:
  • runtime/NativeErrorPrototype.h:
  • runtime/ObjectPrototype.h:
  • runtime/ReflectObject.h:
  • runtime/RegExpPrototype.h:
  • runtime/RegExpStringIteratorPrototype.h:
  • runtime/SetIteratorPrototype.h:
  • runtime/SetPrototype.h:
  • runtime/StringIteratorPrototype.h:
  • runtime/SymbolPrototype.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • runtime/WeakMapPrototype.h:
  • runtime/WeakObjectRefPrototype.h:
  • runtime/WeakSetPrototype.h:
  • tools/JSDollarVM.cpp:
  • tools/JSDollarVM.h:
  • wasm/js/JSWebAssembly.h:
  • wasm/js/WebAssemblyCompileErrorPrototype.h:
  • wasm/js/WebAssemblyGlobalPrototype.h:
  • wasm/js/WebAssemblyInstancePrototype.h:
  • wasm/js/WebAssemblyLinkErrorPrototype.h:
  • wasm/js/WebAssemblyMemoryPrototype.h:
  • wasm/js/WebAssemblyModulePrototype.h:
  • wasm/js/WebAssemblyRuntimeErrorPrototype.h:
  • wasm/js/WebAssemblyTablePrototype.h:

Source/WebCore:

  • bindings/js/JSDOMIterator.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(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:

(WebCore::JSTestActiveDOMObjectConstructor::prototypeForStructure):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracerConstructor::prototypeForStructure):

  • 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.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::construct):

  • 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:

(WebCore::JSTestNamedSetterWithUnforgablePropertiesConstructor::prototypeForStructure):

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructor::prototypeForStructure):

  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::construct):

  • 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:

(WebCore::JSTestTypedefsConstructor::construct):

9:22 PM Changeset in webkit [258058] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: AXI: no way to expand/collapse sidebar sections with Tab navigation
https://bugs.webkit.org/show_bug.cgi?id=208562
<rdar://problem/60028941>

Reviewed by Devin Rousso.

  • UserInterface/Views/DetailsSection.css:

(.details-section > .header):
(.details-section > .header::before):
Increase the height of the clickble area so it matches the height
of the header section.

(.details-section .header:focus):
(.details-section .header:focus::before):
Adjust the focus ring around the expand/collapse triangle so it has rounded corners.

  • UserInterface/Views/DetailsSection.js:

(WI.DetailsSection):
(WI.DetailsSection.prototype._headerElementClicked):
(WI.DetailsSection.prototype._headerElementMouseDown):
(WI.DetailsSection.prototype._headerElementKeyPress):

9:11 PM Changeset in webkit [258057] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: AXI: scope bars should be focusable when navigating by pressing Tab
https://bugs.webkit.org/show_bug.cgi?id=208277
<rdar://problem/59828111>

Reviewed by Devin Rousso.

Make resource type filter in the Network tab and message type filter in the Console tab focusable.

  • UserInterface/Views/AuditTestGroupContentView.css:

(.content-view.audit-test-group > header > nav):
(.content-view.audit-test-group > header > nav > .scope-bar):
Prevent outline of the focused scope bar item from clipping.

  • UserInterface/Views/ScopeBar.css:

(.scope-bar > li:focus):
(.scope-bar > li:focus::after,):

  • UserInterface/Views/ScopeBar.js:

(WI.ScopeBar):
(WI.ScopeBar.prototype._handleKeyDown):
Make Arrow Left an Arrow Right keys move focus within the scope bar.
This matches the behavior of macOS radio buttons.

  • UserInterface/Views/ScopeBarItem.js:

(WI.ScopeBarItem.prototype.get scopeBar):
(WI.ScopeBarItem.prototype.set scopeBar):
(WI.ScopeBarItem.prototype.toggle):
(WI.ScopeBarItem.prototype._updateSelected):
(WI.ScopeBarItem.prototype._handleMouseDown):

(WI.ScopeBarItem.prototype._handleKeyDown):
Allow to toggle focused scope bar item by pressing Space or Enter.

9:05 PM Changeset in webkit [258056] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] Garden some crashes and update expectation

Moving the webgl texture 2d failures to its own bug and gardening some
crashes.

Unreviewed gardening.

  • platform/wpe/TestExpectations:
9:02 PM Changeset in webkit [258055] by Simon Fraser
  • 7 edits
    2 copies
    2 adds in trunk

Fix scrolling tree hit-testing on scrolled and zoomed pages
https://bugs.webkit.org/show_bug.cgi?id=208755

Reviewed by Zalan Bujtas.
Source/WebCore:

Map the hit-test point from view to content coordinates before hit-testing the scrolling tree.

Tests: fast/scrolling/mac/overflow-scrolled-document.html

fast/scrolling/mac/overflow-zoomed-document.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):

LayoutTests:

New tests for scrolled and zoomed documents.

Fix existing tests which used window.scrollTop = 0, which is not a thing.

  • fast/scrolling/mac/absolute-in-overflow-scroll.html:
  • fast/scrolling/mac/async-scroll-overflow.html:
  • fast/scrolling/mac/move-node-in-overflow-scroll.html:
  • fast/scrolling/mac/overflow-scrolled-document-expected.txt: Added.
  • fast/scrolling/mac/overflow-scrolled-document.html: Copied from LayoutTests/fast/scrolling/mac/async-scroll-overflow.html.
  • fast/scrolling/mac/overflow-zoomed-document-expected.txt: Added.
  • fast/scrolling/mac/overflow-zoomed-document.html: Copied from LayoutTests/fast/scrolling/mac/async-scroll-overflow.html.
  • fast/scrolling/mac/overlapped-overflow-scroll.html:
8:48 PM Changeset in webkit [258054] by Kate Cheney
  • 15 edits in trunk

UIProcess needs mechanism to specify AppBound domains
https://bugs.webkit.org/show_bug.cgi?id=208528
<rdar://problem/59980340>

Reviewed by Brent Fulgham.

Source/WebKit:

Adds functionality to read app-bound domains from the Info.plist on
background thread via the WebFramePolicyListenerProxy and report
whether a domain is app-bound.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _appBoundDomains:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

Test API call to get appBoundDomains.

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy):
(WebKit::WebFramePolicyListenerProxy::didReceiveAppBoundDomainResult):
(WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults):
(WebFramePolicyListenerProxy::use):
(WebFramePolicyListenerProxy::download):
(WebFramePolicyListenerProxy::ignore):

  • UIProcess/WebFramePolicyListenerProxy.h:

(WebKit::WebFramePolicyListenerProxy::create):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::setUpPolicyListenerProxy):

  • UIProcess/WebFrameProxy.h:
  • UIProcess/WebPageProxy.cpp:

Added a new function to WebFramePolicyListenerProxy to wait for the
app-bound domains to be read before completing a navigation. Each
other function must now check if m_isNavigatingToAppBoundDomain has
been set before sending a full reply. Also added an enum class
ShouldExpectAppBoundDomainResult to tell the listener not to wait for
the results in unecessary cases.

(WebKit::WebPageProxy::isAppBoundDomain const): Deleted
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
After the listener responds with the results, set the new
value in WebPageProxy. We no longer need to check for isAppBound
domain now that we have received the value.

(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
No need to listen for app-bound domain response here.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::appBoundDomains):
(WebKit::appBoundDomainQueue):
Add a separate static queue for reading app-bound domains to avoid
raciness.

(WebKit::WebsiteDataStore::beginAppBoundDomainCheck):
(WebKit::WebsiteDataStore::getAppBoundDomainsForTesting):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Read the app-bound domain list on the background thread, and once
done, call the listener on the main thread.

Tools:

Added test app-bound domains to the plist and tested that the domains
are properly stored in the website data store after a navigation.

  • TestWebKitAPI/Info.plist:
  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

8:32 PM Changeset in webkit [258053] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

IPC hardening for WebPageProxy::SaveImageToLibrary message
<https://webkit.org/b/208730>
<rdar://problem/58700693>

Reviewed by Chris Dumez.

  • UIProcess/ios/WebPageProxyIOS.mm:

(MESSAGE_CHECK): Define macro only for methods in this source file.
(WebKit::WebPageProxy::saveImageToLibrary):

  • Make sure the shared memory handle sent over IPC is not null.
  • Make sure the image size sent over IPC is not zero.
  • Null check the SharedMemory object after calling SharedMemory::map().
8:07 PM Changeset in webkit [258052] by commit-queue@webkit.org
  • 29 edits in trunk

Add SPI to disable cross origin access control checks
https://bugs.webkit.org/show_bug.cgi?id=208748
Source/WebCore:

<rdar://problem/59861114>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-06
Reviewed by Tim Hatcher.

Because loading is done process-globally in the WebProcess, use a CrossOriginAccessControlCheckDisabler::singleton for those checks.
Pass a parameter to the NetworkResourceLoaders to disable these checks only for loads from a web process without access control checks.
As long as we're changing the signature of passesAccessControlCheck, make it return an Expected instead of a bool with an out parameter.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::CrossOriginAccessControlCheckDisabler::singleton):
(WebCore::CrossOriginAccessControlCheckDisabler::setCrossOriginAccessControlCheckEnabled):
(WebCore::CrossOriginAccessControlCheckDisabler::crossOriginAccessControlCheckEnabled const):
(WebCore::passesAccessControlCheck):
(WebCore::validatePreflightResponse):

  • loader/CrossOriginAccessControl.h:
  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::checkResponseCrossOriginAccessControl):
(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • loader/SubresourceLoader.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::loadFrom):

Source/WebKit:

<rdar://problem/59861114>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-06
Reviewed by Tim Hatcher.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::NetworkCORSPreflightChecker):
(WebKit::NetworkCORSPreflightChecker::didCompleteWithError):

  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::validateResponse):
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::crossOriginAccessControlCheckEnabled const):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::crossOriginAccessControlCheckEnabled const):
(API::PageConfiguration::setCrossOriginAccessControlCheckEnabled):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _setCrossOriginAccessControlCheckEnabled:]):
(-[WKWebViewConfiguration _crossOriginAccessControlCheckEnabled]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.cpp:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::addParametersShared):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::addParametersFromFrame): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_processDisplayName):

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-06
Reviewed by Tim Hatcher.

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

Add a test that verifies this SPI allows Access-Control-Allow-Origin: * with credentials.

7:34 PM Changeset in webkit [258051] by mmaxfield@apple.com
  • 20 edits
    2 adds in trunk

[GPU Process] Implement CanvasRenderingContext2D.putImageData()
https://bugs.webkit.org/show_bug.cgi?id=208621
<rdar://problem/60068047>

Reviewed by Simon Fraser.

Source/WebCore:

putImageData() is implemented just as a DisplayListItem. Conceptually, it's the
same as a draw command. Unfortunately, it can't be implemented on top of
GraphicsContext, and instead has to be implemented on top of ImageBuffer, so
this patch also adds a delegate to DisplayList::Replayer which can implement the
commands that require an ImageBuffer. This moves in the direction of making the
display list raw data, and moving the applier functions somewhere else at a
higher level.

Implementing this as a DisplayListItem rather than its own IPC message is superior
because it gives us more control about when to flush the in-flight display list.

There is still a few unnecessary copies - we're copying into / out of a SharedData
during encoding. Being able to either have the ImageBuffer retain the SharedBuffer,
or have putImageData() have an overload which accepts a SharedBuffer, would be a
good opportunity for improvement.

Test: fast/canvas/putImageData-multiple.html

  • html/ImageData.cpp:

(WebCore::ImageData::deepClone const):

  • html/ImageData.h:
  • platform/graphics/AlphaPremultiplication.h:
  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::impl):

  • platform/graphics/displaylists/DisplayList.h:
  • platform/graphics/displaylists/DisplayListDrawingContext.cpp:

(WebCore::DisplayList::DrawingContext::recorder):

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

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

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawingItem::globalBounds const):
(WebCore::DisplayList::PutImageData::create):
(WebCore::DisplayList::PutImageData::inputFormat const):
(WebCore::DisplayList::PutImageData::imageData const):
(WebCore::DisplayList::PutImageData::srcRect const):
(WebCore::DisplayList::PutImageData::destPoint const):
(WebCore::DisplayList::PutImageData::encode const):
(WebCore::DisplayList::PutImageData::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::putImageData):
(WebCore::DisplayList::Recorder::updateItemExtent const):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::Replayer):
(WebCore::DisplayList::Replayer::replay):

  • platform/graphics/displaylists/DisplayListReplayer.h:

(WebCore::DisplayList::Replayer::Delegate::~Delegate):
(WebCore::DisplayList::Replayer::Delegate::apply):

Source/WebKit:

  • GPUProcess/graphics/RemoteImageBufferProxy.h:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Ref<WebCore::SharedBuffer>>::encode):
(IPC::ArgumentCoder<Ref<WebCore::SharedBuffer>>::decode):
(IPC::ArgumentCoder<Ref<WebCore::ImageData>>::encode):
(IPC::ArgumentCoder<Ref<WebCore::ImageData>>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/GPU/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::putImageData):

LayoutTests:

  • fast/canvas/putImageData-multiple-expected.html: Added.
  • fast/canvas/putImageData-multiple.html: Added.
7:04 PM Changeset in webkit [258050] by dbates@webkit.org
  • 20 edits
    3 copies
    15 adds in trunk

Add support for inserting and removing a text placeholder
https://bugs.webkit.org/show_bug.cgi?id=208661
<rdar://problem/59371073>

Reviewed by Simon Fraser and Ryosuke Niwa.

Source/WebCore:

Implements the concept of a text placeholder, which is an element that acts like whitespace:
it takes up space in the page layout, but has no visual appearance.

Tests: editing/text-placeholder/insert-and-remove-into-text-field.html

editing/text-placeholder/insert-into-content-editable.html
editing/text-placeholder/insert-into-empty-text-field.html
editing/text-placeholder/insert-into-text-field-in-iframe.html
editing/text-placeholder/insert-into-text-field.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.h:

(WebCore::Element::isTextPlaceholderElement const): Added. Defaults to false. I override this
in TextPlaceholderElement.h.

  • editing/Editor.cpp:

(WebCore::Editor::insertTextPlaceholder):
(WebCore::Editor::removeTextPlaceholder):
Insert a new placeholder or remove an existing one.

  • editing/Editor.h:
  • html/shadow/TextPlaceholderElement.cpp: Added.

(WebCore::TextPlaceholderElement::create):
(WebCore::TextPlaceholderElement::TextPlaceholderElement): Set inline styles to size the placeholder.
(WebCore::TextPlaceholderElement::insertedIntoAncestor): If the placeholder is inserted inside an
HTMLTextFormControlElement (e.g. <input> or <textarea>) then hide the HTML placeholder text.
(WebCore::TextPlaceholderElement::removedFromAncestor): If the placeholder was removed from inside
an HTMLTextFormControlElement then show the HTML placeholder text.

  • html/shadow/TextPlaceholderElement.h:

(isType):

  • testing/Internals.cpp:

(WebCore::Internals::insertTextPlaceholder): Added.
(WebCore::Internals::removeTextPlaceholder): Added.

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

Source/WebKit:

Implements the UITextInput protocol functions -insertTextPlaceholderWithSize and -removeTextPlaceholder.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView insertTextPlaceholderWithSize:completionHandler:]):
(-[WKContentView removeTextPlaceholder:willInsertText:completionHandler:]):
Implement more of the UITextInput protocol. These functions turn around and call
the corresponding WebPageProxy functions.

  • UIProcess/ios/WKTextPlaceholder.h:
  • UIProcess/ios/WKTextPlaceholder.mm: Added.

(-[WKTextPlaceholder initWithElementContext:]):
(-[WKTextPlaceholder elementContext]):
(-[WKTextPlaceholder rects]):

  • UIProcess/ios/WKTextSelectionRect.h: Remove an unncessary #pragma once since I am here.

This file is only included from Objective-C/C++ files so that #pragma is unnecessary.

  • UIProcess/ios/WKTextSelectionRect.mm:

(-[WKTextSelectionRect initWithCGRect:]): Added.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::insertTextPlaceholder): Added
(WebKit::WebPageProxy::removeTextPlaceholder): Added.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Add new messages to insert and remove a placeholder.
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::insertTextPlaceholder):
(WebKit::WebPage::removeTextPlaceholder):
Turn around and call the corresponding Editor functions.

LayoutTests:

Add tests to ensure that inserting and removing a placeholder work.

  • editing/text-placeholder/insert-and-remove-into-text-field-expected.html: Added.
  • editing/text-placeholder/insert-and-remove-into-text-field.html: Added.
  • editing/text-placeholder/insert-into-content-editable-expected.html: Added.
  • editing/text-placeholder/insert-into-content-editable.html: Added.
  • editing/text-placeholder/insert-into-empty-text-field-expected.html: Added.
  • editing/text-placeholder/insert-into-empty-text-field.html: Added.
  • editing/text-placeholder/insert-into-text-field-expected.html: Added.
  • editing/text-placeholder/insert-into-text-field-in-iframe-expected.html: Added.
  • editing/text-placeholder/insert-into-text-field-in-iframe.html: Added.
  • editing/text-placeholder/insert-into-text-field.html: Added.
  • editing/text-placeholder/resources/insert-into-text-field-in-iframe.html: Added.
  • editing/text-placeholder/resources/test.css: Added.

(@font-face):
(.test):

7:02 PM Changeset in webkit [258049] by Alexey Shvayka
  • 4 edits
    2 adds in trunk

JSON.stringify should call replacer on deleted properties
https://bugs.webkit.org/show_bug.cgi?id=208725

Reviewed by Ross Kirsling.

JSTests:

  • microbenchmarks/json-stringify-many-objects-to-json.js: Added.
  • microbenchmarks/json-stringify-many-objects.js: Added.
  • test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

This change removes extra hasProperty check from appendNextProperty as
it does not exist in the spec [1], aligning JSC with V8 and SpiderMonkey.

This patch also replaces 3 usages of getPropertySlot with semantically
equivalent (yet more concise) get and inlines toJSONImpl (this change
is performance-neutral).

[1]: https://tc39.es/ecma262/#sec-serializejsonobject (steps 6, 8.a)

  • runtime/JSONObject.cpp:

(JSC::Stringifier::toJSON):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Stringifier::toJSONImpl): Deleted.

6:25 PM Changeset in webkit [258048] by Simon Fraser
  • 2 edits in trunk/Source/WebKitLegacy/mac

Flaky Test: editing/spelling/spellcheck-async.html
https://bugs.webkit.org/show_bug.cgi?id=160571

Reviewed by Tim Horton.

The old code called -performSelector:target:... with an autoreleased target,
and nothing keeps the target alive until the call to -perform on the main thread.

Change this to a block which copies in a RetainPtr<> to make ownership clearer
and fix the crash.

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::requestCheckingOfString):

6:06 PM Changeset in webkit [258047] by Andres Gonzalez
  • 11 edits
    1 add in trunk/Source

Implementation of AccessibilitySupport AXSIsolatedTreeMode.
https://bugs.webkit.org/show_bug.cgi?id=208691

Reviewed by Chris Fleizach.

Source/WebCore:

Support for the AccessibilitySupport AXIsolatedTreMode accessibility setting.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::isolatedTreeFocusedObject):
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::isIsolatedTreeEnabled):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::isolatedTreeRootObject):
(WebCore::AXObjectCache::canUseSecondaryAXThread):

  • accessibility/AXObjectCache.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase detach]):
(-[WebAccessibilityObjectWrapperBase axBackingObject]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):

Source/WebCore/PAL:

  • pal/spi/cocoa/AccessibilitySupportSPI.h:

Added constants and prototypes used in AXIsolatedTreeMode support.

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
Honors AXIsolatedTreeMode setting.

6:04 PM Changeset in webkit [258046] by Peng Liu
  • 2 edits in trunk/Source/WebCore/PAL

Use the feature flags mechanism to give default feature preference values
https://bugs.webkit.org/show_bug.cgi?id=208607

Reviewed by Simon Fraser.

A follow up patch to fix a build error on old SDKs.

  • pal/spi/cocoa/FeatureFlagsSPI.h:
5:53 PM Changeset in webkit [258045] by basuke.suzuki@sony.com
  • 3 edits in trunk/Tools

[webkitpy] Fix executive on Windows to run wpt server correctly
https://bugs.webkit.org/show_bug.cgi?id=208693

Reviewed by Jonathan Bedard.

Bug fix for Windows environment a) fixing a typo. b) fixing path
c) fix how to kill subprocesses.

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

(Executive._windows_kill_command):
(Executive.interrupt):
(Executive.kill_all):

  • Scripts/webkitpy/port/base.py:

(Port.web_platform_test_server_doc_root):

5:45 PM Changeset in webkit [258044] by Simon Fraser
  • 17 edits
    8 adds in trunk

Hit-test CALayers on the scrolling thread for async frame/overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=208740
<rdar://problem/48028836>

Reviewed by Tim Horton.

Source/WebCore:

Implement hit-testing in the scrolling thread so we can determine which overflow/subframe
to scroll without hitting the main thread.

ScrollingTreeMac overrides scrollingNodeForPoint() and hit-tests through CALayers, starting at the
root content layer. Locking ensures that the CALayer tree doesn't change while we're hit-testing it.
We collect layers for the given point in back-to-front order much like the iOS code _web_findDescendantViewAtPoint
(too different to share though), and consult event regions on PlatformCALayerCocoa's to determine if the
point is inside the part of the layer that should receive events.

To handle the complex stacking/containing block cases, isScrolledBy() consults the scrolling tree.

For testing, fix it so that multiple calls to monitorWheelEvents() in a single test each start
with clean state.

Tests: fast/scrolling/mac/absolute-in-overflow-scroll.html

fast/scrolling/mac/async-scroll-overflow.html
fast/scrolling/mac/move-node-in-overflow-scroll.html
fast/scrolling/mac/overlapped-overflow-scroll.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::scrollingNodeForPoint):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeMac.h:
  • page/scrolling/mac/ScrollingTreeMac.mm:

(collectDescendantLayersAtPoint):
(scrollingNodeIDForLayer):
(isScrolledBy):
(ScrollingTreeMac::scrollingNodeForPoint):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::monitorWheelEvents): Make sure that each call to eventSender.monitorWheelEvents() clears previous state.

Source/WebKit:

Make sure that each call to eventSender.monitorWheelEvents() clears previous state.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageStartMonitoringScrollOperations):

LayoutTests:

Add some UIHelper functions for mousewheel scrolling, and use them in new tests.
Fix some old malformed expectations.

  • fast/scrolling/ios/hit-testing-iframe-001-expected.html: Was malformed.
  • fast/scrolling/ios/hit-testing-iframe-002-expected.html:
  • fast/scrolling/ios/hit-testing-iframe-003-expected.html:
  • fast/scrolling/ios/hit-testing-iframe-004-expected.html:
  • fast/scrolling/ios/hit-testing-iframe-005-expected.html:
  • fast/scrolling/ios/hit-testing-iframe-006-expected.html:
  • fast/scrolling/mac/absolute-in-overflow-scroll-expected.txt: Added.
  • fast/scrolling/mac/absolute-in-overflow-scroll.html: Added.
  • fast/scrolling/mac/async-scroll-overflow-expected.txt: Added.
  • fast/scrolling/mac/async-scroll-overflow.html: Added.
  • fast/scrolling/mac/move-node-in-overflow-scroll-expected.txt: Added.
  • fast/scrolling/mac/move-node-in-overflow-scroll.html: Added.
  • fast/scrolling/mac/overlapped-overflow-scroll-expected.txt: Added.
  • fast/scrolling/mac/overlapped-overflow-scroll.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.async mouseWheelScrollAt):
(window.UIHelper.async animationFrame):

5:44 PM Changeset in webkit [258043] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit

Some PDFPlugin cleanup in prep for incremental loading.
https://bugs.webkit.org/show_bug.cgi?id=208698

Reviewed by Alex Christensen.

  • The frame is never cleared, so make it a reference.
  • Use a new "number of streamed bytes" variable instead of grabbing m_data's length, as m_data will soon become a "sparse" data buffer

Refactor only.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::unconditionalCompleteRangeRequest):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::updateScrollbars):
(WebKit::PDFPlugin::createScrollbar):
(WebKit::PDFPlugin::isActive const):
(WebKit::PDFPlugin::forceUpdateScrollbarsOnMainThreadForPerformanceTesting const):
(WebKit::PDFPlugin::jsPDFDocPrint):
(WebKit::PDFPlugin::installPDFDocument):
(WebKit::PDFPlugin::streamDidReceiveData):
(WebKit::PDFPlugin::manualStreamDidReceiveData):
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):
(WebKit::PDFPlugin::willDetachRenderer):
(WebKit::PDFPlugin::destroy):
(WebKit::PDFPlugin::paintControlForLayerInContext):
(WebKit::PDFPlugin::convertFromPDFViewToScreen const):
(WebKit::PDFPlugin::boundsOnScreen const):
(WebKit::PDFPlugin::showContextMenuAtPoint):
(WebKit::PDFPlugin::handleContextMenuEvent):
(WebKit::PDFPlugin::isFullFramePlugin const):
(WebKit::PDFPlugin::handlesPageScaleFactor const):
(WebKit::PDFPlugin::clickedLink):
(WebKit::PDFPlugin::saveToPDF):
(WebKit::PDFPlugin::openWithNativeApplication):
(WebKit::PDFPlugin::showDefinitionForAttributedString):
(WebKit::PDFPlugin::notifySelectionChanged):
(WebKit::PDFPlugin::notifyCursorChanged):
(WebKit::PDFPlugin::axObjectCache const):
(WebKit::PDFPlugin::performWebSearch):
(WebKit::PDFPlugin::performSpotlightSearch):

5:35 PM Changeset in webkit [258042] by commit-queue@webkit.org
  • 4 edits in trunk

Evaluating JavaScript in main frame before loading should succeed
https://bugs.webkit.org/show_bug.cgi?id=208733

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-06
Reviewed by Tim Horton.

Source/WebKit:

This fixes a bug in the SPI I introduced in r257882 with a test.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _evaluateJavaScript:asAsyncFunction:withArguments:forceUserGesture:inFrame:inWorld:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
5:31 PM Changeset in webkit [258041] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit

Expand the feature flags mechanism with additional default feature preference values
https://bugs.webkit.org/show_bug.cgi?id=208737
<rdar://problem/60109390>

Reviewed by Simon Fraser.

No new tests, no functional change.

Update the new default feature preference implementation with additional flags
that would benefit from this approach.

  • FeatureFlags/WebKit.plist:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultInAppBrowserPrivacy):
(WebKit::defaultWebGPUEnabled):

  • Shared/WebPreferencesDefaultValues.h:
5:25 PM Changeset in webkit [258040] by jer.noble@apple.com
  • 10 edits in trunk/Source

[GPUP] Convert CDMFactory away from platformStrategies() and use WebProcess settings instead
https://bugs.webkit.org/show_bug.cgi?id=208699

Reviewed by Youenn Fablet.

Source/WebCore:

  • platform/MediaStrategy.h:
  • platform/encryptedmedia/CDMFactory.cpp:

Source/WebKit:

Since platformStrategies() is entirely absent in the UIProcess and GPUProcesses, with no
intention of adding strategies there, it must be possible to retain the default behavior
of WebCore objects. To that end, rather than require clients to implement a MediaStrategy
method in order to register CDMFactory objects, simply replace the factories at runtime
when necessary, and only in those processes where such a replacement is necessary.

  • WebProcess/GPU/media/WebMediaStrategy.cpp:

(WebKit::WebMediaStrategy::registerCDMFactories): Deleted.

  • WebProcess/GPU/media/WebMediaStrategy.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):

Source/WebKitLegacy/mac:

Remove Legacy CDM support from WebPlatformStrategies.

  • WebCoreSupport/WebPlatformStrategies.mm:
5:18 PM Changeset in webkit [258039] by Jon Davis
  • 7 edits
    1 move in trunk/Source/WebInspectorUI

Fixed missing icons for WI.ThreadTreeElement and selected Heap Snapshots
https://bugs.webkit.org/show_bug.cgi?id=208719

Reviewed by Devin Rousso.

  • UserInterface/Images/InstrumentIcons.svg: Removed.
  • UserInterface/Images/TypeIcons.svg:
  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:

(.timeline-overview-graph.heap-allocations > img.snapshot.selected):

  • UserInterface/Views/NetworkTableContentView.css:

(.network-table > .table .cell.dom-node.name .icon):

  • UserInterface/Views/SourcesNavigationSidebarPanel.css:

(.sidebar > .panel.navigation.sources > .content > .breakpoints-container .tree-outline .item.event-target-window .icon):
(@media (prefers-color-scheme: dark) .sidebar > .panel.navigation.sources > .content > .breakpoints-container .tree-outline .item.event-target-window .icon):

  • UserInterface/Views/ThreadTreeElement.css:

(.tree-outline > .item.thread .icon):
(.tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
(@media (prefers-color-scheme: dark) .tree-outline > .item.thread .icon):
(@media (prefers-color-scheme: dark) .tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):

  • UserInterface/Views/TimelineIcons.css:

(.network-icon .icon):
(.script-icon .icon):
(.cpu-icon .icon):
(.memory-icon .icon):
(.heap-allocations-icon .icon):
(.layout-icon .icon):
(.rendering-frame-icon .icon):
(.media-icon .icon):
(@media (prefers-color-scheme: dark) .network-icon .icon):
(@media (prefers-color-scheme: dark) .script-icon .icon):
(@media (prefers-color-scheme: dark) .cpu-icon .icon):
(@media (prefers-color-scheme: dark) .memory-icon .icon):
(@media (prefers-color-scheme: dark) .heap-allocations-icon .icon):
(@media (prefers-color-scheme: dark) .layout-icon .icon):
(@media (prefers-color-scheme: dark) .rendering-frame-icon .icon):
(@media (prefers-color-scheme: dark) .media-icon .icon):

5:16 PM Changeset in webkit [258038] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix some issues in the ARM64 moveConditionallyAfterFloatingPointCompare() and moveDoubleConditionallyAfterFloatingPointCompare().
https://bugs.webkit.org/show_bug.cgi?id=208731
<rdar://problem/59222568>

Reviewed by Saam Barati.

Both the ARM64 moveConditionallyAfterFloatingPointCompare() and
moveDoubleConditionallyAfterFloatingPointCompare() had the following issues:

  1. For the DoubleNotEqual condition, they fail to set the result register if one or both of the comparison operands is a NaN.
  1. For the DoubleEqualOrUnordered condition, they can clobber the else case input register if one of the comparison operands is a NaN.

This patch fixes both of these, and exhaustive testmasm test cases for affected
MacroAssembler instruction emitters using these functions.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::moveConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::moveDoubleConditionallyAfterFloatingPointCompare):

  • assembler/testmasm.cpp:

(JSC::testCompareDouble):
(JSC::testCompareDoubleSameArg):
(JSC::testMoveConditionallyFloatingPoint):
(JSC::testMoveConditionallyDouble2):
(JSC::testMoveConditionallyDouble3):
(JSC::testMoveConditionallyDouble3DestSameAsThenCase):
(JSC::testMoveConditionallyDouble3DestSameAsElseCase):
(JSC::testMoveConditionallyFloat2):
(JSC::testMoveConditionallyFloat3):
(JSC::testMoveConditionallyFloat3DestSameAsThenCase):
(JSC::testMoveConditionallyFloat3DestSameAsElseCase):
(JSC::testMoveDoubleConditionallyDouble):
(JSC::testMoveDoubleConditionallyDoubleDestSameAsThenCase):
(JSC::testMoveDoubleConditionallyDoubleDestSameAsElseCase):
(JSC::testMoveDoubleConditionallyFloat):
(JSC::testMoveDoubleConditionallyFloatDestSameAsThenCase):
(JSC::testMoveDoubleConditionallyFloatDestSameAsElseCase):
(JSC::testMoveConditionallyFloatingPointSameArg):
(JSC::testMoveConditionallyDouble2SameArg):
(JSC::testMoveConditionallyDouble3SameArg):
(JSC::testMoveConditionallyFloat2SameArg):
(JSC::testMoveConditionallyFloat3SameArg):
(JSC::testMoveDoubleConditionallyDoubleSameArg):
(JSC::testMoveDoubleConditionallyFloatSameArg):
(JSC::run):

5:14 PM Changeset in webkit [258037] by rniwa@webkit.org
  • 4 edits in trunk

TextManipulationController should preserve images
https://bugs.webkit.org/show_bug.cgi?id=208692

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch makes TextManipulationController preserve images (img and SVG) and their ordering,
and lays down the foundation for preserving other non-text content.

To do this, this patch introduces ParagraphContentIterator which wraps TextIterator and introduces
a secondary node iteration which detects all ndoes that have been skipped. Ideally, we would update
TextIterator to do this natively but this is tricky due to the multitude of the node traveral options
supported by TextIterator at the moment. ParagraphContentIterator::advance stops at every node
including ones that do not generate text in TextIterator. This also allows more code sharing between
TextManipulationController's observeParagraphs and replace functions.

For now, we special case nodes with RenderReplaced like img element and the root SVG element.

Tests: TextManipulation.CompleteTextManipulationShouldPreserveImagesAsExcludedTokens

TextManipulation.CompleteTextManipulationShouldPreserveSVGAsExcludedTokens
TextManipulation.CompleteTextManipulationShouldPreserveOrderOfBlockImage

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator): Added.
(WebCore::ParagraphContentIterator::ParagraphContentIterator): Added.
(WebCore::ParagraphContentIterator::advance): Added.
(WebCore::ParagraphContentIterator::currentContent): Added.
(WebCore::ParagraphContentIterator::startPosition): Added.
(WebCore::ParagraphContentIterator::endPosition): Added.
(WebCore::ParagraphContentIterator::atEnd const): Added.
(WebCore::ParagraphContentIterator::moveCurrentNodeForward): Added.
(WebCore::TextManipulationController::observeParagraphs): Adopted ParagraphContentIterator. For
nodes with RenderReplaced, we generate an excluded token "[]". Removed the dead code which was
creating a subrange from TextIterator, and renamed the previously misleadingly named endOfLastNewLine
to startOfCurrentLine for clarity.
(WebCore::TextManipulationController::replace): Adopted ParagraphContentIterator. Fixed a bug that
excluded content were always assumed to be text, and a bug that the replaced content was inserted
at a wrong location when insertionPoint is a position anchored at a node being removed. Also fixed
an obvious bug that we were inserting root replaced contents at the position before a node which
appears immediately before insertionPoint instead of after; this also resulted in the replaced content
being inserted at a wrong location in some cases.

Tools:

Added tests for preserving images and their ordering.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TextManipulation.CompleteTextManipulationShouldPreserveImagesAsExcludedTokens):
(TextManipulation.CompleteTextManipulationShouldPreserveSVGAsExcludedTokens):
(TextManipulation.CompleteTextManipulationShouldPreserveOrderOfBlockImage):

3:51 PM Changeset in webkit [258036] by Alan Coon
  • 1 copy in tags/Safari-610.1.6

Tag Safari-610.1.6.

3:37 PM Changeset in webkit [258035] by Alan Coon
  • 22 edits
    9 deletes in branches/safari-610.1.6-branch/Source

Revert r258021 and r258022. rdar://problem/60049340

3:30 PM Changeset in webkit [258034] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Crash accessing AXIsolatedObject::m_childrenIDS from removeSubtree on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=208728

Reviewed by Chris Fleizach.

AXIsolatedTree::removeSubtree was accessing AXIsolatedObject::m_childrenIDs
on the main thread to remove all descendants recursively. But the lock
had to be unlocked and locked again on each iteration, creating problems
if the secondary thread modifies the children in between iterations.
The solution in this patch is to eliminate removeSubtree, and make
removeNode and applyPendingChanges to remove all descendants.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::appendNodeChanges): Renamed local vars to make it clearer.
(WebCore::AXIsolatedTree::applyPendingChanges):
(WebCore::AXIsolatedTree::removeSubtree): Deleted.

  • accessibility/isolatedtree/AXIsolatedTree.h:
3:26 PM Changeset in webkit [258033] by Jacob Uphoff
  • 2 edits
    1 add in trunk/LayoutTests

[ iOS ] two http/tests/resourceLoadStatistics/third-party-cookie-blocking are flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=208739

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:03 PM Changeset in webkit [258032] by ysuzuki@apple.com
  • 70 edits in trunk/Source/WebCore

JSDOMIterator classes should be in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=208705

Reviewed by Sam Weinig.

JSDOMIterator should be allocated in IsoSubspace. So we can put all WebCore related cells into IsoSubspaces.
To collect all iterator subspaces in DOMIsoSubspaces class, we scan iterable<...> pattern in preprocess-idls.pl.
Then, we create a class for each DOM iterator instead of using using XXXIterator = JSDOMIterator<...> to put
subspaceFor implementation easily. And we rename JSDOMIterator to JSDOMIteratorBase to explicitly state that
this is Base class of actual iterators.

  • bindings/js/JSDOMIterator.h:

(WebCore::JSDOMIteratorBase::JSDOMIteratorBase):
(WebCore::IteratorTraits>::asJS):
(WebCore::IteratorTraits>::destroy):
(WebCore::IteratorTraits>::next):
(WebCore::JSDOMIterator::createStructure): Deleted.
(WebCore::JSDOMIterator::create): Deleted.
(WebCore::JSDOMIterator::createPrototype): Deleted.
(WebCore::JSDOMIterator::JSDOMIterator): Deleted.

  • bindings/js/JSDOMWrapper.h:

(WebCore::JSDOMObject::subspaceFor):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateIterableDefinition):
(GeneratePrototypeDeclaration):

  • bindings/scripts/preprocess-idls.pl:

(interfaceIsIterable):

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

(WebCore::JSInterfaceNamePrototype::create): Deleted.
(WebCore::JSInterfaceNamePrototype::createStructure): Deleted.
(WebCore::JSInterfaceNamePrototype::JSInterfaceNamePrototype): Deleted.

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

(WebCore::JSMapLikePrototype::create): Deleted.
(WebCore::JSMapLikePrototype::createStructure): Deleted.
(WebCore::JSMapLikePrototype::JSMapLikePrototype): Deleted.

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

(WebCore::JSReadOnlyMapLikePrototype::create): Deleted.
(WebCore::JSReadOnlyMapLikePrototype::createStructure): Deleted.
(WebCore::JSReadOnlyMapLikePrototype::JSReadOnlyMapLikePrototype): Deleted.

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

(WebCore::JSReadOnlySetLikePrototype::create): Deleted.
(WebCore::JSReadOnlySetLikePrototype::createStructure): Deleted.
(WebCore::JSReadOnlySetLikePrototype::JSReadOnlySetLikePrototype): Deleted.

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

(WebCore::JSSetLikePrototype::create): Deleted.
(WebCore::JSSetLikePrototype::createStructure): Deleted.
(WebCore::JSSetLikePrototype::JSSetLikePrototype): Deleted.

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

(WebCore::JSTestActiveDOMObjectConstructor::prototypeForStructure):
(WebCore::JSTestActiveDOMObjectPrototype::create): Deleted.
(WebCore::JSTestActiveDOMObjectPrototype::createStructure): Deleted.
(WebCore::JSTestActiveDOMObjectPrototype::JSTestActiveDOMObjectPrototype): Deleted.

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

(WebCore::JSTestCEReactionsPrototype::create): Deleted.
(WebCore::JSTestCEReactionsPrototype::createStructure): Deleted.
(WebCore::JSTestCEReactionsPrototype::JSTestCEReactionsPrototype): Deleted.

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

(WebCore::JSTestCEReactionsStringifierPrototype::create): Deleted.
(WebCore::JSTestCEReactionsStringifierPrototype::createStructure): Deleted.
(WebCore::JSTestCEReactionsStringifierPrototype::JSTestCEReactionsStringifierPrototype): Deleted.

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

(WebCore::JSTestCallTracerConstructor::prototypeForStructure):
(WebCore::JSTestCallTracerPrototype::create): Deleted.
(WebCore::JSTestCallTracerPrototype::createStructure): Deleted.
(WebCore::JSTestCallTracerPrototype::JSTestCallTracerPrototype): Deleted.

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

(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::create): Deleted.
(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::createStructure): Deleted.
(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::JSTestClassWithJSBuiltinConstructorPrototype): Deleted.

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

(WebCore::JSTestDOMJITPrototype::create): Deleted.
(WebCore::JSTestDOMJITPrototype::createStructure): Deleted.
(WebCore::JSTestDOMJITPrototype::JSTestDOMJITPrototype): Deleted.

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

(WebCore::JSTestEnabledBySettingPrototype::create): Deleted.
(WebCore::JSTestEnabledBySettingPrototype::createStructure): Deleted.
(WebCore::JSTestEnabledBySettingPrototype::JSTestEnabledBySettingPrototype): Deleted.

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

(WebCore::JSTestEnabledForContextPrototype::create): Deleted.
(WebCore::JSTestEnabledForContextPrototype::createStructure): Deleted.
(WebCore::JSTestEnabledForContextPrototype::JSTestEnabledForContextPrototype): Deleted.

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

(WebCore::JSTestEventConstructorPrototype::create): Deleted.
(WebCore::JSTestEventConstructorPrototype::createStructure): Deleted.
(WebCore::JSTestEventConstructorPrototype::JSTestEventConstructorPrototype): Deleted.

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

(WebCore::JSTestEventTargetPrototype::create): Deleted.
(WebCore::JSTestEventTargetPrototype::createStructure): Deleted.
(WebCore::JSTestEventTargetPrototype::JSTestEventTargetPrototype): Deleted.

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

(WebCore::JSTestExceptionPrototype::create): Deleted.
(WebCore::JSTestExceptionPrototype::createStructure): Deleted.
(WebCore::JSTestExceptionPrototype::JSTestExceptionPrototype): Deleted.

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

(WebCore::JSTestGenerateIsReachablePrototype::create): Deleted.
(WebCore::JSTestGenerateIsReachablePrototype::createStructure): Deleted.
(WebCore::JSTestGenerateIsReachablePrototype::JSTestGenerateIsReachablePrototype): Deleted.

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

(WebCore::JSTestGlobalObjectPrototype::create): Deleted.
(WebCore::JSTestGlobalObjectPrototype::createStructure): Deleted.
(WebCore::JSTestGlobalObjectPrototype::JSTestGlobalObjectPrototype): Deleted.

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

(WebCore::JSTestIndexedSetterNoIdentifierPrototype::create): Deleted.
(WebCore::JSTestIndexedSetterNoIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestIndexedSetterNoIdentifierPrototype::JSTestIndexedSetterNoIdentifierPrototype): Deleted.

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

(WebCore::JSTestIndexedSetterThrowingExceptionPrototype::create): Deleted.
(WebCore::JSTestIndexedSetterThrowingExceptionPrototype::createStructure): Deleted.
(WebCore::JSTestIndexedSetterThrowingExceptionPrototype::JSTestIndexedSetterThrowingExceptionPrototype): Deleted.

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

(WebCore::JSTestIndexedSetterWithIdentifierPrototype::create): Deleted.
(WebCore::JSTestIndexedSetterWithIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestIndexedSetterWithIdentifierPrototype::JSTestIndexedSetterWithIdentifierPrototype): Deleted.

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

(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunctionEntriesCaller):
(WebCore::JSTestInterfacePrototype::create): Deleted.
(WebCore::JSTestInterfacePrototype::createStructure): Deleted.
(WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype): Deleted.

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

(WebCore::JSTestInterfaceLeadingUnderscorePrototype::create): Deleted.
(WebCore::JSTestInterfaceLeadingUnderscorePrototype::createStructure): Deleted.
(WebCore::JSTestInterfaceLeadingUnderscorePrototype::JSTestInterfaceLeadingUnderscorePrototype): Deleted.

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

(WebCore::jsTestIterablePrototypeFunctionEntriesCaller):
(WebCore::JSTestIterablePrototype::create): Deleted.
(WebCore::JSTestIterablePrototype::createStructure): Deleted.
(WebCore::JSTestIterablePrototype::JSTestIterablePrototype): Deleted.

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

(WebCore::JSTestJSBuiltinConstructorPrototype::create): Deleted.
(WebCore::JSTestJSBuiltinConstructorPrototype::createStructure): Deleted.
(WebCore::JSTestJSBuiltinConstructorPrototype::JSTestJSBuiltinConstructorPrototype): Deleted.

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

(WebCore::JSTestMediaQueryListListenerPrototype::create): Deleted.
(WebCore::JSTestMediaQueryListListenerPrototype::createStructure): Deleted.
(WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype): Deleted.

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifierPrototype::create): Deleted.
(WebCore::JSTestNamedAndIndexedSetterNoIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestNamedAndIndexedSetterNoIdentifierPrototype::JSTestNamedAndIndexedSetterNoIdentifierPrototype): Deleted.

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

(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionPrototype::create): Deleted.
(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionPrototype::createStructure): Deleted.
(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionPrototype::JSTestNamedAndIndexedSetterThrowingExceptionPrototype): Deleted.

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifierPrototype::create): Deleted.
(WebCore::JSTestNamedAndIndexedSetterWithIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestNamedAndIndexedSetterWithIdentifierPrototype::JSTestNamedAndIndexedSetterWithIdentifierPrototype): Deleted.

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

(WebCore::JSTestNamedConstructorPrototype::create): Deleted.
(WebCore::JSTestNamedConstructorPrototype::createStructure): Deleted.
(WebCore::JSTestNamedConstructorPrototype::JSTestNamedConstructorPrototype): Deleted.

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

(WebCore::JSTestNamedDeleterNoIdentifierPrototype::create): Deleted.
(WebCore::JSTestNamedDeleterNoIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestNamedDeleterNoIdentifierPrototype::JSTestNamedDeleterNoIdentifierPrototype): Deleted.

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

(WebCore::JSTestNamedDeleterThrowingExceptionPrototype::create): Deleted.
(WebCore::JSTestNamedDeleterThrowingExceptionPrototype::createStructure): Deleted.
(WebCore::JSTestNamedDeleterThrowingExceptionPrototype::JSTestNamedDeleterThrowingExceptionPrototype): Deleted.

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

(WebCore::JSTestNamedDeleterWithIdentifierPrototype::create): Deleted.
(WebCore::JSTestNamedDeleterWithIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestNamedDeleterWithIdentifierPrototype::JSTestNamedDeleterWithIdentifierPrototype): Deleted.

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

(WebCore::JSTestNamedDeleterWithIndexedGetterPrototype::create): Deleted.
(WebCore::JSTestNamedDeleterWithIndexedGetterPrototype::createStructure): Deleted.
(WebCore::JSTestNamedDeleterWithIndexedGetterPrototype::JSTestNamedDeleterWithIndexedGetterPrototype): Deleted.

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

(WebCore::JSTestNamedGetterCallWithPrototype::create): Deleted.
(WebCore::JSTestNamedGetterCallWithPrototype::createStructure): Deleted.
(WebCore::JSTestNamedGetterCallWithPrototype::JSTestNamedGetterCallWithPrototype): Deleted.

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

(WebCore::JSTestNamedGetterNoIdentifierPrototype::create): Deleted.
(WebCore::JSTestNamedGetterNoIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestNamedGetterNoIdentifierPrototype::JSTestNamedGetterNoIdentifierPrototype): Deleted.

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

(WebCore::JSTestNamedGetterWithIdentifierPrototype::create): Deleted.
(WebCore::JSTestNamedGetterWithIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestNamedGetterWithIdentifierPrototype::JSTestNamedGetterWithIdentifierPrototype): Deleted.

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

(WebCore::JSTestNamedSetterNoIdentifierPrototype::create): Deleted.
(WebCore::JSTestNamedSetterNoIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestNamedSetterNoIdentifierPrototype::JSTestNamedSetterNoIdentifierPrototype): Deleted.

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

(WebCore::JSTestNamedSetterThrowingExceptionPrototype::create): Deleted.
(WebCore::JSTestNamedSetterThrowingExceptionPrototype::createStructure): Deleted.
(WebCore::JSTestNamedSetterThrowingExceptionPrototype::JSTestNamedSetterThrowingExceptionPrototype): Deleted.

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

(WebCore::JSTestNamedSetterWithIdentifierPrototype::create): Deleted.
(WebCore::JSTestNamedSetterWithIdentifierPrototype::createStructure): Deleted.
(WebCore::JSTestNamedSetterWithIdentifierPrototype::JSTestNamedSetterWithIdentifierPrototype): Deleted.

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

(WebCore::JSTestNamedSetterWithIndexedGetterPrototype::create): Deleted.
(WebCore::JSTestNamedSetterWithIndexedGetterPrototype::createStructure): Deleted.
(WebCore::JSTestNamedSetterWithIndexedGetterPrototype::JSTestNamedSetterWithIndexedGetterPrototype): Deleted.

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterPrototype::create): Deleted.
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterPrototype::createStructure): Deleted.
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterPrototype::JSTestNamedSetterWithIndexedGetterAndSetterPrototype): Deleted.

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

(WebCore::JSTestNamedSetterWithOverrideBuiltinsPrototype::create): Deleted.
(WebCore::JSTestNamedSetterWithOverrideBuiltinsPrototype::createStructure): Deleted.
(WebCore::JSTestNamedSetterWithOverrideBuiltinsPrototype::JSTestNamedSetterWithOverrideBuiltinsPrototype): Deleted.

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesPrototype::create): Deleted.
(WebCore::JSTestNamedSetterWithUnforgablePropertiesPrototype::createStructure): Deleted.
(WebCore::JSTestNamedSetterWithUnforgablePropertiesPrototype::JSTestNamedSetterWithUnforgablePropertiesPrototype): Deleted.

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsPrototype::create): Deleted.
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsPrototype::createStructure): Deleted.
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsPrototype::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsPrototype): Deleted.

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

(WebCore::jsTestNodePrototypeFunctionEntriesCaller):
(WebCore::JSTestNodePrototype::create): Deleted.
(WebCore::JSTestNodePrototype::createStructure): Deleted.
(WebCore::JSTestNodePrototype::JSTestNodePrototype): Deleted.

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

(WebCore::JSTestObjConstructor::construct):
(WebCore::JSTestObjPrototype::create): Deleted.
(WebCore::JSTestObjPrototype::createStructure): Deleted.
(WebCore::JSTestObjPrototype::JSTestObjPrototype): Deleted.

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

(WebCore::JSTestOverloadedConstructorsPrototype::create): Deleted.
(WebCore::JSTestOverloadedConstructorsPrototype::createStructure): Deleted.
(WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype): Deleted.

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

(WebCore::JSTestOverloadedConstructorsWithSequencePrototype::create): Deleted.
(WebCore::JSTestOverloadedConstructorsWithSequencePrototype::createStructure): Deleted.
(WebCore::JSTestOverloadedConstructorsWithSequencePrototype::JSTestOverloadedConstructorsWithSequencePrototype): Deleted.

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

(WebCore::JSTestOverrideBuiltinsPrototype::create): Deleted.
(WebCore::JSTestOverrideBuiltinsPrototype::createStructure): Deleted.
(WebCore::JSTestOverrideBuiltinsPrototype::JSTestOverrideBuiltinsPrototype): Deleted.

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

(WebCore::JSTestPluginInterfacePrototype::create): Deleted.
(WebCore::JSTestPluginInterfacePrototype::createStructure): Deleted.
(WebCore::JSTestPluginInterfacePrototype::JSTestPluginInterfacePrototype): Deleted.

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

(WebCore::JSTestPromiseRejectionEventPrototype::create): Deleted.
(WebCore::JSTestPromiseRejectionEventPrototype::createStructure): Deleted.
(WebCore::JSTestPromiseRejectionEventPrototype::JSTestPromiseRejectionEventPrototype): Deleted.

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

(WebCore::JSTestSerializationPrototype::create): Deleted.
(WebCore::JSTestSerializationPrototype::createStructure): Deleted.
(WebCore::JSTestSerializationPrototype::JSTestSerializationPrototype): Deleted.

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

(WebCore::JSTestSerializationIndirectInheritancePrototype::create): Deleted.
(WebCore::JSTestSerializationIndirectInheritancePrototype::createStructure): Deleted.
(WebCore::JSTestSerializationIndirectInheritancePrototype::JSTestSerializationIndirectInheritancePrototype): Deleted.

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

(WebCore::JSTestSerializationInheritPrototype::create): Deleted.
(WebCore::JSTestSerializationInheritPrototype::createStructure): Deleted.
(WebCore::JSTestSerializationInheritPrototype::JSTestSerializationInheritPrototype): Deleted.

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

(WebCore::JSTestSerializationInheritFinalPrototype::create): Deleted.
(WebCore::JSTestSerializationInheritFinalPrototype::createStructure): Deleted.
(WebCore::JSTestSerializationInheritFinalPrototype::JSTestSerializationInheritFinalPrototype): Deleted.

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

(WebCore::JSTestSerializedScriptValueInterfacePrototype::create): Deleted.
(WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure): Deleted.
(WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype): Deleted.

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

(WebCore::JSTestStringifierPrototype::create): Deleted.
(WebCore::JSTestStringifierPrototype::createStructure): Deleted.
(WebCore::JSTestStringifierPrototype::JSTestStringifierPrototype): Deleted.

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

(WebCore::JSTestStringifierAnonymousOperationPrototype::create): Deleted.
(WebCore::JSTestStringifierAnonymousOperationPrototype::createStructure): Deleted.
(WebCore::JSTestStringifierAnonymousOperationPrototype::JSTestStringifierAnonymousOperationPrototype): Deleted.

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

(WebCore::JSTestStringifierNamedOperationPrototype::create): Deleted.
(WebCore::JSTestStringifierNamedOperationPrototype::createStructure): Deleted.
(WebCore::JSTestStringifierNamedOperationPrototype::JSTestStringifierNamedOperationPrototype): Deleted.

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

(WebCore::JSTestStringifierOperationImplementedAsPrototype::create): Deleted.
(WebCore::JSTestStringifierOperationImplementedAsPrototype::createStructure): Deleted.
(WebCore::JSTestStringifierOperationImplementedAsPrototype::JSTestStringifierOperationImplementedAsPrototype): Deleted.

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

(WebCore::JSTestStringifierOperationNamedToStringPrototype::create): Deleted.
(WebCore::JSTestStringifierOperationNamedToStringPrototype::createStructure): Deleted.
(WebCore::JSTestStringifierOperationNamedToStringPrototype::JSTestStringifierOperationNamedToStringPrototype): Deleted.

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

(WebCore::JSTestStringifierReadOnlyAttributePrototype::create): Deleted.
(WebCore::JSTestStringifierReadOnlyAttributePrototype::createStructure): Deleted.
(WebCore::JSTestStringifierReadOnlyAttributePrototype::JSTestStringifierReadOnlyAttributePrototype): Deleted.

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

(WebCore::JSTestStringifierReadWriteAttributePrototype::create): Deleted.
(WebCore::JSTestStringifierReadWriteAttributePrototype::createStructure): Deleted.
(WebCore::JSTestStringifierReadWriteAttributePrototype::JSTestStringifierReadWriteAttributePrototype): Deleted.

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

(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::JSTestTypedefsPrototype::create): Deleted.
(WebCore::JSTestTypedefsPrototype::createStructure): Deleted.
(WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype): Deleted.

2:48 PM Changeset in webkit [258031] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

Add missing force layout.

  • fast/events/touch/ios/touch-handler-on-body-simple.html:
2:14 PM Changeset in webkit [258030] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed unified build fix; Include what you use, in this case: FrameInfoData.h.

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
2:13 PM Changeset in webkit [258029] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[GPUP] Enable Picture-in-Picture support on Mac
https://bugs.webkit.org/show_bug.cgi?id=208732

Reviewed by Eric Carlson.

Covered by existing tests.

RemoteMediaPlayerProxy needs to send "hasVideo" state to MediaPlayerPrivateRemote
in the Web process in order to enable the Picture-in-Picture mode support (on Mac).

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::updateCachedState):

1:57 PM Changeset in webkit [258028] by Alan Coon
  • 15 edits in branches/safari-610.1.6-branch/Source/WebKit

Cherry-pick r257758. rdar://problem/60103801

Add flag to indicate that ITP state was explicitly set
https://bugs.webkit.org/show_bug.cgi?id=208461
<rdar://problem/59960829>

Reviewed by John Wilander.

Now that ITP is supported in Ephemeral sessions, we would like to move to a process-wide
concept of ITP being on or off, rather than controlling this at a website data level.
This patch takes the first step by adding a flag to the WebKit::NetworkSessionCreationParameters
structure that tracks whether the state of ITP (On or Off) was explicitly set by
SPI (primarily during testing).

This patch also ensures that we can communicate with TCC for the purpose of checking if
ITP is on or off.

  • NetworkProcess/NetworkSessionCreationParameters.cpp: (WebKit::NetworkSessionCreationParameters::encode const): (WebKit::NetworkSessionCreationParameters::decode):
  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Scripts/process-entitlements.sh:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetResourceLoadStatisticsEnabled):
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore _setResourceLoadStatisticsEnabled:]):
  • UIProcess/Cocoa/VersionChecks.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): (WebKit::WebProcessPool::ensureNetworkProcess): (WebKit::WebProcessPool::createNewWebProcess):
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::parameters):
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::setIsRunningResourceLoadStatisticsTest):
  • UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::itpStateWasExplicitlySet const): (WebKit::WebsiteDataStore::useExplicitITPState):

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

1:35 PM Changeset in webkit [258027] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION (r257840): [ iOS ] fast/backgrounds/hidpi-bitmap-background-on-subpixel-position.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208601

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:32 PM Changeset in webkit [258026] by Peng Liu
  • 11 edits
    3 adds in trunk/Source

Use the feature flags mechanism to give default feature preference values
https://bugs.webkit.org/show_bug.cgi?id=208607

Reviewed by Youenn Fablet.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/FeatureFlagsSPI.h: Added.

Source/WebKit:

No new tests, no functional change.

Add WebKit.plist to the project in order to use the feature flags mechanism.

  • FeatureFlags/WebKit.plist: Added.

Replace the default feature preference values defined with macros (for async_frame_and_overflow_scrolling,
incremental_pdf, canvas_and_media_in_gpu_process, WebGL2, WebGPU, and webrtc_in_gpu_process) with
functions implemented with the feature flags mechanism.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAsyncFrameAndOverflowScrollingEnabled):
(WebKit::defaultAsyncFrameScrollingEnabled):
(WebKit::defaultAsyncOverflowScrollingEnabled):
(WebKit::defaultUseGPUProcessForMedia):
(WebKit::defaultRenderCanvasInGPUProcessEnabled):
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultCaptureAudioInUIProcessEnabled):
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
(WebKit::defaultWebRTCCodecsInGPUProcess):
(WebKit::defaultWebGL2Enabled):
(WebKit::defaultWebGPUEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

ENABLE_GPU_PROCESS_FOR_WEBRTC is removed because we will use the feature flags
mechanism to give the default preference regarding the WebRTC in GPU process feature.
This patch also adds macro HAVE_SYSTEM_FEATURE_FLAGS.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:
1:24 PM Changeset in webkit [258025] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Set important EGL context attributes
https://bugs.webkit.org/show_bug.cgi?id=208724

Patch by James Darpinian <James Darpinian> on 2020-03-06
Reviewed by Dean Jackson.

These EGL context attributes are important to make ANGLE's validation correct for
WebGL contexts. ROBUST_RESOURCE_INITIALIZATION is especially important; the lack
of it may be a root cause of some of the test flakiness we have seen. With this
change WebKit's EGL context attributes now match Chromium's for ANGLE/WebGL
contexts.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

12:52 PM Changeset in webkit [258024] by youenn@apple.com
  • 12 edits
    1 add in trunk/Source

Use ObjectIdentifier to identify media sessions
https://bugs.webkit.org/show_bug.cgi?id=208710

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior, except that the identifier is now stable over time and unique per process.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::mediaSessionUniqueIdentifier const):

  • html/HTMLMediaElement.h:
  • platform/audio/NowPlayingInfo.h:

(WebCore::NowPlayingInfo::decode):

  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::lastUpdatedNowPlayingInfoUniqueIdentifier const):

  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(MediaSessionManagerCocoa::setNowPlayingInfo):
(MediaSessionManagerCocoa::updateNowPlayingInfo):

  • testing/Internals.cpp:

(WebCore::Internals::nowPlayingState const):

Source/WebKit:

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::requestActiveNowPlayingSessionInfo):

12:49 PM Changeset in webkit [258023] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r257760?) [ Mac wk2 Debug ] ASSERTION FAILED: child->parentObject() == this in WebCore::AccessibilityObject::insertChild
https://bugs.webkit.org/show_bug.cgi?id=208648

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:48 PM Changeset in webkit [258022] by Russell Epstein
  • 4 edits in branches/safari-610.1.6-branch/Source/WebKit

Cherry-pick r257845. rdar://problem/60049340

WebChromeClient::createImageBuffer should not create a connection to GPU Process if page does not want remote rendering
https://bugs.webkit.org/show_bug.cgi?id=208567
rdar://problem/60020229

Reviewed by Wenson Hsieh.

Manually tested.

  • WebProcess/GPU/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::createImageBuffer): Minor refactoring to directly take a ShouldAccelerate instead of a RenderingMode.
  • WebProcess/GPU/graphics/RemoteRenderingBackend.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createImageBuffer const): In case page does not want to do remote rendering, do not create a remote image buffer. Instead, return null and let the caller create a local image buffer.

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

12:48 PM Changeset in webkit [258021] by Russell Epstein
  • 22 edits
    4 copies
    5 adds in branches/safari-610.1.6-branch/Source

Cherry-pick r257730. rdar://problem/60049340

Implement the remote ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=207221

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-02
Reviewed by Jon Lee.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ConcreteImageBuffer.h: (WebCore::ConcreteImageBuffer::create): ConcreteImageBuffer::create returns the derived class which it creates.
  • platform/graphics/displaylists/DisplayList.h: This using statement gives compilation error when referencing DisplayList from WebKit.
  • platform/graphics/displaylists/DisplayListDrawingContext.h: RemoteImageBuffer inherits DisplayList::ImageBuffer so these methods need to be exported.
  • platform/graphics/displaylists/DisplayListImageBuffer.h: (WebCore::DisplayList::ImageBuffer::ImageBuffer): Make it possible for RemoteImageBuffer to be created with no backend. It will be created later when RemoteImageBufferProxy shares its backend with RemoteImageBuffer.

Source/WebKit:

RemoteImageBuffer and RemoteImageBufferProxy represent a single remote
ImageBuffer. The back end should be created by RemoteImageBufferProxy in
GPUProcess and shared with the RemoteImageBuffer in the WebProcess.
Flushing the DrawingContext will be done in GPUProcess. But creating the
native image out of the back end will be in GPUProcess.

RemoteRenderingBackend and RemoteRenderingBackendProxy are central points
for receiving and sending all the messages of the RemoteImageBuffer and
RemoteImageBufferProxy.

  • GPUProcess/graphics/PlatformRemoteImageBufferProxy.h: Added. Defines the platform types of RemoteImageBufferProxy.
  • GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.cpp: Added. (WebKit::RemoteImageBufferMessageHandlerProxy::RemoteImageBufferMessageHandlerProxy): (WebKit::RemoteImageBufferMessageHandlerProxy::createBackend): (WebKit::RemoteImageBufferMessageHandlerProxy::commitFlushContext):
  • GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.h: Added. Manages sending and receiving the messages of RemoteImageBufferProxy
  • GPUProcess/graphics/RemoteImageBufferProxy.h: Added. (WebKit::RemoteImageBufferProxy::create): (WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy): It is responsible for creating a shared back end and replaying back drawing commands.
  • GPUProcess/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::createImageBuffer): (WebKit::RemoteRenderingBackendProxy::releaseImageBuffer): (WebKit::RemoteRenderingBackendProxy::flushImageBufferDrawingContext):
  • GPUProcess/graphics/RemoteRenderingBackendProxy.h: (WebKit::RemoteRenderingBackendProxy::renderingBackendIdentifier const):
  • GPUProcess/graphics/RemoteRenderingBackendProxy.messages.in: Handle or dispatch messages received from RemoteRenderingBackend.
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferFlushIdentifier.h: Added.
  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp: (WebKit::ImageBufferShareableBitmapBackend::create):
  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h: Although hostWindow isn't used, this is what ConcreteImageBuffer::create expects from the creator of the backend.
  • WebProcess/GPU/graphics/PlatformRemoteImageBuffer.h: Added. Defines the platform types of RemoteImageBuffer.
  • WebProcess/GPU/graphics/RemoteImageBuffer.h: Added. (WebKit::RemoteImageBuffer::create): (WebKit::RemoteImageBuffer::RemoteImageBuffer): It is responsible for creating RemoteImageBufferProxy and performing the drawing commands in the GPUProcess.
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp: Added. (WebKit::RemoteImageBufferMessageHandler::RemoteImageBufferMessageHandler): (WebKit::RemoteImageBufferMessageHandler::~RemoteImageBufferMessageHandler): (WebKit::RemoteImageBufferMessageHandler::flushDrawingContext): (WebKit::RemoteImageBufferMessageHandler::commitFlushContext):
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h: Added. (WebKit::RemoteImageBufferMessageHandler::imageBufferIdentifier const): Manages sending and receiving the messages of RemoteImageBuffer.
  • WebProcess/GPU/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::createImageBuffer): (WebKit::RemoteRenderingBackend::releaseImageBuffer): (WebKit::RemoteRenderingBackend::createImageBufferBackend): (WebKit::RemoteRenderingBackend::commitImageBufferFlushContext):
  • WebProcess/GPU/graphics/RemoteRenderingBackend.h: (WebKit::RemoteRenderingBackend::renderingBackendIdentifier const):
  • WebProcess/GPU/graphics/RemoteRenderingBackend.messages.in: Handle or dispatch messages received from RemoteRenderingBackendProxy.
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp: (WebKit::ImageBufferShareableIOSurfaceBackend::create):
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h: Although hostWindow isn't used, this is what ConcreteImageBuffer::create expects from the creator of the backend.

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

12:42 PM Changeset in webkit [258020] by jiewen_tan@apple.com
  • 7 edits in trunk

[WebAuthn] Do not perform Attestation with type is 'none'
https://bugs.webkit.org/show_bug.cgi?id=208676
<rdar://problem/59692104>

Reviewed by Brent Fulgham.

Source/WebKit:

Besides the suggested title, this patch also adds a whitelist to restrict
access until validation is complete. The whitelist allows file URLs and
test-related domains.

Covered by existing tests with new contents.

  • UIProcess/API/APIWebAuthenticationPanelClient.h:

(API::WebAuthenticationPanelClient::selectAssertionResponse const):

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

(WebKit::LocalAuthenticatorInternal::whitelistedRpId):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):

LayoutTests:

Attestation is skipped by default and therefore add parameters to override it.

  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-local.https.html:
12:40 PM Changeset in webkit [258019] by Jason_Lawrence
  • 13 edits in trunk/Source/WebCore

Unreviewed, rolling out r257760.

This commit caused flaky crashing on Mac wk2.

Reverted changeset:

"Fix for LayoutTests/accessibility/mac/value-change/value-
change-user-info-contenteditable.html in IsolatedTree mode."
https://bugs.webkit.org/show_bug.cgi?id=208462
https://trac.webkit.org/changeset/257760

12:25 PM Changeset in webkit [258018] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Make sure completion handler given to AuxiliaryProcessProxy::sendMessage is called asynchronously
https://bugs.webkit.org/show_bug.cgi?id=208701

Reviewed by Chris Dumez.

This is difficult to test as we change the behavior in the case a sendWithAsyncReply fails synchronously.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):
sendMessage completion handler is always called asynchronously for usual cases except in rare cases
like terminated processes or invalid connections.
To make things more consistent, call completion handler asynchronously for these rare cases as well.

12:25 PM Changeset in webkit [258017] by david_quesada@apple.com
  • 12 edits in trunk

Add _WKResourceLoadInfo.resourceType SPI
https://bugs.webkit.org/show_bug.cgi?id=208723

Reviewed by Alex Christensen.

Source/WebCore:

Covered by API tests.

  • Modules/beacon/NavigatorBeacon.cpp:

(WebCore::NavigatorBeacon::sendBeacon):

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):

  • platform/network/ResourceRequestBase.h:

Source/WebKit:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::resourceLoadInfo):

  • Shared/ResourceLoadInfo.h:

(WebKit::ResourceLoadInfo::encode const):
(WebKit::ResourceLoadInfo::decode):

  • UIProcess/API/APIResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:

(toWKResourceLoadInfoResourceType):
(-[_WKResourceLoadInfo resourceType]):
(-[_WKResourceLoadInfo initWithCoder:]):
(-[_WKResourceLoadInfo encodeWithCoder:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(TEST):

12:24 PM Changeset in webkit [258016] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ macOS iOS wk2 ] http/wpt/service-workers/service-worker-networkprocess-crash.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207466

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
12:01 PM Changeset in webkit [258015] by youenn@apple.com
  • 13 edits
    2 adds in trunk/Source

Add support for NowPlaying commands in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=208707

Reviewed by Eric Carlson.

Source/WebCore:

Add a NowPlayingManager that is responsible to clear/set/update NowPlaying information as well as receive commands
and send them to the current NowPlaying client.
Manually tested.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/PlatformMediaSessionManager.h:

Source/WebKit:

Add a global NowPlayingManager.
Each GPUConnectionToWebProcess is now a NowPlayingManager client.
On updating NowPlayingInfo, it becomes a client and can start receiving commands.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::clearNowPlayingInfo):
(WebKit::GPUConnectionToWebProcess::setNowPlayingInfo):
(WebKit::GPUConnectionToWebProcess::didReceiveRemoteControlCommand):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::nowPlayingManager):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/media/RemoteAudioSessionProxy.cpp:
  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:

(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveRemoteCommand):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/GPUProcessConnection.messages.in:
12:01 PM Changeset in webkit [258014] by Jonathan Bedard
  • 2 edits in trunk/Tools

Stop reporting to webkit-test-results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=207218

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunWebKitTests):

11:57 AM Changeset in webkit [258013] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Adopt entitlement to avoid treating webcontent as a trusted binary in some cases
https://bugs.webkit.org/show_bug.cgi?id=208668

Reviewed by Brent Fulgham.

On iOS, adopt entitlement to avoid treating the WebContent process as a trusted binary in some cases.

  • Scripts/process-entitlements.sh:
11:28 AM Changeset in webkit [258012] by Simon Fraser
  • 14 edits in trunk

Move synchronousScrollingReasons to ScrollingTreeScrollingNode
https://bugs.webkit.org/show_bug.cgi?id=208721

Reviewed by Antti Koivisto.

Source/WebCore:

synchronousScrollingReasons was on Scrolling*FrameScrollingNode, but with async overflow
scrolling, some overflow scrolls will need to scroll synchronously if they paint any
background-attachment:fixed, so move synchronousScrollingReasons down to Scrolling*ScrollingNode.

Also wrap the scrolling tree parts in #if ENABLE(SCROLLING_THREAD) since synchronous scrolling
is only a thing if you use threaded scrolling. Ideally more of the ScrollingCoordinator code
would also have #if ENABLE(SCROLLING_THREAD) but that can be done later.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setPropertyChangedBitsAfterReattach):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):
(WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons): Deleted.

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setPropertyChangedBitsAfterReattach):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingStateScrollingNode.h:

(WebCore::ScrollingStateScrollingNode::synchronousScrollingReasons const):

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingTreeScrollingNode.h:

Source/WebKit:

No need to send synchronousScrollingReasons to the UI process; it makes no sense there.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
(WebKit::dump):

LayoutTests:

Rebaselined.

  • tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
11:11 AM Changeset in webkit [258011] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-max-value.htm is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208722

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:39 AM Changeset in webkit [258010] by Russell Epstein
  • 2 edits in branches/safari-610.1.6-branch/Source/WebCore

Cherry-pick r257805. rdar://problem/60107056

[CG] Change the UTI of the "WebP" image to be "com.google.webp"
https://bugs.webkit.org/show_bug.cgi?id=208038

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-03
Reviewed by Simon Fraser.

This is to conform with CGImageSourceGetType().

  • platform/graphics/cg/UTIRegistry.cpp: (WebCore::defaultSupportedImageTypes): Make sure CG supports the suggested UTI before considering it is actually supported.

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

10:39 AM Changeset in webkit [258009] by sihui_liu@apple.com
  • 5 edits in trunk

UIProcess crash after using _prepareForMoveToWindow, then deallocating the WKWebView before moving to the window
https://bugs.webkit.org/show_bug.cgi?id=208365
<rdar://problem/59877296>

Reviewed by Geoffrey Garen.

Source/WebKit:

Fix the issue that observers in WebView may not be removed when WebView is prepared to move to some window but
does not actually move. Make WebView hold strong reference to the target window so it knows to stop observing at
dealloc even if the move does not happen. The strong reference will be released when WebView actually moves to a
window to avoid reference cycle.

New API tests: WKWebView.PrepareForMoveToWindowThenViewDeallocBeforeMoving

WKWebView.PrepareForMoveToWindowThenWindowDeallocBeforeMoving

  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::targetWindowForMovePreparation const):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::~WebViewImpl):
(WebKit::WebViewImpl::intrinsicDeviceScaleFactor const):
(WebKit::WebViewImpl::windowDidChangeScreen):
(WebKit::WebViewImpl::viewWillMoveToWindowImpl):
(WebKit::WebViewImpl::viewWillMoveToWindow):
(WebKit::WebViewImpl::viewDidMoveToWindow):
(WebKit::WebViewImpl::colorSpace):
(WebKit::WebViewImpl::prepareForMoveToWindow):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/PrepareForMoveToWindow.mm:

(TEST):

10:36 AM Changeset in webkit [258008] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS should be able to fetch patch status for security bugs while processing them
https://bugs.webkit.org/show_bug.cgi?id=206511

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(BugzillaMixin.fetch_data_from_url_with_authentication): Method to fetch data from bugzilla using api key.
(BugzillaMixin.get_patch_json):
(BugzillaMixin.get_bug_json):
(BugzillaMixin._is_bug_closed):
(ApplyPatch.hideStepIf): Use 'sensitive' build property instead of 'validated'.
(TransferToS3.hideStepIf): Ditto.

10:30 AM Changeset in webkit [258007] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] commit-queue should show the trac url for the commit on the build page
https://bugs.webkit.org/show_bug.cgi?id=208715

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(PushCommitToWebKitRepo.evaluateCommand):

10:29 AM Changeset in webkit [258006] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Make it possible to safely access CALayers and PlatformCALayerCocoa objects on the scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=208672

Reviewed by Antti Koivisto.

Async overflow/frame scrolling on macOS is going to hit-test through the CALayer tree on the
scrolling thread, and access PlatformCALayers that hang off CALayers. We therefore have to ensure
that those layers are not getting mutated while hit-testing.

We only touch PlatformCALayers and CALayers through two codepaths: GraphicsLayer::flushCompositingState()
when pushing GraphicsLayer changes to CA, and when destroying GraphicsLayers which tears down their associated
PlatformCALayers (the CALayers remain parented in the tree).

To prevent a PlatformCALayer from being destroyed while being accessed on the scrolling thread, we make
it ThreadSafeRefCounted<>, and lock around fetching thePlatformCALayer from the layerToPlatformLayerMap() which
retains it.

To prevent the CALayer/PlatformCALayer trees being mutated during layer flushing, we lock around
rootLayer->flushCompositingState() in RenderLayerCompositor::flushPendingLayerChanges().

The lock is owned by ScrollingTreeMac.

  • page/scrolling/AsyncScrollingCoordinator.h:

(WebCore::LayerTreeHitTestLocker::LayerTreeHitTestLocker):
(WebCore::LayerTreeHitTestLocker::~LayerTreeHitTestLocker):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::lockLayersForHitTesting):
(WebCore::ScrollingTree::unlockLayersForHitTesting):

  • page/scrolling/mac/ScrollingTreeMac.h:
  • page/scrolling/mac/ScrollingTreeMac.mm:

(ScrollingTreeMac::lockLayersForHitTesting):
(ScrollingTreeMac::unlockLayersForHitTesting):

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::layerToPlatformLayerMapMutex):
(WebCore::PlatformCALayer::platformCALayerForLayer):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

10:28 AM Changeset in webkit [258005] by Simon Fraser
  • 5 edits
    1 copy
    3 adds in trunk

Put an event region on scroll container layers
https://bugs.webkit.org/show_bug.cgi?id=208684

Reviewed by Antti Koivisto.
Source/WebCore:

Hit-testing through the CALayer tree on macOS, where we don't have scroll views for overflow,
is simpler if scroll container layers have an event region that just represents the bounds of
the layer. These regions are harmless to have on iOS too.

This patch adds them for overflow scroll, and for m_clipLayer which is the scroll container
layer for scrollable subframes.

Tests: fast/scrolling/mac/event-region-scrolled-contents-layer.html

fast/scrolling/mac/event-region-subframe.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollLayerClipping):

LayoutTests:

  • fast/scrolling/ios/event-region-scrolled-contents-layer-expected.txt:
  • fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt: Copied from LayoutTests/fast/scrolling/ios/event-region-scrolled-contents-layer-expected.txt.
  • fast/scrolling/mac/event-region-scrolled-contents-layer.html: Added.
  • fast/scrolling/mac/event-region-subframe-expected.txt: Added.
  • fast/scrolling/mac/event-region-subframe.html: Added.
10:26 AM Changeset in webkit [258004] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix ResourceLoadDelegate.LoadInfo API test after r257816
https://bugs.webkit.org/show_bug.cgi?id=208550

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondToRequests):
Sometimes we need a separate read to read the HTTP body after a request header, sometimes it comes in the same read.
If it comes in the same read, send the response immediately. Otherwise read the HTTP body then send the response.

10:19 AM Changeset in webkit [258003] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Reduce ThreadTimers maxDurationOfFiringTimers to 16ms
https://bugs.webkit.org/show_bug.cgi?id=208717

Reviewed by Simon Fraser.

50ms -> 16ms.

This gives us more chances to do rendering updates. A/B testing says it is neutral for performance.

  • platform/ThreadTimers.cpp:
9:46 AM Changeset in webkit [258002] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r258001.

I inadvertently changed the wrong expectation in this commit.

Reverted changeset:

"[ iOS wk2 Debug and Mac Debug ] imported/w3c/web-platform-
tests/web-animations/interfaces/Animation/commitStyles.html is
flaky crashing."
https://bugs.webkit.org/show_bug.cgi?id=208718
https://trac.webkit.org/changeset/258001

9:32 AM Changeset in webkit [258001] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Debug and Mac Debug ] imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=208718

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:28 AM Changeset in webkit [258000] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ iOS wk2 Debug and Mac Debug ] imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=208718

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
8:50 AM Changeset in webkit [257999] by Kate Cheney
  • 5 edits in trunk/Source

Remove redundant flags in script evaluation checks
https://bugs.webkit.org/show_bug.cgi?id=208609
<rdar://problem/60058656>
Source/WebCore:

Reviewed by Brent Fulgham.

hasNavigatedAwayFromAppBoundDomain only gets set in WebPageProxy if
its a main frame navigation and In-App Browser privacy is enabled,
we don't need to check again at the sites.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld):

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

Source/WebKit:

Reviewed by Brent Fulgham.

hasNavigatedAwayFromAppBoundDomain only gets set in WebPageProxy if
its a main frame navigation and In-App Browser privacy is enabled,
we don't need to check again at the sites.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

8:39 AM Changeset in webkit [257998] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Absolute positioned table should generate a static table box inside the out-of-flow table wrapper box
https://bugs.webkit.org/show_bug.cgi?id=208713
<rdar://problem/60151358>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/absolute-positioned-simple-table.html

<table style="position: absolute"> should generate

  1. absolute positioned table wrapper box
  2. static (inflow) positioned table box inside the out-of-flow table wrapper box.
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildTableStructure):

LayoutTests:

  • fast/layoutformattingcontext/absolute-positioned-simple-table-expected.html: Added.
  • fast/layoutformattingcontext/absolute-positioned-simple-table.html: Added.
8:08 AM Changeset in webkit [257997] by Darin Adler
  • 39 edits in trunk/Source

Improve some media code
https://bugs.webkit.org/show_bug.cgi?id=208322

Reviewed by Anders Carlsson.

Source/WebCore:

  • TextTrack objects now take Document instead of ScriptExecutionContext.
  • Made more TextTrack functions private and protected.
  • Made TextTrack parsing functions use return values rather than out arguments.
  • Use references rather than pointers and Ref rather than RefPtr for non-null things.
  • Made MediaControlsHost use a WeakPtr instead of a raw pointer.
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::alwaysOnKeyword): Made private to this file instead of exposed in header.
(WebCore::manualKeyword): Ditto.
(WebCore::MediaControlsHost::create): Take a reference instead of a pointer to
the media element.
(WebCore::MediaControlsHost::MediaControlsHost): Ditto, and make a weak pointer.
(WebCore::MediaControlsHost::sortedTrackListForMenu): Added null check.
(WebCore::MediaControlsHost::displayNameForTrack): Ditto.
(WebCore::MediaControlsHost::captionMenuOffItem): Ditto.
(WebCore::MediaControlsHost::captionMenuAutomaticItem): Ditto.
(WebCore::MediaControlsHost::captionDisplayMode const): Ditto.
(WebCore::MediaControlsHost::setSelectedTextTrack): Ditto.
(WebCore::MediaControlsHost::textTrackContainer): Ditto.
(WebCore::MediaControlsHost::allowsInlineMediaPlayback const): Ditto.
(WebCore::MediaControlsHost::supportsFullscreen const): Ditto.
(WebCore::MediaControlsHost::isVideoLayerInline const): Ditto.
(WebCore::MediaControlsHost::isInMediaDocument const): Ditto.
(WebCore::MediaControlsHost::setPreparedToReturnVideoLayerToInline): Ditto.
(WebCore::MediaControlsHost::userGestureRequired const): Ditto.
(WebCore::MediaControlsHost::shouldForceControlsDisplay const): Ditto.
(WebCore::MediaControlsHost::externalDeviceDisplayName const): Ditto.
(WebCore::MediaControlsHost::externalDeviceType const): Ditto.
(WebCore::MediaControlsHost::controlsDependOnPageScaleFactor const): Ditto.
(WebCore::MediaControlsHost::setControlsDependOnPageScaleFactor): Ditto.
(WebCore::MediaControlsHost::generateUUID): Made a static member.
(WebCore::MediaControlsHost::shadowRootCSSText): Ditto.
(WebCore::MediaControlsHost::base64StringForIconNameAndType): Ditto.
(WebCore::MediaControlsHost::formattedStringForDuration): Ditto.
(WebCore::MediaControlsHost::compactMode const): Tweaked logic a bit.

  • Modules/mediacontrols/MediaControlsHost.h: Made various member functions

into static member functions, used references instead of pointers for
things that are never null, used WeakPtr for m_mediaElement.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
Document instead of ScriptExecutionContext.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Document instead of
ScriptExecutionContext.
(WebCore::HTMLMediaElement::updateCaptionContainer): Pass reference to
MediaControlsHost::create.
(WebCore::HTMLMediaElement::setSelectedTextTrack): Update since special items
are now references rather than pointers.
(WebCore::HTMLMediaElement::updateTextTrackDisplay): Pass reference.
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Ditto.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::parseAttribute): Removed setIsDefault function
since the track can simply read the attribute out of the element instead.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
Update since special items are now referencse rather than pointers.

  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue): Document instead of ScriptExecutionContext.
(WebCore::DataCue::create): Moved these functions out of the header.

  • html/track/DataCue.h: Updated for the above.
  • html/track/DataCue.idl: Ditto.
  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::InbandDataTextTrack): Document instead
of ScriptExecutionContext.
(WebCore::InbandDataTextTrack::create): Ditto.
(WebCore::InbandDataTextTrack::addDataCue): Ditto. Also use reference
instead of pointer when calling hasCue.

  • html/track/InbandDataTextTrack.h: Updated for the above.
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::InbandGenericTextTrack): Document
instead of ScriptExecutionContext.
(WebCore::InbandGenericTextTrack::create): Ditto.
(WebCore::InbandGenericTextTrack::addGenericCue): Ditto. Also use
reference instead of pointer when calling hasCue.
(WebCore::InbandGenericTextTrack::parser): Ditto.
(WebCore::InbandGenericTextTrack::newCuesParsed): Ditto. Also use
return value from takeCues instead of out arguenmt from getNewCues.
Also use reference instead of pointer when calling hasCue.
(WebCore::InbandGenericTextTrack::newRegionsParsed): Ditto.

  • html/track/InbandGenericTextTrack.h: Update for above.
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::create): Document instead of
ScriptExecutionContext.
(WebCore::InbandTextTrack::InbandTextTrack): Ditto.

  • html/track/InbandTextTrack.h: Update for above.
  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::InbandWebVTTTextTrack): Document
instead of ScriptExecutionContext.
(WebCore::InbandWebVTTTextTrack::create): Ditto.
(WebCore::InbandWebVTTTextTrack::parser): Ditto.
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Ditto. Also use
return value from takeCues instead of out arguenmt from getNewCues.
Also use reference instead of pointer when calling hasCue.
(WebCore::InbandWebVTTTextTrack::newRegionsParsed): Ditto.

  • html/track/InbandWebVTTTextTrack.h: Update for above.
  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::create): Moved here from header.
(WebCore::LoadableTextTrack::loadTimerFired): Document instead of
ScriptExecutionContext.
(WebCore::LoadableTextTrack::newRegionsAvailable): Use return value
from getNewRegions instead of out argument.
(WebCore::LoadableTextTrack::isDefault const): New implementation that
does not rely on a data member; checks attribute on video element.

  • html/track/LoadableTextTrack.h: Updated for above changes.
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::captionMenuOffItem): Return a reference rather
than a pointer.
(WebCore::TextTrack::captionMenuAutomaticItem): Ditto.
(WebCore::TextTrack::create): Document rather than ScriptExecutionContext.
(WebCore::TextTrack::document const): Added. For use by derived classes.
(WebCore::TextTrack::addRegion): Ref rather than RefPtr.
(WebCore::TextTrack::removeRegion): Reference rather than pointer.
(WebCore::TextTrack::cueWillChange): Ditto.
(WebCore::TextTrack::cueDidChange): Ditto.
(WebCore::TextTrack::hasCue): Ditto.

  • html/track/TextTrack.h: Removed declarations of non-existent

disabledKeyword, hiddenKeyword, and showingKeyword functions.
Made setKind, client, and hasCue protected. Made overrides of
eventTargetInterface, scriptExecutionContext, and logClassName
private. Removed setIsDefault. Updated for changes above.

  • html/track/TextTrack.idl: Did what FIXME suggested, making the region

parameters non-nullable. Passing null silently did nothing before. There
is some small risk of website incompatibility if someone accidentally
relied on this WebKit-specific behavior.

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::create): Document instead of ScriptExecutionContext.
(WebCore::TextTrackCue::TextTrackCue): Ditto.
(WebCore::TextTrackCue::willChange): Pass reference.
(WebCore::TextTrackCue::didChange): Ditto.

  • html/track/TextTrackCue.h: Update for above changes.
  • html/track/TextTrackCue.idl: Ditto.
  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGeneric::TextTrackCueGeneric): Update since the base
class now takes an rvalue reference to the string.
(WebCore::TextTrackCueGeneric::isOrderedBefore const): Use auto.
(WebCore::TextTrackCueGeneric::isPositionedAbove const): Ditto.

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::create): Document instead of ScriptExecutionContext.
Also take String with an rvalue reference.
(WebCore::VTTCue::VTTCue): Ditto.

  • html/track/VTTCue.h: Update for above changes.
  • html/track/VTTCue.idl: Ditto.
  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::WebVTTParser): Document instead of
ScriptExecutionContext. References instead of pointers. Initialize
m_state in class definition.
(WebCore::WebVTTParser::takeCues): Renamed from getNewCues and changed
to use a return value instead of an out argument.
(WebCore::WebVTTParser::takeRegions): Ditto.
(WebCore::WebVTTParser::takeStyleSheets): Ditto.
(WebCore::WebVTTParser::parseCueData): Remove null check of m_client.
(WebCore::WebVTTParser::parse): Ditto.
(WebCore::WebVTTParser::collectWebVTTBlock): Ditto.
(WebCore::WebVTTParser::checkAndCreateRegion): Pass document.
(WebCore::WebVTTParser::checkAndStoreRegion): Use
Vector::removeFirstMatching instead of Vector::removeFirst.
(WebCore::WebVTTParser::createNewCue): Remove null check of m_client.

  • html/track/WebVTTParser.h: Update for above changes.
  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::TextTrackLoader): Document instead of
ScriptExecutionContext. References instead of pointers. Initialize
data members in in class definition.
(WebCore::TextTrackLoader::processNewCueData): Pass references.
(WebCore::TextTrackLoader::corsPolicyPreventedLoad): Use m_document.
(WebCore::TextTrackLoader::load): Ditto.
(WebCore::TextTrackLoader::getNewCues): Use takeCues.
(WebCore::TextTrackLoader::getNewRegions): Changed to return a vector
instead of using an out argument. Use takeRegions.
(WebCore::TextTrackLoader::getNewStyleSheets): Ditto.

  • loader/TextTrackLoader.h: Updated for the above.
  • page/CaptionUserPreferences.cpp:

(WebCore::trackDisplayName): Updated since these are references.
(WebCore::CaptionUserPreferences::mediaSelectionOptionForTrack const): Ditto.
(WebCore::CaptionUserPreferences::sortedTrackListForMenu): Ditto.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::trackDisplayName): Ditto.
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Ditto.

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::selectLegibleMediaOption): Ditto.
(WebCore::PlaybackSessionModelMediaElement::legibleMediaSelectedIndex const):
Updated to use references rather than pointers. Refactored the logic to
use Optional and nested if statements to make the algorithm clearer.

Source/WTF:

  • wtf/WeakPtr.h:

(WTF::WeakPtr::operator! const): Added.

8:05 AM Changeset in webkit [257996] by Simon Fraser
  • 18 edits in trunk/Source

Use an OptionSet<> for SynchronousScrollingReasons
https://bugs.webkit.org/show_bug.cgi?id=208697

Reviewed by Antti Koivisto.

Convert SynchronousScrollingReasons to an OptionSet<SynchronousScrollingReason>.

Source/WebCore:

  • page/PerformanceLoggingClient.cpp:

(WebCore::PerformanceLoggingClient::synchronousScrollingReasonsAsString):

  • page/PerformanceLoggingClient.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
(WebCore::AsyncScrollingCoordinator::reportSynchronousScrollingReasonsChanged):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::synchronousScrollingReasons const):
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously const):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):

  • page/scrolling/ScrollingCoordinatorTypes.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::reportSynchronousScrollingReasonsChanged):

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged):

  • page/scrolling/ThreadedScrollingTree.h:

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):

  • UIProcess/WebPageProxy.cpp:
6:49 AM Changeset in webkit [257995] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebKit

[GPUP] Set the WebProcess's useGPUProcessForMedia setting during the first page load
https://bugs.webkit.org/show_bug.cgi?id=208694

Reviewed by Youenn Fablet.

Until such a time as we can pass through the correct preference during WebProcess creation,
set the WebProcess's "useGPUProcessForMedia" setting just before the first page load.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.h:
6:29 AM Changeset in webkit [257994] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257977 - [GStreamer] Streaming aac/mp3 audio doesn't always work
https://bugs.webkit.org/show_bug.cgi?id=205801

Reviewed by Philippe Normand.

Source/WebCore:

Don't rely on response size to replace Content-Length. This may break streaming videos,
which should always have an Infinite duration.

This patch is based on the fix found by Philippe Normand <pnormand@igalia.com>

Test: http/tests/media/video-no-content-length-stall.html

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::dataReceived):

LayoutTests:

The new test checks that end-of-stream (thus, end of playback) isn't triggered when a live
audio stream is being played. Live streams don't have Content-Length and are loaded as
they are generated (no future data is available immediately). This is simulated by omitting
Content-Length and artificially stalling the stream at a given offset.

  • http/tests/media/resources/serve-video.php: Now the file continues to be served after

the stall when stallOffset/stallDuration are used.

  • http/tests/media/video-no-content-length-stall-expected.txt: Added.
  • http/tests/media/video-no-content-length-stall.html: Added.
6:28 AM Changeset in webkit [257993] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Tools

Merge r257973 - [WPE][WebDriver] MiniBrowser should react to close session commands
https://bugs.webkit.org/show_bug.cgi?id=207529

Reviewed by Carlos Garcia Campos.

Do not call g_object_unref on the first created view if it has already
been disposed in the "close" signal handler.

Based on original patch by Yury Semikhatsky.

  • MiniBrowser/wpe/main.cpp:

(main):

6:28 AM Changeset in webkit [257992] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r257972 - [WPE][GTK] Use Firefox user agent quirk more aggressively on Google Docs
https://bugs.webkit.org/show_bug.cgi?id=208647

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-06
Reviewed by Carlos Garcia Campos.

Source/WebCore:

I had previously determined that we need to send a Firefox user agent quirk to
accounts.youtube.com to avoid unsupported browser warnings on Google Docs. Either the user
agent check has since become more aggressive, or it somehow depends on factors I don't
understand, but as of today it's no longer enough. We now need the quirk for docs.google.com
as well.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresFirefoxBrowser):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

6:28 AM Changeset in webkit [257991] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r257921 - Assertion failed: shouldBeActive() in BackgroundProcessResponsivenessTimer::responsivenessCheckTimerFired()
https://bugs.webkit.org/show_bug.cgi?id=208596

Reviewed by Chris Dumez.

Update state of BackgroundProcessResponsivenessTimer when ServiceWorker is enabled or disabled in web process.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::disableServiceWorkers):
(WebKit::WebProcessProxy::enableServiceWorkers):

6:28 AM Changeset in webkit [257990] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r257908 - [JSCOnly] 32-bits warning on memset of JSValue
https://bugs.webkit.org/show_bug.cgi?id=204411

Patch by Paulo Matos <Paulo Matos> on 2020-03-05
Reviewed by Mark Lam.

Fixes warning on 32bit builds. This is required because GCC knows
it is not safe to use memset on non-POD types and warns against its use.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeZeroMemory):

6:28 AM Changeset in webkit [257989] by Carlos Garcia Campos
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.28

Merge r257897 - Crash in SVGElement::removeEventListener with symbol element
https://bugs.webkit.org/show_bug.cgi?id=207920

Patch by Doug Kelly <Doug Kelly> on 2020-03-04
Reviewed by Ryosuke Niwa.

Source/WebCore:

Resolves a crash in SVGElement::removeEventListener by only attaching the events to the window if the SVG element is both the outermost
SVG element, in addition to ensuring the SVG element is attached to the tree. The symbol element's behavior when referenced by a use
tag actually creates an svg tag instead, so the SVGSVGElement's special behavior for copying attributes is vital.

Note that Chrome and Firefox have a similar behavior for detached SVG elements as to what this change creates: in both other browsers,
onerror is not fired for a detached svg element, and in Firefox, onresize is not fired for a detached svg element (it is however fired
in Chrome).

Tests: fast/events/detached-svg-parent-window-events.html

fast/events/onerror-svg-symbol.html

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::parseAttribute):

LayoutTests:

  • fast/events/detached-svg-parent-window-events-expected.txt: Added.
  • fast/events/detached-svg-parent-window-events.html: Added.
  • fast/events/onerror-svg-symbol-expected.txt: Added.
  • fast/events/onerror-svg-symbol.html: Added.
6:28 AM Changeset in webkit [257988] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r257721 - Fix JSC 32bit alignment increase gcc warning
https://bugs.webkit.org/show_bug.cgi?id=208445

Patch by Paulo Matos <Paulo Matos> on 2020-03-02
Reviewed by Yusuke Suzuki.

Use reinterpret_cast_ptr<>() instead of reinterpret_cast<>() to
avoid GCC warning about increase in alignment requirement for cast
target type.

Source/JavaScriptCore:

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit):

Source/WTF:

  • wtf/HashTable.h:

(WTF::HashTable::tableSize const):
(WTF::HashTable::setTableSize const):
(WTF::HashTable::tableSizeMask const):
(WTF::HashTable::setTableSizeMask):
(WTF::HashTable::keyCount const):
(WTF::HashTable::setKeyCount const):
(WTF::HashTable::deletedCount const):
(WTF::HashTable::setDeletedCount const):
(WTF::KeyTraits>::allocateTable):
(WTF::KeyTraits>::deallocateTable):

6:28 AM Changeset in webkit [257987] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257720 - ASSERT(m_column != unsetColumnIndex) in RenderTable::cellBefore
https://bugs.webkit.org/show_bug.cgi?id=208397

Patch by Doug Kelly <Doug Kelly> on 2020-03-02
Reviewed by Zalan Bujtas.

Source/WebCore:

When inserting a cell into a table row which is not visible, this can lead to attempting to compute the repaint
rects during tree building. Instead, mark the layer as dirty using dirtyVisibleContentStatus(), and the visibility
will be recomputed at a later time.

Test: fast/table/insert-cell-invisible-parent.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertedIntoTree):

LayoutTests:

  • fast/table/insert-cell-invisible-parent-expected.txt: Added.
  • fast/table/insert-cell-invisible-parent.html: Added.
6:28 AM Changeset in webkit [257986] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257714 - Add quirk to disable to back/forward cache on docs.google.com
https://bugs.webkit.org/show_bug.cgi?id=208381
<rdar://problem/59893415>

Reviewed by Ryosuke Niwa.

Google Docs used to bypass the back/forward cache by serving "Cache-Control: no-store"
over HTTPS. We started caching such content in r250437 but the Google Docs content
unfortunately is not currently compatible because it puts an overlay over the page and
starts an animation when navigating away and fails to remove those when coming back from
the back/forward cache (e.g. in 'pageshow' event handler).

  • page/Quirks.cpp:

(WebCore::Quirks::shouldBypassBackForwardCache const):

6:28 AM Changeset in webkit [257985] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257676 - Garbage collection prevents FontFace.loaded promise from getting resolved
https://bugs.webkit.org/show_bug.cgi?id=208382

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make sure the FontFace JS wrapper stays alive long enough to resolve the
loaded promise when it is observable by the page's script.

Test: fast/text/font-promises-gc.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::document const):

  • css/CSSFontFace.h:
  • css/FontFace.cpp:

(WebCore::FontFace::FontFace):
(WebCore::FontFace::fontStateChanged):
(WebCore::FontFace::loadForBindings):
(WebCore::FontFace::loadedForBindings):
(WebCore::FontFace::activeDOMObjectName const):
(WebCore::FontFace::hasPendingActivity const):
(WebCore::FontFace::load): Deleted.

  • css/FontFace.h:
  • css/FontFace.idl:

LayoutTests:

Add layout test coverage. Thanks to Alexey Proskuryakov for writing the test.

  • fast/text/font-promises-gc-expected.txt: Added.
  • fast/text/font-promises-gc.html: Added.
6:28 AM Changeset in webkit [257984] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28

Merge r257649 - Fix issue in cmake build for checking ccache
https://bugs.webkit.org/show_bug.cgi?id=208377

Reviewed by Carlos Alberto Lopez Perez.

If either of the "readlink" or "which" commands fail when looking for the ccache prefix
the output variables will be empty and an invalid expression will be provided to CMake.
e.g. we will get something like:
if ("0" "EQUAL" "0" "AND" "1" "EQUAL" "0" "AND" "STREQUAL" "/usr/local/bin/ccache")

The fix is to wrap the output variables in the quotes when unboxing them in the if.

  • Source/cmake/WebKitCCache.cmake:
6:28 AM Changeset in webkit [257983] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257640 - updateCSSTransitionsForElementAndProperty should clone RenderStyles
https://bugs.webkit.org/show_bug.cgi?id=208356
rdar://59869560

Reviewed by Antti Koivisto.

Make ownership of the local variable clear by cloning the RenderStyles
used in updateCSSTransitionsForElementAndProperty rather than referencing
different versions.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

6:28 AM Changeset in webkit [257982] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257639 - Retain cycle between CSSFontSelector -> CSSFontFaceSet -> CSSFontFace -> CSSFontSelector
https://bugs.webkit.org/show_bug.cgi?id=196437
<rdar://problem/46598332>

Reviewed by Alex Christensen.

Break the reference cycle using a WeakPtr. The leak was reproducible by browsing CNN.com
and then navigating to about:blank (those objects would stay around, even after memory
pressure signal).

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::fontLoadEventOccurred):

  • css/CSSFontFace.h:
6:27 AM Changeset in webkit [257981] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257638 - [SOUP] Unreviewed. Fix unused parameter warning

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::getRawCookies const):

6:27 AM Changeset in webkit [257980] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257635 - [GStreamer] Unreviewed. Fix build warning.

queueSize is of type size_t so it should use the proper format
specifier.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(restartLoaderIfNeeded):
(stopLoaderIfNeeded):

6:27 AM Changeset in webkit [257979] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r257616 - Hit test with clipPath referencing parent element causes infinite recursion
https://bugs.webkit.org/show_bug.cgi?id=208279

Patch by Doug Kelly <Doug Kelly> on 2020-02-27
Reviewed by Ryosuke Niwa.

Source/WebCore:

Add an early return for SVG hit tests which have a child element referencing a parent clipPath.
This change breaks the cycle, although it unfortunately runs on every hit test, for each node which
is a child of the clipPath element.

Test: svg/hittest/svg-clip-path-child-element.html

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::hitTestClipContent):

LayoutTests:

  • svg/hittest/svg-clip-path-child-element-expected.txt: Added.
  • svg/hittest/svg-clip-path-child-element.html: Added.
6:22 AM Changeset in webkit [257978] by graouts@webkit.org
  • 16 edits
    2 deletes in trunk

Remove the experimental flag for Pointer Events
https://bugs.webkit.org/show_bug.cgi?id=208655
<rdar://problem/60090545>

Reviewed by Dean Jackson.

Source/WebCore:

  • dom/Element.cpp:

(WebCore::dispatchPointerEventIfNeeded):
(WebCore::Element::removedFromAncestor):

  • dom/Element.idl:
  • dom/NavigatorMaxTouchPoints.idl:
  • dom/PointerEvent.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setPointerEventsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::pointerEventsEnabled const): Deleted.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Source/WebKit:

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences syntheticEditingCommandsEnabled]):
(-[WebPreferences setSyntheticEditingCommandsEnabled:]):
(-[WebPreferences pointerEventsEnabled]): Deleted.
(-[WebPreferences setPointerEventsEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

LayoutTests:

  • fast/events/pointer/ios/tap-gives-pointerdown-pointerup.html:
  • pointerevents/disabled-expected.html: Removed.
  • pointerevents/disabled.html: Removed.
4:41 AM Changeset in webkit [257977] by eocanha@igalia.com
  • 4 edits
    2 adds in trunk

[GStreamer] Streaming aac/mp3 audio doesn't always work
https://bugs.webkit.org/show_bug.cgi?id=205801

Reviewed by Philippe Normand.

Source/WebCore:

Don't rely on response size to replace Content-Length. This may break streaming videos,
which should always have an Infinite duration.

This patch is based on the fix found by Philippe Normand <pnormand@igalia.com>

Test: http/tests/media/video-no-content-length-stall.html

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::dataReceived):

LayoutTests:

The new test checks that end-of-stream (thus, end of playback) isn't triggered when a live
audio stream is being played. Live streams don't have Content-Length and are loaded as
they are generated (no future data is available immediately). This is simulated by omitting
Content-Length and artificially stalling the stream at a given offset.

  • http/tests/media/resources/serve-video.php: Now the file continues to be served after

the stall when stallOffset/stallDuration are used.

  • http/tests/media/video-no-content-length-stall-expected.txt: Added.
  • http/tests/media/video-no-content-length-stall.html: Added.
3:53 AM Changeset in webkit [257976] by commit-queue@webkit.org
  • 11 edits in trunk

[intersection-observer] Accept a Document as an explicit root
https://bugs.webkit.org/show_bug.cgi?id=208047

Patch by Frederic Wang <fwang@igalia.com> on 2020-03-06
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/intersection-observer/document-scrolling-element-root-expected.txt:

Update expectation now that the test passes.

Source/WebCore:

This patch introduces a recent enhancement to the Intersection Observer specification: the
root initialization parameter can be explicitly be set to a Document. The typical use case
is when document is an iframe. See https://github.com/w3c/IntersectionObserver/issues/372

This patch also updates the way Element's intersection observer data is handled so that it is
more consistent with the explicit Document root case introduced here.

Test: imported/w3c/web-platform-tests/intersection-observer/document-scrolling-element-root.html

  • dom/Document.cpp:

(WebCore::Document::~Document): Notify observers about our desctruction.
(WebCore::Document::updateIntersectionObservations): Use new method name. This does not
require null-check because ensureIntersectionObserverData() has been called in
IntersectionObserver::observe().
(WebCore::Document::ensureIntersectionObserverData): Return reference to intersection
observer data for this document, creating one if it does not exist.

  • dom/Document.h: Add new intersection observer data, used for documents that are explicit

intersection observer roots.
(WebCore::Document::intersectionObserverDataIfExists): Return pointer to intersection
observer data or null if it does not exist.

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument): Use new method name.
(WebCore::Element::disconnectFromIntersectionObservers): Ditto and null-check weak refs.
(WebCore::Element::intersectionObserverDataIfExists): Rename method to match Document's one
and be more explicit that it will be null if it does not exist.
(WebCore::Element::intersectionObserverData): Renamed.

  • dom/Element.h: Renamed.
  • html/LazyLoadImageObserver.cpp:

(WebCore::LazyLoadImageObserver::intersectionObserver): Initialize with a WTF::Optional
after API change.

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::create): Pass a Node* root, which can be null (implicit
root), Document* or Element* (explicit roots). This is determined from init.root.
(WebCore::IntersectionObserver::IntersectionObserver): Handle the case of explicit Document
root.
(WebCore::IntersectionObserver::~IntersectionObserver): Ditto and update method name for
the explicit Element case. Note that in both explicit root cases the corresponding
ensureIntersectionObserverData() method had been called in the constructor so they can
be safely deferenced.
(WebCore::IntersectionObserver::removeTargetRegistration): Use new method name.

  • page/IntersectionObserver.h: Update comment and code now that explicit root is a Node* and

IntersectionObserver::Init::root is either an Element or a Document or null.
(WebCore::IntersectionObserver::root const): Ditto.
(): Deleted.

  • page/IntersectionObserver.idl: Update IDL to match the spec IntersectionObserver::root

is a nullable Node and IntersectionObserverInit::root a nullable Element or Document.

3:11 AM Changeset in webkit [257975] by ysuzuki@apple.com
  • 142 edits in trunk/Source/WebCore

Put all generated JSCells in WebCore into IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205107

Reviewed by Saam Barati.

This patch automatically generates IsoSubspace per WebCore DOM object type.
In preprocess-idls.pl, we collect all the DOM object types and generate DOMIsoSubspaces class,
which contains all the necessary IsoSubspaces. And it is held by WebCoreJSClientData.

CodeGeneratorJS.pm starts putting subspaceFor and subspaceForImpl for each JS DOM wrapper classes.
And we dynamically create IsoSubspace and set it to WebCoreJSClientData's DOMIsoSubspaces. At the same
time, we register IsoSubspace to m_outputConstraintSpaces if the class has output constraits callback.

From the previous patch, we fixed outputConstraintSpaces bug, which is returning a copy of Vector<>
instead of a reference to the member Vector.

  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebCoreMacros.cmake:
  • bindings/js/JSDOMWrapper.cpp:

(WebCore::outputConstraintSubspaceFor): Deleted.

  • bindings/js/JSDOMWrapper.h:
  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

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

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/generate-bindings-all.pl:
  • bindings/scripts/preprocess-idls.pl:
  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::JSInterfaceName::subspaceForImpl):

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

(WebCore::JSInterfaceName::subspaceFor):

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

(WebCore::JSMapLike::subspaceForImpl):

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

(WebCore::JSMapLike::subspaceFor):

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

(WebCore::JSReadOnlyMapLike::subspaceForImpl):

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

(WebCore::JSReadOnlyMapLike::subspaceFor):

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

(WebCore::JSReadOnlySetLike::subspaceForImpl):

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

(WebCore::JSReadOnlySetLike::subspaceFor):

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

(WebCore::JSSetLike::subspaceForImpl):

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

(WebCore::JSSetLike::subspaceFor):

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

(WebCore::JSTestActiveDOMObject::subspaceForImpl):

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

(WebCore::JSTestActiveDOMObject::subspaceFor):

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

(WebCore::JSTestCEReactions::subspaceForImpl):

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

(WebCore::JSTestCEReactions::subspaceFor):

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

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

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

(WebCore::JSTestCEReactionsStringifier::subspaceFor):

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

(WebCore::JSTestCallTracer::subspaceForImpl):

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

(WebCore::JSTestCallTracer::subspaceFor):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceFor):

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

(WebCore::JSTestDOMJIT::subspaceForImpl):

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

(WebCore::JSTestDOMJIT::subspaceFor):

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

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

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

(WebCore::JSTestEnabledBySetting::subspaceFor):

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

(WebCore::JSTestEnabledForContext::subspaceForImpl):

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

(WebCore::JSTestEnabledForContext::subspaceFor):

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

(WebCore::JSTestEventConstructor::subspaceForImpl):

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

(WebCore::JSTestEventConstructor::subspaceFor):

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

(WebCore::JSTestEventTarget::subspaceForImpl):

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

(WebCore::JSTestEventTarget::subspaceFor):

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

(WebCore::JSTestException::subspaceForImpl):

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

(WebCore::JSTestException::subspaceFor):

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

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

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

(WebCore::JSTestGenerateIsReachable::subspaceFor):

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

(WebCore::JSTestGlobalObject::subspaceForImpl):

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

(WebCore::JSTestGlobalObject::subspaceFor):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

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

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceFor):

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

(WebCore::JSTestIterable::subspaceForImpl):

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

(WebCore::JSTestIterable::subspaceFor):

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

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestJSBuiltinConstructor::subspaceFor):

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

(WebCore::JSTestMediaQueryListListener::subspaceForImpl):

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

(WebCore::JSTestMediaQueryListListener::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedConstructor::subspaceForImpl):

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

(WebCore::JSTestNamedConstructor::subspaceFor):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceFor):

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

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

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

(WebCore::JSTestNamedGetterCallWith::subspaceFor):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceFor):

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

(WebCore::JSTestNamedSetterWithOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestNamedSetterWithUnforgableProperties::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithUnforgableProperties::subspaceFor):

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestNode::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceFor):

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

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructors::subspaceFor):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceFor):

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

(WebCore::JSTestOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestPluginInterface::subspaceForImpl):

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

(WebCore::JSTestPluginInterface::subspaceFor):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceFor):

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

(WebCore::JSTestSerialization::subspaceForImpl):

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

(WebCore::JSTestSerialization::subspaceFor):

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

(WebCore::JSTestSerializationIndirectInheritance::subspaceForImpl):

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

(WebCore::JSTestSerializationIndirectInheritance::subspaceFor):

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

(WebCore::JSTestSerializationInherit::subspaceForImpl):

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

(WebCore::JSTestSerializationInherit::subspaceFor):

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

(WebCore::JSTestSerializationInheritFinal::subspaceForImpl):

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

(WebCore::JSTestSerializationInheritFinal::subspaceFor):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceFor):

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

(WebCore::JSTestStringifier::subspaceForImpl):

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

(WebCore::JSTestStringifier::subspaceFor):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceFor):

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

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierNamedOperation::subspaceFor):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceFor):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceFor):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceFor):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceFor):

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

(WebCore::JSTestTypedefs::subspaceForImpl):

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

(WebCore::JSTestTypedefs::subspaceFor):

2:54 AM Changeset in webkit [257974] by commit-queue@webkit.org
  • 143 edits in trunk/Source/WebCore

Unreviewed, rolling out r257950.
https://bugs.webkit.org/show_bug.cgi?id=208704

causing debug failure (Requested by yusukesuzuki on #webkit).

Reverted changeset:

"Put all generated JSCells in WebCore into IsoSubspace"
https://bugs.webkit.org/show_bug.cgi?id=205107
https://trac.webkit.org/changeset/257950

2:02 AM Changeset in webkit [257973] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE][WebDriver] MiniBrowser should react to close session commands
https://bugs.webkit.org/show_bug.cgi?id=207529

Reviewed by Carlos Garcia Campos.

Do not call g_object_unref on the first created view if it has already
been disposed in the "close" signal handler.

Based on original patch by Yury Semikhatsky.

  • MiniBrowser/wpe/main.cpp:

(main):

1:49 AM Changeset in webkit [257972] by commit-queue@webkit.org
  • 4 edits in trunk

[WPE][GTK] Use Firefox user agent quirk more aggressively on Google Docs
https://bugs.webkit.org/show_bug.cgi?id=208647

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-06
Reviewed by Carlos Garcia Campos.

Source/WebCore:

I had previously determined that we need to send a Firefox user agent quirk to
accounts.youtube.com to avoid unsupported browser warnings on Google Docs. Either the user
agent check has since become more aggressive, or it somehow depends on factors I don't
understand, but as of today it's no longer enough. We now need the quirk for docs.google.com
as well.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresFirefoxBrowser):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

1:31 AM Changeset in webkit [257971] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening. Mark fast/images/image-map-outline-in-positioned-container.html as expected failure

  • platform/gtk/TestExpectations:
Note: See TracTimeline for information about the timeline view.