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

Timeline



Jun 24, 2020:

10:12 PM Changeset in webkit [263500] by James Savage
  • 4 edits in trunk/Source

Upstream iPadOS 13.0 multi-window support
https://bugs.webkit.org/show_bug.cgi?id=213590

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup): Always construct a UIWindow
using the expected UIWindowScene.
(makeWindowFromView): Deleted.

Source/WebKit:

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController enterFullScreen]): Always construct a
UIWindow using the expected UIWindowScene.
(makeWindowFromView): Deleted.

9:42 PM Changeset in webkit [263499] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

Running spellcheck on https://developer.apple.com/forums/thread/650317 hangs the web process
https://bugs.webkit.org/show_bug.cgi?id=213585
<rdar://problem/64681632>

Reviewed by Simon Fraser.

Source/WebCore:

In TextCheckingHelper::findFirstMisspellingOrBadGrammar, we attempt to find the first misspelled piece of text
by iterating over the current paragraph range; when we exhaust the current paragraph range, we try to move on to
the next paragraph range by setting the current paragraph range to the start and end of the next paragraph,
using startOfNextParagraph.

However, startOfNextParagraph may return the null position in some cases (as seen in this bug, and the
associated layout test). This logic isn't robust against this possibility, and will end up looping infinitely in
the while loop, since setStart and setEnd are no-ops when given a null position, and so the current
paragraph remains the same.

Make this logic for finding the next misspelled word more robust by allowing us to bail out of the while loop in
the case where setStart or setEnd failed to advance the paragraph range (e.g. due to a null position, or DOM
exception).

Test: editing/mac/spelling/advance-to-next-misspelling.html

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):

  • testing/Internals.cpp:

(WebCore::Internals::advanceToNextMisspelling):

Add an internal testing hook to advance to the next misspelling.

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

LayoutTests:

Add a test that attempts to advance to the next misspelling, and verifies that the misspelled word is selected.

  • editing/mac/spelling/advance-to-next-misspelling-expected.txt: Added.
  • editing/mac/spelling/advance-to-next-misspelling.html: Added.
9:25 PM Changeset in webkit [263498] by ddkilzer@apple.com
  • 28 edits
    1 copy in trunk/Source

Use ObjectIdentifier<>instead of WebCore::nextPlaybackTargetClientContextId() in Document.cpp
<https://webkit.org/b/213546>
<rdar://problem/61803576>

Reviewed by Youenn Fablet.

Switch from uint64_t to WebCore::PlaybackTargetClientContextIdentifier
for contextId values.

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • Add PlaybackTargetClientContextIdentifier.h to the project.
  • Modules/mediasession/PlaybackTargetClientContextIdentifier.h: Add.
  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::ClientState::ClientState):
(WebCore::WebMediaSessionLogger::logAlways const):
(WebCore::WebMediaSessionManager::addPlaybackTargetPickerClient):
(WebCore::WebMediaSessionManager::removePlaybackTargetPickerClient):
(WebCore::WebMediaSessionManager::showPlaybackTargetPicker):
(WebCore::WebMediaSessionManager::clientStateDidChange):
(WebCore::WebMediaSessionManager::find):

  • Modules/mediasession/WebMediaSessionManager.h:
  • Modules/mediasession/WebMediaSessionManagerClient.h:
  • dom/Document.cpp:

(WebCore::Document::addPlaybackTargetPickerClient):
(WebCore::Document::removePlaybackTargetPickerClient):
(WebCore::Document::playbackTargetAvailabilityDidChange):
(WebCore::Document::setPlaybackTarget):
(WebCore::Document::setShouldPlayToPlaybackTarget):
(WebCore::Document::playbackTargetPickerWasDismissed):
(WebCore::nextPlaybackTargetClientContextId): Delete.

  • Replace with PlaybackTargetClientContextIdentifier::generate().
  • dom/Document.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::addPlaybackTargetPickerClient):
(WebCore::ChromeClient::removePlaybackTargetPickerClient):
(WebCore::ChromeClient::showPlaybackTargetPicker):
(WebCore::ChromeClient::playbackTargetPickerClientStateDidChange):

  • page/Page.cpp:

(WebCore::Page::addPlaybackTargetPickerClient):
(WebCore::Page::removePlaybackTargetPickerClient):
(WebCore::Page::showPlaybackTargetPicker):
(WebCore::Page::playbackTargetPickerClientStateDidChange):
(WebCore::Page::setPlaybackTarget):
(WebCore::Page::playbackTargetAvailabilityDidChange):
(WebCore::Page::setShouldPlayToPlaybackTarget):
(WebCore::Page::playbackTargetPickerWasDismissed):

  • page/Page.h:

Source/WebKit:

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Add WebCore::PlaybackTargetClientContextIdentifier to list.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::addPlaybackTargetPickerClient):
(WebKit::WebPageProxy::removePlaybackTargetPickerClient):
(WebKit::WebPageProxy::showPlaybackTargetPicker):
(WebKit::WebPageProxy::playbackTargetPickerClientStateDidChange):
(WebKit::WebPageProxy::setPlaybackTarget):
(WebKit::WebPageProxy::externalOutputDeviceAvailableDidChange):
(WebKit::WebPageProxy::setShouldPlayToPlaybackTarget):
(WebKit::WebPageProxy::playbackTargetPickerWasDismissed):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::addPlaybackTargetPickerClient):
(WebKit::WebChromeClient::removePlaybackTargetPickerClient):
(WebKit::WebChromeClient::showPlaybackTargetPicker):
(WebKit::WebChromeClient::playbackTargetPickerClientStateDidChange):

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

(WebKit::WebPage::playbackTargetSelected const):
(WebKit::WebPage::playbackTargetAvailabilityDidChange):
(WebKit::WebPage::setShouldPlayToPlaybackTarget):
(WebKit::WebPage::playbackTargetPickerWasDismissed):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::addPlaybackTargetPickerClient):
(WebChromeClient::removePlaybackTargetPickerClient):
(WebChromeClient::showPlaybackTargetPicker):
(WebChromeClient::playbackTargetPickerClientStateDidChange):

  • WebView/WebMediaPlaybackTargetPicker.h:
  • WebView/WebMediaPlaybackTargetPicker.mm:

(WebMediaPlaybackTargetPicker::addPlaybackTargetPickerClient):
(WebMediaPlaybackTargetPicker::removePlaybackTargetPickerClient):
(WebMediaPlaybackTargetPicker::showPlaybackTargetPicker):
(WebMediaPlaybackTargetPicker::playbackTargetPickerClientStateDidChange):
(WebMediaPlaybackTargetPicker::setPlaybackTarget):
(WebMediaPlaybackTargetPicker::externalOutputDeviceAvailableDidChange):
(WebMediaPlaybackTargetPicker::setShouldPlayToPlaybackTarget):
(WebMediaPlaybackTargetPicker::playbackTargetPickerWasDismissed):

  • WebView/WebView.mm:

(-[WebView _addPlaybackTargetPickerClient:]):
(-[WebView _removePlaybackTargetPickerClient:]):
(-[WebView _showPlaybackTargetPicker:location:hasVideo:]):
(-[WebView _playbackTargetPickerClientStateDidChange:state:]):

  • WebView/WebViewInternal.h:
8:58 PM Changeset in webkit [263497] by Ross Kirsling
  • 5 edits in trunk/Source/JavaScriptCore

[Intl] Disprefer using ICU enums directly as instance variables
https://bugs.webkit.org/show_bug.cgi?id=213587

Reviewed by Yusuke Suzuki.

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::initializePluralRules):
(JSC::IntlPluralRules::resolvedOptions const):

  • runtime/IntlPluralRules.h:
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
(JSC::IntlRelativeTimeFormat::styleString): Renamed from JSC::styleString.
(JSC::IntlRelativeTimeFormat::resolvedOptions const):
(JSC::numericString): Deleted.

  • runtime/IntlRelativeTimeFormat.h:
8:28 PM Changeset in webkit [263496] by Russell Epstein
  • 1 copy in tags/Safari-610.1.19

Tag Safari-610.1.19.

8:28 PM Changeset in webkit [263495] by Russell Epstein
  • 1 delete in tags/Safari-610.1.19

Delete tag.

7:43 PM Changeset in webkit [263494] by Russell Epstein
  • 2 edits in branches/safari-610.1.19-branch/Source/WebKit

Cherry-pick r263488. rdar://problem/64735026

Cannot play back any video on Apple Silicon devices
https://bugs.webkit.org/show_bug.cgi?id=213584
<rdar://problem/64714596>

Reviewed by Per Arne Vollan.

  • WebProcess/com.apple.WebProcess.sb.in: An unfortunate and incorrect refactoring caused some of the sandbox exceptions to get dropped on the floor.

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

7:13 PM Changeset in webkit [263493] by commit-queue@webkit.org
  • 7 edits
    2 copies in trunk

Removed unrestricted keyword from attributes in PannerNode
https://bugs.webkit.org/show_bug.cgi?id=213523

Source/WebCore:

Updated refDistance, maxDistance, rolloffFactor, coneOuterGain, coneInnerAngle, coneOuterAngle attributes according to spec:
https://www.w3.org/TR/webaudio/#PannerNode-attributes.

Patch by Clark Wang <clark_wang@apple.com> on 2020-06-24
Reviewed by Darin Adler.

Test: webaudio/prefixed-pannernode-basic.html

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::setRefDistance):
(WebCore::PannerNode::setMaxDistance):
(WebCore::PannerNode::setRolloffFactor):
(WebCore::PannerNode::setConeOuterGain):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:

LayoutTests:

Patch by Clark Wang <clark_wang@apple.com> on 2020-06-24
Reviewed by Darin Adler.

Separated prefixed pannernode and unprefixed pannernode tests. Added test cases for refDistance, maxDistance, rolloffFactor, coneOuterGain, coneInnerAngle, coneOuterAngle.

  • webaudio/pannernode-basic-expected.txt:
  • webaudio/pannernode-basic.html:
  • webaudio/prefixed-pannernode-basic-expected.txt: Copied from LayoutTests/webaudio/pannernode-basic-expected.txt.
  • webaudio/prefixed-pannernode-basic.html: Copied from LayoutTests/webaudio/pannernode-basic.html.
7:11 PM Changeset in webkit [263492] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Black rectangle appears when closing PIP on iPhone
https://bugs.webkit.org/show_bug.cgi?id=213570

Reviewed by Eric Carlson.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
Don't unhide the window and view of WebAVPlayerViewController before exiting Picture-in-Picture.

7:05 PM Changeset in webkit [263491] by caitp@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] handle Put/DefinePrivateField in resetPutByID
https://bugs.webkit.org/show_bug.cgi?id=213583

Reviewed by Yusuke Suzuki.

r262613 extends and uses PutByValDirect to support updating and defining private fields, in order to reuse
the IC machinery. The necessary resetPutByID change was erroneously omitted, and is presented here.

  • jit/Repatch.cpp:

(JSC::resetPutByID):

6:43 PM Changeset in webkit [263490] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebKit

[IPC] Use WebKit::LayerHostingContextID instead of uint32_t for videoLayerID
<https://webkit.org/b/213576>
<rdar://problem/61806253>

Reviewed by Darin Adler.

Use WebKit::LayerHostingContextID instead of uint32_t as type
for videoLayerID since the value comes from
LayerHostingContext::contextID() in
VideoFullscreenManager::enterVideoFullscreenForVideoElement().

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):

6:31 PM Changeset in webkit [263489] by ap@apple.com
  • 4 edits in trunk/Tools

macOS Big Sur build fix.

Remove long obsolete checks for Mac OS X 10.6 that didn't respect the major version.

  • MiniBrowser/Makefile:
  • TestWebKitAPI/Makefile:
  • WebKitTestRunner/Makefile:
6:29 PM Changeset in webkit [263488] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Cannot play back any video on Apple Silicon devices
https://bugs.webkit.org/show_bug.cgi?id=213584
<rdar://problem/64714596>

Reviewed by Per Arne Vollan.

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

An unfortunate and incorrect refactoring caused some of the sandbox exceptions to get dropped on the floor.

5:24 PM Changeset in webkit [263487] by Alan Coon
  • 2 edits in branches/safari-610.1.19-branch/Source/WebKit

Cherry-pick r263456. rdar://problem/64728416

REGRESSION (r263328): Crash in bool WTF::WeakHashSet<WebKit::AudioSessionRoutingArbitratorProxy, WTF::EmptyCounter>::contains<WebKit::AudioSessionRoutingArbitratorProxy> const
https://bugs.webkit.org/show_bug.cgi?id=213526
<rdar://problem/64591777>

Reviewed by Eric Carlson.

Clear the m_routingArbitrator before WebProcessPool::disconnectProcess(), not after.

  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shutDown):

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

5:19 PM Changeset in webkit [263486] by ysuzuki@apple.com
  • 1 edit
    1 delete in trunk/JSTests

Unreviewed, included copy of stress/llinttrue.js accidentally.
https://bugs.webkit.org/show_bug.cgi?id=213442

  • stress/baselintjittrue.js: Removed.
4:58 PM Changeset in webkit [263485] by Simon Fraser
  • 20 edits
    2 adds in trunk

REGRESSION (r260276): Scrolling through shelves on music.apple.com is not smooth
https://bugs.webkit.org/show_bug.cgi?id=213572
Source/WebCore:

Reviewed by Wenson Hsieh.

The scroll position for an overflow:scroll element with scroll-snap could jump around
during scrolling, if layout triggered a call to ScrollableArea::updateScrollSnapState().
The crux of the issue is that isScrollSnapInProgress() returned false for overflow:scrollers
which are scrolling asynchronously.

Fix by extending the existing ScrollingTree::isScrollSnapInProgress() to track all scrolling
nodes by storing a HashSet<ScrollingNodeID> rather than just a flag for the main frame.

RenderLayer::isScrollSnapInProgress() then consults the ScrollingCoordinator, which consults
the scrolling tree for this state.

Add the ability to test via internals.isScrollSnapInProgress().

Test: fast/scrolling/mac/scroll-snapping-in-progress.html

  • dom/Document.h:
  • page/FrameView.cpp:

(WebCore::FrameView::isScrollSnapInProgress const): The main thread can run snapping logic
even for async-scrollable frames, so consult the ScrollingCoordinator and FrameView's ScrollAnimator.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::isScrollSnapInProgress const):

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

(WebCore::ScrollingCoordinator::isScrollSnapInProgress const):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::isScrollSnapInProgressForNode):
(WebCore::ScrollingTree::setNodeScrollSnapInProgress):
(WebCore::ScrollingTree::isScrollSnapInProgress): Deleted.
(WebCore::ScrollingTree::setMainFrameIsScrollSnapping): Deleted.

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

(WebCore::ScrollingTreeScrollingNode::setScrollSnapInProgress):
(WebCore::ScrollingTreeScrollingNode::isScrollSnapInProgress const):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::willStartScrollSnapAnimation):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::didStopScrollSnapAnimation):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::requestScrollPositionUpdate):
(WebCore::RenderLayer::isScrollSnapInProgress const):
(WebCore::RenderLayer::setupFontSubpixelQuantization):

  • testing/Internals.cpp:

(WebCore:: const):
(WebCore::Internals::scrollSnapOffsets):
(WebCore::Internals::isScrollSnapInProgress):

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

Source/WebKit:

<rdar://problem/64306590>

Reviewed by Wenson Hsieh.

The scroll position for an overflow:scroll element with scroll-snap could jump around
during scrolling, if layout triggered a call to ScrollableArea::updateScrollSnapState().
The crux of the issue is that isScrollSnapInProgress() returned false for overflow:scrollers
which are scrolling asynchronously.

Fix by extending the existing ScrollingTree::isScrollSnapInProgress() to track all scrolling
nodes by storing a HashSet<ScrollingNodeID> rather than just a flag for the main frame.

RenderLayer::isScrollSnapInProgress() then consults the ScrollingCoordinator, which consults
the scrolling tree for this state.

Add the ability to test via internals.isScrollSnapInProgress().

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::isScrollSnapInProgress const):

LayoutTests:

Reviewed by Wenson Hsieh.

  • fast/scrolling/mac/scroll-snapping-in-progress-expected.txt: Added.
  • fast/scrolling/mac/scroll-snapping-in-progress.html: Added.
4:51 PM Changeset in webkit [263484] by Russell Epstein
  • 3 edits in branches/safari-609.3.5.0-branch/Source/WebKit

Apply patch. rdar://problem/62977672

4:40 PM Changeset in webkit [263483] by ysuzuki@apple.com
  • 3 edits
    4 adds in trunk

[JSC] llintTrue / jitTrue can encounter native functions
https://bugs.webkit.org/show_bug.cgi?id=213442
<rdar://problem/64257914>

Reviewed by Mark Lam.

JSTests:

  • stress/baselinejittrue.js: Added.

(shouldBe):
(jitCode1):
(jitCode2):

  • stress/baselintjittrue.js: Added.

(shouldBe):
(llintCode1):
(llintCode2):

  • stress/llinttrue-in-eval.js: Added.
  • stress/llinttrue.js: Added.

(shouldBe):
(llintCode1):
(llintCode2):

Source/JavaScriptCore:

If the CallFrame is for native function, associated CodeBlock is nullptr.
This patch fixes this case to handle it gracefully.

  • tools/JSDollarVM.cpp:

(JSC::CallerFrameJITTypeFunctor::CallerFrameJITTypeFunctor):
(JSC::CallerFrameJITTypeFunctor::operator() const):
(JSC::functionBaselineJITTrue):
(JSC::JSDollarVM::finishCreation):
(JSC::functionJITTrue): Deleted.

4:37 PM Changeset in webkit [263482] by Russell Epstein
  • 8 edits in branches/safari-609.3.5.0-branch/Source

Versioning.

WebKit-609.3.5.0.2

4:04 PM Changeset in webkit [263481] by Jason_Lawrence
  • 3 edits
    2 deletes in trunk

Unreviewed, reverting r263466.

This commit caused 50+ crashes on multiple queues internally.

Reverted changeset:

"REGRESSION (r260360): easing curves are broken on JS-
originated animations"
https://bugs.webkit.org/show_bug.cgi?id=213495
https://trac.webkit.org/changeset/263466

4:00 PM Changeset in webkit [263480] by Wenson Hsieh
  • 7 edits
    2 adds in trunk

Allow the async clipboard API to write data when copying via menu action or key binding
https://bugs.webkit.org/show_bug.cgi?id=213568
<rdar://problem/64711653>

Reviewed by Darin Adler.

Source/WebCore:

Makes a couple of minor adjustments to allow clipboard.write and clipboard.writeText to work during a user-
triggered copy event (that is, from menu or key binding). See below for more details.

Test: editing/async-clipboard/clipboard-write-in-copy-event-handler.html

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::shouldProceedWithClipboardWrite):

Add a mechanism to keep track of when Editor is handling a copy or cut event that is the result of interacting
with a key binding or menu action. Use this mechanism to grant write access via the async clipboard API.

  • editing/Editor.cpp:

(WebCore::dispatchClipboardEvent):

Only attempt to commit the static pasteboard to the platform pasteboard during a copy event when preventing
default if the StaticPasteboard-backed DataTransfer actually contains data. This fixes a race condition when
writing to the pasteboard using the async clipboard API during the "copy" event, where the changeCount when
beginning to write is incremented due to the pasteboard getting cleared.

This change will also make it so that calling preventDefault() on the copy event will result in no change to
the system pasteboard, instead of clearing out any existing content on the pasteboard.

(WebCore::Editor::cut):
(WebCore::Editor::copy):

  • editing/Editor.h:

(WebCore::Editor::isCopyingFromMenuOrKeyBinding const):

  • editing/EditorCommand.cpp:

(WebCore::executeCopy):
(WebCore::executeCut):

LayoutTests:

Add a new layout test to exercise async clipboard writing API during the copy event.

  • editing/async-clipboard/clipboard-write-in-copy-event-handler-expected.txt: Added.
  • editing/async-clipboard/clipboard-write-in-copy-event-handler.html: Added.
  • platform/win/TestExpectations:
3:53 PM Changeset in webkit [263479] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Unreviewed, reverting r263295.
https://bugs.webkit.org/show_bug.cgi?id=213577

Introduced logging regression

Reverted changeset:

"[macOS] Connections to the preference daemon are established
before entering the sandbox"
https://bugs.webkit.org/show_bug.cgi?id=213379
https://trac.webkit.org/changeset/263295

3:52 PM Changeset in webkit [263478] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for editing/spelling/editing-word-with-marker-1.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213574

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-24

  • platform/mac-wk2/TestExpectations:
3:26 PM Changeset in webkit [263477] by Russell Epstein
  • 1 copy in tags/Safari-610.1.18.1

Tag Safari-610.1.18.1.

3:09 PM Changeset in webkit [263476] by ddkilzer@apple.com
  • 15 edits
    1 add in trunk/Source/WebKit

Use ObjectIdentifier<> instead of uint64_t for context IDs in VideoFullscreenManagerProxy
<https://webkit.org/b/212392>
<rdar://problem/61799040>

Reviewed by Youenn Fablet.

Switch from uint64_t to WebKit::PlaybackSessionContextIdentifier
for contextId values.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Add WebKit::PlaybackSessionContextIdentifier to list.
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:

(WebKit::PlaybackSessionManagerProxy::controlsManagerContextId const):

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::PlaybackSessionManagerProxy::ensureModelAndInterface):
(WebKit::PlaybackSessionManagerProxy::ensureModel):
(WebKit::PlaybackSessionManagerProxy::ensureInterface):
(WebKit::PlaybackSessionManagerProxy::addClientForContext):
(WebKit::PlaybackSessionManagerProxy::removeClientForContext):
(WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):
(WebKit::PlaybackSessionManagerProxy::clearPlaybackControlsManager):
(WebKit::PlaybackSessionManagerProxy::currentTimeChanged):
(WebKit::PlaybackSessionManagerProxy::bufferedTimeChanged):
(WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged):
(WebKit::PlaybackSessionManagerProxy::canPlayFastReverseChanged):
(WebKit::PlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionManagerProxy::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged):
(WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionManagerProxy::mutedChanged):
(WebKit::PlaybackSessionManagerProxy::volumeChanged):
(WebKit::PlaybackSessionManagerProxy::durationChanged):
(WebKit::PlaybackSessionManagerProxy::playbackStartedTimeChanged):
(WebKit::PlaybackSessionManagerProxy::rateChanged):
(WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged):
(WebKit::PlaybackSessionManagerProxy::handleControlledElementIDResponse const):
(WebKit::PlaybackSessionManagerProxy::play):
(WebKit::PlaybackSessionManagerProxy::pause):
(WebKit::PlaybackSessionManagerProxy::togglePlayState):
(WebKit::PlaybackSessionManagerProxy::beginScrubbing):
(WebKit::PlaybackSessionManagerProxy::endScrubbing):
(WebKit::PlaybackSessionManagerProxy::seekToTime):
(WebKit::PlaybackSessionManagerProxy::fastSeek):
(WebKit::PlaybackSessionManagerProxy::beginScanningForward):
(WebKit::PlaybackSessionManagerProxy::beginScanningBackward):
(WebKit::PlaybackSessionManagerProxy::endScanning):
(WebKit::PlaybackSessionManagerProxy::selectAudioMediaOption):
(WebKit::PlaybackSessionManagerProxy::selectLegibleMediaOption):
(WebKit::PlaybackSessionManagerProxy::togglePictureInPicture):
(WebKit::PlaybackSessionManagerProxy::toggleMuted):
(WebKit::PlaybackSessionManagerProxy::setMuted):
(WebKit::PlaybackSessionManagerProxy::setVolume):
(WebKit::PlaybackSessionManagerProxy::setPlayingOnSecondScreen):

  • Remove MESSAGE_CHECK_CONTEXTID() since it is now redundant.
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext):
(WebKit::VideoFullscreenManagerProxy::requestRouteSharingPolicyAndContextUID):
(WebKit::VideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::VideoFullscreenManagerProxy::ensureModelAndInterface):
(WebKit::VideoFullscreenManagerProxy::ensureModel):
(WebKit::VideoFullscreenManagerProxy::ensureInterface):
(WebKit::VideoFullscreenManagerProxy::findInterface):
(WebKit::VideoFullscreenManagerProxy::addClientForContext):
(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::VideoFullscreenManagerProxy::setHasVideo):
(WebKit::VideoFullscreenManagerProxy::setVideoDimensions):
(WebKit::VideoFullscreenManagerProxy::enterFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreen):
(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::cleanupFullscreen):
(WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline):
(WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::requestFullscreenMode):
(WebKit::VideoFullscreenManagerProxy::requestUpdateInlineRect):
(WebKit::VideoFullscreenManagerProxy::requestVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::returnVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::didSetupFullscreen):
(WebKit::VideoFullscreenManagerProxy::willExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::didExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::didEnterFullscreen):
(WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen):
(WebKit::VideoFullscreenManagerProxy::setVideoLayerFrame):
(WebKit::VideoFullscreenManagerProxy::setVideoLayerGravity):
(WebKit::VideoFullscreenManagerProxy::fullscreenModeChanged):
(WebKit::VideoFullscreenManagerProxy::fullscreenMayReturnToInline):

  • Remove MESSAGE_CHECK_CONTEXTID() since it is now redundant.
  • WebKit.xcodeproj/project.pbxproj:
  • Add PlaybackSessionContextIdentifier.h to the project.
  • WebProcess/cocoa/PlaybackSessionContextIdentifier.h: Add.
  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.messages.in:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext):
(WebKit::PlaybackSessionManager::createModelAndInterface):
(WebKit::PlaybackSessionManager::ensureModelAndInterface):
(WebKit::PlaybackSessionManager::ensureModel):
(WebKit::PlaybackSessionManager::ensureInterface):
(WebKit::PlaybackSessionManager::removeContext):
(WebKit::PlaybackSessionManager::addClientForContext):
(WebKit::PlaybackSessionManager::removeClientForContext):
(WebKit::PlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::PlaybackSessionManager::clearPlaybackControlsManager):
(WebKit::PlaybackSessionManager::contextIdForMediaElement):
(WebKit::PlaybackSessionManager::durationChanged):
(WebKit::PlaybackSessionManager::currentTimeChanged):
(WebKit::PlaybackSessionManager::bufferedTimeChanged):
(WebKit::PlaybackSessionManager::playbackStartedTimeChanged):
(WebKit::PlaybackSessionManager::rateChanged):
(WebKit::PlaybackSessionManager::seekableRangesChanged):
(WebKit::PlaybackSessionManager::canPlayFastReverseChanged):
(WebKit::PlaybackSessionManager::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionManager::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionManager::externalPlaybackChanged):
(WebKit::PlaybackSessionManager::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionManager::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionManager::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionManager::mutedChanged):
(WebKit::PlaybackSessionManager::volumeChanged):
(WebKit::PlaybackSessionManager::isPictureInPictureSupportedChanged):
(WebKit::PlaybackSessionManager::play):
(WebKit::PlaybackSessionManager::pause):
(WebKit::PlaybackSessionManager::togglePlayState):
(WebKit::PlaybackSessionManager::beginScrubbing):
(WebKit::PlaybackSessionManager::endScrubbing):
(WebKit::PlaybackSessionManager::seekToTime):
(WebKit::PlaybackSessionManager::fastSeek):
(WebKit::PlaybackSessionManager::beginScanningForward):
(WebKit::PlaybackSessionManager::beginScanningBackward):
(WebKit::PlaybackSessionManager::endScanning):
(WebKit::PlaybackSessionManager::selectAudioMediaOption):
(WebKit::PlaybackSessionManager::selectLegibleMediaOption):
(WebKit::PlaybackSessionManager::handleControlledElementIDRequest):
(WebKit::PlaybackSessionManager::togglePictureInPicture):
(WebKit::PlaybackSessionManager::toggleMuted):
(WebKit::PlaybackSessionManager::setMuted):
(WebKit::PlaybackSessionManager::setVolume):
(WebKit::PlaybackSessionManager::setPlayingOnSecondScreen):
(WebKit::nextContextId): Delete.

  • Replace with PlaybackSessionContextIdentifier::generate().
  • WebProcess/cocoa/VideoFullscreenManager.h:

(WebKit::VideoFullscreenInterfaceContext::create):

  • WebProcess/cocoa/VideoFullscreenManager.messages.in:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext):
(WebKit::VideoFullscreenManager::createModelAndInterface):
(WebKit::VideoFullscreenManager::ensureModelAndInterface):
(WebKit::VideoFullscreenManager::ensureModel):
(WebKit::VideoFullscreenManager::ensureInterface):
(WebKit::VideoFullscreenManager::removeContext):
(WebKit::VideoFullscreenManager::addClientForContext):
(WebKit::VideoFullscreenManager::removeClientForContext):
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation):
(WebKit::VideoFullscreenManager::hasVideoChanged):
(WebKit::VideoFullscreenManager::videoDimensionsChanged):
(WebKit::VideoFullscreenManager::requestFullscreenMode):
(WebKit::VideoFullscreenManager::fullscreenModeChanged):
(WebKit::VideoFullscreenManager::requestUpdateInlineRect):
(WebKit::VideoFullscreenManager::requestVideoContentLayer):
(WebKit::VideoFullscreenManager::returnVideoContentLayer):
(WebKit::VideoFullscreenManager::didSetupFullscreen):
(WebKit::VideoFullscreenManager::willExitFullscreen):
(WebKit::VideoFullscreenManager::didEnterFullscreen):
(WebKit::VideoFullscreenManager::didExitFullscreen):
(WebKit::VideoFullscreenManager::didCleanupFullscreen):
(WebKit::VideoFullscreenManager::setVideoLayerGravityEnum):
(WebKit::VideoFullscreenManager::fullscreenMayReturnToInline):
(WebKit::VideoFullscreenManager::requestRouteSharingPolicyAndContextUID):
(WebKit::VideoFullscreenManager::setVideoLayerFrameFenced):

2:19 PM Changeset in webkit [263475] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

REGRESSION(r262341) Use UTF-8 to decode CFURLRefs from IPC
https://bugs.webkit.org/show_bug.cgi?id=213565
Source/WebKit:

<rdar://problem/64408924>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-24
Reviewed by Darin Adler.

My assumption that all valid CFURLRefs are ASCII was incorrect.
Some of them are UTF-8 encoded non-ASCII.
Using kCFStringEncodingUTF8 covers both.

Test: fast/url/navigate-non-ascii.html

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

Tools:

<rdar://problem/64408924>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-24
Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WebKitCocoa/LoadInvalidURLRequest.mm:

(TestWebKitAPI::TEST):

LayoutTests:

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-24
Reviewed by Darin Adler.

  • fast/url/navigate-non-ascii-expected.txt: Added.
  • fast/url/navigate-non-ascii.html: Added.
2:18 PM Changeset in webkit [263474] by commit-queue@webkit.org
  • 35 edits in trunk

We should resurrect the older patch that collects some statistics of web API calls
https://bugs.webkit.org/show_bug.cgi?id=213319

Patch by Umar Iqbal <uiqbal@apple.com> on 2020-06-24
Reviewed by Brent Fulgham.
Source/JavaScriptCore:

+ Enabled ENABLE_WEB_API_STATISTICS flag

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests. Enabled existing tests.
Enabled http/tests/webAPIStatistics that test the functionality behind WEB_API_STATISTICS flag.

+ Brought back WebCore::encodeHashSet(KeyedEncoder& encoder, const String& label,
const String& key, const HashSet<String>& hashSet) because it was needed by

WebCore::encodeFontHashSet(KeyedEncoder& encoder, const String& label, const HashSet<String>& hashSet)

+ Changed the type of HashCountedSet to HashSet because of earlier patch

(https://bugs.webkit.org/attachment.cgi?id=363033) updated other HashCountedSet to HashSet,
stating that the counted statistics were never used (see change log in the mentioned patch).

+ Also changed the type of topFrameRegistrableDomainsWhichAccessedWebAPIs HashSet
from String to RegistrableDomain. See the earlier bug (https://bugs.webkit.org/show_bug.cgi?id=194791)
that explains the switch from String to RegistrableDomain for eTLD+1's
+ Enabled WEB_API_STATISTICS flag in FeatureDefines.xcconfig and PlatformEnableCocoa.h
+ Added WTF::EnumTraits<> for OptionSet<> enum in ResourceLoadStatistics.h due to an earlier change.

  • loader/ResourceLoadStatistics.h:
  • Configurations/FeatureDefines.xcconfig:
  • loader/CanvasActivityRecord.h:
  • loader/ResourceLoadStatistics.cpp:

(WebCore::encodeHashSet):
(WebCore::ResourceLoadStatistics::encode const):
(WebCore::decodeHashSet):
(WebCore::decodeCanvasActivityRecord):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::appendHashSet):
(WebCore::ResourceLoadStatistics::toString const):

Source/WebCore/PAL:

+ Enabled ENABLE_WEB_API_STATISTICS flag

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

+ Enabled ENABLE_WEB_API_STATISTICS flag
+ Removed .string() from mainFrameRegistrableDomain to append it to topFrameRegistrableDomainsWhichAccessedWebAPIs

because topFrameRegistrableDomainsWhichAccessedWebAPIs is a HashSet of WebCore::RegistrableDomain

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::logFontLoad):
(WebKit::WebResourceLoadObserver::logCanvasRead):
(WebKit::WebResourceLoadObserver::logCanvasWriteOrMeasure):
(WebKit::WebResourceLoadObserver::logNavigatorAPIAccessed):
(WebKit::WebResourceLoadObserver::logScreenAPIAccessed):

Source/WebKitLegacy/mac:

+ Enabled ENABLE_WEB_API_STATISTICS flag

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

+ Enabled ENABLE_WEB_API_STATISTICS flag

  • wtf/PlatformEnableCocoa.h:

Tools:

+ Enabled ENABLE_WEB_API_STATISTICS flag.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

We should resurrect the older patch that collects some statistics of web API calls

+ Enabled web API statistics tests in ios-wk2 and mac-wk2
+ Updated expectations for web API statistics and resrource load statistics tests.

  • http/tests/webAPIStatistics/canvas-read-and-write-data-collection-expected.txt:
  • http/tests/webAPIStatistics/font-load-data-collection-expected.txt:
  • http/tests/webAPIStatistics/navigator-functions-accessed-data-collection-expected.txt:
  • http/tests/webAPIStatistics/screen-functions-accessed-data-collection-expected.txt:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt:
  • http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt:
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt:
  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-expected.txt:
  • http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-link-decoration-expected.txt:
  • http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads-expected.txt:
  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
2:07 PM Changeset in webkit [263473] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null Ptr Deref READ @ WTF::Optional<WTF::Seconds>::clear
https://bugs.webkit.org/show_bug.cgi?id=213543

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-06-24
Reviewed by Geoffrey Garen.
Source/WebCore:

While performing an animation request, the callback functions modifies the iframe's srcdoc attribute, leading to domWindow being null during
rendering, and resulting into crash.

Test: fast/rendering/iframe-window-animation-modifies-iframe-srcdoc-crash.html

  • page/Page.cpp:

(WebCore::Page::updateRendering):

LayoutTests:

Added a regression test.

  • fast/rendering/iframe-window-animation-modifies-iframe-srcdoc-crash-expected.txt: Added.
  • fast/rendering/iframe-window-animation-modifies-iframe-srcdoc-crash.html: Added.
1:52 PM Changeset in webkit [263472] by aestes@apple.com
  • 13 edits
    2 adds in trunk

[iOS] Open element actions sometimes result in a hover instead of a click
https://bugs.webkit.org/show_bug.cgi?id=213530
<rdar://problem/64176707>

Reviewed by Darin Adler.

Source/WebKit:

_WKElementAction implements a standard action handler for _WKElementActionTypeOpen that
attempts a synthetic click at the interaction location, expecting this click to start a
navigation to the interaction node's target URL. Synthetic clicks are subject to content
change observing, however, and if ContentChangeObserver detects a meaningful visible change
after dispatching a mousemove event at the interaction location then WebPage will refrain
from dispatching the mousedown and mouseup events that would have started a navigation.

While this behavior is necessary to support hover menus, it doesn't make sense when the user
is interacting with a context menu. Since the system might display a preview of the target
URL found at the interaction location, users expect the "Open" action to navigate to that
same URL rather than merely display a hover menu.

This change opts synthetic clicks from the open action out of content change observing by
ensuring that an interaction is started when handling _WKElementActionTypeOpen (like we do
for "Copy" and "Save Image"), then checking if WebPage::m_interactionNode matches the node
found in WebPage::attemptSyntheticClick. If it does, WebPage now bypasses content change
observing and completes a synthetic click.

New API test: ElementActionTests.OpenLinkWithHoverMenu

  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:customTitle:assistant:]): Changed to call
-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:] in the
handlers for _WKElementActionTypeCopy, _WKElementActionTypeOpen,
_WKElementActionTypeSaveImage, and _WKElementActionTypeShare.

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]): Added to
handle the subset of standard element actions that flow through
WKActionSheetAssistantDelegate. Used a boolean parameter to decide whether the delegate
should start and stop an interaction when handling the action.

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

(-[WKContentView _highlightLongPressRecognized:]):
(-[WKContentView actionSheetAssistant:openElementAtLocation:]): Renamed
-_attemptClickAtLocation:modifierFlags: to -_attemptSyntheticClickAtLocation:modifierFlags:.
(-[WKContentView _attemptSyntheticClickAtLocation:modifierFlags:]): Changed to call
WebPageProxy::attemptSyntheticClick instead of WebPageProxy::handleTap.
(-[WKContentView _simulateElementAction:atLocation:]): Set
_layerTreeTransactionIdAtLastInteractionStart to better simulate context menu interactions.

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

(WebKit::WebPageProxy::attemptSyntheticClick):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::attemptSyntheticClick): Renamed handleTap to attemptSyntheticClick. If the
node responding to clicks matches the node found on interaction start (m_interactionNode),
call WebPage::completeSyntheticClick directly.

Tools:

Added an API test.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/ElementActionTests.mm: Added.
  • TestWebKitAPI/Tests/ios/link-with-hover-menu.html: Added.
12:57 PM Changeset in webkit [263471] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo] -webkit-font-smoothing:antialiased makes fonts blurry
https://bugs.webkit.org/show_bug.cgi?id=206573

Reviewed by Alex Christensen.

After -webkit-font-smoothing support was added to Cairo port in
r254506 (Bug 54763), fonts looks jaggy and faint in WinCairo port
in some web sites using -webkit-font-smoothing:antialiased, for
example Google News, GMail, https://apple.com.

'antialiased' of -webkit-font-smoothing was mapped to
CAIRO_ANTIALIAS_GRAY. And, CAIRO_ANTIALIAS_GRAY is mapped to
ANTIALIASED_QUALITY in cairo-win32-font.c. ANTIALIASED_QUALITY
makes fonts jaggy and faint.

Use CAIRO_ANTIALIAS_SUBPIXEL instead of CAIRO_ANTIALIAS_GRAY for
'antialiased' as well as 'subpixel-antialiased' does.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawGlyphsToContext): Don't use CAIRO_ANTIALIAS_GRAY for Win32 Cairo.

12:51 PM Changeset in webkit [263470] by Alexey Shvayka
  • 11 edits
    3 adds
    2 deletes in trunk

Add DFG/FTL fast path for GetPrototypeOf based on OverridesGetPrototype flag
https://bugs.webkit.org/show_bug.cgi?id=213191

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/object-get-prototype-of-object-rare.js: Added.
  • stress/dfg-object-prototype-of.js: Removed.
  • stress/dfg-reflect-get-prototype-of.js: Removed.
  • stress/ftl-object-get-prototype-of.js: Added.
  • stress/ftl-reflect-get-prototype-of.js: Added.

Source/JavaScriptCore:

This patch:

  1. Introduces loadInlineOffset LLInt macro (64-bit only) and utilizes it in get_prototype_of since we assert that knownPolyProtoOffset is an inline offset.
  1. Brings baseline JIT fast path to 32-bit builds, progressing super-getter.js microbenchmark by a factor of 10 (w/o DFG).
  1. Adds GetPrototypeOf DFG/FTL fast paths that leverage OverridesGetPrototype type info flag, advancing provided rare objects microbenchmark by ~46% (~37% w/o FTL). Also, cleans up existing DFG fast path by using AssemblyHelpers::loadValue().
  1. Extracts AssemblyHelpers::emitLoadPrototype() and uses it in baseline JIT, DFG, and InstanceOfGeneric access case. With this change, instanceof access case handles all GetPrototypeOf overrides (before: only Proxy objects), which is more correct, yet not observable enough to provide a test case. instanceof microbenchmarks are neutral.
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetPrototypeOf):

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

(JSC::FTL::DFG::LowerDFGToB3::compileGetPrototypeOf):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadPrototype):

  • jit/AssemblyHelpers.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_prototype_of):

  • llint/LowLevelInterpreter64.asm:
12:51 PM Changeset in webkit [263469] by Russell Epstein
  • 2 edits in branches/safari-610.1.18-branch/Source/WebKit

Cherry-pick r263462. rdar://problem/64711607

Fix the build once RBSProcessLimitations.h is introduced
https://bugs.webkit.org/show_bug.cgi?id=213562

Reviewed by Wenson Hsieh.

  • Platform/spi/ios/RunningBoardServicesSPI.h: We can't forward-declare Objective-C SPI if it actually exists without inspiring duplicate definition errors.

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

12:45 PM Changeset in webkit [263468] by Alan Coon
  • 8 edits in branches/safari-610.1.18-branch/Source

Versioning.

WebKit-610.1.18.1

12:16 PM Changeset in webkit [263467] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Remove expectation for css3/font-variant-petite-caps-synthesis-coverage.html and css3/font-variant-small-caps-synthesis-coverage.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213569

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-24

  • platform/mac/TestExpectations:
11:37 AM Changeset in webkit [263466] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r260360): easing curves are broken on JS-originated animations
https://bugs.webkit.org/show_bug.cgi?id=213495
<rdar://problem/64649747>

Reviewed by Darin Adler.

Source/WebCore:

Prior to Web Animations, there was no way for an animation to set an animation-wide timing function while
also setting a per-keyframe timing function. As such GraphicsLayerCA would sometimes decide to set the
timing function on keyframes or on the entire CAAnimation. However, we can no longer do this with Web
Animations where an animation can set an animation-wide timing function and also keyframe-specific
timing functions.

In this patch we create CAKeyframeAnimation objects for any animation that has at least two keyframes
if Web Animations are enabled, whereas the legacy code path requires at least three keyframes. We allow
PlatformCAAnimation::setTimingFunction() to be called in the Web Animations code path only under
GraphicsLayerCA::setupAnimation() while leaving the only call sites in place only for the legacy code
path.

Finally, we modify GraphicsLayerCA::timingFunctionForAnimationValue() to only ever return a keyframe-
specific timing function or fall back to a default linear timing function in the Web Animations code
path, leaving the function to behave the same way as it used to in the legacy code path.

Test: webanimations/accelerated-animation-with-easing.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::isKeyframe):
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

LayoutTests:

Add a new test that checks that various ways of setting the easing timing function on a JS-originated
animation always yield the same visible animation behavior.

  • webanimations/accelerated-animation-with-easing-expected.html: Added.
  • webanimations/accelerated-animation-with-easing.html: Added.
11:01 AM Changeset in webkit [263465] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening

  • platform/gtk/TestExpectations: webrtc/disable-encryption.html is still flaky.
10:58 AM Changeset in webkit [263464] by graouts@webkit.org
  • 11 edits
    2 adds in trunk

REGRESSION: Delayed updating of the parallax images on pacificvoyages.net/posts
https://bugs.webkit.org/show_bug.cgi?id=212213
<rdar://problem/63497946>

Reviewed by Simon Fraser.

Source/WebCore:

Test: webanimations/css-transition-retargeting-during-ready-promise.html

When a transition's ready promise is resolved, its start time is the same as the timeline's current time. This means
that retargeting a transition at that moment will yield a progress of zero even though the transition was started before
the current animation frame. This means that retargeting a property on each page rendering may start a new transition
with the same from value, which can have an undesirable effect such as on the website reported in this bug.

We now keep track of the timeline time when a transition is created and use this time as a start time override when
applying the animation to compute the before-change style in AnimationTimeline::updateCSSTransitionsForElementAndProperty().

To do so, we pass an optional start time all the way from WebAnimation::resolve() through to WebAnimation::currentTime() and
via the animation effect timing computation.

  • animation/AnimationEffect.cpp:

(WebCore::AnimationEffect::getBasicTiming const):
(WebCore::AnimationEffect::getComputedTiming const):

  • animation/AnimationEffect.h:
  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::CSSTransition):
(WebCore::CSSTransition::resolve):

  • animation/CSSTransition.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):

  • animation/KeyframeEffect.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::currentTime const):
(WebCore::WebAnimation::resolve):

  • animation/WebAnimation.h:

LayoutTests:

Add a new test that checks that retargeting a transition while its "ready" promise is resolved
uses a before-change style that will differ from the from style.

  • webanimations/css-transition-retargeting-during-ready-promise-expected.txt: Added.
  • webanimations/css-transition-retargeting-during-ready-promise.html: Added.
10:19 AM Changeset in webkit [263463] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Remove expectation for css3/filters/null-effect-check.html as it is passing.
https://bugs.webkit.org/show_bug.cgi?id=122234

Unreviewed test gardening

Patch by Karl Rackler <Karl Rackler> on 2020-06-24

  • platform/mac-wk2/TestExpectations:
10:05 AM Changeset in webkit [263462] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the build once RBSProcessLimitations.h is introduced
https://bugs.webkit.org/show_bug.cgi?id=213562

Reviewed by Wenson Hsieh.

  • Platform/spi/ios/RunningBoardServicesSPI.h:

We can't forward-declare Objective-C SPI if it actually exists
without inspiring duplicate definition errors.

9:38 AM Changeset in webkit [263461] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

Removed the 50ms rescheduling timeout from callOnMainThread
https://bugs.webkit.org/show_bug.cgi?id=213560

Reviewed by Anders Carlsson.

This is a step toward making the engine less flaky by unifying
callOnMainThread with RunLoop::dispatch.

The timeout was added in r40888 to avoid a hang under heavy postMessage
load. A few reasons this isn’t the right approach anymore:

(1) postMessage has migrated to EventLoop, which does its own
scheduling.

(2) postMessage does not use the application process RunLoop in Modern
WebKit.

(3) Delay is not a sufficient solution to a messaging hang — because
you’ll just OOM crash instead. The original author noted this problem
in bug 23705 but never resolved it; and we rediscovered it in r233111.

I verified manually that the r40888 version of
fast/workers/worker-timeout.html does not hang.

  • wtf/MainThread.cpp:

(WTF::dispatchFunctionsFromMainThread):

9:35 AM Changeset in webkit [263460] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Remove now-invalid assertion after r263441
https://bugs.webkit.org/show_bug.cgi?id=213527

The alternative service storage directory is now null when HTTP/3 is disabled, not just in private browsing.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

9:29 AM Changeset in webkit [263459] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Canvas/philip/tests/2d.line.cap.round.html is no longer failing - remove expectations
https://bugs.webkit.org/show_bug.cgi?id=213561

Unreviewed test gardening

Patch by Karl Rackler <Karl Rackler> on 2020-06-24

  • platform/mac/TestExpectations:
8:54 AM Changeset in webkit [263458] by eric.carlson@apple.com
  • 7 edits
    2 adds in trunk

Don't claim to support fullscreen mode unless fullScreenEnabled setting is enabled
https://bugs.webkit.org/show_bug.cgi?id=213142
<rdar://63753327>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-supports-fullscreen.html

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::supportsFullscreen const): Check settings.fullScreenEnabled.

LayoutTests:

  • media/video-supports-fullscreen-expected.txt: Added.
  • media/video-supports-fullscreen.html: Added.
  • media/video-fullscreen-only-playback.html: Don't set fullScreenEnabled to false.
  • TestExpectations: Skip the test, it is WK2-only.
  • platform/wk2/TestExpectations: Expect the test to pass.
8:36 AM Changeset in webkit [263457] by commit-queue@webkit.org
  • 4 edits in trunk

[GStreamer] webrtc/disable-encryption.html is a crashing flaky
https://bugs.webkit.org/show_bug.cgi?id=211166
<rdar://problem/63223973>

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-24
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Simplify the process to create internal appsrc elements. I suspect something bad was ongoing
with these moves of GRefPtr.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebCore::_WebKitMediaStreamSrc::SourceData::ensureAppSrc):
(WebCore::webkitMediaStreamSrcSetupAppSrc):
(WebCore::_WebKitMediaStreamSrc::SourceData::setSrc): Deleted.

LayoutTests:

  • platform/gtk/TestExpectations: Unflag webrtc/disable-encryption.html.
8:24 AM Changeset in webkit [263456] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r263328): Crash in bool WTF::WeakHashSet<WebKit::AudioSessionRoutingArbitratorProxy, WTF::EmptyCounter>::contains<WebKit::AudioSessionRoutingArbitratorProxy> const
https://bugs.webkit.org/show_bug.cgi?id=213526
<rdar://problem/64591777>

Reviewed by Eric Carlson.

Clear the m_routingArbitrator before WebProcessPool::disconnectProcess(), not after.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):

8:04 AM Changeset in webkit [263455] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Style resolution sometimes fails to create all style resolvers for shadow trees.
https://bugs.webkit.org/show_bug.cgi?id=212946
<rdar://problem/60916215>>

Reviewed by Anders Carlsson.

This can cause problems later.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Scope::Scope):

Ensure all style resolvers are constructed before traversing.

7:48 AM Changeset in webkit [263454] by caitp@igalia.com
  • 2 edits
    2 adds in trunk

[JSC] add microbenchmark for op_get_private_name
https://bugs.webkit.org/show_bug.cgi?id=213544

Reviewed by Yusuke Suzuki.

Add machinery to add --usePrivateClassFields flag in a family of
microbenchmarks.

  • Scripts/run-jsc-benchmarks:
7:07 AM Changeset in webkit [263453] by youenn@apple.com
  • 9 edits
    2 adds in trunk/Source

Add logging to WebRTC video pipeline to check for frame rate stability
https://bugs.webkit.org/show_bug.cgi?id=213369

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add logging for encoded frames taking a long time to be received.
We log the time take to receive the frame, the time since previous frame, the byte size of the frame.
We compute that a frame takes too long by checking whether it is delayed by more than three expected frames.

  • Source/webrtc/video/rtp_video_stream_receiver.cc:
  • Source/webrtc/video/rtp_video_stream_receiver.h:

Source/WebCore:

Add a FrameRateMonitor class to compute frame stability.
Use this class at end of the video pipeline (LocalSampleBufferDisplayLayer).
Log messages in case a frame gets frozen at LocalSampleBufferDisplayLayer time.
We compute that a frame takes too long by checking whether it is delayed by more than three expected frames.
This logging is complemented with encoded frame reception logging (at the beginning of the video pipeline)
and WebRTC stats logging (freezeCount, totalFreezeDuration, shortly after decoding the frames).

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

(WebCore::FrameRateMonitor::newFrame):

  • platform/FrameRateMonitor.h: Added.

(WebCore::FrameRateMonitor::frameRate const):
(WebCore::FrameRateMonitor::frameCount const):
(WebCore::FrameRateMonitor::FrameRateMonitor):

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

(WebCore::LocalSampleBufferDisplayLayer::LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSampleBuffer):
(WebCore::LocalSampleBufferDisplayLayer::onFrameRateNotification):

  • platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.h:

Unified build fix.

5:09 AM Changeset in webkit [263452] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

[ iOS macOS ] http/tests/resourceLoadStatistics/grandfathering-database.html is a rare flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=213553

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:24 AM Changeset in webkit [263451] by svillar@igalia.com
  • 3 edits
    4 adds in trunk/LayoutTests

[WebXR] Unreviewed gardening. Updated expectations and new passing tests.

LayoutTests/imported/w3c:

  • web-platform-tests/webxr/navigator_xr_sameObject.https-expected.txt: Added.
  • web-platform-tests/webxr/xrFrame_session_sameObject.https-expected.txt: Added.
  • web-platform-tests/webxr/xrRigidTransform_constructor.https-expected.txt: Added.
  • web-platform-tests/webxr/xrSession_prevent_multiple_exclusive.https-expected.txt: Added.

LayoutTests:

Several tests are now passing on Debug. We're also adding some missing expectations
for skipped tests that were really passing.

  • platform/wpe/TestExpectations:
4:11 AM Changeset in webkit [263450] by Alexey Shvayka
  • 3 edits in trunk/Source/WebCore

Remove [CallbackNeedsOperatorEqual] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=213538

Reviewed by Chris Dumez.

This change removes now unused [CallbackNeedsOperatorEqual] extended attribute.
It was added to accommodate MediaQueryListListener, which was removed in r260243.

We are safe to remove [CallbackNeedsOperatorEqual] since its implementation
expects certain constructor signature, and callback interfaces are considered
legacy by spec authors anyway.

Also, this patch removes 2 resolved FIXMEs:

  1. OrdinaryDefineOwnProperty() is performed correctly, no dynamic dispatch there.
  2. Set() is performed correctly, with false as last argument. (changed in https://github.com/heycam/webidl/pull/832, covered by WPT)

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDefineOwnProperty):
(GenerateAttributeSetterBodyDefinition):
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):

  • bindings/scripts/IDLAttributes.json:
1:54 AM Changeset in webkit [263449] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.29.2

WebKitGTK 2.29.2

1:53 AM Changeset in webkit [263448] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.2 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.29.2.
1:50 AM Changeset in webkit [263447] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[WebXR] Fix PlatformXR initialization/destruction
https://bugs.webkit.org/show_bug.cgi?id=213509

Reviewed by Youenn Fablet.

There were two different issues, one at creation time and the other one at destruction. At creation
time we were not calling construct() for the LazyNeverDestroyed object. That was making the WebProcess
crash in Debug builds. At destruction time we were calling xrDestroyInstance() without checking that the
passed instance was a valid one, although OpenXR implementations deal with it the spec is pretty clear.

  • platform/xr/PlatformXR.h: Mark LazyNeverDestroyed as friend and default constructor&destructor.
  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::Instance::Impl::~Impl): Check that instance is not XR_NULL_HANDLE before destroying.
(PlatformXR::Instance::singleton): Call construct() on the Lazy instance.

1:44 AM Changeset in webkit [263446] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Use signalling thread as worker thread instead of network thread
https://bugs.webkit.org/show_bug.cgi?id=213512

Reviewed by Eric Carlson.

This is probably better since network thread is always busy
while the siganlling thread is mostly busy at negotiation time.
This also aligns with Chromium current setup.
No change of behavior.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnectionFactory):

1:08 AM Changeset in webkit [263445] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Clobberize misses write(Heap) report in some nodes
https://bugs.webkit.org/show_bug.cgi?id=213525
<rdar://problem/64642067>

Reviewed by Mark Lam.

JSTests:

  • stress/missing-clobber-top-validation.js: Added.

Source/JavaScriptCore:

In some DFG nodes, clobberize phase misses clobberTopFunctor call while it is write(Heap),
which confuses clobberizing validation.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

12:55 AM Changeset in webkit [263444] by Carlos Garcia Campos
  • 26 edits in trunk

[GTK][WPE] Add API to allow applications to handle the HTTP authentication credential storage
https://bugs.webkit.org/show_bug.cgi?id=213177

Reviewed by Michael Catanzaro.

Source/WebKit:

Add API to disable the internal credential storage support when building with libsecret. And add new API to
WebKitAuthenticationRequest to allow applications to use their own credentials storage:

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

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::persistentCredentialStorageEnabled const):
(WebKit::NetworkDataTaskSoup::authenticate):
(WebKit::NetworkDataTaskSoup::continueAuthenticate):
(WebKit::NetworkDataTaskSoup::didGetHeaders):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::setPersistentCredentialStorageEnabled):

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):

  • NetworkProcess/soup/NetworkSessionSoup.h:
  • UIProcess/API/glib/WebKitAuthenticationRequest.cpp:

(webkitAuthenticationRequestDispose):
(webkit_authentication_request_class_init):
(webkitAuthenticationRequestCreate):
(webkitAuthenticationRequestDidAuthenticate):
(webkitAuthenticationRequestGetProposedCredential):
(webkit_authentication_request_can_save_credentials):
(webkit_authentication_request_set_can_save_credentials):
(webkit_authentication_request_get_proposed_credential):
(webkit_authentication_request_set_proposed_credential):
(webkit_authentication_request_authenticate):
(webkit_authentication_request_cancel):

  • UIProcess/API/glib/WebKitAuthenticationRequestPrivate.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewCompleteAuthenticationRequest):
(webkitWebViewLoadChanged):
(webkitWebViewLoadFailed):
(webkitWebViewLoadFailedWithTLSErrors):
(webkitWebViewHandleAuthenticationChallenge):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkit_website_data_manager_set_persistent_credential_storage_enabled):
(webkit_website_data_manager_get_persistent_credential_storage_enabled):

  • UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:

(webkitAuthenticationDialogInitialize):

  • UIProcess/API/gtk/WebKitAuthenticationRequest.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitAuthenticationRequest.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::persistentCredentialStorageEnabled const):

  • UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):
(WebKit::WebsiteDataStore::setPersistentCredentialStorageEnabled):

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Tools:

Update the authentication tests to check the new API.

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(testWebViewAuthenticationCancel):
(testWebViewAuthenticationLoadCancelled):
(testWebViewAuthenticationFailure):
(testWebViewAuthenticationNoCredential):
(testWebViewAuthenticationEphemeral):
(testWebViewAuthenticationStorage):
(testWebViewAuthenticationSuccess):
(testWebViewAuthenticationEmptyRealm):
(serverCallback):
(beforeAll):

12:45 AM Changeset in webkit [263443] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Do not set the default configuration again when creating the WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=213340

Reviewed by Michael Catanzaro.

WebsiteDataStoreConfiguration already initializes on construction with the default paths, so we only need to
override the ones set by the user.

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetDataStore):

12:37 AM Changeset in webkit [263442] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add referrerpolicy attribute support for <link>
https://bugs.webkit.org/show_bug.cgi?id=213342

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

Give the referrer policy member a clear default.

  • loader/LinkLoader.h:

Jun 23, 2020:

11:04 PM Changeset in webkit [263441] by commit-queue@webkit.org
  • 11 edits in trunk

Make HTTP/3 experimental feature work on iOS and only create storage directory if enabled
https://bugs.webkit.org/show_bug.cgi?id=213527

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-23
Reviewed by Geoffrey Garen.

Source/WebKit:

Reading the experimental feature wasn't working on iOS because the user defaults prefix is different.
Also, only resolve and create the directory if it is enabled. This should help with startup time, which
has to wait for all directories to be resolved and created. See rdar://problem/64263228 which this should help with.
We also respect the system default unless explicitly turned on, which should make it easier for CFNetwork to change things.

I added an API test that verifies that the default alt-svc storage directory is not created when we don't want it to be.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):
(WebKit::WebsiteDataStore::http3Enabled):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

9:38 PM Changeset in webkit [263440] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations after r263437.

  • platform/gtk/TestExpectations:
8:29 PM Changeset in webkit [263439] by Chris Dumez
  • 17 edits
    20 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/domparsing from upstream
https://bugs.webkit.org/show_bug.cgi?id=213540

Reviewed by Sam Weinig.

Resync web-platform-tests/domparsing from upstream 1001bb6b2d6b9.

  • web-platform-tests/domparsing/*: Updated.
8:27 PM Changeset in webkit [263438] by Chris Dumez
  • 10 edits in trunk/LayoutTests

Stop using assert_throws() under LayoutTests/http/wpt
https://bugs.webkit.org/show_bug.cgi?id=213542

Reviewed by Sam Weinig.

Stop using assert_throws() under LayoutTests/http/wpt since it has been dropped
from testharness.js upstream, in favor of assert_throws_dom() / assert_throws_js()
variants.

  • http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap.html:
  • http/wpt/beacon/beacon-readablestream.html:
  • http/wpt/fetch/request-abort.html:
  • http/wpt/geometry/DOMMatrix-from-to-typed-arrays.html:
  • http/wpt/offscreen-canvas/offscreencanvas.constructor.html:
  • http/wpt/offscreen-canvas/transferToImageBitmap-empty.html:
  • http/wpt/webaudio/audiocontext-stopped.html:
  • http/wpt/webauthn/resources/util.js:
  • http/wpt/workers/queue-microtask.any.js:

(test):

8:25 PM Changeset in webkit [263437] by Chris Dumez
  • 179 edits
    75 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/IndexedDB from upstream
https://bugs.webkit.org/show_bug.cgi?id=213541

Reviewed by Sam Weinig.

Resync web-platform-tests/IndexedDB from upstream 1001bb6b2d6b9.

  • web-platform-tests/IndexedDB/*: Updated.
7:20 PM Changeset in webkit [263436] by svillar@igalia.com
  • 3 edits in trunk/LayoutTests

[ macOS ] fullscreen/video-inside-flex-item.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213517

Reviewed by Simon Fraser.

Video is rendered differently depending on the configuration/platform. Instead of checking the actual
size in pixels it's better to verify that the size after cancelling fullscreen is the same as before
going to fullscreen.

  • fullscreen/video-inside-flex-item-expected.txt:
  • fullscreen/video-inside-flex-item.html:
6:20 PM Changeset in webkit [263435] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Multicol] Reset the childrenInline state on the RenderBlockFlow when destroying the multicolumn context
https://bugs.webkit.org/show_bug.cgi?id=213535
<rdar://problem/64541835>

Reviewed by Simon Fraser.

The "childrenInline" flags tells the tree builder whether a newly inserted inline content needs an anonymous block wrapper or not.
RenderBlockFlows with multicolumn content have this flag set to false as the RenderMultiColumnFlowThread is a block renderer.
As part of the mulicolumn context destruction, we move all the descendants from RenderMultiColumnFlowThread back to
the original parent (the parent of the RenderMultiColumnFlowThread renderer).
This patch sets this flag back to the initial value of true so that we don't end up constructing redundant wrappers for the incoming inline content.

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):

6:17 PM Changeset in webkit [263434] by weinig@apple.com
  • 2 edits in trunk/LayoutTests

[ iOS Release ] imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.html & imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=213516
<rdar://problem/64642790>

  • platform/ios/TestExpectations:

Mark a few WebSocket tests as flakey on iOS test runners.

5:56 PM Changeset in webkit [263433] by Alan Coon
  • 1 copy in tags/Safari-610.1.19

Tag Safari-610.1.19.

5:27 PM Changeset in webkit [263432] by ggaren@apple.com
  • 5 edits in trunk/Source

Remove WTF::setMainThreadCallbacksPaused
https://bugs.webkit.org/show_bug.cgi?id=213112

Reviewed by Tim Horton.

Source/WebCore:

  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::setJavaScriptPaused):

Source/WTF:

setMainThreadCallbacksPaused pauses all uses of callOnMainThread. That
has too many side-effects. For example, you can scroll, but you can't
paint any large images (since they do async image decoding).

Meanwhile, setMainThreadCallbacksPaused doesn't pause RunLoop::dispatch.
So, other things don't get paused.

Let's just rely on suspending the ScriptExecutionContext and document
event queue. That should suspend JavaScript-visible stuff without
suspending engine-critical stuff.

  • wtf/MainThread.cpp:

(WTF::dispatchFunctionsFromMainThread):
(WTF::setMainThreadCallbacksPaused): Deleted.

  • wtf/MainThread.h:
4:35 PM Changeset in webkit [263431] by Jonathan Bedard
  • 4 edits in trunk/Tools

[Big Sur] Add 11.0 version to scripts
https://bugs.webkit.org/show_bug.cgi?id=213532
<rdar://problem/64663032>

Reviewed by Tim Horton.

  • Scripts/run-javascriptcore-tests:

(configurationForUpload): Make version checks more explicit, add Big Sur.

  • Scripts/webkitpy/common/version_name_map.py:

(VersionNameMap.init): Add Big Sur.

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

(TestExpectationParser): Ditto.

4:24 PM Changeset in webkit [263430] by Truitt Savell
  • 2 edits in trunk/LayoutTests

canvas/philip/tests/2d.gradient.interpolate.solid.html is no longer failing - remove expectations.
https://bugs.webkit.org/show_bug.cgi?id=213537

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-23

  • platform/mac/TestExpectations:
4:21 PM Changeset in webkit [263429] by Devin Rousso
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: add a tooltip to the icon of overridden resources to clarify meaning
https://bugs.webkit.org/show_bug.cgi?id=213531

Reviewed by Brian Burg.

  • UserInterface/Views/LocalResourceOverrideWarningView.js:

(WI.LocalResourceOverrideWarningView.prototype.initialLayout):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype._responseSourceDisplayString):
Rephrase "local resource override" to just "local override" to match the reference page name.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._populateNameCell.createIconElement):
(WI.NetworkTableContentView.prototype._populateNameCell):
(WI.NetworkTableContentView.prototype._populateTransferSizeCell):
Add a title for the special transfer size cases, such as for (local override).

  • UserInterface/Views/ResourceTreeElement.js:

(WI.ResourceTreeElement.prototype._updateIcon):

  • UserInterface/Views/ResourceSizesContentView.js:

(WI.ResourceSizesContentView.prototype.initialLayout):

  • UserInterface/Views/TimelineDataGridNode.js:

(WI.TimelineDataGridNode.prototype.createCellContent):
(WI.TimelineDataGridNode.prototype.generateIconTitle): Added.

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WI.ResourceTimelineDataGridNode.prototype.get data):
(WI.ResourceTimelineDataGridNode.prototype.generateIconTitle): Added.
Add a title to the overridden resource icon that clarifies the fact that the resource was
overridden by a local override.

  • UserInterface/Views/LayoutTimelineDataGridNode.js:

(WI.LayoutTimelineDataGridNode.prototype.get data):
Cache the initiatorCallFrame in the source column as well as the initiator column, as
it is used by the general timeline overview table.

  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.createCell):
(WI.DataGridNode.prototype.generateIconTitle): Added.
Provide a way to set a title on just the icon.

  • Localizations/en.lproj/localizedStrings.js:
3:52 PM Changeset in webkit [263428] by Wenson Hsieh
  • 7 edits in trunk

REGRESSION (r244633): Mail flashes when copying text in an email
https://bugs.webkit.org/show_bug.cgi?id=213529
<rdar://problem/55025522>

Reviewed by Tim Horton.

Source/WebKit:

When copying a text selection in Mail conversation view, Mail uses injected bundle hooks to supply additional
metadata before writing to the pasteboard. Grabbing this data involves temporarily expanding any collapsed
blockquotes that appear in the mail message, before re-collapsing them after we finish gathering data to be
written to the pasteboard.

Prior to r244633, the size of the document while expanding collapsed content would not be propagated to the
WKWebView, since intrinsic content size changes were batched and sent ahead of the next drawing area flush.
After r244633, however, updates are now sent every time the layout size changes. This was done to ensure that
the intrinsic content size was always up to date before sending the first layout milestone to the UI process.

To preserve the intent of r244633 (with respect to the first layout milestone) as well as intrinsic content size
behavior prior to r244633 after performing layout, we reintroduce the mechanism for batching intrinsic size
updates until the next flush, but keep the out-of-band mechanism for immediately sending an up-to-date intrinsic
size to the UI process before firing the first layout milestone.

Test: WebKit.AutoLayoutBatchesUpdatesWhenInvalidatingIntrinsicContentSize

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::intrinsicContentsSizeChanged const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateIntrinsicContentSizeIfNeeded):

If we have a pending intrinsic content size update, clear it out here so that an out-of-band call to
updateIntrinsicContentSizeIfNeeded doesn't get overridden by an older intrinsic content size that was previously
scheduled.

(WebKit::WebPage::flushPendingIntrinsicContentSizeUpdate):

Add a helper method to send any pending intrinsic content size update.

(WebKit::WebPage::scheduleIntrinsicContentSizeUpdate):

Add a helper method to schedule an intrinsic content size update for the next tiled drawing area flush.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updateRendering):

Tools:

Add an API test to verify that temporarily changing the height of the document before restoring it to the
original value does not cause intrinsic content size to be invalidated.

  • TestWebKitAPI/Tests/WebKitCocoa/AutoLayoutIntegration.mm:

(-[AutoLayoutWKWebView invalidateIntrinsicContentSize]):
(-[AutoLayoutWKWebView setInvalidatedIntrinsicContentSizeBlock:]):
(-[AutoLayoutWKWebView invalidatedIntrinsicContentSizeBlock]):

3:50 PM Changeset in webkit [263427] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, update xcfilelist files after some recent WebXR changes.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
3:47 PM Changeset in webkit [263426] by aestes@apple.com
  • 10 edits in trunk/Source/WebKit

[Apple Pay] WebPaymentCoordinatorProxy can be destroyed without dismissing its authorization presenter
https://bugs.webkit.org/show_bug.cgi?id=213423
<rdar://problem/60416221>

Reviewed by Youenn Fablet.

When a website completes a payment session, WebPaymentCoordinatorProxy would set its m_state
to Idle by calling didReachFinalState, but would wait to call hidePaymentUI until the
payment authorization presenter calls its presenterDidFinish callback. This allows the
presenter to display a final message to the user before dismissing. As a catch-all,
~WebPaymentCoordinatorProxy would call hidePaymentUI, but only if m_state wasn't Idle. If a
WebPaymentCoordinatorProxy was destroyed after a website completed a payment session but
before the presenter called presenterDidFinish, hidePaymentUI would never be called.

This patch addresses this by simplifying the logic for completing or canceling a payment
session. It's based on the following observations:

  1. With the exception of the case described above, every caller of didReachFinalState would also call hidePaymentUI immediately beforehand. That means that we can move the calls to hidePaymentUI inside didReachFinalState. For the completePaymentSession case, rather than call didReachFinalState without dismissing the UI, we enter a new Completing state, then call didReachFinalState either in ~WebPaymentCoordinatorProxy or presenterDidFinish.
  1. didCancelPaymentSession is really a special case of didReachFinalState that also sends the DidCancelPaymentSession message to cancel active sessions in the web process. We can teach didReachFinalState to send this message when necessary and remove didCancelPaymentSession.
  1. PaymentAuthorizationPresenter stored a "did reach final state" boolean on payment completion and passed this value back to the client in the presenterDidFinish callback. WebPaymentCoordinatorProxy used this to determine whether to cancel an active session by calling didCancelPaymentSession or clean up a completed session by calling hidePaymentUI. With the addition of the Completing state and the merging of didCancelPaymentSession and hidePaymentUI into didReachFinalState, we can get rid of this final state tracking in PaymentAuthorizationPresenter and unconditionally call didReachFinalState in the presenterDidFinish callback.

No new tests possible. A manual test case is described in <rdar://problem/60416221>.

  • Platform/cocoa/PaymentAuthorizationPresenter.h: Removed the didReachFinalState argument

from Client::presenterDidFinish.

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::PaymentAuthorizationPresenter::completePaymentSession): Changed to call
-[WKPaymentAuthorizationDelegate completePaymentSession:errors:].

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm: Removed the _didReachFinalState ivar.

(-[WKPaymentAuthorizationDelegate completePaymentSession:errors:]): Renamed from
-completePaymentSession:errors:didReachFinalState:. Stopped setting _didReachFinalState.
(-[WKPaymentAuthorizationDelegate invalidate]): Changed to call
-completePaymentSession:errors:.
(-[WKPaymentAuthorizationDelegate _didAuthorizePayment:completion:]): Ditto.
(-[WKPaymentAuthorizationDelegate _didFinish]): Stopped passing the value of
_didReachFinalState to PaymentAuthorizationPresenter::Client::presenterDidFinish.
(-[WKPaymentAuthorizationDelegate completePaymentSession:errors:didReachFinalState:]):
Renamed to -completePaymentSession:errors:.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI): Replaced calls to
didCancelPaymentSession with didReachFinalState.
(WebKit::WebPaymentCoordinatorProxy::completePaymentSession): Set m_state to Completing
rather than call didReachFinalState.
(WebKit::WebPaymentCoordinatorProxy::abortPaymentSession): Removed call to hidePaymentUI
since didReachFinalState was already being called.
(WebKit::WebPaymentCoordinatorProxy::cancelPaymentSession): Replaced call to
didCancelPaymentSession with didReachFinalState.
(WebKit::WebPaymentCoordinatorProxy::presenterDidFinish): Called didReachFinalState
unconditionally now that the didReachFinalState boolean has been removed.
(WebKit::WebPaymentCoordinatorProxy::canBegin const): Returned false for State::Completing.
(WebKit::WebPaymentCoordinatorProxy::canCancel const): Ditto.
(WebKit::WebPaymentCoordinatorProxy::canCompletePayment const): Ditto.
(WebKit::WebPaymentCoordinatorProxy::canAbort const): Ditto.
(WebKit::WebPaymentCoordinatorProxy::didReachFinalState): Added an early return if m_state
is already Idle. Sent the DidCancelPaymentSession message if canCancel is true. Called
platformHidePaymentUI before clearing m_authorizationPresenter and setting m_state to Idle.
(WebKit::WebPaymentCoordinatorProxy::didCancelPaymentSession): Deleted.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:

(WebKit::WebPaymentCoordinatorProxy::didReachFinalState): Added a PaymentSessionError&& arg.
(WebKit::WebPaymentCoordinatorProxy::didCancelPaymentSession): Deleted.

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::~WebPaymentCoordinatorProxy): Replaced call to
hidePaymentUI with didReachFinalState.

  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformHidePaymentUI): Renamed from hidePaymentUI.
Stopped clearing m_authorizationPresenter since didReachFinalState now does that.
(WebKit::WebPaymentCoordinatorProxy::hidePaymentUI): Renamed to platformHidePaymentUI.

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): Removed call to hidePaymentUI
since didReachFinalState was already being called.
(WebKit::WebPaymentCoordinatorProxy::platformHidePaymentUI): Renamed from hidePaymentUI.
Stopped clearing m_authorizationPresenter since didReachFinalState now does that.
(WebKit::WebPaymentCoordinatorProxy::hidePaymentUI): Renamed to platformHidePaymentUI.

3:34 PM Changeset in webkit [263425] by Alan Coon
  • 8 edits in branches/safari-610.1.19-branch/Source

Versioning.

WebKit-610.1.19

3:32 PM Changeset in webkit [263424] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-610.1.20

3:31 PM Changeset in webkit [263423] by Alan Coon
  • 1 copy in branches/safari-610.1.19-branch

New branch.

3:02 PM Changeset in webkit [263422] by Chris Dumez
  • 44 edits in trunk/Source

Remove a lot of unnecessary calls to Ref::copyRef()
https://bugs.webkit.org/show_bug.cgi?id=213533

Reviewed by Darin Adler.

Remove a lot of unnecessary calls to Ref::copyRef() now that Ref is copyable.

Source/WebCore:

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::addAll):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetAllIndexRecords):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::requestPutOrAdd):

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::create):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::scheduleTransactionCallback):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpgradeURL):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeAsynchronousUserAgentScriptInWorld):

  • crypto/SubtleCrypto.cpp:

(WebCore::SubtleCrypto::wrapKey):

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::create):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::create):

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::startAsyncDecodingQueue):

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

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::wrapCryptoKey):
(WebCore::WorkerGlobalScope::unwrapCryptoKey):

  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::matchRegistration):
(WebCore::WorkerSWClientConnection::getRegistrations):
(WebCore::WorkerSWClientConnection::whenRegistrationReady):
(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):

  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::queueTaskToFireFetchEvent):
(WebCore::ServiceWorkerThread::queueTaskToPostMessage):
(WebCore::ServiceWorkerThread::queueTaskToFireInstallEvent):
(WebCore::ServiceWorkerThread::queueTaskToFireActivateEvent):

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::go):
(WebDriver::Session::getCurrentURL):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::getTitle):
(WebDriver::Session::newWindow):
(WebDriver::Session::switchToFrame):
(WebDriver::Session::switchToParentFrame):
(WebDriver::Session::setWindowRect):
(WebDriver::Session::maximizeWindow):
(WebDriver::Session::minimizeWindow):
(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::getActiveElement):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::getElementText):
(WebDriver::Session::getElementTagName):
(WebDriver::Session::getElementRect):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::getElementProperty):
(WebDriver::Session::getElementCSSValue):
(WebDriver::Session::elementClick):
(WebDriver::Session::elementClear):
(WebDriver::Session::elementSendKeys):
(WebDriver::Session::getPageSource):
(WebDriver::Session::executeScript):
(WebDriver::Session::getAllCookies):
(WebDriver::Session::addCookie):
(WebDriver::Session::deleteCookie):
(WebDriver::Session::deleteAllCookies):
(WebDriver::Session::performActions):
(WebDriver::Session::takeScreenshot):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::requestResource):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::CompletionHandler<void):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccessInternal):
(WebKit::ResourceLoadStatisticsMemoryStore::clear):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::ResourceLoadStatisticsStore::updateCookieBlockingForDomains):
(WebKit::ResourceLoadStatisticsStore::removeAllStorageAccess):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::loadPing):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::renameOriginInWebsiteData):

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::readCachesFromDisk):
(WebKit::CacheStorage::Engine::fetchDirectoryEntries):
(WebKit::CacheStorage::Engine::clearAllCaches):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):
(WebKit::CacheStorage::Engine::clearCachesForOriginFromDirectories):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::clearDiskCache):

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::clearDiskCache):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreStatisticsResetToConsistentState):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _takeViewSnapshot]):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::selectOptionElement):
(WebKit::WebAutomationSession::setFilesForInputFileUpload):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::takeScreenshot):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleSynchronousMessage):
(WebKit::WebPageProxy::clearServiceWorkerEntitlementOverride):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):
(WebKit::WebProcessPool::seedResourceLoadStatisticsForTesting):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setMaxStatisticsEntries):
(WebKit::WebsiteDataStore::setPruneEntriesDownTo):
(WebKit::WebsiteDataStore::setGrandfatheringTime):
(WebKit::WebsiteDataStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::WebsiteDataStore::setPrevalentResource):
(WebKit::WebsiteDataStore::setPrevalentResourceForDebugMode):
(WebKit::WebsiteDataStore::setVeryPrevalentResource):
(WebKit::WebsiteDataStore::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::WebsiteDataStore::setSubframeUnderTopFrameDomain):
(WebKit::WebsiteDataStore::setSubresourceUnderTopFrameDomain):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectTo):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectTo):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectFrom):
(WebKit::WebsiteDataStore::clearPrevalentResource):
(WebKit::WebsiteDataStore::resetParametersToDefaultValues):
(WebKit::WebsiteDataStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):
(WebKit::WebsiteDataStore::scheduleCookieBlockingUpdate):
(WebKit::WebsiteDataStore::scheduleStatisticsAndDataRecordsProcessing):
(WebKit::WebsiteDataStore::setLastSeen):
(WebKit::WebsiteDataStore::mergeStatisticForTesting):
(WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):
(WebKit::WebsiteDataStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebsiteDataStore::setIsRunningResourceLoadStatisticsTest):
(WebKit::WebsiteDataStore::setNotifyPagesWhenTelemetryWasCaptured):
(WebKit::WebsiteDataStore::setTimeToLiveUserInteraction):
(WebKit::WebsiteDataStore::logUserInteraction):
(WebKit::WebsiteDataStore::clearUserInteraction):
(WebKit::WebsiteDataStore::setGrandfathered):
(WebKit::WebsiteDataStore::setUseITPDatabase):
(WebKit::WebsiteDataStore::setCrossSiteLoadWithLinkDecorationForTesting):
(WebKit::WebsiteDataStore::resetCrossSiteLoadsWithLinkDecorationForTesting):
(WebKit::WebsiteDataStore::deleteCookiesForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldDowngradeReferrerForTesting):
(WebKit::WebsiteDataStore::setThirdPartyCookieBlockingMode):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldEnbleSameSiteStrictEnforcementForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsFirstPartyWebsiteDataRemovalModeForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsToSameSiteStrictCookiesForTesting):
(WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode):
(WebKit::WebsiteDataStore::resetQuota):
(WebKit::WebsiteDataStore::clearAppBoundSession):
(WebKit::WebsiteDataStore::renameOriginInWebsiteData):
(WebKit::WebsiteDataStore::forwardAppBoundDomainsToITPIfInitialized):
(WebKit::WebsiteDataStore::setAppBoundDomainsForITP):
(WebKit::WebsiteDataStore::updateBundleIdentifierInNetworkProcess):
(WebKit::WebsiteDataStore::clearBundleIdentifierInNetworkProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::markAllLayersVolatile):

Source/WTF:

  • wtf/glib/SocketConnection.cpp:

(WTF::SocketConnection::waitForSocketWritability):

2:38 PM Changeset in webkit [263421] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Remove expectation for animations/missing-values-first-keyframe.html and animations/missing-values-last-keyframe.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=190032

Unreviewed test gardening.

2:30 PM Changeset in webkit [263420] by Russell Epstein
  • 1 copy in tags/Safari-609.3.5.1.3

Tag Safari-609.3.5.1.3.

2:28 PM Changeset in webkit [263419] by Alan Coon
  • 8 edits in branches/safari-610.1.15-branch/Source

Versioning.

WebKit-610.1.15.6

2:13 PM Changeset in webkit [263418] by Alan Coon
  • 1 copy in tags/Safari-610.1.17.2

Tag Safari-610.1.17.2.

2:06 PM Changeset in webkit [263417] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[curl] Unreviewed build fix for r263407
https://bugs.webkit.org/show_bug.cgi?id=213409
<rdar://problem/64654646>

  • NetworkProcess/curl/NetworkDataTaskCurl.h: Include <wtf/MonotonicTime.h>.
1:59 PM Changeset in webkit [263416] by Alan Coon
  • 8 edits in branches/safari-610.1.17-branch/Source

Versioning.

WebKit-610.1.17.2

1:11 PM Changeset in webkit [263415] by sbarati@apple.com
  • 3 edits
    1 copy in trunk/Source/WTF

Remove WKkIsTranslated once our bots are updated to the needed SDK
https://bugs.webkit.org/show_bug.cgi?id=213489

Reviewed by Tim Horton.

We can use the "sysctl.proc_translated" sysctl instead.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/TranslatedProcess.cpp: Added.

(WTF::isX86BinaryRunningOnARM):

  • wtf/TranslatedProcess.h:

(WTF::isX86BinaryRunningOnARM):

12:51 PM Changeset in webkit [263414] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[ews] Allow archiving 'jsc' product
https://bugs.webkit.org/show_bug.cgi?id=213518

Reviewed by Aakash Jain.

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct):

12:34 PM Changeset in webkit [263413] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-610.1.19

12:16 PM Changeset in webkit [263412] by Alan Coon
  • 1 copy in tags/Safari-610.1.18

Tag Safari-610.1.18.

12:00 PM Changeset in webkit [263411] by commit-queue@webkit.org
  • 4 edits in trunk

Expose already-available WKNavigationAction.request.HTTPBody through the API
https://bugs.webkit.org/show_bug.cgi?id=179077

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-23
Reviewed by Brady Eidson.

Source/WebKit:

When this bug was written, we needed to serialize the HTTP body to the UI process to expose it through the API.
The controversial part of this was done in r237639, so this just exposes the data that is already available.

Verified by an API test.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction request]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

11:59 AM Changeset in webkit [263410] by Chris Dumez
  • 66 edits in trunk/Source/WebCore

Drop AudioContextBase class
https://bugs.webkit.org/show_bug.cgi?id=213522

Reviewed by Geoffrey Garen.

Drop AudioContextBase class and have WebKitAudioContext subclass the new BaseAudioContext class instead.
We recently introduced BaseAudioContext to match the specification and keeping AudioContextBase is now confusing.

No new tests, this simplifies our code but there is no Web-facing behavior change.

  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::AnalyserNode):

  • Modules/webaudio/AnalyserNode.h:
  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):

  • Modules/webaudio/AudioBasicInspectorNode.h:
  • Modules/webaudio/AudioBasicProcessorNode.cpp:

(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):

  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::create):
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioContext.cpp:
  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::AudioDestinationNode):

  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::connect):
(WebCore::AudioNode::disconnect):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::enableOutputsIfNecessary):

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::context):
(WebCore::AudioNode::context const):

  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioNodeOutput.h:

(WebCore::AudioNodeOutput::context):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::AudioParam):

  • Modules/webaudio/AudioParam.h:
  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valueForContextTime):

  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::AudioSummingJunction):

  • Modules/webaudio/AudioSummingJunction.h:

(WebCore::AudioSummingJunction::context):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::BaseAudioContext):
(WebCore::BaseAudioContext::document const):
(WebCore::BaseAudioContext::scriptExecutionContext const):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::isOfflineContext const):
(WebCore::BaseAudioContext::isWebKitAudioContext const):
(WebCore::BaseAudioContext::currentSampleFrame const):
(WebCore::BaseAudioContext::currentTime const):
(WebCore::BaseAudioContext::sampleRate const):
(WebCore::BaseAudioContext::incrementConnectionCount):
(WebCore::BaseAudioContext::setAudioThread):
(WebCore::BaseAudioContext::isAudioThreadFinished):
(WebCore::BaseAudioContext::behaviorRestrictions const):
(WebCore::BaseAudioContext::addBehaviorRestriction):
(WebCore::BaseAudioContext::removeBehaviorRestriction):
(WebCore::BaseAudioContext::nextAudioNodeLogIdentifier):
(WebCore::BaseAudioContext::nextAudioParameterLogIdentifier):
(WebCore::BaseAudioContext::isStopped const):
(WebCore::BaseAudioContext::AutoLocker::AutoLocker):
(WebCore::BaseAudioContext::AutoLocker::~AutoLocker):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::BiquadFilterNode):

  • Modules/webaudio/BiquadFilterNode.h:
  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::BiquadProcessor):

  • Modules/webaudio/BiquadProcessor.h:
  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::ChannelMergerNode):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::ChannelSplitterNode):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):

  • Modules/webaudio/ConvolverNode.h:
  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode):
(WebCore::DelayNode::create):

  • Modules/webaudio/DelayNode.h:
  • Modules/webaudio/DelayProcessor.cpp:

(WebCore::DelayProcessor::DelayProcessor):

  • Modules/webaudio/DelayProcessor.h:
  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):

  • Modules/webaudio/DynamicsCompressorNode.h:
  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::GainNode):

  • Modules/webaudio/GainNode.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::create):
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):

  • Modules/webaudio/MediaStreamAudioDestinationNode.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::create):
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):

  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):
(WebCore::OscillatorNode::OscillatorNode):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNodeBase::PannerNodeBase):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::create):
(WebCore::ScriptProcessorNode::ScriptProcessorNode):

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::WaveShaperNode):

  • Modules/webaudio/WaveShaperNode.h:
  • Modules/webaudio/WebKitAudioContext.cpp:

(WebCore::WebKitAudioContext::WebKitAudioContext):
(WebCore::WebKitAudioContext::createMediaElementSource):
(WebCore::WebKitAudioContext::createMediaStreamSource):
(WebCore::WebKitAudioContext::createMediaStreamDestination):
(WebCore::WebKitAudioContext::createWebKitPanner):
(WebCore::WebKitAudioContext::close):

  • Modules/webaudio/WebKitAudioContext.h:

(isType):

  • Modules/webaudio/WebKitAudioContext.idl:
  • dom/EventTargetFactory.in:
  • testing/Internals.cpp:

(WebCore::Internals::setAudioContextRestrictions):

  • testing/Internals.h:
  • testing/Internals.idl:
11:59 AM Changeset in webkit [263409] by Alan Coon
  • 1 copy in branches/safari-610.1.18-branch

New branch.

11:49 AM Changeset in webkit [263408] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Handle string overflow in DFG graph dump while validating AI.
https://bugs.webkit.org/show_bug.cgi?id=213524
<rdar://problem/64635620>

Not reviewed.

Applying refinement suggested by Darin in https://bugs.webkit.org/show_bug.cgi?id=213524#c3.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):

11:41 AM Changeset in webkit [263407] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

Remove unnecessary Timer from NetworkDataTask
https://bugs.webkit.org/show_bug.cgi?id=213409

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-23
Reviewed by Youenn Fablet.

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::NetworkDataTask):
(WebKit::NetworkDataTask::scheduleFailure):
(WebKit::NetworkDataTask::failureTimerFired): Deleted.

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::resume):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::resume):

11:32 AM Changeset in webkit [263406] by Russell Epstein
  • 8 edits in branches/safari-609.3.5.1-branch/Source

Versioning.

WebKit-609.3.5.1.3

11:15 AM Changeset in webkit [263405] by mark.lam@apple.com
  • 6 edits
    1 add in trunk

Handle string overflow in DFG graph dump while validating AI.
https://bugs.webkit.org/show_bug.cgi?id=213524
<rdar://problem/64635620>

Reviewed by Saam Barati.

JSTests:

  • stress/string-overflow-in-dfg-graph-dump.js: Added.

Source/JavaScriptCore:

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):

Source/WTF:

  • wtf/StringPrintStream.cpp:

(WTF::StringPrintStream::tryToString):

  • wtf/StringPrintStream.h:
11:01 AM Changeset in webkit [263404] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Move flaky failures happening in WPE from GTK to GLIB after r263402.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
9:36 AM Changeset in webkit [263403] by svillar@igalia.com
  • 13 edits
    3 copies in trunk

[WebXR] Introducing XRLayer
https://bugs.webkit.org/show_bug.cgi?id=213462

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/webxr/idlharness.https.window-expected.txt: Replace FAIL by PASS expectations

for XRLayer interface.

Source/WebCore:

The most recent drafts of the WebXR spec have added a new object called XRLayer which is the base class
of the already known XRWebGLLayer. The spec only defines the latter but future extensions might define
some other layer subclasses.

This patch fixes several checks in the IDL tests.

  • CMakeLists.txt: Added new files.
  • DerivedSources.make: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • Modules/webxr/WebXRLayer.cpp: Added.

(WebCore::WebXRLayer::WebXRLayer):

  • Modules/webxr/WebXRLayer.h: Ditto.
  • Modules/webxr/WebXRLayer.idl: Ditto.
  • Modules/webxr/WebXRSession.h: Export scriptExecutionContext() so it could be used from the outside.
  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::WebXRWebGLLayer): Call the superclass.

  • Modules/webxr/WebXRWebGLLayer.h: Inherit from WebXRLayer.
  • Modules/webxr/WebXRWebGLLayer.idl: Ditto.
  • Sources.txt: Added new files.
  • bindings/js/WebCoreBuiltinNames.h: Added XRLayer.
  • dom/EventTargetFactory.in: Ditto.
9:15 AM Changeset in webkit [263402] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: adjust height of undocked title area to match macOS Big Sur
https://bugs.webkit.org/show_bug.cgi?id=213490

Reviewed by Brian Burg.

  • UserInterface/Views/Variables.css:

(body.mac-platform.big-sur:not(.docked)):
The title bar height is based on the close/minimize/maximize buttons, not the title text.

9:14 AM Changeset in webkit [263401] by aboya@igalia.com
  • 2 edits
    1 add in trunk/Tools

[GStreamer] Add GStreamer patch to fix EWS glupload racy crash
https://bugs.webkit.org/show_bug.cgi?id=210498

Reviewed by Philippe Normand.

This WebKit patch backports a patch from GStreamer 1.17 that prevents
the crashes in the attached bug to our flatpak build.

  • buildstream/elements/sdk/gst-plugins-base.bst:
  • buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch: Added.
9:12 AM Changeset in webkit [263400] by Devin Rousso
  • 15 edits in trunk

Keyframe animation doesn't 't show up in the Animations timeline
https://bugs.webkit.org/show_bug.cgi?id=213441

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Animation.json:

An interationCount of Infinity is not JSON serializable, so represent it as -1 instead.

Source/WebCore:

Test: inspector/animation/lifecycle-css-animation.html

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::buildObjectForEffect):

Source/WebInspectorUI:

  • UserInterface/Models/Animation.js:

(WI.Animation):
(WI.Animation.prototype._updateEffect):
An interationCount of Infinity is not JSON serializable, so represent it as -1 instead.

  • UserInterface/Models/MediaTimelineRecord.js:

(WI.MediaTimelineRecord):

  • UserInterface/Views/MediaTimelineDataGridNode.js:

(WI.MediaTimelineDataGridNode.prototype.createCellContent):
(WI.MediaTimelineDataGridNode.prototype.filterableDataForColumn):
The DOM node may not be able to be instrumented if the timeline recording starts before the
frontend has had a chance to request the main document, so it's possible for the DOM node
to not be set.

LayoutTests:

  • inspector/animation/resources/lifecycle-utilities.js:
  • inspector/animation/lifecycle-css-animation.html:
  • inspector/animation/lifecycle-css-animation-expected.txt:
8:56 AM Changeset in webkit [263399] by svillar@igalia.com
  • 7 edits in trunk

[css-flex] Allow indefinite size flex items to be definite wrt resolving percentages inside them
https://bugs.webkit.org/show_bug.cgi?id=212264

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/percentage-heights-003-expected.txt: There were 3 subtests

marked as failures. All of them work fine now.

Source/WebCore:

Implement https://github.com/w3c/csswg-drafts/commit/5b5db39d21f3658ae2f4d7992daaf822aca178d8 which modified
the way percentages were resolved in flexible items with indefinite sizes. From now on we can pretend that
they're really definite.

This allows us to mark 3 tests which were testing percentages in flex items as correct.

Based on Blink's crrev.com/1247184 by <cbiesinger@chromium.org>

This is a reland of r262124 which got reverted due to the bug fixed in r263389.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution): Do only check flex container main size
definiteness when computing the main size for percentage resolution, no need to check flex basis at all.

LayoutTests:

  • css3/flexbox/definite-main-size-expected.txt: Updated expectation.
  • css3/flexbox/definite-main-size.html: Updated comment.
8:50 AM Changeset in webkit [263398] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] REGRESSION: perf/htmlcollection-backwards-iteration.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213520

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
8:48 AM Changeset in webkit [263397] by aboya@igalia.com
  • 3 edits in trunk/Tools

[flatpak] Ensure en_US.UTF-8 locale
https://bugs.webkit.org/show_bug.cgi?id=212459

Reviewed by Philippe Normand.

When developing WebKit we want as few system differences as possible
to make tests reproducible.

en_US.UTF-8 is indeed the only locale installed in our development
flatpak, but our scripts were not correctly clearing most locale
environment variables, which resulted in warnings when running some
tools (notably perl) when the user OS has a different locale.

This patch ensures all locale environment variables are cleared and
LANG is set to en_US.UTF-8. It also removes now redundant code from
flatpakutils.py.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

  • flatpak/webkit-bwrap:
8:14 AM Changeset in webkit [263396] by Simon Fraser
  • 7 edits in trunk

[ Catalina Debug WK2 ] fast/events/platform-wheelevent-in-scrolling-div.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213351
<rdar://problem/64502429>

Reviewed by Tim Horton.

Tools:

The variadic CGEventCreateScrollWheelEvent() seems to have an issue that causes the resulting event
to rarely put the x value into the deltaY. Change to the non-variadic CGEventCreateScrollWheelEvent2()
to avoid this.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController mouseScrollByX:andY:continuously:]):
(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]):

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):

LayoutTests:

Fix the test to use eventSender.monitorWheelEvents(). Also remove an initial 100ms timeout and
some ugly uses of "window.", and make it a proper js-test-pre/js-test-post test.

  • fast/events/platform-wheelevent-in-scrolling-div-expected.txt:
  • fast/events/platform-wheelevent-in-scrolling-div.html:
  • platform/mac-wk2/TestExpectations:
7:00 AM Changeset in webkit [263395] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/backgrounds/size/backgroundSize-in-background-shorthand.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213511

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
6:29 AM Changeset in webkit [263394] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Move flaky failures happening in WPE from GTK to GLIB.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
5:51 AM Changeset in webkit [263393] by Diego Pino Garcia
  • 4 edits in trunk/Tools

[ews] Rename 'JSCTestsFactory' to 'JSCBuildAndTestsFactory'
https://bugs.webkit.org/show_bug.cgi?id=213503

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/config.json:
  • BuildSlaveSupport/ews-build/factories.py:

(JSCBuildAndTestsFactory):
(JSCTestsFactory): Deleted.
(JSCTestsFactory.init): Deleted.

  • BuildSlaveSupport/ews-build/loadConfig.py:
5:05 AM Changeset in webkit [263392] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add JSC-Only builders for MIPS and ARMv7 architectures (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=213366

Unreviewed follow-up fix.

Remove unused runTests parameter.

  • BuildSlaveSupport/ews-build/factories.py:
4:09 AM Changeset in webkit [263391] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations after r263390.

Garden latest failures from test bot.

  • platform/wpe/TestExpectations:
2:15 AM Changeset in webkit [263390] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] relax restriction on build-webkit script name
https://bugs.webkit.org/show_bug.cgi?id=213432

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-23
Reviewed by Žan Doberšek.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Match the build-webkit string in the whole command-line
argument and thus allow alternative implementations of build-webkit. Also let the
MAX_CPU_LOAD env var in the sandbox.

12:27 AM Changeset in webkit [263389] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

REGRESSION (r262124): Twitter videos go blank after exiting fullscreen
https://bugs.webkit.org/show_bug.cgi?id=213110

Reviewed by Darin Adler.

Source/WebCore:

Test: fullscreen/video-inside-flex-item.html

Setting/unsetting position:absolute on a flex/grid item can potentially create/remove flex/grid items because
absolutely positioned children of those containers are out-of-flow and thus, do not generate flex/grid items.
Flex/grid items are potentially stretched by their containers so the style recalculation is not enough to get
a correct layout because the override size set by flex/grid containers is not reset.
In the particular case of this bug we had this hierarchy (highly simplified from twitter page):

Flexbox container
|_DIV (absolutelly positioned)

|_<video> (height: 100% width: 100%)

When the <video> goes fullscreen the FullscreenManager replaces the
style of the DIV because it inserts a RenderFullScreen object in between
the DIV and the <video> (along with some anonymous blocks). This means
that the DIV which was not a flex item (as it was absolutely positioned)
became a flex item and thus its size is stretched as the flexbox
container mandates. When exiting fullscreen, the original style is
restored (and thus the position absolute). The DIV is then no longer a
flex item but the stretched size (overrideContentSize) is still set,
causing issues with the sizes of the <video>.

Note that it isn't possible to reproduce this bug with the current trunk because there is a bug in the flexbox
implementation (see bug 212264) preventing this to happen. However it becomes 100% reproducible with the patch for bug 212264
which is correct and fixes several tests related to wrapping in flexbox. It's also reproducible when the FULLSCREEN_API is
enabled, otherwise the codepath for full screen is totally different (there are no placeholders).

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange): clear the override sizes for grid/flex when flex/grid items become out-of-flow,
for example by changing position to absolute.

LayoutTests:

  • fullscreen/video-inside-flex-item-expected.txt: Added.
  • fullscreen/video-inside-flex-item.html: Added.
Note: See TracTimeline for information about the timeline view.