Timeline



Jun 25, 2020:

10:48 PM Changeset in webkit [263554] by Diego Pino Garcia
  • 3 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines after r263550.

  • platform/gtk/editing/deleting/smart-delete-paragraph-005-expected.txt: Added.
  • platform/gtk/fast/dynamic/window-resize-scrollbars-test-expected.png:
  • platform/gtk/fast/dynamic/window-resize-scrollbars-test-expected.txt:
10:20 PM Changeset in webkit [263553] by Ryan Haddad
  • 2 edits in trunk/Tools

[Big Sur] Regression tests fail to run due to failed assert: self._os_version.major == 10
https://bugs.webkit.org/show_bug.cgi?id=213639

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/port/mac.py:

(MacPort.init): Remove the assert since it is no longer valid.

10:03 PM Changeset in webkit [263552] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk

Unreviewed, reverting r263537.
https://bugs.webkit.org/show_bug.cgi?id=213640

Broke watchOS and tvOS builds

Reverted changeset:

"iOS Safari incorrectly reports "AppleCoreMedia" as UA string"
https://bugs.webkit.org/show_bug.cgi?id=213245
https://trac.webkit.org/changeset/263537

9:36 PM Changeset in webkit [263551] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

WKHTTPCookieStore.setCookie should flush the cookies to disk before calling completion handler when we are using the UIProcess's default cookie storage
https://bugs.webkit.org/show_bug.cgi?id=213636

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

This fixes a race condition that many, many third party developers run into, causing them to not be logged in when they thought they did.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::saveCookies):

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::setCookies):
(API::HTTPCookieStore::registerForNewProcessPoolNotifications):
(API::HTTPCookieStore::flushDefaultUIProcessCookieStore):

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm:

(API::HTTPCookieStore::flushDefaultUIProcessCookieStore):

9:17 PM Changeset in webkit [263550] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[Inline] Overlapping content when margin-right is present
https://bugs.webkit.org/show_bug.cgi?id=213629
<rdar://problem/64391403>

Reviewed by Simon Fraser.

Source/WebCore:

  1. computeInlineDirectionPositionsForSegment loops through the Bidi runs and computes their logical widths.
  2. Text measuring needs the current logical left position in order to compute the run width properly (e.g tab size)
  3. The current logical left includes margins, boders and paddings (e.g <span style="margin: 100px;">text content</span> 'text content' starts at 100px -ignore the line offset for now)
  4. The BiDi loop jumps over empty inline containers (e.g. text<span style="border: 10px solid green"></span>content) and it lacks the information to be able to resolve nested inline containers.

This patch pre-computes the spacing offset for each InlineTextBox so that we could use it later to compute the logical left position for the text measuring.

<span style="margin-right: 1px">[1]<span style="margin: 2px">[2]</span>[3]</span>[4]
[1] -> 0px offset
[2] -> 2px offset
[3] -> 4px offset
[4] -> 5px offset

Test: fast/inline/incorrect-tab-position.html

  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::computeInlineDirectionPositionsForSegment):

LayoutTests:

  • fast/inline/incorrect-tab-position-expected.html: Added.
  • fast/inline/incorrect-tab-position.html: Added.
7:47 PM Changeset in webkit [263549] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Upstream date/time picker style
https://bugs.webkit.org/show_bug.cgi?id=213630

Reviewed by Wenson Hsieh.

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker datePickerStyle]):

6:03 PM Changeset in webkit [263548] by commit-queue@webkit.org
  • 6 edits in trunk

REGRESSION(r256166, r260596) WKNavigationAction.request.allHTTPHeaderFields needs to contain User-Agent and Accept
https://bugs.webkit.org/show_bug.cgi?id=213626
<rdar://problem/62374208>

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

Source/WebCore:

Those two revisions seemed to just subtly move things around, but they caused API-breaking changes that caused real problems.
This effectively reverts the parts of those changes that caused the breakages.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addExtraFieldsToRequest):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::acceptHeaderValueFromType):
(WebCore::acceptHeaderValueFromType): Deleted.

  • loader/cache/CachedResourceRequest.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

5:10 PM Changeset in webkit [263547] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Unreviewed, reverting r263545.

Patch will need refining

Reverted changeset:

"[iOS] Network process is crashing when launching TJMaxx app
due to invalid NetworkProcess::DestroySession IPC message"
https://bugs.webkit.org/show_bug.cgi?id=213625
https://trac.webkit.org/changeset/263545

4:50 PM Changeset in webkit [263546] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION(r263035): stress/get-prototype-of.js broken on s390x
https://bugs.webkit.org/show_bug.cgi?id=213307

Reviewed by Ross Kirsling.

Structure::m_outOfLineTypeFlags is uint16_t. If we access this field as 32bit field, we have different value in big endian architectures.
Since we do not have half-size-load branch instructions, we should load this uint16_t value via loadh (which zero-extends the loaded value)
and perform branch onto that value.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadPrototype):

  • llint/LowLevelInterpreter64.asm:
4:43 PM Changeset in webkit [263545] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

[iOS] Network process is crashing when launching TJMaxx app due to invalid NetworkProcess::DestroySession IPC message
https://bugs.webkit.org/show_bug.cgi?id=213625
<rdar://problem/64737890>

Reviewed by Geoffrey Garen.

The app is calling [WKWebsiteDataStore init] despite the method being marked as unavailable in
WKWebsiteDataStore.h. As a result, they end up with a WKWebsiteDataStore object whose internal
_websiteDataStore is bad because its constructor was never called. When [WKWebsiteDataStore dealloc]
gets called later own, it calls the ~WebsiteDataStore() destructor for _websiteDataStore but its
m_sessionID is 0 because we never called the constructor. This causes us to send a
NetworkProcess::DestroySession IPC with a sessionID that is 0, which is not valid so the
NetworkProcess crashes.

To address the issue, we now provide an implementation of [WKWebsiteDataStore init] which returns nil
behind a linked-on-after check (since this crashes the app). To keep the app working,
[WKWebsiteDataStore init] returns the default data store until rebuilt with the new SDK. Note that
I tried returning a new ephemeral data store instead but this was getting the app in a bad state.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.h:

Mark "new" as unavailable, otherwise [WKWebsiteDataStore new] builds.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore init]):
Return nil with latest SDK, the default data store otherwise.

  • UIProcess/Cocoa/VersionChecks.h:

Add linked-on-after check.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):
Add a release assertion to make sure that m_sessionID is always valid when the destructor is called.

4:30 PM Changeset in webkit [263544] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Convert the PaintLayerFlag enum to an enum class
https://bugs.webkit.org/show_bug.cgi?id=213624

Reviewed by Zalan Bujtas.

Convert enum PaintLayerFlag to an enum class.

  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::paintOverlayScrollbars):
(WebCore::paintForFixedRootBackground):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerWithEffects):
(WebCore::RenderLayer::paintLayerContentsAndReflection):
(WebCore::RenderLayer::filtersForPainting const):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::updatePaintingInfoForFragments):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintIntoLayer):
(WebCore::RenderLayerBacking::paintFlagsForLayer const):

  • rendering/RenderReplica.cpp:

(WebCore::RenderReplica::paint):

4:27 PM Changeset in webkit [263543] by Alan Coon
  • 4 edits in branches/safari-610.1.18-branch/Source/WebKit

Cherry-pick r263525. rdar://problem/64778764

Allow service workers for web browsers
https://bugs.webkit.org/show_bug.cgi?id=213573
<rdar://problem/64712630>

Reviewed by Brent Fulgham.

Allows applications with the full web-browser entitlement to use
service workers.

  • NetworkProcess/ios/NetworkProcessIOS.mm: (WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setupPageConfiguration:]):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const):

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

4:27 PM Changeset in webkit [263542] by Alan Coon
  • 4 edits in branches/safari-610.1.18-branch/Source/WTF

Cherry-pick r263524. rdar://problem/64778728

WTF::callOnMainThread should not require the main runloop to be initialized
https://bugs.webkit.org/show_bug.cgi?id=213612
<rdar://problem/64446028>

Reviewed by Yusuke Suzuki.

When using JavaScriptCore as a framework, the WTF main runloop is never initialized. However,
the inspector uses CFString wrappers, which use callOnMainThread when deallocating the
underlying string. For now, we bring back the old JSWTFMainThreadCaller to ensure we have
a way of dispatching to the main thread, even when the main runloop hasn't been initialized.

  • wtf/RunLoop.cpp: (WTF::RunLoop::mainIfExists):
  • wtf/RunLoop.h:
  • wtf/cocoa/MainThreadCocoa.mm: (-[JSWTFMainThreadCaller call]): (WTF::initializeMainThreadPlatform): (WTF::scheduleDispatchFunctionsOnMainThread):

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

4:27 PM Changeset in webkit [263541] by Alan Coon
  • 2 edits in branches/safari-610.1.18-branch/Source/WebCore

Cherry-pick r263521. rdar://problem/64778782

App-bound domain service worker registrations should be limited
https://bugs.webkit.org/show_bug.cgi?id=213601
<rdar://problem/64717589>

Reviewed by Brent Fulgham.

Limit number of service worker registrations for app-bound domains.
The current proposal is 3, but this could be changed in the future.

No new tests, currently TestWebKitAPI is unable to test failed
service worker registration (test will timeout). Confirmed behavior
manually.

  • workers/service/server/SWServer.cpp: (WebCore::SWServer::validateRegistrationDomain):

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

4:22 PM Changeset in webkit [263540] by Alan Coon
  • 8 edits in branches/safari-610.1.18-branch/Source

Versioning.

WebKit-610.1.18.2

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

Remove expectation for http/tests/cookies/third-party-cookie-relaxing.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213620

Unreviewed test gardening.

Patch by Karl Rackler <rackler@apple.com> on 2020-06-25

  • platform/mac/TestExpectations:
3:41 PM Changeset in webkit [263538] by dbates@webkit.org
  • 3 edits
    4 adds in trunk

[iOS] Event region briefly missing editable element after typing second character in question field on discussions.apple.com
https://bugs.webkit.org/show_bug.cgi?id=213618
<rdar://problem/62656131>

Reviewed by Simon Fraser.

Source/WebCore:

Ensure the event region is updated for the foreground layer, if there is one. The foreground layer paints
into a different backing and so will not be included in normal layer paint (i.e. RenderLayer::paintLayer()
will bail out). A "z-index: -1" can create such a layer. An element with "z-index: -1" is above the
background, but below other content. Although the original reported bug was only concerned about the
editable region the fix is applicable to all regions tracked by EventRegion. I included a test for touch-action
region too.

Tests: editing/editable-region/text-field-inside-composited-negative-z-index-layer.html

pointerevents/ios/touch-action-none-relative-inside-composited-negative-z-index-layer.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

LayoutTests:

Add some tests.

  • editing/editable-region/text-field-inside-composited-negative-z-index-layer-expected.txt: Added.
  • editing/editable-region/text-field-inside-composited-negative-z-index-layer.html: Added.
  • pointerevents/ios/touch-action-none-relative-inside-composited-negative-z-index-layer-expected.txt: Added.
  • pointerevents/ios/touch-action-none-relative-inside-composited-negative-z-index-layer.html: Added.
3:39 PM Changeset in webkit [263537] by jer.noble@apple.com
  • 4 edits
    1 add in trunk

iOS Safari incorrectly reports "AppleCoreMedia" as UA string
https://bugs.webkit.org/show_bug.cgi?id=213245
<rdar://problem/64471582>

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: TestWebKitAPI.MediaLoading.UserAgentStringCRABS

TestWebKitAPI.MediaLoading.UserAgentStringHLS

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask initWithSession:identifier:request:]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm: Added.

(TestWebKitAPI::parseUserAgent):
(TestWebKitAPI::TEST):

3:39 PM Changeset in webkit [263536] by Alan Coon
  • 2 edits in branches/safari-609.3.5.1-branch/Source/WebCore

Revert r263522. rdar://problem/64763027

3:25 PM Changeset in webkit [263535] by Megan Gardner
  • 4 edits in trunk/Source/WebCore

Unreviewed. Fixing misspellings of 'position'.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::smartDeleteParagraphSpacers):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

3:15 PM Changeset in webkit [263534] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Debug ] imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213621

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:12 PM Changeset in webkit [263533] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

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

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-06-25
Reviewed by Darin Adler.

Make the test asynchronous since it involves a rAF callback.

  • fast/rendering/iframe-window-animation-modifies-iframe-srcdoc-crash.html:
3:11 PM Changeset in webkit [263532] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/writing-mode/english-bt-text-with-spelling-marker.html and fast/writing-mode/english-rl-text-with-spelling-marker.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213619

Unreviewed test gardening.

Patch by Karl Rackler <rackler@apple.com> on 2020-06-25

  • platform/mac-wk2/TestExpectations:
3:03 PM Changeset in webkit [263531] by dbates@webkit.org
  • 8 edits in trunk

[iOS] -_requestTextInputContextsInRect cannot find empty Quip spreadsheet title
https://bugs.webkit.org/show_bug.cgi?id=213564
<rdar://problem/59355847>

Reviewed by Simon Fraser.

Source/WebCore:

Special case for a focused editable inline element that has no line box, which is
what the Quip spreadsheet title can become if its contents are deleted. The engine
optimizes to avoid creating lines and line boxes for empty inlines, hit testing,
and painting them. It's complicated to patch all this up with a 100% correct
solution without forcing more line box creation. So, just add a special case.

  • page/Page.cpp:

(WebCore::Page::editableElementsInRect const): Add the root editable element of
the focused element to the result set if its rect intersects the search rect. Note
that its rect can be empty e.g. <span contenteditable="true"></span>. So, I use
a new function on FloatRect to perform the intersection test. I also updated the
ASSERT() to also use this new function. This was not necessary, but I did it to
future the proof this code should hit testing one day return empty inlines.

  • platform/graphics/FloatRect.cpp:

(WebCore::FloatRect::inclusivelyIntersects const): Added.
(WebCore::FloatRect::intersects const): While I was in this file I fixed up a comment
in this function to be more precise.

  • platform/graphics/FloatRect.h:

Source/WebKit:

Check if the search rect intersects the interaction rect, even if it's empty, so long as
there is an assisted element. If there isn't an assisted element just do what we do now.
Otherwise, if the interaction rect is empty then this means the focused element is an
empty inline and it's not tracked in the editable region (see WebCore ChangeLog entry for
more details). In this case, just ask the web process directly to find the contexts.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _requestTextInputContextsInRect:completionHandler:]):

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TestWebKitAPI::TEST):

2:19 PM Changeset in webkit [263530] by wenson_hsieh@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the macOS 11 build after r263519

  • rendering/RenderThemeMac.mm:

(WebCore::createAttachmentPlaceholderImage):

2:13 PM Changeset in webkit [263529] by weinig@apple.com
  • 7 edits
    2 adds in trunk

Add a new templated string type to help write more idiomatic parsing code
https://bugs.webkit.org/show_bug.cgi?id=213588

Reviewed by Darin Adler.
Source/WTF:

Introduce StringParsingBuffer<CharType>, a new class in the String class family
designed to be used by parsing code. It's designed to be used with the helper
function, readCharactersForParsing, and for the user to write the parsing code
in a way that will work for both latin1 and UTF-16 inputs. Most usage will likely
follow something like the following form

{

...
auto parsedResult = readCharactersForParsing(stringishObjectToParse, [](auto parsingBuffer) {

while (parsingBuffer.hasCharactersRemaining()) {

if (*parsingBuffer == foo) {

...

}

}

...

return parsedResult

});
...

}

API tests added.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:

Add StringParsingBuffer.h

  • wtf/Forward.h:

Forward declare StringParsingBuffer.

  • wtf/text/StringParsingBuffer.h:

Added.

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/StringParsingBuffer.cpp: Added.

(TestWebKitAPI::TEST):
Added new tests for new class.

1:57 PM Changeset in webkit [263528] by Megan Gardner
  • 3 edits
    4 adds in trunk

Cannot delete last line of Mail Message
https://bugs.webkit.org/show_bug.cgi?id=213536
<rdar://problem/63420928>

Reviewed by Wenson Hsieh.

Source/WebCore:

LayoutTests/editing/deleting/smart-delete-paragraph-005.html

The smart paragraph deletion code did not take into account that
the previous blank line could be the start of editable content without
a paragraph before it. If this was the case, the deletion code backed up
too far, and the delete command failed. This case should be handled
in the same way that the deleting the last paragraph in editable content is
handled, by checking if we are already at the beginning of the editable
content when expanding the selection for smart paragraph deletion.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::smartDeleteParagraphSpacers):

LayoutTests:

  • editing/deleting/smart-delete-paragraph-005.html:
1:37 PM Changeset in webkit [263527] by wenson_hsieh@apple.com
  • 13 edits
    2 adds in trunk

Text manipulation should exclude text rendered using icon-only fonts
https://bugs.webkit.org/show_bug.cgi?id=213446
<rdar://problem/63734298>

Reviewed by Myles Maxfield.

Source/WebCore:

See below for more details.

Test: TextManipulation.StartTextManipulationExcludesTextRenderedAsIcons

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::shouldExcludeNodeBasedOnStyle):
(WebCore::TextManipulationController::parse):

Augment token exclusion rules so that we're able to exclude certain text nodes from text manipulation, based on
their style (more specifically, based on their font family). Ask the text node's primary font if it is likely to
be used only for rendering icons, and cache the result in TextManipulationController to avoid running the
heuristic an excessive number of times for each font that appears in the document. We currently only run this
for the node's primary font when initiating translation, though we may want to change this in the future so that
node exclusion is recomputed when the primary font of a node changes.

Note that in the case where an icon font fails to load, we won't exclude the text node from translation,
since the primary font will be a fallback. This is intentional, since the node would appear in the document as
normally rendered text (rather than icons), which should be translated.

  • editing/TextManipulationController.h:
  • platform/graphics/Font.cpp:

(WebCore::Font::isProbablyOnlyUsedToRenderIcons const):

  • platform/graphics/Font.h:
  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::familyName const):

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::isProbablyOnlyUsedToRenderIcons const):

Add a heuristic to detect whether a platform font should be excluded from text manipulation. For now, we only
return true if we suspect that this font is an "icon-only" font (for instance, the "Material Icons" font). We
guess that a font is *probably* an icon-only font if the font supports only characters from the basic or PUA
unicode planes, and the glyph bounds for the set of supported non-control basic latin characters are all empty.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::familyName const):

Add a platform familyName() helper method on FontPlatformData. On Cocoa platforms, this wraps a call to
CTFontCopyFamilyName.

Tools:

Add a new API test.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/Ahem.ttf: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/SpaceOnly.otf: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

1:28 PM Changeset in webkit [263526] by Russell Epstein
  • 1 copy in tags/Safari-609.3.5.0.2

Tag Safari-609.3.5.0.2.

1:04 PM Changeset in webkit [263525] by Kate Cheney
  • 4 edits in trunk/Source/WebKit

Allow service workers for web browsers
https://bugs.webkit.org/show_bug.cgi?id=213573
<rdar://problem/64712630>

Reviewed by Brent Fulgham.

Allows applications with the full web-browser entitlement to use
service workers.

  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const):

12:38 PM Changeset in webkit [263524] by Tadeu Zagallo
  • 4 edits in trunk/Source/WTF

WTF::callOnMainThread should not require the main runloop to be initialized
https://bugs.webkit.org/show_bug.cgi?id=213612
<rdar://problem/64446028>

Reviewed by Yusuke Suzuki.

When using JavaScriptCore as a framework, the WTF main runloop is never initialized. However,
the inspector uses CFString wrappers, which use callOnMainThread when deallocating the
underlying string. For now, we bring back the old JSWTFMainThreadCaller to ensure we have
a way of dispatching to the main thread, even when the main runloop hasn't been initialized.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::mainIfExists):

  • wtf/RunLoop.h:
  • wtf/cocoa/MainThreadCocoa.mm:

(-[JSWTFMainThreadCaller call]):
(WTF::initializeMainThreadPlatform):
(WTF::scheduleDispatchFunctionsOnMainThread):

12:32 PM Changeset in webkit [263523] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSCell constructor needs to ensure that the passed in structure is still alive.
https://bugs.webkit.org/show_bug.cgi?id=213593
<rdar://problem/64597573>

Reviewed by Yusuke Suzuki.

Note that in the initializer list of the JSCell(VM&, Structure*) constructor,
we are only using values inside the passed in structure but not necessarily the
structure pointer itself. All these values are contained inside Structure::m_blob.
Note also that this constructor is an inline function. Hence, the compiler may
choose to pre-compute the address of structure->m_blob and discard the structure
pointer itself.

Here's an example:

0x10317a21e <+1054>: movq 0x18(%rsp), %rdx rdx:vm = &vm
0x10317a223 <+1059>: addq $0x8, %r13
r13 = &structure.m_blob <== pre-compute address of m_blob !!!

r13 previously contained the structure pointer.
Now, there's no more references to the structure base address.

0x10317a227 <+1063>: leaq 0x48(%rdx), %rdi arg0:heap = &vm.heap
0x10317a22b <+1067>: movl $0x10, %edx
arg2:size = 16.
0x10317a230 <+1072>: movq %rdi, 0x28(%rsp)
0x10317a235 <+1077>: xorl %esi, %esi arg1:deferralContext = 0
0x10317a237 <+1079>: callq 0x10317ae60
call JSC::allocateCell<JSC::JSArray> <== Can GC here !!!

0x10317a23c <+1084>: movq %rax, %rbx rbx:cell = rax:allocation result.
...
0x10317a253 <+1107>: movl (%r13), %eax
eax = m_blob.structureID <== Use pre-computed m_blob address here.

There's a chance that the GC may run while allocating this cell. In the event
that the structure is newly instantiated just before calling this constructor,
there may not be any other references to it. As a result, the structure may get
collected before the cell is even constructed. To avoid this possibility, we need
to ensure that the structure pointer is still alive by the time this constructor
is called.

I am not committing any tests for this issue because the test cases relies on:

  1. Manually forcing an O3 ASan Release build.
  1. Not running jsc with --useDollarVM=1. Note: the JSC test harness automatically adds --useDollarVM=1 for all test runs.
  1. Memory being allocated in a specific order. The recent Bitmap FreeList change enabled this issue to manifest. The old linked list FreeList implementation would have hidden the issue.
  1. Adding some logging code can also make the issue stop manifesting.

In short, the test cases will not detect any regression even if we commit them
because the existing automatic regression test runs will not have the necessary
conditions for reproducing the issue. The tests are also somewhat fragile where
any changes in memory layout may stop the issue from manifesting in an observable
way.

  • runtime/JSCellInlines.h:

(JSC::JSCell::JSCell):

11:21 AM Changeset in webkit [263522] by Alan Coon
  • 2 edits in branches/safari-609.3.5.1-branch/Source/WebCore

Apply patch. rdar://problem/64763027

11:16 AM Changeset in webkit [263521] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

App-bound domain service worker registrations should be limited
https://bugs.webkit.org/show_bug.cgi?id=213601
<rdar://problem/64717589>

Reviewed by Brent Fulgham.

Limit number of service worker registrations for app-bound domains.
The current proposal is 3, but this could be changed in the future.

No new tests, currently TestWebKitAPI is unable to test failed
service worker registration (test will timeout). Confirmed behavior
manually.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::validateRegistrationDomain):

11:01 AM Changeset in webkit [263520] by Alan Coon
  • 8 edits in branches/safari-609.3.5.1-branch/Source

Versioning.

WebKit-609.3.5.1.4

10:39 AM Changeset in webkit [263519] by wenson_hsieh@apple.com
  • 5 edits in trunk/Source/WebCore

Upstream macOS 11 additions to RenderThemeMac.mm and ThemeMac.mm
https://bugs.webkit.org/show_bug.cgi?id=213608
<rdar://problem/64758299>

Reviewed by Darin Adler.

Replace WebKitAdditions imports with the imported code. No change in behavior.

  • css/html.css:

(input::-webkit-contacts-auto-fill-button):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::supportsLargeFormControls):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::createAttachmentPlaceholderImage):
(WebCore::RenderThemeMac::extraDefaultStyleSheet): Deleted.

Remove the override for extraDefaultStyleSheet altogether, since this was only used to temporarily hide the new
contact AutoFill button appearance from open source WebKit.

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

[ews] Share more bots between EWS builder and testers
https://bugs.webkit.org/show_bug.cgi?id=213521

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json:
10:16 AM Changeset in webkit [263517] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/ChangeLog

Unreviewed, fix a ChangeLog typo that was checked in with r263515.

10:09 AM Changeset in webkit [263516] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for WebXR enabled non-OpenXR builds.

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::Instance::Impl::enumerateApiLayerProperties const): Guard method with USE_OPENXR.
(PlatformXR::Instance::Impl::enumerateInstanceExtensionProperties const): Ditto.
(PlatformXR::Instance::Impl::Impl): Guard method body with USE_OPENXR.
(PlatformXR::Instance::Impl::~Impl): Ditto.

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

:wq2020-06-25 Karl Rackler <rackler@apple.com>

Remove expectation for fast/dynamic/window-resize-scrollbars-test.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213602

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
9:55 AM Changeset in webkit [263514] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix after r263511.

  • platform/mediastream/MediaStreamPrivate.h:
9:47 AM Changeset in webkit [263513] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Improve handling of invalid changelog
https://bugs.webkit.org/show_bug.cgi?id=213609

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/tool/steps/validatereviewer.py:

(ValidateReviewer.run):

9:43 AM Changeset in webkit [263512] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Narrow expectation for fast/inline/break-between-nobr.html as it is passing for Catalina.
https://bugs.webkit.org/show_bug.cgi?id=213607

Unreviewed test gardening.

Patch by Karl Rackler <rackler@apple.com> on 2020-06-25

  • platform/mac/TestExpectations:
8:58 AM Changeset in webkit [263511] by youenn@apple.com
  • 14 edits
    2 adds in trunk

MediaRecorder stopRecorder() returns empty Blob after first use
https://bugs.webkit.org/show_bug.cgi?id=212274
<rdar://problem/63601298>

Reviewed by Eric Carlson.

Source/WebCore:

Refactor code to create/destroy MediaRecorderPrivate on MediaRecorder start/stop.
This allows reusing a MediaRecorder after a stop and restarting with a clean state.

We introduce MediaRecorderPrivate::startRecording to do the initialization,
which allows to fix a potential ref cycle as part of the error callback handling.

Make some improvements to the platform implementation, in particular add default initialization to all fields.
Align the code using AudioConverterRef to what is done in AudioSampleDataSource.
Also call VTCompressionSessionInvalidate when destroying the VideoSampleBufferCompressor.

Test: http/wpt/mediarecorder/MediaRecorder-multiple-start-stop.html

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::MediaRecorder):
(WebCore::MediaRecorder::startRecording):
(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::requestData):

  • Modules/mediarecorder/MediaRecorder.h:
  • platform/mediarecorder/MediaRecorderPrivate.h:

(WebCore::MediaRecorderPrivate::startRecording):

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::stopRecording):

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):

Source/WebKit:

Update implementation to do initialization as part of startRecording.

  • GPUProcess/webrtc/RemoteMediaRecorderManager.cpp:

(WebKit::RemoteMediaRecorderManager::releaseRecorder):
Remove ASSERT as recorder creation in WebProcess is always ok while creation in GPUProcess may fail and m_recorders may not be populated.

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::startRecording):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-multiple-start-stop-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-multiple-start-stop.html: Added.
8:40 AM Changeset in webkit [263510] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/history/page-cache-indexed-closed-db.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213606

Unreviewed test gardening.

Patch by Karl Rackler <rackler@apple.com> on 2020-06-25

8:19 AM Changeset in webkit [263509] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][TFC] Use the flexing value as the base for the available horizontal space distribution
https://bugs.webkit.org/show_bug.cgi?id=213599

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html

  • layout/tableformatting/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace):

LayoutTests:

  • fast/layoutformattingcontext/table-fixed-width-with-max-distribution.html:
  • fast/layoutformattingcontext/table-min-max-flex-distribution-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html: Added.
8:03 AM Changeset in webkit [263508] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/canvas/canvas-blending-fill-style.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213598

Unreviewed test gardening.

Patch by Karl Rackler <rackler@apple.com> on 2020-06-25

  • platform/mac/TestExpectations:
7:27 AM Changeset in webkit [263507] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r262432): [ iOS wk2 ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=212696

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
6:42 AM Changeset in webkit [263506] by graouts@webkit.org
  • 4 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/animation/TimingFunction.h:
  • 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.
6:09 AM Changeset in webkit [263505] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, WPE Debug build fix after r263503.

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::OpenXRDevice): Use m_instance instead of m_impl->xrInstance().

6:02 AM Changeset in webkit [263504] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Don't invalidate MainThreadNotifier until the streaming threads are joined
https://bugs.webkit.org/show_bug.cgi?id=213197

Reviewed by Xabier Rodriguez-Calvar.

~MediaPlayerPrivateGStreamer() used to call m_notifier->invalidate()
before setting the pipeline to NULL state. This caused a race where
the streaming threads could post a task to the MainThreadNotifier
between these two events and cause a crash in
ASSERT(m_isValid.load()) -- that is, the notifier was used while
invalidated.

Fixing this is actually easy. ~MediaPlayerPrivateGStreamer() is always
run from the main thread, so no MainThreadNotifier tasks will be run
before the destructor is complete. By moving the
m_notifier->invalidate() call to after the pipeline has been set to
NULL (and therefore all streaming threads torn down) we are ensuring
no more taks will be posted, and since the MainThreadNotifier is
invalidated by that point, already posted tasks will not be run.

The race fixed by this patch is rare and wide-arching, so this patch
doesn't introduce TestExpectations changes, but it should avoid
further crashes like the ones reported in the Bugzilla issue attached.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):

3:49 AM Changeset in webkit [263503] by svillar@igalia.com
  • 6 edits in trunk/Source/WebCore

[WebXR] Check device orientation support when requesting a reference space
https://bugs.webkit.org/show_bug.cgi?id=213519

Reviewed by Carlos Garcia Campos.

When requesting a local reference space the specs mandate us to check whether or not the device
supports orientation tracking. This was not implemented in the OpenXR backend, so we were unconditionally
returning true.

The OpenXR devices now properly check whether or not orientation tracking is initialized. We took the chance
to refactor a bit the OpenXR backend moving all the device initialization code to the OpenXRDevice class.

The current tests already check this functionality.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::referenceSpaceIsSupported const): Call supportsOrientationTracking() on device.

  • platform/xr/PlatformXR.h:

(PlatformXR::Device::supportsOrientationTracking const): Added.

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::Instance::enumerateImmersiveXRDevices): Just create the OpenXR device, it will automatically
initialize itself.
(PlatformXR::OpenXRDevice::OpenXRDevice): Get XrSystem and XrInstance as parametters.
(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Moved from Instance::Impl.
(PlatformXR::Instance::Impl::collectSupportedSessionModes): Deleted.

  • platform/xr/openxr/PlatformXROpenXR.h:
  • testing/WebFakeXRDevice.h: Mark the SimulatedXRDevice as supporting orientation tracking.
3:16 AM Changeset in webkit [263502] by svillar@igalia.com
  • 3 edits in trunk/LayoutTests

Make video-inside-flex-item.html more robust
https://bugs.webkit.org/show_bug.cgi?id=213549

Reviewed by Simon Fraser.

The tests initially landed in r263389 and was later modified in r263436 because it was flaky
in some configurations. The latter fixed most of the flakiness but in the debug bots which
were consistently showing test failures. The problem was that the slowness of debug bots
was causing different layout behaviours and thus retrieving different measurements.

Fix the flackiness by adding an additional layer of robustness. The test now waits for the "loadeddata"
video event before entering into fullscreen mode. Video is properly sized now and we can
bring exact size comparisons back.

  • fullscreen/video-inside-flex-item-expected.txt:
  • fullscreen/video-inside-flex-item.html:
2:53 AM Changeset in webkit [263501] by Diego Pino Garcia
  • 2 edits in trunk

[GTK] Enable WEB_API_STATISTICS
https://bugs.webkit.org/show_bug.cgi?id=213592

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsGTK.cmake:

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@apple.com
  • 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@apple.com
  • 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 <rackler@apple.com> 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 <rackler@apple.com> 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 <rackler@apple.com> 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 <rackler@apple.com> 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 <rackler@apple.com> 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@apple.com
  • 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.

Jun 22, 2020:

10:55 PM Changeset in webkit [263388] by Carlos Garcia Campos
  • 5 edits
    2 adds in trunk

REGRESSION(r258741): [GTK] anchor-file-blob-download-includes-backslash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209329

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Sanitize the suggested filename. We replace characters that can be problematic in filenames with '_' to match
what Chromium and Firefox do.

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::sanitizeFilename):
(WebCore::ResourceResponse::platformSuggestedFilename const):

LayoutTests:

Rebaseline tests.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash-expected.txt: Added.
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote-expected.txt: Added.
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-slashes-expected.txt:
10:51 PM Changeset in webkit [263387] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] MiniBrowser: set a base directory for website data and cache
https://bugs.webkit.org/show_bug.cgi?id=213368

Reviewed by Michael Catanzaro.

Stop using the default ones.

  • MiniBrowser/gtk/main.c:

(activate):

10:49 PM Changeset in webkit [263386] by Carlos Garcia Campos
  • 14 edits in trunk

[GTK][WPE] Add API to configure and handle DOM cache to WebKitWebsiteDataManager
https://bugs.webkit.org/show_bug.cgi?id=213337

Reviewed by Adrian Perez de Castro.

Source/WebKit:

The default path is always used even for apps setting a base data directory. We should handle
WebsiteDataType::DOMCache to configure the directory and allow to fetch and clear it.

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes):
(toWebKitWebsiteDataTypes):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetProperty):
(webkitWebsiteDataManagerSetProperty):
(webkitWebsiteDataManagerConstructed):
(webkit_website_data_manager_class_init):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_get_dom_cache_directory):
(toWebsiteDataTypes):

  • UIProcess/API/gtk/WebKitWebsiteData.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebsiteData.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::websiteDataStoreFromSessionID): GTK and WPE ports don't use the default website
data store, so only use it when it already exists. Use the process pool website data store instead.

Tools:

Handle new website data in MiniBrowser and add a unit test.

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataConfiguration):
(testWebsiteDataDOMCache):
(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

10:27 PM Changeset in webkit [263385] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Attempt to fix watchOS simulator build.

  • assembler/FastJITPermissions.h:

(threadSelfRestrictRWXToRW):
(threadSelfRestrictRWXToRX):

10:04 PM Changeset in webkit [263384] by Diego Pino Garcia
  • 5 edits in trunk/Tools

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

Reviewed by Aakash Jain.

In a follow-up patch the built product of these bots will be consumed
by the EWS JSC-Only testing bots.

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

(JSCBuildFactory):
(JSCBuildFactory.init):

  • BuildSlaveSupport/ews-build/factories_unittest.py:

(TestBuildFactory):
(TestBuildFactory.test_jsc_mipsel_factory):
(TestBuildFactory.test_jsc_armv7_factory):

  • BuildSlaveSupport/ews-build/loadConfig.py:
9:13 PM Changeset in webkit [263383] by wilander@apple.com
  • 22 edits in trunk/Source

Storage Access API: Add the capability to call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
https://bugs.webkit.org/show_bug.cgi?id=213418
<rdar://problem/64549429>

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. This patch adds quirks for specific websites.
The general functionality that's touched has tests under
LayoutTests/http/tests/storageAccess/.

  • dom/Document.h:

(WebCore::Document::isTopDocument const):

New convenience function.

(WebCore::Document::setUserDidInteractWithPage):

Use of the new convenience function.

(WebCore::Document::userDidInteractWithPage const):

Use of the new convenience function.

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::hasStorageAccessQuickCheck):
(WebCore::DocumentStorageAccess::hasStorageAccess):
(WebCore::DocumentStorageAccess::hasStorageAccessForDocumentQuirk):
(WebCore::DocumentStorageAccess::requestStorageAccess):
(WebCore::DocumentStorageAccess::requestStorageAccessQuickCheck):
(WebCore::DocumentStorageAccess::requestStorageAccessForDocumentQuirk):
(WebCore::DocumentStorageAccess::requestStorageAccessForNonDocumentQuirk):
(WebCore::DocumentStorageAccess::requestStorageAccessQuirk):

These functions are split up to allow quirks to call directly into the
implementation of the Storage Access API without the JavaScript
promise that goes with the web API. It also allows for quirks to call
the API without an iframe document.

  • dom/DocumentStorageAccess.h:
  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):

The two existing quirks are for click events.

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::setDomainsWithUserInteraction):
(WebCore::ResourceLoadObserver::hasHadUserInteraction const):

These two new functions allow the Storage Access API quirks
to synchronously check if it's worth calling the API or not.
If there has been no user interaction for the requesting
domain, there is no need to call the API.

  • page/Quirks.cpp:

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

This is the new quirks function, hiding the specifics of
certain elements clicked and for which websites. It also
calls the Storage Access API.

  • page/Quirks.h:

Source/WebKit:

These changes are for forwarding ITP's knowledge of user interaction
for specific quirks domains to the WebKit::WebProcessPool where it in
turn can be distributed to all existing and new Web Content processes.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::needsUserInteractionQuirk const):
(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setDomainsWithUserInteraction):

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

(WebKit::WebProcessPool::webProcessDataStoreParameters):
(WebKit::WebProcessPool::setDomainsWithUserInteraction):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::hasHadUserInteraction const):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):
(WebKit::WebProcess::setDomainsWithUserInteraction):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
9:00 PM Changeset in webkit [263382] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver][GTK] Mark two scrolling tests as fail

Unreviewed test gardening.

They are failing because element.location expects Get_Element_Rect to
return page coordinates instead of the browsing context coordinates.
There an open issue at https://github.com/w3c/webdriver/issues/1533
to clarify the correct behavior. Meanwhile, we should mark them as
failure.

The change that introduced this new behavior was r262997, and its bug
is used as the reference bug for these expectations.

8:25 PM Changeset in webkit [263381] by Chris Dumez
  • 26 edits
    3 copies in trunk

Introduce BaseAudioContext interface
https://bugs.webkit.org/show_bug.cgi?id=213491

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:

Source/WebCore:

Introduce BaseAudioContext interface as per W3C WebAudio specification:

No new tests, rebaselined existing test.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::close):
(WebCore::AudioContext::createMediaElementSource):
(WebCore::AudioContext::createMediaStreamSource):
(WebCore::AudioContext::createMediaStreamDestination):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::contextForBindings const):

  • Modules/webaudio/AudioNode.h:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/BaseAudioContext.cpp: Copied from Source/WebCore/Modules/webaudio/AudioContext.cpp.

(WebCore::BaseAudioContext::isSampleRateRangeGood):
(WebCore::AudioContextBase::AudioContextBase):
(WebCore::BaseAudioContext::BaseAudioContext):
(WebCore::BaseAudioContext::constructCommon):
(WebCore::BaseAudioContext::~BaseAudioContext):
(WebCore::BaseAudioContext::lazyInitialize):
(WebCore::BaseAudioContext::clear):
(WebCore::BaseAudioContext::uninitialize):
(WebCore::BaseAudioContext::isInitialized const):
(WebCore::BaseAudioContext::addReaction):
(WebCore::BaseAudioContext::setState):
(WebCore::BaseAudioContext::stop):
(WebCore::BaseAudioContext::suspend):
(WebCore::BaseAudioContext::resume):
(WebCore::BaseAudioContext::activeDOMObjectName const):
(WebCore::AudioContextBase::document const):
(WebCore::BaseAudioContext::hostingDocumentIdentifier const):
(WebCore::BaseAudioContext::isSuspended const):
(WebCore::BaseAudioContext::visibilityStateChanged):
(WebCore::BaseAudioContext::wouldTaintOrigin const):
(WebCore::BaseAudioContext::createBuffer):
(WebCore::BaseAudioContext::decodeAudioData):
(WebCore::BaseAudioContext::createBufferSource):
(WebCore::BaseAudioContext::createScriptProcessor):
(WebCore::BaseAudioContext::createBiquadFilter):
(WebCore::BaseAudioContext::createWaveShaper):
(WebCore::BaseAudioContext::createPanner):
(WebCore::BaseAudioContext::createConvolver):
(WebCore::BaseAudioContext::createDynamicsCompressor):
(WebCore::BaseAudioContext::createAnalyser):
(WebCore::BaseAudioContext::createGain):
(WebCore::BaseAudioContext::createDelay):
(WebCore::BaseAudioContext::createChannelSplitter):
(WebCore::BaseAudioContext::createChannelMerger):
(WebCore::BaseAudioContext::createOscillator):
(WebCore::BaseAudioContext::createPeriodicWave):
(WebCore::BaseAudioContext::notifyNodeFinishedProcessing):
(WebCore::BaseAudioContext::derefFinishedSourceNodes):
(WebCore::BaseAudioContext::refNode):
(WebCore::BaseAudioContext::derefNode):
(WebCore::BaseAudioContext::derefUnfinishedSourceNodes):
(WebCore::BaseAudioContext::lock):
(WebCore::BaseAudioContext::tryLock):
(WebCore::BaseAudioContext::unlock):
(WebCore::BaseAudioContext::isAudioThread const):
(WebCore::BaseAudioContext::isGraphOwner const):
(WebCore::BaseAudioContext::addDeferredFinishDeref):
(WebCore::BaseAudioContext::handlePreRenderTasks):
(WebCore::BaseAudioContext::handlePostRenderTasks):
(WebCore::BaseAudioContext::handleDeferredFinishDerefs):
(WebCore::BaseAudioContext::markForDeletion):
(WebCore::BaseAudioContext::scheduleNodeDeletion):
(WebCore::BaseAudioContext::deleteMarkedNodes):
(WebCore::BaseAudioContext::markSummingJunctionDirty):
(WebCore::BaseAudioContext::removeMarkedSummingJunction):
(WebCore::BaseAudioContext::eventTargetInterface const):
(WebCore::BaseAudioContext::markAudioNodeOutputDirty):
(WebCore::BaseAudioContext::handleDirtyAudioSummingJunctions):
(WebCore::BaseAudioContext::handleDirtyAudioNodeOutputs):
(WebCore::BaseAudioContext::addAutomaticPullNode):
(WebCore::BaseAudioContext::removeAutomaticPullNode):
(WebCore::BaseAudioContext::updateAutomaticPullNodes):
(WebCore::BaseAudioContext::processAutomaticPullNodes):
(WebCore::AudioContextBase::scriptExecutionContext const):
(WebCore::BaseAudioContext::nodeWillBeginPlayback):
(WebCore::shouldDocumentAllowWebAudioToAutoPlay):
(WebCore::BaseAudioContext::willBeginPlayback):
(WebCore::BaseAudioContext::willPausePlayback):
(WebCore::BaseAudioContext::startRendering):
(WebCore::BaseAudioContext::mediaCanStart):
(WebCore::BaseAudioContext::mediaState const):
(WebCore::BaseAudioContext::pageMutedStateDidChange):
(WebCore::BaseAudioContext::isPlayingAudioDidChange):
(WebCore::BaseAudioContext::finishedRendering):
(WebCore::BaseAudioContext::dispatchEvent):
(WebCore::BaseAudioContext::incrementActiveSourceCount):
(WebCore::BaseAudioContext::decrementActiveSourceCount):
(WebCore::BaseAudioContext::suspendRendering):
(WebCore::BaseAudioContext::resumeRendering):
(WebCore::BaseAudioContext::suspendPlayback):
(WebCore::BaseAudioContext::mayResumePlayback):
(WebCore::BaseAudioContext::postTask):
(WebCore::BaseAudioContext::origin const):
(WebCore::BaseAudioContext::addConsoleMessage):
(WebCore::BaseAudioContext::clearPendingActivity):
(WebCore::BaseAudioContext::makePendingActivity):
(WebCore::BaseAudioContext::logChannel const):

  • Modules/webaudio/BaseAudioContext.h: Copied from Source/WebCore/Modules/webaudio/AudioContext.h.

(WebCore::AudioContextBase::AutoLocker::AutoLocker):
(WebCore::AudioContextBase::AutoLocker::~AutoLocker):
(WebCore::BaseAudioContext::destination):
(WebCore::BaseAudioContext::activeSourceCount const):
(WebCore::BaseAudioContext::listener):
(WebCore::BaseAudioContext::state const):
(WebCore::BaseAudioContext::isClosed const):
(WebCore::BaseAudioContext::connectionCount const):
(WebCore::BaseAudioContext::audioThread const):
(WebCore::BaseAudioContext::maxNumberOfChannels):
(WebCore::BaseAudioContext::destinationNode const):
(WebCore::BaseAudioContext::userGestureRequiredForAudioStart const):
(WebCore::BaseAudioContext::pageConsentRequiredForAudioStart const):
(isType):

  • Modules/webaudio/BaseAudioContext.idl: Copied from Source/WebCore/Modules/webaudio/AudioContext.idl.
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::OfflineAudioContext):

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

(WebCore::PannerNode::PannerNode):

  • Modules/webaudio/PannerNode.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:
  • testing/Internals.cpp:

(WebCore::Internals::setAudioContextRestrictions):

  • testing/Internals.h:
  • testing/Internals.idl:
6:28 PM Changeset in webkit [263380] by sbarati@apple.com
  • 21 edits
    1 add in trunk

Allow building JavaScriptCore Mac+arm64 in public SDK build
https://bugs.webkit.org/show_bug.cgi?id=213472

Reviewed by Sam Weinig.

.:

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

We used to only builld code for fast permission switching when using the
Apple internal SDK. However, with arm64 on macOS, this is no longer a viable
implementation strategy.

This patch makes it so we can build JSC on macOS+arm64 using the public Xcode
SDK.

  • ENABLE_FAST_JIT_PERMISSIONS is removed. We now use runtime checks instead.
  • In the new suite of OS betas, pthreads has added API for fast permissions switching. We now use this API instead of using the non-public SDK found in the kernel headers.
  • We fall back to the separated W/X heaps when fast permissions checking is not supported. This all happens at runtime.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::fillNops):

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::fillNops):

  • assembler/FastJITPermissions.h: Added.

(useFastJITPermissions):
(threadSelfRestrictRWXToRW):
(threadSelfRestrictRWXToRX):
(fastJITPermissionsIsSupported):

  • assembler/LinkBuffer.cpp:

(JSC::memcpyWrapper):
(JSC::LinkBuffer::copyCompactAndLinkCode):

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::fillNops):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::link):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::link):

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):
(JSC::useFastJITPermissions): Deleted.

  • runtime/JSCConfig.h:
  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:

Source/WTF:

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:
6:23 PM Changeset in webkit [263379] by Fujii Hironori
  • 3 edits
    2 deletes in trunk

[Win] fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=213452

Reviewed by Yusuke Suzuki.

Tools:

If window.alert() was given an invalid UTF-16 sequence, Windows
DumpRenderTree output it without any conversions. It should output
"(null)" to match with WebKitTestRunner behavior.

  • DumpRenderTree/win/UIDelegate.cpp:

(toMessage): Added
(UIDelegate::runJavaScriptAlertPanelWithMessage):
(UIDelegate::runJavaScriptConfirmPanelWithMessage):
(UIDelegate::runJavaScriptTextInputPanelWithPrompt):
(UIDelegate::runBeforeUnloadConfirmPanelWithMessage):
(UIDelegate::setStatusText):

LayoutTests:

  • platform/win/fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt: Removed.
  • platform/wincairo/fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt: Removed.
4:54 PM Changeset in webkit [263378] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

AXIsolatedTree::generateSubtree should properly assign the generated subtree to its parent node.
https://bugs.webkit.org/show_bug.cgi?id=213435

Reviewed by Darin Adler.

AXIsolatedTree::generateSubtree now properly updates the children IDs
of the parent node of the subtree being generated.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::generateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateChildrenIDs):
(WebCore::AXIsolatedTree::generateSubtree): Takes the parent object
instead of the parent ID. This allows to retrieve the children IDs of
the parent object.
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateSubtree):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::setRootNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::appendNodeChanges): R-value parameter instead
of by reference.

  • accessibility/isolatedtree/AXIsolatedTree.h:
4:44 PM Changeset in webkit [263377] by Devin Rousso
  • 3 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 Timothy Hatcher.

  • UserInterface/Views/Variables.css:

(body.mac-platform:not(.big-sur):not(.docked)): Added.
(body.mac-platform.big-sur:not(.docked)): Added.
(body.mac-platform:not(.docked)): Deleted.

  • UserInterface/Base/Platform.js:

Add logic for detecting macOS Big Sur (and Catalina).

4:43 PM Changeset in webkit [263376] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Node: use a WI.ContextMenu instead of a <select> for listener filtering
https://bugs.webkit.org/show_bug.cgi?id=213492

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):
(WI.DOMNodeDetailsSidebarPanel.prototype._populateEventListenersFilterContextMenu): Added.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.css:

(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter > select): Deleted.

  • Localizations/en.lproj/localizedStrings.js:
4:42 PM Changeset in webkit [263375] by timothy_horton@apple.com
  • 4 edits in trunk/Source/ThirdParty/libwebrtc

libwebrtc fails to build on arm64
https://bugs.webkit.org/show_bug.cgi?id=213476

Reviewed by Maciej Stachowiak.

  • Configurations/libvpx.xcconfig:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/opus.xcconfig:

Use architecture conditionals instead of SDK conditionals for code that is
architecture-dependent.

Remove an macOS-version-dependent definition of EXCLUDED_SOURCE_FILE_NAMES
which is no longer used after r232665.

4:01 PM Changeset in webkit [263374] by wenson_hsieh@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] WebPageProxy::setPromisedDataForImage should sanitize its filename
https://bugs.webkit.org/show_bug.cgi?id=213486
<rdar://problem/56522262>

Reviewed by Megan Gardner.

Ensure that the filename passed into WebPageProxy::setPromisedDataForImage is sanitized in the UI process prior
to being used as a suggested filename when writing a dragged image to the pasteboard.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setPromisedDataForImage):

3:25 PM Changeset in webkit [263373] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

WebEx can not share video from Safari on arm64
https://bugs.webkit.org/show_bug.cgi?id=213481

Reviewed by Dean Jackson.

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::needsAppleCameraService):
(WebKit::UserMediaProcessManager::willCreateMediaStream):
(WebKit::UserMediaProcessManager::revokeSandboxExtensionsIfNeeded):
Pass sandbox extension for "com.apple.applecamerad" to the Web Content
process after the user allows camera access, when running on hardware which requires it.

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

Make it possible to dynamically extend the sandbox as above.

3:17 PM Changeset in webkit [263372] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Cannot play back encrypted media on arm64
https://bugs.webkit.org/show_bug.cgi?id=213483

Reviewed by Jer Noble and Per Arne Vollan.

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

Extend the sandbox as necessary for encrypted media support.

3:17 PM Changeset in webkit [263371] by sbarati@apple.com
  • 2 edits in trunk/Source/bmalloc

Only use vm_kernel_page_size on arm architectures
https://bugs.webkit.org/show_bug.cgi?id=213474

Reviewed by Sam Weinig.

We don't want to use this under catalyst.

  • bmalloc/VMAllocate.h:

(bmalloc::vmPageSizePhysical):

3:17 PM Changeset in webkit [263370] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

Fix the build

  • wtf/TranslatedProcess.h:

(WTF::isX86BinaryRunningOnARM):

2:57 PM Changeset in webkit [263369] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Public API should not allow trying to register a special URI scheme
https://bugs.webkit.org/show_bug.cgi?id=209900
<rdar://problem/61200217>

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-22
Reviewed by Adrian Perez de Castro

Epiphany prior to 3.36 registers a scheme handler for ftp. This introduced criticals. Let's
use g_warning() instead, and avoid hardcoding the list of disallowed schemes.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_register_uri_scheme):

2:55 PM Changeset in webkit [263368] by jer.noble@apple.com
  • 2 edits in trunk/Tools

[ macOS iOS ] (r263321): TestWebKitAPI.SleepDisabler.Load & TestWebKitAPI.SleepDisabler.Reload are constant failures
https://bugs.webkit.org/show_bug.cgi?id=213475
<rdar://problem/64603555>

Reviewed by Eric Carlson.

Looks like the SleepDisabler can come and go while the TestWebKitAPI process is spinning, so make the
Reload and Load tests more deterministic by only checking SleepDisabler after getting a "playing" message
from the WebContent process.

  • TestWebKitAPI/Tests/WebKit/SleepDisabler.mm:

(SleepDisabler::runAndWaitUntilPlaying):
(SleepDisabler::loadPlayingPage):
(TEST_F):

2:53 PM Changeset in webkit [263367] by Jonathan Bedard
  • 2 edits in trunk/Tools

resultsdbpy: Make architecture differences explicit
https://bugs.webkit.org/show_bug.cgi?id=213473
<rdar://problem/64602736>

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/configuration.js:

(Configuration.prototype.toString):

2:24 PM Changeset in webkit [263366] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

dlopen() always fails on arm64, cannot load soft-linked libraries
https://bugs.webkit.org/show_bug.cgi?id=213480

Reviewed by Alexey Proskuryakov and Per Arne Vollan.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeSandboxParameters):
Expose the auxiliary process' CPU family as a parameter to the sandbox profile,
so that it can be used to predicate sandbox expressions.

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

Allow mremap_encrypted from the Web Content process, because the arm64 dlopen() needs it.

2:05 PM Changeset in webkit [263365] by timothy_horton@apple.com
  • 6 edits
    1 add in trunk/Source

Disable the JS JIT when running in a translated process
https://bugs.webkit.org/show_bug.cgi?id=213478

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):
Based on our performance experiements, disable the JavaScript JIT
(but not the regular expression, DOM, or Wasm JIT) when running
in a translated process.

Source/WTF:

  • wtf/PlatformHave.h:
  • wtf/TranslatedProcess.h: Added.
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:

Add a helper function that can be used to determine that the current process
is being translated; currently the only case is an x86_64 process running on arm64e.

1:48 PM Changeset in webkit [263364] by timothy_horton@apple.com
  • 65 edits in trunk

Update macOS version macros
https://bugs.webkit.org/show_bug.cgi?id=213484

Reviewed by Alexey Proskuryakov.

Source/bmalloc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/DebugProject.xcconfig:
  • gtest/xcode/Config/ReleaseProject.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebInspectorUI:

  • Configurations/DebugRelease.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/Base.xcconfig:
  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/Base.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/Base.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/Base.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
1:46 PM Changeset in webkit [263363] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

sysctl() fails due to sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=213482

Reviewed by Maciej Stachowiak.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

Extend the sandbox as necessary to make sysctl calls work.

1:24 PM Changeset in webkit [263362] by timothy_horton@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

WebGL cannot create a context if there is no GPU on the PCIe bus
https://bugs.webkit.org/show_bug.cgi?id=213479

Reviewed by Maciej Stachowiak and Dean Jackson.

  • src/gpu_info_util/SystemInfo_macos.mm:

(angle::GetSystemInfo):
Do not bail from WebGL initialization if there are no GPUs on the PCIe bus.
Instead, continue on to context creation, and allow the system frameworks
to return an error if there truly is no GPU.

1:22 PM Changeset in webkit [263361] by timothy_horton@apple.com
  • 5 edits in trunk/Tools

API Test WeakLinking.WeakImport fails on arm64
https://bugs.webkit.org/show_bug.cgi?id=213477

Reviewed by Alexey Proskuryakov.

  • TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-iOS-v2.tbd:
  • TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-iOS.tbd:
  • TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-macOS-v2.tbd:
  • TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-macOS.tbd:

Add this architecture to the TBD files.

12:59 PM Changeset in webkit [263360] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r263121): [ Catalina Debug ] media/video-fullscreen-only-playback.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213407
<rdar://problem/64545587>

Unreviewed speculative change as I have not been able to reproduce the reported bug.

  • media/video-fullscreen-only-playback.html:
12:26 PM Changeset in webkit [263359] by commit-queue@webkit.org
  • 7 edits in trunk

Added getFloatTimeDomainData method to AnalyserNode
https://bugs.webkit.org/show_bug.cgi?id=213393

Patch by Clark Wang <clark_wang@apple.com> on 2020-06-22
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined test to show a new passing test.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:

Source/WebCore:

Added getFloatTimeDomainData method, as per spec: https://www.w3.org/TR/webaudio/#analysernode.
Implementation of RealtimeAnalyser::getFloatTimeDomainData(Float32Array* destinationArray) is based on:
https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/modules/webaudio/realtime_analyser.cc.
Removed nullable option from some AnalyserNode methods.

Re-baselined existing tests to show new passing test.

  • Modules/webaudio/AnalyserNode.h:
  • Modules/webaudio/AnalyserNode.idl:
  • Modules/webaudio/RealtimeAnalyser.cpp:

(WebCore::RealtimeAnalyser::getFloatFrequencyData):
(WebCore::RealtimeAnalyser::getByteFrequencyData):
(WebCore::RealtimeAnalyser::getFloatTimeDomainData):
(WebCore::RealtimeAnalyser::getByteTimeDomainData):

  • Modules/webaudio/RealtimeAnalyser.h:
11:58 AM Changeset in webkit [263358] by Jonathan Bedard
  • 2 edits in trunk/Tools

Bring up watchOS/tvOS on build.webkit.org (Follow-up fix x3)
https://bugs.webkit.org/show_bug.cgi?id=213402
<rdar://problem/64542588>

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot): 64 bit is more correct for watchOS embedded builds.

10:43 AM Changeset in webkit [263357] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, re-landing r262904.

r263223 should fix the test flakiness we saw.

Re-landed changeset:

"[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on
a timer"
https://bugs.webkit.org/show_bug.cgi?id=213063
https://trac.webkit.org/changeset/262904

10:20 AM Changeset in webkit [263356] by commit-queue@webkit.org
  • 16 edits
    8 adds in trunk

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-22
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Fix wrong resource file name usage.

  • web-platform-tests/referrer-policy/generic/multiple-headers-and-values.html:
  • web-platform-tests/referrer-policy/generic/multiple-headers-combined.html:
  • web-platform-tests/referrer-policy/generic/multiple-headers-one-invalid.html:
  • web-platform-tests/referrer-policy/generic/multiple-headers-one-unknown-token.html:
  • web-platform-tests/referrer-policy/generic/multiple-headers.html:

Source/WebCore:

Add support for referrerpolicy attribute handling on
link prefetch/preload/stylesheet.

Tests: http/tests/security/referrer-policy-attribute-style-no-referrer.html

http/wpt/preload/refferer-policy.html

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::setReferrerPolicyForBindings):
(WebCore::HTMLLinkElement::referrerPolicyForBindings const):
(WebCore::HTMLLinkElement::referrerPolicy const):

  • html/HTMLLinkElement.h:
  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader):
(WebCore::LinkLoader::preloadIfNeeded):
(WebCore::LinkLoader::prefetchIfNeeded):

  • loader/LinkLoader.h:

LayoutTests:

Add a tests for <link rel="stylesheet">, <link rel="preload"> and the
referrerpolicy attribute.
Unskip the referrer-policy/generic/link-rel-prefetch.html test.

  • TestExpectations:
  • http/tests/security/referrer-policy-attribute-style-no-referrer-expected.html: Added.
  • http/tests/security/referrer-policy-attribute-style-no-referrer.html: Added.
  • http/tests/security/resources/green-background.css: Added.

(body):

  • http/tests/security/resources/green-if-no-referrer-css.php: Added.
  • http/tests/security/resources/pass-if-no-referrer.php: Added.
  • http/wpt/preload/refferer-policy-expected.txt: Added.
  • http/wpt/preload/refferer-policy.html: Added.
  • http/wpt/preload/resources/referrer-img.py: Added.

(main):

10:01 AM Changeset in webkit [263355] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix build error with release build and "#define LOG_DISABLED 0"
https://bugs.webkit.org/show_bug.cgi?id=213420

Reviewed by Sam Weinig.

AnimationBase::updateStateMachine() uses LOG_ERROR so needs to test ERROR_DISABLED not LOG_DISABLED.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):

9:58 AM Changeset in webkit [263354] by aestes@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r263150): http/tests/ssl/applepay/ApplePayInstallmentItems.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=213466
<rdar://problem/64537600>

Reviewed by Tim Horton.

  • http/tests/ssl/applepay/ApplePayInstallmentItems.https.html: Restored two lines of code

that were accidentally removed in r263150 and are necessary for the test to pass.

9:34 AM Changeset in webkit [263353] by commit-queue@webkit.org
  • 7 edits in trunk

Fix the case of "null type Blob slice" in wpt/FileAPI/blob/Blob-slice.html
https://bugs.webkit.org/show_bug.cgi?id=213370

Patch by Tetsuharu Ohzeki <tetsuharu.ohzeki@gmail.com> on 2020-06-22
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/FileAPI/blob/Blob-slice-expected.txt:

Source/WebCore:

  • fileapi/Blob.h:

(WebCore::Blob::slice const):
Remove unnecessary default arguments
These default arguments are introduced in r83873
but we don't need them because WebIDL binding handles them.

  • In the previous code, we use optional DOMString? for the _contentType_ arguments for Blob.slice(). Then, our codegen generates a code which uses convert<IDLNullable<IDLDOMString>> and it returns String() if the JS value is null. This caused the failure case in this change.

LayoutTests:

  • http/tests/local/fileapi/send-sliced-dragged-file-expected.txt:
  • http/tests/local/fileapi/send-sliced-dragged-file.html:
9:31 AM Changeset in webkit [263352] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Code cleanup in WebAccessibilityObjectWrapper updateObjectBackingStore and position.
https://bugs.webkit.org/show_bug.cgi?id=213438

Reviewed by Darin Adler.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
Removed unnecessary call to axBackingObject.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper position]):
Check for isIsolatedTreeEnabled instead of for the request thread,
since isolated tree mode = 1 runs on the main thread.

9:15 AM Changeset in webkit [263351] by youenn@apple.com
  • 6 edits in trunk

[WebRTC] Add support for freeze/pause receiver stats
https://bugs.webkit.org/show_bug.cgi?id=212938
<rdar://problem/64141493>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by updated tests.

Receiver stats are useful to check for freezes.
Let's introduce it in 'track' stats for now, we will later on move all
'receiver' stats to its own object once we fully align with spec.

  • Modules/mediastream/RTCStatsReport.h:
  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillRTCMediaStreamTrackStats):

LayoutTests:

  • webrtc/video-mediastreamtrack-stats.html:
9:09 AM Changeset in webkit [263350] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Image crossorigin mutations should be considered "relevant mutations"
https://bugs.webkit.org/show_bug.cgi?id=213335

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

As follow up to r263345, this check is not needed after all since the for loop
already does the same check.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):

8:26 AM Changeset in webkit [263349] by Jason_Lawrence
  • 21 edits in trunk/Source/WebCore

Unreviewed, reverting r263331.

This commit was causing 50+ iOS debug tests to crash.

Reverted changeset:

"Convert DateComponents parsing code to use Optional based
return values rather than out-parameters"
https://bugs.webkit.org/show_bug.cgi?id=213440
https://trac.webkit.org/changeset/263331

8:06 AM Changeset in webkit [263348] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

[ macOS iOS ] REGRESSION: fast/mediastream/mediastrea mtrack-video-frameRate-clon e-increasing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213461

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:32 AM Changeset in webkit [263347] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Switch contributors.json url from trac to svn server
https://bugs.webkit.org/show_bug.cgi?id=213457

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ValidateCommiterAndReviewer):
(ValidateCommiterAndReviewer.load_contributors_from_trac):

5:28 AM Changeset in webkit [263346] by svillar@igalia.com
  • 7 edits
    2 adds in trunk

[WebXR] Add a preliminary implementation of XRWebGLLayer
https://bugs.webkit.org/show_bug.cgi?id=213022

Reviewed by Carlos Garcia Campos.

LayoutTests/imported/w3c:

Added new expectations.

  • web-platform-tests/webxr/xrWebGLLayer_constructor.https-expected.txt: Added.
  • web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt: Added.

Source/WebCore:

Added a preliminary implementation of XRWebGLLayer. It does not have any functionality at the moment so
it cannot be used to render WebXR stuff. This patch adds all the machinery required to create and properly
initialize the layer according to the spec.

Two new wpt tests are passing now.

  • Modules/webxr/WebXRSession.h: Expose session mode.
  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::create): Implemented spec for XRWebGLLayer creation.
(WebCore::WebXRWebGLLayer::computeNativeWebGLFramebufferResolution): Added with mock implementation.
(WebCore::WebXRWebGLLayer::computeRecommendedWebGLFramebufferResolution): Added.
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
(WebCore::WebXRWebGLLayer::framebuffer const): Returned type should be a pointer.
(WebCore::WebXRWebGLLayer::framebufferWidth const): Return framebuffer width if available, otherwise return
the base context width.
(WebCore::WebXRWebGLLayer::framebufferHeight const): Ditto but with heights.
(WebCore::WebXRWebGLLayer::getNativeFramebufferScaleFactor): Implemented.

  • Modules/webxr/WebXRWebGLLayer.h: New methods and type adjustments.

LayoutTests:

  • platform/wpe/TestExpectations: Added 2 more tests that are passing now.
3:49 AM Changeset in webkit [263345] by commit-queue@webkit.org
  • 10 edits in trunk

Image crossorigin mutations should be considered "relevant mutations"
https://bugs.webkit.org/show_bug.cgi?id=213335

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

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/html/canvas/element/drawing-images-to-the-canvas/drawimage_crossorigin.sub-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations-expected.txt:

Source/WebCore:

Make crossorigin attribute's state changes relevant mutations [1]. This change
also fixes several picture related mutations to be relevant [2].

Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html

[1] https://html.spec.whatwg.org/#reacting-to-dom-mutations:attr-img-crossorigin
[2] https://html.spec.whatwg.org/#reacting-to-dom-mutations

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::evaluateDynamicMediaQueryDependencies):
(WebCore::HTMLImageElement::selectImageSource):
(WebCore::parseCrossoriginState):
(WebCore::HTMLImageElement::attributeChanged):
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::insertedIntoAncestor):
(WebCore::HTMLImageElement::removedFromAncestor):

  • html/HTMLImageElement.h:
  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedIntoAncestor):
(WebCore::HTMLSourceElement::removedFromAncestor):
(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:
  • loader/ImageLoader.h:
2:23 AM Changeset in webkit [263344] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Persist sccache auth token across flatpak updates
https://bugs.webkit.org/show_bug.cgi?id=213427

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

After a successful flatpak update check if an sccache auth token exists and reuse it when
updating the sccache config file.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.save_config):

12:50 AM Changeset in webkit [263343] by Carlos Garcia Campos
  • 4 edits in trunk/LayoutTests

[GTK] Ping attribute tests have been timeout since r204720
https://bugs.webkit.org/show_bug.cgi?id=162017

Reviewed by Adrian Perez de Castro.

The tests are using "TouchEvent" in window to check whether it's a touch screen and use
uiController.singleTapAtPoint() instead of the eventSender. TouchEvent is always added to the window object when
building with touch events enabled, which is the case of the GTK port. However, the ontouch event handlers are
added at runtime only when there's an actual touch screen (EnabledAtRuntime=TouchEvents). So, we can check
"ontouchstart" in window instead.

  • http/tests/inspector/network/ping-type.html:
  • http/tests/navigation/ping-attribute/resources/utilities.js:

(clickElement):

  • platform/gtk/TestExpectations:
12:18 AM Changeset in webkit [263342] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

WebKit fails to leave audio routing arbitration during navigation, closing.
https://bugs.webkit.org/show_bug.cgi?id=213426
<rdar://problem/64395051>

Unreviewed build fix for an unannotated switch fall-through between switch labels.

  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _audioRoutingArbitrationStatus]):

Jun 21, 2020:

11:51 PM Changeset in webkit [263341] by ysuzuki@apple.com
  • 3 edits in trunk/Source/WTF

[WTF] Ensure ASCIILiteral is ASCII characters at compile time
https://bugs.webkit.org/show_bug.cgi?id=213449

Reviewed by Ross Kirsling.

The purpose of ASCIILiteral is ensure that this is compile-time (do not need to consider about ownership) ASCII characters.
By using isASCII and ASSERT_UNDER_CONSTEXPR_CONTEXT, we can make sure that this C string does not include non ASCII characters.
For example,

auto globalVariable = "ラーメン (Ramen in Japanese)"_s;

becomes compile error.

  • wtf/ASCIICType.h:

(WTF::isASCII):

  • wtf/text/ASCIILiteral.h:

(WTF::StringLiterals::operator _s):

11:50 PM Changeset in webkit [263340] by ysuzuki@apple.com
  • 5 edits in trunk

[WTF] URL should support dataLog
https://bugs.webkit.org/show_bug.cgi?id=213450

Reviewed by Mark Lam.

Source/WTF:

Add URL::dump(PrintStream&) to support dataLog(url) which is extremely useful for WTF / JSC developers.

  • wtf/URL.cpp:

(WTF::URL::dump const):

  • wtf/URL.h:

Tools:

Add test for URL::dump.

  • TestWebKitAPI/Tests/WTF/URL.cpp:

(TestWebKitAPI::TEST_F):

9:43 PM Changeset in webkit [263339] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver][GTK] Some executing_async_javascript_tests.py tests are failing with TimeoutExceptions
https://bugs.webkit.org/show_bug.cgi?id=211496

Unreviewed test gardening.

The two tests started passing with the updated selenium imported
tests from r263264;

9:41 PM Changeset in webkit [263338] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

WebDriver: several tests in imported/selenium/py/test/selenium/webdriver/common/visibility_tests.py fail
https://bugs.webkit.org/show_bug.cgi?id=182334

Unreviewed test gardening.

The last two remaining tests from this bug started passing after the
imported selenium tests were updated in r263264.

9:39 PM Changeset in webkit [263337] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

WebDriver: two selenium alert tests are failing
https://bugs.webkit.org/show_bug.cgi?id=181727

Unreviewed test gardening.

These tests also have been passing since r262861.

9:38 PM Changeset in webkit [263336] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver][GTK] Gardening failures related to missing selenium files

Unreviewed test gardening.

The relative_by_tests require some JS fragments built by Bazel,
Selenium's build tool.

3:58 PM Changeset in webkit [263335] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Attempt to unskip stress test array-buffer-view-watchpoint-can-be-fired-really-add-in-dfg.js on most architectures
https://bugs.webkit.org/show_bug.cgi?id=213433

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-21
Reviewed by Darin Adler.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
3:47 PM Changeset in webkit [263334] by weinig@apple.com
  • 43 edits in trunk/Source/WebCore

Convert much of the SVG string parsing code to use Optional based return values rather than out-parameters
https://bugs.webkit.org/show_bug.cgi?id=213416

Reviewed by Darin Adler.

Update SVG parsers to use Optional style return programming rather than out parameters.
To make things even nicer, SVGPathSource based parsers now have a type per-parse function,
which makes working with them much easier. In the future, we should consider exanding these
new types to be used by SVGPathConsumer family of classes as well.

  • WebCore.xcodeproj/project.pbxproj:

Add SVGPathSegValue.h, which was missing from the Xcode project.

  • svg/SVGAngleValue.cpp:

(WebCore::parseAngleType):
(WebCore::SVGAngleValue::setValueAsString):
Adopt updated parseNumber() function, and do a drive by removal of an easy to remove
upconvertedCharacters.

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::calculateToAtEndOfDurationValue):
(WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
(WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
(WebCore::SVGAnimateMotionElement::calculateDistance):
Now uses new parsePoint() function. Using Optional.valueOr() where
the old code would have had parsePoint() doing the clearing.

  • svg/SVGAnimationElement.cpp:

(WebCore::parseKeySplines):
Now returns an Optional<Vector<UnitBezier>>.
(WebCore::SVGAnimationElement::parseAttribute):
Now uses new parseKeySplines, and does an explicit clear on parse failure (old code
did it implicitly in the parse function).

  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::parseAttribute):

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::parseAttribute):

  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::parseAttribute):

  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::parseAttribute):

  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::parseAttribute):

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::parseAttribute):

  • svg/SVGFETurbulenceElement.cpp:

(WebCore::SVGFETurbulenceElement::parseAttribute):
Adopt Optional based parseNumberOptionalNumber.

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::parseAttribute):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::parseAttribute):
Simplify by using the SVGPreserveAspectRatioValue constructor
which calls parse. No need for three lines.

  • svg/SVGFitToViewBox.cpp:

(WebCore::SVGFitToViewBox::parseAttribute):
Adopt new Optional based parseViewBox.
Simplify by using the SVGPreserveAspectRatioValue constructor
which calls parse. No need for three lines.

(WebCore::SVGFitToViewBox::parseViewBox):
Convert to be Optional based, and adopt new parseNumber functions.

  • svg/SVGFitToViewBox.h:

Updated signatures for new Optional based functions.

  • svg/SVGGlyphRefElement.cpp:

(WebCore::parseFloat):
Adopt Optional based parseNumber.

  • svg/SVGHKernElement.cpp:

(WebCore::SVGHKernElement::buildHorizontalKerningPair const):

  • svg/SVGHKernElement.h:
  • svg/SVGVKernElement.cpp:

(WebCore::SVGVKernElement::buildVerticalKerningPair const):

  • svg/SVGVKernElement.h:

Convert to be Optional based. Update a few callers to use makeString.

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::addKerningPair const):
(WebCore::SVGToOTFFontConverter::appendKERNSubtable):
Adopt new Optional based kerning pair builders. Add some moves
to avoid some copies.

  • svg/SVGLengthValue.cpp:

(WebCore::SVGLengthValue::setValueAsString):
Adopt Optional based parseNumber.

  • svg/SVGNumberList.h:

(WebCore::SVGNumberList::parse):
Adopt Optional based parseNumber.

  • svg/SVGParserUtilities.cpp:

(WebCore::genericParseNumber):
(WebCore::parseNumber):
(WebCore::genericParseArcFlag):
(WebCore::parseArcFlag):
(WebCore::parseNumberOptionalNumber):
(WebCore::parsePoint):
(WebCore::parseRect):
(WebCore::parseGlyphName):
(WebCore::parseUnicodeRange):
(WebCore::parseKerningUnicodeString):
(WebCore::genericParseFloatPoint):
(WebCore::parseFloatPoint):
(WebCore::parseSVGNumber): Deleted.
(WebCore::parseNumberFromString): Deleted.
(WebCore::parseDelimitedString): Deleted.
(WebCore::parseFloatPoint2): Deleted.
(WebCore::parseFloatPoint3): Deleted.

  • svg/SVGParserUtilities.h:

(WebCore::isSVGSpace):
(WebCore::skipOptionalSVGSpaces):
(WebCore::skipOptionalSVGSpacesOrDelimiter):

  • Converts parse* functions to return Optional values rather than using outparameters.
  • Removes unused parseSVGNumber and parseDelimitedString.
  • Removes parseFloatPoint2 and parseFloatPoint3. They weren't useful enough to keep around.
  • Renames parseNumberFromString to parseNumber. The argument is a String, it's clear enough.
  • Replace boolean skip parameters with new enum SuffixSkippingPolicy.
  • Make parseFloatPoint have two overloads rather than being templatized to be consistent.
  • svg/SVGPathBlender.cpp:

(WebCore::pullFromSources):
(WebCore::SVGPathBlender::blendMoveToSegment):
(WebCore::SVGPathBlender::blendLineToSegment):
(WebCore::SVGPathBlender::blendLineToHorizontalSegment):
(WebCore::SVGPathBlender::blendLineToVerticalSegment):
(WebCore::SVGPathBlender::blendCurveToCubicSegment):
(WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
(WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
(WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
(WebCore::SVGPathBlender::blendArcToSegment):
(WebCore::SVGPathBlender::canBlendPaths):
(WebCore::SVGPathBlender::blendAnimatedPath):
Update to adopt new SVGPathSource interface. Added pullFromSources helper
which substantially simplifies pulling from both the from and to source at
the same time and is now possible due to all the SVGPathSource functions
returning the segment types rather than taking them as out parameters.

  • svg/SVGPathByteStreamSource.cpp:

(WebCore::SVGPathByteStreamSource::nextCommand):
(WebCore::SVGPathByteStreamSource::parseSVGSegmentType):
(WebCore::SVGPathByteStreamSource::parseMoveToSegment):
(WebCore::SVGPathByteStreamSource::parseLineToSegment):
(WebCore::SVGPathByteStreamSource::parseLineToHorizontalSegment):
(WebCore::SVGPathByteStreamSource::parseLineToVerticalSegment):
(WebCore::SVGPathByteStreamSource::parseCurveToCubicSegment):
(WebCore::SVGPathByteStreamSource::parseCurveToCubicSmoothSegment):
(WebCore::SVGPathByteStreamSource::parseCurveToQuadraticSegment):
(WebCore::SVGPathByteStreamSource::parseCurveToQuadraticSmoothSegment):
(WebCore::SVGPathByteStreamSource::parseArcToSegment):

  • svg/SVGPathByteStreamSource.h:

Adopt new SVGPathSource interface.

  • svg/SVGPathParser.cpp:

(WebCore::SVGPathParser::parseMoveToSegment):
(WebCore::SVGPathParser::parseLineToSegment):
(WebCore::SVGPathParser::parseLineToHorizontalSegment):
(WebCore::SVGPathParser::parseLineToVerticalSegment):
(WebCore::SVGPathParser::parseCurveToCubicSegment):
(WebCore::SVGPathParser::parseCurveToCubicSmoothSegment):
(WebCore::SVGPathParser::parseCurveToQuadraticSegment):
(WebCore::SVGPathParser::parseCurveToQuadraticSmoothSegment):
(WebCore::SVGPathParser::parseArcToSegment):
(WebCore::SVGPathParser::parsePathData):
Adapt to new SVGPathSource interface. Code reads a bit nicer now
that we don't have a ton of local variables in each method. Could
be made nicer in the future by adopting Segment types in the path
consumer code.

  • svg/SVGPathSegListSource.cpp:

(WebCore::SVGPathSegListSource::nextCommand):
(WebCore::SVGPathSegListSource::parseSVGSegmentType):
(WebCore::SVGPathSegListSource::parseMoveToSegment):
(WebCore::SVGPathSegListSource::parseLineToSegment):
(WebCore::SVGPathSegListSource::parseLineToHorizontalSegment):
(WebCore::SVGPathSegListSource::parseLineToVerticalSegment):
(WebCore::SVGPathSegListSource::parseCurveToCubicSegment):
(WebCore::SVGPathSegListSource::parseCurveToCubicSmoothSegment):
(WebCore::SVGPathSegListSource::parseCurveToQuadraticSegment):
(WebCore::SVGPathSegListSource::parseCurveToQuadraticSmoothSegment):
(WebCore::SVGPathSegListSource::parseArcToSegment):

  • svg/SVGPathSegListSource.h:

Adopt new SVGPathSource interface.

  • svg/SVGPathSource.h:

Update interface to return Optionals, with a specific type for
segment kind that be parsed.

  • svg/SVGPathStringSource.cpp:

(WebCore::nextCommandHelper):
(WebCore::SVGPathStringSource::nextCommand):
(WebCore::parseSVGSegmentTypeHelper):
(WebCore::SVGPathStringSource::parseSVGSegmentType):
(WebCore::SVGPathStringSource::parseMoveToSegment):
(WebCore::SVGPathStringSource::parseLineToSegment):
(WebCore::SVGPathStringSource::parseLineToHorizontalSegment):
(WebCore::SVGPathStringSource::parseLineToVerticalSegment):
(WebCore::SVGPathStringSource::parseCurveToCubicSegment):
(WebCore::SVGPathStringSource::parseCurveToCubicSmoothSegment):
(WebCore::SVGPathStringSource::parseCurveToQuadraticSegment):
(WebCore::SVGPathStringSource::parseCurveToQuadraticSmoothSegment):
(WebCore::SVGPathStringSource::parseArcToSegment):
(WebCore::parseArcToSegmentHelper): Deleted.

  • svg/SVGPathStringSource.h:

Adopt new SVGPathSource interface. Replace out of line helpers (or use of things
like parseFloatPoint2) with generic lambda helpers, helping to keep the code more
localized.

  • svg/SVGPointList.h:

(WebCore::SVGPointList::parse):
Adopt Optional based parseNumber.

  • svg/SVGTransformList.h:
  • svg/SVGTransformable.cpp:

(WebCore::parseTransformParamList):
(WebCore::SVGTransformable::parseTransformValue):
(WebCore::SVGTransformable::parseAndSkipType):
(WebCore::SVGTransformable::parseTransformType):

  • svg/SVGTransformable.h:

Convert parseTransformValue/parseAndSkipType to be Optional based.

  • svg/SVGViewSpec.cpp:

(WebCore::SVGViewSpec::parseViewSpec):
Adopt Optional based parseViewBox.

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

Adopt Optional based parseNumber.

  • svg/properties/SVGPropertyTraits.h:

(WebCore::SVGPropertyTraits<float>::fromString):
(WebCore::SVGPropertyTraits<float>::parse):
(WebCore::SVGPropertyTraits<FloatPoint>::fromString):
(WebCore::SVGPropertyTraits<FloatPoint>::parse):
(WebCore::SVGPropertyTraits<FloatRect>::fromString):
(WebCore::SVGPropertyTraits<FloatRect>::parse):
Adopt Optional based parsers.

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

[Flatpak] Nightly runner fails to extract zip files
https://bugs.webkit.org/show_bug.cgi?id=213445

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-21
Reviewed by Darin Adler.

  • Scripts/webkit-flatpak-run-nightly: Ensure the buffered zip data is written to disk before

extraction.

1:20 PM Changeset in webkit [263332] by ggaren@apple.com
  • 3 edits in trunk/LayoutTests

compositing/video/video-border-radius-clipping.html was a flaky failure after r263223
https://bugs.webkit.org/show_bug.cgi?id=213424

Reviewed by Darin Adler.

The last attempt to unflake this test was r253310. Let's try again.

I took a screen recording of a few hundred loads of this test @ r263222,
and it looks like it was always possible for canplaythrough and seeked
to fire before the video had rendered its first frame. So, this is a
test issue.

The screen recording seems to show that waiting for
requestAnimationFrame ensures that the video renders its first frame.
This might be for a principled system vsync reason, or just a lucky
delay. Either way, the test seems less flaky now.

This might mean that we can remove the previous seeked event workaround,
but I chose not to tempt fate, and left it in place.

  • compositing/video/video-border-radius-clipping-expected.html:
  • compositing/video/video-border-radius-clipping.html:
  • media/video-test.js:

(_eventCallback):
(waitForEvent):

12:58 PM Changeset in webkit [263331] by weinig@apple.com
  • 21 edits in trunk/Source/WebCore

Convert DateComponents parsing code to use Optional based return values rather than out-parameters
https://bugs.webkit.org/show_bug.cgi?id=213440

Reviewed by Darin Adler.

Rework DateComponents and Date/Time related InputTypes to use Optional based programming
for parsing results. Also take the opportunity to remove unicode upconversion from
DateComponent parsing and instead separate UChar and LChar variants via templates.

  • html/BaseDateAndTimeInputType.cpp:
  • html/BaseDateAndTimeInputType.h:
  • html/DateInputType.cpp:
  • html/DateInputType.h:
  • html/DateTimeInputType.cpp:
  • html/DateTimeInputType.h:
  • html/DateTimeLocalInputType.cpp:
  • html/DateTimeLocalInputType.h:
  • html/HTMLInputElement.cpp:
  • html/HTMLInputElement.h:
  • html/InputType.cpp:
  • html/InputType.h:
  • html/MonthInputType.cpp:
  • html/MonthInputType.h:
  • html/TimeInputType.cpp:
  • html/TimeInputType.h:
  • html/WeekInputType.cpp:
  • html/WeekInputType.h:
    • Removes parseToDateComponentsInternal. No need it and parseToDateComponents.
    • Makes parseToDateComponents pure virtual. The old code had a default implementations down in InputType, but it had no callers.
    • Remove iOS vs. non-iOS difference for dateType(). It is now available on InputType on all platforms.
    • Make setMillisecondToDateComponents and parseToDateComponents return an Optional.
  • platform/DateComponents.cpp:
  • platform/DateComponents.h:
    • Replace member function based interfaces for parsing/setting explicit time offsets with new factory functions that return Optional<DateComponents>.
    • These factories are implemented using the existing member functions, which are now private.
    • Make max/min constants constexpr.
    • Make parse* member functions templates to allow factory parse functions to call them without upconverting.
    • Replace header guard with #pragma once.
11:43 AM Changeset in webkit [263330] by mmaxfield@apple.com
  • 1 edit
    3 adds in trunk/LayoutTests

fast/text/international/system-language/navigator-language/navigator-language tests are failing on Mojave
<rdar://problem/64468227>

Unreviewed test gardening.

  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Added.
10:13 AM Changeset in webkit [263329] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC] Add basic support for width: fit-content
https://bugs.webkit.org/show_bug.cgi?id=213444

Reviewed by Antti Koivisto.

Source/WebCore:

At this point this is just a shrink-to-fit sizing (missing the case when the available horizontal space is not specified).

Test: fast/layoutformattingcontext/fit-content-width-simple.html

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedWidthValue):

LayoutTests:

  • fast/layoutformattingcontext/fit-content-width-simple-expected.html: Added.
  • fast/layoutformattingcontext/fit-content-width-simple.html: Added.
8:34 AM Changeset in webkit [263328] by jer.noble@apple.com
  • 14 edits
    1 add in trunk

WebKit fails to leave audio routing arbitration during navigation, closing.
https://bugs.webkit.org/show_bug.cgi?id=213426
<rdar://problem/64395051>

Reviewed by Eric Carlson.

Source/WebCore:

When setting the AudioSession category, make sure to leave routing arbitration before bailing out early. Also,
HTMLMediaElement::canProduceAudio() should return false when the element's document is suspended or stopped.
Otherwise, the AudioSession will continue in the MediaPlayback category indefinitely, and routing arbitration
will remain active.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canProduceAudio const):

  • platform/audio/mac/AudioSessionMac.mm:

(WebCore::AudioSession::setCategory):

Source/WebKit:

Add testing SPIs to verify whether a WebPage successfully entered or left audio routing
arbitration. Notify the Arbitration proxy when the page is shut down, which ensures arbitration
will end if the client closes the WKWebView.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _audioRoutingArbitrationStatus]):

  • UIProcess/API/mac/WKWebViewTestingMac.mm:
  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:

(WebKit::AudioSessionRoutingArbitratorProxy::arbitrationStatus const):

  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::AudioSessionRoutingArbitratorProxy::processDidTerminate):
(WebKit::AudioSessionRoutingArbitratorProxy::beginRoutingArbitrationWithCategory):
(WebKit::AudioSessionRoutingArbitratorProxy::endRoutingArbitration):

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

(WebKit::WebProcessProxy::shutDown):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::audioSessionRoutingArbitrator):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AudioRoutingArbitration.mm: Added.

(AudioRoutingArbitration::statusShouldBecomeEqualTo):
(TEST_F):

6:51 AM Changeset in webkit [263327] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[LFC][TFC] Add support for percentage min/max-width
https://bugs.webkit.org/show_bug.cgi?id=213436

Reviewed by Antti Koivisto.

Source/WebCore:

  1. The table generates a principal block container box called the table wrapper box that contains the table box itself and any caption boxes.
  2. The table wrapper box establishes a block formatting context, and the table box establishes a table formatting context.
  3. The computed values of properties 'position', 'float', 'margin-*', 'top', 'right', 'bottom', and 'left' on the table element are used on the table wrapper box and not the table box; all other values of non-inheritable properties are used on the table box and not the table wrapper box.
  4. In a block formatting context, each box's left outer edge touches the left edge of the containing block. This is true even in the presence of floats, unless the box establishes a new block formatting context (in which case the box itself may become narrower due to the floats)

Now consider the following case:
<div style="display: block; width: 500px;">

<div style="float: left; width: 100px;"></div>
<div style="display: table; width: 10%;"></div>

</div>

  1. We create a table wrapper box to wrap the "display: table" block level box (#1).
  2. The table wrapper box's width property is set to auto (#3).
  3. Since it establishes a new block formatting context, the available horizontal space gets shrunk by the float (#4)
  4. The table wrapper box's used width computes to 500px - 100px -> 400px;

Now we are inside the BFC established by the table wrapper box and try to resolve the table's width -> %10.
According to the normal BFC rules, it should compute to 10% of the containing block's logical width: 400px -> 40px.
However in practice it computes to 50px (10% of 500px).

Similar setup with non-table content would resolve the inner block level box's width to 40px;
<div style="display: block; width: 500px">

<div style="float: left; width: 100px;"></div>
<div style="display: block; overflow: hidden;">

<div style="display: block; width: 10%"></div>

</div>

</div>
This needs clarification.

Test: fast/layoutformattingcontext/float-avoider-available-horizontal-space3.html

  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::isTableWrapperBlockFormattingContext const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.h:

LayoutTests:

  • fast/layoutformattingcontext/float-avoider-available-horizontal-space3-expected.html: Added.
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space3.html: Added.
2:13 AM Changeset in webkit [263326] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Specify underlying storage type for InputMethodState::Hint
https://bugs.webkit.org/show_bug.cgi?id=213401

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-21
Reviewed by Carlos Garcia Campos.

Using unsigned types for flags enums seems nice to do.

  • Shared/glib/InputMethodState.h:
2:11 AM Changeset in webkit [263325] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[WPE][GTK] Add autocleanup for WebKitWebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=213399

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-21
Reviewed by Carlos Garcia Campos.

Add missing autocleanups.

  • UIProcess/API/gtk/WebKitAutocleanups.h:
  • UIProcess/API/wpe/WebKitAutocleanups.h:
Note: See TracTimeline for information about the timeline view.