Timeline



Nov 10, 2020:

11:57 PM Changeset in webkit [269674] by Noam Rosenthal
  • 2 edits in trunk/Tools

Unreviewed, cleanup my watchlist entries.

  • Scripts/webkitpy/common/config/watchlist:
10:18 PM Changeset in webkit [269673] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] Update page-visibility test after r269665

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewPageVisibility):

9:23 PM Changeset in webkit [269672] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening webrtc failures

After libwebrtc M87 update in r269642

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
8:55 PM Changeset in webkit [269671] by commit-queue@webkit.org
  • 84 edits
    34 copies
    7 moves
    10 adds
    4 deletes in trunk

Unreviewed, reverting r269660.
https://bugs.webkit.org/show_bug.cgi?id=218786

Crashing in EWS iOS simulator bots

Reverted changeset:

"PCM: Change from ad-click-attribution to private-click-
measurement (in all forms, including .well-known URL)"
https://bugs.webkit.org/show_bug.cgi?id=218730
https://trac.webkit.org/changeset/269660

6:28 PM Changeset in webkit [269670] by Ross Kirsling
  • 10 edits
    1 add in trunk

Align %TypedArray% behavior with recent spec adjustments
https://bugs.webkit.org/show_bug.cgi?id=218776

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/reflect-set.js:
  • stress/typedarray-functions-with-neutered.js:
  • stress/typedarray-includes.js:
  • stress/typedarray-indexOf.js:
  • stress/typedarray-join.js: Added.
  • stress/typedarray-lastIndexOf.js:

Update tests.

  • test262/expectations.yaml:

Mark a handful of test cases as temporarily failing.
These will disappear in a future test262 update.

Source/JavaScriptCore:

The recent spec changes for typed arrays with detached buffers had certain ripple effects,
namely the following two PRs which will be presented in next week's TC39 meeting.
Since no controversy is expected, this patch addresses them now, though test262 adjustments are forthcoming.

  1. https://github.com/tc39/ecma262/pull/2210 It is correct that ta[i] = n doesn't throw when ta has a detached buffer or i is otherwise OOB, but by not throwing, Reflect.set(ta, i, n) is obliged to return true.
  1. https://github.com/tc39/ecma262/pull/2221 Until now, %TypedArray%.prototype.{includes, indexOf, join, lastIndexOf} lacked a rigorous specification; in particular, each has a parameter that may detach the buffer upon valueOf or toString, and the expected behavior was not made clear. It seems most sensible to do what the corresponding Array methods do upon array.length = 0: make use of the cached length but don't access indices, such that indexOf/lastIndexOf return -1 while includes/join act as if the elements were all undefined.
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):

5:11 PM Changeset in webkit [269669] by Alan Coon
  • 2 edits in branches/safari-611.1.5-branch/Source/WebKit

Cherry-pick r269643. rdar://problem/71261915

[macCatalyst] Add entitlement for message filtering
https://bugs.webkit.org/show_bug.cgi?id=218768
<rdar://problem/71247464>

Reviewed by Tim Horton.

Add required message filtering entitlement for Catalyst.

No new tests, covered by existing tests.

  • Scripts/process-entitlements.sh:

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

5:11 PM Changeset in webkit [269668] by Alan Coon
  • 2 edits in branches/safari-611.1.5-branch/Source/WebKit

Cherry-pick r269617. rdar://problem/71261924

Fix crashes when mapping shared display list item data into display lists in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=218739

Reviewed by Tim Horton.

I added a "stop-gap" mechanism in r269525 to allow the GPU process to handle newly refactored display list
items by encoding display list items directly into shared memory buffers in the web process and reading them
back in the GPU process, using standard IPC messages only, and also without reusing any shared memory buffers.

However, I introduced a bug in this "stop-gap" mechanism when I tried to clean up some GPU-process-side logic
for unregistering these shared memory buffers in the GPU process, by taking shared memory buffers out of the
map in the GPU process without ensuring that they're kept alive over the course of applying the display list.

This code is going away soon anyways (see webkit.org/b/218426), but in the meantime, we should at least ensure
that this temporary shared memory mechanism doesn't cause huge waves of layout test failures.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::applyDisplayList):

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

5:07 PM Changeset in webkit [269667] by commit-queue@webkit.org
  • 3 edits in trunk/JSTests

stress/intl-datetimeformat-formatrange.js and stress/intl-datetimeformat-formatrange-relevant-extensions.js fail with ICU 65.1
https://bugs.webkit.org/show_bug.cgi?id=218763

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-10
Reviewed by Yusuke Suzuki.

Yesterday Red Hat upgraded its internal CI to Fedora 32 (ICU 65.1), causing
stress/intl-datetimeformat-formatrange-relevant-extensions.js and
stress/intl-datetimeformat-formatrange.js to begin failing. The problem is that the space
characters used in the range format changed at some point. The current version of the test
expects normal ASCII space characters for ICU 67 and newer, and special spaces for older
versions of ICU.

The test passes for me locally on Fedora 33 (ICU 67.1), so perhaps we just need to use the
new codepath for ICU 65 and 66 as well.

  • stress/intl-datetimeformat-formatrange-relevant-extensions.js:
  • stress/intl-datetimeformat-formatrange.js:

(test):

5:04 PM Changeset in webkit [269666] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Enforce message filtering in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=218756
<rdar://problem/71240766>

Reviewed by David Kilzer.

Based on telemetry, we should deny access to messages not being used in the WebContent process on macOS.

No new tests, covered by existing tests.

  • WebProcess/com.apple.WebProcess.sb.in:
4:53 PM Changeset in webkit [269665] by Chris Dumez
  • 16 edits
    1 add in trunk

Webkit incorrectly setting visibilityState to "prerender" when opening link in new tab
https://bugs.webkit.org/show_bug.cgi?id=215851
<rdar://problem/67817100>

Reviewed by Geoff Garen.

Source/WebCore:

Drop "prerender" state from VisibilityState. It has been dropped from the specification
and other browser engines so it is confusing to developers:

  • dom/VisibilityState.h:
  • dom/VisibilityState.idl:
  • page/Page.cpp:

(WebCore::Page::visibilityState const):

Source/WebKit:

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toVisibilityState):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:

(webkit_dom_document_get_visibility_state):

Source/WebKitLegacy/mac:

  • DOM/DOMDocument.mm:

(-[DOMDocument visibilityState]):

  • WebView/WebView.mm:

(kit):

Tools:

Add API test coverage.

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

(TEST):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPageVisibility):

LayoutTests:

Drop dead code in test for prerender.

  • fast/events/page-visibility-transition-test.html:
4:46 PM Changeset in webkit [269664] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Use GraphicsContext instead of CGContext in RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=218738

Reviewed by Wenson Hsieh.

Source/WebCore:

No new tests; just refactoring a heavily-tested codepath.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Path.h:

Export some things.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):
Make use of the GraphicsContext abstraction instead of dropping down
to CGContext, in preparation for DisplayList rendering.

4:46 PM Changeset in webkit [269663] by Kocsen Chung
  • 1 copy in tags/Safari-610.3.6.3

Tag Safari-610.3.6.3.

4:41 PM Changeset in webkit [269662] by Darin Adler
  • 24 edits
    7 adds in trunk

Remove another function that implicitly uses the composed tree (intersects with range)
https://bugs.webkit.org/show_bug.cgi?id=218726

Reviewed by Ryosuke Niwa.

Source/WebCore:

Tests: fast/dom/rangeContainsBoundaryPoint.html

fast/dom/rangeIntersectsNode.html
fast/dom/rangeIntersectsRange.html

  • Sources.txt: Added BoundaryPoint.cpp.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange const):
Use intersects<ComposedTree>.

  • accessibility/atk/WebKitAccessibleUtil.cpp:

(selectionBelongsToObject): Ditto.

  • dom/BoundaryPoint.cpp: Added.
  • dom/Range.cpp:

(WebCore::Range::isPointInRange): Use contains instead of contains<Tree>
since the normal tree is now default.
(WebCore::Range::intersectsNode const): Use intersects instead of
intersects<Tree> since the normal tree is now default.

  • dom/SimpleRange.cpp:

(WebCore::makeBoundaryPointBeforeNode): Moved to BoundaryPoint.cpp.
(WebCore::makeBoundaryPointAfterNode): Ditto.
(WebCore::isOffsetBeforeChild): Ditto.
(WebCore::order): Ditto.
(WebCore::treeOrderForTesting): Ditto.
(WebCore::containsForTesting): Added an overload for range and boundary point.
(WebCore::intersects): Deleted two of these that were using ComposedTree.
(WebCore::intersectsForTesting): Added.
(WebCore::intersection): Use intersects<ComposedTree>.
(WebCore::contains): Implemented this template function and use it to replac
the incorrect specialization we had for ComposedTree.
(WebCore::containsCrossingDocumentBoundaries): Added.

  • dom/SimpleRange.h: Made the contains functions template arguments default

to Tree. Added another overload of containsForTesting and added intersectsForTesting.
Removed intersects functions that were deprecated; the ones that used ComposedTree.
Added containsCrossingDocumentBoundaries.

  • editing/Editor.cpp:

(WebCore::isFrameInRange): Use intersects<ComposedTree>.
(WebCore::Editor::scanSelectionForTelephoneNumbers): Ditto.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::respondToNodeModification): Ditto.

  • editing/VisiblePosition.cpp:

(WebCore::makeVisiblePositionRange): Added.

  • editing/VisiblePosition.h: Added makeVisiblePositionRange, which takes

an Optional<SimpleRange>.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::addRange): Use intersects instead of
intersects<Tree> since the normal tree is now default.
(WebCore::DOMSelection::containsNode const): Use intersects/contains
instead of intersects/contains<Tree> since the normal tree is now default.

  • page/DragController.cpp:

(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret):
Use intersects<ComposedTree>.

  • testing/Internals.cpp:

(WebCore::Internals::rangeContainsBoundaryPoint): Added.
(WebCore::Internals::rangeIntersectsNode): Added.
(WebCore::Internals::rangeIntersectsRange): Added.

  • testing/Internals.h: Updated for the above.
  • testing/Internals.idl: Ditto.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext): Refactor to use VisiblePositionRange and
to call intersects on two of them, to improve the code readability and also sidestep the
issue of calling the intersects template function from outside WebCore.

Source/WebKitLegacy/mac:

  • WebView/WebPDFView.mm:

(isFrameInRange): Deleted. This function used intersects, and deleting it side-steps
the issue of calling the intersects function template from outside WebCore.
(-[WebPDFView countMatchesForText:inDOMRange:options:limit:markMatches:]):
Use containsCrossingDocumentBoundaries instead of isFrameInRange.

Tools:

  • TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp:

(TestWebKitAPI::makeBoundaryPoint): Deleted.
Deleted the DocumentOrder.IsPointInRange, DocumentOrder.RangeIntersectsRange and
DocumentOrder.RangeIntersectsNode tests, each replaced by an internals-based test.

LayoutTests:

  • fast/dom/rangeContainsBoundaryPoint-expected.txt: Added.
  • fast/dom/rangeContainsBoundaryPoint.html: Added.
  • fast/dom/rangeIntersectsNode-expected.txt: Added.
  • fast/dom/rangeIntersectsNode.html: Added.
  • fast/dom/rangeIntersectsRange-expected.txt: Added.
  • fast/dom/rangeIntersectsRange.html: Added.

These tests were formerly part of TestWebKitAPI. Moving to internals-style tests at
Ryosuke's suggestion since these are not something exposed as API or SPI.

4:40 PM Changeset in webkit [269661] by Kocsen Chung
  • 1 copy in tags/Safari-610.3.7.1.3

Tag Safari-610.3.7.1.3.

4:33 PM Changeset in webkit [269660] by wilander@apple.com
  • 84 edits
    34 copies
    7 moves
    10 adds
    4 deletes in trunk

PCM: Change from ad-click-attribution to private-click-measurement (in all forms, including .well-known URL)
https://bugs.webkit.org/show_bug.cgi?id=218730
<rdar://problem/71094296>

Reviewed by Devin Rousso.

Change to the official name of the proposed standard Private Click Measurement
https://github.com/privacycg/private-click-measurement.

This includes a change of the reporting URL from
"/.well-known/ad-click-attribution/" to
"/.well-known/private-click-measurement/".

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::messageSourceValue):

  • inspector/protocol/Console.json:
  • inspector/protocol/Page.json:
  • runtime/ConsoleClient.cpp:

(JSC::appendMessagePrefix):

  • runtime/ConsoleTypes.h:

Source/WebCore:

Tests: http/tests/contentextensions/block-private-click-measurement.html

http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html
http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html
http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html
http/tests/privateClickMeasurement/clear-through-website-data-removal.html
http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html
http/tests/privateClickMeasurement/expired-attributions-removed.html
http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html
http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html
http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html
http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html
http/tests/privateClickMeasurement/send-attribution-conversion-request.html
http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html
http/tests/privateClickMeasurement/store-private-click-measurement.html
inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
(WebCore::HTMLAnchorElement::handleClick):
(WebCore::HTMLAnchorElement::parseAdClickAttribution const): Deleted.

  • html/HTMLAnchorElement.h:
  • html/HTMLAnchorElement.idl:
  • inspector/InspectorClient.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::overrideSetting):

  • inspector/agents/page/PageConsoleAgent.cpp:

(WebCore::PageConsoleAgent::getLoggingChannels):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):

  • loader/FrameLoader.h:
  • loader/NavigationAction.h:

(WebCore::NavigationAction::privateClickMeasurement const):
(WebCore::NavigationAction::setPrivateClickMeasurement):
(WebCore::NavigationAction::adClickAttribution const): Deleted.
(WebCore::NavigationAction::setAdClickAttribution): Deleted.

  • loader/PrivateClickMeasurement.cpp: Renamed from Source/WebCore/loader/AdClickAttribution.cpp.

(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::parseConversionRequest):
(WebCore::PrivateClickMeasurement::convertAndGetEarliestTimeToSend):
(WebCore::PrivateClickMeasurement::markAsExpired):
(WebCore::PrivateClickMeasurement::hasExpired const):
(WebCore::PrivateClickMeasurement::hasHigherPriorityThan const):
(WebCore::PrivateClickMeasurement::reportURL const):
(WebCore::PrivateClickMeasurement::json const):
(WebCore::PrivateClickMeasurement::markConversionAsSent):
(WebCore::PrivateClickMeasurement::wasConversionSent const):
(WebCore::PrivateClickMeasurement::toString const):
(WebCore::PrivateClickMeasurement::debugModeEnabled):

  • loader/PrivateClickMeasurement.h: Renamed from Source/WebCore/loader/AdClickAttribution.h.

(WebCore::PrivateClickMeasurement::Campaign::Campaign):
(WebCore::PrivateClickMeasurement::Campaign::isValid const):
(WebCore::PrivateClickMeasurement::Source::Source):
(WebCore::PrivateClickMeasurement::Source::operator== const):
(WebCore::PrivateClickMeasurement::Source::matches const):
(WebCore::PrivateClickMeasurement::Source::isHashTableDeletedValue const):
(WebCore::PrivateClickMeasurement::Source::deletedValue):
(WebCore::PrivateClickMeasurement::Source::constructDeletedValue):
(WebCore::PrivateClickMeasurement::Source::deleteValue):
(WebCore::PrivateClickMeasurement::Source::isDeletedValue const):
(WebCore::PrivateClickMeasurement::SourceHash::hash):
(WebCore::PrivateClickMeasurement::SourceHash::equal):
(WebCore::PrivateClickMeasurement::Destination::Destination):
(WebCore::PrivateClickMeasurement::Destination::operator== const):
(WebCore::PrivateClickMeasurement::Destination::matches const):
(WebCore::PrivateClickMeasurement::Destination::isHashTableDeletedValue const):
(WebCore::PrivateClickMeasurement::Destination::deletedValue):
(WebCore::PrivateClickMeasurement::Destination::constructDeletedValue):
(WebCore::PrivateClickMeasurement::Destination::deleteValue):
(WebCore::PrivateClickMeasurement::Destination::isDeletedValue const):
(WebCore::PrivateClickMeasurement::DestinationHash::hash):
(WebCore::PrivateClickMeasurement::DestinationHash::equal):
(WebCore::PrivateClickMeasurement::Priority::Priority):
(WebCore::PrivateClickMeasurement::Conversion::Conversion):
(WebCore::PrivateClickMeasurement::Conversion::isValid const):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::source const):
(WebCore::PrivateClickMeasurement::destination const):
(WebCore::PrivateClickMeasurement::earliestTimeToSend const):
(WebCore::PrivateClickMeasurement::isEmpty const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::Conversion::encode const):
(WebCore::PrivateClickMeasurement::Conversion::decode):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::isDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::isDeletedValue):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::privateClickMeasurementDebugModeEnabled const):
(WebCore::RuntimeEnabledFeatures::setPrivateClickMeasurementDebugModeEnabled):
(WebCore::RuntimeEnabledFeatures::adClickAttributionDebugModeEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setAdClickAttributionDebugModeEnabled): Deleted.

  • platform/Logging.h:

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:
  • UserInterface/Models/ConsoleMessage.js:
  • UserInterface/Models/IssueMessage.js:

(WI.IssueMessage):

  • UserInterface/Protocol/Legacy/14.0/InspectorBackendCommands.js:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::storePrivateClickMeasurement):
(WebKit::NetworkProcess::dumpPrivateClickMeasurement):
(WebKit::NetworkProcess::clearPrivateClickMeasurement):
(WebKit::NetworkProcess::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkProcess::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkProcess::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkProcess::setAdClickAttributionDebugMode): Deleted.
(WebKit::NetworkProcess::storeAdClickAttribution): Deleted.
(WebKit::NetworkProcess::dumpAdClickAttribution): Deleted.
(WebKit::NetworkProcess::clearAdClickAttribution): Deleted.
(WebKit::NetworkProcess::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::NetworkProcess::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::NetworkProcess::markAdClickAttributionsAsExpiredForTesting): Deleted.

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

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

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

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

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

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::storePrivateClickMeasurement):
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::dumpPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::NetworkSession::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkSession::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::storeAdClickAttribution): Deleted.
(WebKit::NetworkSession::handleAdClickAttributionConversion): Deleted.
(WebKit::NetworkSession::dumpAdClickAttribution): Deleted.
(WebKit::NetworkSession::clearAdClickAttribution): Deleted.
(WebKit::NetworkSession::clearAdClickAttributionForRegistrableDomain): Deleted.
(WebKit::NetworkSession::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::NetworkSession::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::NetworkSession::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp: Renamed from Source/WebKit/NetworkProcess/AdClickAttributionManager.cpp.

(WebKit::PrivateClickMeasurementManager::storeUnconverted):
(WebKit::PrivateClickMeasurementManager::handleConversion):
(WebKit::PrivateClickMeasurementManager::startTimer):
(WebKit::PrivateClickMeasurementManager::convert):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::firePendingConversionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toString const):
(WebKit::PrivateClickMeasurementManager::setConversionURLForTesting):
(WebKit::PrivateClickMeasurementManager::markAllUnconvertedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::debugModeEnabled const):

  • NetworkProcess/PrivateClickMeasurementManager.h: Renamed from Source/WebKit/NetworkProcess/AdClickAttributionManager.h.

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::m_sessionID):
(WebKit::PrivateClickMeasurementManager::setPingLoadFunction):
(WebKit::PrivateClickMeasurementManager::setOverrideTimerForTesting):

  • Platform/Logging.h:
  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::ownerProcess):

  • Shared/WebsiteData/WebsiteDataType.h:
  • Sources.txt:
  • UIProcess/API/APINavigation.h:

(API::Navigation::privateClickMeasurement const):
(API::Navigation::adClickAttribution const): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageDumpPrivateClickMeasurement):
(WKPageClearPrivateClickMeasurement):
(WKPageSetPrivateClickMeasurementOverrideTimerForTesting):
(WKPageSetPrivateClickMeasurementConversionURLForTesting):
(WKPageMarkPrivateClickMeasurementsAsExpiredForTesting):
(WKPageDumpAdClickAttribution): Deleted.
(WKPageClearAdClickAttribution): Deleted.
(WKPageSetAdClickAttributionOverrideTimerForTesting): Deleted.
(WKPageSetAdClickAttributionConversionURLForTesting): Deleted.
(WKPageMarkAdClickAttributionsAsExpiredForTesting): Deleted.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreClearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WKWebsiteDataStoreClearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::setDeveloperPreferenceOverride):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcessProxy::setAdClickAttributionDebugMode): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::dumpPrivateClickMeasurement):
(WebKit::WebPageProxy::clearPrivateClickMeasurement):
(WebKit::WebPageProxy::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::WebPageProxy::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::WebPageProxy::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::WebPageProxy::dumpAdClickAttribution): Deleted.
(WebKit::WebPageProxy::clearAdClickAttribution): Deleted.
(WebKit::WebPageProxy::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::WebPageProxy::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::WebPageProxy::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setPrivateClickMeasurementDebugMode):
(WebKit::WebsiteDataStore::setAdClickAttributionDebugMode): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm:

(stringForMessageSource):

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

(-[WebPreferences privateClickMeasurementEnabled]):
(-[WebPreferences setPrivateClickMeasurementEnabled:]):
(-[WebPreferences adClickAttributionEnabled]): Deleted.
(-[WebPreferences setAdClickAttributionEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp: Removed.
  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp: Added.

(TestWebKitAPI::TEST):

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

(WTR::TestRunner::dumpPrivateClickMeasurement):
(WTR::TestRunner::clearPrivateClickMeasurement):
(WTR::TestRunner::clearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WTR::TestRunner::setPrivateClickMeasurementOverrideTimerForTesting):
(WTR::TestRunner::setPrivateClickMeasurementConversionURLForTesting):
(WTR::TestRunner::markPrivateClickMeasurementsAsExpiredForTesting):
(WTR::TestRunner::dumpAdClickAttribution): Deleted.
(WTR::TestRunner::clearAdClickAttribution): Deleted.
(WTR::TestRunner::clearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.
(WTR::TestRunner::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WTR::TestRunner::setAdClickAttributionConversionURLForTesting): Deleted.
(WTR::TestRunner::markAdClickAttributionsAsExpiredForTesting): Deleted.

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

(WTR::TestController::resetStateToConsistentValues):
(WTR::PrivateClickMeasurementStringResultCallbackContext::PrivateClickMeasurementStringResultCallbackContext):
(WTR::privateClickMeasurementStringResultCallback):
(WTR::TestController::dumpPrivateClickMeasurement):
(WTR::PrivateClickMeasurementVoidCallbackContext::PrivateClickMeasurementVoidCallbackContext):
(WTR::privateClickMeasurementVoidCallback):
(WTR::TestController::clearPrivateClickMeasurement):
(WTR::TestController::clearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WTR::TestController::setPrivateClickMeasurementOverrideTimerForTesting):
(WTR::TestController::setPrivateClickMeasurementConversionURLForTesting):
(WTR::TestController::markPrivateClickMeasurementsAsExpiredForTesting):
(WTR::AdClickAttributionStringResultCallbackContext::AdClickAttributionStringResultCallbackContext): Deleted.
(WTR::adClickAttributionStringResultCallback): Deleted.
(WTR::TestController::dumpAdClickAttribution): Deleted.
(WTR::AdClickAttributionVoidCallbackContext::AdClickAttributionVoidCallbackContext): Deleted.
(WTR::adClickAttributionVoidCallback): Deleted.
(WTR::TestController::clearAdClickAttribution): Deleted.
(WTR::TestController::clearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.
(WTR::TestController::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WTR::TestController::setAdClickAttributionConversionURLForTesting): Deleted.
(WTR::TestController::markAdClickAttributionsAsExpiredForTesting): Deleted.

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

(WTR::TestInvocation::dumpResults):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::dumpPrivateClickMeasurement):
(WTR::TestInvocation::dumpAdClickAttribution): Deleted.

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

  • TestExpectations:
  • http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect-expected.txt: Removed.
  • http/tests/adClickAttribution/expired-attributions-removed-expected.txt: Removed.
  • http/tests/adClickAttribution/resources/redirectToConversionOnIPAddress.php: Removed.
  • http/tests/adClickAttribution/store-ad-click-attribution-expected.txt: Removed.
  • http/tests/adClickAttribution/store-disabled-in-ephemeral-session-expected.txt: Removed.
  • http/tests/contentextensions/block-ad-click-attribution-expected.txt: Removed.
  • http/tests/contentextensions/block-private-click-measurement-expected.txt: Added.
  • http/tests/contentextensions/block-private-click-measurement.html: Renamed from LayoutTests/http/tests/contentextensions/block-ad-click-attribution.html.
  • http/tests/contentextensions/block-private-click-measurement.html.json: Renamed from LayoutTests/http/tests/contentextensions/block-ad-click-attribution.html.json.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect.html.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt: Added.
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority.html.
  • http/tests/privateClickMeasurement/clear-through-website-data-removal-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/clear-through-website-data-removal-expected.txt.
  • http/tests/privateClickMeasurement/clear-through-website-data-removal.html: Renamed from LayoutTests/http/tests/adClickAttribution/clear-through-website-data-removal.html.
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session-expected.txt.
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html: Renamed from LayoutTests/http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html.
  • http/tests/privateClickMeasurement/expired-attributions-removed-expected.txt: Added.
  • http/tests/privateClickMeasurement/expired-attributions-removed.html: Renamed from LayoutTests/http/tests/adClickAttribution/expired-attributions-removed.html.
  • http/tests/privateClickMeasurement/resources/conversionFilePath.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/conversionFilePath.php.
  • http/tests/privateClickMeasurement/resources/conversionReport.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/conversionReport.php.
  • http/tests/privateClickMeasurement/resources/convertAndPostMessageBack.html: Renamed from LayoutTests/http/tests/adClickAttribution/resources/convertAndPostMessageBack.html.
  • http/tests/privateClickMeasurement/resources/getConversionData.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/getConversionData.php.
  • http/tests/privateClickMeasurement/resources/redirectToConversion.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/redirectToConversion.php.
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php: Added.
  • http/tests/privateClickMeasurement/resources/util.js: Renamed from LayoutTests/http/tests/adClickAttribution/resources/util.js.

(prepareTest):
(tearDownAndFinish):

  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-higher-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-lower-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html.
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-higher-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-higher-priority.html.
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-lower-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-lower-priority.html.
  • http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt.
  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html: Renamed from LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html.
  • http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session-expected.txt: Added.
  • http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html: Renamed from LayoutTests/http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html.
  • http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt: Added.
  • http/tests/privateClickMeasurement/store-private-click-measurement.html: Renamed from LayoutTests/http/tests/adClickAttribution/store-ad-click-attribution.html.
  • inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled-expected.txt: Removed.
  • inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled-expected.txt: Added.
  • inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled.html: Renamed from LayoutTests/inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled.html.
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
4:28 PM Changeset in webkit [269659] by Simon Fraser
  • 20 edits in trunk/Source

Make PlatformWheelEventPhase an enum class
https://bugs.webkit.org/show_bug.cgi?id=218772

Reviewed by Tim Horton.

Change PlatformWheelEventPhase to be an enum class.

Changed code that maps between NSEventPhase and PlatformWheelEventPhase to not
treat NSEventPhase as a set of bits, since it only ever contains one of the bits.

Source/WebCore:

  • dom/WheelEvent.h:
  • page/EventHandler.cpp:

(WebCore::handleWheelEventPhaseInScrollableArea):
(WebCore::handleWheelEventInAppropriateEnclosingBox):

  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::receivedWheelEvent):

  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingScrollableContainer):
(WebCore::EventHandler::recordWheelEventForDeltaFilter):
(WebCore::EventHandler::processWheelEventForScrollSnap):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::willWheelEventStartSwipeGesture):

  • page/scrolling/ScrollingTreeGestureState.cpp:

(WebCore::ScrollingTreeGestureState::handleGestureCancel):
(WebCore::ScrollingTreeGestureState::nodeDidHandleEvent):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::canHandleWheelEvent const):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

  • platform/PlatformWheelEvent.cpp:

(WebCore::operator<<):

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::useLatchedEventElement const):
(WebCore::PlatformWheelEvent::isGestureStart const):
(WebCore::PlatformWheelEvent::isGestureContinuation const):
(WebCore::PlatformWheelEvent::shouldResetLatching const):
(WebCore::PlatformWheelEvent::isNonGestureEvent const):
(WebCore::PlatformWheelEvent::isEndOfMomentumScroll const):
(WebCore::PlatformWheelEvent::isGestureBegin const):
(WebCore::PlatformWheelEvent::isGestureCancel const):
(WebCore::PlatformWheelEvent::isEndOfNonMomentumScroll const):
(WebCore::PlatformWheelEvent::isTransitioningToMomentumScroll const):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::handleWheelEvent):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):
(WebCore::toWheelEventStatus):

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::phaseFromNSEventPhase):
(WebCore::momentumPhaseForEvent):
(WebCore::phaseForEvent):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::handleWheelEventPhase):
(WebCore::newGestureIsStarting):
(WebCore::gestureShouldBeginSnap):

Source/WebKit:

  • UIProcess/RemoteLayerTree/mac/ScrollerPairMac.mm:

(WebKit::ScrollerPairMac::handleWheelEvent):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

Source/WebKitLegacy/mac:

  • DOM/WebDOMOperations.mm:

(toNSEventPhase):

3:53 PM Changeset in webkit [269658] by ggaren@apple.com
  • 3 edits
    1 add in trunk/Source

Stop using objc_autoreleasePool{Push, Pop} in RunLoop observers
https://bugs.webkit.org/show_bug.cgi?id=218728

Reviewed by Tim Horton.

Use in a RunLoop observer is deprecated when a built-in version of the
behavior is available (because the conflicting pool management commands
crash each other).

This is UIWebView, so there are no rules. Tested manually, at a safe
distance.

  • platform/ios/wak/WebCoreThread.mm:

(WebRunLoopLockInternal):
(WebRunLoopUnlockInternal):
(WebRunLoopEnableNested):
(WebRunLoopDisableNested):
(RunWebThread):

3:36 PM Changeset in webkit [269657] by Chris Dumez
  • 12 edits
    2 adds in trunk

GPUProcess does not properly get relaunched after crashing
https://bugs.webkit.org/show_bug.cgi?id=218769

Reviewed by Tim Horton.

Source/WebKit:

After the GPUProcess crashes, we need to make sure we construct a new GPUProcessProxy
so that a new process gets relaunched. Previously, this wasn't possible because
the GPUProcessProxy was a "never destroyed" singleton.

The GPUProcessProxy is now kept alive by the WebProcessPool objects refing it.
Upon crashing, all WebProcessPools clear their GPUProcessProxy RefPtr so that the
old GPUProcessProxy gets destroyed. The next time a GPUProcessProxy is needed, a new
one gets constructed. We still make sure that all WebProcessPool objects share the
same GPUProcessProxy, as before this patch.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _gpuProcessIdentifier]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::getOrCreate):
(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::~GPUProcessProxy):
(WebKit::GPUProcessProxy::processWillShutDown):
(WebKit::GPUProcessProxy::gpuProcessCrashed):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willStartCapture):
(WebKit::WebPageProxy::setOrientationForMediaCapture):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureGPUProcess):
(WebKit::WebProcessPool::gpuProcessCrashed):
(WebKit::WebProcessPool::getGPUProcessConnection):
(WebKit::WebProcessPool::updateAudibleMediaAssertions):

  • UIProcess/WebProcessPool.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _setupVisibilityPropagationViewForGPUProcess]):

Tools:

Add API test coverage.

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

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/audio-context-playing.html: Added.
3:35 PM Changeset in webkit [269656] by Kocsen Chung
  • 2 edits in branches/safari-610.3.7.1-branch/Source/WebKit

Cherry-pick r269651. rdar://problem/71256353

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Unreviewed follow-up fix to r269649.

Two additional keys are needed: MetalPluginClassName and MetalPluginName

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

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

3:33 PM Changeset in webkit [269655] by Alan Bujtas
  • 7 edits in trunk

[LFC][Integration] Enable vertical alignment on replaced content
https://bugs.webkit.org/show_bug.cgi?id=218101

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

LayoutTests:

Combination of trailing whitespace and pixel rounding.

  • platform/ios/css1/formatting_model/height_of_lines-expected.txt:
  • platform/ios/css1/text_properties/vertical_align-expected.txt:
  • platform/mac/css1/formatting_model/height_of_lines-expected.txt:
  • platform/mac/css1/text_properties/vertical_align-expected.txt:
3:31 PM Changeset in webkit [269654] by Alan Coon
  • 2 edits in branches/safari-610.3.6-branch/Source/WebKit

Cherry-pick r269651. rdar://problem/71256392

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Unreviewed follow-up fix to r269649.

Two additional keys are needed: MetalPluginClassName and MetalPluginName

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

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

3:31 PM Changeset in webkit [269653] by Alan Coon
  • 2 edits in branches/safari-610.3.6-branch/Source/WebKit

Cherry-pick r269649. rdar://problem/71256392

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Reviewed by Tim Horton.

The WebContent should be able to read the IOGLESBundleName IOKit property on
Apple Silicon Macs. This will help the OpenGL stack make better choices about
which bundles to load when processing WebGL content.

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

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

3:28 PM Changeset in webkit [269652] by Alan Coon
  • 8 edits in branches/safari-610.3.6-branch/Source

Versioning.

WebKit-7610.3.6.3

3:18 PM Changeset in webkit [269651] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Unreviewed follow-up fix to r269649.

Two additional keys are needed: MetalPluginClassName and MetalPluginName

  • WebProcess/com.apple.WebProcess.sb.in:
3:17 PM Changeset in webkit [269650] by Kocsen Chung
  • 2 edits in branches/safari-610.3.7.1-branch/Source/WebKit

Cherry-pick r269649. rdar://problem/71256353

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Reviewed by Tim Horton.

The WebContent should be able to read the IOGLESBundleName IOKit property on
Apple Silicon Macs. This will help the OpenGL stack make better choices about
which bundles to load when processing WebGL content.

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

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

3:02 PM Changeset in webkit [269649] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Reviewed by Tim Horton.

The WebContent should be able to read the IOGLESBundleName IOKit property on
Apple Silicon Macs. This will help the OpenGL stack make better choices about
which bundles to load when processing WebGL content.

  • WebProcess/com.apple.WebProcess.sb.in:
2:58 PM Changeset in webkit [269648] by Said Abou-Hallawa
  • 7 edits in trunk/Source

[macCatalyst] Fix various build breaks
https://bugs.webkit.org/show_bug.cgi?id=218771

Reviewed by Tim Horton.

Source/WebCore:

Use PlatformImagePtr which is encapsulated in NativeImage.

  • editing/cocoa/DictionaryLookup.mm:

(-[WebRevealHighlight drawHighlightContentForItem:context:]):

Source/WebKit:

Use NO_RETURN_DUE_TO_ASSERT for unreachable function.

  • UIProcess/Cocoa/UserMediaPermissionRequestProxy.mm:

(WebKit::UserMediaPermissionRequestProxy::doDefaultAction):

  • UIProcess/UserMediaPermissionRequestProxy.h:

Source/WebKitLegacy/mac:

Use 'BOOL' instead of 'bool' for the functions arguments to resolve the
conflict with _setBoolValue which takes 'BOOL'.

  • WebView/WebPreferences.mm:

(-[WebPreferences setAVKitEnabled:]):
(-[WebPreferences setNetworkDataUsageTrackingEnabled:]):

2:20 PM Changeset in webkit [269647] by pvollan@apple.com
  • 9 edits in trunk/Source/WebKit

[Cocoa] Send GPU sandbox extensions in Web page creation parameters
https://bugs.webkit.org/show_bug.cgi?id=218708

Reviewed by Brent Fulgham.

To pick up correct runtime settings, the GPU sandbox extensions should be sent to the WebContent process as part of the Web page creation parameters.

No new tests, covered by existing tests.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::mediaRelatedMachServices): Deleted.
(WebKit::gpuIOKitClasses): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):
(WebKit::mediaRelatedMachServices):
(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

1:36 PM Changeset in webkit [269646] by Andres Gonzalez
  • 2 edits in trunk/LayoutTests

Fix for LayoutTests/accessibility/mac/search-subrole.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=218766

Reviewed by Chris Fleizach.

  • accessibility/mac/search-subrole.html: Modify so that it works in both

isolated tree mode on and off.

1:27 PM Changeset in webkit [269645] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add support for replaced element baseline
https://bugs.webkit.org/show_bug.cgi?id=218767

Reviewed by Antti Koivisto.

Replaced elements can have set baselines.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/layouttree/LayoutReplacedBox.h:

(WebCore::Layout::ReplacedBox::setBaseline):
(WebCore::Layout::ReplacedBox::baseline const):

1:17 PM Changeset in webkit [269644] by jer.noble@apple.com
  • 4 edits in trunk/Source

Unreviewed internal macOS build-fix.

Source/WebCore/PAL:

  • pal/avfoundation/OutputDevice.mm:

(PAL::OutputDevice::supportsSpatialAudio const):

Source/WTF:

  • wtf/PlatformHave.h:
1:11 PM Changeset in webkit [269643] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macCatalyst] Add entitlement for message filtering
https://bugs.webkit.org/show_bug.cgi?id=218768
<rdar://problem/71247464>

Reviewed by Tim Horton.

Add required message filtering entitlement for Catalyst.

No new tests, covered by existing tests.

  • Scripts/process-entitlements.sh:
12:49 PM Changeset in webkit [269642] by youenn@apple.com
  • 1611 edits
    2 copies
    2 moves
    356 adds
    112 deletes in trunk

Update WebRTC liwebrtc to M87
https://bugs.webkit.org/show_bug.cgi?id=218436

LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

  • web-platform-tests/webrtc/RTCPeerConnection-createDataChannel-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-transceivers.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpTransceiver-stop-expected.txt:

Source/ThirdParty/libwebrtc:

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc: Resynced.
  • WebKit/libwebrtc-m87-diff: Added.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Reviewed by Eric Carlson.

Move from deprecated to new APIs.

Covered by existing tests.

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:

(WebCore::LibWebRTCRtpTransceiverBackend::setDirection):
(WebCore::LibWebRTCRtpTransceiverBackend::stop):

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillRTCDataChannelStats):

  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:

(WebCore::GStreamerVideoFrameLibWebRTC::ToI420):

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerEncodedImageBuffer::create):
(WebCore::GStreamerEncodedImageBuffer::GStreamerEncodedImageBuffer):
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
(WebCore::GStreamerVideoEncoder::Fragmentize): Deleted.

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.h:
  • testing/MockLibWebRTCPeerConnection.h:

Source/WebKit:

Reviewed by Eric Carlson.

Update code now that fragmentation headers are computed at packetization time.

  • Configurations/WebKit.xcconfig:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::createEncoder):

  • Scripts/webkit/messages.py:
  • Shared/RTCNetwork.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::completedEncoding):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:

LayoutTests:

Reviewed by Eric Carlson.

We now have to explicitly support all packetization modes, which is similar to what Chrome is doing.

  • webrtc/h264-packetization-mode.html:
12:40 PM Changeset in webkit [269641] by commit-queue@webkit.org
  • 23 edits in trunk

Parse aspect-ratio CSS property
https://bugs.webkit.org/show_bug.cgi?id=218437

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

LayoutTests/imported/w3c:

Add improved test results.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-computed-expected.txt:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

Parse aspect-ratio CSS property according to the specification [1].

[1] https://drafts.csswg.org/css-sizing-4/#aspect-ratio

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAspectRatio):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::aspectRatioWidth const):
(WebCore::RenderStyle::aspectRatioHeight const):
(WebCore::RenderStyle::setAspectRatio):
(WebCore::RenderStyle::initialAspectRatioWidth):
(WebCore::RenderStyle::initialAspectRatioHeight):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueWebkitAspectRatio):
(WebCore::Style::BuilderCustom::applyInitialAspectRatio):
(WebCore::Style::BuilderCustom::applyInheritAspectRatio):
(WebCore::Style::BuilderCustom::applyValueAspectRatio):

Source/WTF:

Add an experimental preference for aspect-ratio.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Adapt platform test expectations.

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
12:30 PM Changeset in webkit [269640] by Wenson Hsieh
  • 10 edits in trunk

REGRESSION (r269525): Many layout tests crash when run under ASan
https://bugs.webkit.org/show_bug.cgi?id=218733
<rdar://problem/71206273>

Reviewed by Tim Horton.

Source/WebCore:

When running tests under ASan, many layout tests crash under Vector::asanBufferSizeWillChangeTo, which (when
ASan is enabled) will crash when the start of the buffer is misaligned to 8 bytes. When appending DrawGlyph
display list items that have Vectors with inline capacities, the start of a buffer may end up at an offset that
is not aligned to 8 bytes, since all display list items are currently laid out back-to-back, with a single byte
to represent the item type and each item's data following immediately thereafter.

To address this, adjust display list item buffer logic to make sure that for each item that is appended to an
item buffer, both the item type and the item itself are aligned to 8 bytes.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::iterator::updateCurrentItem):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::copyTo const):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):
(WebCore::DisplayList::ItemBuffer::appendEncodedData):
(WebCore::DisplayList::ItemBuffer::appendDataAndLength): Deleted.

  • platform/graphics/displaylists/DisplayListItemBuffer.h:

(WebCore::DisplayList::ItemHandle::type const):
(WebCore::DisplayList::ItemHandle::get const):
(WebCore::DisplayList::ItemBuffer::append):
(WebCore::DisplayList::ItemBuffer::uncheckedAppend):
(WebCore::DisplayList::ItemHandle::size const): Deleted.

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::paddedSizeOfTypeAndItemInBytes):

Change sizeOfItemInBytes to paddedSizeOfTypeAndItemInBytes, and make it include both the padded size of an
item type (8 bytes), the size of the item itself, and the minimum amount of padding after the item that's
required to make sure the total size is aligned to 8 bytes.

  • platform/graphics/displaylists/DisplayListItemType.h:

Source/WebKit:

Construct the item 8 bytes after the handle offset, instead of 1 byte (also, add a FIXME indicating that we some
way of achieving this without requiring WebKit2 to be aware of an item handle's memory layout).

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::decodeAndCreate):

Tools:

  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

11:40 AM Changeset in webkit [269639] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

[LFC][Integration] Move caret rect computation out of iterator
https://bugs.webkit.org/show_bug.cgi?id=218747

Reviewed by Zalan Bujtas.

Move it to RenderBlockFlow which it mostly deals with.

  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::PathLine::computeCaretRect const): Deleted.

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::PathLine::selectionRect const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeCaretRect const):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::localCaretRect const):

  • rendering/RenderText.cpp:

(WebCore::RenderText::localCaretRect const):

11:38 AM Changeset in webkit [269638] by Alan Coon
  • 2 edits in branches/safari-611.1.5-branch/Source/WebKit

Cherry-pick r269610. rdar://problem/71247293

REGRESSION (r269557): ASSERTION FAILED: Completion handler should always be called under WebCore::HTMLMediaElement::exitFullscreen
https://bugs.webkit.org/show_bug.cgi?id=218722

Reviewed by Eric Carlson.

No new tests, covered by an existing test that is crashing on the bots.

  • WebProcess/cocoa/VideoFullscreenManager.mm: (WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

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

11:34 AM Changeset in webkit [269637] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r269407): ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) in WebCore::RenderLayerCompositor::computeCompositingRequirements
https://bugs.webkit.org/show_bug.cgi?id=218723
<rdar://problem/71208603>

Unreviewed test gardening.

  • platform/mac/TestExpectations: Skip plugins/quicktime-plugin-replacement.html, the plug-in

replacement is an iOS-only feature.

11:30 AM Changeset in webkit [269636] by Russell Epstein
  • 1 copy in branches/safari-611.1.5-branch

New branch.

11:21 AM Changeset in webkit [269635] by Andres Gonzalez
  • 14 edits in trunk

Fix for LayoutTests/accessibility/mac/search-predicate.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=218732

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/search-predicate.html.

  • Implemented AXIsolatedObject::scrollXXX methods.
  • Added handling of "AXIsOnScreen" attribute to WebAccessibilityOobjectWrapperMac.
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::performFunctionOnMainThread const):
(WebCore::AXIsolatedObject::scrollToMakeVisible const):
(WebCore::AXIsolatedObject::scrollToMakeVisibleWithSubFocus const):
(WebCore::AXIsolatedObject::scrollToGlobalPoint const):
(WebCore::AXIsolatedObject::performFunctionOnMainThread): Deleted.
(WebCore::AXIsolatedObject::isVisible const): Deleted.

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

Tools:

Exposed isOnScreen method to JS.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::isOnScreen const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::isOnScreen const):

LayoutTests:

This test now passes in both isolated tree mode on and off.

  • accessibility/mac/search-predicate.html:
11:20 AM Changeset in webkit [269634] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Only upload to S3 when running on production server
https://bugs.webkit.org/show_bug.cgi?id=218755

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(TransferToS3.doStepIf):

11:19 AM Changeset in webkit [269633] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] Update ExtractTestResults step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=218759

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(ExtractTestResults): Making this step similar to corresponding EWS step. Also added name to this step to make it more readable (than MasterShellCommand).
(ExtractTestResults.init):
(ExtractTestResults.resultDirectoryURL):
(ExtractTestResults.start):

  • CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests to handle step name change.
11:15 AM Changeset in webkit [269632] by Chris Dumez
  • 6 edits
    2 adds in trunk

Crash when accessing OfflineAudioContext.length after failing to construct rendering AudioBuffer
https://bugs.webkit.org/show_bug.cgi?id=218754
<rdar://problem/71186978>

Reviewed by Eric Carlson.

Source/WebCore:

OfflineAudioContext.length should return the length passed to the constructor, even if we
failed to construct the internal AudioBuffer (and obviously we should not crash). This
matches the behavior of Firefox and Chrome.

I have also added a console message when we fail to construct the internal rendering
AudioBuffer, for clarity.

Test: webaudio/OfflineAudioContext/bad-buffer-length.html

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::OfflineAudioContext):
(WebCore::OfflineAudioContext::create):

  • Modules/webaudio/OfflineAudioContext.h:

LayoutTests:

Add layout test coverage and rebaseline a couple of tests now that a console message is logged.

  • webaudio/OfflineAudioContext-bad-buffer-crash-expected.txt:
  • webaudio/OfflineAudioContext/bad-buffer-length-expected.txt: Added.
  • webaudio/OfflineAudioContext/bad-buffer-length.html: Added.
  • webaudio/dom-exceptions-expected.txt:
11:10 AM Changeset in webkit [269631] by jer.noble@apple.com
  • 11 edits
    3 copies
    3 adds in trunk

Add support for AudioConfiguration.spatialRendering
https://bugs.webkit.org/show_bug.cgi?id=218727
<rdar://problem/71213348>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/mediacapabilities/mock-decodingInfo-spatialRendering.html

Add support for spatialRendring. On Cocoa ports, this will query AVAudioContext for spatial rendering support.

Drive-by fix: The AudioConfiguration.idl marks sampleRate, bitrate, and channels as optional; those need to
be reflected in the C++ struct.

  • Modules/mediacapabilities/AudioConfiguration.idl:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::exernalDeviceDisplayNameForPlayer):

  • platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:

(WebCore::createMediaPlayerDecodingConfigurationCocoa):

  • platform/mediacapabilities/AudioConfiguration.h:
  • platform/mediacapabilities/MediaCapabilitiesLogging.cpp:

(WebCore::toJSONObject):

  • platform/mock/MediaEngineConfigurationFactoryMock.cpp:

(WebCore::canDecodeMedia):
(WebCore::canSmoothlyDecodeMedia):
(WebCore::canPowerEfficientlyDecodeMedia):
(WebCore::canSmoothlyEncodeMedia):
(WebCore::canPowerEfficientlyEncodeMedia):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/avfoundation/OutputContext.h: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.

(PAL::OutputContext::platformContext const):

  • pal/avfoundation/OutputContext.mm: Added.

(PAL::OutputContext::OutputContext):
(PAL::OutputContext::sharedAudioPresentationOutputContext):
(PAL::OutputContext::supportsMultipleOutputDevices):
(PAL::OutputContext::deviceName):
(PAL::OutputContext::outputDevices const):

  • pal/avfoundation/OutputDevice.h: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.

(PAL::OutputDevice::platformDevice const):

  • pal/avfoundation/OutputDevice.mm: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.

(PAL::OutputDevice::OutputDevice):
(PAL::OutputDevice::name const):
(PAL::OutputDevice::deviceFeatures const):
(PAL::OutputDevice::supportsSpatialAudio const):

  • pal/spi/cocoa/AVFoundationSPI.h:

LayoutTests:

  • media/mediacapabilities/mock-decodingInfo-spatialRendering-expected.txt: Added.
  • media/mediacapabilities/mock-decodingInfo-spatialRendering.html: Added.
10:51 AM Changeset in webkit [269630] by Chris Dumez
  • 7 edits in trunk/Source

[GPUProcess] Regression(r268632) Garbage is rendered on speakers when using WebAudio
https://bugs.webkit.org/show_bug.cgi?id=218729

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/audio/cocoa/AudioDestinationCocoa.h:
  • platform/mock/MockAudioDestinationCocoa.cpp:

(WebCore::MockAudioDestinationCocoa::start):
(WebCore::MockAudioDestinationCocoa::stop):
(WebCore::MockAudioDestinationCocoa::tick):

  • platform/mock/MockAudioDestinationCocoa.h:

Make AudioDestinationCocoa::m_dispatchToRenderThread private so that subclasses cannot set it.
Update MockAudioDestinationCocoa to use m_dispatchToRenderThread to dispatch to the
render thread when available, instead of unconditionally dispatching to its own WorkQueue and
then expecting AudioDestinationCocoa::render() to render to the actual rendering thread.

Source/WebKit:

RemoteAudioDestinationProxy::requestBuffer() was calling AudioDestinationCocoa::render()
and expecting RemoteAudioDestinationProxy::renderOnRenderingThead() to get called as
a result. It would take care of writing to the CARingBuffer and sending the IPC back
to the GPU process in renderOnRenderingThead(). The issue was that AudioDestinationCocoa
uses a PushPullFIFO internally for buffering. It first fetches available frames from
the FIFO and then only calls renderOnRenderingThead() with the number of frames that
remain to processed (usually 0). As a result, RemoteAudioDestinationProxy::renderOnRenderingThead()
would often store 0 frames instead of 128 (or sometimes a number of frames less than
128), even though the full 128 frames were actually rendered.

To address the issue, stop overriding renderOnRenderingThead() in
RemoteAudioDestinationProxy. Instead, do the writing to the CARingBuffer and the IPC
response in RemoteAudioDestinationProxy::requestBuffer(), directly after calling
AudioDestinationCocoa::render(). After calling AudioDestinationCocoa::render()
we know that |framesToRender| frames have been rendered / added to the buffer.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::requestBuffer):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
9:28 AM Changeset in webkit [269629] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Debug] imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.ellipse.basics.html is asserting
https://bugs.webkit.org/show_bug.cgi?id=218671

Unreviewed test gardening.

7:14 AM Changeset in webkit [269628] by svillar@igalia.com
  • 2 edits
    28 adds in trunk/LayoutTests/imported/w3c

[css-flex] Import image-as-flexitem-* WPT tests
https://bugs.webkit.org/show_bug.cgi?id=218746

Reviewed by Manuel Rego Casasnovas.

Import the image-as-flexitem-size-* tests which are useful to test the handling of replaced elements as
flex items and more in general, flex items with aspect ratios. We're currently failing a bunch of subtests
but since we're passing most of them, I'm uploading them with failed expectations. Follow-up patches
will fix the failing subtests.

  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:
6:59 AM Changeset in webkit [269627] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Allow object-fit
https://bugs.webkit.org/show_bug.cgi?id=218740

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

6:58 AM Changeset in webkit [269626] by clopez@igalia.com
  • 29 edits
    2 copies
    3 moves
    27 adds
    1 delete in trunk/LayoutTests

[GTK][WPE] Rebaseline tests after r269510, r269598, r269600 and r269612.

Unreviewed GTK/WPE gardening.

  • platform/gtk/editing/selection/simple-line-layout-caret-is-gone-expected.txt: Removed.
  • platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt:
  • platform/gtk/fast/repaint/focus-ring-repaint-expected.txt:
  • platform/gtk/fast/table/005-expected.txt: Copied from LayoutTests/platform/glib/fast/table/005-expected.txt.
  • platform/gtk/fast/table/unbreakable-images-quirk-expected.txt: Copied from LayoutTests/platform/glib/fast/table/unbreakable-images-quirk-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2973-expected.txt: Renamed from LayoutTests/platform/glib/tables/mozilla/bugs/bug2973-expected.txt.
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug8499-expected.txt:
  • platform/wpe/css3/filters/effect-brightness-clamping-expected.txt:
  • platform/wpe/css3/filters/effect-brightness-clamping-hw-expected.txt:
  • platform/wpe/css3/filters/effect-brightness-expected.txt:
  • platform/wpe/css3/filters/effect-brightness-hw-expected.txt:
  • platform/wpe/css3/filters/effect-combined-expected.txt:
  • platform/wpe/css3/filters/effect-combined-hw-expected.txt:
  • platform/wpe/css3/filters/effect-contrast-expected.txt:
  • platform/wpe/css3/filters/effect-contrast-hw-expected.txt:
  • platform/wpe/css3/filters/effect-drop-shadow-expected.txt:
  • platform/wpe/css3/filters/effect-drop-shadow-hw-expected.txt:
  • platform/wpe/css3/filters/effect-grayscale-expected.txt:
  • platform/wpe/css3/filters/effect-grayscale-hw-expected.txt:
  • platform/wpe/css3/filters/effect-hue-rotate-expected.txt:
  • platform/wpe/css3/filters/effect-hue-rotate-hw-expected.txt:
  • platform/wpe/css3/filters/effect-invert-expected.txt:
  • platform/wpe/css3/filters/effect-invert-hw-expected.txt:
  • platform/wpe/css3/filters/effect-opacity-expected.txt:
  • platform/wpe/css3/filters/effect-opacity-hw-expected.txt:
  • platform/wpe/css3/filters/effect-saturate-expected.txt:
  • platform/wpe/css3/filters/effect-saturate-hw-expected.txt:
  • platform/wpe/css3/filters/effect-sepia-expected.txt:
  • platform/wpe/css3/filters/effect-sepia-hw-expected.txt:
  • platform/wpe/fast/table/005-expected.txt: Renamed from LayoutTests/platform/glib/fast/table/005-expected.txt.
  • platform/wpe/fast/table/unbreakable-images-quirk-expected.txt: Renamed from LayoutTests/platform/glib/fast/table/unbreakable-images-quirk-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-empty-content-value-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-first-valid-applies-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-insert-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-no-content-value-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-presentational-hint-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-head-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-body-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-head-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-shadow-tree-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-pointer-expected.txt: Added.
  • platform/wpe/tables/mozilla/bugs/bug101674-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2973-expected.txt: Added.
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug8499-expected.txt:
5:30 AM Changeset in webkit [269625] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] [REGRESSSION(r269390) Several editing/ tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=218607

Reviewed by Adrian Perez de Castro.

After r269390 some of the internal preferences like LiveRangeSelectionEnabled
are not resetted to their default value on WTR between test runs.
So when a test changes some of this properties it may cause failures on
the next tests that will run on the same WTR process.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues): Add back the call to WKPreferencesResetAllInternalDebugFeatures() that was removed on r269390.

3:44 AM Changeset in webkit [269624] by graouts@webkit.org
  • 6 edits in trunk

align-self should be a discrete animatable property
https://bugs.webkit.org/show_bug.cgi?id=218742

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

3:35 AM Changeset in webkit [269623] by graouts@webkit.org
  • 9 edits in trunk

[Web Animations] KeyframeEffect.pseudoElement does not return a valid string when targeting ::marker or ::first-letter
https://bugs.webkit.org/show_bug.cgi?id=218741
<rdar://problem/71229846>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark two new PASS results showing that KeyframeEffect.pseudoElement shows the correct value
when targeting ::marker or ::first-letter.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:

Source/WebCore:

We used to use PseudoElement::pseudoElementNameForEvents() to go from PseudoId to a String, but PseudoElement
only knows about ::before and ::after and not about valid pseudo-elements. We remove that method and create an
equivalent in WebAnimationUtilities that knows about all public pseudo-elements.

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::pseudoElement const):

  • animation/WebAnimationUtilities.cpp:

(WebCore::pseudoIdAsString):

  • animation/WebAnimationUtilities.h:
  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::pseudoElementNameForEvents): Deleted.

  • dom/PseudoElement.h:
1:28 AM Changeset in webkit [269622] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Scroll-snap on the root aligns to the body margin edge, not the viewport edge
https://bugs.webkit.org/show_bug.cgi?id=210476
<rdar://problem/61755103>

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-11-10
Reviewed by Simon Fraser.

Source/WebCore:

When passing the frame viewport to updateSnapOffsetsForScrollableArea, be sure to put it
into the coordinate system of the root element padding box. This means offsetting it by the
margins of the root element.

Tests: tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin.html

tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-margin.html

  • page/FrameView.cpp:

(WebCore::FrameView::updateSnapOffsets): Offset viewport by top and left margins of the
root element.

LayoutTests:

Added tests for new behavior.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin.html: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-margin-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-margin.html: Added.
1:05 AM Changeset in webkit [269621] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK4] WebView is flipped
https://bugs.webkit.org/show_bug.cgi?id=218354

Reviewed by Adrian Perez de Castro.

Stop painting y-flipped textures when buildig with GTK4.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot):

  • WebProcess/WebPage/libwpe/AcceleratedSurfaceLibWPE.h:
1:03 AM Changeset in webkit [269620] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK] Crash in WebKit::DropTarget::drop
https://bugs.webkit.org/show_bug.cgi?id=217482

Reviewed by Michael Catanzaro.

If we don't have selection data when drop is called, just return early to let leave continue. Also change
accept() to receive the drop context and position to be set after leaving any previous operation.

  • UIProcess/API/gtk/DropTarget.h:
  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):
(WebKit::DropTarget::drop):

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):

12:59 AM Changeset in webkit [269619] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] MiniBrowser: add buttons to insert ordered/unordered lists to editor toolbar
https://bugs.webkit.org/show_bug.cgi?id=218648

Reviewed by Carlos Alberto Lopez Perez.

  • MiniBrowser/gtk/BrowserWindow.c:
12:56 AM Changeset in webkit [269618] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK][WPE] WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD returned when plugins are disabled
https://bugs.webkit.org/show_bug.cgi?id=216123

Reviewed by Adrian Perez de Castro.

Undeprecate webkit_plugin_error_quark and WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD, and update documentation.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewLoadFail):

  • UIProcess/API/gtk/WebKitError.h:
  • UIProcess/API/wpe/WebKitError.h:
12:07 AM Changeset in webkit [269617] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Fix crashes when mapping shared display list item data into display lists in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=218739

Reviewed by Tim Horton.

I added a "stop-gap" mechanism in r269525 to allow the GPU process to handle newly refactored display list
items by encoding display list items directly into shared memory buffers in the web process and reading them
back in the GPU process, using standard IPC messages only, and also without reusing any shared memory buffers.

However, I introduced a bug in this "stop-gap" mechanism when I tried to clean up some GPU-process-side logic
for unregistering these shared memory buffers in the GPU process, by taking shared memory buffers out of the
map in the GPU process without ensuring that they're kept alive over the course of applying the display list.

This code is going away soon anyways (see webkit.org/b/218426), but in the meantime, we should at least ensure
that this temporary shared memory mechanism doesn't cause huge waves of layout test failures.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyDisplayList):

Nov 9, 2020:

11:42 PM Changeset in webkit [269616] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebCore

Exceptions under PlatformCALayerCocoa::drawLayerContents with DisplayList-backed layers
https://bugs.webkit.org/show_bug.cgi?id=218731

Reviewed by Simon Fraser.

No new tests; all tests will cover this once GPU Process for DOM rendering lands.

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

(WebCore::PlatformCALayer::drawLayerContents):
Refactor this function to use three state savers, all released by scope instead of explicitly.
This fixes the bug in the title, which was that we would call +restoreGraphicsState on NSGraphicsContext
regardless of whether we have a platform context or not (while we'd only save if we /did/ have one).

  • platform/graphics/ios/FontAntialiasingStateSaver.h:

(WebCore::FontAntialiasingStateSaver::~FontAntialiasingStateSaver):
(WebCore::FontAntialiasingStateSaver::restore): Deleted.
Make FontAntialiasingStateSaver behave like all of the other -StateSavers, performing "restore"
in its destructor.

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::drawWindowContent):
We don't have to restore explicitly anymore.

8:58 PM Changeset in webkit [269615] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening some WPE failures

Unreviewed test gardening.

7:14 PM Changeset in webkit [269614] by Said Abou-Hallawa
  • 134 edits
    1 copy
    1 move in trunk/Source

[GPU Process] Control the life cycle of the platform image by a new class named NativeImage
https://bugs.webkit.org/show_bug.cgi?id=218427

Reviewed by Simon Fraser.

Source/WebCore:

This adds a new level of indirection around NativeImagePtr which is now
renamed PlatformImagePtr. The goal is to control the life cycle of the
PlatfromImagePtr in WebKit regardless if it is retained outside WebKit
or not. In future patches, deleting the NativeImage will be observed by
RemoteResoureCache such that it will be removed from the GPUP cache when
the object is destroyed in WebP.

The new structural hierarchy of the bitmap image is the following:

  • CachedImage (responsible of receiving the encoded image data)
    • BitmapImage (responsible of decoding the image data)
      • NativeImage (represents an image frame and controls the life cycle of PlatformImagePtr in WebKit)
        • PlatformImagePtr (represents a platform image and it is the result of ImageDecoder)
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::nativeImageForCurrentTime):

  • html/HTMLVideoElement.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
(createContentCrossfadeAnimation):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded):
(WebCore::BitmapImage::nativeImage):
(WebCore::BitmapImage::nativeImageForCurrentFrame):
(WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame):
(WebCore::BitmapImage::nativeImageOfSize):
(WebCore::BitmapImage::framesNativeImages):
(WebCore::drawNativeImage):
(WebCore::BitmapImage::draw):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPlatformImage):

  • platform/graphics/GraphicsContextGLImageExtractor.h:
  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/Icon.h:
  • platform/graphics/Image.h:

(WebCore::Image::nativeImage):
(WebCore::Image::nativeImageForCurrentFrame):
(WebCore::Image::preTransformedNativeImageForCurrentFrame):
(WebCore::Image::nativeImageOfSize):

  • platform/graphics/ImageBackingStore.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::sinkIntoNativeImage):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::sinkIntoNativeImage):

  • platform/graphics/ImageBufferBackend.h:
  • platform/graphics/ImageDecoder.h:
  • platform/graphics/ImageFrame.cpp:

(WebCore::ImageFrame::clearImage):
(WebCore::ImageFrame::singlePixelSolidColor const):

  • platform/graphics/ImageFrame.h:

(WebCore::ImageFrame::nativeImage const):

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::setNativeImage):
(WebCore::ImageSource::cacheMetadataAtIndex):
(WebCore::ImageSource::cachePlatformImageAtIndex):
(WebCore::ImageSource::cachePlatformImageAtIndexAsync):
(WebCore::ImageSource::startAsyncDecodingQueue):
(WebCore::ImageSource::frameAtIndexCacheIfNeeded):
(WebCore::ImageSource::createFrameImageAtIndex):
(WebCore::ImageSource::frameImageAtIndex):
(WebCore::ImageSource::frameImageAtIndexCacheIfNeeded):
(WebCore::ImageSource::cacheNativeImageAtIndex): Deleted.
(WebCore::ImageSource::cacheNativeImageAtIndexAsync): Deleted.

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::create):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::nativeImageForCurrentTime):

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

(WebCore::MediaPlayerPrivateInterface::nativeImageForCurrentTime):

  • platform/graphics/NativeImage.cpp: Copied from Source/WebCore/platform/graphics/NativeImagePtr.h.

(WebCore::NativeImage::create):
(WebCore::NativeImage::NativeImage):

  • platform/graphics/NativeImage.h:

(WebCore::NativeImage::platformImage const):

  • platform/graphics/PlatformImage.h: Renamed from Source/WebCore/platform/graphics/NativeImagePtr.h.
  • platform/graphics/VideoLayerManager.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::createFrameImageAtIndex):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoFullscreenInlineImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext):

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

(WebCore::VideoLayerManagerObjC::setVideoFullscreenLayer):
(WebCore::VideoLayerManagerObjC::updateVideoFullscreenInlineImage):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateContentsImage):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::fillShadowBuffer):
(WebCore::Cairo::drawPlatformImage):
(WebCore::Cairo::drawNativeImage): Deleted.

  • platform/graphics/cairo/CairoOperations.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawPlatformImage):
(WebCore::GraphicsContext::clipToImageBuffer):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::platformDrawNativeImage): Deleted.

  • platform/graphics/cairo/GraphicsContextGLCairo.cpp:

(WebCore::GraphicsContextGLImageExtractor::extractImage):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawImageBuffer):
(WebCore::GraphicsContextImplCairo::drawNativeImage):
(WebCore::GraphicsContextImplCairo::drawPattern):
(WebCore::GraphicsContextImplCairo::clipToImageBuffer):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::draw):
(WebCore::ImageBufferCairoBackend::drawPattern):

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:

(WebCore::ImageBufferCairoSurfaceBackend::copyNativeImage const):
(WebCore::ImageBufferCairoSurfaceBackend::cairoSurfaceCoerceToImage const):
(WebCore::ImageBufferCairoSurfaceBackend::toBGRAData const):

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::NativeImage::size const):
(WebCore::NativeImage::hasAlpha const):
(WebCore::NativeImage::singlePixelSolidColor const):
(WebCore::NativeImage::clearSubimages):
(WebCore::nativeImageSize): Deleted.
(WebCore::nativeImageHasAlpha): Deleted.
(WebCore::nativeImageSinglePixelSolidColor): Deleted.
(WebCore::drawNativeImage): Deleted.
(WebCore::clearNativeImageSubimages): Deleted.

  • platform/graphics/cairo/PatternCairo.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawPlatformImage):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::clipToImageBuffer):
(WebCore::GraphicsContext::platformDrawNativeImage): Deleted.

  • platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::GraphicsContextGLImageExtractor::extractImage):
(WebCore::GraphicsContextGLOpenGL::paintToCanvas):

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBufferCGBackend::copyImage const):
(WebCore::ImageBufferCGBackend::draw):
(WebCore::ImageBufferCGBackend::toCFData const):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::copyNativeImage const):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.h:
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::copyNativeImage const):
(WebCore::ImageBufferIOSurfaceBackend::sinkIntoNativeImage):
(WebCore::ImageBufferIOSurfaceBackend::drawConsuming):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoderCG::createFrameImageAtIndex):

  • platform/graphics/cg/ImageDecoderCG.h:
  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::NativeImage::size const):
(WebCore::NativeImage::hasAlpha const):
(WebCore::NativeImage::singlePixelSolidColor const):
(WebCore::NativeImage::clearSubimages):
(WebCore::nativeImageSize): Deleted.
(WebCore::nativeImageHasAlpha): Deleted.
(WebCore::nativeImageSinglePixelSolidColor): Deleted.
(WebCore::clearNativeImageSubimages): Deleted.

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:

(WebCore::FilterEffectRendererCoreImage::imageForSourceGraphic):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawNativeImage):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::createFrameImageAtIndex):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::nativeImageForCurrentTime):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gtk/ImageGtk.cpp:

(WebCore::BitmapImage::getGdkPixbuf):
(WebCore::BitmapImage::gdkTexture):

  • platform/graphics/ios/IconIOS.mm:

(WebCore::Icon::Icon):
(WebCore::Icon::createIconForImage):
(WebCore::Icon::paint):

  • platform/graphics/mac/ImageMac.mm:

(WebCore::BitmapImage::tiffRepresentation):
(WebCore::BitmapImage::snapshotNSImage):

  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:

(Nicosia::NicosiaImageBufferPipeSource::handle):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawNativeImage):
(Nicosia::CairoOperationRecorder::drawPattern):
(Nicosia::CairoOperationRecorder::clipToImageBuffer):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::updateContents):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::setContentsToImage):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsToImage):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawPlatformImage):
(WebCore::Direct2D::drawNativeImage): Deleted.

  • platform/graphics/win/Direct2DOperations.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::drawPlatformImage):
(WebCore::GraphicsContext::platformDrawNativeImage): Deleted.

  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:

(WebCore::GraphicsContextImplDirect2D::drawNativeImage):

  • platform/graphics/win/GraphicsContextImplDirect2D.h:
  • platform/graphics/win/ImageBufferDirect2DBackend.cpp:

(WebCore::ImageBufferDirect2DBackend::create):
(WebCore::ImageBufferDirect2DBackend::ImageBufferDirect2DBackend):
(WebCore::ImageBufferDirect2DBackend::copyNativeImage const):
(WebCore::createCroppedImageIfNecessary):
(WebCore::ImageBufferDirect2DBackend::copyImage const):
(WebCore::ImageBufferDirect2DBackend::sinkIntoImage):
(WebCore::ImageBufferDirect2DBackend::compatibleBitmap):

  • platform/graphics/win/ImageBufferDirect2DBackend.h:
  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::create):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoderDirect2D::createFrameImageAtIndex):

  • platform/graphics/win/ImageDecoderDirect2D.h:
  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::NativeImage::size const):
(WebCore::NativeImage::hasAlpha const):
(WebCore::NativeImage::singlePixelSolidColor const):
(WebCore::NativeImage::clearSubimages):
(WebCore::nativeImageSize): Deleted.
(WebCore::nativeImageHasAlpha): Deleted.
(WebCore::nativeImageSinglePixelSolidColor): Deleted.
(WebCore::drawNativeImage): Deleted.
(WebCore::clearNativeImageSubimages): Deleted.

  • platform/gtk/CursorGtk.cpp:

(WebCore::createCustomCursor):

  • platform/gtk/DragImageGtk.cpp:

(WebCore::createDragImageFromImage):

  • platform/image-decoders/ScalableImageDecoder.cpp:

(WebCore::ScalableImageDecoder::createFrameImageAtIndex):

  • platform/image-decoders/ScalableImageDecoder.h:
  • platform/image-decoders/cairo/ImageBackingStoreCairo.cpp:

(WebCore::ImageBackingStore::image const):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::emitFrame):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):

  • platform/win/DragImageCGWin.cpp:

(WebCore::createDragImageFromImage):

  • platform/win/DragImageCairoWin.cpp:

(WebCore::createDragImageFromImage):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSystemPreviewBadge):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::nativeImageForCurrentFrame):

  • svg/graphics/SVGImageForContainer.h:

Source/WebKit:

  • Scripts/webkit/messages.py:
  • Shared/API/c/cg/WKImageCG.cpp:

(WKImageCreateFromCGImage):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Ref<NativeImage>>::encode):
(IPC::ArgumentCoder<Ref<NativeImage>>::decode):
(IPC::encodeNativeImage): Deleted.
(IPC::decodeNativeImage): Deleted.
(IPC::encodeOptionalNativeImage): Deleted.
(IPC::decodeOptionalNativeImage): Deleted.
(IPC::ArgumentCoder<NativeImagePtr>::encode): Deleted.
(IPC::ArgumentCoder<NativeImagePtr>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createImage):

  • Shared/win/ShareableBitmapDirect2D.cpp:

(WebKit::ShareableBitmap::paint):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::setIconForPageURL):

  • UIProcess/API/glib/IconDatabase.h:
  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::uiImageForImage):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _deliverDelayedDropPreviewIfPossible:]):
(uiImageForImage):
(-[WKContentView _handleDropByInsertingImagePlaceholders:session:]):
(-[WKContentView _presentationSnapshotForPreviewItemController:]):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::copyNativeImage const):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::isAlmostSolidColor):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChooseFilesForOpenPanelWithDisplayStringAndIcon):

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(-[DOMNode getPreviewSnapshotImage:andRects:]):

  • Misc/WebCache.mm:

(+[WebCache imageForURL:]):

  • WebView/WebView.mm:

(-[WebUITextIndicatorData initWithImage:textIndicatorData:scale:]):

5:25 PM Changeset in webkit [269613] by Alan Coon
  • 8 edits in branches/safari-610.3.7.1-branch/Source

Versioning.

WebKit-7610.3.7.1.3

4:29 PM Changeset in webkit [269612] by Chris Dumez
  • 70 edits
    78 deletes in trunk

Unexpose obsolete HTMLAppletElement interface
https://bugs.webkit.org/show_bug.cgi?id=218677

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/dom/nodes/getElementsByClassName-30-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-03-expected.txt:
  • web-platform-tests/html/dom/historical-expected.txt:
  • web-platform-tests/html/semantics/interfaces-expected.txt:

Source/WebCore:

Drop support for HTMLAppletElement. This feature is obsolete and has been removed from
the HTML specification. The <applet> element was removed in Gecko 56 and Chrome 47
already.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSPluginElementFunctions.cpp:
  • bindings/js/JSPluginElementFunctions.h:
  • html/CachedHTMLCollection.h:

(WebCore::nameShouldBeVisibleInDocumentAll):

  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches const):

  • html/HTMLAppletElement.cpp: Removed.
  • html/HTMLAppletElement.h: Removed.
  • html/HTMLAppletElement.idl: Removed.
  • html/HTMLNameCollection.cpp:

(WebCore::WindowNameCollection::elementMatchesIfNameAttributeMatch):
(WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
(WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):

  • html/HTMLPlugInImageElement.h:
  • html/HTMLTagNames.in:
  • loader/EmptyClients.cpp:
  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • loader/SubframeLoader.cpp:
  • loader/SubframeLoader.h:
  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderEmbeddedObject.h:

Source/WebKit:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp:

(webkit_dom_html_applet_element_dispatch_event):
(webkit_dom_html_applet_element_add_event_listener):
(webkit_dom_html_applet_element_remove_event_listener):
(webkit_dom_html_applet_element_get_align):
(webkit_dom_html_applet_element_set_align):
(webkit_dom_html_applet_element_get_alt):
(webkit_dom_html_applet_element_set_alt):
(webkit_dom_html_applet_element_get_archive):
(webkit_dom_html_applet_element_set_archive):
(webkit_dom_html_applet_element_get_code):
(webkit_dom_html_applet_element_set_code):
(webkit_dom_html_applet_element_get_code_base):
(webkit_dom_html_applet_element_set_code_base):
(webkit_dom_html_applet_element_get_height):
(webkit_dom_html_applet_element_set_height):
(webkit_dom_html_applet_element_get_hspace):
(webkit_dom_html_applet_element_set_hspace):
(webkit_dom_html_applet_element_get_name):
(webkit_dom_html_applet_element_set_name):
(webkit_dom_html_applet_element_get_object):
(webkit_dom_html_applet_element_set_object):
(webkit_dom_html_applet_element_get_vspace):
(webkit_dom_html_applet_element_set_vspace):
(webkit_dom_html_applet_element_get_width):
(webkit_dom_html_applet_element_set_width):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • DOM/DOMHTMLAppletElement.mm:

(-[DOMHTMLAppletElement align]):
(-[DOMHTMLAppletElement setAlign:]):
(-[DOMHTMLAppletElement alt]):
(-[DOMHTMLAppletElement setAlt:]):
(-[DOMHTMLAppletElement archive]):
(-[DOMHTMLAppletElement setArchive:]):
(-[DOMHTMLAppletElement code]):
(-[DOMHTMLAppletElement setCode:]):
(-[DOMHTMLAppletElement codeBase]):
(-[DOMHTMLAppletElement setCodeBase:]):
(-[DOMHTMLAppletElement height]):
(-[DOMHTMLAppletElement setHeight:]):
(-[DOMHTMLAppletElement hspace]):
(-[DOMHTMLAppletElement setHspace:]):
(-[DOMHTMLAppletElement name]):
(-[DOMHTMLAppletElement setName:]):
(-[DOMHTMLAppletElement object]):
(-[DOMHTMLAppletElement setObject:]):
(-[DOMHTMLAppletElement vspace]):
(-[DOMHTMLAppletElement setVspace:]):
(-[DOMHTMLAppletElement width]):
(-[DOMHTMLAppletElement setWidth:]):

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::redirectDataToPlugin):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebFrame.cpp:

LayoutTests:

  • dom/html/level2/html/HTMLAppletElement01-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement01.html: Removed.
  • dom/html/level2/html/HTMLAppletElement01.js: Removed.
  • dom/html/level2/html/HTMLAppletElement02-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement02.html: Removed.
  • dom/html/level2/html/HTMLAppletElement02.js: Removed.
  • dom/html/level2/html/HTMLAppletElement03-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement03.html: Removed.
  • dom/html/level2/html/HTMLAppletElement03.js: Removed.
  • dom/html/level2/html/HTMLAppletElement04-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement04.html: Removed.
  • dom/html/level2/html/HTMLAppletElement04.js: Removed.
  • dom/html/level2/html/HTMLAppletElement06-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement06.html: Removed.
  • dom/html/level2/html/HTMLAppletElement06.js: Removed.
  • dom/html/level2/html/HTMLAppletElement07-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement07.html: Removed.
  • dom/html/level2/html/HTMLAppletElement07.js: Removed.
  • dom/html/level2/html/HTMLAppletElement08-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement08.html: Removed.
  • dom/html/level2/html/HTMLAppletElement08.js: Removed.
  • dom/html/level2/html/HTMLAppletElement09-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement09.html: Removed.
  • dom/html/level2/html/HTMLAppletElement09.js: Removed.
  • dom/html/level2/html/HTMLAppletElement10-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement10.html: Removed.
  • dom/html/level2/html/HTMLAppletElement10.js: Removed.
  • dom/html/level2/html/HTMLDocument08.html: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement01-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement01.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement01.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement02-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement02.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement02.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement03-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement03.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement03.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement04-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement04.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement04.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement06-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement06.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement06.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement07-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement07.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement07.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement08-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement08.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement08.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement09-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement09.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement09.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement10-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement10.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement10.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLDocument08.xhtml: Removed.

Drop outdated tests.

  • fast/dom/HTMLDocument/document-special-properties-expected.txt:
  • fast/dom/Window/element-constructors-on-window-expected.txt:
  • fast/dom/Window/get-set-properties-expected.txt:
  • fast/dom/Window/get-set-properties.html:
  • fast/dom/Window/resources/window-properties.js:
  • fast/dom/Window/window-lookup-precedence-expected.txt:
  • fast/dom/Window/window-special-properties-expected.txt:
  • fast/dom/document-all-expected.txt:
  • fast/dom/document-all.html:
  • fast/dom/dom-constructors-expected.txt:
  • fast/dom/dom-constructors.html:
  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
  • fast/dom/html-collections-named-getter-expected.txt:
  • fast/dom/html-collections-named-getter.html:
  • fast/dom/htmlcollection-non-html-expected.txt:
  • fast/dom/htmlcollection-non-html.html:
  • fast/dom/plugin-attributes-enumeration-expected.txt:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/frames/sandboxed-iframe-plugins-expected.txt:
  • fast/frames/sandboxed-iframe-plugins.html:
  • fast/text/text-combine-crash-expected.txt:
  • http/tests/security/cross-frame-access-put-expected.txt:
  • platform/mac-wk2/fast/dom/Window/window-lookup-precedence-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:

Update / rebaseline existing tests to reflect behavior change.

  • platform/wk2/TestExpectations:

Drop outdated tests.

3:49 PM Changeset in webkit [269611] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Do not print master environment variables in build steps
https://bugs.webkit.org/show_bug.cgi?id=218711

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(TransferToS3.init): Set logEnviron to False for newer buildbot.
(ExtractTestResults.init): Ditto.

3:48 PM Changeset in webkit [269610] by Peng Liu
  • 2 edits in trunk/Source/WebKit

REGRESSION (r269557): ASSERTION FAILED: Completion handler should always be called under WebCore::HTMLMediaElement::exitFullscreen
https://bugs.webkit.org/show_bug.cgi?id=218722

Reviewed by Eric Carlson.

No new tests, covered by an existing test that is crashing on the bots.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

3:47 PM Changeset in webkit [269609] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Null dereference in CompositeEditCommand::splitTreeToNode() due to not checking for top of DOM tree
https://bugs.webkit.org/show_bug.cgi?id=218215

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-11-09
Reviewed by Ryosuke Niwa.

Source/WebCore:

Add a check for a non-existent parent node when splitting a tree, and fix up
a caller to not pass a node without a parent node.

Test: editing/inserting/insert-list-in-iframe-in-list.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::unlistifyParagraph):

LayoutTests:

Add layout test that catches crash during insertion of a list inside an iframe
(that itself is inside of a list).

  • editing/inserting/insert-list-in-iframe-in-list-expected.txt: Added.
  • editing/inserting/insert-list-in-iframe-in-list.html: Added.
3:40 PM Changeset in webkit [269608] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[JSC] Enable bytecode cache testing in stress tests for Linux
https://bugs.webkit.org/show_bug.cgi?id=218072

Patch by Xan López <Xan Lopez> on 2020-11-09
Reviewed by Yusuke Suzuki.

We only need to tweak how we define the temporary dir for the
bytecode cache in order for stress tests to support bytecode cache
testing on Linux.

This is skipped on Linux/MIPS for now, since the bots are already
slow enough and we have one blocker bug with incorrect parameter
quoting on some tests. See bug #218703.

  • Scripts/jsc-stress-test-helpers/bytecode-cache-test-helper.sh:

receive the temporary dir template as an argument. Also tweak the
script a bit so that it does not use arrays, that way it will work
in any POSIX shell.

  • Scripts/run-jsc-stress-tests: pass a different temporary dir

template for Darwin and Linux, since mktemp works differently
there.

3:27 PM Changeset in webkit [269607] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] media/video-buffering-allowed.html is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=217621

Unreviewed test gardening.

  • platform/mac/TestExpectationsRosetta:
3:11 PM Changeset in webkit [269606] by Wenson Hsieh
  • 10 edits in trunk/Source

Rename ImageBuffer::flushDisplayList to ImageBuffer::submitDisplayList
https://bugs.webkit.org/show_bug.cgi?id=218720

Reviewed by Tim Horton.

Source/WebCore:

Rename flushDisplayList to submitDisplayList, to better capture the fact that it's only responsible for
applying the contents of the given display list rather than performing a context flush, or applying and clearing
out the contents of the given display list.

No change in behavior.

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::submitDisplayList):
(WebCore::ImageBuffer::flushDisplayList): Deleted.

Source/WebKit:

See Source/WebCore/ChangeLog for more details.

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyDisplayList):
(WebKit::RemoteRenderingBackend::submitDisplayList):
(WebKit::RemoteRenderingBackend::flushDisplayList): Deleted.

Additionally rename flushDisplayList on RemoteRenderingBackend, since this IPC message doesn't actually
perform a context flush.

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::submitDisplayList):
(WebKit::RemoteRenderingBackendProxy::flushDisplayList): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
2:54 PM Changeset in webkit [269605] by Alan Bujtas
  • 39 edits
    1 add
    1 delete in trunk

Unreviewed, reverting r269603.

Needs Safari patch

Reverted changeset:

"Show legacy line layout visual coverage instead of "simple
line" layout."
https://bugs.webkit.org/show_bug.cgi?id=218695
https://trac.webkit.org/changeset/269603

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

[Mac] inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=218725

Unreviewed test gardening.

  • platform/mac/TestExpectationsRosetta:
2:28 PM Changeset in webkit [269603] by Alan Bujtas
  • 39 edits
    1 copy
    1 delete in trunk

Show legacy line layout visual coverage instead of "simple line" layout.
https://bugs.webkit.org/show_bug.cgi?id=218695

Reviewed by Antti Koivisto.

Source/WebCore:

Paint legacy line layout content with the debug shadow instead of the modern one (and use red instead of blue).

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::debugTextShadow): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::debugTextShadow):

  • rendering/InlineTextBox.h:

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetLegacyLineLayoutVisualCoverageEnabled):
(WKPreferencesGetLegacyLineLayoutVisualCoverageEnabled):
(WKPreferencesSetSimpleLineLayoutDebugBordersEnabled): Deleted.
(WKPreferencesGetSimpleLineLayoutDebugBordersEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _legacyLineLayoutVisualCoverageEnabled]):
(-[WKPreferences _setLegacyLineLayoutVisualCoverageEnabled:]):
(-[WKPreferences _simpleLineLayoutDebugBordersEnabled]): Deleted.
(-[WKPreferences _setSimpleLineLayoutDebugBordersEnabled:]): Deleted.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WebKitLegacy/mac:

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

(-[WebPreferences legacyLineLayoutVisualCoverageEnabled]):
(-[WebPreferences setLegacyLineLayoutVisualCoverageEnabled:]):
(-[WebPreferences simpleLineLayoutDebugBordersEnabled]): Deleted.
(-[WebPreferences setSimpleLineLayoutDebugBordersEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesDebug.yaml:

Tools:

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleLegacyLineLayoutVisualCoverageEnabled:]):
(-[SettingsController legacyLineLayoutVisualCoverageEnabled]):
(-[SettingsController toggleSimpleLineLayoutDebugBordersEnabled:]): Deleted.
(-[SettingsController simpleLineLayoutDebugBordersEnabled]): Deleted.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]):

LayoutTests:

  • fast/inline/simple-line-layout-16bit-content-expected-mismatch.html: Removed.
  • fast/inline/simple-line-layout-16bit-content.html:
  • fast/text/simple-line-layout-do-not-support-unicode-range-expected.html:
  • fast/text/simple-line-layout-do-not-support-unicode-range.html:
  • fast/text/simple-line-layout-line-box-contain-glyphs-expected.html:
  • fast/text/simple-line-layout-line-box-contain-glyphs.html:
  • fast/text/simple-line-layout-no-surrogate-pairs-expected.html:
  • fast/text/simple-line-layout-no-surrogate-pairs.html:
  • fast/text/simple-line-layout-simple-text-but-complex-font-path-expected.html:
  • fast/text/simple-line-layout-simple-text-but-complex-font-path.html:
  • fast/text/simple-line-layout-with-text-underline-position-expected.html:
  • fast/text/simple-line-layout-with-text-underline-position.html:
  • fast/text/simple-lines-float-expected.html:
  • fast/text/simple-lines-float.html:
  • fast/text/simple-lines-hover-expected.html:
  • fast/text/simple-lines-hover.html:
  • fast/text/simple-lines-multiple-renderers-expected.html:
  • fast/text/simple-lines-multiple-renderers.html:
2:27 PM Changeset in webkit [269602] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[webkitpy] When platform is GTK or WPE, make lint-test-expectations lint GLIB too
https://bugs.webkit.org/show_bug.cgi?id=218691

Reviewed by Carlos Alberto Lopez Perez.

In the test expectations hierarchy, both GTK and WPE share a common
root, GLIB. It's not possible to lint GLIB test expectations as it's
not a platform with a builder associated. Thus, make lint-test-expectations
lint GLIB test expectations when linting GLIB or WPE.

  • Scripts/webkitpy/layout_tests/lint_test_expectations.py:

(lint):

1:54 PM Changeset in webkit [269601] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

[LFC Display] Implement background bleed avoidance, and border-radius clipping of backgrounds
https://bugs.webkit.org/show_bug.cgi?id=218713

Reviewed by Zalan Bujtas.

Make BoxDecorationPainter into a class so it can hold references to the box, rounded rect
etc, and settle on a policy of passing PaintingContext as an argument to all the painting
functions.

Add code to compute the BackgroundBleedAvoidance policy, and implement the various policies
following rendering code.

  • display/css/DisplayBoxDecorationData.cpp:

(WebCore::Display::BorderEdge::obscuresBackgroundEdge const):
(WebCore::Display::BoxDecorationData::hasBorder const):
(WebCore::Display::BoxDecorationData::hasBorderRadius const):
(WebCore::Display::BoxDecorationData::borderObscuresBackground const):
(WebCore::Display::BoxDecorationData::borderObscuresBackgroundEdge const):

  • display/css/DisplayBoxDecorationData.h:

(WebCore::Display::borderWidths):

  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BorderPainter::BorderPainter):
(WebCore::Display::roundedRectWithIncludedRadii):
(WebCore::Display::roundedInsetBorderForRect):
(WebCore::Display::BorderPainter::drawBoxSideFromPath const):
(WebCore::Display::BorderPainter::clipBorderSidePolygon const):
(WebCore::Display::BorderPainter::drawLineForBoxSide const):
(WebCore::Display::BorderPainter::paintOneBorderSide const):
(WebCore::Display::BorderPainter::paintBorderSides const):
(WebCore::Display::BorderPainter::paintTranslucentBorderSides const):
(WebCore::Display::shrinkRectByOneDevicePixel):
(WebCore::Display::BorderPainter::borderInnerRectAdjustedForBleedAvoidance const):
(WebCore::Display::BorderPainter::paintBorders const):
(WebCore::Display::BoxDecorationPainter::paintBorders const):
(WebCore::Display::BoxDecorationPainter::paintFillLayer const):
(WebCore::Display::BoxDecorationPainter::BoxDecorationPainter):
(WebCore::Display::BoxDecorationPainter::computeBorderRect):
(WebCore::Display::BoxDecorationPainter::paintBackgroundImages const):
(WebCore::Display::BoxDecorationPainter::backgroundRoundedRectAdjustedForBleedAvoidance const):
(WebCore::Display::BoxDecorationPainter::paintBackground const):
(WebCore::Display::BoxDecorationPainter::determineBackgroundBleedAvoidance):
(WebCore::Display::BoxDecorationPainter::paintBackgroundAndBorders const):
(): Deleted.
(WebCore::Display::BorderPainter::roundedBorderForRect const): Deleted.
(WebCore::Display::BorderPainter::roundedInsetBorderForRect const): Deleted.
(WebCore::Display::BoxDecorationPainter::paintBorders): Deleted.
(WebCore::Display::paintFillLayer): Deleted.
(WebCore::Display::BoxDecorationPainter::paintBackgroundImages): Deleted.
(WebCore::Display::BoxDecorationPainter::paintBackground): Deleted.
(WebCore::Display::BoxDecorationPainter::paintBackgroundAndBorders): Deleted.

  • display/css/DisplayBoxDecorationPainter.h:

(WebCore::Display::BoxDecorationPainter::borderRoundedRect const):
(WebCore::Display::BoxDecorationPainter::includeLeftEdge const):
(WebCore::Display::BoxDecorationPainter::includeRightEdge const):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBoxDecorations):

  • display/css/DisplayStyle.cpp:

(WebCore::Display::Style::backgroundHasOpaqueTopLayer const):

  • display/css/DisplayStyle.h:
1:41 PM Changeset in webkit [269600] by Alan Bujtas
  • 62 edits in trunk

[LFC][Integration] Enable inline image support
https://bugs.webkit.org/show_bug.cgi?id=217874

Source/WebCore:

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationCoverage.cpp:

LayoutTests:

Combination of different issues:

  1. Do not retain the whitespace (new line) after the replaced content.
  2. Do not treat images+text as unbreakable content (neither FF nor Chrome does)
  3. Rounding differences.

Reviewed by Antti Koivisto.

1:28 PM Changeset in webkit [269599] by Fujii Hironori
  • 4 edits in trunk

[TextureMapper] backdrop-filter should use the identity transform to render the root layer
https://bugs.webkit.org/show_bug.cgi?id=218699

Reviewed by Don Olmstead.

Source/WebCore:

Even thouth CSS reflections mirror the content, backdrop-filter in
the reflection doesn't. It sees through the background.
css3/filters/backdrop/backdrop-filter-with-reflection.html is the
test case.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
Removed TextureMapperPaintOptions::isReplica.

LayoutTests:

  • platform/glib/TestExpectations: Unmarked

css3/filters/backdrop/{backdrop-filter-with-reflection-add-backdrop.html,
backdrop-filter-with-reflection-value-change.html,backdrop-filter-with-reflection.html}

1:23 PM Changeset in webkit [269598] by Chris Dumez
  • 154 edits
    5 copies
    207 adds
    8 deletes in trunk/LayoutTests

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

Reviewed by Sam Weinig.

Resync web-platform-tests/html tests from upstream 7a287c9e26fbc12.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.
1:18 PM Changeset in webkit [269597] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add total counts to sampling profiler dump
https://bugs.webkit.org/show_bug.cgi?id=218666

Reviewed by Yusuke Suzuki.

This is nice for computing the approximate percentage of total time in a function.

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):

12:53 PM Changeset in webkit [269596] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Use workersrc instead of slavesrc for new Buildbot
https://bugs.webkit.org/show_bug.cgi?id=218717

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(UploadBuiltProduct.init): Used workersrc instead of slavesrc.
(UploadTestResults.init): Ditto.
(Run32bitJSCTests.start): Drive-by fix to use workerEnvironment instead of slaveEnvironment.

12:25 PM Changeset in webkit [269595] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] remove unused imports from loadConfig.py
https://bugs.webkit.org/show_bug.cgi?id=218718

Reviewed by Dewei Zhu.

  • CISupport/build-webkit-org/loadConfig.py:
12:21 PM Changeset in webkit [269594] by Aditya Keerthi
  • 6 edits in trunk/LayoutTests

Remove experimental: and internal: prefixes from recently added tests
https://bugs.webkit.org/show_bug.cgi?id=218658

Reviewed by Devin Rousso.

The tests below were written before r269360. Since the experimental:
and internal: prefixes are no longer needed, they should be removed.

  • contact-picker/contacts-select-after-dismissing-picker.html:
  • contact-picker/contacts-select-while-presenting-picker.html:
  • contact-picker/contacts-select.html:
  • fast/scrolling/mac/overflow-scrollbars-toggle-dark-mode-expected.html:
  • fast/scrolling/mac/overflow-scrollbars-toggle-dark-mode.html:
12:20 PM Changeset in webkit [269593] by pvollan@apple.com
  • 21 edits
    6 adds in trunk

[macOS] System sounds should be played in the UI process
https://bugs.webkit.org/show_bug.cgi?id=218405
Source/WebCore:

<rdar://problem/70898846>

Reviewed by Darin Adler.

In preparation of blocking the system sound server in the WebContent process, system sounds should be played in the UI process.
This patch creates a system sound manager, which delegates the sound request if a delegate is present, otherwise the function
PAL::systemBeep will be called.

API test: WebKit.SystemBeep

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/Editor.cpp:

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

  • editing/EditorCommand.cpp:

(WebCore::executeSelectToMark):
(WebCore::executeSwapWithMark):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::takeFindStringFromSelection):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::beep):

  • platform/SystemSoundDelegate.h: Added.

(WebCore::SystemSoundDelegate::~SystemSoundDelegate):
(WebCore::SystemSoundDelegate::systemBeep):

  • platform/SystemSoundManager.cpp: Added.

(WebCore::SystemSoundManager::singleton):
(WebCore::SystemSoundManager::setSystemSoundDelegate):
(WebCore::SystemSoundManager::systemBeep):

  • platform/SystemSoundManager.h: Added.
  • platform/audio/StereoPanner.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::systemBeep):

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

Source/WebKit:

<rdar://problem/70898846>

Reviewed by Darin Adler.

Subclass SystemSoundDelegate, which will forward system sound requests to the UI process.

  • Sources.txt:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::systemBeep):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebSystemSoundDelegate.cpp: Added.

(WebKit::WebSystemSoundDelegate::systemBeep):

  • WebProcess/WebSystemSoundDelegate.h: Added.
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Reviewed by Darin Adler.

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

(TEST):

12:19 PM Changeset in webkit [269592] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add testcase for r269538
https://bugs.webkit.org/show_bug.cgi?id=218502

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-09
Reviewed by Simon Fraser.

I forgot to add a testcase in r269538.

  • fast/css/marquee-with-layer-display-inline-crash-expected.txt: Added.
  • fast/css/marquee-with-layer-display-inline-crash.html: Added.
12:16 PM Changeset in webkit [269591] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Clean up some code after inline display list refactoring
https://bugs.webkit.org/show_bug.cgi?id=218714

Reviewed by Tim Horton.

See below for more details.

  • platform/graphics/displaylists/DisplayListItems.h:

Remove a couple of extraneous encode() and decode() method declarations.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

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

Add a missing ++ for this counter variable.

12:10 PM Changeset in webkit [269590] by keith_miller@apple.com
  • 1 edit
    2 adds in trunk/JSTests

Add microbenchmark for FinalizationRegistry basic usage
https://bugs.webkit.org/show_bug.cgi?id=218667

Reviewed by Yusuke Suzuki.

The no unregister token benchmark runs in ~40ms and the unregister
token in ~25ms on my Mac Pro. Interestingly, it also shows that
using an unregister token make FinalizationRegistry ~4x slower
(total time is longer because the number of objects is 10x bigger
in the test). This is because we have to store all the data in a
HashMap<UnregisterToken, JSObject> rather than a Vector<JSObject>.

  • microbenchmarks/finalizationRegistryCleanup.js: Added.

(async callback):

  • microbenchmarks/finalizationRegistryCleanupWithUnregisterToken.js: Added.

(async callback):

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

[Cocoa] Diagnostic service sandbox violation loading any webpage
https://bugs.webkit.org/show_bug.cgi?id=218710
<rdar://problem/71124931>

Reviewed by Alexey Proskuryakov.

Loading any Web page will cause a diagnostic service mach-lookup sandbox violation. Consume the extension to
the service as early as possible in WebProcess::platformInitializeWebProcess, since there are code paths in
this method which will try to access the diagnostic service.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

11:11 AM Changeset in webkit [269588] by Fujii Hironori
  • 4 edits
    2 adds in trunk

[TextureMapper] The top and left sides of drop-shadow are clipped
https://bugs.webkit.org/show_bug.cgi?id=218647

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapperLayer::computeOverlapRegions incorrectly calculated
the local bounding rect for top and left of outsets.

The drop-shadow was incorrectly blended with the content.

Test: compositing/filters/drop-shadow.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions): Stopped
using std::max for the left and top of outsets. Stopped taking the
unite with unfilteredTargetRect because outsets are always
positive.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

Fixed sourceOver().

LayoutTests:

  • compositing/filters/drop-shadow-expected.html: Added.
  • compositing/filters/drop-shadow.html: Added.
11:08 AM Changeset in webkit [269587] by Devin Rousso
  • 21 edits
    2 adds in trunk

autofocus of text input should not select text
https://bugs.webkit.org/show_bug.cgi?id=218585
<rdar://problem/60130704>

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: fast/forms/input-text-autofocus.html

  • dom/Document.h:
  • history/CachedPage.cpp:

(WebCore::CachedPage::restore):

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateFocusAppearance):
(WebCore::HTMLInputElement::setDefaultSelectionAfterFocus):
(WebCore::HTMLInputElement::runPostTypeUpdateTasks):
(WebCore::HTMLInputElement::didAttachRenderers):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::updateFocusAppearance):

  • html/InputType.cpp:

(WebCore::InputType::accessKeyAction):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):
(WebCore::FocusController::advanceFocusDirectionallyInContainer):
Slightly rework SelectionRestorationMode to replace SetDefault with two new values:

  • PlaceCaretAtStart puts the caret at the start, regardless of any cached selection
  • SelectAll selects all text, regardless of any cached selection (existing behavior)

In order to preserve existing behavior, the default Restore will have the same effect as
SelectAll if there is no cached selection (and is renamed to RestoreOrSelectAll as such).

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

(WebCore::Element::focus):

  • html/HTMLLabelElement.h:
  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::focus):

  • html/HTMLLegendElement.h:
  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::focus):
Replace the bool restorePreviousSelection with SelectionRestorationMode since that's
what it's eventually used for anyways. This also allows for more flexibility in behavior,
such as callers using the new SelectionRestorationMode values.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::didAttachRenderers):
Change to PlaceCaretAtStart to match other browsers.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::restoreSelectionInFocusedEditableElement):
Slightly rework SelectionRestorationMode to replace SetDefault with two new values:

  • PlaceCaretAtStart puts the caret at the start, regardless of any cached selection
  • SelectAll selects all text, regardless of any cached selection (existing behavior)

In order to preserve existing behavior, the default Restore will have the same effect as
SelectAll if there is no cached selection (and is renamed to RestoreOrSelectAll as such).

LayoutTests:

  • fast/forms/input-text-autofocus.html: Added.
  • fast/forms/input-text-autofocus-expected.txt: Added.
  • fast/forms/input-first-letter-edit.html:
  • fast/forms/input-first-letter-edit-expected.html:
10:53 AM Changeset in webkit [269586] by commit-queue@webkit.org
  • 2 edits in trunk

Enable llint asm on aarch64 when USE(64KB_PAGE_BLOCK) is enabled
https://bugs.webkit.org/show_bug.cgi?id=218613

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-09
Reviewed by Carlos Alberto Lopez Perez.

Normally we fall back to cloop when JIT is not supported. But on aarch64, llint asm is well-
supported, so it is safe to use that here. This will only happen on aarch64, and only when
USE(64KB_PAGE_BLOCK) is enabled, which should probably only be used by RHEL and SUSE.
Everyone else should get the JIT.

  • Source/cmake/WebKitFeatures.cmake:
10:30 AM Changeset in webkit [269585] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[LFC] Initialize border style correctly
https://bugs.webkit.org/show_bug.cgi?id=218712

Reviewed by Zalan Bujtas.

Tested by fast/events/drag-image-with-border-image.html with image integration enabled.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedBorder const):

BorderValue::boxModelWidth() doesn't take non-color decorations into account.
Calling style.borderLeftWidth() and pals does the right thing.

  • rendering/style/BorderValue.h:

(WebCore::BorderValue::style const):
(WebCore::BorderValue::boxModelWidth const): Deleted.

Remove this unneeded helper.

10:00 AM Changeset in webkit [269584] by pvollan@apple.com
  • 13 edits
    3 copies
    4 adds in trunk

[macOS] Set preference for overridden languages in the WebContent process after entering the sandbox.
https://bugs.webkit.org/show_bug.cgi?id=218097
Source/WebKit:

<rdar://problem/70586545>

Reviewed by Alexey Proskuryakov.

Currently, the preference for overridden languages in the WebContent process is set before entering the sandbox,
which leaves behind an open connection to opendirectoryd. This preference should be set after entering the
sandbox to avoid this. This patch sets the preference after the initialization function has been executed.

API test: WebKit.OverrideAppleLanguagesPreference

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::setAppleLanguagesPreference):
(WebKit::XPCServiceEventHandler):
(WebKit::XPCServiceMain):

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

Source/WTF:

Reviewed by Alexey Proskuryakov.

Disable CFPrefs direct mode for older versions of macOS. In practice, it was already disabled since a mach connection to cfprefsd
was established before entering the sandbox on older versions on macOS, but that is fixed in this patch.

  • wtf/PlatformEnableCocoa.h:

Tools:

Reviewed by Alexey Proskuryakov.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/AccessibilityReduceMotion.mm:
  • TestWebKitAPI/Tests/WebKit/EnableAccessibility.mm:
  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm: Added.

(TEST):

  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:

LayoutTests:

Reviewed by Alexey Proskuryakov.

Add test for sandbox access to cfprefsd.daemon, and mark cfprefsd tests as failing for Mojave and Catalina, since CFPrefs
direct mode is not enabled on those versions of macOS.

  • fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/mac/sandbox-mach-lookup.html:
  • platform/mac-catalina/fast/sandbox: Added.
  • platform/mac-catalina/fast/sandbox/mac: Added.
  • platform/mac-catalina/fast/sandbox/mac/sandbox-mach-lookup-expected.txt: Added.
  • platform/mac-mojave/fast/sandbox: Added.
  • platform/mac-mojave/fast/sandbox/mac: Added.
  • platform/mac-mojave/fast/sandbox/mac/sandbox-mach-lookup-expected.txt: Added.
9:55 AM Changeset in webkit [269583] by Chris Lord
  • 3 edits in trunk/Source/WebCore

[GTK] kinetic scroll speed should be cumulative
https://bugs.webkit.org/show_bug.cgi?id=203914

Reviewed by Carlos Garcia Campos.

Accumulate velocity in the same direction with ScrollAnimationKinetic.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::stop):
(WebCore::ScrollAnimationKinetic::start):
(WebCore::ScrollAnimationKinetic::animationTimerFired):
(WebCore::ScrollAnimationKinetic::deltaToNextFrame):

  • platform/ScrollAnimationKinetic.h:
9:26 AM Changeset in webkit [269582] by Chris Dumez
  • 4 edits in trunk

Look at parents when event bubbles for input element activation behavior
https://bugs.webkit.org/show_bug.cgi?id=218660

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now fully passing.

  • web-platform-tests/dom/events/Event-dispatch-click-expected.txt:

Source/WebCore:

When a click event is dispatched at a node that is not an HTMLInputElement, and if the
event bubbles, we should look up the tree to see if there is an HTMLInputElement that
we should trigger activation behavior for. Prevously, we were failing to do this.

The new behavior is consistent with Blink.

No new tests, rebaselined existing test.

  • dom/EventDispatcher.cpp:

(WebCore::findInputElementInEventPath):
(WebCore::EventDispatcher::dispatchEvent):

8:41 AM Changeset in webkit [269581] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

[build.webkit.org] Add python 3 support - part 3
https://bugs.webkit.org/show_bug.cgi?id=218706

Reviewed by Jonathan Bedard.

  • CISupport/Shared/transfer-archive-to-s3: Updated print method to be both python 2 and 3 compatible.
  • CISupport/built-product-archive: Ditto.
  • CISupport/delete-stale-build-files: Ditto.
  • CISupport/build-webkit-org/loadConfig.py: Removed unnecessary filter method.
  • CISupport/ews-build/loadConfig.py: Ditto.
2:30 AM Changeset in webkit [269580] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix the build warning below since r269525.
warning: control reaches end of non-void function [-Wreturn-type]

No new tests, no new behaviors.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
2:20 AM Changeset in webkit [269579] by Chris Lord
  • 9 edits in trunk/Source/WebCore

[GTK][WPE] Scrolling with mouse wheel doesn't work on iframes with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=214179

Reviewed by Žan Doberšek.

Implement ScrollingTree::scrollingNodeForPoint in
ScrollingTreeNicosia. This fixes overflow and iframe scrolling when
async scrolling is enabled on WPE and GTK ports.

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeNicosia.cpp:

(WebCore::collectDescendantLayersAtPoint):
(WebCore::ScrollingTreeNicosia::scrollingNodeForPoint):

  • page/scrolling/nicosia/ScrollingTreeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::flushState):
(Nicosia::CompositionLayer::accessPending):

2:19 AM Changeset in webkit [269578] by Chris Lord
  • 4 edits in trunk

REGRESSION(r269503): [GTK][WPE] >200 tests are failing
https://bugs.webkit.org/show_bug.cgi?id=218654
<rdar://problem/71116949>

Reviewed by Žan Doberšek.

Source/WebCore:

Replace the NativeImagePtr calls with ImageBuffer::draw. With the
cairo implementation, in the cases where it's possible, it amounts to
the same thing, but the draw implementation also handles cases that
the previous patch didn't.

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawImageBuffer):

LayoutTests:

Mark 5 canvas tests as passing.

  • platform/glib/TestExpectations:
12:20 AM Changeset in webkit [269577] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit

[WPE] ScrollGestureController should only handle complete touch interactions
https://bugs.webkit.org/show_bug.cgi?id=218329

Reviewed by Carlos Garcia Campos.

ScrollGestureController's purpose is to handle otherwise-unhandled
touch events and translate those into a scrolling gesture.

Until now, it was possible for a touch motion event to trigger that
gesture even when the corresponding touch down event was not handled
by the ScrollGestureController, e.g. it was not produced due to the
touch interaction being started somewhere else, or the Web content
actually handled that event.

A flag is added to ScrollGestureController to track that an unhandled
touch down event was confronted, before allowing subsequent unhandled
touch motion events to trigger the scrolling gesture when conditions
are met. The flag is reset upon the touch up event.

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

  • UIProcess/API/wpe/ScrollGestureController.h:

Nov 8, 2020:

9:31 PM Changeset in webkit [269576] by ysuzuki@apple.com
  • 8 edits
    1 add in trunk

[JSC] Add TimeZone range cache over ICU TimeZone API
https://bugs.webkit.org/show_bug.cgi?id=218681

Reviewed by Ross Kirsling.

JSTests:

  • complex.yaml:
  • complex/timezone-range-cache-with-dst.js: Added.

(shouldBe):
(throw.new.Error):

Source/JavaScriptCore:

icu::TimeZone is more accurate and faster than localtime_r. But still, it is slower than returning cached data!
We saw 10% regression in JetStream2/date-format-xparb-SP with icu::TimeZone switching.
In this patch, we put one-depth timezone cache back over icu::TimeZone API, and recover the performance.
In addition, new version of timezone cache includes "start" side extension (while old one only extends "end" of the range).
The test covers all cases in the added cache.

  • runtime/JSDateMath.cpp:

(JSC::DateCache::calculateLocalTimeOffset):
(JSC::DateCache::localTimeOffset):
(JSC::DateCache::gregorianDateTimeToMS):
(JSC::DateCache::msToGregorianDateTime):
(JSC::DateCache::parseDate):
(JSC::DateCache::reset):
(JSC::localTimeOffset): Deleted.

  • runtime/JSDateMath.h:

(JSC::DateCache::timeZoneCache):

  • runtime/VM.h:

(JSC::LocalTimeOffsetCache::LocalTimeOffsetCache): Deleted.
(JSC::LocalTimeOffsetCache::reset): Deleted.

Source/WTF:

  • wtf/DateMath.h:
9:04 PM Changeset in webkit [269575] by Lauro Moura
  • 8 edits in trunk/LayoutTests

[GLIB] Rebaseline and gardening

Unreviewed test gardening.

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: r269477
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: r269477
  • platform/wpe/TestExpectations: Add bug for imported/blink/fast/forms/textarea-placeholder-visibility-3.html
  • platform/wpe/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt: r269477
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: r269477
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: r269477
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt: r269439-r269459
9:02 PM Changeset in webkit [269574] by ysuzuki@apple.com
  • 12 edits in trunk

[JSC] Support @@species in ArrayBuffer / SharedArrayBuffer slice
https://bugs.webkit.org/show_bug.cgi?id=218697

Reviewed by Ross Kirsling.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch adds support for @@species in ArrayBuffer/SharedArrayBuffer.prototype.slice.
We leverage the mechanism similar to Array's @@species handling: adding fast path with watchpoint.
When we found that some of critical properties (e.g. %Prototype%.constructor, %Constructor%[@@species])
are modified, watchpoint is fired and we go to the slow path. Until that, we use fast path that is
basically the same to the code before this patch.

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::slice const):
(JSC::ArrayBuffer::sliceWithClampedIndex const):
(JSC::ArrayBuffer::sliceImpl const): Deleted.

  • runtime/ArrayBuffer.h:
  • runtime/ArrayBufferSharingMode.h:
  • runtime/ArrayPrototype.cpp:

(JSC::speciesWatchpointIsValid):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::speciesWatchpointIsValid):
(JSC::arrayBufferSlice):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::tryInstallSpeciesWatchpoint):
(JSC::JSGlobalObject::tryInstallArraySpeciesWatchpoint):
(JSC::JSGlobalObject::tryInstallArrayBufferSpeciesWatchpoint):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::arrayBufferSpeciesWatchpointSet):
(JSC::JSGlobalObject::arrayBufferPrototype const):
(JSC::JSGlobalObject::arrayBufferStructure const):
(JSC::JSGlobalObject::arrayBufferConstructor const):

Source/WTF:

Remove ENABLE(SHARED_ARRAY_BUFFER) flag. We use Options::useSharedArrayBuffer() runtime flag instead.

  • wtf/PlatformEnable.h:
8:26 PM Changeset in webkit [269573] by Lauro Moura
  • 4 edits in trunk

[GTK] REGRESSION(r267250) API test /webkit/WebKitWebView/usermedia-enumeratedevices-permission-check is crashing
https://bugs.webkit.org/show_bug.cgi?id=216727

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Coverered by existing tests.

In some cases, like in TestWebKitAPI, a message can arrive to the
GeolocationProvider and it would try to access a WebGeolocationManager
that could already had been deleted.

  • UIProcess/API/glib/WebKitGeolocationManager.cpp:

(webkitGeolocationManagerDispose): Added. Removes the provider.
(webkit_geolocation_manager_class_init): Register dispose callback.

Tools:

  • TestWebKitAPI/glib/TestExpectations.json: Remove expectations
8:20 PM Changeset in webkit [269572] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening canvas failures while patch is reviewed

Unreviewed test gardening.

  • platform/glib/TestExpectations:
12:05 PM Changeset in webkit [269571] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][Integration] Cleanup LayoutIntegration::Line interface
https://bugs.webkit.org/show_bug.cgi?id=218690

Reviewed by Daniel Bates and Antti Koivisto.

LayoutIntegration::Line has the following set of geometries:

Line rect and line box size:

Line is always as tall as the line box is. However they may differ in width.
While line box encloses all the inline level boxes on the line horizontally,
the line itself may be shorter (and trigger horizontal overflow).

Enclosing content rect:

It encloses all inline level boxes both vertically and horizontally. In certain cases (see line-height property)
the line (and the line box) is not as tall as the inline level boxes on the line.

Scrollable overflow rect:

It's mainly the line box (encloses the inline level boxes horizontally) with some end padding adjustment for the caret (see legacy line layout).

Ink overflow rect:

Regular ink overflow e.g. stroke, letter spacing.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLines const):

11:51 AM Changeset in webkit [269570] by Fujii Hironori
  • 4 edits
    2 adds in trunk

TextureMapperLayer::computeOverlapRegions: Accumulate nested replica transform matrices recursively
https://bugs.webkit.org/show_bug.cgi?id=218364

Reviewed by Don Olmstead.

Source/WebCore:

Transformed nested reflection layers were wrongly clipped because
computeOverlapRegions applied replica transform matrices
incorrectly.

Test: compositing/reflections/nested-reflection-opacity2.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::resolveOverlaps):
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • compositing/reflections/nested-reflection-opacity2-expected.html: Added.
  • compositing/reflections/nested-reflection-opacity2.html: Added.
11:49 AM Changeset in webkit [269569] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[GraphicsLayerTextureMapper] reflection masks aren't applied
https://bugs.webkit.org/show_bug.cgi?id=218429

Reviewed by Don Olmstead.

The backing store of the mask layer of replica layers aren't
updated at all since r178111.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers):
Use updateBackingStoreIncludingSubLayers for the replica layer to
update backing stores recursively instead of updating only one
layer by using updateBackingStoreIfNeeded.

11:41 AM Changeset in webkit [269568] by Darin Adler
  • 15 edits
    2 adds in trunk

Remove another function that implicitly uses the composed tree (documentOrder on nodes and boundary points)
https://bugs.webkit.org/show_bug.cgi?id=218673

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: fast/dom/treeOrderBoundaryPoint.html

  • accessibility/AXObjectCache.cpp:

(WebCore::characterOffsetsInOrder): Use treeOrder<ComposedTree>.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::misspellingRange const): Ditto.
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const): Ditto.

  • dom/BoundaryPoint.h: Removed documentOrder, added treeOrderForTesting.
  • dom/Node.cpp: Updated comment referring to documentOrder.
  • dom/Position.cpp:

(WebCore::documentOrder): Use treeOrder<ComposedTree>.

  • dom/SimpleRange.cpp:

(WebCore::treeOrderForTesting): Added.
(WebCore::documentOrder): Deleted.
(WebCore::compareByComposedTreeOrder): Renamed from compareByDocumentOrder and
use treeOrder<ComposedTree>.
(WebCore::unionRange): Use compareByComposedTreeOrder.
(WebCore::intersection): Ditto.

  • dom/SimpleRange.h: Removed documentOrder. Also removed some repeated function

and function template declarations that were left in here by accident.

  • editing/TextIterator.cpp:

(WebCore::characterCount): Use treeOrder<ComposedTree>.

  • testing/Internals.cpp:

(WebCore::Internals::treeOrderBoundaryPoints): Added.

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

Tools:

  • TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp: Removed BoundaryPointOffsetZero and

BoundaryPointOffsets tests, both replaced by a internals-based test.

LayoutTests:

  • fast/dom/treeOrderBoundaryPoint-expected.txt: Added.
  • fast/dom/treeOrderBoundaryPoint.html: Added.
12:31 AM Changeset in webkit [269567] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add testcase for r269537
https://bugs.webkit.org/show_bug.cgi?id=218499

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-08
Reviewed by Ryosuke Niwa.

I forgot to add a testcase in r269537.

  • fast/overflow/line-clamp-crash-expected.txt: Added.
  • fast/overflow/line-clamp-crash.html: Added.

Nov 7, 2020:

2:20 PM Changeset in webkit [269566] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix warning related to unsigned >=0 ASSERT
https://bugs.webkit.org/show_bug.cgi?id=218682

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-07
Reviewed by Fujii Hironori.

Source/WebCore/rendering/RenderText.cpp:592:19: warning: comparison of unsigned expression in ‘>= 0’ is always true [-Wtype-limits]

  • rendering/RenderText.cpp:

(WebCore::createVisiblePositionAfterAdjustingOffsetForBiDi):

2:16 PM Changeset in webkit [269565] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix GTK debug build
https://bugs.webkit.org/show_bug.cgi?id=218683

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-07
Reviewed by Fujii Hironori.

Commit r269435 forgot to account for Frame* -> WeakPtr<Frame>
change in this ASSERT.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::finishedLoading):

2:13 PM Changeset in webkit [269564] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

Clean up some logic in RemoteImageBuffer and RemoteRenderingBackend
https://bugs.webkit.org/show_bug.cgi?id=218689

Reviewed by Tim Horton.

Move the implementation of decodeItem out of RemoteImageBuffer, and into RemoteRenderingBackend. This
allows us to avoid static_cast-ing image buffers to their unaccelerated or accelerated versions when setting
the display list's item buffer client in the GPU process.

No change in behavior.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::decodeAndCreate): Deleted.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::applyDisplayList):

Also, remove a couple of unnecessary WebCore:: namespace prefixes while we're here.

(WebKit::RemoteRenderingBackend::decodeItem):

Move decodeItem into the rendering backend. This also has the added bonus of letting us put the method
definition in the implementation file instead of a header (i.e. RemoteRenderingBackend.cpp).

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::decodeAndCreate):

1:50 PM Changeset in webkit [269563] by Simon Fraser
  • 10 edits
    1 copy
    1 add in trunk/Source/WebCore

[LFC Display] Implement CSS border painting
https://bugs.webkit.org/show_bug.cgi?id=218685

Reviewed by Zalan Bujtas.

Add Display::BoxDecorationPainter() which paints borders and backgrounds for the given box,
and implement border drawing.

Future patches will add support for BackgroundBleedAvoidance and background clipping for
border-radius.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • display/css/DisplayBoxDecorationData.cpp:

(WebCore::Display::BorderEdge::BorderEdge):
(WebCore::Display::BorderEdge::obscuresBackground const):
(WebCore::Display::calculateBorderEdges):
(WebCore::Display::adjacentSidesForSide):

  • display/css/DisplayBoxDecorationData.h:

(WebCore::Display::BorderEdge::width const):
(WebCore::Display::BorderEdge::style const):
(WebCore::Display::BorderEdge::color const):
(WebCore::Display::BorderEdge::isTransparent const):
(WebCore::Display::BorderEdge::isPresent const):
(WebCore::Display::BorderEdge::hasVisibleColorAndStyle const):
(WebCore::Display::BorderEdge::shouldRender const):
(WebCore::Display::BorderEdge::presentButInvisible const):
(WebCore::Display::BorderEdge::widthForPainting const):
(WebCore::Display::BorderEdge::innerWidth const):
(WebCore::Display::BorderEdge::outerWidth const):
(WebCore::Display::BoxDecorationData::setBackgroundImageGeometry):
(WebCore::Display::BoxDecorationData::borderEdges const):
(WebCore::Display::BoxDecorationData::setBorderEdges):
(WebCore::Display::BoxDecorationData::borderRadii const):
(WebCore::Display::BoxDecorationData::setBorderRadii):
(WebCore::Display::BoxDecorationData::hasBorderImage const):
(WebCore::Display::BoxDecorationData::roundedBorderRect const): Deleted.
(WebCore::Display::BoxDecorationData::setRoundedBorderRect): Deleted.

  • display/css/DisplayBoxDecorationPainter.cpp: Added.

(WebCore::Display::BorderPainter::BorderPainter):
(WebCore::Display::BorderPainter::edgesShareColor):
(WebCore::Display::BorderPainter::borderStyleFillsBorderArea):
(WebCore::Display::BorderPainter::borderStyleHasInnerDetail):
(WebCore::Display::BorderPainter::styleRequiresClipPolygon):
(WebCore::Display::BorderPainter::borderStyleIsDottedOrDashed):
(WebCore::Display::BorderPainter::borderWillArcInnerEdge):
(WebCore::Display::BorderPainter::borderStyleHasUnmatchedColorsAtCorner):
(WebCore::Display::BorderPainter::colorsMatchAtCorner const):
(WebCore::Display::BorderPainter::colorNeedsAntiAliasAtCorner const):
(WebCore::Display::BorderPainter::calculateBorderStyleColor):
(WebCore::Display::BorderPainter::willBeOverdrawn const):
(WebCore::Display::BorderPainter::borderStylesRequireMitre):
(WebCore::Display::BorderPainter::calculateAdjustedInnerBorder):
(WebCore::Display::BorderPainter::joinRequiresMitre const):
(WebCore::Display::roundedRectWithIncludedRadii):
(WebCore::Display::BorderPainter::roundedBorderForRect const):
(WebCore::Display::BorderPainter::roundedInsetBorderForRect const):
(WebCore::Display::BorderPainter::drawBoxSideFromPath const):
(WebCore::Display::BorderPainter::clipBorderSidePolygon const):
(WebCore::Display::BorderPainter::drawLineForBoxSide const):
(WebCore::Display::BorderPainter::paintOneBorderSide const):
(WebCore::Display::BorderPainter::paintBorderSides const):
(WebCore::Display::BorderPainter::paintTranslucentBorderSides const):
(WebCore::Display::BorderPainter::paintBorders const):
(WebCore::Display::BoxDecorationPainter::paintBorders):
(WebCore::Display::paintFillLayer):
(WebCore::Display::BoxDecorationPainter::paintBackgroundImages):
(WebCore::Display::BoxDecorationPainter::paintBackground):
(WebCore::Display::BoxDecorationPainter::paintBackgroundAndBorders):

  • display/css/DisplayBoxDecorationPainter.h: Copied from Source/WebCore/display/css/DisplayBoxDecorationData.cpp.
  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::constructBoxDecorationData const):
(WebCore::Display::BoxFactory::setupBoxModelBox const):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBoxDecorations):
(WebCore::Display::BoxPainter::paintFillLayer): Deleted.
(WebCore::Display::BoxPainter::paintBackgroundImages): Deleted.

  • display/css/DisplayStyle.cpp:

(WebCore::Display::Style::Style):
(WebCore::Display::Style::hasVisibleBorder const): Deleted.

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::borderLeft const): Deleted.
(WebCore::Display::Style::borderRight const): Deleted.
(WebCore::Display::Style::borderTop const): Deleted.
(WebCore::Display::Style::borderBottom const): Deleted.

  • platform/graphics/FloatRoundedRect.h:
1:49 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
11:34 AM Changeset in webkit [269562] by Alan Bujtas
  • 4 edits
    2 adds in trunk/Source/WebCore

[LFC][Integration] Introduce InlineContentBuilder
https://bugs.webkit.org/show_bug.cgi?id=218684

Reviewed by Antti Koivisto.

Move the display run and line construction to this new class. This is in preparation for
expanding the construction coverage to support features like bidirectional content handling.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/inlineformatting/InlineContentBreaker.cpp:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp: Added.

(WebCore::LayoutIntegration::lineOverflowWidth):
(WebCore::LayoutIntegration::InlineContentBuilder::InlineContentBuilder):
(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLines const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.h: Added.
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):
(WebCore::LayoutIntegration::lineOverflowWidth): Deleted.

10:15 AM Changeset in webkit [269561] by Simon Fraser
  • 4 edits
    2 adds in trunk

Source/WebCore:
REGRESSION (r268476): Sometimes zooming does not work on purpleair.com/map
https://bugs.webkit.org/show_bug.cgi?id=218680
<rdar://problem/70418612>

Reviewed by Zalan Bujtas.

Loading purpleair.com/map and quickly panning then zooming would often fail to zoom the map,
and rubberband instead. This happened because the composited layer containing the WebGL
canvas would switch to into tiled mode, and that would fail to set the event region on the
new platform layer.

The fix is to just add the 'EventRegionChanged' flag to the list of properties that need to
get updated after a tiled layer switch.

Test: fast/scrolling/mac/wheel-event-listener-region-tiled-layer-switch.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::determineWheelEventProcessing):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::changeLayerTypeTo):

LayoutTests:
REGRESSION (r268476): Sometimes zooming does not worki on purpleair.com/map
https://bugs.webkit.org/show_bug.cgi?id=218680

Reviewed by Zalan Bujtas.

  • fast/scrolling/mac/wheel-event-listener-region-tiled-layer-switch-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-tiled-layer-switch.html: Added.

Nov 6, 2020:

10:55 PM Changeset in webkit [269560] by commit-queue@webkit.org
  • 3 edits in trunk/Tools
REGRESSION (r269435): [iOS Debug] ASSERTION FAILED: !m_impl
Thread::mayBeGCThread() m_impl->wasConstructedOnMainThread() == isMainThread()

https://bugs.webkit.org/show_bug.cgi?id=218662

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-06
Reviewed by Chris Dumez.

We were missing a few WebThreadLock calls, which changes the return value of isMainThread() in UIWebView.

  • TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLNoCrashOnOtherThreadAccess.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLPrepareDisplayOnWebThread.mm:

(TestWebKitAPI::TEST):

9:38 PM Changeset in webkit [269559] by Simon Fraser
  • 13 edits in trunk/Source/WebCore

A programmatic scroll to a new location should stop rubberbanding
https://bugs.webkit.org/show_bug.cgi?id=218672

Reviewed by Tim Horton.

This is a better version of the fix in r269373. That fix attempted to stop a rubberband if there
was a programmatic scroll that moved you away from the edge where any active rubberband was happening.
However, the code ran too late; by the time ScrollController::scrollPositionChanged() is called,
the position has already changed, but more importantly the requested scroll position had
already been clamped between min and max scroll position, where the behavior of
maximumScrollPosition() is affected by whether the rubberbanding is active (see ScrollingTreeFrameScrollingNodeMac::maximumScrollPosition()
and its use of totalContentsSizeForRubberBand()).

The result of this was that the active rubberband triggered clamping of the requested scroll position
before we got a chance to stop the rubberband, breaking some programmatic scrolls on netflix.com.

Fix by plumbing through willDoProgrammaticScroll() which stops the rubberband before maximumScrollPosition()
gets a chance to clamp the position.

Will be tested after one additional required patch to come.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):
(WebCore::ScrollingTreeScrollingNode::isRubberBanding const): Deleted.

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

(WebCore::ScrollingTreeFrameScrollingNodeMac::willDoProgrammaticScroll):
(WebCore::ScrollingTreeFrameScrollingNodeMac::currentScrollPositionChanged):

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

(WebCore::ScrollingTreeOverflowScrollingNodeMac::willDoProgrammaticScroll):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::currentScrollPositionChanged):

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

(WebCore::ScrollingTreeScrollingNodeDelegateMac::willDoProgrammaticScroll):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollPositionIsNotRubberbandingEdge const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::currentScrollPositionChanged):

  • platform/RectEdges.h:

(WebCore::operator<<):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::notifyPositionChanged):

  • platform/cocoa/ScrollController.h:

(WebCore::ScrollController::rubberBandingEdges const):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::scrollPositionChanged):
(WebCore::ScrollController::stopRubberbanding):

9:34 PM Changeset in webkit [269558] by Simon Fraser
  • 3 edits
    2 adds in trunk

Programmatic scrolls need updated scrolling geometry
https://bugs.webkit.org/show_bug.cgi?id=218676

Reviewed by Tim Horton.

Source/WebCore:

Part of rdar://problem/69599531: Scrolling on netflix.com sometimes jumps to the top.

A programmatic scroll can happen right after content changes affect the scrolled content size,
and need to be committed right away to avoid the scrolling thread continuing to process events
or run rubberbanding based on stale state.

So when we get requestScrollPositionUpdate(), update the scrolling node geometry and
immediately commit the scrolling tree.

Test: fast/scrolling/mac/programmatic-scroll-overrides-rubberband.html

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):

LayoutTests:

  • fast/scrolling/mac/programmatic-scroll-overrides-rubberband-expected.txt: Added.
  • fast/scrolling/mac/programmatic-scroll-overrides-rubberband.html: Added.
9:23 PM Changeset in webkit [269557] by Peng Liu
  • 29 edits in trunk/Source

PiP return to element full screen is not smooth on some websites
https://bugs.webkit.org/show_bug.cgi?id=218419

Reviewed by Jer Noble.

Source/WebCore:

In r265562, we added the support that a video in picture-in-picture can return to
element fullscreen directly if the fullscreen API is supported. The basic idea of
the implementation is to request the element to enter fullscreen when the video
needs to exit picture-in-picture, and start exiting picture-in-picture after the
element fullscreen transition is completed.

On the iOS port, the entering element fullscreen transition needs to be done in
500 ms. Otherwise, AVKit will start the exiting picture-in-picture animation and
notify VideoFullscreenInterfaceAVKit about the progress before the element
fullscreen implementation has done the job. When that happens, the exiting
picture-in-picture animation will be incorrect and we have to use mechanisms to
protect the state of VideoFullscreenInterfaceAVKit. Unfortunately, on some websites,
the entering element fullscreen transition does take longer than than 500 ms due
to complex CSS style updates.

In this patch, when a video in picture-in-picture needs to return to element
fullscreen, it will return to a temporary fullscreen state (video fullscreen)
with a smooth animation implemented by AVKit. The video will continue playing
in the temporary fullscreen state while the element fullscreen transition is
happening in the background which is invisible to users. After the element
fullscreen transition is done, VideoFullscreenInterfaceAVKit exits the temporary
fullscreen state and returns to standby. Users won't notice the temporary
fullscreen state because media controls are hidden in that state.

This patch also fixes issues found in stress tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen):
For exitVideoFullscreenToModeWithoutAnimation(), we should not set
m_changingVideoFullscreenMode to true, because there won't be confirmation
to reset m_changingVideoFullscreenMode to false.
(WebCore::HTMLMediaElement::setVideoFullscreenStandby):
When the exit fullscreen request is rejected, we should not set
m_videoFullscreenStandby to false.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::webkitSetPresentationMode):
Only protect too fast setPresentationMode() calls from JS code.
(WebCore::HTMLVideoElement::setPresentationMode):
(WebCore::HTMLVideoElement::didEnterFullscreenOrPictureInPicture):
(WebCore::HTMLVideoElement::didExitFullscreenOrPictureInPicture):
(WebCore::HTMLVideoElement::setVideoFullscreenFrame):
Rename m_isEnteringPictureInPicture to m_enteringPictureInPicture
and m_isExitingPictureInPicture to m_exitingPictureInPicture.

  • html/HTMLVideoElement.h: Ditto.
  • page/ChromeClient.h:

(WebCore::ChromeClient::exitVideoFullscreenForVideoElement):
Add a completion handler parameter so that the caller can be notified
that the request is rejected.

  • platform/cocoa/VideoFullscreenChangeObserver.h:

Remove an unused function fullscreenWillReturnToInline().

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModelClient::prepareToExitPictureInPicture): Deleted.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:

Function exitFullscreen() now returns a boolean value indicating the request
is accepted or rejected.
Add a function preparedToReturnToStandby(), which is used to notify
VideoFullscreenInterfaceAVKit that the video is ready to return to standby.
Add a parameter shouldNotifyModel to setMode() and clearMode().
shouldNotifyModel is true when a request to enter/exit picture-in-picture
is from AVKit.
Remove unused m_stopPictureInPictureTimer and the related function.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit):
Remove unused m_stopPictureInPictureTimer.
(VideoFullscreenInterfaceAVKit::exitFullscreen):
We don't need to check whether m_watchdogTimer is active before stopping it.
When a video is entering picture-in-picture, we should reject the request to
exit fullscreen.
(VideoFullscreenInterfaceAVKit::cleanupFullscreen): Remove unused code.
(VideoFullscreenInterfaceAVKit::invalidate): Fix an issue in stress tests.
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStop):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
When a video is entering picture-in-picture from standby, we may need to return
to element fullscreen in the future. So we may need to return to the video
fullscreen state implemented by AVKit.
Also, we should delay the didEnterPictureInPicture notification in doEnterFullscreen()
until VideoFullscreenInterfaceAVKit completely enters picture-in-picture.
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture): A minor clean-up.
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture): A minor clean-up.
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
Notify the observer that a video has exited picture-in-picture. If the video needs to
return to element fullscreen, the video is actually in the temporary fullscreen state.
Also, move didExitPictureInPicture() to cleanupFullscreen().
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
Minor clean-up and disable picture-in-picture support temporarily. Explained in
WebKit/ChangeLog.
(VideoFullscreenInterfaceAVKit::setHasVideoContentLayer):
When a video is entering standby state, we need to call returnToStandby() if
m_returningToStandby is true.
(VideoFullscreenInterfaceAVKit::doSetup): Remove unused code.
(VideoFullscreenInterfaceAVKit::preparedToReturnToStandby):
Return to standby after the element fullscreen transition is completed.
(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
Move m_videoFullscreenModel->didEnterPictureInPicture() from didStartPictureInPicture()
to this function.
(VideoFullscreenInterfaceAVKit::doExitFullscreen): Minor clean-up.
(VideoFullscreenInterfaceAVKit::exitFullscreenHandler):
(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):
Hide the media controls provided by AVKit when the video is in the temporary fullscreen state.
(VideoFullscreenInterfaceAVKit::returnToStandby):
Call didSetupFullscreen() to return to standby.
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::stopPictureInPictureTimerFired): Deleted.
(VideoFullscreenInterfaceAVKit::setReadyToStopPictureInPicture): Deleted.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::fullscreenMayReturnToInline):
(VideoFullscreenControllerContext::fullscreenWillReturnToInline): Deleted.

  • platform/mac/VideoFullscreenInterfaceMac.h:
  • platform/mac/VideoFullscreenInterfaceMac.mm:

(WebCore::VideoFullscreenInterfaceMac::setMode):
(WebCore::VideoFullscreenInterfaceMac::exitFullscreen):

Source/WebKit:

In r265562, VideoFullscreenInterfaceAVKit uses fullscreenMayReturnToInline()
to request the observer (WKFullScreenWindowController) to enter element fullscreen
before exiting picture-in-picture, and calls fullscreenWillReturnToInline() to
proceed returning to inline or element fullscreen after WKFullScreenWindowController
is ready.

In this patch, VideoFullscreenInterfaceAVKit will directly enter a temporary
video fullscreen from picture-in-picture, so the preparation step (entering element
fullscreen) is not needed.

Some important points regarding edge cases:
1) A video enters picture-in-picture and exits picture-in-picture immediately
before WKFullScreenWindowController is notified to exit element fullscreen.
In this case, WKFullScreenWindowController will do nothing when it is notified
that the video has exited picture-in-picture. It will directly tell
VideoFullscreenInterfaceAVKit to enter standby.

2) A video exits picture-in-picture when WKFullScreenWindowController is exiting
element fullscreen but not complete yet. In this case, WKFullScreenWindowController
needs to hold the enter element fullscreen request and exits element fullscreen
first before entering element fullscreen.

3) The ancestor element of the video element exits fullscreen and asks the video
element to exit standby (in web process) while the video is entering picture-in-picture
(in UI process). In this case, VideoFullscreenInterfaceAVKit (in UI process) should
ignore the request to exit standby and tell the web process the request is rejected.

4) A user may try to enter picture-in-picture when the video is exiting picture-in-picture
and returning to element fullscreen. In this case, VideoFullscreenInterfaceAVKit
(in UI process) should temporarily disable the picture-in-picture support.

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

Remove the message EnterFullscreen for the iOS port because the UI process can enter
fullscreen/picture-in-picture directly.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::exitFullscreen):
(WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline):
We need to call m_page->fullscreenMayReturnToInline() in this function after
removing fullscreenWillReturnToInline().
(WebKit::VideoFullscreenManagerProxy::didSetupFullscreen):
For the iOS port, we should enter fullscreen directly.
(WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen):
(WebKit::VideoFullscreenManagerProxy::fullscreenMayReturnToInline):
(WebKit::VideoFullscreenModelContext::fullscreenWillReturnToInline): Deleted.
(WebKit::VideoFullscreenManagerProxy::fullscreenWillReturnToInline): Deleted.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController requestEnterFullScreen]):
(-[WKFullScreenWindowController exitFullScreen]):
(-[WKFullScreenWindowController _completedExitFullScreen]):
(-[WKFullScreenWindowController didEnterPictureInPicture]):
(-[WKFullScreenWindowController didExitPictureInPicture]):
(-[WKFullScreenWindowController _exitFullscreenImmediately]):
We should force to exit fullscreen because the current exiting fullscreen process
might be stuck.
(-[WKFullScreenWindowController prepareToExitPictureInPicture]): Deleted.

  • UIProcess/mac/WKFullScreenWindowController.mm:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::exitVideoFullscreenForVideoElement):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/cocoa/VideoFullscreenManager.h:

(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

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

(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):
The request to exit fullscreen (standby) may be rejected.
(WebKit::VideoFullscreenManager::didSetupFullscreen):
Only the macOS port needs to implement this function.
(WebKit::VideoFullscreenManager::didEnterFullscreen):
(WebKit::VideoFullscreenManager::didExitFullscreen):
(WebKit::VideoFullscreenManager::fullscreenMayReturnToInline):
(WebKit::VideoFullscreenManager::fullscreenWillReturnToInline): Deleted.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient::exitVideoFullscreenForVideoElement):

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::exitVideoFullscreenForVideoElement):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::exitVideoFullscreenForVideoElement):

  • WebCoreSupport/WebChromeClient.h:
7:53 PM Changeset in webkit [269556] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Remove localBounds and globalBounds methods from display list items that are not drawing items
https://bugs.webkit.org/show_bug.cgi?id=218675

Reviewed by Tim Horton and Devin Rousso.

In r269525, I refactored display list items to no longer derive from base classes (i.e. DisplayList::Item and
DisplayList::DrawingItem). In doing so, I ended up adding the localBounds and globalBounds methods
everywhere, since these methods are called from within the templated DisplayList::Recorder::append method
if the given type is a drawing item (that is, the static isDrawingItem flag is set).

However, for non-drawing items such as state change items, FlushContext, and MetaCommandSwitchTo, having
these methods makes no sense. We can fix this by leveraging constexpr if to only update item extents for
display list item types that are drawing items.

This allows us to remove these two methods from all display list items that are not drawing items.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::Save::localBounds const): Deleted.
(WebCore::DisplayList::Save::globalBounds const): Deleted.
(WebCore::DisplayList::Restore::localBounds const): Deleted.
(WebCore::DisplayList::Restore::globalBounds const): Deleted.
(WebCore::DisplayList::Translate::localBounds const): Deleted.
(WebCore::DisplayList::Translate::globalBounds const): Deleted.
(WebCore::DisplayList::Rotate::localBounds const): Deleted.
(WebCore::DisplayList::Rotate::globalBounds const): Deleted.
(WebCore::DisplayList::Scale::localBounds const): Deleted.
(WebCore::DisplayList::Scale::globalBounds const): Deleted.
(WebCore::DisplayList::SetCTM::localBounds const): Deleted.
(WebCore::DisplayList::SetCTM::globalBounds const): Deleted.
(WebCore::DisplayList::ConcatenateCTM::localBounds const): Deleted.
(WebCore::DisplayList::ConcatenateCTM::globalBounds const): Deleted.
(WebCore::DisplayList::SetInlineFillGradient::localBounds const): Deleted.
(WebCore::DisplayList::SetInlineFillGradient::globalBounds const): Deleted.
(WebCore::DisplayList::SetInlineFillColor::localBounds const): Deleted.
(WebCore::DisplayList::SetInlineFillColor::globalBounds const): Deleted.
(WebCore::DisplayList::SetInlineStrokeColor::localBounds const): Deleted.
(WebCore::DisplayList::SetInlineStrokeColor::globalBounds const): Deleted.
(WebCore::DisplayList::SetStrokeThickness::localBounds const): Deleted.
(WebCore::DisplayList::SetStrokeThickness::globalBounds const): Deleted.
(WebCore::DisplayList::SetState::localBounds const): Deleted.
(WebCore::DisplayList::SetState::globalBounds const): Deleted.
(WebCore::DisplayList::SetLineCap::localBounds const): Deleted.
(WebCore::DisplayList::SetLineCap::globalBounds const): Deleted.
(WebCore::DisplayList::SetLineDash::localBounds const): Deleted.
(WebCore::DisplayList::SetLineDash::globalBounds const): Deleted.
(WebCore::DisplayList::SetLineJoin::localBounds const): Deleted.
(WebCore::DisplayList::SetLineJoin::globalBounds const): Deleted.
(WebCore::DisplayList::SetMiterLimit::localBounds const): Deleted.
(WebCore::DisplayList::SetMiterLimit::globalBounds const): Deleted.
(WebCore::DisplayList::ClearShadow::localBounds const): Deleted.
(WebCore::DisplayList::ClearShadow::globalBounds const): Deleted.
(WebCore::DisplayList::Clip::localBounds const): Deleted.
(WebCore::DisplayList::Clip::globalBounds const): Deleted.
(WebCore::DisplayList::ClipOut::localBounds const): Deleted.
(WebCore::DisplayList::ClipOut::globalBounds const): Deleted.
(WebCore::DisplayList::ClipOutToPath::localBounds const): Deleted.
(WebCore::DisplayList::ClipOutToPath::globalBounds const): Deleted.
(WebCore::DisplayList::ClipPath::localBounds const): Deleted.
(WebCore::DisplayList::ClipPath::globalBounds const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::localBounds const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::globalBounds const): Deleted.
(WebCore::DisplayList::ApplyStrokePattern::localBounds const): Deleted.
(WebCore::DisplayList::ApplyStrokePattern::globalBounds const): Deleted.
(WebCore::DisplayList::ApplyFillPattern::localBounds const): Deleted.
(WebCore::DisplayList::ApplyFillPattern::globalBounds const): Deleted.
(WebCore::DisplayList::ApplyDeviceScaleFactor::localBounds const): Deleted.
(WebCore::DisplayList::ApplyDeviceScaleFactor::globalBounds const): Deleted.
(WebCore::DisplayList::FlushContext::localBounds const): Deleted.
(WebCore::DisplayList::FlushContext::globalBounds const): Deleted.
(WebCore::DisplayList::MetaCommandSwitchTo::localBounds const): Deleted.
(WebCore::DisplayList::MetaCommandSwitchTo::globalBounds const): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::appendWithoutUpdatingExtents):
(WebCore::DisplayList::Recorder::append):

6:09 PM Changeset in webkit [269555] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Speed up ews status bubble loading speed
https://bugs.webkit.org/show_bug.cgi?id=214821

Reviewed by Jonathan Bedard.

  • CISupport/ews-app/ews/views/statusbubble.py:

(StatusBubble): This significantly reduces the calculations done to estimate the position in queue. The position is queue
is calculated based on patches sent to buildbot in last DAYS_TO_CHECK days, and results received from buildbot. However, in
case any queue has a huge backlog (of more than 1 day), the position in queue might not be accurate. Slight trade-off for
speed vs accuracy.

5:38 PM Changeset in webkit [269554] by jiewen_tan@apple.com
  • 4 edits
    1 add in trunk/Source/WebKit

[WebAuthn] [iOS] WebAuthn process doesn't start on iOS devices
https://bugs.webkit.org/show_bug.cgi?id=218479
<rdar://problem/70560399>

Reviewed by Brent Fulgham.

One of the reasons is missing the iOS sandbox profile. Therefore, this patch adds one.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb: Added.

Copied from the GPU process. Will strip it down once the process is fully functional.

  • Scripts/process-entitlements.sh:

Adds some missing entitlements.

  • UIProcess/WebAuthentication/WebAuthnProcessProxy.h:

Deals with CompletionHandler assertion.

  • WebKit.xcodeproj/project.pbxproj:

Adds some plumbings for the sandbox profile.

5:11 PM Changeset in webkit [269553] by Andres Gonzalez
  • 5 edits in trunk

Fix for LayoutTests/accessibility/Mac/accesskey.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=218669

Reviewed by Chris Fleizach.

Source/WebCore:

Test: LayoutTests/accessibility/mac/accesskey.html.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
String properties need to be isolated-copied to be used on AX secondary thread.

LayoutTests:

Re-wrote this test to work in both isolated tree mode on and off.

  • accessibility/mac/accesskey-expected.txt:
  • accessibility/mac/accesskey.html:
5:10 PM Changeset in webkit [269552] by commit-queue@webkit.org
  • 36 edits
    4 moves in trunk

[WASM-References] Rename anyref to externref
https://bugs.webkit.org/show_bug.cgi?id=218331

Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-11-06
Reviewed by Keith Miller.

JSTests:

  • wasm/Builder.js:

(const._isValidValue):

  • wasm/references/externref_globals.js: Renamed from JSTests/wasm/references/anyref_globals.js.
  • wasm/references/externref_modules.js: Renamed from JSTests/wasm/references/anyref_modules.js.
  • wasm/references/externref_table.js: Renamed from JSTests/wasm/references/anyref_table.js.
  • wasm/references/externref_table_import.js: Renamed from JSTests/wasm/references/anyref_table_import.js.

(makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl.makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):
(fullGC.assert.eq):
(doSet):
(assert.throws):

  • wasm/references/func_ref.js:
  • wasm/references/is_null.js:
  • wasm/references/multitable.js:

(assert.throws.1.exports.set_tbl0):
(assert.throws):
(string_appeared_here.vm.isMemoryLimited.tableInsanity):

  • wasm/references/table_misc.js:

(TableSize.0.End.End.WebAssembly):
(GetLocal.0.GetLocal.1.TableGrow.0.End.End.WebAssembly):

  • wasm/references/validation.js:

(assert.throws):

  • wasm/stress/immutable-globals.js:

(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.assert.eq):

  • wasm/stress/mutable-globals.js:

(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.instance.exports.setI32AsI64):

  • wasm/wasm.json:

LayoutTests/imported/w3c:

  • web-platform-tests/wasm/jsapi/wasm-module-builder.js:

(WasmModuleBuilder.prototype.addTable):
(WasmModuleBuilder.prototype.toBuffer):

Source/JavaScriptCore:

  • bytecode/BytecodeDumper.cpp:

(JSC::Wasm::BytecodeDumper::formatConstant const):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::gExternref):
(JSC::Wasm::AirIRGenerator::tmpForType):
(JSC::Wasm::AirIRGenerator::emitCCall):
(JSC::Wasm::AirIRGenerator::moveOpForValueType):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addLocal):
(JSC::Wasm::AirIRGenerator::addConstant):
(JSC::Wasm::AirIRGenerator::setGlobal):
(JSC::Wasm::AirIRGenerator::gAnyref): Deleted.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addLocal):
(JSC::Wasm::B3IRGenerator::addTableGet):
(JSC::Wasm::B3IRGenerator::setGlobal):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::WasmCallingConvention::marshallLocation const):
(JSC::Wasm::JSCallingConvention::marshallLocation const):

  • wasm/WasmFormat.h:

(JSC::Wasm::isValueType):
(JSC::Wasm::isSubtype):
(JSC::Wasm::TableInformation::wasmType const):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmGlobal.cpp:

(JSC::Wasm::Global::get const):
(JSC::Wasm::Global::set):
(JSC::Wasm::Global::visitAggregate):

  • wasm/WasmGlobal.h:
  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::Instance):
(JSC::Wasm::Instance::setGlobal):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::jsNullConstant):
(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addLocal):
(JSC::Wasm::LLIntGenerator::setGlobal):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
(JSC::Wasm::setWasmTableElement):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseTableHelper):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::tryCreate):
(JSC::Wasm::Table::set):

  • wasm/WasmTable.h:

(JSC::Wasm::Table::isExternrefTable const):
(JSC::Wasm::Table::isAnyrefTable const): Deleted.

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::boxWasmResult):

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::set):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/wasm.json:

LayoutTests:

  • workers/wasm-references/test.js:
4:39 PM Changeset in webkit [269551] by Wenson Hsieh
  • 12 edits in trunk

Add new display list item types in preparation for webkit.org/b/218426
https://bugs.webkit.org/show_bug.cgi?id=218588

Reviewed by Simon Fraser.

Source/WebCore:

Introduce these new item types. See below for more details.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):

Let ItemBuffer automatically append "switch to command buffer" item whenever it runs out of space in its
current writable buffer, and either allocates a new buffer or calls into the client to grab a new buffer.

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

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

(WebCore::DisplayList::FlushContext::apply const):
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::MetaCommandSwitchTo::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::FlushContext::FlushContext):
(WebCore::DisplayList::FlushContext::identifier const):
(WebCore::DisplayList::FlushContext::localBounds const):
(WebCore::DisplayList::FlushContext::globalBounds const):

Add FlushContext, which will indicate to the client that it should flush its backing graphics context. The
only data in this item is a DisplayList::FlushIdentifier, which will be used by the display list client to
coordinate flush timing.

(WebCore::DisplayList::MetaCommandSwitchTo::MetaCommandSwitchTo):
(WebCore::DisplayList::MetaCommandSwitchTo::identifier const):
(WebCore::DisplayList::MetaCommandSwitchTo::localBounds const):
(WebCore::DisplayList::MetaCommandSwitchTo::globalBounds const):

Add an item to represent switching to a new item buffer. This is automatically appended by the display list
itself when it runs out of space on the current writable buffer, and will allow display list clients (in
particular, the remote rendering backend in the GPU process) to seamlessly continue reading display list items
when all item data in a display list item buffer has been exhausted.

Also, add a FIXME here for pulling MetaCommandSwitchTo out of the set of display list items. We plan on
tackling this as a part of generalizing concurrent display list architecture in a way that can be used for
serializing WebGL commands as well.

Source/WebKit:

Simply treat these new items as no-ops for the time being. See Source/WebCore/ChangeLog for more details.

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

Tools:

Adjust an API test. See other ChangeLogs for more detail.

  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

4:31 PM Changeset in webkit [269550] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add IOKIt message filtering
https://bugs.webkit.org/show_bug.cgi?id=218657
<rdar://problem/71118545>

Reviewed by Brent Fulgham.

Like on iOS, the WebContent process on macOS should have IOKit message filtering. This patch also allows reading
of some IOKIt properties, which was reported when running layout tests.

No new tests, covered by existing tests.

  • WebProcess/com.apple.WebProcess.sb.in:
4:21 PM Changeset in webkit [269549] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Text gets clobbered when assigning to input.defaultValue
https://bugs.webkit.org/show_bug.cgi?id=217156

Disabling fast/forms/defaultValue-clobbering.html since it fails on
iOS

Patch by Joey Arhar <jarhar@chromium.org> on 2020-11-06
Reviewed by Darin Adler.

  • platform/ios/TestExpectations:
4:09 PM Changeset in webkit [269548] by Wenson Hsieh
  • 11 edits in trunk/Source

Add a display list item to represent stroking a single line
https://bugs.webkit.org/show_bug.cgi?id=218589

Reviewed by Tim Horton.

Source/WebCore:

Add support for the new display list item, and append it when we know we're stroking a Path that consists of a
single line.

No change in behavior.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo const):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

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

(WebCore::DisplayList::StrokeLine::localBounds const):
(WebCore::DisplayList::StrokeLine::apply const):
(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::StrokeLine::StrokeLine):
(WebCore::DisplayList::StrokeLine::start const):
(WebCore::DisplayList::StrokeLine::end const):
(WebCore::DisplayList::StrokeLine::globalBounds const):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::strokePath):

Source/WebKit:

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
3:39 PM Changeset in webkit [269547] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: default breakpoint action should be evaluate
https://bugs.webkit.org/show_bug.cgi?id=218674

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/BreakpointPopover.js:

(WI.BreakpointPopover.prototype._handleAddActionButtonClick):

3:28 PM Changeset in webkit [269546] by Chris Dumez
  • 12 edits
    6 adds in trunk

Event targets should be cleared after dispatch if target pointed to a shadow tree
https://bugs.webkit.org/show_bug.cgi?id=218638

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/dom/events/relatedTarget.window-expected.txt:
  • web-platform-tests/shadow-dom/event-post-dispatch-expected.txt:

Source/WebCore:

Event target & relatedTarget should be cleared after dispatch if target pointed to a shadow
tree:

Tests: fast/events/shadow-tree-resetTargets-after-move-in.html

fast/events/shadow-tree-resetTargets-after-move-out.html
fast/events/shadow-tree-resetTargets.html

  • dom/Event.h:

(WebCore::Event::setRelatedTarget):

  • dom/EventContext.cpp:

(WebCore::MouseOrFocusEventContext::handleLocalEvents const):

  • dom/EventContext.h:

(WebCore::EventContext::relatedTarget const):

  • dom/EventDispatcher.cpp:

(WebCore::isInShadowTree):
(WebCore::EventDispatcher::dispatchEvent):

  • dom/FocusEvent.h:
  • dom/MouseEvent.h:

LayoutTests:

  • fast/events/shadow-tree-resetTargets-after-move-in-expected.txt: Added.
  • fast/events/shadow-tree-resetTargets-after-move-in.html: Added.
  • fast/events/shadow-tree-resetTargets-after-move-out-expected.txt: Added.
  • fast/events/shadow-tree-resetTargets-after-move-out.html: Added.
  • fast/events/shadow-tree-resetTargets-expected.txt: Added.
  • fast/events/shadow-tree-resetTargets.html: Added.

Extend layout test coverage.

  • fast/shadow-dom/event-path-with-window.html:

Update the test to expect the the event.target is null after dispatching. Note that this test
was failing in both Firefox and Chrome before this test change, and is now passing with these
engine after the test change.

3:27 PM Changeset in webkit [269545] by weinig@apple.com
  • 17 edits
    1 delete in trunk/Source

Further progress towards merging Settings.yaml into WebPreferences.yaml
https://bugs.webkit.org/show_bug.cgi?id=218663

Reviewed by Tim Horton.

Source/WebCore:

  • Scripts/GenerateSettings.rb:

Change GenerateSettings.rb to take the list of templates in as arguments rather than
hard coding it. This matches GeneratePreferences and will make it easier to switch over.

  • DerivedSources.make:

Update call to GenerateSettings.rb to pass templates and adopt static pattern list to
make it very clear what needs to be generated.

  • WebCoreMacros.cmake:

Update call to GenerateSettings.rb to pass templates

  • page/SettingsDefaultValues.h: Removed.
  • Scripts/SettingsTemplates/Settings.cpp.erb:
  • WebCore.xcodeproj/project.pbxproj:

Remove SettingsDefaultValues.h inlining defaults directly in the yaml files.

  • page/Settings.yaml:

Add defaults directly in the definition rather than relying on compiled constants.

  • page/SettingsBase.cpp:

(WebCore::SettingsBase::initializeDefaultFontFamilies):
(WebCore::SettingsBase::defaultMinimumZoomFontSize): Deleted.
(WebCore::SettingsBase::defaultTextAutosizingEnabled): Deleted.
(WebCore::SettingsBase::defaultDownloadableBinaryFontsEnabled): Deleted.
(WebCore::SettingsBase::defaultContentChangeObserverEnabled): Deleted.
(WebCore::SettingsBase::defaultMediaContentTypesRequiringHardwareSupport): Deleted.

  • page/SettingsBase.h:
  • page/cocoa/SettingsBaseCocoa.mm:

(WebCore::SettingsBase::defaultTextAutosizingEnabled): Deleted.
(WebCore::SettingsBase::defaultMediaContentTypesRequiringHardwareSupport): Deleted.
Remove defaults that are now inlined into the yaml files. Move some that have to
remain to more appropriate / private locations.

  • platform/graphics/BitmapImage.h:

Update comment to indicate the the default is now defined in the settings definition.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
Replace call to WebCore::Settings::defaultMediaContentTypesRequiringHardwareSupport() which always returned
the empty string with a literal empty string. This was the only caller so the function is really no needed.

Source/WebKitLegacy/ios:

  • Misc/WebUIKitSupport.mm:

(WebKitGetMinimumZoomFontSize):
Use generated default value macro as the one in WebCore has now been removed.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

Replace some use of WebCore constants with the inlined values of those constants
as this was the only user and it is clearer for the values to be here too.

2:55 PM Changeset in webkit [269544] by Alan Coon
  • 1 copy in tags/Safari-610.3.7.1.2

Tag Safari-610.3.7.1.2.

2:05 PM Changeset in webkit [269543] by Alan Coon
  • 1 copy in tags/Safari-610.3.7.0.2

Tag Safari-610.3.7.0.2.

2:01 PM Changeset in webkit [269542] by Wenson Hsieh
  • 2 edits
    1 add in trunk/Tools

[Concurrent display lists] Add API tests for WebCore::DisplayList::DisplayList and related classes
https://bugs.webkit.org/show_bug.cgi?id=218425

Reviewed by Tim Horton.

Add two new API tests:

  • One that covers basic display list functionality (i.e. appending items, checking whether a display list is

empty, clearing a display list and iterating over items).

  • Another that exercises the item buffer client hooks to provide data for writing and encode and decode out-

of-line display list items. This test uses toy Reader/Writer classes that know how to "encode" and "decode"
StrokePath items by storing and reading 8-byte indices into a shared Vector<StrokePath>.

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

(TestWebKitAPI::createGradient):
(TestWebKitAPI::createComplexPath):
(TestWebKitAPI::TEST):

1:59 PM Changeset in webkit [269541] by Alan Coon
  • 1 copy in tags/Safari-610.2.11.51.10

Tag Safari-610.2.11.51.10.

1:59 PM Changeset in webkit [269540] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[macOS] Align left edge of presented calendar with left edge of date inputs
https://bugs.webkit.org/show_bug.cgi?id=218668

Reviewed by Tim Horton.

When a date input is activated, a calendar is presented by adding an
NSWindow containing an NSDatePicker to the screen. The frame of the
window is set to ensure proper alignment with the date input. However,
since the window's hasShadow is set to true, AppKit draws a thin border
and shadow around the window's contentView. This results in left border
of the window being drawn further out than the left border of the input
itself. If the hasShadow property is set to false, the issue is no longer
observed, and the calendar aligns with the input. However, this is not an
acceptable solution, since we lose the border and the shadow.

To ensure alignment between the border of the calendar view and the border
of the date input, we can inset the edges of the view. Note that the inset
is not applied along the y-axis, to avoid a gap between the bottom of the
date input and the top of the calendar view.

  • UIProcess/mac/WebDateTimePickerMac.mm:

(-[WKDateTimePickerBackdropView drawRect:]):

1:58 PM Changeset in webkit [269539] by Alan Coon
  • 8 edits in branches/safari-610.2.11.51-branch/Source

Versioning.

WebKit-7610.2.11.51.10

1:55 PM Changeset in webkit [269538] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Only restore saved layer scroll position for RenderBox
https://bugs.webkit.org/show_bug.cgi?id=218502

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-06
Reviewed by Simon Fraser.

The layer scroll position is only used by RenderBox
renderers, so when restoring the saved scroll position
only restore for RenderBox renderers.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):

1:45 PM Changeset in webkit [269537] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Null check anchorBox
https://bugs.webkit.org/show_bug.cgi?id=218499

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-06
Reviewed by Zalan Bujtas.

Null check anchorBox before calling the renderer method on it.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

1:34 PM Changeset in webkit [269536] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Use workerEnvironment instead of slaveEnvironment for new Buildbot
https://bugs.webkit.org/show_bug.cgi?id=218656

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:
1:07 PM Changeset in webkit [269535] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Empty text runs can't be split any further.
https://bugs.webkit.org/show_bug.cgi?id=218506

Reviewed by David Kilzer and Ryosuke Niwa.

This patch ensures that when we can't fit an empty text run on the line (available space is negative) we don't
try to split it even when the style says so.

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::fixedPitchWidth):
(WebCore::Layout::TextUtil::split):

1:05 PM Changeset in webkit [269534] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix build with different unified source arrangement.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
12:32 PM Changeset in webkit [269533] by Wenson Hsieh
  • 12 edits
    1 delete in trunk/Source

Move DisplayListFlushIdentifier into WebCore as DisplayList::FlushIdentifier
https://bugs.webkit.org/show_bug.cgi?id=218586

Reviewed by Simon Fraser.

Source/WebCore:

Add DisplayList::FlushIdentifier. See WebKit for more ChangeLogs.

  • platform/graphics/displaylists/DisplayList.h:

Source/WebKit:

In preparation for adding a display list item to represent flushing the graphics context, move WebKit's
DisplayListFlushIdentifier to the DisplayList namespace in WebCore, and rename it to
DisplayList::FlushIdentifier.

No change in behavior.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::flushDisplayListWasCommitted):
(WebKit::RemoteRenderingBackend::flushDisplayListAndCommit):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Scripts/webkit/messages.py:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/DisplayListFlushIdentifier.h: Removed.
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::commitFlushDisplayList):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::flushDisplayListAndCommit):
(WebKit::RemoteRenderingBackendProxy::flushDisplayListWasCommitted):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
12:29 PM Changeset in webkit [269532] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Web Inspector: use weak collections for holding event listeners
https://bugs.webkit.org/show_bug.cgi?id=196956

Patch by Devin Rousso <Devin Rousso> on 2020-11-06
Reviewed by Joseph Pecoraro.

  • inspector/unit-tests/heap-snapshot-collection-event.html:

Followup from r269359 which replaced the string literal "HeapSnapshot.CollectionEvent"
with a defined WI.HeapSnapshotWorkerProxy.Event.Collection value.

12:23 PM Changeset in webkit [269531] by ysuzuki@apple.com
  • 57 edits
    1 add in trunk

Re-enable SharedArrayBuffer for JSC shell and Testers
https://bugs.webkit.org/show_bug.cgi?id=212069

Reviewed by Keith Miller.

JSTests:

Update tests to align to the latest spec.

  • stress/SharedArrayBuffer-opt.js:

(shouldSucceed):
(idx.of.string_appeared_here.a.of.arrays.m.of.atomics):
(string_appeared_here.a.of.arrays.m.of.atomics): Deleted.

  • stress/SharedArrayBuffer.js:

(shouldSucceed):
(Symbol):

  • stress/array-buffer-byte-length.js:

(shouldThrow):
(Symbol):

  • stress/atomics-add-uint32.js:
  • stress/atomics-known-int-use.js:
  • stress/atomics-neg-zero.js:
  • stress/atomics-store-return.js:
  • stress/lars-sab-workers.js:

(resources):
(notify):
(wake): Deleted.

  • stress/regress-170473.js:
  • stress/regress-189317.js:
  • stress/shared-array-buffer-sort-while-different-thread-is-modifying.js: Added.

(262.agent.waitUntil):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/config.yaml:
  • test262/expectations.yaml:

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.serviceworker-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt:
  • web-platform-tests/workers/postMessage_block.https-expected.txt:

Source/JavaScriptCore:

This patch revives SharedArrayBuffer and Atomics and aligning them to the latest spec.

  1. SharedArrayBuffer's sort should be done in JS side. C++ sort is not safe for SharedArrayBuffer since the buffer can be modified by different threads while sorting.
  2. Atomics.wait should be renamed to Atomics.notify.
  3. Atomics operation should be VarArgs in DFG because DFGSSALoweringPhase assumes that they are VarArgs and they can have another arg for CheckInBounds dependency.
  4. For test262, JSC shell should support "--can-block-is-false" flag. If it is true, the main thread's CanBlock? becomes false. This means that Atomics.wait cannot be used.
  • builtins/BuiltinNames.h:
  • builtins/TypedArrayPrototype.js:

(sort):

  • bytecode/LinkTimeConstant.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::mustGenerate const):
(JSC::DFG::Node::hasVarArgs const):
(JSC::DFG::Node::mustGenerate): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGSSALoweringPhase.cpp:

(JSC::DFG::SSALoweringPhase::handleNode):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsIsLockFree):

  • jsc.cpp:

(printUsageStatement):
(CommandLine::parseArguments):
(runJSC):

  • runtime/AtomicsObject.cpp:

(JSC::AtomicsObject::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_JIT_OPERATION):

  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferSlice):
(JSC::arrayBufferByteLength):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSArrayBufferPrototype::finishCreation):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toIntegerOrInfinity const):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncReverse):
(JSC::genericTypedArrayViewPrivateFuncSort):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSTypedArrayViewPrototype.h:
  • runtime/OptionsList.h:
  • runtime/SimpleTypedArrayController.cpp:

(JSC::SimpleTypedArrayController::SimpleTypedArrayController):
(JSC::SimpleTypedArrayController::isAtomicsWaitAllowedOnCurrentThread):

  • runtime/SimpleTypedArrayController.h:
  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::visitStrongReferences):

  • runtime/SmallStrings.h:

(JSC::SmallStrings::notEqualString const):
(JSC::SmallStrings::timedOutString const):
(JSC::SmallStrings::okString const):

Source/WTF:

  • wtf/PlatformEnable.h:

Tools:

  • Scripts/test262/Runner.pm:

(getFeatureFlags):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(main):

LayoutTests:

  • webaudio/dom-exceptions-expected.txt:
12:22 PM Changeset in webkit [269530] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the Windows 10 debug build after r269525

Speculative fix: add NO_RETURN_DUE_TO_ASSERT to method declarations in DisplayListItems.h as well.

  • platform/graphics/displaylists/DisplayListItems.h:
12:21 PM Changeset in webkit [269529] by achristensen@apple.com
  • 5 edits in trunk/Source/WebKit

Fix build after adding files to UIProcess/API/Cocoa
https://bugs.webkit.org/show_bug.cgi?id=218664

There is some code that assumes that unified sources always combine sources into the same translation units.
inspectorWebView is used from _WKInspectorTesting.mm, but only defined in _WKInspector.mm so it should be added to a header.
_WKUserContentWorld also doesn't include WKObject.h or RetainPtr.h but uses both.

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector inspectorWebView]): Deleted.

  • UIProcess/API/Cocoa/_WKInspectorPrivateForTesting.h:
  • UIProcess/API/Cocoa/_WKInspectorTesting.mm:

(-[_WKInspector inspectorWebView]):

  • UIProcess/API/Cocoa/_WKUserContentWorldInternal.h:
12:17 PM Changeset in webkit [269528] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk

Text gets clobbered when assigning to input.defaultValue
https://bugs.webkit.org/show_bug.cgi?id=217156

Patch by Joey Arhar <jarhar@chromium.org> on 2020-11-06
Reviewed by Darin Adler.

This fixes a bug where script assigning to the defaultValue property
of a number or email input causes the text the user entered into the
input to be clobbered when it doesn't perfectly match the sanitized
string returned by the .value property.

Test: LayoutTests/fast/forms/defaultValue-clobbering.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::parseAttribute):

11:37 AM Changeset in webkit [269527] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Accelerated animations of individual transform properties should apply rotate before scale
https://bugs.webkit.org/show_bug.cgi?id=218659

Reviewed by Simon Fraser.

Not that applying scale before rotate makes any difference, but applying the operations in
the order specified in the CSS Transforms spec will make the code easier to understand between
this and RenderStyle::applyTransform().

No test since there is no change of behavior.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

11:29 AM Changeset in webkit [269526] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Encoding PutImageData should not serialize separate IPC attachments for the image data
https://bugs.webkit.org/show_bug.cgi?id=218649

Reviewed by Simon Fraser.

The argument coder for WebCore::ImageData currently sends its image data by allocating a separate shared
memory buffer and sending it over to the GPU process via a separate IPC::Attachment. This isn't compatible
with the new "concurrent display list" model for processing display list items, wherein all out-of-line items
are encoded as raw bytes directly into reusable shared memory buffers and decoded from the corresponding buffer
in the GPU process.

Instead, encode and decode image data directly into and out of the main IPC data buffer. This also addresses a
couple of existing FIXMEs in the ImageData coder methods by avoiding the need for redundant copies to and from
temporary WebCore::SharedBuffers.

  • Shared/WebCoreArgumentCoders.cpp:

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

10:54 AM Changeset in webkit [269525] by Wenson Hsieh
  • 36 edits
    2 copies
    2 adds in trunk

[Concurrent display lists] Encode display list items directly into shared memory
https://bugs.webkit.org/show_bug.cgi?id=218406

Reviewed by Tim Horton.

Source/WebCore:

This patch refactors display lists (and display list items) in preparation for upcoming changes to allow the
GPU and web processes to concurrently read and write display list item data, which allows us to achieve
significant improvements in performance on many graphics benchmarks in MotionMark by removing overhead involved
in serializing and deserializing display list items over IPC. To implement this, rather than using IPC to encode
and decode each item, we will instead store display list items directly in memory shared between the web and GPU
processes.

This strategy, of course, will not work for display list items that contain pointers. Unfortunately, this
affects all display list items at the moment, since all items are subclasses of DisplayList::Item, and
therefore contain vtable pointers, even if all members are plain data types. Thus, the first step towards being
able to read and write items directly in shared memory is to remove this vtable pointer by making display list
items no longer inherit from DrawingItem or Item.

Currently, display lists are backed by Vector<Ref<Item>>; however, this no longer works once none of the
display list items are descended from a common base class. To address this, we introduce
DisplayList::ItemBuffer, which encapsulates logic to manage one or more data segments that contain display
list item data (i.e. display list items stacked adjacent to each other in memory). Display lists now append
inline display list items by constructing these items directly inside the item buffer using placement-new.

However, many types of display list items do not consist entirely of inline data; some of these are obvious,
such as DrawImage, DrawGlyphs, or StrokePath (since a Path may be arbitrarily complex). Other out-of-
line item types are less obvious: for instance, FillRoundedRect is an out-of-line item due to the fact that
the color of the rect (FillRoundedRect::m_color) may be an extended color, which then contains a pointer. In
these cases, we can't simply encode the item in shared memory and read it in the GPU process, since the pointer
(if it pointed to anything other than null in the web process) will point to arbitrary memory in the GPU
process. Instead, we can leverage our existing IPC infrastructure here by encoding each of these out-of-line
items as data and decoding them from this data in the GPU process. To do this, we delegate out to WebKit2 to
encode out-of-line display list items using WebKit's IPC::Encoder, and pass back a SharedBuffer which we
then copy into the item buffer. This delegation happens through the ItemBufferWritingClient class, which has
an implementation in WebKit2. On the decoding side in the GPU process, we then ask ItemBufferReadingClient (if
set) to convert this encoded data back into a display list item. In WebKit2, we implement this interface and use
the corresponding IPC::Decoder to decode the data we serialized earlier.

If no client is specified or the client does not require custom encoding/decoding for the given item type, we
fall back to constructing the item directly inside the writable item buffer data.

To make it easier to reason about these new (inheritance-free) display list items, we additionally introduce
ItemHandle, which wraps a pointer to a display list item and provides several helper methods. The first byte
of each item handle always points to an ItemType, and the following N bytes contain the item itself, where
N is the size of the item class. Here are some examples of how to use an ItemHandle:

DisplayList::ItemType type = itemHandle.type(); (This matches the current inheritance model)

if (itemHandle.is<StrokePath>()) {... (Replaces is<> in the current model)

auto& setStateItem = itemHandle.get<SetState>(); (Replaces downcast<> in the current model)

itemHandle.apply(myGraphicsContext); (This matches the current inheritance model)

bool isDrawingItem = itemHandle.isDrawingItem(); (Replaces checks for is<DrawingItem>(item))

When writing display lists for the GPU process, the writing client (a ItemBufferWritingClient) will be asked
to provide ItemBufferHandles where the item buffer will place item data (whether encoded, or as an inline
object). However, when using display lists outside of this context (e.g. in other parts of WebCore, such as the
glyph drawing cache), we don't have a ItemBufferWritingClient. To handle this, the item buffer instead
allocates its own (non-shared-memory) buffers, which it manages and deletes when it is done. If any out-of-line
items are constructed within these buffers, ItemBuffer will additionally call their destructors prior to
deleting these buffers.

See per-change comments below for more details.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::DisplayList):
(WebCore::DisplayList::DisplayList::operator=):

Implement the move assignment operator and move constructor by exchanging ownership of the item buffer.

(WebCore::DisplayList::DisplayList::clear):
(WebCore::DisplayList::DisplayList::shouldDumpForFlags):
(WebCore::DisplayList::DisplayList::asText const):
(WebCore::DisplayList::DisplayList::dump const):

Adjust the format when printing display lists to TextStream. Now that drawing item extents are tracked on the
display list rather than being on each drawing item, we print them out after each item (as opposed to being in
the middle of each item).

(WebCore::DisplayList::DisplayList::sizeInBytes const):

Tally up the size of the display list by taking the sum of the sizes of each readonly segment, as well as the
writable buffer size.

(WebCore::DisplayList::DisplayList::isEmpty const):

A DisplayList is empty if it contains no item data: in other words, there are no readonly buffer segments, and
there is also nothing written to the writable buffer segment.

(WebCore::DisplayList::DisplayList::itemBuffer):
(WebCore::DisplayList::DisplayList::setItemBufferClient):
(WebCore::DisplayList::DisplayList::forEachItemBuffer const):

Add a helper to iterate over each ItemBufferHandle in the display list. This includes all readonly handles, and
then the writable handle (if it exists).

(WebCore::DisplayList::DisplayList::setTracksDrawingItemExtents):

Add an option to allow the display list to track drawing item extents. Currently, display lists always track
extents for drawing items; however, when propagating display lists to the GPU process for playback, these
extents were never sent along with IPC, and so this ended up just being unnecessary work. Additionally, the
initial clip in the GPU process is also never set, so computing these extents never helped.

That said, drawing item extents are still printed out for the purposes of testing, so we need to keep this
logic intact; this refactoring only disables extent computation for display lists being sent to the GPU process
via remote image buffers. In a future patch, we could refactor this so that drawing items contain extent rects
as inline data that can be consulted in the GPU process.

(WebCore::DisplayList::DisplayList::append):

Display list items are no longer constructed ahead of time, and then appended to the display list. Instead,
append now takes the type of the item to append as a template typename argument, as well as the arguments that
will be used to construct the item.

(WebCore::DisplayList::DisplayList::iterator::atEnd const):
(WebCore::DisplayList::DisplayList::iterator::updateCurrentItem):
(WebCore::DisplayList::DisplayList::iterator::advance):
(WebCore::DisplayList::DisplayList::iterator::clearCurrentItem):
(WebCore::DisplayList::DisplayList::iterator::moveToEnd):
(WebCore::DisplayList::DisplayList::iterator::moveCursorToStartOfCurrentBuffer):

Implement a C++ iterator for DisplayList. This makes it possible to write code like this:
`
Suppose displayList is an instance of DisplayList::DisplayList.
for (auto [item, extent] : displayList) {

Do things with item, which is a DisplayList::ItemHandle.
Maybe do things with extent, which is an Optional<FloatRect>.

}
`

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::tracksDrawingItemExtents const):
(WebCore::DisplayList::DisplayList::iterator::iterator):
(WebCore::DisplayList::DisplayList::iterator::~iterator):
(WebCore::DisplayList::DisplayList::iterator::operator==):
(WebCore::DisplayList::DisplayList::iterator::operator!=):
(WebCore::DisplayList::DisplayList::iterator::operator++):
(WebCore::DisplayList::DisplayList::iterator::operator* const):
(WebCore::DisplayList::DisplayList::begin const):
(WebCore::DisplayList::DisplayList::end const):
(WebCore::DisplayList::DisplayList::itemBufferIfExists const):
(WebCore::DisplayList::DisplayList::addDrawingItemExtent):
(WebCore::DisplayList::DisplayList::append):
(WebCore::DisplayList::Item::type const): Deleted.
(WebCore::DisplayList::Item::isDrawingItem const): Deleted.
(WebCore::DisplayList::DisplayList::list const): Deleted.
(WebCore::DisplayList::DisplayList::itemAt): Deleted.
(WebCore::DisplayList::DisplayList::isEmpty const): Deleted.
(WebCore::DisplayList::DisplayList::appendItem): Deleted.
(WebCore::DisplayList::DisplayList::list): Deleted.
(WebCore::DisplayList::DisplayList::encode const): Deleted.
(WebCore::DisplayList::DisplayList::decode): Deleted.

Remove the ability to encode and decode display lists, for the time being. For the communication between the
web and GPU processes, we now use SharedDisplayListHandle.

Unfortunately, this does mean that the extant ClipToDrawingCommands display list item will be broken for the
time being. In a followup patch, I plan to reimplement DisplayList::encode and decode in the new inline item
model by encoding each item (either as inline data or via IPC::Encoder::encodeSingleObject). However, this is
contingent on all display list item types (e.g. DrawImage and DrawGlyph) not relying on IPC::Attachment
for encoding, so support for ClipToDrawingCommands will need to wait until after fonts and images are working.

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawGlyphs):
(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawImage):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderWin.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

Change these to use the new templated DisplayList::append method.

  • platform/graphics/displaylists/DisplayListDrawingContext.h:

(WebCore::DisplayList::DrawingContext::takeDisplayList):

Use std::exchange instead of WTFMove. This is actually necessary in order to ensure correctness (i.e. no
leaks or double-freeing), since the DisplayList instance that is being moved from needs to be empty so that it
does not try to call destructors on the items formerly inside of it.

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp: Added.

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):

Add helper methods to apply a display list item to a GraphicsContext and call the display list item's
destructor, respectively.

(WebCore::DisplayList::ItemHandle::copyTo const):

Add a helper method to copy the item into the destination handle (calling the copy constructor of the item type
in the process). This is used when copying a validated display list item into the temporary item buffer in
DisplayList::iterator.

(WebCore::DisplayList::ItemBuffer::ItemBuffer):
(WebCore::DisplayList::ItemBuffer::~ItemBuffer):
(WebCore::DisplayList::m_allocatedBuffers):

In the case where there is no m_writingClient (for instance, when using in-process DisplayLists to optimize
text painting), the display list item buffer is responsible for creating and managing data buffers. As such, it
needs to remember to free any buffers that it allocated when appending, and must also destroy any out-of-line
display list items (i.e. items with nontrivial destructors) when it is finished.

(WebCore::DisplayList::m_readOnlyBuffers):
(WebCore::DisplayList::m_writableBuffer):
(WebCore::DisplayList::m_writtenNumberOfBytes):

See main ChangeLog entry above for more details.

(WebCore::DisplayList::ItemBuffer::operator=):
(WebCore::DisplayList::ItemBuffer::createItemBuffer):
(WebCore::DisplayList::ItemBuffer::forEachItemBuffer const):
(WebCore::DisplayList::ItemBuffer::clear):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):
(WebCore::DisplayList::ItemBuffer::appendDataAndLength):

  • platform/graphics/displaylists/DisplayListItemBuffer.h: Added.

(WebCore::DisplayList::ItemBufferHandle::operator bool const):
(WebCore::DisplayList::ItemBufferHandle::operator! const):
(WebCore::DisplayList::ItemHandle::operator bool const):
(WebCore::DisplayList::ItemHandle::operator! const):
(WebCore::DisplayList::ItemHandle::type const):
(WebCore::DisplayList::ItemHandle::size const):
(WebCore::DisplayList::ItemHandle::is const):
(WebCore::DisplayList::ItemHandle::get const):
(WebCore::DisplayList::ItemBufferWritingClient::~ItemBufferWritingClient):
(WebCore::DisplayList::ItemBufferReadingClient::~ItemBufferReadingClient):
(WebCore::DisplayList::ItemBuffer::sizeInBytes const):
(WebCore::DisplayList::ItemBuffer::isEmpty const):
(WebCore::DisplayList::ItemBuffer::append):
(WebCore::DisplayList::ItemBuffer::setClient):
(WebCore::DisplayList::ItemBuffer::readOnlyBuffers const):
(WebCore::DisplayList::ItemBuffer::uncheckedAppend):

  • platform/graphics/displaylists/DisplayListItems.cpp:

The changes in this file make up most of the code churn in this patch, but the changes are mostly mechanical. In
summary, this patch:

  • Add static constexprs for the ItemType of each display list item class, as well as whether or not each class is inline, and also whether or not each class is a drawing item.
  • Remove encode and decode methods from inline item classes.
  • Remove all overridden methods; each class now implements individual methods to apply, compute globalBounds (if applicable), and compute localBounds (again, if applicable).
  • Adjusts textstream dumping helpers, so that they no longer dump as a DrawingItem before dumping each member.

(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):
(WebCore::DisplayList::SetState::SetState):
(WebCore::DisplayList::DrawGlyphs::DrawGlyphs):
(WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const):
(WebCore::DisplayList::DrawGlyphs::apply const):
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):
(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawLinesForText::DrawLinesForText):
(WebCore::DisplayList::DrawFocusRingRects::DrawFocusRingRects):
(WebCore::DisplayList::FillRectWithGradient::FillRectWithGradient):
(WebCore::DisplayList::PutImageData::PutImageData):
(WebCore::DisplayList::PaintFrameForMedia::PaintFrameForMedia):
(WebCore::DisplayList::Item::Item): Deleted.
(WebCore::DisplayList::Item::sizeInBytes): Deleted.
(WebCore::DisplayList::DrawingItem::DrawingItem): Deleted.
(WebCore::DisplayList::Save::Save): Deleted.
(WebCore::DisplayList::Restore::Restore): Deleted.
(WebCore::DisplayList::Translate::Translate): Deleted.
(WebCore::DisplayList::Rotate::Rotate): Deleted.
(WebCore::DisplayList::Scale::Scale): Deleted.
(WebCore::DisplayList::SetCTM::SetCTM): Deleted.
(WebCore::DisplayList::ConcatenateCTM::ConcatenateCTM): Deleted.
(WebCore::DisplayList::SetInlineFillGradient::create): Deleted.
(WebCore::DisplayList::SetInlineFillColor::create): Deleted.
(WebCore::DisplayList::SetInlineStrokeColor::create): Deleted.
(WebCore::DisplayList::SetStrokeThickness::create): Deleted.
(WebCore::DisplayList::SetLineCap::SetLineCap): Deleted.
(WebCore::DisplayList::SetLineDash::SetLineDash): Deleted.
(WebCore::DisplayList::SetLineJoin::SetLineJoin): Deleted.
(WebCore::DisplayList::SetMiterLimit::SetMiterLimit): Deleted.
(WebCore::DisplayList::ClearShadow::ClearShadow): Deleted.
(WebCore::DisplayList::Clip::Clip): Deleted.
(WebCore::DisplayList::ClipOut::ClipOut): Deleted.
(WebCore::DisplayList::ClipOutToPath::ClipOutToPath): Deleted.
(WebCore::DisplayList::ClipPath::ClipPath): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::ClipToDrawingCommands): Deleted.
(WebCore::DisplayList::DrawGlyphs::localBounds const): Deleted.
(WebCore::DisplayList::DrawImage::DrawImage): Deleted.
(WebCore::DisplayList::DrawTiledImage::DrawTiledImage): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::DrawTiledScaledImage): Deleted.
(WebCore::DisplayList::DrawImageBuffer::DrawImageBuffer): Deleted.
(WebCore::DisplayList::DrawRect::DrawRect): Deleted.
(WebCore::DisplayList::DrawLine::DrawLine): Deleted.
(WebCore::DisplayList::DrawDotsForDocumentMarker::DrawDotsForDocumentMarker): Deleted.
(WebCore::DisplayList::DrawEllipse::DrawEllipse): Deleted.
(WebCore::DisplayList::DrawPath::DrawPath): Deleted.
(WebCore::DisplayList::DrawFocusRingPath::DrawFocusRingPath): Deleted.
(WebCore::DisplayList::FillRect::FillRect): Deleted.
(WebCore::DisplayList::FillRectWithColor::FillRectWithColor): Deleted.
(WebCore::DisplayList::FillCompositedRect::FillCompositedRect): Deleted.
(WebCore::DisplayList::FillRoundedRect::FillRoundedRect): Deleted.
(WebCore::DisplayList::FillRectWithRoundedHole::FillRectWithRoundedHole): Deleted.
(WebCore::DisplayList::FillInlinePath::FillInlinePath): Deleted.
(WebCore::DisplayList::FillPath::FillPath): Deleted.
(WebCore::DisplayList::FillEllipse::FillEllipse): Deleted.
(WebCore::DisplayList::PaintFrameForMedia::create): Deleted.
(WebCore::DisplayList::StrokeRect::StrokeRect): Deleted.
(WebCore::DisplayList::StrokeEllipse::StrokeEllipse): Deleted.
(WebCore::DisplayList::StrokeInlinePath::StrokeInlinePath): Deleted.
(WebCore::DisplayList::StrokePath::StrokePath): Deleted.
(WebCore::DisplayList::ClearRect::ClearRect): Deleted.
(WebCore::DisplayList::BeginTransparencyLayer::BeginTransparencyLayer): Deleted.
(WebCore::DisplayList::EndTransparencyLayer::EndTransparencyLayer): Deleted.
(WebCore::DisplayList::ApplyStrokePattern::ApplyStrokePattern): Deleted.
(WebCore::DisplayList::ApplyFillPattern::ApplyFillPattern): Deleted.
(WebCore::DisplayList::ApplyDeviceScaleFactor::ApplyDeviceScaleFactor): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::Save::localBounds const):
(WebCore::DisplayList::Save::globalBounds const):
(WebCore::DisplayList::Restore::localBounds const):
(WebCore::DisplayList::Restore::globalBounds const):
(WebCore::DisplayList::Translate::Translate):
(WebCore::DisplayList::Translate::localBounds const):
(WebCore::DisplayList::Translate::globalBounds const):
(WebCore::DisplayList::Rotate::Rotate):
(WebCore::DisplayList::Rotate::localBounds const):
(WebCore::DisplayList::Rotate::globalBounds const):
(WebCore::DisplayList::Scale::Scale):
(WebCore::DisplayList::Scale::localBounds const):
(WebCore::DisplayList::Scale::globalBounds const):
(WebCore::DisplayList::SetCTM::SetCTM):
(WebCore::DisplayList::SetCTM::localBounds const):
(WebCore::DisplayList::SetCTM::globalBounds const):
(WebCore::DisplayList::ConcatenateCTM::ConcatenateCTM):
(WebCore::DisplayList::ConcatenateCTM::localBounds const):
(WebCore::DisplayList::ConcatenateCTM::globalBounds const):
(WebCore::DisplayList::SetInlineFillGradient::localBounds const):
(WebCore::DisplayList::SetInlineFillGradient::globalBounds const):
(WebCore::DisplayList::SetInlineFillColor::SetInlineFillColor):
(WebCore::DisplayList::SetInlineFillColor::color const):
(WebCore::DisplayList::SetInlineFillColor::localBounds const):
(WebCore::DisplayList::SetInlineFillColor::globalBounds const):
(WebCore::DisplayList::SetInlineStrokeColor::SetInlineStrokeColor):
(WebCore::DisplayList::SetInlineStrokeColor::color const):
(WebCore::DisplayList::SetInlineStrokeColor::localBounds const):
(WebCore::DisplayList::SetInlineStrokeColor::globalBounds const):
(WebCore::DisplayList::SetStrokeThickness::SetStrokeThickness):
(WebCore::DisplayList::SetStrokeThickness::thickness const):
(WebCore::DisplayList::SetStrokeThickness::localBounds const):
(WebCore::DisplayList::SetStrokeThickness::globalBounds const):
(WebCore::DisplayList::SetState::localBounds const):
(WebCore::DisplayList::SetState::globalBounds const):
(WebCore::DisplayList::SetState::decode):
(WebCore::DisplayList::SetLineCap::SetLineCap):
(WebCore::DisplayList::SetLineCap::localBounds const):
(WebCore::DisplayList::SetLineCap::globalBounds const):
(WebCore::DisplayList::SetLineDash::SetLineDash):
(WebCore::DisplayList::SetLineDash::localBounds const):
(WebCore::DisplayList::SetLineDash::globalBounds const):
(WebCore::DisplayList::SetLineDash::decode):
(WebCore::DisplayList::SetLineJoin::SetLineJoin):
(WebCore::DisplayList::SetLineJoin::localBounds const):
(WebCore::DisplayList::SetLineJoin::globalBounds const):
(WebCore::DisplayList::SetMiterLimit::SetMiterLimit):
(WebCore::DisplayList::SetMiterLimit::localBounds const):
(WebCore::DisplayList::SetMiterLimit::globalBounds const):
(WebCore::DisplayList::ClearShadow::localBounds const):
(WebCore::DisplayList::ClearShadow::globalBounds const):
(WebCore::DisplayList::Clip::Clip):
(WebCore::DisplayList::Clip::rect const):
(WebCore::DisplayList::Clip::localBounds const):
(WebCore::DisplayList::Clip::globalBounds const):
(WebCore::DisplayList::ClipOut::ClipOut):
(WebCore::DisplayList::ClipOut::rect const):
(WebCore::DisplayList::ClipOut::localBounds const):
(WebCore::DisplayList::ClipOut::globalBounds const):
(WebCore::DisplayList::ClipOutToPath::ClipOutToPath):
(WebCore::DisplayList::ClipOutToPath::localBounds const):
(WebCore::DisplayList::ClipOutToPath::globalBounds const):
(WebCore::DisplayList::ClipOutToPath::decode):
(WebCore::DisplayList::ClipPath::ClipPath):
(WebCore::DisplayList::ClipPath::localBounds const):
(WebCore::DisplayList::ClipPath::globalBounds const):
(WebCore::DisplayList::ClipPath::decode):
(WebCore::DisplayList::ClipToDrawingCommands::ClipToDrawingCommands):
(WebCore::DisplayList::ClipToDrawingCommands::localBounds const):
(WebCore::DisplayList::ClipToDrawingCommands::globalBounds const):
(WebCore::DisplayList::ClipToDrawingCommands::encode const):
(WebCore::DisplayList::ClipToDrawingCommands::decode):
(WebCore::DisplayList::DrawGlyphs::globalBounds const):
(WebCore::DisplayList::DrawGlyphs::localBounds const):
(WebCore::DisplayList::DrawGlyphs::encode const):
(WebCore::DisplayList::DrawGlyphs::decode):
(WebCore::DisplayList::DrawImage::DrawImage):
(WebCore::DisplayList::DrawImage::globalBounds const):
(WebCore::DisplayList::DrawImage::localBounds const):
(WebCore::DisplayList::DrawImage::decode):
(WebCore::DisplayList::DrawTiledImage::DrawTiledImage):
(WebCore::DisplayList::DrawTiledImage::globalBounds const):
(WebCore::DisplayList::DrawTiledImage::localBounds const):
(WebCore::DisplayList::DrawTiledImage::decode):
(WebCore::DisplayList::DrawTiledScaledImage::DrawTiledScaledImage):
(WebCore::DisplayList::DrawTiledScaledImage::globalBounds const):
(WebCore::DisplayList::DrawTiledScaledImage::localBounds const):
(WebCore::DisplayList::DrawTiledScaledImage::decode):
(WebCore::DisplayList::DrawImageBuffer::DrawImageBuffer):
(WebCore::DisplayList::DrawImageBuffer::globalBounds const):
(WebCore::DisplayList::DrawImageBuffer::localBounds const):
(WebCore::DisplayList::DrawImageBuffer::decode):
(WebCore::DisplayList::DrawNativeImage::source const):
(WebCore::DisplayList::DrawNativeImage::destinationRect const):
(WebCore::DisplayList::DrawNativeImage::globalBounds const):
(WebCore::DisplayList::DrawNativeImage::localBounds const):
(WebCore::DisplayList::DrawNativeImage::decode):
(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::globalBounds const):
(WebCore::DisplayList::DrawPattern::localBounds const):
(WebCore::DisplayList::DrawPattern::decode):
(WebCore::DisplayList::BeginTransparencyLayer::BeginTransparencyLayer):
(WebCore::DisplayList::BeginTransparencyLayer::localBounds const):
(WebCore::DisplayList::BeginTransparencyLayer::globalBounds const):
(WebCore::DisplayList::EndTransparencyLayer::localBounds const):
(WebCore::DisplayList::EndTransparencyLayer::globalBounds const):
(WebCore::DisplayList::DrawRect::DrawRect):
(WebCore::DisplayList::DrawRect::globalBounds const):
(WebCore::DisplayList::DrawRect::localBounds const):
(WebCore::DisplayList::DrawLine::DrawLine):
(WebCore::DisplayList::DrawLine::globalBounds const):
(WebCore::DisplayList::DrawLinesForText::globalBounds const):
(WebCore::DisplayList::DrawLinesForText::decode):
(WebCore::DisplayList::DrawDotsForDocumentMarker::DrawDotsForDocumentMarker):
(WebCore::DisplayList::DrawDotsForDocumentMarker::globalBounds const):
(WebCore::DisplayList::DrawEllipse::DrawEllipse):
(WebCore::DisplayList::DrawEllipse::rect const):
(WebCore::DisplayList::DrawEllipse::globalBounds const):
(WebCore::DisplayList::DrawEllipse::localBounds const):
(WebCore::DisplayList::DrawPath::DrawPath):
(WebCore::DisplayList::DrawPath::globalBounds const):
(WebCore::DisplayList::DrawPath::localBounds const):
(WebCore::DisplayList::DrawPath::decode):
(WebCore::DisplayList::DrawFocusRingPath::DrawFocusRingPath):
(WebCore::DisplayList::DrawFocusRingPath::globalBounds const):
(WebCore::DisplayList::DrawFocusRingPath::decode):
(WebCore::DisplayList::DrawFocusRingRects::globalBounds const):
(WebCore::DisplayList::DrawFocusRingRects::decode):
(WebCore::DisplayList::FillRect::FillRect):
(WebCore::DisplayList::FillRect::rect const):
(WebCore::DisplayList::FillRect::globalBounds const):
(WebCore::DisplayList::FillRect::localBounds const):
(WebCore::DisplayList::FillRectWithColor::FillRectWithColor):
(WebCore::DisplayList::FillRectWithColor::globalBounds const):
(WebCore::DisplayList::FillRectWithColor::localBounds const):
(WebCore::DisplayList::FillRectWithColor::decode):
(WebCore::DisplayList::FillRectWithGradient::rect const):
(WebCore::DisplayList::FillRectWithGradient::gradient const):
(WebCore::DisplayList::FillRectWithGradient::globalBounds const):
(WebCore::DisplayList::FillRectWithGradient::localBounds const):
(WebCore::DisplayList::FillRectWithGradient::decode):
(WebCore::DisplayList::FillCompositedRect::FillCompositedRect):
(WebCore::DisplayList::FillCompositedRect::globalBounds const):
(WebCore::DisplayList::FillCompositedRect::localBounds const):
(WebCore::DisplayList::FillCompositedRect::decode):
(WebCore::DisplayList::FillRoundedRect::FillRoundedRect):
(WebCore::DisplayList::FillRoundedRect::globalBounds const):
(WebCore::DisplayList::FillRoundedRect::localBounds const):
(WebCore::DisplayList::FillRoundedRect::decode):
(WebCore::DisplayList::FillRectWithRoundedHole::FillRectWithRoundedHole):
(WebCore::DisplayList::FillRectWithRoundedHole::globalBounds const):
(WebCore::DisplayList::FillRectWithRoundedHole::localBounds const):
(WebCore::DisplayList::FillRectWithRoundedHole::decode):
(WebCore::DisplayList::FillInlinePath::FillInlinePath):
(WebCore::DisplayList::FillInlinePath::globalBounds const):
(WebCore::DisplayList::FillInlinePath::localBounds const):
(WebCore::DisplayList::FillPath::FillPath):
(WebCore::DisplayList::FillPath::globalBounds const):
(WebCore::DisplayList::FillPath::localBounds const):
(WebCore::DisplayList::FillPath::decode):
(WebCore::DisplayList::FillEllipse::FillEllipse):
(WebCore::DisplayList::FillEllipse::globalBounds const):
(WebCore::DisplayList::FillEllipse::localBounds const):
(WebCore::DisplayList::PutImageData::imageData const):
(WebCore::DisplayList::PutImageData::localBounds const):
(WebCore::DisplayList::PutImageData::globalBounds const):
(WebCore::DisplayList::PutImageData::encode const):
(WebCore::DisplayList::PutImageData::decode):
(WebCore::DisplayList::PaintFrameForMedia::localBounds const):
(WebCore::DisplayList::PaintFrameForMedia::globalBounds const):
(WebCore::DisplayList::StrokeRect::StrokeRect):
(WebCore::DisplayList::StrokeRect::globalBounds const):
(WebCore::DisplayList::StrokeInlinePath::StrokeInlinePath):
(WebCore::DisplayList::StrokeInlinePath::globalBounds const):
(WebCore::DisplayList::StrokePath::StrokePath):
(WebCore::DisplayList::StrokePath::globalBounds const):
(WebCore::DisplayList::StrokePath::decode):
(WebCore::DisplayList::StrokeEllipse::StrokeEllipse):
(WebCore::DisplayList::StrokeEllipse::rect const):
(WebCore::DisplayList::StrokeEllipse::globalBounds const):
(WebCore::DisplayList::ClearRect::ClearRect):
(WebCore::DisplayList::ClearRect::rect const):
(WebCore::DisplayList::ClearRect::globalBounds const):
(WebCore::DisplayList::ClearRect::localBounds const):
(WebCore::DisplayList::ApplyStrokePattern::localBounds const):
(WebCore::DisplayList::ApplyStrokePattern::globalBounds const):
(WebCore::DisplayList::ApplyFillPattern::localBounds const):
(WebCore::DisplayList::ApplyFillPattern::globalBounds const):
(WebCore::DisplayList::ApplyDeviceScaleFactor::ApplyDeviceScaleFactor):
(WebCore::DisplayList::ApplyDeviceScaleFactor::localBounds const):
(WebCore::DisplayList::ApplyDeviceScaleFactor::globalBounds const):
(WebCore::DisplayList::DrawingItem::setExtent): Deleted.
(WebCore::DisplayList::DrawingItem::extent const): Deleted.
(WebCore::DisplayList::DrawingItem::extentKnown const): Deleted.
(WebCore::DisplayList::DrawingItem::localBounds const): Deleted.
(WebCore::DisplayList::DrawingItem::globalBounds const): Deleted.
(WebCore::DisplayList::Save::create): Deleted.
(WebCore::DisplayList::Save::encode const): Deleted.
(WebCore::DisplayList::Save::decode): Deleted.
(WebCore::DisplayList::Restore::create): Deleted.
(WebCore::DisplayList::Restore::encode const): Deleted.
(WebCore::DisplayList::Restore::decode): Deleted.
(WebCore::DisplayList::Translate::create): Deleted.
(WebCore::DisplayList::Translate::encode const): Deleted.
(WebCore::DisplayList::Translate::decode): Deleted.
(WebCore::DisplayList::Rotate::create): Deleted.
(WebCore::DisplayList::Rotate::encode const): Deleted.
(WebCore::DisplayList::Rotate::decode): Deleted.
(WebCore::DisplayList::Scale::create): Deleted.
(WebCore::DisplayList::Scale::encode const): Deleted.
(WebCore::DisplayList::Scale::decode): Deleted.
(WebCore::DisplayList::SetCTM::create): Deleted.
(WebCore::DisplayList::SetCTM::encode const): Deleted.
(WebCore::DisplayList::SetCTM::decode): Deleted.
(WebCore::DisplayList::ConcatenateCTM::create): Deleted.
(WebCore::DisplayList::ConcatenateCTM::encode const): Deleted.
(WebCore::DisplayList::ConcatenateCTM::decode): Deleted.
(WebCore::DisplayList::SetInlineFillGradient::create): Deleted.
(WebCore::DisplayList::SetInlineFillGradient::encode const): Deleted.
(WebCore::DisplayList::SetInlineFillGradient::decode): Deleted.
(WebCore::DisplayList::SetInlineFillColor::encode const): Deleted.
(WebCore::DisplayList::SetInlineFillColor::decode): Deleted.
(WebCore::DisplayList::SetInlineStrokeColor::encode const): Deleted.
(WebCore::DisplayList::SetInlineStrokeColor::decode): Deleted.
(WebCore::DisplayList::SetStrokeThickness::encode const): Deleted.
(WebCore::DisplayList::SetStrokeThickness::decode): Deleted.
(WebCore::DisplayList::SetState::create): Deleted.
(WebCore::DisplayList::SetLineCap::create): Deleted.
(WebCore::DisplayList::SetLineCap::encode const): Deleted.
(WebCore::DisplayList::SetLineCap::decode): Deleted.
(WebCore::DisplayList::SetLineDash::create): Deleted.
(WebCore::DisplayList::SetLineJoin::create): Deleted.
(WebCore::DisplayList::SetLineJoin::encode const): Deleted.
(WebCore::DisplayList::SetLineJoin::decode): Deleted.
(WebCore::DisplayList::SetMiterLimit::create): Deleted.
(WebCore::DisplayList::SetMiterLimit::encode const): Deleted.
(WebCore::DisplayList::SetMiterLimit::decode): Deleted.
(WebCore::DisplayList::ClearShadow::create): Deleted.
(WebCore::DisplayList::ClearShadow::encode const): Deleted.
(WebCore::DisplayList::ClearShadow::decode): Deleted.
(WebCore::DisplayList::Clip::create): Deleted.
(WebCore::DisplayList::Clip::encode const): Deleted.
(WebCore::DisplayList::Clip::decode): Deleted.
(WebCore::DisplayList::ClipOut::create): Deleted.
(WebCore::DisplayList::ClipOut::encode const): Deleted.
(WebCore::DisplayList::ClipOut::decode): Deleted.
(WebCore::DisplayList::ClipOutToPath::create): Deleted.
(WebCore::DisplayList::ClipPath::create): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::create): Deleted.
(WebCore::DisplayList::DrawGlyphs::create): Deleted.
(WebCore::DisplayList::DrawImage::create): Deleted.
(WebCore::DisplayList::DrawTiledImage::create): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::create): Deleted.
(WebCore::DisplayList::DrawImageBuffer::create): Deleted.
(WebCore::DisplayList::DrawNativeImage::create): Deleted.
(WebCore::DisplayList::DrawPattern::create): Deleted.
(WebCore::DisplayList::BeginTransparencyLayer::create): Deleted.
(WebCore::DisplayList::BeginTransparencyLayer::encode const): Deleted.
(WebCore::DisplayList::BeginTransparencyLayer::decode): Deleted.
(WebCore::DisplayList::EndTransparencyLayer::create): Deleted.
(WebCore::DisplayList::EndTransparencyLayer::encode const): Deleted.
(WebCore::DisplayList::EndTransparencyLayer::decode): Deleted.
(WebCore::DisplayList::DrawRect::create): Deleted.
(WebCore::DisplayList::DrawRect::encode const): Deleted.
(WebCore::DisplayList::DrawRect::decode): Deleted.
(WebCore::DisplayList::DrawLine::create): Deleted.
(WebCore::DisplayList::DrawLine::encode const): Deleted.
(WebCore::DisplayList::DrawLine::decode): Deleted.
(WebCore::DisplayList::DrawLinesForText::create): Deleted.
(WebCore::DisplayList::DrawDotsForDocumentMarker::create): Deleted.
(WebCore::DisplayList::DrawDotsForDocumentMarker::encode const): Deleted.
(WebCore::DisplayList::DrawDotsForDocumentMarker::decode): Deleted.
(WebCore::DisplayList::DrawEllipse::create): Deleted.
(WebCore::DisplayList::DrawEllipse::encode const): Deleted.
(WebCore::DisplayList::DrawEllipse::decode): Deleted.
(WebCore::DisplayList::DrawPath::create): Deleted.
(WebCore::DisplayList::DrawFocusRingPath::create): Deleted.
(WebCore::DisplayList::DrawFocusRingRects::create): Deleted.
(WebCore::DisplayList::FillRect::create): Deleted.
(WebCore::DisplayList::FillRect::encode const): Deleted.
(WebCore::DisplayList::FillRect::decode): Deleted.
(WebCore::DisplayList::FillRectWithColor::create): Deleted.
(WebCore::DisplayList::FillRectWithGradient::create): Deleted.
(WebCore::DisplayList::FillCompositedRect::create): Deleted.
(WebCore::DisplayList::FillRoundedRect::create): Deleted.
(WebCore::DisplayList::FillRectWithRoundedHole::create): Deleted.
(WebCore::DisplayList::FillInlinePath::create): Deleted.
(WebCore::DisplayList::FillInlinePath::encode const): Deleted.
(WebCore::DisplayList::FillInlinePath::decode): Deleted.
(WebCore::DisplayList::FillPath::create): Deleted.
(WebCore::DisplayList::FillEllipse::create): Deleted.
(WebCore::DisplayList::FillEllipse::encode const): Deleted.
(WebCore::DisplayList::FillEllipse::decode): Deleted.
(WebCore::DisplayList::PutImageData::create): Deleted.
(WebCore::DisplayList::PaintFrameForMedia::encode const): Deleted.
(WebCore::DisplayList::PaintFrameForMedia::decode): Deleted.
(WebCore::DisplayList::StrokeRect::create): Deleted.
(WebCore::DisplayList::StrokeRect::encode const): Deleted.
(WebCore::DisplayList::StrokeRect::decode): Deleted.
(WebCore::DisplayList::StrokeInlinePath::create): Deleted.
(WebCore::DisplayList::StrokeInlinePath::encode const): Deleted.
(WebCore::DisplayList::StrokeInlinePath::decode): Deleted.
(WebCore::DisplayList::StrokePath::create): Deleted.
(WebCore::DisplayList::StrokeEllipse::create): Deleted.
(WebCore::DisplayList::StrokeEllipse::encode const): Deleted.
(WebCore::DisplayList::StrokeEllipse::decode): Deleted.
(WebCore::DisplayList::ClearRect::create): Deleted.
(WebCore::DisplayList::ClearRect::encode const): Deleted.
(WebCore::DisplayList::ClearRect::decode): Deleted.
(WebCore::DisplayList::ApplyStrokePattern::create): Deleted.
(WebCore::DisplayList::ApplyStrokePattern::encode const): Deleted.
(WebCore::DisplayList::ApplyStrokePattern::decode): Deleted.
(WebCore::DisplayList::ApplyFillPattern::create): Deleted.
(WebCore::DisplayList::ApplyFillPattern::encode const): Deleted.
(WebCore::DisplayList::ApplyFillPattern::decode): Deleted.
(WebCore::DisplayList::ApplyDeviceScaleFactor::create): Deleted.
(WebCore::DisplayList::ApplyDeviceScaleFactor::encode const): Deleted.
(WebCore::DisplayList::ApplyDeviceScaleFactor::decode): Deleted.
(WebCore::DisplayList::Item::encode const): Deleted.
(WebCore::DisplayList::Item::decode): Deleted.

Delete the generic Item::encode and Item::decode methods, since only out-of-line display list items have
encode and decode functions now.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::putImageData):
(WebCore::DisplayList::Recorder::appendStateChangeItem):
(WebCore::DisplayList::Recorder::clearShadow):
(WebCore::DisplayList::Recorder::setLineCap):
(WebCore::DisplayList::Recorder::setLineDash):
(WebCore::DisplayList::Recorder::setLineJoin):
(WebCore::DisplayList::Recorder::setMiterLimit):
(WebCore::DisplayList::Recorder::drawImage):
(WebCore::DisplayList::Recorder::drawTiledImage):
(WebCore::DisplayList::Recorder::drawImageBuffer):
(WebCore::DisplayList::Recorder::drawNativeImage):
(WebCore::DisplayList::Recorder::drawPattern):
(WebCore::DisplayList::Recorder::save):
(WebCore::DisplayList::Recorder::restore):
(WebCore::DisplayList::Recorder::translate):
(WebCore::DisplayList::Recorder::rotate):
(WebCore::DisplayList::Recorder::scale):
(WebCore::DisplayList::Recorder::concatCTM):
(WebCore::DisplayList::Recorder::setCTM):
(WebCore::DisplayList::Recorder::beginTransparencyLayer):
(WebCore::DisplayList::Recorder::endTransparencyLayer):
(WebCore::DisplayList::Recorder::drawRect):
(WebCore::DisplayList::Recorder::drawLine):
(WebCore::DisplayList::Recorder::drawLinesForText):
(WebCore::DisplayList::Recorder::drawDotsForDocumentMarker):
(WebCore::DisplayList::Recorder::drawEllipse):
(WebCore::DisplayList::Recorder::drawPath):
(WebCore::DisplayList::Recorder::drawFocusRing):
(WebCore::DisplayList::Recorder::fillRect):
(WebCore::DisplayList::Recorder::fillRoundedRect):
(WebCore::DisplayList::Recorder::fillRectWithRoundedHole):
(WebCore::DisplayList::Recorder::fillPath):
(WebCore::DisplayList::Recorder::fillEllipse):
(WebCore::DisplayList::Recorder::strokeRect):
(WebCore::DisplayList::Recorder::strokePath):
(WebCore::DisplayList::Recorder::strokeEllipse):
(WebCore::DisplayList::Recorder::clearRect):
(WebCore::DisplayList::Recorder::applyStrokePattern):
(WebCore::DisplayList::Recorder::applyFillPattern):
(WebCore::DisplayList::Recorder::clip):
(WebCore::DisplayList::Recorder::clipOut):
(WebCore::DisplayList::Recorder::clipPath):
(WebCore::DisplayList::Recorder::clipToDrawingCommands):
(WebCore::DisplayList::Recorder::paintFrameForMedia):
(WebCore::DisplayList::Recorder::applyDeviceScaleFactor):

Change these methods that append display list items en masse, such that they go from this:

m_displayList.append(Foo::create(arg1, arg2, arg3));

...to this:

m_displayList.append<Foo>(arg1, arg2, arg3);

(WebCore::DisplayList::Recorder::extentFromLocalBounds const):
(WebCore::DisplayList::Recorder::appendItemAndUpdateExtent): Deleted.
(WebCore::DisplayList::Recorder::appendItem): Deleted.
(WebCore::DisplayList::Recorder::updateItemExtent const): Deleted.

Extents are now automatically updated (unless otherwise specified) for any drawing items that are appended.

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::append):

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

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

  • platform/graphics/displaylists/DisplayListReplayer.h:

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

Source/WebKit:

Adjust for changes to display lists and display list items in WebCore (see Source/WebCore/ChangeLog for more
information). In particular, we implement the reading and writing client hooks consulted by ItemBuffer, and we
also add a temporary mechanism that allows RemoteRenderingBackendProxy (in the web process) to send display list
item data through shared memory to the RemoteRenderingBackend (in the GPU process). This temporary mechanism
does not attempt to make any reading or writing in shared memory concurrent between the GPU and web processes,
and exists only to make sure that rendering with the GPU process still works using these new display list items.

In the next patch, I will add a simple concurrent reader/writer model for display list processing between the
web and GPU processes, and (in doing so) revert most of the changes in RemoteRenderingBackend and
RemoteRenderingBackendProxy below.

See comments below for more detail.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::decodeAndCreate):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyResourceItem):
(WebKit::RemoteRenderingBackend::applyMediaItem):

Refactor these to take WebCore::DisplayList::ItemHandle.

(WebKit::RemoteRenderingBackend::applyDisplayList):
(WebKit::RemoteRenderingBackend::flushDisplayList):
(WebKit::RemoteRenderingBackend::flushDisplayListAndCommit):
(WebKit::RemoteRenderingBackend::didCreateSharedItemData):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Scripts/webkit/messages.py:
  • Shared/SharedDisplayListHandle.cpp: Added.

(WebKit::SharedDisplayListHandle::SharedDisplayListHandle):
(WebKit::SharedDisplayListHandle::createDisplayList const):

  • Shared/SharedDisplayListHandle.h: Added.

Add a WebKit2 helper class that represents display list data in shared memory that is propagated from the web
process to the GPU process. In the next patch, this class will be rewritten to support concurrent display list
reading and writing, with specialized subclasses in service of both the reader (i.e. the GPU process) and the
writer (i.e. the web process).

(WebKit::SharedDisplayListHandle::SharedDisplayListHandle):
(WebKit::SharedDisplayListHandle::encode const):
(WebKit::SharedDisplayListHandle::decode):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::flushDisplayList):
(WebKit::RemoteRenderingBackendProxy::flushDisplayListAndCommit):
(WebKit::RemoteRenderingBackendProxy::createItemBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

LayoutTests:

Rebaseline several existing (non-GPU-process) display list tests to account for a slight tweak in the format in
which display lists are dumped as text. More specifically, drawing item extents are now dumped after each
drawing item, rather than before.

  • displaylists/canvas-display-list-expected.txt:
  • displaylists/extent-includes-shadow-expected.txt:
  • displaylists/extent-includes-transforms-expected.txt:
  • displaylists/layer-dispay-list-expected.txt:
  • displaylists/replay-skip-clipped-rect-expected.txt:
10:44 AM Changeset in webkit [269524] by Truitt Savell
  • 34 edits
    15 deletes in trunk

Unreviewed, reverting r269486.

Caused 50+ timeouts on Mac Debug WK2

Reverted changeset:

"[Cocoa] Inspector Extensions: Add _WKInspectorExtension and
related plumbing"
https://bugs.webkit.org/show_bug.cgi?id=217783
https://trac.webkit.org/changeset/269486

10:42 AM Changeset in webkit [269523] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Add some missing header includes in WebAuthenticatorCoordinator.cpp
https://bugs.webkit.org/show_bug.cgi?id=218661

Reviewed by Simon Fraser.

Add the missing headers.

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
10:33 AM Changeset in webkit [269522] by jer.noble@apple.com
  • 11 edits
    2 adds in trunk

Do not allow pages to enter fullscreen while an exit fullscreen operation is ongoing.
https://bugs.webkit.org/show_bug.cgi?id=218640
<rdar://problem/70697738>

Reviewed by Eric Carlson.

Source/WebCore:

Test: fullscreen/full-screen-enter-while-exiting.html

Pages can inadvertantly trap users in fullscreen mode by attempting to enter
fullscreen during an exit fullscreen operation, when both the exit and enter
were triggered by a user gesture. While this is not explicitly forbidden by
the Fullscreen specification, we already reject requests in similar situations,
such as when the document was hidden between the request and when the request
was handled.

  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::requestFullscreenForElement):
(WebCore::FullscreenManager::exitFullscreen):
(WebCore::FullscreenManager::didExitFullscreen):

  • dom/FullscreenManager.h:

Tools:

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

(WTR::InjectedBundlePage::enterFullScreenForElement):
(WTR::InjectedBundlePage::exitFullScreenForElement):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setEnterFullscreenForElementCallback):
(WTR::TestRunner::callEnterFullscreenForElementCallback):
(WTR::TestRunner::setExitFullscreenForElementCallback):
(WTR::TestRunner::callExitFullscreenForElementCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

  • TestExpectations:
  • fullscreen/full-screen-enter-while-exiting-expected.txt: Added.
  • fullscreen/full-screen-enter-while-exiting.html: Added.
  • platform/wk2/TestExpectations:
10:30 AM Changeset in webkit [269521] by Alan Coon
  • 7 edits in branches/safari-610.3.7.0-branch

Cherry-pick r266052. rdar://problem/71120600

RTCRtpSynchronizationSource.rtpTimestamp is not present
https://bugs.webkit.org/show_bug.cgi?id=215722

Patch by Justin Uberti <justin@uberti.name> on 2020-08-24
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated expectations file to indicate that tests checking for .rtpTimestamp now pass.

  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt:

Source/WebCore:

Updated expected results in LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt.

  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpSynchronizationSource.idl: Minor modification to ensure JSRTCRtpSynchronizationSource.cpp gets regenerated.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp: (WebCore::fillRTCRtpContributingSource):

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

10:28 AM Changeset in webkit [269520] by Alan Coon
  • 8 edits in branches/safari-610.3.7.0-branch/Source

Versioning.

WebKit-7610.3.7.0.2

10:20 AM Changeset in webkit [269519] by Kocsen Chung
  • 6 edits
    2 adds in branches/safari-610.3.7.1-branch

Cherry-pick r269121. rdar://problem/71120565

[MSE] Handle trackId changing across Initialization Segments
https://bugs.webkit.org/show_bug.cgi?id=218294
<rdar://problem/70771306>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-trackid-change.html

When appending an initialization segment after the receivedFirstInitializationSegment flag is
true, and when the number of video or audio tracks is 1, the trackId is allowed to change across
initialiaztion segments. When this occurs, move the TrackBuffer inside the trackBufferMap to
refer to the new trackId, so that when MediaSamples are parsed, they're put into the correct
TrackBuffer.

  • Modules/mediasource/SourceBuffer.cpp: (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
  • html/track/AudioTrack.cpp: (WebCore::AudioTrack::setPrivate):
  • html/track/InbandTextTrack.cpp: (WebCore::InbandTextTrack::setPrivate):
  • html/track/VideoTrack.cpp: (WebCore::VideoTrack::setPrivate):

LayoutTests:

  • media/media-source/media-source-trackid-change-expected.txt: Added.
  • media/media-source/media-source-trackid-change.html: Added.

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

10:20 AM Changeset in webkit [269518] by Kocsen Chung
  • 7 edits in branches/safari-610.3.7.1-branch

Cherry-pick r266052. rdar://problem/71120601

RTCRtpSynchronizationSource.rtpTimestamp is not present
https://bugs.webkit.org/show_bug.cgi?id=215722

Patch by Justin Uberti <justin@uberti.name> on 2020-08-24
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated expectations file to indicate that tests checking for .rtpTimestamp now pass.

  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt:

Source/WebCore:

Updated expected results in LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt.

  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpSynchronizationSource.idl: Minor modification to ensure JSRTCRtpSynchronizationSource.cpp gets regenerated.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp: (WebCore::fillRTCRtpContributingSource):

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

9:51 AM Changeset in webkit [269517] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[macOS] Allow IOAVDHEVCDecodeCapabilities on Intel
https://bugs.webkit.org/show_bug.cgi?id=218639
<rdar://problem/71100188>

Reviewed by Eric Carlson.

The current rule for IOAVDHEVCDecodeCapabilities is incorrect for macOS 11. We should
allow this access on Intel, too.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
9:20 AM Changeset in webkit [269516] by Kocsen Chung
  • 8 edits in branches/safari-610.3.7.1-branch/Source

Versioning.

WebKit-7610.3.7.1.2

9:13 AM Changeset in webkit [269515] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[Flatpak SDK] Update libmanette source URI to new location
https://bugs.webkit.org/show_bug.cgi?id=218509

Reviewed by Carlos Alberto Lopez Perez.

  • buildstream/elements/sdk/libmanette.bst: Update URI.
9:08 AM Changeset in webkit [269514] by clopez@igalia.com
  • 3 edits in trunk/Tools

REGRESSION(r268930): It broke the http server of run-benchmark
https://bugs.webkit.org/show_bug.cgi?id=218643

Reviewed by Jonathan Bedard.

The http server was failing to start because it is executed in a
subprocess and it can't find webkitpy.autoinstalled because the
scripts dir is not in PYTHONPATH.

Fix this and also add a check to ensure the http server is alive,
and if not, then raise an error with the return code and outputs
from the http server process.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver):
(SimpleHTTPServerDriver._find_http_server_port):

9:04 AM WebKitGTK/2.30.x edited by Michael Catanzaro
(diff)
9:03 AM Changeset in webkit [269513] by clopez@igalia.com
  • 5 edits in trunk/Tools

webkitpy: Add a --no-comment switch to webkit-patch land
https://bugs.webkit.org/show_bug.cgi?id=218067

Reviewed by Ryosuke Niwa.

Add an optional --no-comment switch to webkit-patch land.
This is useful when landing gardening, build-fixes or follow-up patches
on a bug and you don't want the tool to automatically add a comment with
the revision landed because you preffer to later add a comment manually.

Note that it will still close the bug, if you don't want the bug to
be closed you need to pass also --no-close.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:

(MockBugzilla.close_bug_as_fixed):

  • Scripts/webkitpy/tool/commands/download_unittest.py:

(DownloadCommandsTest._default_options):
(test_land_no_close):

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

(CloseBugForLandDiff.options):
(CloseBugForLandDiff.run):

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

(Options):

8:01 AM Changeset in webkit [269512] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix crashes around NetworkStorageSession::registerCookieChangeListenersIfNecessary
https://bugs.webkit.org/show_bug.cgi?id=218626
<rdar://66837628>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-06
Reviewed by Chris Dumez.

We need to check if the NetworkStorageSession has been deallocated before using its member variables in a callback from CFNetwork.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):

7:50 AM Changeset in webkit [269511] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Use address diversified PAC to ensure the integrity of opcode maps.
https://bugs.webkit.org/show_bug.cgi?id=218646

Reviewed by Yusuke Suzuki.

One reason for doing this is because space in the JSCConfig is limited, and may
hurt RAMification scores if we need to expand it when adding new opcodes.
By putting the opcode maps in dirty global memory, we still use less memory
because dirty global memory does not incur internal fragmentation like the
JSCConfig does.

In this patch, we move g_jscConfig.llint.opcodeMap, g_jscConfig.llint.opcodeMapWide16,
and g_jscConfig.llint.opcodeMapWide32 back to global arrays g_opcodeMap, g_opcodeMapWide16,
and g_opcodeMapWide32.

  • interpreter/InterpreterInlines.h:

(JSC::Interpreter::getOpcodeID):

  • Since this function is only used debugging purposes during development, and is currently unused, we can just strip the PAC bits from the opcode when computing the opcodeID. The alternative to doing this requires that we know how the Opcode is signed by the client. Since this function is currently unused, we have no clients to study / fix up for now.
  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • Changed an ASSERT for llint_throw_from_slow_path_trampoline to static_assert, and add a second one as well for wasm_throw_from_slow_path_trampoline.
  • Moved the signing of the Opcode pointers into llint_entry() and wasm_entry() instead. Now, non-ARM64E ports don't need to execute this no-op assignment loop (assuming it wasn't already elided by the compiler).
  • llint/LLIntData.h:

(JSC::LLInt::opcodeMap):
(JSC::LLInt::opcodeMapWide16):
(JSC::LLInt::opcodeMapWide32):
(JSC::LLInt::getOpcode):
(JSC::LLInt::getOpcodeWide16):
(JSC::LLInt::getOpcodeWide32):

  • Change getOpcode(), getOpcodeWide16(), and getOpcodeWide32() to return a reference to the entry in the corresponding opcode map. This is needed because we need to be able to compute the address of the Opcode entry in order to retag the Opcode.

(JSC::LLInt::getCodePtrImpl):
(JSC::LLInt::getCodePtr):
(JSC::LLInt::getWide16CodePtr):
(JSC::LLInt::getWide32CodePtr):

  • llint/LowLevelInterpreter.asm:
  • llint/WebAssembly.asm:
  • Changed the bytecode dispatch jmps to use address diversification when authenticating the Opcode pointer.
  • Changed llint_entry and wasm_entry to also tag the Opcode pointers for ARM64E.
  • Changed llint_entry and wasm_entry to validate that they are only called during system initialization.
  • offlineasm/arm64.rb:
  • Optimize leap code generation to elide an add instruction if it's only adding 0 to a global address.
  • offlineasm/arm64e.rb:
  • offlineasm/ast.rb:
  • offlineasm/instructions.rb:
  • Added support for jmp or call using address diversified pointers.
  • Added a tagCodePtr instruction that also supports signing address diversified pointers.
  • runtime/JSCConfig.h:
  • runtime/JSCPtrTag.h:

(JSC::untagAddressDiversifiedCodePtr):

  • Added untagAddressDiversifiedCodePtr() so that we can retag the Opcode pointers.
6:33 AM Changeset in webkit [269510] by Antti Koivisto
  • 29 edits in trunk/Source/WebCore

[LFC][Integration] localCaretOffset should use iterator
https://bugs.webkit.org/show_bug.cgi?id=218620

Reviewed by Zalan Bujtas.

Convert all localCaretRect implementations to use the inline iterator.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::localCaretRectForCharacterOffset):

  • editing/RenderedPosition.cpp:

(WebCore::RenderedPosition::absoluteRect const):

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::localCaretRect const):

  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::PathLine::computeCaretRect const):

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::PathLine::logicalLeft const):
(WebCore::LayoutIntegration::PathLine::logicalRight const):

  • layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:

(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalLeft const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalRight const):

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::logicalLeft const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalRight const):

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::positionForOffset const):

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::RunIteratorLegacyPath::offsetForPosition const):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::positionForOffset const):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::positionForOffset const):
(WebCore::LayoutIntegration::RunIteratorModernPath::selectionRect const):
(WebCore::LayoutIntegration::RunIteratorModernPath::clampedOffset const):

Make clampedOffset return 0 based offset like it does in InlineTextBox to make porting easier.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::localCaretRect const):
(WebCore::RenderBlock::localCaretRect): Deleted.

  • rendering/RenderBlock.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::localCaretRect const):
(WebCore::RenderBox::localCaretRect): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::localCaretRectForEmptyElement const):
(WebCore::RenderBoxModelObject::localCaretRectForEmptyElement): Deleted.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::localCaretRect const):
(WebCore::RenderInline::localCaretRect): Deleted.

  • rendering/RenderInline.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::localCaretRect const):
(WebCore::RenderLineBreak::linesBoundingBox const):
(WebCore::RenderLineBreak::localCaretRect): Deleted.

  • rendering/RenderLineBreak.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::localCaretRect const):
(WebCore::RenderObject::localCaretRect): Deleted.

  • rendering/RenderObject.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::localCaretRect const):
(WebCore::RenderText::localCaretRect): Deleted.

  • rendering/RenderText.h:
  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::createTextBox):
(WebCore::RenderSVGInlineText::localCaretRect const):
(WebCore::RenderSVGInlineText::localCaretRect): Deleted.

  • rendering/svg/RenderSVGInlineText.h:
6:09 AM Changeset in webkit [269509] by Oriol Brufau
  • 2 edits in trunk/Source/WebCore

[css-grid] Prevent FindUsedFlexFraction from iterating items twice
https://bugs.webkit.org/show_bug.cgi?id=218630

Reviewed by Javier Fernandez.

IndefiniteSizeStrategy::findUsedFlexFraction needs to iterate all grid
items that cross a flexible track. To do so it, takes the indices of the
flex tracks, and for each one it uses GridIterator to iterate the items
in that track.

Then, to avoid processing the same item multiple times, it used to check
that the item started in the current flex track, not in a previous one.

However, this was insufficient: it wasn't taking into account that an
item can be in a single flex track, but span multiple tracks in the
other axis.

Therefore, this patch changes it to use the same approach as in
GridTrackSizingAlgorithm::resolveIntrinsicTrackSizes, i.e. creates a
HashSet outside of the loop, and inserts each given grid item to it,
checking whether it's a new entry or not.

This is a port of https://crrev.com/821910 from Chromium.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::IndefiniteSizeStrategy::findUsedFlexFraction const):

5:47 AM Changeset in webkit [269508] by Chris Lord
  • 2 edits in trunk/Source/WebCore

REGRESSION(r269503): [GTK][WPE] >200 tests are failing
https://bugs.webkit.org/show_bug.cgi?id=218654

Reviewed by Žan Doberšek.

Implement GraphicsContextImplCairo::drawImageBuffer. Prior to r269503,
this function had an error return code, but this was removed and so
its implementation is now mandatory.

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawImageBuffer):

2:09 AM Changeset in webkit [269507] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Gardened several flaky failures reported by the bot.

Also promoted several common failures (WebRTC, WebSQL) happening in GTK to GLIB.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
1:44 AM Changeset in webkit [269506] by commit-queue@webkit.org
  • 18 edits
    3 copies
    3 adds in trunk

Scroll snap specified on :root doesn't work
https://bugs.webkit.org/show_bug.cgi?id=210469
<rdar://problem/61746676>

Source/WebCore:

Properly handle scroll-snap-type on the root element.

This change is originally based on a patch by Simon Fraser.

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-11-06
Reviewed by Simon Fraser.

Tests: tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-legacy.html

tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-legacy.html
tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe-legacy.html

  • page/FrameView.cpp:

(WebCore::FrameView::updateSnapOffsets): Send the body or root element style depending
on where the scroll-snap properties are set, but always use the FrameView viewport
when calculating geometry for scroll snap.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::updateSnapOffsetsForScrollableArea): Accept a viewport rectangle from the
caller and also eliminate redundant argument that was causing a bit of confusion.

  • page/scrolling/AxisScrollSnapOffsets.h: Update the function declaration.
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::clearSnapOffsets): Added a helper to clear both vertical and horizontal snap info.

  • platform/ScrollableArea.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::findEnclosingScrollableContainerForSnapping const): Renamed findEnclosingScrollableContainer
to this because now it is only useful for scroll snapping. The only preexisting caller was
the scroll snap code.
(WebCore::RenderBox::findEnclosingScrollableContainer const): Deleted.

  • rendering/RenderBox.h: Updated method name.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateSnapOffsets): Update to reflect changes to updateSnapOffsetsForScrollableArea.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::enclosingScrollableContainerForSnapping const): Always return the
document root as the container instead of the body. The body never captures scroll
snap points.

LayoutTests:

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-11-06
Reviewed by Simon Fraser.

Modified main frame scroll snap tests to reflect the specification and add a
few more tests to test the legacy behavior which this change maintains for
backwards compatibility.

  • css3/scroll-snap/scroll-snap-positions-mainframe.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-legacy-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-legacy.html: Copied from LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-legacy-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-legacy.html: Copied from LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe-legacy-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe-legacy.html: Copied from LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe.html.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe.html:
1:09 AM Changeset in webkit [269505] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Application cannot override drag&drop callbacks
https://bugs.webkit.org/show_bug.cgi?id=218562

Patch by Milan Crha <mcrha@redhat.com> on 2020-11-06
Reviewed by Michael Catanzaro.

  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::DropTarget): Use g_signal_connect_after(), thus
any descendants can override the callbacks.
(WebKit::DropTarget::didPerformAction): Always call gdk_drag_status(),
to have gtk+ notified about drag progress.

1:01 AM Changeset in webkit [269504] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] dlopen libWPEBackend-fdo-1.0.so.1 instead of libWPEBackend-fdo-1.0.so
https://bugs.webkit.org/show_bug.cgi?id=218584

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

wpe_loader_init() tries to dlopen a development symlink, but these will not usually be
installed. It only works in the GNOME flatpak runtime because we don't use devel split
rules in the GNOME runtime, but we really ought to, and freedesktop-sdk already does, so
it's going to break upstream too once that gets implemented. It's easier for everyone if
we tackle this now. Since all major distros except Arch Linux use devel split, this patch
is really required for almost every distro to use WPE renderer.

The downside is that this makes it harder to update the wpebackend-fdo library version,
since minor changes there will now unnecessarily break WebKit. This is not good, but it's
better than forcing distros to apply this same patch downstream. I considered trying a bunch
of different library versions in a loop in order to maximize the chance of success in case
the wpebackend-fdo library version increases in the future, but it's probably nicer to just
be careful about not changing its library version until we find a better solution for this.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

Note: See TracTimeline for information about the timeline view.