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

Timeline



Feb 13, 2020:

10:50 PM Changeset in webkit [256585] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for WebCore shared library builds.

  • crypto/openssl/SerializedCryptoKeyWrapOpenSSL.cpp: Include "SerializedCryptoKeyWrap.h".
7:48 PM Changeset in webkit [256584] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

MediaToolbox may not be available; check before calling MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207733
<rdar://problem/59441647>

Reviewed by Maciej Stachowiak.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::setShouldOverrideScreenSupportsHighDynamicRange):

7:41 PM Changeset in webkit [256583] by Kate Cheney
  • 29 edits
    5 adds in trunk

Source/WebCore:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>

Reviewed by Chris Dumez.

Tests: http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html

http/tests/resourceLoadStatistics/prevalent-domains-per-page.html

Logs subresource loads in CachedResourceLoader::requestResource, and
redirects in ResourceLoader::willSendRequestInternal,
and reports domains to the Web Process.

  • loader/FrameLoaderClient.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • loader/cache/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

Source/WebKit:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>

Reviewed by Chris Dumez.

Tests: http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html

http/tests/resourceLoadStatistics/prevalent-domains-per-page.html

Added an API to report prevalent domains. The Web Process sends all
new loads to the Network Process, which determines if the resources are
prevalent. When the API is queried, the Web Process reports these
domains to the UI Process.

The WebPage keeps a hash set of previously loaded domains to avoid
spamming IPC with repeat domains.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
(WebKit::NetworkConnectionToWebProcess::reportSubresourceLoadToDomain):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getPrevalentDomainsFor:completionHandler:]):
(-[WKWebsiteDataStore _clearPrevalentDomainsFor:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::addLoadedRegistrableDomain):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setIsSuspended):
(WebKit::WebPage::addLoadedRegistrableDomain):
(WebKit::WebPage::getPrevalentDomains):
(WebKit::WebPage::clearPrevalentDomains):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>

Reviewed by Chris Dumez.

Added WebKitTestRunner functions so this functionality can be tested.
clearPrevalentDomains should be called between tests to reset the
state.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::getPrevalentDomains):
(WTR::TestRunner::callDidReceivePrevalentDomainsCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::getPrevalentDomains):
(WTR::TestController::clearPrevalentDomains):

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

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceivePrevalentDomains):

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::getPrevalentDomains):
(WTR::TestController::clearPrevalentDomains):

LayoutTests:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>

Reviewed by Chris Dumez.

Added 2 new tests for the resource load statistics database and
memory stores. Added a basic iframe that both tests can use to test
if a resource load from a prevalent domain gets reported properly.

  • http/tests/resourceLoadStatistics/prevalent-domains-per-page-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html: Added.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page-expected.txt: Added.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page.html: Added.
  • http/tests/resourceLoadStatistics/resources/basic-iframe.html: Added.
7:32 PM Changeset in webkit [256582] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Gardening more flaky crashes
https://bugs.webkit.org/show_bug.cgi?id=207738

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-13

  • platform/gtk/TestExpectations:
7:13 PM Changeset in webkit [256581] by Fujii Hironori
  • 3 edits in trunk/Tools

[Win][MiniBrowser] Reimplement the toolbar by using toolbar common control
https://bugs.webkit.org/show_bug.cgi?id=207682

Reviewed by Ross Kirsling.

The toolbar placed button common controls as the toolbar buttons.
However, because these buttons are focusable, shortcut keys don't
work after clicking them.

Added Home button, Add to Bookmarks button, dropdown buttons of
back and forward buttons, but they aren't implemented yet. Just
placeholders at the moment.

  • MiniBrowser/win/MainWindow.cpp:

(MainWindow::createToolbar): Added.
(MainWindow::resizeToolbar): Added.
(MainWindow::rescaleToolbar): Added.
(MainWindow::init):
(MainWindow::resizeSubViews):
(MainWindow::updateDeviceScaleFactor):

  • MiniBrowser/win/MainWindow.h: Added m_toolbarItemsWidth.
6:56 PM Changeset in webkit [256580] by rniwa@webkit.org
  • 4 edits in trunk

Dark Mode: In Notes, list item becomes invisible in dark mode after outdenting
https://bugs.webkit.org/show_bug.cgi?id=207676

Reviewed by Wenson Hsieh and Timothy Hatcher.

Source/WebCore:

The bug was caused by EditingStyle::inverseTransformColorIfNeeded converting -apple-system-label to
transparent color in ReplaceSelectionCommand when InsertListCommand invokes moveParagraphs.

This patch fixes the bug in EditingStyle::inverseTransformColorIfNeeded by treating any semantic color
name or semantic RGB color value as if the color was not specified.

It also fixes the bug that removeStyleFromRulesAndContext was incapable of removing superflous semantic
color names that appear in the inline since the context's computed style only contain RGB values by
replacing the inline style's color values with that of the computed style. This fix is necessary to
eliminate -apple-system-label in the pasted content, which can cause issues when such a content is
sync'ed to other devices via iCloud, etc...

Tests: PasteHTML.TransformColorsOfDarkContentButNotSemanticColor

PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::removeStyleFromRulesAndContext):
(WebCore::EditingStyle::inverseTransformColorIfNeeded):

Tools:

Added regression tests for pasting content with -apple-system-label and outdenting content.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:

(PasteHTML.TransformColorsOfDarkContentButNotSemanticColor):
(PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent):

6:25 PM Changeset in webkit [256579] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/JavaScriptCore

[PlayStation] Make special udis86 C file handling only happen for Visual Studio
https://bugs.webkit.org/show_bug.cgi?id=207729

Reviewed by Don Olmstead.

  • PlatformPlayStation.cmake:
5:54 PM Changeset in webkit [256578] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Protect WebSWServerConnection::scheduleJobInServer from bad scopeURL
https://bugs.webkit.org/show_bug.cgi?id=207722

Reviewed by Chris Dumez.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::scheduleJobInServer):
In case of bad scope, fail the job early on.

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleJobInServer):
Remove the RELEASE_ASSERT from now since we defend in Network process.
We will add it back in ServiceWorkerRegistration::getOrCreate as a follow-up.

5:31 PM Changeset in webkit [256577] by commit-queue@webkit.org
  • 5 edits in trunk

Flash of white can occur if JS forces an early layout
https://bugs.webkit.org/show_bug.cgi?id=207516

This causes us to wait for the first non-empty layout before we paint on Mac, which we
already do on all other platforms.

Patch by Ben Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):

LayoutTests:

  • fast/scrolling/rtl-scrollbars-listbox-scroll.html: Wait for document to load before scrolling.
  • platform/mac/TestExpectations: Skip before-load-001.html as we already do on iOS. This test depends on first paint timing and this patch makes the Mac behave like iOS in terms of first paint.
5:17 PM Changeset in webkit [256576] by Kocsen Chung
  • 4 edits in branches/safari-610.1.3-branch/Source

Cherry-pick r256571. rdar://problem/59443242

REGRESSION (r255961): Default state for data URL handling is incorrect
https://bugs.webkit.org/show_bug.cgi?id=207719
<rdar://problem/59334011>

Reviewed by Chris Dumez.

The default selected in r255961 breaks too many WebKit framework users. Switch from opt-out to opt-in
while we work through compatibility issues.

Source/WebCore:

Tested by existing test cases.

  • page/Settings.yaml:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]):

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

5:13 PM Changeset in webkit [256575] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/scrolling/latching/iframe_in_iframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207732

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:36 PM Changeset in webkit [256574] by Russell Epstein
  • 11 edits in branches/safari-609-branch/Source

Revert r256407. rdar://problem/59299143

4:35 PM Changeset in webkit [256573] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac Release wk2 ] accessibility/press-targets-center-point.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207728

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:35 PM Changeset in webkit [256572] by Alan Coon
  • 1 edit in branches/safari-609.1.17.0-branch/Source/WebCore/rendering/InlineTextBox.cpp

Unreviewed build fix. rdar://problem/59430261

4:12 PM Changeset in webkit [256571] by Brent Fulgham
  • 4 edits in trunk/Source

REGRESSION (r255961): Default state for data URL handling is incorrect
https://bugs.webkit.org/show_bug.cgi?id=207719
<rdar://problem/59334011>

Reviewed by Chris Dumez.

The default selected in r255961 breaks too many WebKit framework users. Switch from opt-out to opt-in
while we work through compatibility issues.

Source/WebCore:

Tested by existing test cases.

  • page/Settings.yaml:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

4:00 PM Changeset in webkit [256570] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebCore/rendering/InlineTextBox.cpp

Unreviewed Build Fix, rdar://problem/59430261

3:53 PM Changeset in webkit [256569] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Add missing call to completionHandler
https://bugs.webkit.org/show_bug.cgi?id=207720
<rdar://problem/59436915>

Reviewed by Chris Dumez.

Bug 179641 (r225702) updated
SubresourceLoader::willSendRequestInternal with a return call without
first calling the completionHandler. Address this by adding the call
to the completionHandler.

No new tests -- it's not possible to control execution into the
affected code path.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

3:51 PM Changeset in webkit [256568] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256564. rdar://problem/59440718

iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>

Reviewed by Simon Fraser.

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm: (WebCore::EventHandler::startSelectionAutoscroll): (WebCore::EventHandler::cancelSelectionAutoscroll): (WebCore::adjustAutoscrollDestinationForInsetEdges): (WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const): (WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted. Make a few small changes to autoscrolling on iOS to make it feel better:
  • Store the autoscrolling position in "unscrolled" coordinates, and do all work in this space, converting back when it's time to actually scroll. This fixes the problem where you have to wiggle your finger to autoscroll, because now when the timer fires, the point actually moves (before, it was all stored in "content" coordinates, so wouldn't actually change until the client pushed a new point).
  • Reintroduce the macOS-style linear scaling of scrolling velocity in (and beyond) the inset region. We scale the fractional distance into the inset region to a 20pt/50ms scroll velocity; when you exit the inset it continues scaling up linearly from there.
  • Only apply insets in the direction that the autoscroll drag is occurring in. This avoids a problem where e.g. horizontally selecting text on the first visible line of a page would cause us to scroll up, as it sat within the top inset. Instead, we only apply an inset in the direction of the drag, and do not allow its magnitude to exceed the currently dragged distance.

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

3:44 PM Changeset in webkit [256567] by Alan Coon
  • 3 edits in branches/safari-609.1.17.0-branch/Source/WebCore

Cherry-pick r256564. rdar://problem/59440718

iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>

Reviewed by Simon Fraser.

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm: (WebCore::EventHandler::startSelectionAutoscroll): (WebCore::EventHandler::cancelSelectionAutoscroll): (WebCore::adjustAutoscrollDestinationForInsetEdges): (WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const): (WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted. Make a few small changes to autoscrolling on iOS to make it feel better:
  • Store the autoscrolling position in "unscrolled" coordinates, and do all work in this space, converting back when it's time to actually scroll. This fixes the problem where you have to wiggle your finger to autoscroll, because now when the timer fires, the point actually moves (before, it was all stored in "content" coordinates, so wouldn't actually change until the client pushed a new point).
  • Reintroduce the macOS-style linear scaling of scrolling velocity in (and beyond) the inset region. We scale the fractional distance into the inset region to a 20pt/50ms scroll velocity; when you exit the inset it continues scaling up linearly from there.
  • Only apply insets in the direction that the autoscroll drag is occurring in. This avoids a problem where e.g. horizontally selecting text on the first visible line of a page would cause us to scroll up, as it sat within the top inset. Instead, we only apply an inset in the direction of the drag, and do not allow its magnitude to exceed the currently dragged distance.

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

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

[ Mac ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207726

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:35 PM Changeset in webkit [256565] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Unreviewed attempt to fix the TestWebKitAPI build.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
3:23 PM Changeset in webkit [256564] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>

Reviewed by Simon Fraser.

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::startSelectionAutoscroll):
(WebCore::EventHandler::cancelSelectionAutoscroll):
(WebCore::adjustAutoscrollDestinationForInsetEdges):
(WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const):
(WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted.
Make a few small changes to autoscrolling on iOS to make it feel better:

  • Store the autoscrolling position in "unscrolled" coordinates, and do

all work in this space, converting back when it's time to actually scroll.
This fixes the problem where you have to wiggle your finger to autoscroll,
because now when the timer fires, the point actually moves (before, it was
all stored in "content" coordinates, so wouldn't actually change until
the client pushed a new point).

  • Reintroduce the macOS-style linear scaling of scrolling velocity

in (and beyond) the inset region. We scale the fractional distance into
the inset region to a 20pt/50ms scroll velocity; when you exit the inset
it continues scaling up linearly from there.

  • Only apply insets in the direction that the autoscroll drag is occurring

in. This avoids a problem where e.g. horizontally selecting text on the
first visible line of a page would cause us to scroll up, as it sat
within the top inset. Instead, we only apply an inset in the direction of
the drag, and do not allow its magnitude to exceed the currently dragged
distance.

3:21 PM Changeset in webkit [256563] by commit-queue@webkit.org
  • 18 edits in trunk/Source

Unreviewed, rolling out r254557.
https://bugs.webkit.org/show_bug.cgi?id=207725

The assert is correct, but unfortunately it will alwasy fail
since there is an existing bug in
HTMLTextFormControlElement::indexForPosition(). See bug
#207724 for more details. (Requested by dydz on #webkit).

Reverted changeset:

"Enable the offset assertion in
HTMLTextFormControlElement::indexForPosition"
https://bugs.webkit.org/show_bug.cgi?id=205706
https://trac.webkit.org/changeset/254557

3:10 PM Changeset in webkit [256562] by achristensen@apple.com
  • 6 edits in trunk

_WKResourceLoadInfo should conform to NSSecureCoding
https://bugs.webkit.org/show_bug.cgi?id=207667

Reviewed by Brady Eidson.

Source/WebKit:

This makes rdar://problem/57132290 nicer.
Covered by API tests.

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

(+[_WKResourceLoadInfo supportsSecureCoding]):
(-[_WKResourceLoadInfo initWithCoder:]):
(-[_WKResourceLoadInfo encodeWithCoder:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(TEST):

3:08 PM Changeset in webkit [256561] by achristensen@apple.com
  • 6 edits in trunk/Source/WebKit

Deprecate _WKUserContentWorld replaced by WKContentWorld
https://bugs.webkit.org/show_bug.cgi?id=207514

Reviewed by Brady Eidson.

_WKUserContentWorld.contentWorld is not needed,
but WKContentWorld._userContentWorld needs to return an autoreleased object.

  • UIProcess/API/APIContentWorld.cpp:

(API::ContentWorld::fromUserContentWorld): Deleted.

  • UIProcess/API/APIContentWorld.h:
  • UIProcess/API/Cocoa/WKContentWorld.mm:

(-[WKContentWorld _userContentWorld]):

  • UIProcess/API/Cocoa/_WKUserContentWorld.h:
  • UIProcess/API/Cocoa/_WKUserContentWorld.mm:

(-[_WKUserContentWorld contentWorld]): Deleted.

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

[ Mac Debug ] http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207723

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:58 PM Changeset in webkit [256559] by Russell Epstein
  • 13 edits in branches/safari-609-branch

Cherry-pick r256520. rdar://problem/59430255

[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>

Reviewed by Tim Horton.

Source/WebKit:

Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.

To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.

Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint

  • Platform/spi/ios/UIKitSPI.h:
  • Scripts/webkit/messages.py:
  • Shared/ios/GestureTypes.h:

Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[UITextInteractionAssistant _wk_hasFloatingCursor]):

Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).

(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):

Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateSelectionWithExtentPoint):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Plumb the RespectsSelectionAnchor flag over to the web process.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateSelectionWithExtentPoint):

Tools:

Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: (-[TestWKWebView updateSelectionWithExtentPoint:]):
  • TestWebKitAPI/ios/UIKitSPI.h:

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

2:57 PM Changeset in webkit [256558] by Russell Epstein
  • 8 edits in branches/safari-609-branch

Cherry-pick r256485. rdar://problem/59430261

Composition highlight rects should be rounded and inset
https://bugs.webkit.org/show_bug.cgi?id=207655
<rdar://problem/59362474>

Reviewed by Tim Horton.

Source/WebCore:

Apply a couple of minor adjustments to the appearance of composition highlight rects that appear behind marked
text, in the case where the client specifies attributed marked text with background colors.

Test: editing/input/composition-highlights.html

  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextBackground): (WebCore::InlineTextBox::paintCompositionBackground):

In the case where custom composition rects are specified, add a half-pixel inset to all sides of the background
rect, and add a slight corner radius around each background rect.

  • rendering/InlineTextBox.h:

Source/WebKit:

Stitch adjacent highlight rects together if they have the same highlight color; this minimizes the number of
composition highlight rects we hand to the web process when changing the marked text.

  • UIProcess/ios/WKContentViewInteraction.mm: (compositionHighlights):

LayoutTests:

Make this existing layout test work with the new composition highlight appearance by covering up the edges of
the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
have a border-radius).

  • editing/input/composition-highlights-expected.html:
  • editing/input/composition-highlights.html:

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

2:57 PM Changeset in webkit [256557] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256433. rdar://problem/59412971

macCatalyst: Unable to grab scrollbar on editable text field
https://bugs.webkit.org/show_bug.cgi?id=207615
<rdar://problem/59212993>

Reviewed by Tim Horton.

In macCatalyst, hovering over the scrollbar (an instance of the internal UIKit class
_UIScrollViewScrollIndicator) is required in order for a click and drag with the mouse to actually move the
scrollbar. This is because UIKit depends on the cursor interaction added to this view to recognize and call its
delegate methods.

However, we override hit-testing in WebKit to skip over all children of scroll views, and instead force hit-
testing to find the scroll view instead. This means that UIKit can never hit-test to the scroll indicator views
embedded directly beneath each WKChildScrollView, so the cursor interactions described earlier will not
recognize. To work around this, special case these scroll indicator views, such that we will allow
-hitTest:withEvent: to find these views.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (WebKit::scrollViewScrollIndicatorClass): (-[UIView _web_findDescendantViewAtPoint:withEvent:]):

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

2:57 PM Changeset in webkit [256556] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256230. rdar://problem/59332513

Adjust the minor version number for the desktop user agent string.
https://bugs.webkit.org/show_bug.cgi?id=207498
<rdar://problem/59274765>

Patch by Keith Rollin <Keith Rollin> on 2020-02-10
Reviewed by Wenson Hsieh.

This helps with Netflix compatibility on the iPad.

No new tests -- no new or changed functionality.

  • platform/ios/UserAgentIOS.mm: (WebCore::standardUserAgentWithApplicationName):

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

2:52 PM Changeset in webkit [256555] by Alan Coon
  • 13 edits in branches/safari-609.1.17.0-branch

Cherry-pick r256520. rdar://problem/59430255

[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>

Reviewed by Tim Horton.

Source/WebKit:

Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.

To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.

Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint

  • Platform/spi/ios/UIKitSPI.h:
  • Scripts/webkit/messages.py:
  • Shared/ios/GestureTypes.h:

Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[UITextInteractionAssistant _wk_hasFloatingCursor]):

Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).

(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):

Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateSelectionWithExtentPoint):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Plumb the RespectsSelectionAnchor flag over to the web process.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateSelectionWithExtentPoint):

Tools:

Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: (-[TestWKWebView updateSelectionWithExtentPoint:]):
  • TestWebKitAPI/ios/UIKitSPI.h:

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

2:52 PM Changeset in webkit [256554] by Alan Coon
  • 8 edits in branches/safari-609.1.17.0-branch

Cherry-pick r256485. rdar://problem/59430261

Composition highlight rects should be rounded and inset
https://bugs.webkit.org/show_bug.cgi?id=207655
<rdar://problem/59362474>

Reviewed by Tim Horton.

Source/WebCore:

Apply a couple of minor adjustments to the appearance of composition highlight rects that appear behind marked
text, in the case where the client specifies attributed marked text with background colors.

Test: editing/input/composition-highlights.html

  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextBackground): (WebCore::InlineTextBox::paintCompositionBackground):

In the case where custom composition rects are specified, add a half-pixel inset to all sides of the background
rect, and add a slight corner radius around each background rect.

  • rendering/InlineTextBox.h:

Source/WebKit:

Stitch adjacent highlight rects together if they have the same highlight color; this minimizes the number of
composition highlight rects we hand to the web process when changing the marked text.

  • UIProcess/ios/WKContentViewInteraction.mm: (compositionHighlights):

LayoutTests:

Make this existing layout test work with the new composition highlight appearance by covering up the edges of
the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
have a border-radius).

  • editing/input/composition-highlights-expected.html:
  • editing/input/composition-highlights.html:

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

2:52 PM Changeset in webkit [256553] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r256433. rdar://problem/59412971

macCatalyst: Unable to grab scrollbar on editable text field
https://bugs.webkit.org/show_bug.cgi?id=207615
<rdar://problem/59212993>

Reviewed by Tim Horton.

In macCatalyst, hovering over the scrollbar (an instance of the internal UIKit class
_UIScrollViewScrollIndicator) is required in order for a click and drag with the mouse to actually move the
scrollbar. This is because UIKit depends on the cursor interaction added to this view to recognize and call its
delegate methods.

However, we override hit-testing in WebKit to skip over all children of scroll views, and instead force hit-
testing to find the scroll view instead. This means that UIKit can never hit-test to the scroll indicator views
embedded directly beneath each WKChildScrollView, so the cursor interactions described earlier will not
recognize. To work around this, special case these scroll indicator views, such that we will allow
-hitTest:withEvent: to find these views.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (WebKit::scrollViewScrollIndicatorClass): (-[UIView _web_findDescendantViewAtPoint:withEvent:]):

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

2:52 PM Changeset in webkit [256552] by Alan Coon
  • 6 edits in branches/safari-609.1.17.0-branch/Source

Cherry-pick r256005. rdar://problem/59299335

macCatalyst: Unnecessary I-beam over images in editable areas
https://bugs.webkit.org/show_bug.cgi?id=207370
<rdar://problem/59235429>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • dom/Position.h:

Source/WebKit:

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext): Add a bit indicating whether the forced I-beam for editable contexts should be used or not, based on whether it is adjacent to (or immediately over) a replaced element.

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

2:52 PM Changeset in webkit [256551] by Alan Coon
  • 6 edits
    1 add in branches/safari-609.1.17.0-branch

Cherry-pick r256000. rdar://problem/59299326

WebPage::rangeForGranularityAtPoint always returns null in the case of CharacterGranularity
https://bugs.webkit.org/show_bug.cgi?id=207350
<rdar://problem/59239914>

Reviewed by Tim Horton.

Source/WebKit:

Handle the character granularity case in WebPage::rangeForGranularityAtPoint by just returning a collapsed
Range. Certain internal clients will have a need to place and update the text selection using character
granularity; see radar for more details.

Test: UIWKInteractionViewProtocol.SelectTextWithCharacterGranularity

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView supportsTextSelectionWithCharacterGranularity]):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::rangeForGranularityAtPoint):

Tools:

Add a test to exercise the corner case in the SPI.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: Added.

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

2:52 PM Changeset in webkit [256550] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255879. rdar://problem/59299329

[macCatalyst] Incorrect IBeam cursor when selecting text on Wikipedia
https://bugs.webkit.org/show_bug.cgi?id=207299
<rdar://problem/59200545>

Reviewed by Tim Horton.

After r255827, if EventHandler selects an IBeam cursor at the position information request location, we will
always attempt to show a caret at that location, whose height is the height of the editing caret for that
visible position. However, this means that:

  • It's possible for the caret to be incorrectly sized if the caret is before a large replaced element, such as

a table. Since the request location is also outside of any line rect, it doesn't make sense to use the caret
height for the height of the cursor. Instead, fall back to computed line height. This fixes an issue on
en.wikipedia.org where the line rect would sometimes update to an enormous size when selecting text, since
the caret would temporarily hover over an editing position that is before a large table.

  • This fallback path completely negates certain cursor behaviors; partially restore this behavior by making it

so that in the case where the cursor is in editable content and the line caret first line from the top of
the hit-tested node already contains the request point, don't bother trying to recenter the line rect to be
right over the request point.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext):

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

2:52 PM Changeset in webkit [256549] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255827. rdar://problem/59299345

[macCatalyst] IBeam cursor doesn't show up when hovering over text form controls prior to editing
https://bugs.webkit.org/show_bug.cgi?id=207268
<rdar://problem/59188152>

Reviewed by Tim Horton.

On macCatalyst, when hovering over textareas and input fields that have not been edited yet, the cursor fails to
change to an IBeam and instead falls back to the default style. Even though EventHandler::selectCursor()
returns IBeam, we end up not actually using an IBeam because the position information's lineCaretExtent is
an empty rect, which means the caret height is 0 and, more importantly, the line rect will not contain the
request point.

The line rect is empty in text fields that have not been edited yet because the form control's inner plaintext
contenteditable div (embedded in the shadow root) does not contain any child renderers with a non-zero height.
Even if it did, however, the element may still be much taller than the combined height of the inner div's
children, so the line rect may still not contain the position information request point (this is most easily
noticeable when focusing a textarea, typing a few letters, and then moving the cursor to near the bottom of the
textarea element).

To fix this, add a fallback path for the scenario where we want to show an IBeam, but fail to find line rects
that contain the request point. Instead, we still show an IBeam, but simply fake the lineCaretExtent to be an
element-wide rect that is the height of the caret, and is also vertically centered about the request point.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext):

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

2:52 PM Changeset in webkit [256548] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255710. rdar://problem/59299340

macCatalyst: Shouldn't get text cursor on checkboxes
https://bugs.webkit.org/show_bug.cgi?id=207234
<rdar://problem/59155917>

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::canForceCaretForPosition): (WebKit::populateCaretContext): (WebKit::lineCaretExtent): Deleted. The I-beam forcing code was a bit too aggressive; it should consider the style of the node that it ends up finding after searching, not just assume it wants an I-beam because it's "texty".

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

2:52 PM Changeset in webkit [256547] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255691. rdar://problem/59299315

[macCatalyst] Missing custom cursors in subframes that are offset from the origin of the root view
https://bugs.webkit.org/show_bug.cgi?id=207215
<rdar://problem/59157625>

Reviewed by Tim Horton.

<https://trac.webkit.org/r255046> added support for custom cursor styles when hovering over subframes. However,
we currently try to hit-test content in the subframe using the interaction information request's point, which is
in root view coordinates; as such, we only get the correct custom cursor styles when hovering over elements in a
subframe, if the subframe is also at the origin of the root view.

To fix this, simply convert from root view coordinates to frame coordinates when performing the hit-test.
Unfortunately, this change is currently untestable; see <rdar://problem/59158410>.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::lineCaretExtent):

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

2:52 PM Changeset in webkit [256546] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255664. rdar://problem/59299338

Add a WebKitAdditions hook to provide additional customizations to UIDragInteraction
https://bugs.webkit.org/show_bug.cgi?id=207177
<rdar://problem/59121266>

Reviewed by Tim Horton.

Add a WebKitAdditions extension point that runs immediately after setting up UIDragInteraction and
UIDropInteraction.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupDragAndDropInteractions]):

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

2:52 PM Changeset in webkit [256545] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255658. rdar://problem/59299333

Unreviewed, fix the internal build after <rdar://problem/59132944>

  • UIProcess/ios/WKContentViewInteraction.h: Declare this helper in the header, now that it's consulted by some WebKitAdditions code.

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

2:52 PM Changeset in webkit [256544] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255625. rdar://problem/59299317

Add a WebKitAdditions hook to override the behavior of -[WKContentView gestureRecognizer:shouldReceiveTouch:]
https://bugs.webkit.org/show_bug.cgi?id=207162
<rdar://problem/59129739>

Reviewed by Tim Horton.

Allow an internal implementation of -_allowGestureRecognizer:toReceiveTouch: to prevent touches from being
routed to certain gesture recognizers, if necessary.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizer:shouldReceiveTouch:]):

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

2:52 PM Changeset in webkit [256543] by Alan Coon
  • 6 edits
    2 adds in branches/safari-609.1.17.0-branch

Cherry-pick r255603. rdar://problem/59299321

[iOS 13] Dragging on-screen volume control on a YouTube video selects text around the panel
https://bugs.webkit.org/show_bug.cgi?id=207140
<rdar://problem/58852938>

Reviewed by Tim Horton.

Source/WebKit:

This bug occurs on iPadOS when long pressing the volume controls on the desktop version of YouTube, and then
performing a pan gesture; this activates the highlight text selection gesture recognizer added in iOS 13,
causing text to be selected while adjusting the volume using these custom controls. On macOS, we avoid this
because Node::canStartSelection() returns false, due to a container node having both user-drag: element
and user-select: none; in this scenario, we allow dragging to take precendence over text selection, so the
volume slider can be moved using a mouse without simultaneously selecting text.

This logic is currently absent on iOS, where UIKit text interaction gesture recognizers ask us for information
about the DOM at given locations, and we determine whether to allow text interaction gestures (such as long
pressing) to begin in -textInteractionGesture:shouldBeginAtPoint: and -hasSelectablePositionAtPoint:.
Ideally, we'd want to eventually unify these two codepaths for triggering text selection (and preferably just
have both go through EventHandler); in lieu of this, simply make the iOS codepath behave a little more like
macOS by adding a bit to allow text interaction gestures to bail in the case where at least one container of the
hit-tested element is both draggable and unselectable.

Test: editing/selection/ios/prefer-drag-over-text-selection.html

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):

Add the new bit to InteractionInformationAtPosition.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

Avoid beginning text selection if the bit is set.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::selectionPositionInformation):

Move a comment about the ">= 97% of the document's visible area" heuristic next to the relevant code, and also
leave a FIXME mentioning that we should reconsider whether this is really needed; it seems that this was
originally intended to avoid ending up with an excessively large block selection, but block selection has been
removed entirely since iOS 12. That said, this logic may still be helping avoid situations where the text
selection is too aggressive on iOS and ends up selecting too much text.

LayoutTests:

Add a layout test to verify that we don't allow text selection gestures inside of containers that have both
user-drag: element and user-select: none.

  • editing/selection/ios/prefer-drag-over-text-selection-expected.txt: Added.
  • editing/selection/ios/prefer-drag-over-text-selection.html: Added.

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

2:39 PM Changeset in webkit [256542] by Alan Coon
  • 8 edits in branches/safari-609.1.17.0-branch/Source

Versioning.

1:59 PM Changeset in webkit [256541] by Caio Lima
  • 5 edits
    1 add in trunk

[ESNext][BigInt] We don't support BigInt literal as PropertyName
https://bugs.webkit.org/show_bug.cgi?id=206888

Reviewed by Ross Kirsling.

JSTests:

  • stress/big-int-as-property-name.js: Added.

Source/JavaScriptCore:

According to spec (https://tc39.es/ecma262/#prod-PropertyName),
BigInt literals are valid property names. Given that, we should not
throw a SyntaxError when using BigInt literals on destructuring
pattern, method declaration, object literals, etc.
This patch is adding BigInt literal as a valid syntax to PropertyName.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseInstanceFieldInitializerSourceElements):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):

  • parser/ParserArena.cpp:

(JSC::IdentifierArena::makeBigIntDecimalIdentifier):

  • parser/ParserArena.h:
1:49 PM Changeset in webkit [256540] by Alan Coon
  • 30 edits
    8 deletes in branches/safari-610.1.3-branch

Cherry-pick r256493. rdar://problem/59412867

Unreviewed, rolling out r256010.

Introduced ASan crashes

Reverted changeset:

"[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=206582
https://trac.webkit.org/changeset/r256010

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

1:49 PM Changeset in webkit [256539] by Alan Coon
  • 4 edits in branches/safari-610.1.3-branch

Cherry-pick r256317. rdar://problem/59398474

REGRESSION (r256009): [ Mojave wk2 Debug ] ASSERTION FAILED: Completion handler should always be called under WebKit::WebMDNSRegister::PendingRegistration
https://bugs.webkit.org/show_bug.cgi?id=207521
<rdar://problem/59331313>

Reviewed by Eric Carlson.

Source/WebKit:

Covered by debug assertion not hit in layout tests.

  • WebProcess/Network/webrtc/WebMDNSRegister.cpp: (WebKit::WebMDNSRegister::finishedRegisteringMDNSName): Call completion handler even if the document entry has been cleared, which can happen in suspend/destruction case. If the entry is not there, all MDNS names for the document have been unregistered. We then report a registration error.

LayoutTests:

  • platform/mac-wk2/TestExpectations:

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

1:49 PM Changeset in webkit [256538] by Alan Coon
  • 2 edits in branches/safari-610.1.3-branch/LayoutTests

Cherry-pick r256231. rdar://problem/59398474

Regression: (r256009?) [ Mojave wk2 Debug ] webrtc/peerconnection-page-cache-long.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=207521

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

1:41 PM Changeset in webkit [256537] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION: (256381) [ macOS ] http/tests/workers/service/serviceworkerclients-claim.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207653
<rdar://problem/59396225>

Reviewed by Chris Dumez.

console log message output was flaky.
Make sure to end the fetch and post a message so that the console log message will appear in the expected.txt reliably.

  • http/tests/workers/service/serviceworkerclients-claim.https-expected.txt:
  • http/tests/workers/service/serviceworkerclients-claim.https.html:
1:40 PM Changeset in webkit [256536] by eric.carlson@apple.com
  • 19 edits
    3 moves in trunk/Source

Rename SerializedPlatformRepresentation to SerializedPlatformDataCue
https://bugs.webkit.org/show_bug.cgi?id=207695
<rdar://problem/59422673>

Reviewed by Youenn Fablet.

No new tests, no functional change.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue):
(WebCore::DataCue::cueContentsMatch const):

  • html/track/DataCue.h:
  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::addDataCue):
(WebCore::InbandDataTextTrack::updateDataCue):
(WebCore::InbandDataTextTrack::removeDataCue):
(WebCore::InbandDataTextTrack::removeCue):

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandTextTrack.h:
  • platform/SerializedPlatformDataCue.h: Renamed from Source/WebCore/platform/SerializedPlatformRepresentation.h.
  • platform/graphics/InbandTextTrackPrivateClient.h:
  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:

(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):

  • platform/mac/SerializedPlatformDataCueMac.h: Renamed from Source/WebCore/platform/mac/SerializedPlatformRepresentationMac.h.

(WebCore::SerializedPlatformDataCueMac::nativeValue const):

  • platform/mac/SerializedPlatformDataCueMac.mm: Renamed from Source/WebCore/platform/mac/SerializedPlatformRepresentationMac.mm.

(WebCore::SerializedPlatformDataCueMac::SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::create):
(WebCore::SerializedPlatformDataCueMac::data const):
(WebCore::SerializedPlatformDataCueMac::deserialize const):
(WebCore::SerializedPlatformDataCueMac::isEqual const):
(WebCore::toSerializedPlatformDataCueMac):
(WebCore::jsValueWithValueInContext):
(WebCore::jsValueWithDataInContext):
(WebCore::jsValueWithArrayInContext):
(WebCore::jsValueWithDictionaryInContext):
(WebCore::jsValueWithAVMetadataItemInContext):

1:26 PM Changeset in webkit [256535] by stephan.szabo@sony.com
  • 6 edits in trunk/Tools

[PlayStation] Add Buildbots for Debug/Release builds
https://bugs.webkit.org/show_bug.cgi?id=199454

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/config.json:

Add PlayStation slaves, builders

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

Use higher timeout for playstation as with win bot

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

Set PlayStation category for playstation platform

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

Use same path as gtk, wincairo, etc for appendCustomBuildFlags

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

Add PlayStation expectations

1:25 PM Changeset in webkit [256534] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] fast/images/webp-as-image.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=207718

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:21 PM Changeset in webkit [256533] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h

Unreviewed build fix, rdar://problem/59298172

1:11 PM Changeset in webkit [256532] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[GTK] Gardening debug mode timeouts.
https://bugs.webkit.org/show_bug.cgi?id=207714

Also removed obsolete expectations as the tests are just timeouting in
debug mode and have not crashed since 2018.

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-13

  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:22 PM Changeset in webkit [256531] by pvollan@apple.com
  • 13 edits
    1 copy in trunk

[iOS] Check if PIP is supported in the UI process
https://bugs.webkit.org/show_bug.cgi?id=207406

Reviewed by Brent Fulgham.

Source/WebCore:

This is currently being checked in the WebProcess, but since this check is initiating communication with the frontboard
service which will be blocked, this check should be moved to the UI process. In the UI process, this is checked when
starting a new WebContent process, and sent to the WebContent process as part of the process creation parameters. The
WebContent is storing the received value.

API test: WebKit.PictureInPictureSupport

  • platform/PictureInPictureSupport.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(WebCore::setSupportsPictureInPicture):
(WebCore::supportsPictureInPicture):

  • testing/Internals.cpp:

(WebCore::Internals::supportsPictureInPicture):

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

Source/WebKit:

When starting a new WebContent process, check if PIP is supported, and pass the results to the newly created
WebContent process.

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

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

(TEST):

11:47 AM Changeset in webkit [256530] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Allow use of proxies in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=207598

For testing purposes, we allow Safari to use a custom HTTP/HTTPS proxy passed through
Source/WebCore:

command line arguments. This gives MiniBrowser the same ability.

$ run-minibrowser --release -WebKit2HTTPProxy "http://127.0.0.1:8080" \

-WebKit2HTTPSProxy "http://127.0.0.1:8080"

Patch by Benjamin Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::MacApplication::isMiniBrowser):
(WebCore::IOSApplication::isMiniBrowser):

Source/WebKit:

command line arguments. This gives MiniBrowser the same ability. Example invocation:

$ run-minibrowser --release -WebKit2HTTPProxy "http://127.0.0.1:8080" \

-WebKit2HTTPSProxy "http://127.0.0.1:8080"

Patch by Benjamin Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

11:43 AM Changeset in webkit [256529] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

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

Corrected test expectations

Unreviewed test gardening

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
11:42 AM Changeset in webkit [256528] by Jonathan Bedard
  • 3 edits in trunk/Tools

TestWebKitAPI: Conditionalize fullscreen tests on fullscreen API
https://bugs.webkit.org/show_bug.cgi?id=207397
<rdar://problem/59268128>

Reviewed by Jer Noble.

  • TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:
11:23 AM Changeset in webkit [256527] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] svg/custom/animate-initial-pause-unpause.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207710

Unreviewed test gardening

  • platform/mac/TestExpectations:
11:16 AM Changeset in webkit [256526] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

WebP image format is not supported
https://bugs.webkit.org/show_bug.cgi?id=192672

Unreviewed test gardening

  • platform/mac/TestExpectations:
11:10 AM Changeset in webkit [256525] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing/close-in-upgradeneeded.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207709

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
11:05 AM Changeset in webkit [256524] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] LineBreaker should not hold on to the lastWrapOpportunity inline item
https://bugs.webkit.org/show_bug.cgi?id=207707
<rdar://problem/59427376>

Reviewed by Antti Koivisto.

LineBreaker only needs a flag indicating that there's a wrapping opportunity on the line.
LineLayoutContext needs to know what the position is (as an InlineItem) so that it could initiate a revert if needed.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::shouldWrapInlineContent):
(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):
(WebCore::Layout::LineBreaker::wordBreakBehavior const):

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

(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::tryAddingFloatItem):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
(WebCore::Layout::LineLayoutContext::rebuildLine):
(WebCore::Layout::LineLayoutContext::rebuildLineForRevert): Deleted.

  • layout/inlineformatting/LineLayoutContext.h:

(WebCore::Layout::LineLayoutContext::InlineItemRange::size const):

10:47 AM Changeset in webkit [256523] by Jonathan Bedard
  • 2 edits in trunk/Tools

TestWebKitAPI: Re-baseline DocumentEditingContext for Catalyst
https://bugs.webkit.org/show_bug.cgi?id=207696

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
10:36 AM Changeset in webkit [256522] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove ApplePayBillingAddress.html from TestExpectations after fix for flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207704

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-13
Reviewed by Wenson Hsieh.

  • platform/mac-wk2/TestExpectations:
10:25 AM Changeset in webkit [256521] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION: [iOS] Layout Test fast/visual-viewport/ios/caret-after-focus-in-fixed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=181821

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
10:10 AM Changeset in webkit [256520] by Wenson Hsieh
  • 13 edits in trunk

[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>

Reviewed by Tim Horton.

Source/WebKit:

Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.

To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.

Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint

  • Platform/spi/ios/UIKitSPI.h:
  • Scripts/webkit/messages.py:
  • Shared/ios/GestureTypes.h:

Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).

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

(-[UITextInteractionAssistant _wk_hasFloatingCursor]):

Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).

(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):

Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::updateSelectionWithExtentPoint):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Plumb the RespectsSelectionAnchor flag over to the web process.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateSelectionWithExtentPoint):

Tools:

Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(-[TestWKWebView updateSelectionWithExtentPoint:]):

  • TestWebKitAPI/ios/UIKitSPI.h:
10:10 AM Changeset in webkit [256519] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

Flaky Test: imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html
https://bugs.webkit.org/show_bug.cgi?id=202003

Unreviewed test gardening

  • platform/ios/TestExpectations:
10:06 AM Changeset in webkit [256518] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.cpp

Revert "Unreviewed build fix. rdar://problem/59298172"

This reverts commit r256393.

9:56 AM Changeset in webkit [256517] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/websocket.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207705

Unreviewed test gardening

  • platform/ios/TestExpectations:
9:48 AM Changeset in webkit [256516] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207703

nreviewed test gardening

  • platform/ios/TestExpectations:
9:35 AM Changeset in webkit [256515] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes.any.serviceworker.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207702

Unreviewed test gardening

  • platform/ios/TestExpectations:
9:24 AM Changeset in webkit [256514] by Adrian Perez de Castro
  • 4 edits in trunk/Source/WebCore

Non-unified build fixes mid February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=207693

Unreviewed build fix.

No new tests needed.

  • html/parser/HTMLPreloadScanner.cpp: Add missing include.
  • platform/wpe/ScrollbarThemeWPE.cpp: Ditto.
  • rendering/InlineTextBox.cpp: Ditto.
9:20 AM Changeset in webkit [256513] by Simon Fraser
  • 4 edits
    2 adds in trunk

REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.

Test: fast/scrolling/programmatic-scroll-to-zero-zero.html

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::setRequestedScrollData):

LayoutTests:

Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.

  • fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
  • fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
  • platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.
9:11 AM Changeset in webkit [256512] by Said Abou-Hallawa
  • 55 edits
    4 deletes in trunk

Unreviewed, rolling out r255158, 255405 and r255486

Caused test flakiness and PLT regression.

Patch by Said Abou-Hallawa <Said Abou-Hallawa> on 2020-02-13

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::updateThrottlingState):
(WebCore::DocumentTimeline::animationInterval const):

  • animation/DocumentTimeline.h:
  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateLastHandledUserGestureTimestamp):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::throttlingReasonToString):
(WebCore::throttlingReasonsToString):
(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
(WebCore::ScriptedAnimationController::isThrottled const):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::interval const):
(WebCore::ScriptedAnimationController::page const):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const): Deleted.
(WebCore::ScriptedAnimationController::isThrottledRelativeToPage const): Deleted.
(WebCore::ScriptedAnimationController::shouldRescheduleRequestAnimationFrame const): Deleted.

  • dom/ScriptedAnimationController.h:

(WebCore::ScriptedAnimationController::addThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::removeThrottlingReason): Deleted.

  • page/FrameView.cpp:

(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):

  • page/Page.cpp:

(WebCore::m_deviceOrientationUpdateProvider):
(WebCore::Page::isLowPowerModeEnabled const):
(WebCore::Page::setLowPowerModeEnabledOverrideForTesting):
(WebCore::updateScriptedAnimationsThrottlingReason):
(WebCore::Page::setIsVisuallyIdleInternal):
(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::renderingUpdateThrottlingEnabled const): Deleted.
(WebCore::Page::renderingUpdateThrottlingEnabledChanged): Deleted.
(WebCore::Page::isRenderingUpdateThrottled const): Deleted.
(WebCore::Page::preferredRenderingUpdateInterval const): Deleted.

  • page/Page.h:

(WebCore::Page::isLowPowerModeEnabled const): Deleted.
(WebCore::Page::canUpdateThrottlingReason const): Deleted.

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::startTimer):
(WebCore::RenderingUpdateScheduler::adjustFramesPerSecond): Deleted.
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency): Deleted.

  • page/RenderingUpdateScheduler.h:
  • page/Settings.yaml:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::renderingUpdateThrottlingEnabledChanged): Deleted.

  • page/SettingsBase.h:
  • platform/graphics/AnimationFrameRate.h: Removed.
  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):
(WebCore::DisplayRefreshMonitorManager::registerClient):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
(WebCore::DisplayRefreshMonitorManager::monitorForClient): Deleted.
(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.h:

(WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager):

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):

  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:

(-[WebDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetRenderingUpdateThrottlingEnabled): Deleted.
(WKPreferencesGetRenderingUpdateThrottlingEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.
(WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond): Deleted.

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

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.

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

(WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond): Deleted.

Source/WebKitLegacy/mac:

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

(+[WebPreferences initialize]):
(-[WebPreferences renderingUpdateThrottlingEnabled]): Deleted.
(-[WebPreferences setRenderingUpdateThrottlingEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::renderingUpdateThrottlingEnabled): Deleted.
(WebPreferences::setRenderingUpdateThrottlingEnabled): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • fast/animation/css-animation-throttling-lowPowerMode.html:
  • fast/animation/request-animation-frame-throttle-subframe.html:
  • fast/animation/request-animation-frame-throttling-detached-iframe.html:
  • fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
  • fast/animation/request-animation-frame-throttling-lowPowerMode.html:
  • fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Removed.
  • fast/animation/request-animation-frame-throttling-outside-viewport.html: Removed.
  • fast/animation/resources/frame-with-animation-2.html: Removed.
  • http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
  • platform/mac-wk2/TestExpectations:
9:08 AM Changeset in webkit [256511] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/return-local-variable.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207700

Unreviewed test gardening

  • platform/mac-wk2/TestExpectations:
8:40 AM Changeset in webkit [256510] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac WK2 ] inspector/canvas/updateShader-webgpu-sharedVertexFragment.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206852

Unreviewed test gardening

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
8:28 AM Changeset in webkit [256509] by Jacob Uphoff
  • 1 edit in trunk/LayoutTests/platform/mac-wk1/TestExpectations

Need a short description (OOPS!).
Need the bug URL (OOPS!).

Reviewed by NOBODY (OOPS!).

  • platform/mac-wk1/TestExpectations:
8:27 AM Changeset in webkit [256508] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

http/wpt/css/css-animations/start-animation-001.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207337

Correcting test expectations to include wk2

Unreviewed test gardening

  • platform/mac/TestExpectations:
8:22 AM Changeset in webkit [256507] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] LineCandidateContent can have only one float item
https://bugs.webkit.org/show_bug.cgi?id=207681
<rdar://problem/59413044>

Reviewed by Antti Koivisto.

Floats should not be considered as inline content. They shrink the available space but we never
add them to the line. This patch decouples InlineContent and candidate floats. Also there can only be
one float box per candidate content (since there's always a soft wrap opportunity before/after the float box).

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineCandidate::InlineContent::runs const):
(WebCore::Layout::LineCandidate::InlineContent::logicalWidth const):
(WebCore::Layout::LineCandidate::InlineContent::trailingLineBreak const):
(WebCore::Layout::LineCandidate::InlineContent::appendLineBreak):
(WebCore::Layout::LineCandidate::InlineContent::setTrailingLineBreak):
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineCandidate::reset):
(WebCore::Layout::LineCandidate::InlineContent::reset):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
(WebCore::Layout::LineLayoutContext::tryAddingFloatItem):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
(WebCore::Layout::LineCandidateContent::appendLineBreak): Deleted.
(WebCore::Layout::LineCandidateContent::appendFloat): Deleted.
(WebCore::Layout::LineCandidateContent::hasIntrusiveFloats const): Deleted.
(WebCore::Layout::LineCandidateContent::inlineRuns const): Deleted.
(WebCore::Layout::LineCandidateContent::inlineContentLogicalWidth const): Deleted.
(WebCore::Layout::LineCandidateContent::floats const): Deleted.
(WebCore::Layout::LineCandidateContent::trailingLineBreak const): Deleted.
(WebCore::Layout::LineCandidateContent::setTrailingLineBreak): Deleted.
(WebCore::Layout::LineCandidateContent::appendInlineContent): Deleted.
(WebCore::Layout::LineCandidateContent::reset): Deleted.
(WebCore::Layout::LineLayoutContext::tryAddingFloatItems): Deleted.

  • layout/inlineformatting/LineLayoutContext.h:
8:12 AM Changeset in webkit [256506] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] Layout Test storage/websql/read-transactions-running-concurrently.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=194162

Unreviewed test gardening

  • platform/mac/TestExpectations:
7:51 AM Changeset in webkit [256505] by commit-queue@webkit.org
  • 15 edits in trunk

Implement OffscreenCanvas.copiedImage
https://bugs.webkit.org/show_bug.cgi?id=206220

Patch by Chris Lord <Chris Lord> on 2020-02-13
Reviewed by Žan Doberšek.

Source/WebCore:

No new tests. Covered by existing tests.

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::didDraw):
(WebCore::OffscreenCanvas::copiedImage const):
(WebCore::OffscreenCanvas::clearCopiedImage const):
(WebCore::OffscreenCanvas::takeImageBuffer const):
(WebCore::OffscreenCanvas::reset):

  • html/OffscreenCanvas.h:

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
6:07 AM WebKitGTK/2.28.x edited by clopez@igalia.com
(diff)
6:06 AM WebKitGTK/2.26.x edited by clopez@igalia.com
(diff)
3:14 AM Changeset in webkit [256504] by Diego Pino Garcia
  • 3 edits
    8 adds in trunk/LayoutTests

[GTK] Gardening, update TestExpectations and rebaselines
https://bugs.webkit.org/show_bug.cgi?id=207626

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none-manual.https-expected.txt: Added.
  • platform/gtk/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Added.

Feb 12, 2020:

11:20 PM Changeset in webkit [256503] by yoshiaki.jitsukawa@sony.com
  • 7 edits in trunk

[WebCrypto][CommonCrypto] Incorrect AES-CTR with counterLength longer than 64
https://bugs.webkit.org/show_bug.cgi?id=207238

Reviewed by Jiewen Tan.

Source/WebCore:

Add CounterBlockHelper to calculate the remaining count for counter bits to overflow
and the whole counter block bits (nonce + zero counter bits) after overflow.

With this helper, simplify the AES-CTR implementation on CommonCrypto.

  • crypto/algorithms/CryptoAlgorithmAES_CTR.cpp:

(WebCore::CryptoAlgorithmAES_CTR::CounterBlockHelper::CounterBlockHelper):
(WebCore::CryptoAlgorithmAES_CTR::CounterBlockHelper::countToOverflowSaturating const):
(WebCore::CryptoAlgorithmAES_CTR::CounterBlockHelper::counterVectorAfterOverflow const):

  • crypto/algorithms/CryptoAlgorithmAES_CTR.h:
  • crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:

(WebCore::transformAES_CTR):
(WebCore::bigIntegerToSizeT): Deleted.

LayoutTests:

Add test cases where the counter length is 66 and 128, and the counter capacity
to overflow is 1 and 2.

  • crypto/subtle/aes-ctr-import-key-encrypt-expected.txt:
  • crypto/subtle/aes-ctr-import-key-encrypt.html:
9:54 PM Changeset in webkit [256502] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GTK][WPE] More layout tests gardening
https://bugs.webkit.org/show_bug.cgi?id=207679

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-12

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
9:53 PM Changeset in webkit [256501] by commit-queue@webkit.org
  • 9 edits
    6 adds in trunk

WebP image format is not supported
https://bugs.webkit.org/show_bug.cgi?id=192672

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-02-12
Reviewed by Youenn Fablet.

Source/WebCore:

Add the mime type and the UTI of the WebP to the list of the allowed image
formats. WebP should be enabled only on macOS and iOS post Catalina.

Tests: fast/images/animated-webp-as-image.html

fast/images/webp-as-image.html

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::supportedImageMIMETypes):

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::animationPropertiesFromProperties):

  • platform/graphics/cg/UTIRegistry.cpp:

(WebCore::defaultSupportedImageTypes):

Source/WTF:

Introduce HAVE(WEBP) for macOS and iOS.

  • wtf/PlatformHave.h:

LayoutTests:

Disable the tests for all ports and enable it only for [ Catalina+ ].

  • TestExpectations:
  • fast/images/animated-webp-as-image-expected.html: Added.
  • fast/images/animated-webp-as-image.html: Added.
  • fast/images/resources/animated-red-green-blue-repeat-infinite.webp: Added.
  • fast/images/resources/green-400x400.webp: Added.
  • fast/images/webp-as-image-expected.html: Added.
  • fast/images/webp-as-image.html: Added.
  • platform/mac/TestExpectations:
8:11 PM Changeset in webkit [256500] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Add options for debugging WASM code.
https://bugs.webkit.org/show_bug.cgi?id=207677
<rdar://problem/59411390>

Reviewed by Yusuke Suzuki.

Specifically ...

JSC_useBBQJIT - allows the BBQ JIT to be used if true
JSC_useOMGJIT - allows the OMG JIT to be used if true
JSC_useWasmLLIntPrologueOSR - allows prologue OSR from Wasm LLInt if true
JSC_useWasmLLIntLoopOSR - allows loop OSR from Wasm LLInt if true
JSC_useWasmLLIntEpilogueOSR - allows epilogue OSR from Wasm LLInt if true
JSC_wasmFunctionIndexRangeToCompile=N:M - wasm function index range to allow compilation on, e.g. 1:100

(JSC::Options::ensureOptionsAreCoherent):

  • runtime/OptionsList.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::BBQPlan):

  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::OMGForOSREntryPlan):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::OMGPlan):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::shouldJIT):
(JSC::Wasm::operationWasmTriggerOSREntryNow):
(JSC::Wasm::operationWasmTriggerTierUpNow):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::shouldJIT):
(JSC::LLInt::WASM_SLOW_PATH_DECL):

6:47 PM Changeset in webkit [256499] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Remove LineLayoutContext::m_partialTrailingTextItem
https://bugs.webkit.org/show_bug.cgi?id=207670
<rdar://problem/59405854>

Reviewed by Antti Koivisto.

LineBuilder::Run does not hold a reference to these InlineItems anymore.

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::commitPartialContent):

  • layout/inlineformatting/LineLayoutContext.h:
6:30 PM Changeset in webkit [256498] by ysuzuki@apple.com
  • 5 edits in trunk/Source

[JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
https://bugs.webkit.org/show_bug.cgi?id=207673

Reviewed by Mark Lam.

Source/JavaScriptCore:

While BytecodeIndex is 4 bytes, CodeLocation is 8 bytes. So the tuple of them "JITCodeMap::Entry"
becomes 16 bytes because it adds 4 bytes padding. We should store BytecodeIndex and CodeLocation separately
to avoid this padding.

This patch introduces JITCodeMapBuilder. We use this to build JITCodeMap data structure as a immutable final result.

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITCodeMap.h:

(JSC::JITCodeMap::JITCodeMap):
(JSC::JITCodeMap::find const):
(JSC::JITCodeMap::operator bool const):
(JSC::JITCodeMap::codeLocations const):
(JSC::JITCodeMap::indexes const):
(JSC::JITCodeMapBuilder::append):
(JSC::JITCodeMapBuilder::finalize):
(JSC::JITCodeMap::Entry::Entry): Deleted.
(JSC::JITCodeMap::Entry::bytecodeIndex const): Deleted.
(JSC::JITCodeMap::Entry::codeLocation): Deleted.
(JSC::JITCodeMap::append): Deleted.
(JSC::JITCodeMap::finish): Deleted.

Source/WTF:

  • wtf/MallocPtr.h:
6:18 PM Changeset in webkit [256497] by commit-queue@webkit.org
  • 9 edits in trunk

Web Inspector: encode binary web socket frames using base64
https://bugs.webkit.org/show_bug.cgi?id=207448

Previous representation of binary frames is lossy using fromUTF8WithLatin1Fallback,
this patch consistently encodes binary data using base64.

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-12
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Network.json:

Source/WebCore:

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::Inspector::buildWebSocketMessage):
(WebCore::InspectorNetworkAgent::didReceiveWebSocketFrame):
(WebCore::InspectorNetworkAgent::didSendWebSocketFrame):

Source/WebInspectorUI:

  • UserInterface/Models/WebSocketResource.js:

(WI.WebSocketResource.prototype.addFrame):

LayoutTests:

  • http/tests/websocket/tests/hybi/inspector/binary-expected.txt:
  • http/tests/websocket/tests/hybi/inspector/binary.html:
6:13 PM Changeset in webkit [256496] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WK2][Soup] Implement NetworkStorageSession::getAllCookies
https://bugs.webkit.org/show_bug.cgi?id=207449

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-12
Reviewed by Carlos Garcia Campos.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::getAllCookies):

5:38 PM Changeset in webkit [256495] by Russell Epstein
  • 15 edits in branches/safari-609-branch/Source

Cherry-pick r254859. rdar://problem/59298172

Minor improvements to StorageAreaMap
https://bugs.webkit.org/show_bug.cgi?id=206433

Reviewed by Darin Adler.

Source/WebCore:

Use inline initialization for some of StorageMap's data member.
Also specify uint8_t as underlying type of StorageType enum class for better packing.

  • inspector/InspectorInstrumentation.h:
  • storage/StorageArea.h:
  • storage/StorageMap.cpp: (WebCore::StorageMap::StorageMap):
  • storage/StorageMap.h:
  • storage/StorageType.h:

Source/WebKit:

Minor improvements to StorageAreaMap:

  1. The class does not need to be RefCounted, as it is solely owned by StorageNamespaceImpl. Having it RefCounted was actually dangerous because StorageAreaMap had a raw pointer data member to its owner: m_storageNamespace. This raw pointer could become stale if you extend the lifetime of the StorageAreaMap object to outlive its StorageNamespaceImpl.
  2. Make StorageAreaMap::connect() private as it is never called from outside the class
  3. Reorder data members for better packing
  4. Use modern loops in the implementation
  5. Rename loadValuesIfNeeded() to ensureStorageMap() and have it return the StorageMap object. This makes calls site more concise and it makes it clearer when this method needs to be called.
  6. Mark class as final
  7. Replace LOG_ERROR() with RELEASE_LOG_ERROR() so that we can see error logging in sysdiagnoses
  8. Use more references instead of raw pointers to make it clear when null checks are not needed
  • WebProcess/WebStorage/StorageAreaImpl.cpp: (WebKit::StorageAreaImpl::create): (WebKit::StorageAreaImpl::StorageAreaImpl):
  • WebProcess/WebStorage/StorageAreaImpl.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::StorageAreaMap): (WebKit::StorageAreaMap::length): (WebKit::StorageAreaMap::key): (WebKit::StorageAreaMap::item): (WebKit::StorageAreaMap::setItem): (WebKit::StorageAreaMap::removeItem): (WebKit::StorageAreaMap::clear): (WebKit::StorageAreaMap::contains): (WebKit::StorageAreaMap::resetValues): (WebKit::StorageAreaMap::ensureStorageMap): (WebKit::StorageAreaMap::applyChange): (WebKit::StorageAreaMap::dispatchSessionStorageEvent): (WebKit::StorageAreaMap::dispatchLocalStorageEvent): (WebKit::StorageAreaMap::connect): (WebKit::StorageAreaMap::disconnect):
  • WebProcess/WebStorage/StorageAreaMap.h:
  • WebProcess/WebStorage/StorageAreaMap.messages.in:
  • WebProcess/WebStorage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::storageArea):
  • WebProcess/WebStorage/StorageNamespaceImpl.h:

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

5:11 PM Changeset in webkit [256494] by ysuzuki@apple.com
  • 11 edits in trunk/Source/WebCore

CSSValuePool's constant CSS values should not be allocated dynamically (and same for Vectors)
https://bugs.webkit.org/show_bug.cgi?id=207666

Reviewed by Mark Lam.

r252785 changes contents (CSSValues and Vectors) of CSSValuePool from static ones to
dynamically allocated ones. This was done since we would like to use static CSSValues
even in the other threads (workers etc.) for OffscreenCanvas feature.

But this causes memory regression in Membuster since we allocates many CSSValues and
large Vectors, and they are kept persistently.

This patch removes dynamic allocation part of r252785 to recover memory regression.
The key of this patch is introducing Static CSSValue feature. When incrementing / decrementing
m_refCount of CSSValue, we add / subtract by 0x2. And we put 0x1 as a static-flag. So, even if
this CSSValue is used by multiple threads, we never see that CSSValue gets 0 m_refCount if
it is marked as static (having 0x1). This is the same design to our static StringImpl.

No behavior change.

  • css/CSSInheritedValue.h:
  • css/CSSInitialValue.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSPrimitiveValue.h:
  • css/CSSRevertValue.h:
  • css/CSSUnsetValue.h:
  • css/CSSValue.cpp:
  • css/CSSValue.h:

(WebCore::CSSValue::ref const):
(WebCore::CSSValue::hasOneRef const):
(WebCore::CSSValue::refCount const):
(WebCore::CSSValue::hasAtLeastOneRef const):
(WebCore::CSSValue::deref):
(WebCore::CSSValue::makeStatic):

  • css/CSSValuePool.cpp:

(WebCore::StaticCSSValuePool::StaticCSSValuePool):
(WebCore::StaticCSSValuePool::init):
(WebCore::CSSValuePool::CSSValuePool):
(WebCore::CSSValuePool::singleton):
(WebCore::CSSValuePool::createIdentifierValue):
(WebCore::CSSValuePool::createColorValue):
(WebCore::CSSValuePool::createValue):

  • css/CSSValuePool.h:

(WebCore::CSSValuePool::createInheritedValue):
(WebCore::CSSValuePool::createImplicitInitialValue):
(WebCore::CSSValuePool::createExplicitInitialValue):
(WebCore::CSSValuePool::createUnsetValue):
(WebCore::CSSValuePool::createRevertValue):

5:06 PM Changeset in webkit [256493] by Ryan Haddad
  • 30 edits
    8 deletes in trunk

Unreviewed, rolling out r256010.

Introduced ASan crashes

Reverted changeset:

"[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=206582
https://trac.webkit.org/changeset/r256010

4:34 PM Changeset in webkit [256492] by Jonathan Bedard
  • 2 edits in trunk/Tools

run-javascriptcore-tests: Allow insecure requests on upload
https://bugs.webkit.org/show_bug.cgi?id=207662

Rubber-stamped by Aakash Jain.

  • Scripts/run-javascriptcore-tests:

(uploadResults): Allow insecure curl request when posting results.

4:31 PM Changeset in webkit [256491] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

Multiple GCC 10 build failures in ANGLE
https://bugs.webkit.org/show_bug.cgi?id=207365

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-12
Reviewed by Carlos Alberto Lopez Perez.

  • changes.diff: Updated.
  • include/platform/Platform.h: Add missing #include to get size_t.
  • src/common/PackedEnums.h: Remove problematic const_casts.
4:24 PM Changeset in webkit [256490] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] LineBuilder should be able to take a partial trailing inline text item
https://bugs.webkit.org/show_bug.cgi?id=207640
<rdar://problem/59390284>

Reviewed by Antti Koivisto.

With this patch, now the trailing run on the line has the needsHyphen bit set.
When constructing the final Display:Runs in InlineFormattingContext::setDisplayBoxesForLine using
the line runs, we transfer the needsHyphen bit instead of explicitly set on the trailing run.

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContent::TextContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::appendPartialTrailingTextItem):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::m_textContent):
(WebCore::Layout::LineBuilder::Run::Run):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::Run::setNeedsHyphen):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
(WebCore::Layout::LineLayoutContext::commitPartialContent):

  • layout/inlineformatting/LineLayoutContext.h:
4:24 PM Changeset in webkit [256489] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h

Unreviewed Build Fix, rdar://problem/59298143

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

[Mac wk2 ] fast/dom/attr_dead_doc.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207668

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:46 PM Changeset in webkit [256487] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/WebCore

[Curl] Force HTTP/1.1 for WebSocket connection
https://bugs.webkit.org/show_bug.cgi?id=207656

Reviewed by Fujii Hironori.

No tests for H2 in LayoutTests. Checked in real site.
See: https://bugs.webkit.org/show_bug.cgi?id=176483

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::enableConnectionOnly):

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

[ iOS Sim WK2 ] Layout Test fast/visual-viewport/ios/min-scale-greater-than-one.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196300

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:16 PM Changeset in webkit [256485] by Wenson Hsieh
  • 8 edits in trunk

Composition highlight rects should be rounded and inset
https://bugs.webkit.org/show_bug.cgi?id=207655
<rdar://problem/59362474>

Reviewed by Tim Horton.

Source/WebCore:

Apply a couple of minor adjustments to the appearance of composition highlight rects that appear behind marked
text, in the case where the client specifies attributed marked text with background colors.

Test: editing/input/composition-highlights.html

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintCompositionBackground):

In the case where custom composition rects are specified, add a half-pixel inset to all sides of the background
rect, and add a slight corner radius around each background rect.

  • rendering/InlineTextBox.h:

Source/WebKit:

Stitch adjacent highlight rects together if they have the same highlight color; this minimizes the number of
composition highlight rects we hand to the web process when changing the marked text.

  • UIProcess/ios/WKContentViewInteraction.mm:

(compositionHighlights):

LayoutTests:

Make this existing layout test work with the new composition highlight appearance by covering up the edges of
the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
have a border-radius).

  • editing/input/composition-highlights-expected.html:
  • editing/input/composition-highlights.html:
3:03 PM Changeset in webkit [256484] by Truitt Savell
  • 33 edits in trunk

Unreviewed, rolling out r256463.

Caused major flakiness on Mac wk2

Reverted changeset:

"REGRESSION (r255158): http/tests/frame-throttling/raf-
throttle-in-cross-origin-subframe.html is a flaky failure"
https://bugs.webkit.org/show_bug.cgi?id=206839
https://trac.webkit.org/changeset/256463

2:52 PM Changeset in webkit [256483] by Jonathan Bedard
  • 5 edits in trunk/Tools

results.webkit.org: Remove debug JS logging
https://bugs.webkit.org/show_bug.cgi?id=207663

Reviewed by Aakash Jain.

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

(elapsed):

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

(_ToolTip.prototype.toString):

  • resultsdbpy/resultsdbpy/view/static/library/js/Ref.js:

(prototype.addWithDelay):

  • resultsdbpy/resultsdbpy/view/templates/archive_list.html:
2:51 PM Changeset in webkit [256482] by ysuzuki@apple.com
  • 16 edits in trunk/Source

Shrink CachedResource
https://bugs.webkit.org/show_bug.cgi?id=207618

Reviewed by Mark Lam.

Source/WebCore:

This patch shrinks sizeof(CachedResource) by 80 bytes by aggressively using bit-fields and Markable<>.
For each enum class, we define bitsOfXXX value, which indicates # of bits to represent it. And using
this value for bit-field's width.

No behavior change.

  • loader/FetchOptions.h:

(WebCore::FetchOptions::encode const):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::loadedFromOpaqueSource):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::CachedImage):
(WebCore::CachedImage::shouldDeferUpdateImageData const):
(WebCore::CachedImage::didUpdateImageData):

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

(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::load):
(WebCore::CachedResource::finish):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::setStatus):

  • page/csp/ContentSecurityPolicyResponseHeaders.h:

(WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::isEmptyValue):
(WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::emptyValue):
(WebCore::ContentSecurityPolicyResponseHeaders::ContentSecurityPolicyResponseHeaders):

  • platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetrics::isolatedCopy const):
(WebCore::NetworkLoadMetrics::clearNonTimingData):
(WebCore::NetworkLoadMetrics::operator== const):
(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):

  • platform/network/ResourceLoadPriority.h:
  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::ResourceRequestBase):

  • platform/network/ResourceResponseBase.h:
  • platform/network/StoredCredentialsPolicy.h:

Source/WTF:

  • wtf/Markable.h:

(WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.

  • wtf/ObjectIdentifier.h:

(WTF::ObjectIdentifier::MarkableTraits::isEmptyValue):
(WTF::ObjectIdentifier::MarkableTraits::emptyValue):
(WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.

2:50 PM Changeset in webkit [256481] by Alan Coon
  • 17 edits in branches/safari-609-branch/Source/WebCore

Revert r256409. rdar://problem/59298138

2:50 PM Changeset in webkit [256480] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebCore

Revert r256457. rdar://problem/59298138

2:50 PM Changeset in webkit [256479] by Alan Coon
  • 1 edit in branches/safari-609-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h

Revert r256469. rdar://problem/59298138

2:42 PM Changeset in webkit [256478] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/cache-storage/cache-representation.https.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207665

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:26 PM Changeset in webkit [256477] by Simon Fraser
  • 49 edits
    6 deletes in trunk

Remove CSS_DEVICE_ADAPTATION
https://bugs.webkit.org/show_bug.cgi?id=203479

Reviewed by Tim Horton.
Source/JavaScriptCore:

CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJSNewlyCreated):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/CSSProperty.cpp:

(WebCore::CSSProperty::isDescriptorOnly):

  • css/CSSRule.cpp:
  • css/CSSRule.h:
  • css/CSSRule.idl:
  • css/CSSValueKeywords.in:
  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy const):
(WebCore::StyleRuleBase::createCSSOMWrapper const):
(WebCore::StyleRuleViewport::StyleRuleViewport): Deleted.
(WebCore::StyleRuleViewport::mutableProperties): Deleted.

  • css/StyleRule.h:

(WebCore::StyleRuleBase::isSupportsRule const):
(WebCore::StyleRuleBase::isViewportRule const): Deleted.

  • css/StyleRuleType.h:
  • css/StyleSheetContents.cpp:

(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseSubresources const):

  • css/ViewportStyleResolver.cpp: Removed.
  • css/ViewportStyleResolver.h: Removed.
  • css/WebKitCSSViewportRule.cpp: Removed.
  • css/WebKitCSSViewportRule.h: Removed.
  • css/WebKitCSSViewportRule.idl: Removed.
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeAtRule):
(WebCore::CSSParserImpl::consumeViewportRule): Deleted.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseValue):
(WebCore::consumeSingleViewportDescriptor): Deleted.
(WebCore::CSSPropertyParser::parseViewportDescriptor): Deleted.

  • dom/Document.cpp:

(WebCore::Document::initialViewportSize const): Deleted.

  • dom/Document.h:
  • page/FrameView.h:
  • style/RuleData.cpp:
  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addChildRules):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::Resolver):
(WebCore::Style::Resolver::appendAuthorStyleSheets):
(WebCore::Style::Resolver::~Resolver):

  • style/StyleResolver.h:

(WebCore::Style::Resolver::viewportStyleResolver): Deleted.

Source/WebCore/PAL:

CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::sendViewportAttributesChanged):

Source/WebKitLegacy/mac:

CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.

  • Configurations/FeatureDefines.xcconfig:
  • DOM/DOMCSS.mm:

(kitClass):

Source/WTF:

CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.

  • wtf/PlatformEnable.h:

Tools:

CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • css3/device-adapt/opera/cascading-001-expected.txt: Removed.
  • css3/device-adapt/opera/cascading-001.xhtml: Removed.
  • css3/device-adapt/opera/cascading-002-expected.txt: Removed.
  • css3/device-adapt/opera/cascading-002.xhtml: Removed.
  • css3/device-adapt/opera/cascading-003-expected.txt: Removed.
  • css3/device-adapt/opera/cascading-003.xhtml: Removed.
  • css3/device-adapt/opera/cascading-004-expected.txt: Removed.
  • css3/device-adapt/opera/cascading-004.xhtml: Removed.
  • css3/device-adapt/opera/constrain-001-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-001.xhtml: Removed.
  • css3/device-adapt/opera/constrain-002-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-002.xhtml: Removed.
  • css3/device-adapt/opera/constrain-003-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-003.xhtml: Removed.
  • css3/device-adapt/opera/constrain-004-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-004.xhtml: Removed.
  • css3/device-adapt/opera/constrain-005-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-005.xhtml: Removed.
  • css3/device-adapt/opera/constrain-006-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-006.xhtml: Removed.
  • css3/device-adapt/opera/constrain-007-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-007.xhtml: Removed.
  • css3/device-adapt/opera/constrain-008-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-008.xhtml: Removed.
  • css3/device-adapt/opera/constrain-009-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-009.xhtml: Removed.
  • css3/device-adapt/opera/constrain-010-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-010.xhtml: Removed.
  • css3/device-adapt/opera/constrain-011-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-011.xhtml: Removed.
  • css3/device-adapt/opera/constrain-012-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-012.xhtml: Removed.
  • css3/device-adapt/opera/constrain-013-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-013.xhtml: Removed.
  • css3/device-adapt/opera/constrain-014-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-014.xhtml: Removed.
  • css3/device-adapt/opera/constrain-015-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-015.xhtml: Removed.
  • css3/device-adapt/opera/constrain-016-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-016.xhtml: Removed.
  • css3/device-adapt/opera/constrain-017-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-017.xhtml: Removed.
  • css3/device-adapt/opera/constrain-018-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-018.xhtml: Removed.
  • css3/device-adapt/opera/constrain-019-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-019.xhtml: Removed.
  • css3/device-adapt/opera/constrain-020-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-020.xhtml: Removed.
  • css3/device-adapt/opera/constrain-021-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-021.xhtml: Removed.
  • css3/device-adapt/opera/constrain-022-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-022.xhtml: Removed.
  • css3/device-adapt/opera/constrain-023-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-023.xhtml: Removed.
  • css3/device-adapt/opera/constrain-024-expected.txt: Removed.
  • css3/device-adapt/opera/constrain-024.xhtml: Removed.
  • css3/device-adapt/opera/cssom-001-expected.txt: Removed.
  • css3/device-adapt/opera/cssom-001.xhtml: Removed.
  • css3/device-adapt/opera/orientation-001-expected.txt: Removed.
  • css3/device-adapt/opera/orientation-001.xhtml: Removed.
  • css3/device-adapt/opera/orientation-002-expected.txt: Removed.
  • css3/device-adapt/opera/orientation-002.xhtml: Removed.
  • css3/device-adapt/opera/syntax-001-expected.txt: Removed.
  • css3/device-adapt/opera/syntax-001.xhtml: Removed.
  • css3/device-adapt/opera/syntax-002-expected.txt: Removed.
  • css3/device-adapt/opera/syntax-002.xhtml: Removed.
  • css3/device-adapt/opera/syntax-003-expected.txt: Removed.
  • css3/device-adapt/opera/syntax-003.xhtml: Removed.
  • css3/device-adapt/resources/check-contents-width.html: Removed.
  • css3/device-adapt/resources/viewport-width-check-inner-width.html: Removed.
  • css3/device-adapt/viewport-at-rule-parsing-expected.txt: Removed.
  • css3/device-adapt/viewport-at-rule-parsing.html: Removed.
  • css3/device-adapt/viewport-properties-validation-expected.txt: Removed.
  • css3/device-adapt/viewport-properties-validation.html: Removed.
  • css3/device-adapt/viewport-width-check-window-innerwidth-correct-expected.txt: Removed.
  • css3/device-adapt/viewport-width-check-window-innerwidth-correct.html: Removed.
  • css3/device-adapt/viewport-width-not-affecting-next-page-expected.txt: Removed.
  • css3/device-adapt/viewport-width-not-affecting-next-page.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wpe/TestExpectations:
2:05 PM Changeset in webkit [256476] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[macOS] Remove irrelevant global-name rule in WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=207659
<rdar://problem/52289544>

Reviewed by Per Arne Vollan.

We have been allowing access to a non-existance global-name. We should remove this rule.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
1:53 PM Changeset in webkit [256475] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] crypto/subtle/rsa-indexeddb-non-exportable-private.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207660

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:50 PM Changeset in webkit [256474] by BJ Burg
  • 3 edits in trunk/Source/WebCore

Web Inspector: inspector/cpu-profiler/threads.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=207588
<rdar://problem/57458123>

Reviewed by Yusuke Suzuki.

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::ResourceUsageThread::platformCollectCPUData):
Use a fence to force Thread to be completely ready for use by other threads
prior to storing it. Otherwise, ResourceUsageThread may see it too early.

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::start): Ignore worker threads that are
not fully initialized.

1:49 PM Changeset in webkit [256473] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[iOS] Remove access to AppleKeyStoreUserClient from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=207654
<rdar://problem/58804060>

Reviewed by Per Arne Vollan.

Testing and telemetry show that we no longer need access to the AppleKeyStoreUserClient
IOKit class in the WebContent or GPU processes. We should remove this access.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:48 PM Changeset in webkit [256472] by Russell Epstein
  • 2 edits
    24 deletes in branches/safari-610.1.3-branch/Source/ThirdParty/ANGLE

Cherry-pick r256443. rdar://problem/59398102

ANGLE has unused bison and glmark2 code
https://bugs.webkit.org/show_bug.cgi?id=207597
rdar://59361460

Reviewed by Maciej Stachowiak.

Remove some unused files.

  • changes.diff:
  • src/tests/perf_tests/glmark2Benchmark.cpp: Removed.
  • third_party/glmark2/BUILD.gn: Removed.
  • third_party/glmark2/README.angle: Removed.
  • tools/flex-bison/README.md: Removed.
  • tools/flex-bison/linux/bison.sha1: Removed.
  • tools/flex-bison/linux/flex.sha1: Removed.
  • tools/flex-bison/third_party/.gitattributes: Removed.
  • tools/flex-bison/third_party/m4sugar/LICENSE: Removed.
  • tools/flex-bison/third_party/m4sugar/README.chromium: Removed.
  • tools/flex-bison/third_party/m4sugar/foreach.m4: Removed.
  • tools/flex-bison/third_party/m4sugar/m4sugar.m4: Removed.
  • tools/flex-bison/third_party/skeletons/LICENSE: Removed.
  • tools/flex-bison/third_party/skeletons/README.chromium: Removed.
  • tools/flex-bison/third_party/skeletons/bison.m4: Removed.
  • tools/flex-bison/third_party/skeletons/c-like.m4: Removed.
  • tools/flex-bison/third_party/skeletons/c.m4: Removed.
  • tools/flex-bison/third_party/skeletons/yacc.c: Removed.
  • tools/flex-bison/update_flex_bison_binaries.py: Removed.
  • tools/flex-bison/windows/bison.exe.sha1: Removed.
  • tools/flex-bison/windows/flex.exe.sha1: Removed.
  • tools/flex-bison/windows/m4.exe.sha1: Removed.
  • tools/flex-bison/windows/msys-2.0.dll.sha1: Removed.
  • tools/flex-bison/windows/msys-iconv-2.dll.sha1: Removed.
  • tools/flex-bison/windows/msys-intl-8.dll.sha1: Removed.

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

1:48 PM Changeset in webkit [256471] by Russell Epstein
  • 5 edits in branches/safari-610.1.3-branch/Source/WebKit

Cherry-pick r256396. rdar://problem/59398237

Unreviewed, revert r255662 as it seems to cause blank views in SVC.
https://bugs.webkit.org/show_bug.cgi?id=207144
<rdar://problem/59334011>

  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

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

1:46 PM Changeset in webkit [256470] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

ServiceWorkerContainer::jobResolvedWithRegistration scopeExit should capture all lambda parameters by value
https://bugs.webkit.org/show_bug.cgi?id=207657

Reviewed by Chris Dumez.

shouldNotifyWhenResolved is captured by reference in the notifyIfExitEarly ScopeExit lambda.
The ScopeExit is not always called synchronously so it is unsafe to capture values by reference here.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

1:35 PM Changeset in webkit [256469] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h

Unreviewed Build Fix, rdar://problem/59298138

12:32 PM Changeset in webkit [256468] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Compact StructureTransitionTable
https://bugs.webkit.org/show_bug.cgi?id=207616

Reviewed by Mark Lam.

Some of StructureTransitionTable are shown as very large HashMap and we can compact it by encoding key.
We leverage 48bit pointers and 8byte alignment of UniquedStringImpl* to encode other parameters into it.

  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::contains const):
(JSC::StructureTransitionTable::get const):
(JSC::StructureTransitionTable::add):

  • runtime/Structure.h:
  • runtime/StructureTransitionTable.h:

(JSC::StructureTransitionTable::Hash::Key::Key):
(JSC::StructureTransitionTable::Hash::Key::isHashTableDeletedValue const):
(JSC::StructureTransitionTable::Hash::Key::impl const):
(JSC::StructureTransitionTable::Hash::Key::isAddition const):
(JSC::StructureTransitionTable::Hash::Key::attributes const):
(JSC::StructureTransitionTable::Hash::Key::operator==):
(JSC::StructureTransitionTable::Hash::Key::operator!=):
(JSC::StructureTransitionTable::Hash::hash):
(JSC::StructureTransitionTable::Hash::equal):

12:07 PM Changeset in webkit [256467] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Make RegExpCache small
https://bugs.webkit.org/show_bug.cgi?id=207619

Reviewed by Mark Lam.

We can compact RegExpKey by using PackedRefPtr, so that we can shrink memory consumption of RegExpCache.

  • runtime/RegExpKey.h:
12:01 PM Changeset in webkit [256466] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Do not create Display::Boxes for anonymous inline text boxes
https://bugs.webkit.org/show_bug.cgi?id=207612
<rdar://problem/59374909>

Reviewed by Antti Koivisto.

<div>text content</div> : [text content] only needs a Display::Run.
<div><span>text content</span></div> [span] needs a Display::Box and [text content] needs a Display::Run.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

11:43 AM Changeset in webkit [256465] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore5.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207652

Unreviewed test gardening.

  • platform/ios/TestExpectations:
11:34 AM Changeset in webkit [256464] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore4.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207651

Unreviewed test gardening.

  • platform/ios/TestExpectations:
11:31 AM Changeset in webkit [256463] by Said Abou-Hallawa
  • 33 edits in trunk

REGRESSION (r255158): http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206839

Reviewed by Simon Fraser.

Source/WebCore:

Remove the setting 'RenderingUpdateThrottling'. We will disable the
RenderingUpdateThrottling till the first layout happens. Then it will be
enabled for the rest of the page's life. This ensures VisuallyIdle won't
throttle the RenderingUpdate steps before the first paint.

  • page/Page.cpp:

(WebCore::Page::renderingUpdateThrottlingEnabled const):
(WebCore::Page::addLayoutMilestones):
(WebCore::Page::renderingUpdateThrottlingEnabledChanged): Deleted.

  • page/Page.h:
  • page/Settings.yaml:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::renderingUpdateThrottlingEnabledChanged): Deleted.

  • page/SettingsBase.h:

Source/WebKit:

Remove the WKPreference key 'RenderingUpdateThrottlingEnabled'.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetRenderingUpdateThrottlingEnabled): Deleted.
(WKPreferencesGetRenderingUpdateThrottlingEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Remove the WKPreference key 'RenderingUpdateThrottlingEnabled'.

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

(+[WebPreferences initialize]):
(-[WebPreferences renderingUpdateThrottlingEnabled]): Deleted.
(-[WebPreferences setRenderingUpdateThrottlingEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

Remove the WKPreference key 'RenderingUpdateThrottlingEnabled'.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::renderingUpdateThrottlingEnabled): Deleted.
(WebPreferences::setRenderingUpdateThrottlingEnabled): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

Remove the WKPreference key 'RenderingUpdateThrottlingEnabled'.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Remove the setting 'RenderingUpdateThrottling'.

  • fast/animation/css-animation-throttling-lowPowerMode.html:
  • fast/animation/request-animation-frame-throttle-subframe.html:
  • fast/animation/request-animation-frame-throttling-detached-iframe.html:
  • fast/animation/request-animation-frame-throttling-lowPowerMode.html:
  • fast/animation/request-animation-frame-throttling-outside-viewport.html:
  • http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
  • platform/mac-wk2/TestExpectations:
11:27 AM Changeset in webkit [256462] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore3.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207650

Unreviewed test gardening.

  • platform/ios/TestExpectations:
11:15 AM Changeset in webkit [256461] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing/idb_webworkers.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207649

Unreviewed test gardening.

  • platform/ios/TestExpectations:
11:13 AM Changeset in webkit [256460] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Refactor DocumentLoader::commitData to use a Document& internally
https://bugs.webkit.org/show_bug.cgi?id=207579

Reviewed by Chris Dumez.

Once we write some bytes, the frame has a Document.
Put it in a local variable to improve readability of the code.
No change of behavior.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitData):

11:09 AM Changeset in webkit [256459] by Alan Coon
  • 3 edits in branches/safari-610.1.3-branch/Source/WebCore

Cherry-pick r256400. rdar://problem/59240559

Unreviewed, partial rollout of r255037.
<rdar://problem/59240559>

  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):

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

11:07 AM Changeset in webkit [256458] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Display::Run should not have any geometry mutation functions.
https://bugs.webkit.org/show_bug.cgi?id=207633
<rdar://problem/59386235>

Reviewed by Antti Koivisto.

Now that Display::Runs are constructed after merging the runs on the line, we don't need any of
these mutation functions.

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::textContent const):
(WebCore::Display::Run::isLineBreak const):
(WebCore::Display::Run::lineIndex const):
(WebCore::Display::Run::setWidth): Deleted.
(WebCore::Display::Run::setTop): Deleted.
(WebCore::Display::Run::setlLeft): Deleted.
(WebCore::Display::Run::moveVertically): Deleted.
(WebCore::Display::Run::moveHorizontally): Deleted.
(WebCore::Display::Run::expandVertically): Deleted.
(WebCore::Display::Run::expandHorizontally): Deleted.
(WebCore::Display::Run::setTextContent): Deleted.
(WebCore::Display::Run::setExpansion): Deleted.
(WebCore::Display::Run::setImage): Deleted.

10:59 AM Changeset in webkit [256457] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Re-apply Cherry-pick r256060. rdar://problem/59298138

Captions sometimes render at the wrong size when in fullscreen and PiP
https://bugs.webkit.org/show_bug.cgi?id=207389
<rdar://problem/58677864>

Reviewed by Jer Noble.

The TextTrackRepresentation, used to render captions when in fullscreen and PiP on
iOS and and in PiP on macOS, frequently rendered captions before layout completed
immediately after it was created. Fix this by having it not render until a layout
happens. Additionally, make the code more efficient by hiding the TextTrackRepresentation's
backing layer when cues are not visible instead of destroying the whole object.
Drive by: RELEASE_LOG_DISABLED is always defined for PLATFORM(COCOA), so remove it
from the macOS/iOS media players to make it easier to add logging to VideoFullscreenLayerManagerObjC.

  • html/HTMLMediaElement.cpp: (WebCore::convertEnumerationToString): (WebCore::HTMLMediaElement::configureTextTrackDisplay):
  • html/HTMLMediaElementEnums.h: (WTF::LogArgument<WebCore::HTMLMediaElementEnums::TextTrackVisibilityCheckType>::toString):
  • html/shadow/MediaControlElements.cpp: (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): (WebCore::MediaControlTextTrackContainerElement::updateDisplay): (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation): (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation): (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle): (WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary): (WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize): (WebCore::MediaControlTextTrackContainerElement::updateSizes): (WebCore::MediaControlTextTrackContainerElement::updateCueStyles): (WebCore::MediaControlTextTrackContainerElement::logger const): (WebCore::MediaControlTextTrackContainerElement::logIdentifier const): (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Deleted. (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Deleted.
  • platform/graphics/TextTrackRepresentation.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation): (WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::mediaPlayerLogger):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::logChannel const):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const):
  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm: (WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC): (WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer): (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer): (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame): (WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer): (WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds): (WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation): (WebCore::VideoFullscreenLayerManagerObjC::logChannel const):
  • platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
  • platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: (-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]): (TextTrackRepresentationCocoa::setHidden const): (TextTrackRepresentationCocoa::boundsChanged):
  • rendering/RenderMediaControlElements.cpp: (WebCore::RenderTextTrackContainerElement::layout):

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

10:57 AM Changeset in webkit [256456] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/ssl/applepay/ApplePayBillingAddress.html a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207577

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-12
Reviewed by Wenson Hsieh

Fix for race condition when aborting paymentrequest.

  • http/tests/ssl/applepay/ApplePayBillingAddress.html:
10:49 AM Changeset in webkit [256455] by pvollan@apple.com
  • 5 edits in trunk

Source/WebKit:
Pages that trigger a redirect will sometimes be left blank
https://bugs.webkit.org/show_bug.cgi?id=207614
rdar://problem/59077740

Patch by Simon Fraser <Simon Fraser> on 2020-02-12
Reviewed by Tim Horton.

TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
time. However, this sequence of calls had a bug:

setRootCompositingGraphicsLayer() when frozen

-> stash in m_pendingRootLayer

setRootCompositingGraphicsLayer() when not frozen

-> set the root layer

flushLayers()

-> set the root layer to the (old) m_pendingRootLayer

So we need to clear m_pendingRootLayer at step 2.

Very timing dependent, hard to test.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):

LayoutTests:
[iOS] Deny mach lookup access to analytics service in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=207482

Reviewed by Darin Adler.

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
10:48 AM Changeset in webkit [256454] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207647

Unreviewed test gardening.

  • platform/ios/TestExpectations:
10:47 AM Changeset in webkit [256453] by Jonathan Bedard
  • 4 edits in trunk/Tools

results.webkit.org: Cache archive content
https://bugs.webkit.org/show_bug.cgi?id=207589

Reviewed by Aakash Jain.

  • resultsdbpy/resultsdbpy/flask_support/util.py:

(cache_for): Add decorator function which sets the cache values on the returned response.

  • resultsdbpy/resultsdbpy/view/archive_view.py:

(ArchiveView): Cache archive content client-side for 12 hours.

  • resultsdbpy/resultsdbpy/view/archive_view_unittest.py:

(ArchiveViewUnittest.test_file): Verify that archived content is cached.

10:46 AM Changeset in webkit [256452] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Pages that trigger a redirect will sometimes be left blank
https://bugs.webkit.org/show_bug.cgi?id=207614
rdar://problem/59077740

Reviewed by Tim Horton.

TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
time. However, this sequence of calls had a bug:

setRootCompositingGraphicsLayer() when frozen

-> stash in m_pendingRootLayer

setRootCompositingGraphicsLayer() when not frozen

-> set the root layer

flushLayers()

-> set the root layer to the (old) m_pendingRootLayer

So we need to clear m_pendingRootLayer at step 2.

Very timing dependent, hard to test.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):

10:40 AM Changeset in webkit [256451] by Megan Gardner
  • 7 edits in trunk

Fix highlight text decorations to work with all decoration types and colors
https://bugs.webkit.org/show_bug.cgi?id=207601

Reviewed by Dean Jackson.

Source/WebCore:

MarkedText styles were incorrectly setting styles, and colors were being
calculated incorrectly.

Extended http/wpt/css/css-highlight-api/highlight-text-decorations.html.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::resolveStyleForMarkedText):
Correctly pass information about text decorations to MarkedTexts styles.

  • rendering/TextDecorationPainter.cpp:

(WebCore::collectStylesForRenderer):
(WebCore::TextDecorationPainter::decorationColor):
(WebCore::decorationColor): Deleted.
Expose decorationColor calculator for use in InlineTextBox.

  • rendering/TextDecorationPainter.h:

LayoutTests:

  • http/wpt/css/css-highlight-api/highlight-text-decorations-expected.html:
  • http/wpt/css/css-highlight-api/highlight-text-decorations.html:
10:40 AM Changeset in webkit [256450] by pvollan@apple.com
  • 5 edits in trunk

[iOS] Deny mach lookup access to view service in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=207487
Source/WebKit:

<rdar://problem/56995704>

Reviewed by Darin Adler.

As part of sandbox hardening, mach lookup access to com.apple.uikit.viewservice should be denied.

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

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

LayoutTests:

Reviewed by Darin Adler.

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
10:36 AM Changeset in webkit [256449] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/security/cross-frame-access-private-browsing.html is a flay timeout
https://bugs.webkit.org/show_bug.cgi?id=207645

Unreviewed test gardening.

  • platform/ios/TestExpectations:
10:27 AM Changeset in webkit [256448] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing.sub.https.html is flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207643

Unreviewed test gardening.

  • platform/ios/TestExpectations:
10:24 AM Changeset in webkit [256447] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

RELEASE_ASSERT() under WebSWClientConnection::didResolveRegistrationPromise()
https://bugs.webkit.org/show_bug.cgi?id=207637
<rdar://problem/59093490>

Reviewed by Youenn Fablet.

We were capturing data by reference in the notifyIfExitEarly ScopeExit lambda and then capturing it
in the task posted to the event loop, which was unsafe.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

10:07 AM Changeset in webkit [256446] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing
[ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:03 AM Changeset in webkit [256445] by commit-queue@webkit.org
  • 2 edits
    3 moves
    3 adds
    3 deletes in trunk/LayoutTests

[css-grid] Move grid-item-auto-margins-alignment tests to WPT folder
https://bugs.webkit.org/show_bug.cgi?id=207534

Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-02-12
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Add grid-item-auto-margins-alignment tests, checked and adapted to WPT, with their expected.txt files.
Imported to WPT with this PR: https://github.com/web-platform-tests/wpt/pull/21509

  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-lr-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-lr.html:
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-rl.html:
  • web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment.html:

LayoutTests:

Remove grid-item-auto-margins-alignment tests and their expected.txt files. These tests
are being replaced by adapted tests in the corresponding WPT test folder.

  • fast/css-grid-layout/grid-item-auto-margins-alignment-expected.txt: Removed.
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr-expected.txt: Removed.
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl-expected.txt: Removed.
  • fast/css-grid-layout/grid-item-auto-margins-alignment.html: Removed.
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr.html: Removed.
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl.html: Removed.
10:02 AM Changeset in webkit [256444] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Make _WKResourceLoadDelegate.h able to be included before other headers
https://bugs.webkit.org/show_bug.cgi?id=206037

  • UIProcess/API/Cocoa/_WKResourceLoadDelegate.h:

Add missing "@class WKWebView;"

9:33 AM Changeset in webkit [256443] by dino@apple.com
  • 2 edits
    24 deletes in trunk/Source/ThirdParty/ANGLE

ANGLE has unused bison and glmark2 code
https://bugs.webkit.org/show_bug.cgi?id=207597
rdar://59361460

Reviewed by Maciej Stachowiak.

Remove some unused files.

  • changes.diff:
  • src/tests/perf_tests/glmark2Benchmark.cpp: Removed.
  • third_party/glmark2/BUILD.gn: Removed.
  • third_party/glmark2/README.angle: Removed.
  • tools/flex-bison/README.md: Removed.
  • tools/flex-bison/linux/bison.sha1: Removed.
  • tools/flex-bison/linux/flex.sha1: Removed.
  • tools/flex-bison/third_party/.gitattributes: Removed.
  • tools/flex-bison/third_party/m4sugar/LICENSE: Removed.
  • tools/flex-bison/third_party/m4sugar/README.chromium: Removed.
  • tools/flex-bison/third_party/m4sugar/foreach.m4: Removed.
  • tools/flex-bison/third_party/m4sugar/m4sugar.m4: Removed.
  • tools/flex-bison/third_party/skeletons/LICENSE: Removed.
  • tools/flex-bison/third_party/skeletons/README.chromium: Removed.
  • tools/flex-bison/third_party/skeletons/bison.m4: Removed.
  • tools/flex-bison/third_party/skeletons/c-like.m4: Removed.
  • tools/flex-bison/third_party/skeletons/c.m4: Removed.
  • tools/flex-bison/third_party/skeletons/yacc.c: Removed.
  • tools/flex-bison/update_flex_bison_binaries.py: Removed.
  • tools/flex-bison/windows/bison.exe.sha1: Removed.
  • tools/flex-bison/windows/flex.exe.sha1: Removed.
  • tools/flex-bison/windows/m4.exe.sha1: Removed.
  • tools/flex-bison/windows/msys-2.0.dll.sha1: Removed.
  • tools/flex-bison/windows/msys-iconv-2.dll.sha1: Removed.
  • tools/flex-bison/windows/msys-intl-8.dll.sha1: Removed.
9:31 AM Changeset in webkit [256442] by Andres Gonzalez
  • 10 edits in trunk/Source/WebCore

Support event notifications in IsolatedTree mode.
https://bugs.webkit.org/show_bug.cgi?id=207581

Reviewed by Chris Fleizach.

  • DOM/Render trees notifications are listened to by AXObjectCache and

the corresponding IsolatedTree is updated.

  • The update is now happening for state, value and children change

notifications.

  • AXObjectCache::updateIsolatedTree re-generates the subtree rooted at

the node receiving the notification.

  • Consolidated creation of AXIsolatedObjects by passing treeID and

parentID to the create method and constructor.

  • Changes to the IsolatedTree are set on the main thread using the

NodeChange structure, and applied to the tree on the AX thread.

  • The updated IsolatedObjects are attached to their corresponding

platform wrappers on the AX thread, so that after creation they are only
accessed on the secondary thread.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::postNotification): Invokes updateIsolatedTree.
(WebCore::createIsolatedTreeHierarchy):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::createIsolatedTreeHierarchy): Became a static helper function.

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::setProperty):
(WebCore::AXIsolatedObject::setParent):
(WebCore::AXIsolatedObject::detachFromParent):
(WebCore::AXIsolatedObject::setTreeIdentifier): Deleted, the tree identifier is set in the constructor.

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

(WebCore::AXIsolatedTree::NodeChange::NodeChange):
(WebCore::AXIsolatedTree::appendNodeChanges):
(WebCore::AXIsolatedTree::applyPendingChanges):

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

(WebCore::AXIsolatedObject::attachPlatformWrapper):

  • accessibility/mac/AXObjectCacheMac.mm:
9:27 AM Changeset in webkit [256441] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/whlsl.html
https://bugs.webkit.org/show_bug.cgi?id=207638

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:13 AM Changeset in webkit [256440] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/textures-sample-bias.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207636

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:05 AM Changeset in webkit [256439] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Expand WebContent process sandbox with additional syscall
https://bugs.webkit.org/show_bug.cgi?id=206260
<rdar://problem/58580997>

Reviewed by Per Arne Vollan.

Testing shows that we will improve performance on some platforms by supporting an additional Syscall.

This patch revises our sandboxes so that WebKit can use this fast path if available.

No new tests. No change in test result behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
8:35 AM Changeset in webkit [256438] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] fast/events/before-input-prevent-insert-replacement.html is a flay failure
https://bugs.webkit.org/show_bug.cgi?id=207635

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:53 AM Changeset in webkit [256437] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC][IFC] Rename Display::Run::TextContext to TextContent
https://bugs.webkit.org/show_bug.cgi?id=207611
<rdar://problem/59374523>

Reviewed by Antti Koivisto.

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::checkForMatchingTextRuns):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::setTextContent):
(WebCore::Display::Run::textContent const):
(WebCore::Display::Run::textContent):
(WebCore::Display::Run::isLineBreak const):
(WebCore::Display::Run::Run):
(WebCore::Display::Run::TextContent::TextContent):
(WebCore::Display::Run::TextContext::start const): Deleted.
(WebCore::Display::Run::TextContext::end const): Deleted.
(WebCore::Display::Run::TextContext::length const): Deleted.
(WebCore::Display::Run::TextContext::content const): Deleted.
(WebCore::Display::Run::TextContext::needsHyphen const): Deleted.
(WebCore::Display::Run::TextContext::setNeedsHyphen): Deleted.
(WebCore::Display::Run::TextContext::expand): Deleted.
(WebCore::Display::Run::setTextContext): Deleted.
(WebCore::Display::Run::textContext const): Deleted.
(WebCore::Display::Run::textContext): Deleted.
(WebCore::Display::Run::TextContext::TextContext): Deleted.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::m_textContent):
(WebCore::Layout::LineBuilder::Run::expand):
(WebCore::Layout::LineBuilder::Run::removeTrailingWhitespace):
(WebCore::Layout::m_textContext): Deleted.

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::Run::textContent const):
(WebCore::Layout::LineBuilder::Run::textContext const): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputInlineRuns):

  • rendering/line/LineLayoutTraversalDisplayRunPath.h:

(WebCore::LineLayoutTraversal::DisplayRunPath::hasHyphen const):
(WebCore::LineLayoutTraversal::DisplayRunPath::text const):
(WebCore::LineLayoutTraversal::DisplayRunPath::localStartOffset const):
(WebCore::LineLayoutTraversal::DisplayRunPath::localEndOffset const):
(WebCore::LineLayoutTraversal::DisplayRunPath::length const):

7:49 AM Changeset in webkit [256436] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME] Fix build with ENCRYPTED_MEDIA=OFF
https://bugs.webkit.org/show_bug.cgi?id=207628

Unreviewed build fix.

Covered by existing tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::parseInitDataFromProtectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::waitForCDMAttachment):

7:42 AM Changeset in webkit [256435] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION: (256400) tiled-drawing/scrolling/fixed/fixed-during-rubberband.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207631

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:39 AM Changeset in webkit [256434] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION: (356400) tiled-drawing/scrolling/sticky/sticky-during-rubberband.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207632

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:39 AM Changeset in webkit [256433] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

macCatalyst: Unable to grab scrollbar on editable text field
https://bugs.webkit.org/show_bug.cgi?id=207615
<rdar://problem/59212993>

Reviewed by Tim Horton.

In macCatalyst, hovering over the scrollbar (an instance of the internal UIKit class
_UIScrollViewScrollIndicator) is required in order for a click and drag with the mouse to actually move the
scrollbar. This is because UIKit depends on the cursor interaction added to this view to recognize and call its
delegate methods.

However, we override hit-testing in WebKit to skip over all children of scroll views, and instead force hit-
testing to find the scroll view instead. This means that UIKit can never hit-test to the scroll indicator views
embedded directly beneath each WKChildScrollView, so the cursor interactions described earlier will not
recognize. To work around this, special case these scroll indicator views, such that we will allow
-hitTest:withEvent: to find these views.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::scrollViewScrollIndicatorClass):
(-[UIView _web_findDescendantViewAtPoint:withEvent:]):

7:32 AM Changeset in webkit [256432] by youenn@apple.com
  • 4 edits in trunk

WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537

Reviewed by Chris Dumez.

Source/WebKit:

Covered by added API test.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::registerServiceWorkerClient):
Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
7:15 AM Changeset in webkit [256431] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Move expansion struct out of Display::Run::TextContext to Display::Run
https://bugs.webkit.org/show_bug.cgi?id=207610
<rdar://problem/59374136>

Reviewed by Antti Koivisto.

This is in preparation for renaming Display::Run::TextContext to Display::Run:TextContent.
Non-text runs now have the default expansion behavior with 0 horizontal expansion.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::setNeedsHyphen):
(WebCore::Display::Run::TextContext::expand):
(WebCore::Display::Run::setExpansion):
(WebCore::Display::Run::expansion const):
(WebCore::Display::Run::TextContext::setExpansion): Deleted.
(WebCore::Display::Run::TextContext::expansion const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::justifyRuns):
(WebCore::Layout::LineBuilder::Run::expand):
(WebCore::Layout::LineBuilder::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::LineBuilder::Run::setExpansionBehavior):
(WebCore::Layout::LineBuilder::Run::expansionBehavior const):
(WebCore::Layout::LineBuilder::Run::setComputedHorizontalExpansion):
(WebCore::Layout::LineBuilder::Run::adjustExpansionBehavior): Deleted.

  • layout/inlineformatting/InlineLineBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

5:16 AM Changeset in webkit [256430] by clopez@igalia.com
  • 2 edits in trunk/Source/WebDriver

WebDriver: return invalidSessionID exception if the WebProcess doesn't respond (crashes)
https://bugs.webkit.org/show_bug.cgi?id=207565

Reviewed by Adrian Perez de Castro.

Report InvalidSessionID if the session connection its not connected.

  • WebDriverService.cpp:

(WebDriver::WebDriverService::findSessionOrCompleteWithError):

3:11 AM Changeset in webkit [256429] by cturner@igalia.com
  • 15 edits
    4 adds in trunk/Source/WebCore

[EME][GStreamer] Introduce CDMProxy
https://bugs.webkit.org/show_bug.cgi?id=206730

Reviewed by Xabier Rodriguez-Calvar.

Introduce a new subclass of CDMInstance, CDMProxyInstance.

CDMInstance is a main-thread only class, its purpose is to provide
an interface that will satisfy the JavaScript EME APIs, which by
design, don't actually interact with a real DRM system, what might
also be called "The CDM Instance". That's why the naming is
misleading here, CDMInstance isn't actually an instance of a real
CDM, rather it is a facade for JavaScript.

CDMProxyInstance is a sub-class which provides two APIs,
1/ For background media threads to safely interrogate the status
of keys and to perform decryption using said keys. This API is
exposed by CDMProxy and is platform specific.
2/ For media players to safely assess the state of decryptors and
what their status is.

CDMProxy exists to allow thread-safe access to a real CDM, along
with their quirks. The two main problems GTK integrators of a CDM
have in WebKit is key management and CDM access from background
media threads.

Key management is how to manage the state of keys in a way
coherent with JavaScript, the cross-platform EME implementation,
the real CDMs themselves, and the background media
threads. CDMProxy provides a default key store interface for
sub-classes. Sub-classes can, on receipt of new information from a
real CDM, tell CDMProxy about the keys and their
statuses. CDMProxy is intended to Do The Right Thing from there,
letting JavaScript and WebCore know all the details they need to
about the new state, as well as the media decode threads when they
next come asking.

Access from background threads is ill-advised when using the
thread-unsafe CDMInstance. We used to get away with doing exactly
this, but WebCore recently became more diligent about
thread-unsafe access of main-thread-only data, and we had to do
something to fix the asserts. That something was ProxyCDM (a
terrible name, removed now), which was a hack and please forget
about it. CDMProxy can be safely passed to background threads, and
it will by default provide a thread-safe view of the key store for
background threads to interrogate the key store and perform
CDM-specific decryption / decode.

Covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj: Add CDMProxy to build

definition.

  • platform/GStreamer.cmake: Add CDMProxy include directories and

implementation files.

  • platform/encryptedmedia/CDMInstance.h: Remove references to old

ProxyCDM shim. This approach was a temporary hack to avoid some
thread-safety asserts. I took the liberty of renaming to CDMProxy,
for no other reason that it felt like a better name, sorry for the
confusion.

  • platform/encryptedmedia/CDMProxy.cpp: Added.

(WebCore::Key::idAsString const):
(WebCore::Key::valueAsString const):
(WebCore::KeyStore::containsKeyID const):
(WebCore::KeyStore::merge):
(WebCore::KeyStore::allKeysAsReleased const):
(WebCore::KeyStore::addKeys):
(WebCore::KeyStore::add):
(WebCore::KeyStore::removeAllKeysFrom):
(WebCore::KeyStore::remove):
(WebCore::KeyStore::keyValue const):
(WebCore::KeyStore::convertToJSKeyStatusVector const):
(WebCore::CDMProxy::updateKeyStore):
(WebCore::CDMProxy::setInstance):
(WebCore::CDMProxy::keyValue const):
(WebCore::CDMProxy::startedWaitingForKey const):
(WebCore::CDMProxy::stoppedWaitingForKey const):
(WebCore::CDMProxy::tryWaitForKey const):
(WebCore::CDMProxy::keyAvailableUnlocked const):
(WebCore::CDMProxy::keyAvailable const):
(WebCore::CDMProxy::getOrWaitForKey const):
(WebCore::CDMInstanceProxy::startedWaitingForKey):
(WebCore::CDMInstanceProxy::stoppedWaitingForKey):
(WebCore::CDMInstanceProxy::mergeKeysFrom):
(WebCore::CDMInstanceProxy::removeAllKeysFrom):

  • platform/encryptedmedia/CDMProxy.h: Added.

(WebCore::Key::create):
(WebCore::Key::idAsSharedBuffer const):
(WebCore::Key::id const):
(WebCore::Key::value const):
(WebCore::Key::value):
(WebCore::Key::status const):
(WebCore::Key::operator==):
(WebCore::Key::addSessionReference):
(WebCore::Key::removeSessionReference):
(WebCore::Key::numSessionReferences const):
(WebCore::Key::Key):
(WebCore::KeyStore::removeAllKeys):
(WebCore::KeyStore::numKeys const):
(WebCore::KeyStore::begin):
(WebCore::KeyStore::begin const):
(WebCore::KeyStore::end):
(WebCore::KeyStore::end const):
(WebCore::KeyStore::rbegin):
(WebCore::KeyStore::rbegin const):
(WebCore::KeyStore::rend):
(WebCore::KeyStore::rend const):
(WebCore::CDMInstanceProxy::setProxy):
(WebCore::CDMInstanceProxy::proxy const):
(WebCore::CDMInstanceProxy::isWaitingForKey const):
(WebCore::CDMInstanceProxy::setPlayer):
(WebCore::CDMInstanceProxy::trackSession):

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::parseLicenseFormat): Refactored to use new Key class.
(WebCore::extractKeyidsLocationFromCencInitData): Refactored to
use better named constants.
(WebCore::extractKeyidsFromCencInitData): Ditto.
(WebCore::CDMInstanceClearKey::createSession): Use the
trackSession method to allow easier monitoring of all EME
sessions.
(WebCore::CDMInstanceSessionClearKey::requestLicense): Refactor to
keep track of generated session IDs.
(WebCore::CDMInstanceSessionClearKey::updateLicense): Refactor to
use new key management classes.
(WebCore::CDMInstanceSessionClearKey::loadSession): Ditto.
(WebCore::CDMInstanceSessionClearKey::removeSessionData): Ditto.
(WebCore::ClearKeyState::keys): Deleted.
(WebCore::ClearKeyState::singleton): Deleted.
(WebCore::isolatedKey): Deleted.
(WebCore::ProxyCDMClearKey::isolatedKeys const): Deleted.
(WebCore::CDMInstanceClearKey::CDMInstanceClearKey): Deleted.
(WebCore::CDMInstanceClearKey::Key::keyIDAsString const): Deleted.
(WebCore::CDMInstanceClearKey::Key::keyValueAsString const): Deleted.
(WebCore::operator==): Deleted.
(WebCore::operator<): Deleted. It looks like we were unnecessarily
sorting the key vectors. It doesn't make any sense to impose an
ordering on keys, so I removed it.

  • platform/encryptedmedia/clearkey/CDMClearKey.h: Refactor to use

new key management classes.

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

Remove obsolete ProxyCDM method.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::parseInitDataFromProtectionMessage):
Refactored out of syncMessage. The code was moved here and into
waitForCDMAttachment.
(WebCore::MediaPlayerPrivateGStreamer::waitForCDMAttachment):
Ditto.
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Remove
waiting-for-key code, it was all broken anyway.
(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceAttached):
Enforce use of CDMInstanceProxy, all GStreamer-based ports will be
using the CDMProxy derived classes from background
threads. CDMProxy's need a handle to the MediaPlayer for
waitingForKey management, so wire that in here too. Also wire the
GStreamer specific ClearKey proxy here.
(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceDetached):
(WebCore::MediaPlayerPrivateGStreamer::waitingForKey const): Key
status notifications are the responsibility of the CDMProxy now.
(WebCore::MediaPlayerPrivateGStreamer::setWaitingForKey): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Now

we use CDMInstanceProxy, not CDMInstance.

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:

Added. G*-specific ClearKey implementation.
(WebCore::CDMProxyClearKey::~CDMProxyClearKey):
(WebCore::CDMProxyClearKey::cencSetCounterVector):
(WebCore::CDMProxyClearKey::cencSetDecryptionKey):
(WebCore::CDMProxyClearKey::cencDecryptFullSample):
(WebCore::CDMProxyClearKey::cencDecryptSubsampled):
(WebCore::CDMProxyClearKey::cencDecrypt):
(WebCore::CDMProxyClearKey::initializeGcrypt):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.h: Added.
  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

Refactor to use CDMProxy.
(webkit_media_clear_key_decrypt_class_init):
(webkit_media_clear_key_decrypt_init):
(finalize):
(cdmProxyAttached):
(decrypt):
(handleKeyResponse): Deleted. This was a badly named method that
has been changed to cdmProxyAttached.
(findAndSetKey): Deleted.

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(webkit_media_common_encryption_decrypt_class_init):
(transformInPlace):
(isCDMProxyAvailable):
(getCDMProxyFromGstContext):
(attachCDMProxy):
(installCDMProxyIfNotAvailable):
(sinkEventHandler):
(changeState):
(setContext):
(): Deleted.
(isCDMInstanceAvailable): Deleted.
(queryHandler): Deleted.

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h:
  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstance::proxyCDM const): Deleted.

  • testing/MockCDMFactory.h:
1:25 AM Changeset in webkit [256428] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GL] Remove unused methods in GLContext
https://bugs.webkit.org/show_bug.cgi?id=207564

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-02-12
Reviewed by Carlos Alberto Lopez Perez.

These declarations are crumbs left from
https://bugs.webkit.org/show_bug.cgi?id=161605

No new tests because there's no behavior change.

  • platform/graphics/GLContext.h:
12:39 AM Changeset in webkit [256427] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Fix crash due to uninitialized currentStyle in CSSTransition
https://bugs.webkit.org/show_bug.cgi?id=205959
<rdar://57073673>

Patch by Sunny He <sunny_he@apple.com> on 2020-02-12
Reviewed by Antoine Quint.

Source/WebCore:

Test: legacy-animation-engine/transitions/svg-bad-scale-crash.html

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::create):
(WebCore::CSSTransition::CSSTransition):

  • animation/CSSTransition.h:

LayoutTests:

Fix crash due to uninitialized currentStyle in CSSTransition

  • legacy-animation-engine/transitions/svg-bad-scale-crash-expected.txt: Added.
  • legacy-animation-engine/transitions/svg-bad-scale-crash.html: Added.
Note: See TracTimeline for information about the timeline view.