Timeline



Feb 28, 2022:

11:47 PM Changeset in webkit [290631] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[GTK] Unreviewed, non-unified build fix after 247791@main

  • platform/graphics/gbm/GBMDevice.h:
11:46 PM Changeset in webkit [290630] by Tyler Wilcock
  • 9 edits
    3 adds in trunk

AX: WebKit should ignore empty modals rather than trapping focus inside them
https://bugs.webkit.org/show_bug.cgi?id=237163

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

Given this markup:

<div role="dialog" aria-modal="true">

<div aria-hidden="true">

<button>Close modal (inside modal)</button>

</div>

</div>

There is no accessible content inside this modal, but WebKit traps user focus inside,
making the rest of the page completely inaccessible.

With this patch we ignore modals that don't have accessible content.
We do this by walking the DOM to find any non-AX-ignored objects.

Because determining whether or not an element is ignored is dependent
on modals present on the page, this patch moves the call to ignoredFromModalPresence
out of AccessibilityObject::defaultObjectInclusion, as this function is
downstream of computeAccessibilityIsIgnored, and we need to call
that on objects inside modal candidates. Without this move, we would
recurse infinitely in AXObjectCache::modalElementHasAccessibleContent.

We now check whether an object is ignored due to modal presence in
AccessibilityObject::accessibilityIsIgnored(), so that function should
be used as the final say in determining whether an object is ignored.

Test: accessibility/ignore-modals-without-any-content.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::modalElementHasAccessibleContent):
(WebCore::AXObjectCache::currentModalNode):

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::defaultObjectInclusion const):
(WebCore::AccessibilityObject::accessibilityIsIgnored const):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::computeAccessibilityIsIgnored const):

LayoutTests:

  • accessibility/ignore-modals-without-any-content-expected.txt: Added.
  • accessibility/ignore-modals-without-any-content.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/ios/accessibility/ignore-modals-without-any-content-expected.txt: Added.
  • platform/win/TestExpectations: Skip new test.
10:12 PM Changeset in webkit [290629] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[IPC] Do more hardening in WebSWServerConnection's client registration / unregistration
https://bugs.webkit.org/show_bug.cgi?id=237290
<rdar://88903506>

Reviewed by Alex Christensen.

Validate client identifiers sent by the WebContent process via IPC to make sure that the
process identifier of the client actually matches the process identifier of the process
we're connected to.

Also validate the SecurityOriginData to make sure it is not empty. We support sending
empty SecurityOriginData objects over IPC. However, they cannot be used as keys in
HashMaps.

If validation fails, we assume the WebContent process is compromised and we terminate it.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::registerServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):

8:54 PM Changeset in webkit [290628] by Simon Fraser
  • 4 edits
    6 adds in trunk

Compositing/paint invalidation with transforms
https://bugs.webkit.org/show_bug.cgi?id=233421
<rdar://problem/85814854>

Reviewed by Alan Bujtas.

Source/WebCore:

When changing transform from something like translate(0) to `translate3d(0, 0, 0)
scale(0.5, 0.5)`, we trigger compositing, and thus need to repaint the previous rect of the
layer in its old repaint container. However, the existing code would take the new transform
into account when computing that rect, thus dirtying a rect that is too small.

To fix this, we need to use the cached repaint rects on RenderLayer for this repaint.
However, doing so revealed a bug (via
compositing/shared-backing/repaint-into-shared-backing.html) in how we compute repaint
cached repaint rects in the presence of shared backing. During a compositing update, if a
layer's composited state changed, we'd call computeRepaintRectsIncludingDescendants(), which
computes rect relative to the layer's repaint container. But at this time, the state of
backing sharing in BackingSharingState is in flux (we essentially don't know yet if a layer
can use shared backing). So we may compute and cache repaint rects relative to the wrong
container.

To fix this, leverage the existing m_layersPendingRepaint logic, and delay computing the
repaint rects until we've established our final backing sharing configuration.

Tests: compositing/repaint/composite-and-scale-change.html

compositing/shared-backing/repaint-into-shared-backing-become-composited.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setBackingProviderLayer):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::BackingSharingState::issuePendingRepaints):
(WebCore::RenderLayerCompositor::updateBacking):

LayoutTests:

  • compositing/repaint/composite-and-scale-change-expected.txt: Added.
  • compositing/repaint/composite-and-scale-change.html: Added.

Test that dumps repaint rects.

  • compositing/shared-backing/repaint-into-shared-backing-become-composited-expected.html: Added.
  • compositing/shared-backing/repaint-into-shared-backing-become-composited.html: Added.

Companion to repaint-into-shared-backing.html but toggles compositing in the other
direction.

  • platform/gtk/compositing/repaint/composite-and-scale-change-actual.txt: Added.
  • platform/mac-wk1/compositing/repaint/composite-and-scale-change-expected.txt: Added.
7:24 PM Changeset in webkit [290627] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix use-after-move bug in NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=237294

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-28
Reviewed by Chris Dumez.

Luckily, they were just two booleans, and after you call std::move on a bool you get
technically undefined behavior. Luckily, in practice the bool value is unchanged.
We don't need to rely on that, though. Let's read from the location with defined behavior.

  • NetworkProcess/NetworkResourceLoader.cpp:
7:13 PM Changeset in webkit [290626] by Ross Kirsling
  • 2 edits in trunk/Source/WebKit

REGRESSION(r290470): CDMInstanceSession::setLogIdentifier must be guarded with !RELEASE_LOG_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=237302

Unreviewed build fix.

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:

(WebKit::RemoteCDMInstanceSessionProxy::setLogIdentifier):

7:00 PM Changeset in webkit [290625] by Simon Fraser
  • 10 edits in trunk

No animation when scroll snap scroller is navigated with the keyboard
https://bugs.webkit.org/show_bug.cgi?id=236244

Reviewed by Tim Horton.

Source/WebCore:

Keyboard-driven scrolls in overflow didn't animate, simply because scrollAnimatorEnabled()
wasn't implemented for RenderLayerScrollableArea.

I could not figure out a reliable way to test that we animated the scroll.

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::scrollAnimatorEnabled const):

  • rendering/RenderLayerScrollableArea.h:

Tools:

In fixing this bug I ran into the issue predicted in https://bugs.webkit.org/show_bug.cgi?id=234456#c6.
As a workaround, explicitly set NSScrollAnimationEnabled to NO in both processes. This is a partial revert
of r287228 which I tried, and failed to fix via bug 234488.

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:

(WTR::InjectedBundle::platformInitialize):

  • WebKitTestRunner/mac/main.mm:

(setDefaultsToConsistentValuesForTesting):

LayoutTests:

Turn off the scroll animator for these tests that assume that scrolling is instantaneous.

  • css3/scroll-snap/scroll-padding-overflow-paging.html:
  • fast/events/wheelevent-in-scrolling-div.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-rtl-with-keyboard.html:
6:38 PM Changeset in webkit [290624] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/mediastream/video-rotation-gpu-process-crash.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=237295

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-28

  • platform/ios/TestExpectations:
6:34 PM Changeset in webkit [290623] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebKit

[macOS] TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=237065
<rdar://problem/89324250>

Reviewed by Darin Adler.

Revert r290544 as it does not fully fix the flaky test. The flakiness is caused by network process exiting
before transactions of SQLiteStorageArea are committed. In NetworkProcess::destroySession, we schedule a
background task to commit transactions in the session, and remove session. In NetworkProcess::didClose, for
existing sessions, we schedule tasks to commit transaction and wait until the tasks are finished before exiting
network process. That means for a session, when NetworkProcess::destroySession is called before
NetworkProcess::didClose, process may exit before commit task (scheduled by NetworkProcess::destroySession) is
finished (NetworkProcess::didClose does not wait because session is already removed).

To solve this issue, let NetworkProcess::didClose check existing NetworkStorageManagers, instead of
NetworkSessions. NetworkStorageManager can outlive NetworkSession when it's finishing cleanup task
(including committing transactions) on its background thread; we want to ensure process exits after the cleanup
task is done.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didClose):

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::allNetworkStorageManagers):
(WebKit::NetworkStorageManager::forEach):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::NetworkStorageManager::~NetworkStorageManager):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/SQLiteStorageArea.cpp:

(WebKit::SQLiteStorageArea::SQLiteStorageArea):
(WebKit::SQLiteStorageArea::startTransactionIfNecessary):
(WebKit::SQLiteStorageArea::commitTransactionIfNecessary):
(WebKit::commitTransactionsAtExit): Deleted.

5:03 PM Changeset in webkit [290622] by Robert Jenner
  • 4 edits in trunk/LayoutTests

REBASELINE [ iOS15 ] fast/text/khmer-lao-font.html is a constant text failure
<rdar://88841324>

Unreviewed test gardening. Rebaseline for iOS15.

  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/fast/text/khmer-lao-font-expected.txt:
  • platform/ios/fast/text/khmer-lao-font-expected.txt:
4:59 PM Changeset in webkit [290621] by jer.noble@apple.com
  • 17 edits in trunk/Source

[Cocoa] Adopt -streamDataParser:didProvideContentKeySpecifier:forTrackID: delegate callback
https://bugs.webkit.org/show_bug.cgi?id=236109
<rdar://problem/88785844>

Reviewed by Eric Carlson.

Source/WebCore:

Re-land support after a rollout in r290311, this time with an off-by-default Experimental Feature
flag.

In addition to checking whether the renderer classes support AVContentKeySession, also check whether
the RuntimeSetting has been enabled. This requires passing that setting through to the
MediaSessionManagerCocoa singleton, so it can be accessed from platform/.

If the renderer support check succeeds and the setting is enabled, only then should the delegate for
AVStreamDataParser include support for the new -didProvideContentKeySpecifier callback. Subclass the
WebAVStreamDataParserListener into a new WebAVStreamDataParserWithKeySpecifierListener object, and
instantiate one or the other according to the support checks above.

  • page/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::setSampleBufferContentKeySessionSupportEnabled):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::sampleBufferContentKeySessionSupportEnabled const):

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

(WebCore::MediaSessionManagerCocoa::setSampleBufferContentKeySessionSupportEnabled):
(WebCore::MediaSessionManagerCocoa::sampleBufferContentKeySessionSupportEnabled):

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

(-[WebAVStreamDataParserWithKeySpecifierListener streamDataParser:didProvideContentKeySpecifier:forTrackID:]):
(WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeySpecifier:forTrackID:]): Deleted.

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

(WebCore::sampleBufferRenderersSupportKeySession):

Source/WebKit:

Pass the new RuntimeEnabledFeature through to the GPU process.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::setSampleBufferContentKeySessionSupportEnabled):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):

  • GPUProcess/GPUProcessCreationParameters.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::updatePreferences):

  • UIProcess/GPU/GPUProcessProxy.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
4:14 PM Changeset in webkit [290620] by Wenson Hsieh
  • 10 edits in trunk/Tools

Add API testing infrastructure for "Markup Image" and "Copy Cropped Image"
https://bugs.webkit.org/show_bug.cgi?id=236519
rdar://89154213

Reviewed by Tim Horton.

Add API testing support (as well as a new API test) for the "Markup Image" flow.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::TEST):
(TestWebKitAPI::invokeImageMarkupAction):

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:

Add an API test that triggers the "Markup Image" action, and verifies the following:

  • The first image is replaced with the canned image result (a 215-px-wide image of the WebKit logo).
  • The selection range is effectively unchanged.
  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.h:
  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.mm:

Add a declaration for ImageAnalysisMarkupSwizzler, a helper class that is used in the new API test to make
VisionKit return a canned image and cropped rect when invoking the SPI that corresponds to "Markup Image"; see
WebKitAdditions change for more information.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView selectedText]):

  • TestWebKitAPI/ios/TestUIMenuBuilder.h:
  • TestWebKitAPI/ios/TestUIMenuBuilder.mm:

(-[TestUIMenuBuilder actionWithTitle:]):

Refactor and rename this to return the found UIAction instead of just a BOOL indicating whether or not it could
be found, and change existing call sites above to use EXPECT_NULL and EXPECT_NOT_NULL.

(-[TestUIMenuBuilder containsActionWithTitle:]): Deleted.

  • TestWebKitAPI/ios/UIKitSPI.h:
3:48 PM Changeset in webkit [290619] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Weak link AVPictureInPictureController
https://bugs.webkit.org/show_bug.cgi?id=237227
<rdar://76011860>

Reviewed by Brent Fulgham.

Weak linking instead of soft linking should be a small performance improvement.

  • Configurations/WebCore.xcconfig:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(WebCore::supportsPictureInPicture):

3:26 PM Changeset in webkit [290618] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Remove release assert when UI process is blocking IOSurface IOKit access
https://bugs.webkit.org/show_bug.cgi?id=237278

Reviewed by Darin Adler.

Remove release assert in IOSurface::bytesPerRowAlignment() when UI process is blocking IOSurface IOKit access.
Instead, log this event, and return an appropriate value.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::bytesPerRowAlignment):

3:24 PM Changeset in webkit [290617] by Brandon
  • 2 edits in trunk

Add Brandon Stewart's name to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237288

Reviewed by Saam Barati.

Add Brandon Stewart's name to contributors.json

  • metadata/contributors.json:
3:09 PM Changeset in webkit [290616] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, address feedback from Darin regarding r290610.

  • platform/graphics/Color.h:

(WebCore::add):

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

Handle widow relayout differently
https://bugs.webkit.org/show_bug.cgi?id=235519

Patch by Rob Buis <rbuis@igalia.com> on 2022-02-28
Reviewed by Alan Bujtas.

Source/WebCore:

Handle widow relayout differently to prevent function call recursion.

Test: fast/multicol/widow-many-relayouts-crash.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::relayoutToAvoidWidows): Deleted.

  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::didBreakAtLineToAvoidWidow const):

LayoutTests:

  • fast/multicol/widow-many-relayouts-crash-expected.txt: Added.
  • fast/multicol/widow-many-relayouts-crash.html: Added.
1:48 PM Changeset in webkit [290614] by chris.reid@sony.com
  • 2 edits in trunk/Tools

[Win] vswhere should search for Visual Studio Build tools
https://bugs.webkit.org/show_bug.cgi?id=237229

Reviewed by Ross Kirsling.

  • Scripts/webkitdirs.pm:
1:19 PM Changeset in webkit [290613] by Devin Rousso
  • 13 edits in trunk/Source

Web Inspector: [Flexbox] Add options to show each area's CSS order and/or DOM index in the parent flex container
https://bugs.webkit.org/show_bug.cgi?id=237215

Reviewed by Patrick Angle.

This will help developers better understand how CSS order and the DOM index of each flex
item interact and result in what's eventually rendered.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Add an optional boolean parameter to DOM.showFlexOverlay:

  • showOrderNumbers controls whether labels with the computed CSS order value are shown over each flex item's area.

Source/WebCore:

  • inspector/agents/InspectorDOMAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::showFlexOverlay):
Pass along the optional boolean parameter showOrderNumbers.

  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::Highlight::FlexHighlightOverlay::encode const):
(WebCore::InspectorOverlay::Highlight::FlexHighlightOverlay::decode):
Add member bool for showOrderNumbers to Flex::Config.
Add member Vector<InspectorOverlayLabel> to FlexHighlightOverlay for drawing labels.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawFlexOverlay):
(WebCore::InspectorOverlay::buildFlexOverlay):
Use showOrderNumbers to (when enabled) add items to Vector<InspectorOverlayLabel> for
each flex item's computed CSS order and DOM index in the parent flex container.

Source/WebInspectorUI:

  • UserInterface/Base/Setting.js:

Add global WI.Setting for flexOverlayShowOrderNumbers.

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode.prototype.set layoutContextType): Added.
(WI.DOMNode.prototype.showLayoutOverlay): Added.
(WI.DOMNode.prototype.hideLayoutOverlay): Added.
(WI.DOMNode.prototype._handleLayoutOverlaySettingChanged): Renamed from _handleGridLayoutOverlaySettingChanged.
Listen for changes to the above WI.Setting and include the value when invoking DOM.showFlexOverlay.

  • UserInterface/Views/CSSFlexNodeOverlayListSection.js:

(WI.CSSFlexNodeOverlayListSection.prototype.initialLayout): Added.
Add UI for the above WI.Setting.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/CSSGridNodeOverlayListSection.js:

(WI.CSSGridNodeOverlayListSection.prototype.initialLayout):
Drive-by: Adjust a WI.UIString to avoid possible future clashing.

1:00 PM Changeset in webkit [290612] by Devin Rousso
  • 5 edits
    3 adds in trunk

Web Inspector: add IterableWeakSet
https://bugs.webkit.org/show_bug.cgi?id=237141

Reviewed by Patrick Angle.

Source/WebInspectorUI:

This allows clients to have a way to have an iterable collection that doesn't keep the
objects in the collection alive. We cannot just use WeakSet as it's not iterable (the
former) or Array/Set as it keeps the objects alive (the latter).

IterableWeakSet is a combination of:

  • a Set of WeakRef for each object, which gives us iterability with order preserved
  • a WeakMap of each object mapping to the wrapper WeakRef in the Set (see below)
  • a FinalizationRegistry to remove the wrapper WeakRef when the object is destroyed
  • UserInterface/Base/IterableWeakSet.js: Added.

(IterableWeakSet):
(IterableWeakSet.prototype.get size):
(IterableWeakSet.prototype.has):
(IterableWeakSet.prototype.add):
(IterableWeakSet.prototype.delete):
(IterableWeakSet.prototype.take):
(IterableWeakSet.prototype.clear):
(IterableWeakSet.prototype.keys):
(IterableWeakSet.prototype.values):
(IterableWeakSet.prototype.Symbol.iterator):
(IterableWeakSet.prototype.copy):
(IterableWeakSet.prototype.toJSON):
(IterableWeakSet.prototype.get _finalizationRegistry):
We could just have a Set/Array of WeakRef, but that would require iterating the entire
array to find the WeakRef that matches the given object, which is less efficient.

  • UserInterface/Controllers/GridOverlayConfigurationDiagnosticEventRecorder.js:

(WI.GridOverlayConfigurationDiagnosticEventRecorder):
Don't keep WI.DOMNode that are layoutOverlayShowing alive in order to record diagnostics.

  • UserInterface/Main.html:
  • UserInterface/Test.html:

LayoutTests:

  • inspector/unit-tests/iterableweakset.html: Added.
  • inspector/unit-tests/iterableweakset-expected.txt: Added.
12:26 PM Changeset in webkit [290611] by Robert Jenner
  • 2 edits
    1 delete in trunk/LayoutTests

REGRESSION(r288070): [ Monterey ] platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment.html is a constant text failure.
https://bugs.webkit.org/show_bug.cgi?id=236857

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-28

  • platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt: Removed.
  • platform/mac/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt: Previous file was in platform/mac/fast... instead of platform/mac/platform/mac/fast...
11:59 AM Changeset in webkit [290610] by Chris Dumez
  • 17 edits in trunk

Adopt the modern Hasher more widely
https://bugs.webkit.org/show_bug.cgi?id=237262

Reviewed by Sam Weinig.

Source/WebCore:

  • dom/MessagePortIdentifier.h:

(WebCore::add):
(WTF::MessagePortIdentifierHash::hash):
(WebCore::MessagePortIdentifier::hash const): Deleted.

  • history/BackForwardItemIdentifier.h:

(WebCore::add):
(WTF::BackForwardItemIdentifierHash::hash):
(WebCore::BackForwardItemIdentifier::hash const): Deleted.

  • loader/ResourceCryptographicDigest.h:

(WebCore::add):
(WTF::DefaultHash<WebCore::ResourceCryptographicDigest>::hash):

  • platform/graphics/Color.h:

(WebCore::add):
(WebCore::Color::hash const): Deleted.

  • platform/graphics/ColorHash.h:

(WTF::ColorHash::hash):

  • platform/graphics/Font.cpp:

(WebCore::add):
(WebCore::CharacterFallbackMapKeyHash::hash):

  • platform/graphics/FontCache.cpp:

(WebCore::add):
(WebCore::FontPlatformDataCacheKeyHash::hash):
(WebCore::FontCascadeCacheKeyHash::hash): Deleted.

  • platform/graphics/FontCache.h:

(WebCore::add):
(WebCore::FontCascadeCacheKeyHash::hash):

  • platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:

(WebCore::add):
(WebCore::FontFamilySpecificationKeyHash::hash):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.h:

(WebCore::add):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::Hash::hash):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::hash const): Deleted.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::add):
(WebCore::FallbackFontDescriptionKeyHash::hash):

Source/WebKit:

  • NetworkProcess/cache/NetworkCache.h:

(WebKit::NetworkCache::add):
(WTF::GlobalFrameIDHash::hash):
(WebKit::NetworkCache::GlobalFrameID::hash const): Deleted.

  • Platform/IPC/StringReference.cpp:

(IPC::StringReference::Hash::hash):

  • Platform/IPC/StringReference.h:

(IPC::add):

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

Fix typo in adattributiond sandbox
https://bugs.webkit.org/show_bug.cgi?id=237279

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-28
Reviewed by Chris Dumez.

After this change, it matches the value in com.apple.webkit.adattributiond.plist

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
11:18 AM Changeset in webkit [290608] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[webkit-patch] Allow user to opt out of browser for viewing the diff
https://bugs.webkit.org/show_bug.cgi?id=220925

Reviewed by Jonathan Bedard.

The user may legitimately have a browser installed yet not want to
use it to view the diff.

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

(User.can_open_url):

11:10 AM Changeset in webkit [290607] by Ross Kirsling
  • 2 edits in trunk/Source/WebKit

REGRESSION(r290588): Broke WinCairo and PlayStation debug builds
https://bugs.webkit.org/show_bug.cgi?id=237277

Unreviewed build fix.

  • Scripts/webkit/messages.py:

(conditions_for_header):

10:30 AM Changeset in webkit [290606] by Aditya Keerthi
  • 5 edits
    7 adds in trunk

[macOS] Unable to upload ".pages" files to file inputs accepting ".pages" and ".jpeg" files
https://bugs.webkit.org/show_bug.cgi?id=237219
rdar://89482882

Reviewed by Tim Horton and Said Abou-Hallawa.

Source/WebCore:

In r264286, WebKit began transcoding images of an unsupported format
to a supported format, for file inputs that accepted image types. For
example, selecting a HEIF image in an input that accepts JPEG images
would transcode the selected image to a JPEG image.

In order to determine when attempt transcoding, the logic added in
r264286 obtains the MIME type corresponding to the selected file's
extension, and compares that to the list of accepted MIME types.
If there is a mismatch, transcoding is attempted.

The ".pages" extension does not have a well-defined MIME type in
NSURLFileTypeMappings. This is due to the fact that a the extension
maps to both a file and a package type. Consequently, the retrieved
MIME type for ".pages" files is an empty string. Following r227051,
when the file input also accepts an image type, WebKit attempts to
transcode these files, and any others that do not have a well-defined
MIME type.

While the aforementioned behavior can be considered strange, it is not
an issue in practice, since WebKit will attempt to transcode the
image, fail to do so, and upload the original file. The failure is
detected in CGImageDestinationFinalize, which returns false if an image
was not successfully written. However, a recent regression in the
ImageIO framework is causing CGImageDestinationFinalize to return true,
even if image transcoding fails. This results in WebKit uploading a
zero byte JPEG file, when a user attempts to upload ".pages" files to
file inputs accepting ".pages" and ".jpeg" files.

Ideally, the described issue would be resolved by a fix in ImageIO.
However, a more immediate solution exists in WebKit: only attempt to
transcode files to an accepted image type, if the file selected is
image. ".pages" files are not images, and WebKit should not attempt
to transcode them. See below for further explanation of the solution.

Test: fast/forms/file/entries-api/pages-jpeg-open-panel.html

  • platform/graphics/cg/ImageUtilitiesCG.cpp:

(WebCore::transcodeImage):

Prior to using ImageIO to perform transcoding, WebKit obtains a Uniform
Type Identifier for the selected file using CGImageSourceCreateWithURL
and CGImageSourceGetType. If the file is not an image, a null string is
returned. WebKit can use this information to avoid the transcoding
attempt, and avoid calls to ImageIO methods further down this method.
Specifically, this solution works around the ImageIO bug by avoiding
the call to CGImageDestinationFinalize for non-images. The solution is
also an overall improvement, as WebKit now avoids unnecessary calls to
multiple ImageIO methods, in cases where we know transcoding will fail.

LayoutTests:

Add a layout test that contains a file input that accepts ".pages" and
".jpeg" files, and attempts to upload a ".pages" file.

  • TestExpectations:
  • fast/forms/file/entries-api/pages-jpeg-open-panel-expected.txt: Added.
  • fast/forms/file/entries-api/pages-jpeg-open-panel.html: Added.
  • fast/forms/file/entries-api/pdf-jpeg-open-panel-expected.txt: Added.
  • fast/forms/file/entries-api/pdf-jpeg-open-panel.html: Added.
  • fast/forms/file/entries-api/resources/documents/document.pages: Added.
  • fast/forms/file/entries-api/resources/documents/document.pdf: Added.
  • platform/mac-wk2/TestExpectations:
10:06 AM Changeset in webkit [290605] by Jonathan Bedard
  • 9 edits in trunk/Tools

Unreviewed, reverting r290583.

Breaks webkit-patch

Reverted changeset:

"'run-benchmark' script should log http requests during
benchmark run."
https://bugs.webkit.org/show_bug.cgi?id=237076
https://commits.webkit.org/r290583

10:03 AM Changeset in webkit [290604] by Simon Fraser
  • 7 edits in trunk

Revert r290548

It caused three tests to start failing.

Source/WebCore:

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::scrollAnimatorEnabled const): Deleted.

  • rendering/RenderLayerScrollableArea.h:

LayoutTests:

  • css3/scroll-snap/scroll-padding-overflow-paging.html:
  • fast/events/wheelevent-in-scrolling-div.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-rtl-with-keyboard.html:
10:00 AM Changeset in webkit [290603] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Use DeferTerminationForAWhile in Interpreter::unwind
https://bugs.webkit.org/show_bug.cgi?id=237176

Reviewed by Mark Lam.

If we're unwinding the stack due to a regular exception (not a TerminationException), then
we want to use a DeferTerminationForAWhile scope. This is because we want to avoid a
TerminationException being raised (due to a concurrent termination request) in the middle
of unwinding. The unwinding code only checks if we're handling a TerminationException before
it starts unwinding and is not expecting this status to change in the middle. Without the
DeferTerminationForAWhile scope, control flow may end up in an exception handler, and effectively
"catch" the newly raised TerminationException, which should not be catchable.

On the other hand, if we're unwinding the stack due to a TerminationException, we do not need
nor want the DeferTerminationForAWhile scope. This is because on exit, DeferTerminationForAWhile
will set the VMTraps NeedTermination bit if termination is in progress. The system expects the
NeedTermination bit to be have been cleared by VMTraps::handleTraps() once the TerminationException
has been raised. Some legacy client apps relies on this and expects to be able to re-enter the
VM after it exits due to termination. If the NeedTermination bit is set, upon re-entry, the
VM will behave as if a termination request is pending and terminate almost immediately, thereby
breaking the legacy client apps.

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::notifyDebuggerOfUnwinding):
(JSC::sanitizeRemoteFunctionException):
(JSC::Interpreter::unwind):
(JSC::notifyDebuggerOfUnwinding): Deleted.

9:49 AM Changeset in webkit [290602] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.10

Tag Safari-613.1.17.1.10.

9:49 AM Changeset in webkit [290601] by Russell Epstein
  • 8 edits
    2 deletes in branches/safari-613.1.17.1-branch

Revert r290518. rdar://problem/86582214

9:45 AM Changeset in webkit [290600] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.10

9:37 AM Changeset in webkit [290599] by commit-queue@webkit.org
  • 6 edits in trunk/Tools

Enable python3 for lighttpd
https://bugs.webkit.org/show_bug.cgi?id=236938

Patch by Pascal Abresch <nep@packageloss.eu> on 2022-02-28
Reviewed by Darin Adler.

This is needed for the Haiku port to use the python3 tests.
This patch also removes the PHP support since all PHP tests have been removed and there are
currently no plans to include new ones in the future.

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd._prepare_config):

  • Scripts/webkitpy/layout_tests/servers/lighttpd.conf:
9:10 AM Changeset in webkit [290598] by graouts@webkit.org
  • 4 edits in trunk

[web-animations] web-animations/interfaces/Animatable/getAnimations.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=237271

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

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

Source/WebCore:

Our computation for the relevant state did not account for the playback rate. We rewrite
the function to match the spec exactly.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::computeRelevance):

8:38 AM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
8:32 AM Changeset in webkit [290597] by commit-queue@webkit.org
  • 2 edits in trunk

-Wodr warning spam caused by ENABLE(BINDING_INTEGRITY)
https://bugs.webkit.org/show_bug.cgi?id=229867
<rdar://problem/82975115>

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-02-28
Reviewed by Carlos Garcia Campos.

Build WebKit with -Wno-odr. This warning is not salvagable, and it's impossible to suppress
locally.

  • Source/cmake/WebKitCompilerFlags.cmake:

2022-02-24 Matt Woodrow <Matt Woodrow>

Unreviewed, update my (Matt Woodrow) status to committer.

  • metadata/contributors.json:
7:52 AM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
7:36 AM Changeset in webkit [290596] by Jonathan Bedard
  • 3 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016 >

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/steps.py:

(RunWebKitTests): Change invocation to Python 3.

  • Tools/CISupport/ews-build/steps_unittest.py:

(test_success):
(test_warnings):

Canonical link: https://commits.webkit.org/247872@main

6:50 AM Changeset in webkit [290595] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk

FTP EPLF does not handle directory
https://bugs.webkit.org/show_bug.cgi?id=45113

Patch by Pascal Abresch <nep@packageloss.eu> on 2022-02-28
Reviewed by Darin Adler.

The code used "!result.type" to check for an invalid type. However,
the first type in the FTPEntryType enum is FTPDirectoryEntry, so this
was actually returning true for directories, turning them into "junk"
entries which would not be listed.

Since the code for EPLF can only result in either files, directories,
or uninitialized/junk entries, the check can be removed, returning
result.type is the correct thing to do in all 3 cases.
Source/WebCore:

Test: http/tests/misc/ftp-eplf-directory.py

  • loader/FTPDirectoryParser.cpp:

(WebCore::parseOneFTPLine):

LayoutTests:

  • http/tests/misc/ftp-eplf-directory-expected.txt: Added.
  • http/tests/misc/ftp-eplf-directory.py: Added.
  • platform/gtk/TestExpectations:
6:01 AM Changeset in webkit [290594] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/Source/WebKit

REGRESSION(r290588) Missing symbol jsValueForDecodedMessage<107> (IPCStreamTesterProxy_WasCreated)
https://bugs.webkit.org/show_bug.cgi?id=237268

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-28
Reviewed by Antti Koivisto.

Add the class IPCStreamTesterProxy now that *MessageReceiver.cpp
are needed. After commit
"IPC_TESTING_API MessageArgumentDescriptions.cpp is slow to compile"
MessageReceiver.cpp files contain also message-specific functions that
need to be compiled, even though IPCStreamTesterProxy itself is not
used.

  • Shared/IPCStreamTesterProxy.h: Added.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
2:47 AM Changeset in webkit [290593] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.36

Merge r290586 - [ATSPI] Always expose table cells (layout and CSS) that have rendered text content
https://bugs.webkit.org/show_bug.cgi?id=237204

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

LayoutTests:

  • accessibility/gtk/nested-block-element-children-expected.txt: Rebaseline.
  • platform/glib/TestExpectations: Remove accessibility/generated-content-with-display-table-crash.html.
  • platform/gtk/TestExpectations: Remove accessibility/gtk/nested-block-element-children.html.
2:47 AM Changeset in webkit [290592] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.36

Merge r290585 - [GTK][a11y] Test accessibility/gtk/xml-roles-exposed.html is failing since ATSPI switch
https://bugs.webkit.org/show_bug.cgi?id=237202

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Handle the special case of form item having unknown aria role to be exposed as landmark.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::effectiveRole const):

LayoutTests:

  • platform/gtk/TestExpectations: Remove accessibility/gtk/xml-roles-exposed.html.
  • platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt: Rebaseline.
2:18 AM Changeset in webkit [290591] by youenn@apple.com
  • 17 edits in trunk/Source/WebKit

RemoteVideoFrameObjectHeap should process its IPC messages in a background thread
https://bugs.webkit.org/show_bug.cgi?id=237198

Reviewed by Darin Adler.

Minor refactoring to have addWorkQueueMessageReceiver take a reference instead of a pointer.
Make RemoteVideoFrameObjectHeap become a WorkQueueMessageReceiver.
This ensures that a main thread hang in GPUProcess will not block big memory releases or WebProcess access to pixel buffers.

No observable change of behavior.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::videoFrameObjectHeap const):

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

(WebKit::remoteVideoFrameObjectHeapQueue):
(WebKit::RemoteVideoFrameObjectHeap::create):
(WebKit::RemoteVideoFrameObjectHeap::RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::~RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::close):
(WebKit::RemoteVideoFrameObjectHeap::releaseVideoFrame):
(WebKit::RemoteVideoFrameObjectHeap::getVideoFrameBuffer):
(WebKit::RemoteVideoFrameObjectHeap::pixelBuffer):
(WebKit::RemoteVideoFrameObjectHeap::stopListeningForIPC): Deleted.

  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::addConnection):

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::addConnection):

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::startReceivingMessageFromConnection):

  • NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.cpp:

(WebKit::RTCDataChannelRemoteManagerProxy::registerConnectionToWebProcess):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::addWorkQueueMessageReceiver):

  • Platform/IPC/Connection.h:
  • UIProcess/mac/SecItemShimProxy.cpp:

(WebKit::SecItemShimProxy::initializeConnection):

  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:

(WebKit::RemoteAudioSourceProviderManager::setConnection):

  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:

(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::RemoteVideoFrameObjectHeapProxyProcessor):

  • WebProcess/Inspector/WebInspectorInterruptDispatcher.cpp:

(WebKit::WebInspectorInterruptDispatcher::initializeConnection):

  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp:

(WebKit::RTCDataChannelRemoteManager::setConnection):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::initializeConnection):

  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:

(WebKit::ViewUpdateDispatcher::initializeConnection):

2:03 AM Changeset in webkit [290590] by youenn@apple.com
  • 11 edits in trunk/Source

Ensure RemoteMediaPlayerProxy sets its resource owner to pixel buffers created by its player
https://bugs.webkit.org/show_bug.cgi?id=237200

Reviewed by Eric Carlson.

Source/WebCore:

Add API to set the resource owner for a player private.
In case player private is running in GPUProcess, use resource owner to mark pixel buffers as owned by the resource owner.
Covered by existing tests.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setResourceOwner):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):

Source/WebKit:

Set resource owner to the player private.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
1:56 AM Changeset in webkit [290589] by Angelos Oikonomopoulos
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Reuse known register values on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=237207

Reviewed by Žan Doberšek.

Set up a CachedTempRegister for each of addressTempRegister,
dataTempRegister on ARMv7 and use them to generate shorter instruction
sequences when possible.

Saves 1.5-2% of code size on JS2 with no measurable difference in
performance.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::CachedTempRegister::value):

  • assembler/MacroAssemblerARMv7.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::MacroAssemblerARMv7):
(JSC::MacroAssemblerARMv7::add32):
(JSC::MacroAssemblerARMv7::getEffectiveAddress):
(JSC::MacroAssemblerARMv7::add64):
(JSC::MacroAssemblerARMv7::lshift32):
(JSC::MacroAssemblerARMv7::mul32):
(JSC::MacroAssemblerARMv7::rshift32):
(JSC::MacroAssemblerARMv7::urshift32):
(JSC::MacroAssemblerARMv7::load32):
(JSC::MacroAssemblerARMv7::load16):
(JSC::MacroAssemblerARMv7::load16SignedExtendTo32):
(JSC::MacroAssemblerARMv7::load8):
(JSC::MacroAssemblerARMv7::load8SignedExtendTo32):
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::store8):
(JSC::MacroAssemblerARMv7::storePair32):
(JSC::MacroAssemblerARMv7::loadDouble):
(JSC::MacroAssemblerARMv7::loadFloat):
(JSC::MacroAssemblerARMv7::storeDouble):
(JSC::MacroAssemblerARMv7::storeFloat):
(JSC::MacroAssemblerARMv7::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32):
(JSC::MacroAssemblerARMv7::long_move):
(JSC::MacroAssemblerARMv7::short_move):
(JSC::MacroAssemblerARMv7::move):
(JSC::MacroAssemblerARMv7::compare32AndSetFlags):
(JSC::MacroAssemblerARMv7::branch8):
(JSC::MacroAssemblerARMv7::branchTest8):
(JSC::MacroAssemblerARMv7::branchTest16):
(JSC::MacroAssemblerARMv7::farJump):
(JSC::MacroAssemblerARMv7::branchMul32):
(JSC::MacroAssemblerARMv7::nearCall):
(JSC::MacroAssemblerARMv7::nearTailCall):
(JSC::MacroAssemblerARMv7::call):
(JSC::MacroAssemblerARMv7::compare8):
(JSC::MacroAssemblerARMv7::test8):
(JSC::MacroAssemblerARMv7::jump):
(JSC::MacroAssemblerARMv7::makeBranch):
(JSC::MacroAssemblerARMv7::setupArmAddress):
(JSC::MacroAssemblerARMv7::makeBaseIndexBase):
(JSC::MacroAssemblerARMv7::moveFixedWidthEncoding):
(JSC::MacroAssemblerARMv7::cachedDataTempRegister):
(JSC::MacroAssemblerARMv7::cachedAddressTempRegister):
(JSC::MacroAssemblerARMv7::getCachedDataTempRegisterIDAndInvalidate):
(JSC::MacroAssemblerARMv7::getCachedAddressTempRegisterIDAndInvalidate):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::emitFastPathImpl):

1:10 AM Changeset in webkit [290588] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebKit

IPC_TESTING_API MessageArgumentDescriptions.cpp is slow to compile
https://bugs.webkit.org/show_bug.cgi?id=237195

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-28
Reviewed by Antti Koivisto.

IPC testing API needs convert message data buffer, IPC::Decoder, to
JSValue. This is a run-time operation.
IPC message decoding is based on templates, a compile time operation.
IPC generator generates MessageArgumentDescriptions.cpp with
a big switch. The switch has a case for each message name. The case would
call templated jsValueForDecodedArguments<Arguments>, where the Arguments
is the type tuple for the message arguments.

The above would mean that MessageArgumentDescriptions would need to
include all the headers for all the messages in WebKit in order
to populate the Arguments tuple for particular message.
This would cause MessageArgumentDescriptions to be slow to compile because
it would need all the headers in Source/WebKit related to message parameter types.

This would show up as slow compiles that would consume much memory (5-6gb) and do a
lot of work.

It would also have to compile the MessageArgumentDescriptions each time
any of the headers were touched.

Change this so that the big switch calls a declared but not defined
template jsValueForDecodedMessage<MessageName> for each MessageName case in the
switch.

Instantiate the template for each message in the *MessageReceiver.cpp file
that each message receiver has. This file already has to include all the
headers used for that particular message receiver. These files are small and compile
fast.

After this change MessageArgumentDescriptions.cpp only includes the message
definition headers, does not use much more than the standard 1gb+ of memory
while compiling and is relatively fast to compile. Also if any of the dependent
headers are touched, only the corresponding small *MessageReceiver.cpp files are compiled.

This change is needed for further improve the JS testing API implementation.
Adding new operations that employ the same strategy, eg. switch and a complex
template instantiation, would possibly just make the matter worse. New operations
that are needed are message sends, which use templates similarly to the message
decode case that is implement here.

This change regenerates the checked-in test content that can be used to review
what kind of changes the real MessageArgumentDescriptions.cpp and MessageReceiver.cpps
get.

  • Platform/IPC/JSIPCBinding.h:
  • Scripts/webkit/messages.py:

(generate_message_handler):
(generate_js_value_conversion_function):
(generate_message_argument_description_implementation):

  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:

(IPC::jsValueForArguments):
(IPC::jsValueForReplyArguments):

  • Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithCVPixelBuffer_SendCVPixelBuffer>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithCVPixelBuffer_ReceiveCVPixelBuffer>):

  • Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithIfMessage_LoadURL>):

  • Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithImageData_SendImageData>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithImageData_ReceiveImageData>):

  • Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadSomething>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TouchEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_AddEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadSomethingElse>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DidReceivePolicyDecision>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_Close>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_PreferencesDidChange>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SendDoubleAndFloat>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SendInts>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_CreatePlugin>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_RunJavaScriptAlert>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_GetPlugins>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithLegacyReceiver_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithLegacyReceiver_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TestParameterAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TemplateTest>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SetVideoLayerID>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DidCreateWebProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_InterpretKeyEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DeprecatedOperation>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_ExperimentalOperation>):

  • Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithSemaphore_SendSemaphore>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSemaphore_ReceiveSemaphore>):

  • Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithStreamBuffer_SendStreamBuffer>):

  • Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendString>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendStringSynchronized>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendMachSendRight>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_ReceiveMachSendRight>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendAndReceiveMachSendRight>):

  • Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessage>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestSyncMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestSyncMessage>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestSynchronousMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestSynchronousMessage>):

  • Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:

(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadSomething>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TouchEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_AddEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadSomethingElse>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DidReceivePolicyDecision>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_Close>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_PreferencesDidChange>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SendDoubleAndFloat>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SendInts>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_CreatePlugin>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_RunJavaScriptAlert>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_GetPlugins>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutAttributes_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutAttributes_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TestParameterAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TemplateTest>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SetVideoLayerID>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DidCreateWebProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_InterpretKeyEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DeprecatedOperation>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_ExperimentalOperation>):

1:01 AM Changeset in webkit [290587] by ntim@apple.com
  • 2 edits in trunk/Source/WTF

Enable inert attribute feature flag
https://bugs.webkit.org/show_bug.cgi?id=235668

Reviewed by Darin Adler.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:00 AM Changeset in webkit [290586] by Carlos Garcia Campos
  • 6 edits in trunk

[ATSPI] Always expose table cells (layout and CSS) that have rendered text content
https://bugs.webkit.org/show_bug.cgi?id=237204

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

LayoutTests:

  • accessibility/gtk/nested-block-element-children-expected.txt: Rebaseline.
  • platform/glib/TestExpectations: Remove accessibility/generated-content-with-display-table-crash.html.
  • platform/gtk/TestExpectations: Remove accessibility/gtk/nested-block-element-children.html.
12:58 AM Changeset in webkit [290585] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][a11y] Test accessibility/gtk/xml-roles-exposed.html is failing since ATSPI switch
https://bugs.webkit.org/show_bug.cgi?id=237202

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Handle the special case of form item having unknown aria role to be exposed as landmark.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::effectiveRole const):

LayoutTests:

  • platform/gtk/TestExpectations: Remove accessibility/gtk/xml-roles-exposed.html.
  • platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt: Rebaseline.
12:29 AM Changeset in webkit [290584] by graouts@webkit.org
  • 4 edits in trunk

[web-animations] web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=237259

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt:

Source/WebCore:

We incorrectly threw when processing a null or undefined value when an iterable was provided to setKeyframes().
We now correctly insert an empty keyframe if such a value is provided.

  • animation/KeyframeEffect.cpp:

(WebCore::processIterableKeyframes):

Feb 27, 2022:

11:07 PM Changeset in webkit [290583] by Dewei Zhu
  • 9 edits in trunk/Tools

'run-benchmark' script should log http requests during benchmark run.
https://bugs.webkit.org/show_bug.cgi?id=237076
<rdar://89270825>

Reviewed by Simon Fraser.

Add support to log http requests during benchmark run for diagnostic purpose.

  • Scripts/webkitpy/init.py: Update 'attr' package version to 20.3.0 so match upgraded twisted version
  • Scripts/webkitpy/autoinstalled/twisted.py: Upgrade twisted version to latest python2 & python3 compatibile

version.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Ensure benchmark diagnostic directory is created.

(BenchmarkRunner.init):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py: Add '--log-path'

arugment to allow specify logging output and it defaults to '/tmp/run-benchmark-http.log'

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:

(HTTPServerDriver.set_device_id):
(HTTPServerDriver):
(HTTPServerDriver.set_http_log):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Pass http log path to

twisted http server if specified.
(SimpleHTTPServerDriver.init):
(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.set_http_log):

  • Scripts/webkitpy/benchmark_runner/run_benchmark.py: Fix a tiny bug that default_diagnose_dir() is involked twice in

argument parser help message.
(config_argument_parser):

  • Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py: Set http request log path if diagnostic directory

is specified.
(WebServerBenchmarkRunner.init):

Canonical link: https://commits.webkit.org/247861@main

9:09 PM Changeset in webkit [290582] by sihui_liu@apple.com
  • 10 edits in trunk/Source/WebKit

Add a feature flag for using general storage directory
https://bugs.webkit.org/show_bug.cgi?id=237186
rdar://89521373

Reviewed by Chris Dumez.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):

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

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
8:17 PM Changeset in webkit [290581] by Said Abou-Hallawa
  • 6 edits in trunk/Source

[GPU Process] Deleted unneeded constructors from DisplayList::Recorder classes
https://bugs.webkit.org/show_bug.cgi?id=237261

Reviewed by Wenson Hsieh.

Source/WebCore:

This should have been done in r289594.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

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

  • platform/graphics/displaylists/DisplayListRecorder.h:

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
8:01 PM Changeset in webkit [290580] by Jonathan Bedard
  • 71 edits
    2 deletes in trunk

webkitpy: WebSocket server doesn't support Python 3
https://bugs.webkit.org/show_bug.cgi?id=230319
<rdar://problem/58814743>

Reviewed by Fujii Hironori.

Tools:

  • Scripts/new-run-webkit-websocketserver: Change shebang.
  • Scripts/webkitpy/layout_tests/servers/websocket_server.py:

(PyWebSocket._prepare_config): Invoke WebSocket server with Python 3.

LayoutTests:

Make all tests Python 3 compatible, even at the cost of Python 2
compatibility, since WebSocket tests are always invoked with Python 3.

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/binary-frames_wsh.py:

(web_socket_transfer_data):
(all_distinct_bytes):

  • http/tests/websocket/tests/hybi/broken-utf8_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/check-binary-messages_wsh.py:

(web_socket_transfer_data):
(all_distinct_bytes):

  • http/tests/websocket/tests/hybi/client-close-2-expected.txt:
  • http/tests/websocket/tests/hybi/client-close-2.html:
  • http/tests/websocket/tests/hybi/client-close-2_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/client-close-expected.txt:
  • http/tests/websocket/tests/hybi/client-close.html:
  • http/tests/websocket/tests/hybi/client-close_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/close-code-and-reason_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/close-on-unload_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/compressed-control-frame_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/cookie_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/deflate-frame_wsh.py:

(_get_deflate_frame_extension_processor):
(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/echo-cookie_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/echo_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/fragmented-binary-frames_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/handshake-fail-by-extensions-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-maxlength_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-mismatch-protocol-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-more-extensions-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-no-accept-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-no-connection-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-no-cr_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-no-upgrade-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-prepended-null_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-fail-by-wrong-accept-header_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-invalid-parameter_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-manual_wsh.py:
  • http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-unsolicited-negotiation-response_wsh.py:
  • http/tests/websocket/tests/hybi/imported/blink/permessage-deflate_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/inspector/binary_wsh.py:

(web_socket_transfer_data):
(all_distinct_bytes):

  • http/tests/websocket/tests/hybi/invalid-continuation_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/pong_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/protocol-test_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/reserved-bits_wsh.py:

(_get_deflate_frame_extension_processor):
(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/reserved-opcodes_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/send-file-blob_wsh.py:

(web_socket_transfer_data):
(all_distinct_bytes):

  • http/tests/websocket/tests/hybi/too-long-payload_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/unicode_wsh.py:
  • http/tests/websocket/tests/hybi/unmasked-frames_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/workers/resources/binary-frames_wsh.py:

(web_socket_transfer_data):
(all_distinct_bytes):

  • http/tests/websocket/tests/hybi/workers/resources/check-binary-messages_wsh.py:

(web_socket_transfer_data):
(all_distinct_bytes):

  • http/tests/websocket/tests/hybi/workers/resources/no-onmessage-in-sync-op_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/workers/resources/protocol-test_wsh.py:

(web_socket_do_extra_handshake):

  • http/tests/websocket/tests/hybi/zero-length-text_wsh.py:

(web_socket_transfer_data):

  • platform/glib/TestExpectations:
  • platform/ios-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt:
  • platform/mac-wk2/http/tests/websocket/tests/hybi/client-close-2-expected.txt: Removed.
  • platform/mac-wk2/http/tests/websocket/tests/hybi/client-close-expected.txt: Removed.
  • platform/mac-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
7:28 PM Changeset in webkit [290579] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk

Unreviewed, reverting r290577.
https://bugs.webkit.org/show_bug.cgi?id=237264

Breaks ios-wk2 layout test.

Reverted changeset:

"Compute correct containing block override size for items that
are subgridden in one dimension only."
https://bugs.webkit.org/show_bug.cgi?id=236951
https://commits.webkit.org/r290577

7:24 PM Changeset in webkit [290578] by Wenson Hsieh
  • 8 edits in trunk/Source

Invoking "Markup Image" should preserve the existing selection range
https://bugs.webkit.org/show_bug.cgi?id=237242

Reviewed by Darin Adler.

Source/WebCore:

Move the implementation of replaceNodeFromPasteboard out of the macOS-specific implementation file and into
EditorCocoa instead, so that we can use it on both iOS and macOS to handle the "Markup Image" action. See WebKit
ChangeLog for more details.

  • editing/Editor.h:
  • editing/cocoa/EditorCocoa.mm:

(WebCore::maybeCopyNodeAttributesToFragment):
(WebCore::Editor::replaceNodeFromPasteboard):

Also make a few minor adjustments while we're moving this code:

  • Make this take a reference instead of a pointer (the method always expects a non-null Node pointer anyways).
  • Add a FIXME mentioning that we can just delete setInsertionPasteboard altogether once Mail compose on

macOS uses WebKit2.

  • Unconditionally pass false for whether or not we should enable smart paste when replacing the node. This

prevents us from inserting spaces around the replacement image element when triggering the "Markup Image"
item.

  • Use makeRangeSelectingNode instead of makeRangeSelectingNodeContents when selecting the node to replace.

This allows us to handle the case where the node to replace cannot contain children for editing (in
particular, image elements).

Note that this codepath (replaceNodeFromPasteboard) is currently only exercised by WebKitLegacy service
controls code that was originally intended for use by Mail compose, but never ended up being used.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::pasteWithPasteboard):
(WebCore::maybeCopyNodeAttributesToFragment): Deleted.
(WebCore::Editor::replaceNodeFromPasteboard): Deleted.

Source/WebKit:

Make a few adjustments to replaceWithPasteboardData, such that it attempts to restore the previous selection
range after replacing the target element. If the previous selection is no longer valid (i.e., it was orphaned as
a result of the editing command used to replace the element), then we fall back to restoring the visible
character range of the previous selection, relative to the editable root (or the body if there is none).

API tests will be added in https://webkit.org/b/236519, once we're able to swizzle out the underlying VisionKit
methods in order to make these tests run reliably.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::OverridePasteboardForSelectionReplacement::OverridePasteboardForSelectionReplacement):
(WebKit::OverridePasteboardForSelectionReplacement::~OverridePasteboardForSelectionReplacement):

Add a helper RAII object that encapsulates logic for setting and unsetting data on the override pasteboard. Use
this in the two methods below.

(WebKit::WebPage::replaceWithPasteboardData):

Switch to using the refactored Editor::replaceNodeFromPasteboard method instead of calling to the adjacent
replaceSelectionWithPasteboardData method below. Using this method allows us to avoid manually selecting the
target element here, and also avoids smart pasteboard replacement (which may insert spaces before or after the
image); the latter is important in order to correctly restore the previous selection's character range in the
case where the previous selection range was orphaned by the replacement.

(WebKit::WebPage::replaceSelectionWithPasteboardData):

Source/WebKitLegacy/mac:

See WebKit and WebCore ChangeLogs for more detail.

  • Misc/WebSharingServicePickerController.mm:

(-[WebSharingServicePickerController didShareImageData:confirmDataIsValidTIFFData:]):

Adjust this call site to pass in a reference instead of a pointer. Also deploy RefPtr in some adjacent code.

7:03 PM Changeset in webkit [290577] by Matt Woodrow
  • 9 edits
    2 adds in trunk

Compute correct containing block override size for items that are subgridden in one dimension only.
https://bugs.webkit.org/show_bug.cgi?id=236951

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Added new WPT similar to auto-track-sizing-001 which adds new variations
with nested subgrids and varying whether the other axis is subgridded.

  • web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002-expected.html: Added.
  • web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002.html: Added.

Source/WebCore:

Items that are subgridded in one dimension will be included in the track sizing algorithm of the
outer grid for that dimension. When measuring their size in the subgridded dimension, we need to
set their containing block size in the other (non-subgridded) dimension, which is only available
from the subgrid's track sizing, not the outer track sizes.

This recurses up to set the override size on the subgrid element instead, and forces a layout
there, which should copy down subgrid track sizes and compute the other dimension, making it
available on the inner item we need.

Test: imported/w3c/web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002.html

  • rendering/GridLayoutFunctions.cpp:

(WebCore::GridLayoutFunctions::extraMarginForSubgridAncestors):

  • rendering/GridLayoutFunctions.h:
  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForChild const):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::isSubgridOf):

  • rendering/RenderGrid.h:

LayoutTests:

Marked existing WPT as passing.

6:14 PM Changeset in webkit [290576] by Matt Woodrow
  • 4 edits in trunk

Convert grid direction to be relative to subgrid when accounting for extra margin.
https://bugs.webkit.org/show_bug.cgi?id=236954

Reviewed by Dean Jackson.

Source/WebCore:

|direction| is passed as a direction relative to |grid|, so we need to convert it
to be a direction relative to the subgrid item in order to account for margin on
the correct edge.

Marks existing test orthogonal-writing-mode-003.html as passing.

  • rendering/GridLayoutFunctions.cpp:

(WebCore::GridLayoutFunctions::marginLogicalSizeForChild):

LayoutTests:

Marks existing test orthogonal-writing-mode-003.html as passing.

5:24 PM Changeset in webkit [290575] by Chris Dumez
  • 100 edits in trunk

Omit template parameter for SetForScope<> variables
https://bugs.webkit.org/show_bug.cgi?id=237258

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitNode):

  • debugger/Debugger.cpp:

(JSC::Debugger::dispatchFunctionToObservers):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::setLocalOrTmp):
(JSC::DFG::ByteCodeParser::setArgument):

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::BackendDispatcher::dispatch):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseAsyncGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseFunctionExpression):
(JSC::Parser<LexerType>::parseAsyncFunctionExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):

Source/WebCore:

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::performDeferredCacheUpdate):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::define):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::evaluateModule):
(WebCore::ScriptController::callInWorld):
(WebCore::ScriptController::executeJavaScriptURL):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::addFontFaceRule):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeCompoundSelector):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementQueue::invokeAll):

  • dom/Document.cpp:

(WebCore::Document::updateRenderTree):
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
(WebCore::Document::destroyRenderTree):
(WebCore::Document::hitTest):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • dom/Microtasks.cpp:

(WebCore::MicrotaskQueue::performMicrotaskCheckpoint):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::forEachActiveDOMObject const):

  • dom/Traversal.cpp:

(WebCore::NodeIteratorBase::acceptNode):

  • editing/Editor.cpp:

(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::copyFont):
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::pasteAsQuotation):
(WebCore::Editor::pasteFont):

  • history/BackForwardCache.cpp:

(WebCore::BackForwardCache::pruneToSizeNow):
(WebCore::BackForwardCache::removeAllItemsForPage):

  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::updateAssociatedAttributeFromTokens):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultEventHandler):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::focusAndShowValidationMessage):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::reset):
(WebCore::HTMLFormElement::constructEntryList):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::scheduleLoad):

  • html/parser/CSSPreloadScanner.cpp:

(WebCore::CSSPreloadScanner::scan):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::resolveCustomStyle):

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::scheduleLoad):

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::handleProvisionalLoadFailure):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load):
(WebCore::FrameLoader::clearProvisionalLoadForPolicyCheck):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::pruneLiveResourcesToSize):
(WebCore::MemoryCache::pruneDeadResourcesToSize):

  • page/Chrome.cpp:

(WebCore::Chrome::runModal const):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::handleContextMenuEvent):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::suspendForBackForwardCache):

  • page/DragController.cpp:

(WebCore::DragController::performDragOperation):

  • page/EventSource.cpp:

(WebCore::EventSource::doExplicitLoadCancellation):

  • page/FrameView.cpp:

(WebCore::FrameView::applyRecursivelyWithVisibleRect):
(WebCore::FrameView::updateEmbeddedObjects):
(WebCore::FrameView::autoSizeIfEnabled):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layout):
(WebCore::FrameViewLayoutContext::runAsynchronousTasks):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::didReceiveHeaders):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::tryToBeginDragAtPoint):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):

  • platform/PreviewConverter.cpp:

(WebCore::PreviewConverter::iterateClients):
(WebCore::PreviewConverter::replayToClient):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::clientWillBeginPlayback):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):

  • platform/graphics/mac/WebLayer.mm:

(-[WebSimpleLayer renderInContext:]):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawTexture):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
(WebCore::TextureMapperLayer::paintRecursive):

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

(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):

  • platform/ios/LegacyTileLayer.mm:

(-[LegacyTileLayer renderInContext:]):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::paint):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::pushMappingsToAncestor):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::computeVisibleRectInContainer const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

  • rendering/svg/LegacyRenderSVGRoot.cpp:

(WebCore::LegacyRenderSVGRoot::layout):

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • storage/StorageMap.cpp:

(WebCore::StorageMap::setItemIgnoringQuota):

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyCustomProperty):
(WebCore::Style::Builder::applyCascadeProperty):

  • style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::invalidateWithMatchElementRuleSets):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::createDocumentResolver):
(WebCore::Style::Scope::createOrFindSharedShadowTreeResolver):
(WebCore::Style::Scope::updateResolver):

  • svg/SVGPathBlender.cpp:

(WebCore::SVGPathBlender::addAnimatedPath):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::evaluateScriptIfNecessary):

Source/WebKit:

  • NetworkProcess/storage/QuotaManager.cpp:

(WebKit::QuotaManager::handleRequests):

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(createEncodedObject):
(decodeObject):

  • UIProcess/API/glib/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::filterKeyEvent):

  • UIProcess/API/glib/WebKitWebView.cpp:

(WebKitWebViewClient::frameDisplayed):

  • UIProcess/API/gtk/InputMethodFilterGtk.cpp:

(WebKit::InputMethodFilter::filterKeyEvent):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateTextTouchBar):

  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::open):
(WebKit::WebInspectorUIProxy::closeFrontendPageAndWindow):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

  • UIProcess/_WKWebViewPrintFormatter.mm:

(-[_WKWebViewPrintFormatter _setSnapshotPaperRect:]):

  • UIProcess/gtk/ClipboardGtk3.cpp:

(WebKit::Clipboard::write):

  • UIProcess/gtk/WebDateTimePickerGtk.cpp:

(WebKit::WebDateTimePickerGtk::update):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView becomeFirstResponderForWebView]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView unsuppressSoftwareKeyboardUsingLastAutocorrectionContextIfNeeded]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker handleDatePickerPresentationDismissal]):
(-[WKDateTimePicker removeDatePickerPresentation]):

  • WebProcess/Plugins/Plugin.cpp:

(WebKit::Plugin::destroyPlugin):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::purgeBackingStores):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::stopLoadingDueToProcessSwap):
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::keyEvent):
(WebKit::WebPage::restoreSessionInternal):
(WebKit::WebPage::dispatchTouchEvent):
(WebKit::WebPage::setInitialFocus):
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::createAppHighlightInSelectedRange):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::requestDragStart):
(WebKit::WebPage::requestAdditionalItemsForDragSession):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::focusTextInputContextAndPlaceCaret):

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::updateRendering):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prepareToSuspend):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView updateTextTouchBar]):

  • WebView/WebViewData.mm:

(WebViewLayerFlushScheduler::layerFlushCallback):

Source/WTF:

  • wtf/RefCounter.h:

(WTF::RefCounter<T>::Count::deref):

Tools:

  • TestWebKitAPI/Tests/WTF/SetForScope.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(TEST):

  • TestWebKitAPI/mac/TestFontOptions.mm:

(-[TestFontOptions setShadowWidth:]):
(-[TestFontOptions setShadowHeight:]):
(-[TestFontOptions setShadowBlurRadius:]):
(-[TestFontOptions setHasShadow:]):
(-[TestFontOptions setForegroundColor:]):
(-[TestFontOptions setBackgroundColor:]):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::reattachPageToWebProcess):

5:16 PM Changeset in webkit [290574] by Cameron McCormack
  • 8 edits in trunk/Source/WebCore

Add a mechanism to request a UA shadow tree update before style
https://bugs.webkit.org/show_bug.cgi?id=237224

Reviewed by Antti Koivisto.

SVG <use> elements register themselves with the document when their
shadow tree contents need updating, and this updating is done in
Document::resolveStyle. For lazy HTML <input> element UA shadow trees
(in bug 236747) we need something similar.

  • dom/Document.cpp:

(WebCore::Document::resolveStyle):
(WebCore::Document::addElementWithPendingUserAgentShadowTreeUpdate):
(WebCore::Document::removeElementWithPendingUserAgentShadowTreeUpdate):

  • dom/Document.h:
  • dom/Element.h:

(WebCore::Element::updateUserAgentShadowTree):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Deleted.
(WebCore::SVGDocumentExtensions::addUseElementWithPendingShadowTreeUpdate): Deleted.
(WebCore::SVGDocumentExtensions::removeUseElementWithPendingShadowTreeUpdate): Deleted.

  • svg/SVGDocumentExtensions.h:

(WebCore::SVGDocumentExtensions::useElementsWithPendingShadowTreeUpdate const): Deleted.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::insertedIntoAncestor):
(WebCore::SVGUseElement::removedFromAncestor):
(WebCore::SVGUseElement::updateUserAgentShadowTree):
(WebCore::SVGUseElement::invalidateShadowTree):
(WebCore::SVGUseElement::updateShadowTree): Deleted.

  • svg/SVGUseElement.h:
3:52 PM Changeset in webkit [290573] by graouts@webkit.org
  • 4 edits in trunk

[web-animations] web-animations/timing-model/animations/setting-the-timeline-of-an-animation.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=237257

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt:

Source/WebCore:

The spec has changed since we initially implemented Animation.playState and we missed one condition for
an animation's play state to be "idle".

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::playState const):

2:19 PM Changeset in webkit [290572] by Matt Woodrow
  • 4 edits in trunk

Handle reverse flow direction when converting iterator coords for a subgrid
https://bugs.webkit.org/show_bug.cgi?id=236955

Reviewed by Dean Jackson.

Source/WebCore:

When recursing into a subgrid via createForSubgrid, we convert the iterator's
position into coordinates relative to the subgrid. This handles the case where
the subgrid has a reverse flow direction (RTL vs LTR) and swaps the position
to be relative to the opposite edge.

Marks existing WPT grid-gap-007.html as passing

  • rendering/Grid.cpp:

(WebCore::GridIterator::createForSubgrid):

LayoutTests:

Marked grid-gap-007.html as now passing, and added bug annotations to
remaining subgrid failures.

2:15 PM Changeset in webkit [290571] by graouts@webkit.org
  • 5 edits in trunk

[svg] flood-opacity should be clamped to the [0,1] range
https://bugs.webkit.org/show_bug.cgi?id=237253

Reviewed by Dean Jackson.

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:

Source/WebCore:

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::setFloodOpacity):

1:19 PM Changeset in webkit [290570] by graouts@webkit.org
  • 5 edits in trunk

[svg] stroke-opacity should be clamped to the [0,1] range
https://bugs.webkit.org/show_bug.cgi?id=237254

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

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

Source/WebCore:

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::setStrokeOpacity):

12:55 PM Changeset in webkit [290569] by graouts@webkit.org
  • 5 edits in trunk

[svg] stop-opacity should be clamped to the [0,1] range
https://bugs.webkit.org/show_bug.cgi?id=237255

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

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

Source/WebCore:

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::setStopOpacity):

12:31 PM Changeset in webkit [290568] by graouts@webkit.org
  • 5 edits in trunk

[svg] fill-opacity should be clamped to the [0,1] range
https://bugs.webkit.org/show_bug.cgi?id=237252

Reviewed by Dean Jackson.

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:

Source/WebCore:

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::setFillOpacity):

11:54 AM Changeset in webkit [290567] by Matt Woodrow
  • 2 edits in trunk

2022-02-24 Matt Woodrow <Matt Woodrow>

Unreviewed, update my (Matt Woodrow) status to committer.

  • metadata/contributors.json:
11:44 AM Changeset in webkit [290566] by Chris Dumez
  • 28 edits in trunk/Source

Simplify SerializedScriptValue construction
https://bugs.webkit.org/show_bug.cgi?id=237241

Reviewed by Darin Adler.

Source/WebCore:

The 2 main factory functions for SerializedScriptValue now share the same code.
I also dropped some SerializedScriptValue API that was no longer useful.
Finally, I simplified factory functions for MessageEvent.

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::create):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::toString const):
(WebCore::SerializedScriptValue::toString): Deleted.

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::wireBytes const):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::adopt): Deleted.
(WebCore::SerializedScriptValue::data const): Deleted.
(WebCore::SerializedScriptValue::toWireBytes const): Deleted.

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::dispatchMessage):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::create):

  • dom/MessageEvent.h:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::dispatchMessages):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):

  • page/EventSource.cpp:

(WebCore::EventSource::dispatchMessageEvent):

  • page/History.cpp:

(WebCore::History::stateObjectAdded):

  • testing/Internals.cpp:

(WebCore::Internals::serializeObject const):
(WebCore::Internals::deserializeBuffer const):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::postMessage):

  • workers/shared/SharedWorkerGlobalScope.cpp:

(WebCore::SharedWorkerGlobalScope::postConnectEvent):

Source/WebKit:

Update code base to reflect SerializedScriptValue API changes.

  • Shared/API/APISerializedScriptValue.h:

(API::SerializedScriptValue::createFromWireBytes):
(API::SerializedScriptValue::dataReference const):
(API::SerializedScriptValue::adopt): Deleted.

  • Shared/SessionState.cpp:

(WebKit::PageState::encode const):

  • Shared/UserData.cpp:

(WebKit::UserData::decode):

  • UIProcess/API/Cocoa/WKWebView.mm:

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

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptForExtension):
(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptInExtensionTab):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::didPostMessage):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):

  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp:

(WebKit::WebInspectorUIExtensionController::evaluateScriptForExtension):
(WebKit::WebInspectorUIExtensionController::evaluateScriptInExtensionTab):

  • WebProcess/UserContent/WebUserContentController.cpp:
  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toFrameState):
(WebKit::applyFrameState):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

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

[GStreamer] media/video-src-blob-perf.html timing out likely since update to GStreamer 1.20
https://bugs.webkit.org/show_bug.cgi?id=237256

Unreviewed, gardening

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-27

  • platform/glib/TestExpectations: Flag test as timing out.
8:38 AM Changeset in webkit [290564] by ntim@apple.com
  • 10 edits in trunk

Force -webkit-user-modify used style to readonly for inert nodes
https://bugs.webkit.org/show_bug.cgi?id=237244

Reviewed by Darin Adler.

This disallows programmatic edition of contenteditable inert nodes. Edition via user-input is
already prevented by forcing pointer-events style to none.

We create a seperate effectiveUserModify, similar to effectiveUserSelect/effectivePointerEvents,
to avoid changing the computed style.

This behaviour also matches Blink & Gecko.

LayoutTests/imported/w3c:

  • web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative.html

  • dom/Node.cpp:

(WebCore::computeEditabilityFromComputedStyle):

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):

  • rendering/EventRegion.cpp:

(WebCore::EventRegion::unite):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::effectiveUserModify const):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

8:33 AM Changeset in webkit [290563] by Chris Dumez
  • 9 edits in trunk

Call WKNavigationDelegate.didFailProvisionalNavigation even after a cross-origin navigation with COOP
https://bugs.webkit.org/show_bug.cgi?id=237071
<rdar://problem/89354367>

Reviewed by Darin Adler.

Source/WebKit:

When doing a process swap on navigation (PSON), we start a new provisional load in the new provisional
process and ask the committed process to stop all loads. Since we swap in decidePolicyForNavigationAction,
no provisional load has started in the committed process yet. If the provisional process sends us a
didFailProvisionalLoad though, we know the provisional load has failed and we take this into consideration
and notify the client app.

When doing a process swap on resource response (due to COOP), we were behaving differently and it was
causing some confusion. Since we swap on resource response, the provisional load has started in the
committed process by the time we process-swap (unlike PSON). We were also not asking for the committed
process to stop/cancel this provisional load. As a result, a provisional load would still be going on
in the committed process while another provisional load starts happening in the provisional page / process.
Then, if the provisional process would send us a didFailProvisional, we would not pass it along to the
client app. Instead we would destroy the ProvisionalPageProxy, which would tell the committed process to
stop loading and send its own didFailProvisionalLoad, and the client app would eventually get notified.

Even though the difference in behavior was confusing, it was working in most cases. There was however
an edge case where it didn't work and we would fail to tell the client app that the provisional load
had failed. In particular, we would run into trouble when navigating cross-site to a site that adopted
the COOP header. We would first do a process-swap on navigation, stop the provisional load in the committed
process A, then start a provisional load in process B. We would then get the COOP header and we would
start a new provisional load in process C. Process B would go away since we cannot have 2 provisional
pages / processes at the same time for the same WebPageProxy. Then if the provisional load fails in
process C, we would ignore the didFailProvisionalLoad from process C and destroy the provisional page.
We would tell the committed process A to stop loading, expecting it to send its own didFailProvisionalLoad
but it wouldn't happen since PSON had already stopped all loading in process A earlier when swapping to
process B.

To address the issue, we align COOP process swap with PSON process swap. We now has the committed process
to stop all loads when process swapping on resource response due to COOP. As a result, when the provisional
load fails in the provisional process, we can simply pass it along to the client, no matter if the process
swap occurred due to PSON or COOP.

Covered by new API test.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
We no longer need to tell the committed process to stop loading when the provisional page gets destroyed
and this was a process swap on resource response. The reason is that when process-swapping on navigation
response, we now drop the provisional load in the committed process right away, like in the PSON case.

(WebKit::ProvisionalPageProxy::cancel):
When cancelling a provisional load due to PSON or COOP, we need to notify the client that the provisional
load failed. We used to only to it in the PSON case. We now do it for both PSON and COOP since they
behave the same.

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
Similarly as above, now that PSON and COOP behave the same, we need to pass the didFailProvisionalLoad
from the provisional process to the client app for both PSON and COOP (Not just PSON).

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
When triggering a process swap on resource response (due to COOP), we now stop the provisional load going
on in the committed process to be consistent with what we do in the PSON case. This way there is only a
single provisional load going on and it is happening in the provisional page / process.

Tools:

Add API test coverage (Test was written by Alex Christensen).

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

8:26 AM Changeset in webkit [290562] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Loading a USDZ url as the main resource renders as garbage
https://bugs.webkit.org/show_bug.cgi?id=237240
rdar://88767033

Reviewed by Antoine Quint.

We can't render a USD document if the ModelDocument feature is not enabled.

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::canShowMIMEType):

8:17 AM Changeset in webkit [290561] by graouts@webkit.org
  • 4 edits in trunk

[css-animations] implicit keyframes should be inserted after explicit keyframes with the same offset
https://bugs.webkit.org/show_bug.cgi?id=237246

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update WPT test added in bug 236838 to match the spec following discussion with Brian Birtles in
https://github.com/web-platform-tests/wpt/pull/32903.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:

Source/WebCore:

The CSS Animations spec says the following about implicit keyframes generation:

Let initial keyframe be the keyframe in keyframes with offset 0, timing function default timing
function and composite default composite.

If there is no such keyframe, let initial keyframe be a new empty keyframe with offset 0, timing
function default timing function, composite |default composite, and add it to keyframes after the
last keyframe with offset 0.

Let final keyframe be the keyframe in keyframes with offset 1, timing function default timing
function and composite default composite.

If there is no such keyframe, let final keyframe be a new empty keyframe with offset 1, timing
function default timing function and composite default composite, and add it to keyframes after
the last keyframe with offset 1.

Full details are at https://drafts.csswg.org/css-animations-2/#keyframes.

The KeyframeList::insert() method does the right thing already by adding a new keyframe after all
other keyframes with that same offset, so all we need to do is to use this method rather than
specifying explicit indexes.

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::fillImplicitKeyframes):

8:03 AM Changeset in webkit [290560] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Use hasAttributeWithoutSynchronisation for checking inert attribute in Adjuster::adjust
https://bugs.webkit.org/show_bug.cgi?id=237248

Reviewed by Dean Jackson.

hasAttributeWithoutSynchronisation should be slightly faster than hasAttribute.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):

6:10 AM Changeset in webkit [290559] by ntim@apple.com
  • 3 edits
    2 adds in trunk

Optimize StyleSharingResolver inert checks
https://bugs.webkit.org/show_bug.cgi?id=237235

Reviewed by Youenn Fablet.

Source/WebCore:

inert is an boolean attribute, the only thing that matters for the StyleAdjuster
inertness adjustment is the presence of the attribute, not its value. E.g.
inert=false is the same as inert=inert or inert=true.

This saves getting and comparing values for those attributes, and also allows
inert=inert and inert=true or inert=false to start sharing style.

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement const):

LayoutTests:

Add small test that style sharing is not wrongly applied.

  • fast/css/inert-style-sharing-expected.html: Added.
  • fast/css/inert-style-sharing.html: Added.
4:06 AM Changeset in webkit [290558] by youenn@apple.com
  • 7 edits in trunk/Source/WebKit

Exposing RemoteVideoFrameProxy::write is unneeded
https://bugs.webkit.org/show_bug.cgi?id=237212

Reviewed by Eric Carlson.

Exposing RemoteVideoFrameProxy::write is unneeded as RemoteVideoFrameProxy is immutable.
It is best to remove it as calling write() inadvertently would break things.
Renaming read() to newReadReference() to make it clear that we are creating a new read reference
that needs to be sent to GPUProcess to prevent leaks.
No change of behavior.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::~RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::newReadReference const):
(WebKit::RemoteVideoFrameProxy::pixelBuffer const):
(WebKit::RemoteVideoFrameProxy::write const): Deleted.
(WebKit::RemoteVideoFrameProxy::read const): Deleted.

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::encodeFrame):

  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:

(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::getVideoFrameBuffer):

  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:

(WebKit::SharedVideoFrameWriter::write):

3:44 AM Changeset in webkit [290557] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Simplify CVPixelBuffer data copies in SharedVideoFrameInfo
https://bugs.webkit.org/show_bug.cgi?id=237194

Reviewed by Eric Carlson.

Remove use of vImageUnpremultiplyData_BGRA8888 which might not be correct for canvas data.
Make use of CVPixelBufferGetPlaneCount to share more code between monoplanar and biplanar formats.

Covered by existing tests.

  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/cocoa/SharedVideoFrameInfo.mm:

(WebCore::SharedVideoFrameInfo::isReadWriteSupported const):
(WebCore::copyToCVPixelBufferPlane):
(WebCore::SharedVideoFrameInfo::createPixelBufferFromMemory):
(WebCore::SharedVideoFrameInfo::writePixelBuffer):

3:21 AM Changeset in webkit [290556] by ntim@apple.com
  • 17 edits
    2 adds in trunk/LayoutTests

Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=237243

Reviewed by Youenn Fablet.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/9261ca87db106c1f31f1ab4f54b8f4a2617cbc24

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer-ref.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column-ref.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-and-contenteditable.tentative.html: Added.
  • web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt:
  • web-platform-tests/inert/inert-iframe-hittest.tentative.html:
  • web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt:
  • web-platform-tests/inert/inert-iframe-tabbing.tentative.html:
  • web-platform-tests/inert/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt:

Feb 26, 2022:

11:27 PM Changeset in webkit [290555] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

RemoteCaptureSampleManager, UserMediaSampleCaptureManagerProxy create the RemoteVideoFrame in incorrectly
https://bugs.webkit.org/show_bug.cgi?id=237134

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-26
Reviewed by Youenn Fablet.

UserMediaSampleCaptureManagerProxy should not call RemoteVideoFrameObjectHeap::createVideoFrame,
the function should be removed. Instead, UserMediaSampleCaptureManagerProxy should construct a
write reference to insert the media sample -> remote proxy mapping. Then
the result of the insert, a new reference, should be sent as part of the
RemoteVideoFrameProxy::Properties to the WP. This way the sent reference is
constructed as expected. Previously the reference was correct but matched just
by selecting the constants currently used (0).

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::videoSampleAvailable):
(WebKit::RemoteCaptureSampleManager::videoSampleAvailableCV):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
11:06 PM Changeset in webkit [290554] by ntim@apple.com
  • 11 edits
    2 adds in trunk

Remove Node::deprecatedIsInert
https://bugs.webkit.org/show_bug.cgi?id=230845

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

This change unfortunately regresses focusability state when dynamically setting inert, due to a cached
computed style invalidation bug. This is minor in practice, since focusability usually gets queried in
user-initiated ways, when style already has fully been updated.

However, making this change will improve performance by avoiding a full DOM ancestor walk when there
is no inert attribute on the page, since we will only check a style bit after this patch.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:
  • web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt:
  • web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt:

Source/WebCore:

This change unfortunately regresses focusability state when dynamically setting inert, due to a cached
computed style invalidation bug. This is minor in practice, since focusability usually gets queried in
user-initiated ways, when style already has fully been updated.

However, making this change will improve performance by avoiding a full DOM ancestor walk when there
is no inert attribute on the page, since we will only check a style bit after this patch.

  • dom/Element.cpp:

(WebCore::Element::isFocusable const):
(WebCore::Element::isFocusableWithoutResolvingFullStyle const):
(WebCore::Element::isVisibleWithoutResolvingFullStyle const): Deleted.

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

(WebCore::Node::deprecatedIsInert const): Deleted.

  • dom/Node.h:
  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::isFocusable const):

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-inert-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt: Added.
4:46 PM Changeset in webkit [290553] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AX: Remove unnecessary AccessibilityRenderObject::init() override
https://bugs.webkit.org/show_bug.cgi?id=237239

Reviewed by Chris Fleizach.

The implementation of AccessibilityRenderObject::init() just calls
AccessibilityNodeObject::init(), so we don't need it as an override.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::init): Deleted.

  • accessibility/AccessibilityRenderObject.h:
3:36 PM Changeset in webkit [290552] by Chris Dumez
  • 12 edits in trunk

Drop Ref<>'s operator==() as it is a bit ambiguous / confusing
https://bugs.webkit.org/show_bug.cgi?id=237231

Reviewed by Darin Adler.

Drop Ref<>'s operator==() as it is a bit ambiguous / confusing. Some people expect it to compare
pointers while other expect it to compare the values we hold references to.
It seems best to omit this operator and be explicit at call sites.

Source/WebCore:

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::startSource):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::removeElementToRebuild):

  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::buildEffectExpression const):

Source/WebKit:

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::cacheMediaMIMETypes):

  • UIProcess/VisitedLinkStore.cpp:

(WebKit::VisitedLinkStore::removeAll):
(WebKit::VisitedLinkStore::sendStoreHandleToProcess):
(WebKit::VisitedLinkStore::didUpdateSharedStringHashes):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::shouldTerminate):

Source/WTF:

  • wtf/Ref.h:

(WTF::operator==): Deleted.
(WTF::operator!=): Deleted.

  • wtf/Vector.h:

(WTF::Vector::containsIf const):

2:12 PM Changeset in webkit [290551] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove UNUSED warnings for non-Cocoa platform after r290449
https://bugs.webkit.org/show_bug.cgi?id=237233

Reviewed by Darin Adler.

  • runtime/JSDateMath.cpp:
1:04 PM Changeset in webkit [290550] by Kate Cheney
  • 15 edits in trunk

Update CSP handling of javascript URLs
https://bugs.webkit.org/show_bug.cgi?id=236351
<rdar://problem/88675827>

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-disallow-expected.txt:
  • web-platform-tests/content-security-policy/navigation/to-javascript-url-script-src-expected.txt:

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeJavaScriptURL):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::createWindow):

  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::requestFrame):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::setLocation):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt:
  • http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star-expected.txt:
  • http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
10:44 AM Changeset in webkit [290549] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[RenderTreeBuilder] Clean up descendant floats when a block container becomes float
https://bugs.webkit.org/show_bug.cgi?id=237238
<rdar://79960422>

Reviewed by Antti Koivisto.

Source/WebCore:

When a block box becomes float, it forms a "lockdown" container for the descendant floats by establishing a BFC.
What it means is that such descendant floats can't intrude to sibling block containers anymore.
This patch ensures that we remove such floats from sibling (and their descendant) renderers.

Test: fast/block/float/float-merge-anon-parent-crash.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

LayoutTests:

  • fast/block/float/float-merge-anon-parent-crash-expected.txt: Added.
  • fast/block/float/float-merge-anon-parent-crash.html: Added.
10:43 AM Changeset in webkit [290548] by Simon Fraser
  • 7 edits in trunk

No animation when scroll snap scroller is navigated with the keyboard
https://bugs.webkit.org/show_bug.cgi?id=236244

Reviewed by Tim Horton.

Source/WebCore:

Keyboard-driven scrolls in overflow didn't animate, simply because scrollAnimatorEnabled()
wasn't implemented for RenderLayerScrollableArea.

I could not figure out a reliable way to test that we animated the scroll.

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::scrollAnimatorEnabled const):

  • rendering/RenderLayerScrollableArea.h:

LayoutTests:

Turn off the scroll animator for these tests that assume that scrolling is instantaneous.

  • css3/scroll-snap/scroll-padding-overflow-paging.html:
  • fast/events/wheelevent-in-scrolling-div.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-rtl-with-keyboard.html:
4:07 AM Changeset in webkit [290547] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Multiple concurrency violations in LibWebRTCCodecsProxy
https://bugs.webkit.org/show_bug.cgi?id=236767
<rdar://88904160>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-26
Reviewed by Antti Koivisto.

  • ThreadMessageReceivers should not add IPC listeners in constructors,

as the delivery starts right away and uses the unconstructed virtual pointer.

  • The work queue functions should not use GPUConnectionToWebProcess, as that is

main thread object.

  • Locked m_encoders, m_decoders are sometimes accessed without lock.

Instead:

  • Add the IPC listeners in initialize function.
  • Remove the IPC listeners when GPUConnectionToWebProcess disconnects.
  • Store the thread-safe conection, video frame object heap, process identity

objects as member variables.

  • Do not lock m_encoders, m_decoders. If they are work queue instances,

just access them in the work queue functions. Add thread requirements
to the variables so that the compiler checks the access.

  • Use IPC testing assertions when skipping incorrect messages.
  • Use separate atomic counter (bool) to check if allowsExitUnderMemoryPressure.

No new tests, tested with existing tests and ASAN.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didClose):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::create):
(WebKit::LibWebRTCCodecsProxy::LibWebRTCCodecsProxy):
(WebKit::LibWebRTCCodecsProxy::stopListeningForIPC):
(WebKit::LibWebRTCCodecsProxy::initialize):
(WebKit::LibWebRTCCodecsProxy::dispatchToThread):
(WebKit::LibWebRTCCodecsProxy::createDecoderCallback):
(WebKit::LibWebRTCCodecsProxy::createH264Decoder):
(WebKit::LibWebRTCCodecsProxy::createH265Decoder):
(WebKit::LibWebRTCCodecsProxy::createVP9Decoder):
(WebKit::LibWebRTCCodecsProxy::releaseDecoder):
(WebKit::LibWebRTCCodecsProxy::createEncoder):
(WebKit::LibWebRTCCodecsProxy::releaseEncoder):
(WebKit::LibWebRTCCodecsProxy::initializeEncoder):
(WebKit::LibWebRTCCodecsProxy::findEncoder):
(WebKit::LibWebRTCCodecsProxy::encodeFrame):
(WebKit::LibWebRTCCodecsProxy::setEncodeRates):
(WebKit::LibWebRTCCodecsProxy::setSharedVideoFrameSemaphore):
(WebKit::LibWebRTCCodecsProxy::setSharedVideoFrameMemory):
(WebKit::LibWebRTCCodecsProxy::allowsExitUnderMemoryPressure const):

2:04 AM Changeset in webkit [290546] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION(r290358): [ Debug EWS ] ASSERTION FAILED: sample && sample->pixelBuffer()
https://bugs.webkit.org/show_bug.cgi?id=237164
<rdar://problem/89442999>

Unreviewed.

ASSERTS are fixed through https://bugs.webkit.org/show_bug.cgi?id=237027.
Removing crash expectations.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:

Feb 25, 2022:

11:58 PM Changeset in webkit [290545] by Simon Fraser
  • 7 edits
    2 adds in trunk

Scrollbars disappear when very long or wide
https://bugs.webkit.org/show_bug.cgi?id=237232
Source/WebCore:

<rdar://17540446>

Reviewed by Tim Horton.

Our tiling logic does not play nicely with AppKit's NSScrollerImps, probably because we
inadvertently unparent its layers.

Fix by disallowing GraphicsLayers for scrollbars from going into tiled mode, for
both root and overflow scrollbars.

Test: fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setAllowsTiling):
(WebCore::GraphicsLayer::allowsTiling const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::requiresTiledLayer const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateOverflowControlsLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

LayoutTests:

Reviewed by Tim Horton.

  • fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar-expected-mismatch.html: Added.
  • fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html: Added.
9:42 PM Changeset in webkit [290544] by sihui_liu@apple.com
  • 5 edits in trunk

[macOS] TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=237065
<rdar://problem/89324250>

Reviewed by Alexey Proskuryakov.

Source/WebKit:

Commit transactions of SQLiteStorageArea at exit of network process.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didClose):

  • NetworkProcess/storage/SQLiteStorageArea.cpp:

(WebKit::commitTransactionsAtExit):
(WebKit::SQLiteStorageArea::SQLiteStorageArea):
(WebKit::SQLiteStorageArea::startTransactionIfNecessary):
(WebKit::SQLiteStorageArea::commitTransactionIfNecessary):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

9:38 PM Changeset in webkit [290543] by Wenson Hsieh
  • 5 edits in trunk

Adjust -[WKContentView _requiresKeyboardWhenFirstResponder] to account for editable web views
https://bugs.webkit.org/show_bug.cgi?id=237226
rdar://89447095

Reviewed by Aditya Keerthi.

Source/WebKit:

Adjust the implementation of -[WKContentView _requiresKeyboardWhenFirstResponder], such that it returns YES
for editable web views, except for the scenario where an input field that does *not* require the automatic
keyboard is currently focused in the page inside the editable web view (e.g. a readonly text field).

UIKit consults this method to know whether or not a given responder would require the keyboard (either software
keyboard or the minimized UCB for hardware keyboard) if it were to become the first responder. For web views
that are made editable in the SPI sense, we know a-priori that this should return YES, unless a readonly element
underneath the web view has focus (in which case, _disableAutomaticKeyboardUI would be true).

Test: KeyboardInputTests.EditableWebViewRequiresKeyboardWhenFirstResponder

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _requiresKeyboardWhenFirstResponder]):

Tools:

Add an API test to exercise the change. This new API test is comprised of 3 parts:

  • Verify that -_requiresKeyboardWhenFirstResponder is NO after loading the page.
  • Verify that -_requiresKeyboardWhenFirstResponder becomes YES after making the web view editable.
  • Verify that -_requiresKeyboardWhenFirstResponder is NO again after focusing a readonly input inside the now-editable web view.
  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
9:05 PM Changeset in webkit [290542] by Said Abou-Hallawa
  • 4 edits in trunk/Source

[GPU Process] Implement RemoteImageBufferProxy::drawConsuming()
https://bugs.webkit.org/show_bug.cgi?id=236685
rdar://89007426

Reviewed by Simon Fraser.

Source/WebCore:

Assert ImageBuffer::drawConsuming() does not draw into its backend before
it is destroyed.

  • platform/graphics/ConcreteImageBuffer.h:

Source/WebKit:

RemoteImageBufferProxy::drawConsuming() should call drawImageBuffer() of
the destination GraphicsContext. No recursion will happen and the expected
behavior will be achieved by this change.

This is the sequence of calls when the Destination GraphicsContext is
local and when it is remote:

-- Destination GraphicsContext is local:

In this case, the backend of the RemoteImageBufferProxy can be mapped
in WebProcess; i.e. we do have access to its memory.
ConcreteImageBuffer::draw() will be called eventually. This function
will call its backend->draw() which will get a NativeImage by calling
backend->copyNativeImage(). There is no difference between draw() and
drawConsuming() in this case because the backend is still owned by
GPUProcess. So it will not be released immediately. We do not copy the
pixels since we have to pass DontCopyBackingStore to copyNativeImage().

-- Destination GraphicsContext is remote:

In this case, Recorder::drawImageBuffer() will be called which will
call RemoteDisplayListRecorderProxy::recordDrawImageBuffer(). This
will send a message to GPUProcess and hence all the drawing will
happen in GPUProcess. Similar to the case of the local GraphicsContext,
no pixels will be copied from the RemoteImageBuffer backend to the
NativeImage in all cases. The assumption is the backend will be destroyed
automatically after calling drawConsuming().

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
7:59 PM Changeset in webkit [290541] by basuke.suzuki@sony.com
  • 3 edits in trunk/Source/bmalloc

[libpas] Suppress cast-align warnings
https://bugs.webkit.org/show_bug.cgi?id=237179
<rdar://problem/89479570>

Reviewed by Yusuke Suzuki.

Ignore cast-align warnings for libpas target.

  • CMakeLists.txt:
  • libpas/src/libpas/bmalloc_heap_inlines.h:
6:03 PM Changeset in webkit [290540] by Fujii Hironori
  • 12 edits
    1 copy
    2 deletes in trunk/Source/WebCore

[GTK][WPE][WC] Move ANGLE context initialisation to GraphicsContextGLTextureMapper::initialize
https://bugs.webkit.org/show_bug.cgi?id=236769

Reviewed by Chris Lord.

This is the first step for the long-term plan to share more code
in GraphicsContextGLANGLE between Cocoa and non-Cocoa, and
minimise the ifdefs in GraphicsContextGLANGLE.

We are moving the context initialisation and holding to
GraphicsContextGLTextureMapper, away from
GCGLANGLELayer::ANGLEContext and the layer classes in case of
COORDINATED_GRAPHICS. Later on, Cocoa and non-Cocoa can merge
their ::initialize.

No new tests, this is a refactoring patch.

  • platform/TextureMapper.cmake:
  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::GCGLANGLELayer):
(Nicosia::GCGLANGLELayer::ANGLEContext::errorString): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::lastErrorString): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::createContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::ANGLEContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::~ANGLEContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::makeContextCurrent): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformContext const): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformDisplay const): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformConfig const): Deleted.
(Nicosia::GCGLANGLELayer::makeContextCurrent): Deleted.
(Nicosia::GCGLANGLELayer::platformContext const): Deleted.
(Nicosia::GCGLANGLELayer::platformDisplay const): Deleted.
(Nicosia::GCGLANGLELayer::platformConfig const): Deleted.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::initialize):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/texmap/ANGLEContext.cpp: Removed.
  • platform/graphics/texmap/ANGLEContext.h: Removed.
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLTextureMapper::create):
(WebCore::GraphicsContextGLTextureMapper::GraphicsContextGLTextureMapper):
(WebCore::GraphicsContextGLTextureMapper::layerContentsDisplayDelegate):
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
(): Deleted.

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLTextureMapper::platformInitializeContext):
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

  • platform/graphics/texmap/PlatformLayerDisplayDelegate.h: Copied from Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapper.h.
  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:

(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::~TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::paintToTextureMapper):
(WebCore::TextureMapperGCGLPlatformLayer::makeContextCurrent): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformContext const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformDisplay const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformConfig const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::proxy const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::swapBuffersIfNeeded): Deleted.

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h:
5:47 PM Changeset in webkit [290539] by J Pascoe
  • 4 edits in trunk

[WebAuthn] Fallback to attestation=none whenever attestation fails
https://bugs.webkit.org/show_bug.cgi?id=237223
rdar://88767812

Reviewed by Brent Fulgham.

Source/WebKit:

Whenever attestation is requested by a RP and it fails to complete,
we previously errored out of the registration. The more correct platform
behavior in this case is to provide attestation=none.

Created API test for this behavior.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):

Tools:

Add test for local authenticator attestation fallback behavior.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

5:19 PM Changeset in webkit [290538] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Use the modern Hasher more in Content Extensions code
https://bugs.webkit.org/show_bug.cgi?id=237228

Reviewed by Darin Adler.

  • contentextensions/CombinedFiltersAlphabet.cpp:

(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::TermCreatorTranslator::hash):

  • contentextensions/CombinedFiltersAlphabet.h:

(WebCore::ContentExtensions::CombinedFiltersAlphabet::TermPointerHash::hash):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::TriggerHash::hash):

  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::Group::operator== const):
(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::Term::CharacterSet::hash const): Deleted.
(WebCore::ContentExtensions::Term::Group::hash const): Deleted.
(WebCore::ContentExtensions::Term::hash const): Deleted.

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

Do not trigger didFail during FileReaderLoader Destruction
https://bugs.webkit.org/show_bug.cgi?id=237060

Patch by Brandon Stewart <Brandon> on 2022-02-25
Reviewed by Darin Adler.

Setting cancel() instead of terminate() will prevent the didFail() method from being triggered.
This method has the unfortunate side effect of trying to allocate memory, which is not allowed when
under going a sweep event.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::~FileReaderLoader):

4:17 PM Changeset in webkit [290536] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.9

Tag Safari-613.1.17.1.9.

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

[macOS] Add access to required mach service in the Network process
https://bugs.webkit.org/show_bug.cgi?id=237216
<rdar://89176897>

Reviewed by Brent Fulgham.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
4:02 PM Changeset in webkit [290534] by Brent Fulgham
  • 8 edits
    2 adds in trunk

WebKit continues to render PDF images in Captive Portal mode
https://bugs.webkit.org/show_bug.cgi?id=237120
<rdar://problem/89384234>

Reviewed by Chris Dumez.

Source/WebCore:

WebKit should handle all PDF processing in PDF.JS when in Captive Portal mode. However, testing
revealed that PDF images are still rendered natively. As a first step we should bypass the
native PDF code path. A subsequent patch will handle in PDF.JS.

We need to thread the state of the Captive Portal setting through the image loading code so that
WebKit knows to bail out before consuming the PDF data in the native decoder.

Tested by TestWebKitAPI.

  • page/RuntimeEnabledFeatures.h: Add new flag for PDF image decoding state.
  • platform/graphics/Image.cpp:

(WebCore::Image::create): Check whether PDF image decoding should be permitted.

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Turn PDF image decoding off when in CaptivePortal mode.

Tools:

WebKit should handle all PDF processing in PDF.JS when in Captive Portal mode. However, testing
revealed that PDF images are still rendered natively. As a first step we should bypass the
native PDF code path. A subsequent patch will handle in PDF.JS.

We need to thread the state of the Captive Portal setting through the image loading code so that
WebKit knows to bail out before consuming the PDF data in the native decoder.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/CaptivePortalPDF.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[CaptivePortalMessageHandler userContentController:didReceiveScriptMessage:]): Add new test case.

  • TestWebKitAPI/Tests/WebKitCocoa/webkit-logo.pdf: Added.
3:49 PM Changeset in webkit [290533] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.5

Tag Safari-614.1.5.5.

3:45 PM Changeset in webkit [290532] by sihui_liu@apple.com
  • 8 edits in trunk

Regression(r242729): m_origin in IDBDatabaseIdentifier is incorrect
https://bugs.webkit.org/show_bug.cgi?id=237044

Reviewed by Youenn Fablet.

Source/WebCore:

In r242729, we swapped top origin and opening origin in m_origin (it is a ClientOrigin) of IDBDatabaseIdentifier.
This can cause trouble since IndexedDB operation will be processed by wrong OriginStorageManager
(OriginStorageManager is identified by ClientOrigin). To fix this issue, we need to swap it back.

New test: IndexedDB.IndexedDBThirdPartyStorageLayout

  • Modules/indexeddb/IDBDatabaseIdentifier.cpp:

(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot const):
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):

  • Modules/indexeddb/IDBDatabaseIdentifier.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::diskUsage):

Source/WebKit:

  • NetworkProcess/storage/IDBStorageManager.cpp:

(WebKit::migrateOriginData):
(WebKit::IDBStorageManager::idbStorageOriginDirectory):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:

(-[IndexedDBMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

3:29 PM Changeset in webkit [290531] by Chris Dumez
  • 3 edits
    4 adds in trunk

SharedArrayBuffer posted to AudioWorkletProcessor is not actually shared with the main thread
https://bugs.webkit.org/show_bug.cgi?id=237144
<rdar://problem/89479641>

Reviewed by Darin Adler.

Source/WebCore:

SerializedScriptValue only maintains SharedArrayBuffers when constructed with SerializationContext::WorkerPostMessage.
With other SerializationContext values, such as the default one that AudioWorkletNode was using, SharedArrayBuffers
are serialized as simple arrays and are no longer shared.

This patch passes SerializationContext::WorkerPostMessage when constructing the SerializedScriptValue since we want
SharedArrayBuffer sharing and since a worklet is essentially a worker.

Note that this patch allows passing a SharedArrayBuffer to an AudioWorklet upon construction via processorOptions.
However, SharedArrayBuffer still won't be shared if sent later on via a MessagePort.postMessage() call. This is
because MessagePort.postMessage() routes all messages via the network process, even if the destination ends up
being within the same process as the sender (See Bug 220038).

Test: http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::create):

LayoutTests:

Add layout test coverage.

  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/shared-array-buffer-processor.js: Added.

(SharedArrayBufferTestProcessor):
(SharedArrayBufferTestProcessor.prototype.process):

  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https-expected.txt: Added.
  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html: Added.
  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html.headers: Added.
3:19 PM Changeset in webkit [290530] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove incorrect ASSERT.
https://bugs.webkit.org/show_bug.cgi?id=237185
<rdar://problem/83902782>

Reviewed by Yusuke Suzuki.

These debug ASSERTs were added in http://trac.webkit.org/r283632 back when we
weren't sure that the StringImpl pointer can be null or not. We're now certain
that the StringImpl pointer can be null because:

The site of the ASSERT looks like this:
`

auto* impl = string->tryGetValueImpl();
ASSERT(impl); FIXME: rdar://83902782
if (impl && impl->isAtom() &&

...

`
... where string is a JSString, which can also be a JSRopeString.

JSString::tryGetValueImpl() is:
`
inline const StringImpl* JSString::tryGetValueImpl() const
{

uintptr_t pointer = fiberConcurrently();
if (pointer & isRopeInPointer)

return nullptr;

return bitwise_cast<StringImpl*>(pointer);

}
`

If string is a JSRopeString, the returned impl will be null. Hence, the ASSERT is
invalid and should be removed.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):

2:24 PM Changeset in webkit [290529] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.35.90

WPE WebKit 2.35.90

2:20 PM Changeset in webkit [290528] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.36

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.35.90 release

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.35.90.
2:20 PM Changeset in webkit [290527] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Unreviewed non-unified build fix.

  • WebProcess/glib/WebProcessGLib.cpp: Add missing WebPage.h inclusion.
2:18 PM Changeset in webkit [290526] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] HLS + Modern EME key rotation causes playback to stall indefinitely
https://bugs.webkit.org/show_bug.cgi?id=237214
<rdar://89372801>

Reviewed by Eric Carlson.

In r275916, Ref was changed to perform pointer equality in its operator==. This caused
takeUnexpectedKeyRequestForInitializationData() to fail to find key requests matching
the initData passed in through MediaKeySession.

Fix the equality test by calling .get() on the Ref, which causes the == to resolve to
FragmentedSharedBuffer::operator==().

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData):

1:01 PM Changeset in webkit [290525] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r290516.
https://bugs.webkit.org/show_bug.cgi?id=237222

broke debug tests

Reverted changeset:

"[JSC] Use DeferTerminationForAWhile in Interpreter::unwind"
https://bugs.webkit.org/show_bug.cgi?id=237176
https://commits.webkit.org/r290516

12:54 PM Changeset in webkit [290524] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] 7X imported/w3c/web-platform-tests/pointerevents/pointerevent (layout-tests) are flaky text failures
https://bugs.webkit.org/show_bug.cgi?id=236128

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
12:44 PM Changeset in webkit [290523] by Elliott Williams
  • 4 edits
    1 copy in trunk/Source/WTF

[XCBuild] Add missing header build rule for Scripts/Preferences/*
https://bugs.webkit.org/show_bug.cgi?id=237129

Reviewed by Alexey Proskuryakov.

Relands "[XCBuild] WTF's SPI dependencies are copied via a folder reference and do not emit
task outputs".

r290452 missed adding a build rule which would copy $SRCROOT/Scripts/Preferences/* to
/usr/local/include/wtf/Scripts/Preferences, and caused clean builds to start failing. Fix by
adding the needed build rule.

  • Configurations/Base.xcconfig:
  • Configurations/WTF.xcconfig:
  • Configurations/icu.xcconfig:
  • WTF.xcodeproj/project.pbxproj:
12:19 PM Changeset in webkit [290522] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] imported/w3c/web-platform-tests/svg/coordinate-systems/abspos.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=237220

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-25

  • platform/ios/TestExpectations:
12:08 PM Changeset in webkit [290521] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

Make sure there is a default Networking process to provide the Launch Services database
https://bugs.webkit.org/show_bug.cgi?id=236629

Reviewed by Brent Fulgham.

The WebContent processes relies on getting the Launch Services database from the Networking process.
It is possible to enter a state where there is no default Network process, but a Network process is
running because a Website data store is holding a reference to it. This patch addresses this issue
by removing Network process references in all remaining Website data stores when the last process
pool is being deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeNetworkProcessReference):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
11:42 AM Changeset in webkit [290520] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r289787?) [ iOS EWS ]fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=237218

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-25

  • platform/ios/TestExpectations:
11:26 AM Changeset in webkit [290519] by commit-queue@webkit.org
  • 18 edits
    15 adds in trunk

Re-add YouTubePluginReplacement, removed in r285252
https://bugs.webkit.org/show_bug.cgi?id=237182
Source/WebCore:

<rdar://89148022>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.

Tests: security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html

security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html

Its removal broke webpages that work in Chrome and Firefox, so back it comes.

  • Headers.cmake:
  • Modules/plugins: Copied from Source/WebCore/Modules/plugins.
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginScriptObject):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::JSTestPluginInterface::visitChildrenImpl):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::createElementRenderer):
(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
(WebCore::registrar):
(WebCore::pluginReplacementForType):
(WebCore::HTMLPlugInElement::requestObject):
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement):

  • html/HTMLPlugInElement.h:

(WebCore::HTMLPlugInElement::pluginReplacementScriptObject):

  • html/shadow/ShadowPseudoIds.cpp:

(WebCore::ShadowPseudoIds::webkitPluginReplacement):

  • html/shadow/ShadowPseudoIds.h:
  • html/shadow/YouTubeEmbedShadowElement.cpp:
  • html/shadow/YouTubeEmbedShadowElement.h:
  • page/Settings.yaml:

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:

LayoutTests:

Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.

  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt.
  • security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html.
  • security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt.
  • security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html.
11:13 AM Changeset in webkit [290518] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r290512. rdar://problem/86582214

[Tables] Incorrect table sizing when colgroup comes after tbody
https://bugs.webkit.org/show_bug.cgi?id=237205
<rdar://86582214>

Reviewed by Antti Koivisto.

Source/WebCore:

Let's use the colgroup for table sizing even when it comes after any thead, tbody, tfoot, and tr elements.
This makes WebKit match other rendering engines (see https://src.chromium.org/viewvc/blink?revision=159442&view=revision)

Test: fast/table/table-sizing-fails-when-colgroup-comes-after-content.html

  • rendering/RenderTable.cpp: (WebCore::RenderTable::firstColumn const):
  • rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::nextColumn const):

LayoutTests:

  • fast/table/table-sizing-fails-when-colgroup-comes-after-content-expected.html: Added.
  • fast/table/table-sizing-fails-when-colgroup-comes-after-content.html: Added.
  • platform/mac/tables/mozilla_expected_failures/dom/appendCol1-expected.txt: Progression.
  • platform/mac/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt: Progression.

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

11:03 AM Changeset in webkit [290517] by mark.lam@apple.com
  • 4 edits
    1 add in trunk

operationMaterializeObjectInOSR should DeferTerminationForAWhile instead of just DeferTermination.
https://bugs.webkit.org/show_bug.cgi?id=237173
rdar://problem/89450245

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/termination-exception-in-operationMaterializeObjectInOSR2.js: Added.

Source/JavaScriptCore:

DeferTermination can throw the TerminationException on destruction of the scope
object. operationMaterializeObjectInOSR() was using DeferTermination, resulting
in the TerminationException being thrown on exit. This trips up
validateDFGExceptionHandling testing (which is enabled on Debug builds) because the
TerminationException is unexpected. The solution is simply to use
DeferTerminationForAWhile instead, and let a more natural trap checkpoint throw
the TerminationException later.

Also refactored notifyDebuggerOfUnwinding() to return early if a debugger is not
present. This avoids unnecessarily entering and exiting a DeferTermination scope
in notifyDebuggerOfUnwinding(). This was observed while testing this change on
the attached test case.

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • interpreter/Interpreter.cpp:

(JSC::notifyDebuggerOfUnwinding):

10:53 AM Changeset in webkit [290516] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Use DeferTerminationForAWhile in Interpreter::unwind
https://bugs.webkit.org/show_bug.cgi?id=237176

Reviewed by Mark Lam.

Interpreter::unwind calls sanitizeRemoteFunctionException, which would like to create scope (but it
does not have user observable behavior). Problem is that, since it is creating a scope, it can throw
a termination exception. We were using DeferTermination, but destructor of this scope can still set
termination exception, which results in throwing a termination exception for the error handler.

We use DeferTerminationForAWhile in the prologue of the Interpreter::unwind to ensure that this function
will not accept termination exception coming concurrently.

  • interpreter/Interpreter.cpp:

(JSC::sanitizeRemoteFunctionException):
(JSC::Interpreter::unwind):

10:44 AM Changeset in webkit [290515] by J Pascoe
  • 9 edits in trunk

[WebAuthn] Use default pubKeyCredParams if empty in makeCredential
https://bugs.webkit.org/show_bug.cgi?id=237109
rdar://problem/89376484

Reviewed by Brent Fulgham.

Source/WebCore:

The Web Authentication level 2 spec was updated to clarify that
a set of default pubKeyCredParams should be used if the list
supplied by the RP is empty. This patch starts using
the default and updates associated tests.

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinator::create const):

  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:
  • Modules/webauthn/WebAuthenticationConstants.h:

LayoutTests:

Update tests to take in account using default pubKeyCredParams.

  • http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
9:23 AM Changeset in webkit [290514] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Use modern Hasher in ContentExtensionsActions
https://bugs.webkit.org/show_bug.cgi?id=237157

Reviewed by Darin Adler.

  • contentextensions/ContentExtensionActions.h:

(WebCore::ContentExtensions::add):
(WTF::DefaultHash<WebCore::ContentExtensions::RedirectAction>::hash):
(WTF::DefaultHash<WebCore::ContentExtensions::ModifyHeadersAction>::hash):
(WebCore::ContentExtensions::VariantHasher::hash): Deleted.
(WebCore::ContentExtensions::VectorHasher::hash): Deleted.

8:56 AM Changeset in webkit [290513] by youenn@apple.com
  • 11 edits in trunk/Source/WebKit

Better isolate RemoteVideoFrameObjectHeap clients from ThreadSafeObjectHeap implementation details
https://bugs.webkit.org/show_bug.cgi?id=237191

Reviewed by Kimmo Kinnunen.

Refactoring to make RemoteVideoFrameObjectHeap API independent of ThreadSafeObjectHeap.
This makes code more readable and simplifies client side usage as well,
for instance by not having to care about timers, or using more known names like add/get instead of retire.

No change of behavior.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
  • Shared/ThreadSafeObjectHeap.h:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
8:44 AM Changeset in webkit [290512] by Alan Bujtas
  • 8 edits
    2 adds in trunk

[Tables] Incorrect table sizing when colgroup comes after tbody
https://bugs.webkit.org/show_bug.cgi?id=237205
<rdar://86582214>

Reviewed by Antti Koivisto.

Source/WebCore:

Let's use the colgroup for table sizing even when it comes after any thead, tbody, tfoot, and tr elements.
This makes WebKit match other rendering engines (see https://src.chromium.org/viewvc/blink?revision=159442&view=revision)

Test: fast/table/table-sizing-fails-when-colgroup-comes-after-content.html

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::firstColumn const):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::nextColumn const):

LayoutTests:

  • fast/table/table-sizing-fails-when-colgroup-comes-after-content-expected.html: Added.
  • fast/table/table-sizing-fails-when-colgroup-comes-after-content.html: Added.
  • platform/mac/tables/mozilla_expected_failures/dom/appendCol1-expected.txt: Progression.
  • platform/mac/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt: Progression.
8:43 AM Changeset in webkit [290511] by Russell Epstein
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.5

8:32 AM Changeset in webkit [290510] by Patrick Angle
  • 4 edits in trunk/Source/JavaScriptCore

Web Inspector: [Cocoa] Split remote inspector message data into smaller chunks for large messages
https://bugs.webkit.org/show_bug.cgi?id=237110
<rdar://89364487>

Reviewed by Devin Rousso.

Messages over 2 MiB will now be split into multiple chunks, which allows us to not exceed any receiving daemon
process' memory limit under otherwise normal conditions. 2 MiB was chosen as a balance between not having to
split most messages at all and making sure that the messages (and any copies made during the relaying of the
messages) do not exceed the memory limits of the receiving daemon process.

In order to prevent us from sending chunked messages to a process that doesn't support them we check for a flag
to enable this functionality during connection setup.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::receivedSetupMessage):

8:23 AM Changeset in webkit [290509] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Remove unused soft linking declarations
https://bugs.webkit.org/show_bug.cgi?id=237209

Reviewed by Brent Fulgham.

  • WebProcess/cocoa/WebProcessCocoa.mm:
8:04 AM Changeset in webkit [290508] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Python 3] Invoke validate-committer-lists with Python 3
https://bugs.webkit.org/show_bug.cgi?id=237171
<rdar://problem/89449485>

Reviewed by Alexey Proskuryakov.

  • Tools/Scripts/validate-committer-lists:

(CommitterListFromMailingList): Use https urls.
(CommitterListFromMailingList._fetch_authors_and_last_commit_time_from_git_log):
Handle commits in the canonical repository.
(CommitterListFromGit.possibly_expired_committers): Use Python 3 sorting idioms.
(CommitterListFromGit.possibly_inactive_reviewers): Declare process encoding.
(CommitterListFromGit.print_possibly_expired_committers): Committers which are not in
contributors.json or are only contributors cannot have expired committer status.
(CommitterListFromGit.print_possibly_inactive_reviewers): String already utf-8.
(CommitterListFromGit.print_committers_missing_from_committer_list): Check contributors,
not committers.

  • Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(BugzillaQueries.fetch_bugs_matching_quicksearch): Make urllib.quote invocations Python 3 compatible.
(BugzillaQueries.fetch_bugs_matching_search): Ditto.
(BugzillaQueries.fetch_bugs_from_review_queue): Ditto.
(BugzillaQueries.fetch_login_userid_pairs_matching_substring): Ditto.
(BugzillaQueries.is_invalid_bugzilla_email): Ditto.

Canonical link: https://commits.webkit.org/247793@main

7:49 AM Changeset in webkit [290507] by youenn@apple.com
  • 5 edits
    1 add in trunk

Non-simple CORS preflight fails due to cache-control header
https://bugs.webkit.org/show_bug.cgi?id=236837
<rdar://problem/89382796>

Reviewed by Chris Dumez.

Source/WebCore:

We fixed cache-control in https://bugs.webkit.org/show_bug.cgi?id=233916.
The fix to make the website work is to ensure that Content-Type is not cleared when going to service worker.
Covered by updated tests.

  • Modules/beacon/NavigatorBeacon.cpp:

LayoutTests:

  • http/wpt/service-workers/cache-control-request-expected.txt:
  • http/wpt/service-workers/cache-control-request.html:
  • http/wpt/service-workers/resources/cross-origin-allow-for-beacon.py: Added.
5:28 AM Changeset in webkit [290506] by commit-queue@webkit.org
  • 8 edits in trunk

[GTK][WPE] Uncouple libgbm, libdrm dependencies from ANGLE functionality
https://bugs.webkit.org/show_bug.cgi?id=237199

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-02-25
Reviewed by Chris Lord.

.:

For both GTK and WPE, unconditionally search for the libgbm and libdrm
dependencies as they will also be needed outside of ANGLE functionality.
USE_ANGLE is defined along with USE_NICOSIA, but still only if the
relevant option was enabled.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Unconditionally build with libgbm and libdrm cflags and linker flags
since these will be used outside of ANGLE functionality.

Remove USE(ANGLE) && USE(NICOSIA) guards from GBMDevice files.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • platform/graphics/gbm/GBMDevice.cpp:
  • platform/graphics/gbm/GBMDevice.h:
5:26 AM Changeset in webkit [290505] by commit-queue@webkit.org
  • 16 edits
    4 copies
    3 adds in trunk

REGRESSION(r289580): [ iOS macOS ] TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=236744

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-25
Reviewed by Antti Koivisto.

Source/WebKit:

Add new tester interface for testing IPC stream features.

Before, TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory would test the feature of
"can reply stream sync message with shared memory" by using a RemoteRenderingBackend
message that did so. However, when the RemoteRenderingBackend was changed to use a
different stategy, this test stopped working without compile failure. The IPC testing
is currently done at JS level.

After, the new dedicated testing interface IPCStreamTester has dedicated message for
testing this feature. The test is moved to LayoutTests/ipc and made so that
it tests the feature in all currently testable processes WP uses (GPU, Networking, UI).

IPCTestingAPI is amended to return the all possible testable process names, so
the .html test can work even when ENABLE(GPU_PROCESS) is toggled.

The .html test also passes when !ENABLE(IPC_TESTING_API). Currently

ENABLE_IPC_TESTING_API == (ASAN_ENABLED
!defined(NDEBUG)) && PLATFORM(COCOA)

E.g. test tests something on Release+ASAN or Debug.

Having the test in .html also makes it possible to run the test on iOS devices.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Shared/IPCStreamTester.cpp: Added.

(WebKit::IPCStreamTester::create):
(WebKit::IPCStreamTester::IPCStreamTester):
(WebKit::IPCStreamTester::initialize):
(WebKit::IPCStreamTester::stopListeningForIPC):
(WebKit::IPCStreamTester::syncMessageReturningSharedMemory1):

  • Shared/IPCStreamTester.h: Copied from Source/WebKit/Shared/IPCTester.h.
  • Shared/IPCStreamTester.messages.in: Copied from Source/WebKit/Shared/IPCTester.messages.in.
  • Shared/IPCStreamTesterIdentifier.h: Copied from Source/WebKit/Shared/IPCTester.h.
  • Shared/IPCStreamTesterProxy.messages.in: Copied from Source/WebKit/Shared/IPCTester.messages.in.
  • Shared/IPCTester.cpp:

(WebKit::IPCTester::createStreamTester):
(WebKit::IPCTester::releaseStreamTester):

  • Shared/IPCTester.h:
  • Shared/IPCTester.messages.in:
  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSIPC::staticValues):
(WebKit::IPCTestingAPI::processTargetFromArgument):
(WebKit::IPCTestingAPI::JSIPC::processTargets):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

LayoutTests:

  • ipc/stream-sync-reply-shared-memory-expected.txt: Added.
  • ipc/stream-sync-reply-shared-memory.html: Added.
1:50 AM Changeset in webkit [290504] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.35.90

WebKitGTK 2.35.90

1:50 AM Changeset in webkit [290503] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.36

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.35.90 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.35.90.
1:17 AM Changeset in webkit [290502] by Carlos Garcia Campos
  • 11 edits in trunk

AX: List item marker not exposed when not a direct child of a list item
https://bugs.webkit.org/show_bug.cgi?id=236777
<rdar://problem/89082485>

Reviewed by Adrian Perez de Castro.

Source/WebCore:

It can happen that the marker is not a direct child of a list item, in which case the marker is ignored and not
exposed to ATs.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObjectUnignored const): In case of list marker find the marker list item.
(WebCore::AccessibilityRenderObject::markerRenderer const): Helper to return the list item marker renderer.
(WebCore::AccessibilityRenderObject::addListItemMarker): Add always the list item marker as the first child of
list items.
(WebCore::AccessibilityRenderObject::addChildren): Do not add list item marker children, they will be added to
the right parent in addListItemMarker().

  • accessibility/AccessibilityRenderObject.h:

Tools:

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::roleValueToString): Return AXStatic for Text role too.

LayoutTests:

Update test results.

  • accessibility/gtk/list-items-always-exposed-expected.txt:
  • accessibility/gtk/list-items-always-exposed.html:
  • accessibility/gtk/spans-expected.txt:
  • accessibility/gtk/spans.html:
  • platform/gtk/TestExpectations:
12:51 AM Changeset in webkit [290501] by youenn@apple.com
  • 14 edits in trunk/Source

Optimize black frame sending in MediaRecorderPrivate
https://bugs.webkit.org/show_bug.cgi?id=237027

Reviewed by Kimmo Kinnunen.

Source/WebCore:

Allow generating black frames as IOSurfaces.
Covered by existing tests.

  • platform/graphics/cv/CVUtilities.h:
  • platform/graphics/cv/CVUtilities.mm:

Source/WebKit:

Add support for sending black frames through SharedVideoFrame.
In that case, we only send width and height and we reconstruct a black frame on receiver side.
Make use of SharedVideoFrame in RemoteMediaRecorder.
Set ownership in SharedVideoFrame to the corresponding WebProcess.

Covered by existing tests, in particular http/wpt/mediarecorder/mute-tracks.html.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:
  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
  • WebProcess/GPU/webrtc/SharedVideoFrame.h:
12:28 AM WebKitGTK/2.36.x edited by Carlos Garcia Campos
(diff)
12:26 AM Changeset in webkit [290500] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. [GTK] Bump version numbers

  • Source/cmake/OptionsGTK.cmake:
12:21 AM Changeset in webkit [290499] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.36

Merge r290375 - [GStreamer] De-initialize GStreamer before terminating WebProcess
https://bugs.webkit.org/show_bug.cgi?id=237084

Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-23
Reviewed by Carlos Garcia Campos.

Source/WebKit:

Allowing the leak tracer to report/log leaks. There is an issue though, if the UIProcess
exits too early, the leak tracer reporting will be interrupted potentially too early. The
workaround is to have 2 tabs open in the GTK MiniBrowser, closing the one where media
handling and leak tracing was done and keeping the second tab open.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::stopRunLoop):

Tools:

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_gstbuild): Do not add extra quotes to GST_TRACERS, this is not supposed
to store paths.

12:19 AM Changeset in webkit [290498] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore

Merge r290341 - CachedResourceLoader::allCachedSVGImages() reparses resource URLs unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=237002

Reviewed by Darin Adler.

Store URLs in the HashMaps instead of Strings since we have URLs initially and we
need URLs eventually. This avoids having to re-parse the URL unnecessarily, which
is fairly expensive.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::notifyFinished):

  • loader/cache/CachedResourceLoader.h:
12:16 AM Changeset in webkit [290497] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Merge r290338 - PingLoader is failing to call completion handler in error case
https://bugs.webkit.org/show_bug.cgi?id=237062
<rdar://50157253>

Reviewed by Chris Dumez.

The completion handler was not being called in the case of a PingLoad being redirected to
a non-HTTP(S) scheme.

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::willPerformHTTPRedirection):

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

Remove dead code in GPUProcessConnection::dispatchMessage
https://bugs.webkit.org/show_bug.cgi?id=237135

Reviewed by Kimmo Kinnunen.

No change of behavior.

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):

12:08 AM Changeset in webkit [290495] by commit-queue@webkit.org
  • 43 edits
    3 adds
    4 deletes in trunk/LayoutTests

[GLIB] Update test baselines after various LFC improvements.
https://bugs.webkit.org/show_bug.cgi?id=237184

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-02-25

  • platform/glib/fast/backgrounds/background-leakage-transforms-expected.txt:
  • platform/glib/fast/backgrounds/border-radius-split-background-expected.txt:
  • platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt:
  • platform/glib/fast/block/positioning/auto/vertical-lr/001-expected.txt:
  • platform/glib/fast/block/positioning/auto/vertical-lr/002-expected.txt:
  • platform/glib/fast/block/positioning/auto/vertical-lr/003-expected.txt:
  • platform/glib/fast/block/positioning/auto/vertical-lr/004-expected.txt:
  • platform/glib/fast/block/positioning/auto/vertical-lr/006-expected.txt:
  • platform/glib/fast/block/positioning/vertical-lr/002-expected.txt:
  • platform/glib/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/glib/fast/replaced/vertical-lr/absolute-position-percentage-width-expected.txt:
  • platform/glib/fast/replaced/vertical-lr/absolute-position-with-auto-height-and-top-and-bottom-expected.txt:
  • platform/glib/fast/replaced/vertical-lr/absolute-position-with-auto-width-and-left-and-right-expected.txt:
  • platform/glib/fast/table/border-collapsing/002-vertical-expected.txt:
  • platform/glib/fast/writing-mode/basic-vertical-line-expected.txt:
  • platform/glib/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/glib/fast/writing-mode/border-radius-clipping-vertical-lr-expected.txt:
  • platform/glib/fast/writing-mode/border-styles-vertical-lr-expected.txt:
  • platform/glib/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt:
  • platform/glib/fast/writing-mode/border-styles-vertical-rl-expected.txt:
  • platform/glib/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt:
  • platform/glib/fast/writing-mode/border-vertical-lr-expected.txt:
  • platform/glib/fast/writing-mode/box-shadow-vertical-lr-expected.txt:
  • platform/glib/fast/writing-mode/japanese-lr-text-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Added.
  • platform/gtk/fast/block/lineboxcontain/inline-box-vertical-expected.txt:
  • platform/gtk/fast/html/details-writing-mode-expected.txt:
  • platform/gtk/fast/html/details-writing-mode-mixed-expected.txt:
  • platform/gtk/fast/lists/003-vertical-expected.txt:
  • platform/gtk/fast/overflow/overflow-rtl-vertical-expected.txt:
  • platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
  • platform/gtk/fast/writing-mode/english-lr-text-expected.txt:
  • platform/gtk/fast/writing-mode/text-orientation-basic-expected.txt:
  • platform/gtk/fast/writing-mode/vertical-lr-replaced-selection-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Removed.
  • platform/wpe/fast/block/lineboxcontain/inline-box-vertical-expected.txt:
  • platform/wpe/fast/html/details-writing-mode-expected.txt:
  • platform/wpe/fast/html/details-writing-mode-mixed-expected.txt:
  • platform/wpe/fast/lists/003-vertical-expected.txt:
  • platform/wpe/fast/overflow/overflow-rtl-vertical-expected.txt:
  • platform/wpe/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
  • platform/wpe/fast/writing-mode/english-lr-text-expected.txt:
  • platform/wpe/fast/writing-mode/text-orientation-basic-expected.txt:
  • platform/wpe/fast/writing-mode/vertical-lr-replaced-selection-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Removed.
12:05 AM WebKitGTK/2.36.x edited by Carlos Garcia Campos
(diff)
12:03 AM Changeset in webkit [290494] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Make RemoteVideoFrameIdentifier a regular ObjectIdentifier
https://bugs.webkit.org/show_bug.cgi?id=237136

Reviewed by Kimmo Kinnunen.

Given all RemoteVideoFrames are created in GPUProcess, we no longer need to use a ProcessQualified identifier.
Covered by existing tests.

  • WebProcess/GPU/media/RemoteVideoFrameIdentifier.h:

Feb 24, 2022:

9:10 PM Changeset in webkit [290493] by achristensen@apple.com
  • 4 edits in trunk

Unreviewed, reverting r290371.

Caused assertion

Reverted changeset:

"Call WKNavigationDelegate.didFailProvisionalNavigation even
after a cross-origin navigation with COOP"
https://bugs.webkit.org/show_bug.cgi?id=237071
https://commits.webkit.org/r290371

8:56 PM Changeset in webkit [290492] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening after r290454.

7:10 PM Changeset in webkit [290491] by Matt Woodrow
  • 3 edits in trunk/Source/WebCore

Simplify grid RTL handling
https://bugs.webkit.org/show_bug.cgi?id=236694

Reviewed by Dean Jackson.

The previous code stored columns in logical order (column 0 is the rightmost physical column), but the positions were offset
using the physical left border, padding and content distribution offset. This hybrid physical/logical coordinate space
made for tricky conversions into the final coordinate space.
This changes the stored column positions to use purely logical coordinates, and does a single direction swap (by subtracting
from the width) at the end.

No tests added, this refactoring is covered by a large number of existing WPTs.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::populateGridPositionsForDirection):
(WebCore::RenderGrid::resolveAutoStartGridPosition const):
(WebCore::RenderGrid::resolveAutoEndGridPosition const):
(WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild):
(WebCore::RenderGrid::logicalOffsetForOutOfFlowChild const):
(WebCore::RenderGrid::gridAreaPositionForOutOfFlowChild const):
(WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
(WebCore::RenderGrid::translateRTLCoordinate const):
(WebCore::RenderGrid::logicalOffsetForChild const):
(WebCore::RenderGrid::translateOutOfFlowRTLCoordinate const): Deleted.

  • rendering/RenderGrid.h:
6:38 PM Changeset in webkit [290490] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS ] editing/pasteboard/dom-paste/dom-paste-same-origin.html is a flaky timeout/failure
https://bugs.webkit.org/show_bug.cgi?id=237174

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/ios/TestExpectations:
6:25 PM Changeset in webkit [290489] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.4

Tag Safari-614.1.5.4.

6:22 PM Changeset in webkit [290488] by Russell Epstein
  • 3 edits in branches/safari-614.1.5-branch/Source/WebKit

Cherry-pick r290288. rdar://problem/89062166

Allow adattributiond to start on iOS devices
https://bugs.webkit.org/show_bug.cgi?id=237009
<rdar://89062166>

Reviewed by Per Arne Vollan.

There were three more problems preventing it from starting:

  1. The code signature said to look for a sandbox profile with "webkit" in the name, but the profile had "WebKit" in the name. These names are case sensitive.
  2. The sandbox profile would not let it load the WebKit framework, so dyld would fail and the process would fail to launch. I added the framework directories that the XPC services are allowed to access.
  3. Once it started, it would crash inside WTF::initializeMainThread when calling WTF::pageSize which requires access to the hw.pagesize_compat syscall. As a starting point, I'm going to allow all the syscalls that the network process currently has access to, which is enough to get it to respond without crashing.
  4. We need access to com.apple.diagnosticd and com.apple.analyticsd in order to be able to generate crash reports. This is quite useful. Yes, I know I said there were only three problems, but the 4th is so useful I thought I'd put it in the list.
  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
  • Scripts/process-entitlements.sh:

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

6:21 PM Changeset in webkit [290487] by Russell Epstein
  • 1 delete in tags/Safari-614.1.5.4

Remove tag.

6:04 PM Changeset in webkit [290486] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ EWS ] imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-twice.html is a flaky ASSERTION FAILED / failure
https://bugs.webkit.org/show_bug.cgi?id=237172

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/mac/TestExpectations:
5:59 PM Changeset in webkit [290485] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.0.7

Tag Safari-613.1.17.0.7.

5:52 PM Changeset in webkit [290484] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.4

Tag Safari-614.1.5.4.

5:46 PM Changeset in webkit [290483] by Russell Epstein
  • 7 edits
    1 add in branches/safari-614.1.5-branch

Cherry-pick r290442. rdar://problem/89345853

[MacCatalyst] REGRESSION(r290091): sometimes can crash if WKWebView is deallocated before the next visible content rect update
https://bugs.webkit.org/show_bug.cgi?id=237126
<rdar://problem/89345853>

Reviewed by Tim Horton.

Source/WebKit:

Tests: WKWebViewResize.DoesNotAssertInDeallocAfterChangingFrame

WKWebViewResize.DoesNotAssertInDeallocAfterChangingBounds

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _acquireResizeAssertionForReason:]): (-[WKWebView _invalidateResizeAssertions]): Added.
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView dealloc]): Make sure to -invalidate any remaining assertions in -dealloc as required by _UIInvalidatable.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewResize.mm: Added. (TEST.WKWebViewResize.DoesNotAssertInDeallocAfterChangingFrame): (TEST.WKWebViewResize.DoesNotAssertInDeallocAfterChangingBounds):
  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

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

5:44 PM Changeset in webkit [290482] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Port CaptivePortalMode preferences to AnyHost in order to support CFPrefs Direct Mode propagation
https://bugs.webkit.org/show_bug.cgi?id=237098

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-02-24
Reviewed by Brent Fulgham.

Move our CaptivePortalMode preference to AnyHost in order to correctly support
CFPrefs Direct Mode propagation. We also now dispatch a CFNotification to ensure our preference
observer is always notified of the change.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults findPreferenceChangesAndNotifyForKeys:toValuesForKeys:]):

  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::setPreferenceValue):

  • UIProcess/API/Cocoa/_WKSystemPreferences.mm:

(+[_WKSystemPreferences isCaptivePortalModeEnabled]):
(+[_WKSystemPreferences setCaptivePortalModeEnabled:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::captivePortalModeConfigUpdateCallback):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/WebProcessPool.h:
5:43 PM Changeset in webkit [290481] by Aditya Keerthi
  • 11 edits in trunk

[iOS] Add support for replacing WKFoundTextRanges
https://bugs.webkit.org/show_bug.cgi?id=237151
rdar://89258687

Reviewed by Wenson Hsieh.

Source/WebKit:

Implement protocol methods to support replacement.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::replaceFoundTextRangeWithString):

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

(-[WKContentView replaceFoundTextInRange:inDocument:withText:]):
(-[WKContentView supportsTextReplacement]):

Restrict replacement to editable web views.

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::replaceFoundTextRangeWithString):

Use a TemporarySelectionChange to select and replace the desired range.

  • WebProcess/WebPage/WebFoundTextRangeController.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::replaceFoundTextRangeWithString):

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

Tools:

Add a test that replaces found ranges.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(TEST):

5:42 PM Changeset in webkit [290480] by Russell Epstein
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.4

5:41 PM Changeset in webkit [290479] by Kyle Piddington
  • 487 edits
    1 copy
    3 moves
    17 adds
    18 deletes in trunk/Source/ThirdParty/ANGLE

Roll ANGLE to Feb 18 2022 (78c64dd74ee5)
https://bugs.webkit.org/show_bug.cgi?id=235746

Reviewed by Dean Jackson.

The changelog has been rewritten to avoid
confusion. The following commits are integrated in this
roll:

78c64dd74 Roll SwiftShader from 13f7365e81be to b4a56a893496 (11 revisions)
00c4dc93a Python3: Update generate_test_spec_json.py
d98f4812c FrameCapture: Capture empty buffer generation.
7a4fd4212 Roll Chromium from d984ec3b132a to 6594a8d1e6cf (1749 revisions)
b1bdce5f2 Roll VK-GL-CTS from 834c2e16ae1c to d321c7ec84de (7 revisions)
f996d4d87 Vulkan: Fix DynamicBuffer cache reuse.
8dc9e83e3 Translator: Fix RunAtTheEndOfShader w.r.t discard
00169174c gl.xml: Remove GL_BLEND_EQUATION_EXT from GetPName.
8ade4c2f7 Vulkan: Add overlay and stats for descriptor set caches.
671fcf732 Vulkan: Add a feature to retain SPIR-V debug info
1315bc816 Vulkan: Refactor DynamicBuffer::allocate.
8d966f7dd Vulkan: Simplify SubAllocation data types.
57b8b9332 Roll vulkan-deps from 9fb91023eb58 to 4d9fe6bf1f0c (8 revisions)
ae9c94f1b Add instructions to build RenderDoc for Android on Windows
38723c28c Vulkan: Allocate space for default attrib only if it is enabled
ad462491f Refine suppression for GLSLTest.SwizzledChainedAssignIncrement.
8cb586671 Vulkan: Add uniform descriptor set caching test.
bfbe86613 Fix UpdateChromeANGLE on mac for debug angle
a0d558f09 Vulkan: Fix D/S invalidation for MSAA EGL configs
3b8910625 Roll Chromium DEPS manually.
fb6303a15 Update docs for checkout with 'fetch' tool.
afacf7f99 Roll vulkan-deps from 956ca5369840 to 9fb91023eb58 (10 revisions)
2893effa4 validationESEXT: Implement ValidateGetCompressedTexImageANGLE.
b1075951d vk_helpers: Adjust CopyImageToBuffer extent to block size.
d77f64b35 Roll SwiftShader from 5f1c00bda1c1 to 13f7365e81be (5 revisions)
bdedf146d TextureVk: Implement getCompressedTexImage.
5f3f13f69 Vulkan: Invalidate D/S for multisampled EGL configs too
eeddb0504 Metal: Incorrect parenthization for assignment expressions
ed39d49a2 Metal: Fix Hang in WebGL CTS Occlusionquery_strict test
760253ce2 Vulkan: replace uniforms FastIntegerMap with FastUnorderedMap
931863370 Vulkan: Check Serial is valid in SyncHelperNativeFence
904a47975 Python3 upgrades
c590a1aa9 Roll VK-GL-CTS from 2d1377ec02b5 to 834c2e16ae1c (1 revision)
3adace153 Don't expose detailed driver version info to webGL
255fec892 Remove reference to policy_testserver.py
e2f8ff32c Tests: Add State of Survival trace
a5badc3ef [infra] Update active lucicfg experiments.
cf4b50c5b Vulkan: Retain images before changeLayoutAndQueue
3b8b1f709 Roll SwiftShader from cbd31d271e4c to 5f1c00bda1c1 (12 revisions)
f3b6af597 Roll vulkan-deps from 3a6f074dbd38 to 956ca5369840 (55 revisions)
ad4fae642 Roll Chromium from c9825531290b to d984ec3b132a (580 revisions)
e50455877 Debug Overlay Demo
527ceb73c Vulkan: Switch XFB counter buffer to suballocation
a0bc9dab4 Vulkan: Switch stencilBlitResolveNoShaderExport to suballocation
d36df8d73 Unicode support for system_utils on Windows
54d428dd5 Tests: Add MARVEL Strike Force trace
1e29ba626 Vulkan: Enable overlay by default with debug layers
19f405318 Vulkan: Enable subgroup feature in GenerateMipmap.comp
2efbfd058 Roll VK-GL-CTS from 071bfca11aa9 to 2d1377ec02b5 (11 revisions)
c6f5a5bbe Roll Chromium from c0b2804cbd93 to c9825531290b (658 revisions)
06edae72b Vulkan: Allow duplicated block name in different shader interface
6cced91b3 FrameCapture: Remove destroyed contexts from share group
f7f269560 Vulkan: Fix two bugs exposed by moving mEmptyBuffer to suballocation
9b7a77b08 Double batch timeout for sanitizer tests.
4b45576d4 Keep ANGLE_base_vertex_base_instance available for ES 2.0
d285d6a72 Vulkan: Use VK_EXT_depth_clip_control
3f0a28ba6 Add entry points for EGL_KHR_partial_update
3b4548bb6 Traces: Add restricted_trace_perf.py script for Android
a3c785fc1 GL: Remove avoid_dxt1_srgb_texture_format feature
fd378ce5a Rebind program on glUseProgramStages
3a72994ea Vulkan: Add an end2end test
0a320d16f GetImageTest: Enable on Vulkan SwiftShader.
568724918 Roll Chromium from bf99b2cc0f6b to c0b2804cbd93 (526 revisions)
d5df23318 Vulkan: Disable EGLContextSharingTestNoSyncTextureUploads on Pixel6
038adcae4 Vulkan: Render the overlay in the graphics pipeline
b39add311 Roll VK-GL-CTS from b594e2aabae9 to 071bfca11aa9 (1 revision)
419bca3f5 Vulkan: Use Vulkan API directly for BufferPool's buffer allocation
6fd2588df Update GL_MAX_CLIP_DISTANCES_EXT validation
734365a71 Vulkan: improve command buffer reset performance
118ce6aae Support to open d3d12 shared handles
a0e3a5fb9 Roll SwiftShader from 0915ab4bddf7 to cbd31d271e4c (3 revisions)
f63d5f1c1 Revert "Don't build dEQP tests on MSVC temporarily"
4b6a5a84b Roll Chromium from 60719c9cd084 to bf99b2cc0f6b (543 revisions)
670a6e476 Ignore invalid texture type error
91f92540c Metal: Fix multisample resolves.
823522375 Vulkan: Fix incorrect DescriptorSet's bufferInfo in XFB emulation path
37f59b850 Roll VK-GL-CTS from 97ceb2222747 to b594e2aabae9 (64 revisions)
02ce52d26 Test: Add Lords Mobile trace
33d17b7fc Fix perf test runner script.
4349904b0 Add keying on backend to ANGLE Display caching.
9cfd87244 Allow surface creation in DisplayVkNull
a91d56033 Roll SwiftShader from e576ca6011cd to 0915ab4bddf7 (6 revisions)
4716e0fe8 Roll Chromium from 817a527fde8c to 60719c9cd084 (571 revisions)
71d06198c Vulkan: Fix vkCmdClearAttachments vs multiview
1b9774f57 Vulkan: Force submit updates to immutable textures
a39618436 Vulkan: Bind aligned default uniform buffer size.
6207fe88d Vulkan: Minor cleanup to DynamicDescriptorPool.
5b43a30e3 Overlay: Rearrange the font image
70c510eb2 Vulkan: Use common storage for descriptor set descs.
50fb842d5 Expand SwiftShader Win/ASAN suppression.
520458769 Vulkan: StreamVertexDataWithDivisor write beyond buffer boundary
d635feb11 [fuchsia] Tests using additional_manifest_fragments are CFv1.
8622810c4 Roll SwiftShader from ad6d7f84f2a1 to e576ca6011cd (19 revisions)
d066f9a34 Roll Chromium from 26dacbf4b527 to 817a527fde8c (500 revisions)
2df2a9ec2 Add instructions to enable Debug Overlay On Android
236a3d0f0 Tests: Add Dead Trigger 2 trace
1acfe6597 Test: Add Last Shelter: Survival trace
8b81742dd Vulkan: Move shader resources descriptor set update.
02ad19e36 Vulkan: Fix vkCmdResolveImage offsets
d9fcebb8a Vulkan: Make framebuffer fetch syncval errors more specific
939da2945 Tests: Add Magic Rush: Heroes trace
9208dcc65 Revert "Vulkan: Enable framebuffer fetch on SwiftShader"
44deda4c2 Tests: Add Dragon Mania Legends trace
959d4be5f Vulkan: Remove buffer get method from descriptors desc.
b2006a222 Roll SwiftShader from 2b76a13c38ae to ad6d7f84f2a1 (1 revision)
06150ab2f Roll Chromium from 55ed02951fa2 to 26dacbf4b527 (583 revisions)
f65e7c3ca Vulkan: Take base level into account in image views
6d30de10d Metal: Fix ANGLEUniformBlock alignment
ac20272f6 Vulkan: Fix present region rectangles
2eeb87488 Vulkan: Enable framebuffer fetch on SwiftShader
2ab8f48fe Allow glCopyTexImage2D from BGRX and RGBX to GL_LUMINANCE
c48e35b94 Add more info in BlitFramebuffer error message
2b00f4f5a Fix bug in protected content validation
706f8a311 Support gl internal format for creating EGLImage from VkImage
da87b1dbc Fix GLES Display creation on ChromeOS when Vulkan is enabled
7820ca23e Vulkan: Binding available buffer range to descriptor.
8710d7fe2 Roll SwiftShader from 6014f10de554 to 2b76a13c38ae (3 revisions)
0aca45c1f Roll Chromium from 8894f7c632dd to 55ed02951fa2 (509 revisions)
1608a9567 Vulkan: Revert client vertex data streaming to use DynamicBuffer
9e3232998 FrameCapture: Regen framebuffers on Reset
e897bf9ae Remove gl_PerVertex-related suppression
3dbba51df Reland "Vulkan: Enable ANGLE_texture_multisample"
83a3f654a Revert "Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang"
4ac0f1436 Vulkan: Fix gl_LastFragData transformation
f1159253d Expand suppression of Mimap tests to any Win/Swiftshader config.
e56f0e293 Vulkan: Check program fetch status when switching framebuffers
600ffa6ec Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang
4a65040b6 Add new Vulkan uniform update test.
464396c7b Roll vulkan-deps from fe093f4789c2 to 3a6f074dbd38 (8 revisions)
4c9f4519b Roll SwiftShader from 4998c7b3a2b8 to 6014f10de554 (6 revisions)
6e7a7a03e Roll Chromium from a210f891a450 to 8894f7c632dd (1053 revisions)
b756b2c27 Suppress flaky Mipmap/Multithreading tests on Win/SwS/ASAN
812d5fffa Metal: End the current render pass at glInvalidateFramebuffer.
7d7cca47f Vulkan: Update default FBO when fetch in use
25120c560 Mac: Try to diagnose crashes inside Core Animation.
139f4bd46 Revert "Vulkan: Enable ANGLE_texture_multisample"
494887100 Metal: Remove emulatedInstanceID
57933493d Roll vulkan-deps from 9ee740d2e9ef to fe093f4789c2 (5 revisions)
72529c197 Vulkan: Fix a few framebuffer fetch bugs
fe56532f5 Vulkan: Enable ANGLE_texture_multisample
bc3be5a83 Vulkan: Add a dedicated suballocation garbage list
be2da2343 Vulkan: Initialize exectuable with invalid uniform serial.
33427a4b3 Vulkan: Fix vkCmdResolveImage extents
293c0b516 Vulkan: Cache commonly used 6 ushorts stream index array data
38fada351 Vulkan: Add support for OES_primitive_bounding_box
91b383e82 Translator: Emit warning when identifier has double underscores
945a09d10 Vulkan: Fix off-by-one in DynamicBuffer.
d6fb76a68 [fuchsia] Don't try to use calling executable path to load .so's
868c0739f Vulkan: Fix image base/max level respecification case.
0a6c4310e Vulkan: Fix incorrect gl_SamplePosition on ES3.2
693b48a07 Roll SwiftShader from 4db20a80409b to 4998c7b3a2b8 (1 revision)
d1b1ef9af Roll vulkan-deps from 69f4b9c09e48 to 9ee740d2e9ef (3 revisions)
3c727e44e Allow GL_RGBX8_ANGLE for texture copy destination
069269540 Roll Chromium from 97a33ab1a078 to a210f891a450 (477 revisions)
f810e9989 Use a temporary timeout multipler for trace tests.
508a8a027 Remove old spellings for SYNC-HAZARD-WRITE_AFTER_READ skips
2d3ce72d1 Refactor shared library load to avoid allocations.
665ddccd8 Vulkan: Emulate dithering
29d087df4 Fix ANGLE_rgbx_internal_format's extension file name
471f18521 D3D11: Fix underflow with computing small strides.
84470eb3d Roll SwiftShader from 518c5780ac4f to 4db20a80409b (3 revisions)
b934fad92 Roll Chromium from 4d71de73b37d to 97a33ab1a078 (625 revisions)
a4a4fec8b Roll vulkan-deps from f703f3cc0975 to 69f4b9c09e48 (10 revisions)
69263b388 Roll vulkan-deps from 746e518a0b0e to f703f3cc0975 (1 revision)
55ef2b4f7 Update one more SYNC-HAZARD-WRITE_AFTER_READ skip
168e0ae50 Vulkan: Refactor descriptor pool code.
a994ea994 Update SYNC-HAZARD-WRITE_AFTER_READ skip
e03f17535 EGL: mutable_render_buffer deferredFlush fix
e27bb3972 Roll vulkan-deps from a19b5047ffca to 746e518a0b0e (5 revisions)
8a1f8af4d Turn on the Vulkan backend on ChromeOS
9bf5716c8 Tests: Add War Planet Online trace.
287057b3b FrameCapture: Don't track coherent buffers before capture starts.
42c8b29d0 Tests: Add Dead By Daylight trace.
46b420f66 Roll SwiftShader from bca23447ad46 to 518c5780ac4f (7 revisions)
078f7ea06 Roll Chromium from 8ff0cb4f71d8 to 4d71de73b37d (550 revisions)
c4a9d4169 Metal: Refactor to build without SPIR-V
701d51b10 Vulkan: Add SmallBufferPool for small allocations
66e01ae5a Expand error message on BindTexture validation failure
706e44b06 Tests: Add PUBG Mobile launch trace
df19e35a0 Vulkan: Use queue for mGarbageQueue
4e644b330 Vulkan: Remove ProgramExecutableVk back-pointers.
b3ed47809 Change Windows display initialization from ANSI to wide version
602b957b8 Enable robustnessEXT for SwiftShader.
8b966cfc5 Roll vulkan-deps from ae6a4b829252 to a19b5047ffca (9 revisions)
322d118fc Roll SwiftShader from 711968667748 to bca23447ad46 (4 revisions)
47d63b4e3 Roll Chromium from 7b890e4b915b to 8ff0cb4f71d8 (485 revisions)
2ad5f350c Vulkan: Fix texture array level redefinition
45237a047 Metal: Fix undefined behavior of depth write
aadc64343 Vulkan: Fix to correctly redefine gl_PerVertex in GS
25e8f02b0 [infra] Use python3 for run_presubmit recipe.
a79708899 Vulkan: Use queue instead of vector for mSharedGarbageList
39f66a9c1 Vulkan: Support different SCBs for outside and inside RP
cb96c236a Revert "Vulkan: Enable framebuffer fetch on SwiftShader."
7c1346bdc Vulkan: Consolidate uniforms code in ProgramExecutableVk.
b2d55742b Program: Add generic uniform update methods.
374e0c439 ProgramPipeline: Remove mHas members.
0dc0dc2a4 Re-land: "Vulkan: Remove "fillProgramStateMap"."
510723193 Vulkan: Enable framebuffer fetch on SwiftShader.
1316d1534 Roll vulkan-deps from 4ec99dddf407 to ae6a4b829252 (11 revisions)
f44159cdb Roll SwiftShader from 366db5aedd90 to 711968667748 (8 revisions)
83ca1fbc5 Roll Chromium from 94c8695167c4 to 7b890e4b915b (100 revisions)
54f8a8f71 Roll Chromium from 35ed79e6a83b to 94c8695167c4 (935 revisions)
aaac31b48 Unskip dEQP.GLES3/functional_shaders_operator_unary_operator_minus_*
c5498b957 FrameCapture: Reset immutable buffers correctly.
8474c8e1c FrameCapture: Add Renderbuffers to mStartingResources.
5f0badf45 Vulkan: Prevent out of bounds read in divisor emulation path.
526c93ddf FrameCapture: Detect GL_MAP_COHERENT_BIT_EXT correctly.
f5dc2a951 Roll vulkan-deps from 238eaa6f9d25 to 4ec99dddf407 (7 revisions)
8fc4d3b1e Roll SwiftShader from e823eef17385 to 366db5aedd90 (2 revisions)
d7585c22a Capture/Replay: don't capture MS depth renderbuffer pixels
d6dd0cb52 EGL: EGL_KHR_lock_surface3 backend
6a14e328b Revert "Vulkan: Remove "fillProgramStateMap"."
bd87cc1ca Skip flaky CopyTextureTest.CopyOutsideMipmap
c7f31b8ae Expand TransformFeedbackTest.SpanMultipleRenderPasses suppression
296783294 Vulkan: Fix advertised precision ranges
38deffe40 Vulkan: Remove "fillProgramStateMap".
540b2e46a Fix MultithreadingTestES3.MultithreadFenceDraw skip on SwiftShader
73c823108 Update the Capture and Replay docs
85e2991f2 Fix couple LSAN detected leaks in unit and end2end tests
adb802383 On invalidate, only sync the relevant framebuffer binding
a20cd8b73 Fix initialization for ETC2 punchthrough alpha formats
cac4e54a6 Mark GL_RGBX8_ANGLE format as filterable.
64c49da36 Roll Chromium from b7f974a39665 to 35ed79e6a83b (570 revisions)
096c268bd Add a few overrides for Samsung
339a6d181 Roll vulkan-deps from c9b583de6eb8 to 238eaa6f9d25 (8 revisions)
0f00fbae2 Translator: Make vec/matrix size getters unsigned
ca3b28b4b Metal: Fix compressed texture initialization and add DXT1 test
4a5a559d6 Update Metal/iOS status from "planned" to "in progress".
a0fbcb375 Vulkan: Remove flush from SyncHelperNativeFence::serverWait
038d28772 Roll VK-GL-CTS from bfede065f419 to 97ceb2222747 (3 revisions)
29e254689 Account for EGL 1.5 version when dealing with robustness
78d482e56 Add standalone ANGLE Pixel 6 experimental bots
a5e22715e Vulkan: Fixed TC shader and gl_PerVertex block interaction
a64d52fd2 Add ANGLE_FORMAT_PRINTF() for catching format errors
31bb03fe2 Add more tests for program pipelines.
e6ed6977c Roll SwiftShader from 2e74d5dc03df to e823eef17385 (4 revisions)
a4b312c01 Roll vulkan-deps from 70b3eb7a5ab4 to c9b583de6eb8 (1 revision)
515f60bd6 FrameCapture: Keep MEC Setup resources in Reset.
034b50587 Roll Chromium from d5bf6f7f9376 to b7f974a39665 (478 revisions)
1ab6c9f69 Hide ES 3.0+ extensions from ES 2.0 clients
2caa9d4fe Vulkan: Add missing glGetProgramPipelineiv parameters handling
d23549689 Vulkan: Rename BufferHelper::initFor* to allocateFor*
a83f7e91c Vulkan: inline some of the BufferSuballocation APIs
1b5efe51a Vulkan: Rename SubAllocation to Suballocation
659725aaa Metal: Cleanup texture caps init
3064920a9 Capture/Replay: Serialize ActiveTexturesCache.
161643215 Roll vulkan-deps from d1b842fca80d to 70b3eb7a5ab4 (4 revisions)
7ff95f28d Roll Chromium from b24759852b71 to d5bf6f7f9376 (533 revisions)
1bd1a3db1 Metal: Canvas resizing causes webpage to run out of memory
15439f8e4 Vulkan: Remove BufferMemoryAllocator
dcac02ac1 Revert "Enable robustnessEXT for SwiftShader."
ef3fffd6f Fix running tests with empty test set.
e5c9b3859 Add object label in glBindTexture() error message
b53607981 Vulkan: Support fetching from default FBO
ff5368cd2 Mark a context as shared if using global textures/semaphores
fc6b747df EGL: Fallback to native device if no display available
55d127703 Metal: Cleanup autogenerated format table
cb7ff65c1 Roll SwiftShader from f6bdbed95b37 to 2e74d5dc03df (7 revisions)
eda5aa0be Roll vulkan-deps from 4cda77455291 to d1b842fca80d (6 revisions)
17f912bd6 Roll Chromium from 8cf5fa683fa3 to b24759852b71 (537 revisions)
00a2a2f3e Merge metal format table updates from Webkit
af8dd1c38 Update documentation link
f071aaaf3 Use first test name instead of shard index for TestArtifacts
7dda50fc0 Add frontend for ANDROID_extension_pack_es31a
28f223acb Vulkan: Add missing ESSL 3.2 builtin functions
400175d8e Copy shader buffers into pipeline executables.
892511fc3 Isolate LinkValidateProgramInterfaceBlocks.
fdadc420a Fix non-bot mode sharding on Android and disable elsewhere.
fa3241b70 Vulkan: Move shader_framebuffer_fetch to FeaturesVk
9012c1288 Add Microsoft vendor Id parsing to SystemInfo
453cd955a Add EGL_ANGLE_platform_angle_display_id to D3D11 backend.
a1858b024 Tests: Add Respawnables trace.
b803b60df Enable robustnessEXT for SwiftShader.
31942507f Fix export_targets Windows presubmit with Vulkan Loader.
8eafe4912 Roll SwiftShader from d7117384b0ee to f6bdbed95b37 (1 revision)
c31e14d9c Roll vulkan-deps from d891854a594a to 4cda77455291 (30 revisions)
4572a1764 Add support for GL_MESA_framebuffer_flip_y 3/*
a76550078 Roll Chromium from 86a4c63b080e to 8cf5fa683fa3 (329 revisions)
9b231f090 Vulkan: Fix incorrect bit test when mipmapping
158ecba6a Vulkan: Remove cached Impl pointers from ContextVk.
5adee9161 Wrap some global vulkan methods which depend on env variables
652e3db46 use vpython3 in run_gtest_angle_test.py
770c81b91 Roll SwiftShader from cd848cd695a4 to d7117384b0ee (2 revisions)
9cfb4dd91 Roll Chromium from c00f3886d7aa to 86a4c63b080e (890 revisions)
0aae0d7ad Update PrintSystemInfo with missing fields.
6601b8d2e Vulkan: Fix storage buffer limits on geom/tess without Vulkan support
c4c73e827 Fix RobustBufferAccessBehaviourTest.
30254d349 Ignore VUID-RuntimeSpirv-NonWritable-06341 warning
158d47831 Vulkan: Suppress VVL message about allocation exceeding heap size
28f05f41e Capture/Replay: Add annotation for crashing test
6e2ab29d1 Avoid data race in overflow check.
4f3a50e55 Roll Chromium from 3fcf884156d8 to c00f3886d7aa (595 revisions)
6312da1ab Vulkan: Disable GL_KHR_parallel_shader_compile
9f3c306ec Fix collection of systemDeviceId on Mac/M1
9b1a6d8a4 Vulkan: Invalidate depth/stencil unconditionally
bd64b3eaa Move pipeline uniforms into the executable.
985db6409 Fix test harness config parsing in Compressed Tex tests.
f4b0a95f4 Metal: Implement EXT_shader_texture_lod
814a78af5 Roll Chromium from 3668290e6162 to 3fcf884156d8 (108 revisions)
d4412d0a0 Roll Chromium from 3d4921afbcfd to 3668290e6162 (378 revisions)
2f4f5f8aa Add EGL_ANGLE_platform_angle_device_id for the Metal backend.
0ab15998c Translator: Don't promote precision for assignment operation lvalues
cd157aae5 Revert "Use STL container for vulkan memory allocator"
89467fa56 Roll Chromium from 597c376626be to 3d4921afbcfd (999 revisions)
d4c8209b3 Fix validation of copyImageSubData related to texture completeness
4a819ee26 Update code generation script to work with specified generators
96fd9b72d Fix validation of glCompressedTexImage3D
926b43e75 Reland: Frontend: separate lock in swap prep
2d1051778 Enable a few features for Samsung
345cdcb0f Rename features for consistency.
b0e15ee48 Decide GL_KHR_parallel_shader_compile in backends
a026d0536 Add support for subgroupSize of 16 in Debug Overlay Module
f180ecc96 Supress TransformFeedbackPausedDrawThenResume on Mac AMD
5ec02c8f4 Roll SwiftShader from b57a3aaee927 to cd848cd695a4 (1 revision)
7f8e7c38e Roll vulkan-deps from 328da0f26e8e to d891854a594a (9 revisions)
0b02a592f Metal: Generated Metal shaders do not compile offline
6a2558333 Metal: Fix transform feedback issue
37cde9e99 Update GLES31 expectations file
e38dab0aa Add missing implementation for glGetnUniformuiv()
74e03b9af Expose the registryID of GPUs on Mac via SystemInfo
9d11a341c Vulkan: Fix Vulkan SCB vs multiple subpasses
b90bcb9c8 Roll vulkan-deps from 57e7495dc76d to 328da0f26e8e (4 revisions)
9f1dc3e99 Roll Chromium from b91f3880e3ec to 597c376626be (567 revisions)
acd8fc76b Vulkan: Distinguish RP and outside-RP command buffer types
eea784687 Tests: Add Angry Birds 2 launch trace
095d7c0a0 Translator: Clean up spec const / driver uniform types
5c9bd7bac Update Mac goldctl
4111f9ef1 Add standalone ANGLE Mac AMD experimental bot
9d042d686 Cleanup after iOS build fixes
99b021a15 infra: Add TSAN and UBSAN tests to CQ.
b0feea4e4 Suppress failing test on Vulkan/Intel/Linux.
60a8b5930 Vulkan: Remove std::unique_ptr usage from BufferVk::mBuffer
217dc204e Broaden TSAN EGL multithread suppression.
ae1a56b67 Vulkan: Turn on GL_EXT_shader_framebuffer_fetch for ARM
9d668d6c4 Revert "Frontend: separate lock in swap prep"
b2dac79d9 Fix typo in EGLPrintInfo end2end Test
462cdb08e Capture/Replay: Reset FBOs, RBOs, VAOs
4472b3b0d Fix TSAN suppressions.
40c5cb255 Frontend: separate lock in swap prep
c2a296149 Test Expectations: Use file order as override priority.
ece463808 tests/EGLProtectedContentTest: Add QueryContext test.
1e2856fdc Update freetype-py wheel
a203e1263 Roll SwiftShader from 0b901607cad4 to b57a3aaee927 (1 revision)
8ab13284a Roll vulkan-deps from 09edcd7c680b to 57e7495dc76d (27 revisions)
6f80fa0c3 Roll Chromium from 8712e27d7e28 to b91f3880e3ec (349 revisions)
2ebdd23b6 Cleanup TextureCubeTestES3.CubeMapPixelUnpackBuffer
caf6433ad Vulkan: Rename releaseStagingBuffer to releaseStagedUpdate
93159c020 Vulkan: Remove DynamicShadowBuffer implementation
cf3812921 Revert "Re-skip MSRTT tests on Linux/AMD/Vulkan"
3263eb01f Vulkan: Switch GPU translated vertex buffer to NonHostVisible
8589c456a Vulkan: Remove mStagingBuffer from ImageHelper and ContextVk
6da1ac814 Vulkan: Switch ReadPixels from DynamicBuffer to shared pool
ad27d5d6f Reland "Vulkan: Consolidate all vertex conversion buffers to shared pool"
535a90347 Suppress headers includes privacy checks for iOS executables
a61a7f597 Vulkan: Use correct aspectMask
4e85bdd99 Revert "Vulkan: Consolidate all vertex conversion buffers to shared pool"
cca412cd8 Vulkan: Consolidate all vertex conversion buffers to shared pool
02f6226b7 Avoid using GetCWD() on MacOS when possible
a0d0a1d65 Roll SwiftShader from c73969d73ff9 to 0b901607cad4 (6 revisions)
e98b62727 Roll Chromium from b1dc46c0f1be to 8712e27d7e28 (483 revisions)
fd0142714 Vulkan: Match chromaFilter to min/mag for YUV AHBs
ccabfd140 out\Debug -> out/Debug, like in other places
abf17f018 Metal: Support depth filtering queries for D32, D24S8
f13f440e6 Reland: Metal: Fix Webkit warnings in ANGLE build
39e1a2b2e Suppress Vulkan/SwiftShader/AsyncQueue ASAN flakes.
7126c3a3c Capture/Replay: Limit caps for QC/SwS
0e49a3dd4 Vulkan: Add std::move support for BufferHelper
43b0e92b5 Vulkan: Consolidate mHostVisibleBufferPool and mMapInvalidate
42cb6147f Revert workarounds for exception handler code-gen with CFG enabled
e4c7efeaf Capture/Replay: Fix GN build on iOS.
cabc3b982 Move atomic counter uniform range counter to executable.
e9e9a2c6a Do not pass mInstance to vkGetInstanceProcAddr
beda24596 Add support for GL_MESA_framebuffer_flip_y 2/*
c984dad5f FrameCapture: Don't remove protection from shared pages.
d76515b89 Roll SwiftShader from 433b1bf9bff2 to c73969d73ff9 (4 revisions)
1b2cb4222 Roll Chromium from 1a9dad30c65b to b1dc46c0f1be (497 revisions)
cfc4db346 Metal: Provoking vertex support for Metal DrawArrays
a00b6ca46 Roll Chromium from 04d22dcbc0f6 to 1a9dad30c65b (190 revisions)
5bd459618 Roll Chromium from 70ce2f66c417 to 04d22dcbc0f6 (183 revisions)
aad7ddb28 Skip VulkanPerformanceCounterTest.InvalidateDrawDisable
0a6b78974 Add macOS support to update_chrome_angle.py
4b3e3ed5f Re-skip MSRTT tests on Linux/AMD/Vulkan
39810def0 Roll Chromium from c764378a1f24 to 70ce2f66c417 (145 revisions)
9aca4285f Traces: Fix path in retrace script.
0331738b4 Fix extension download script, and update data.
58aeec65c Capture/Replay: GN cleanups.
85de4f81e Capture/Replay: Fix TODO in test utils.
b6399ac94 Traces: Finish writing restricted trace doc updates.
fed9ba44f Roll vulkan-deps from c32df39c11ce to 09edcd7c680b (1 revision)
65cc408c3 Roll Chromium from e45e6e1a55ae to c764378a1f24 (157 revisions)
a400e76d0 Vulkan: Don't expose MSRTT without VK_KHR_depth_stencil_resolve
9f74ec615 Skip angle_end2end_tests failing on Linux AMD RX 5500 XT
b7d2f4478 Roll Chromium from d09758fa672c to e45e6e1a55ae (153 revisions)
6f1c39b52 Vulkan: Restore color attachment mask-related blend states
95f6e6865 Roll SwiftShader from 87c78ac5eb86 to 433b1bf9bff2 (2 revisions)
a026169c9 Roll Chromium from 0635acc4de22 to d09758fa672c (93 revisions)
0a28c6c61 Capture/Replay: Capture some MultiDrawIndirect parameters
5f53268ce Capture/Replay: Gather Program sources directly from call
a92036893 Roll Chromium from 52c4c43d687f to 0635acc4de22 (149 revisions)
fce481863 Roll SwiftShader from f354daff5a2b to 87c78ac5eb86 (2 revisions)
6c9b79ead Roll Chromium from 16dc16f9ec67 to 52c4c43d687f (244 revisions)
4d893a935 Re-land: "Trace Tests: Remove auto-generated code."
542f7d808 Vulkan: Copy buffer data to correct cube map face
582651bee Roll vulkan-deps from fbeca8f4ea6a to c32df39c11ce (3 revisions)
5e0d97877 Roll Chromium from 274ab850e849 to 16dc16f9ec67 (303 revisions)
2ebd583ed Android: Remove setenv from common path
14af7a8da Log subprocess output in run_perf_tests.py
2f3e6cc07 Vulkan: Remove mShadowBuffer from BufferVk class.
7dfa69e69 Unskip MRTSigned and MRTUnsigned BlendIntegerTest
993f38896 Roll Chromium from 9ca41364d3dc to 274ab850e849 (341 revisions)
0e9353f60 Skip RenderbufferDrawStencilThenUnresolveStencil on Linux Vulkan AMD
bc9d2d7de Vulkan: Consolidate BufferHelper's code paths into one
4114fe23c Vulkan: Simplify transform feedback emulation logic
32d9e186d Roll vulkan-deps from 5568048d205e to fbeca8f4ea6a (4 revisions)
ab288fea5 Upgrade restricted traces. (Re-land)
c1f478fe0 Frame Capture: Allow for no FBO when running MEC.
eba2e620f Capture/Replay: Fix uniform program indexing.
73e764dc6 Suppress capture/replay tests.
1da7e3afb Revert "Metal: Fix Webkit warnings in ANGLE build"
bdaa046fe Roll Chromium from 81decb7250e1 to 9ca41364d3dc (272 revisions)
a7e0d520f Temporarily skip failing tests on Chromium
171bc07e2 Don't silently drop out-of-range bits in BitSetT
eca427b28 Vulkan: Add mutex to protect mVirtualBlock
c1598640b Vulkan: Improve mid-RP clear warning message
4a03668d7 Address comment in CL 3347143
cf8ac00a5 Vulkan: Fix MSRTT w.r.t stencil-only unresolve
c07df6fe8 Disable vulkan device select layer for msan build

5:29 PM Changeset in webkit [290478] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.9

4:53 PM Changeset in webkit [290477] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Take down shared worker context connection less aggressively when it becomes idle
https://bugs.webkit.org/show_bug.cgi?id=237156

Reviewed by Darin Adler.

Take down shared worker context connection less aggressively when it becomes idle. Give it 5
seconds before shutting it down in case it ends up being used again in the near future.

This is similar to what we do for service workers.

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:

(WebKit::WebSharedWorkerServer::shutDownSharedWorker):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:

(WebKit::WebSharedWorkerServerToContextConnection::WebSharedWorkerServerToContextConnection):
(WebKit::WebSharedWorkerServerToContextConnection::addSharedWorkerObject):
(WebKit::WebSharedWorkerServerToContextConnection::removeSharedWorkerObject):
(WebKit::WebSharedWorkerServerToContextConnection::idleTerminationTimerFired):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.h:
4:53 PM Changeset in webkit [290476] by Jonathan Bedard
  • 14 edits in trunk/Tools

[Python3] Remove shebangs from webkitpy files
https://bugs.webkit.org/show_bug.cgi?id=237167
<rdar://problem/89444955>

Reviewed by Dewei Zhu.

  • Tools/Scripts/webkitpy/browserperfdash/browserperfdash_runner.py: Remove shebang.
  • Tools/Scripts/webkitpy/browserperfdash/browserperfdash_unittest.py: Ditto.
  • Tools/Scripts/webkitpy/common/attribute_saver.py: Ditto.
  • Tools/Scripts/webkitpy/common/attribute_saver_unittest.py: Ditto.
  • Tools/Scripts/webkitpy/common/net/bugzilla/test_expectation_updater.py: Ditto.
  • Tools/Scripts/webkitpy/common/net/bugzilla/test_expectation_updater_unittest.py: Ditto.
  • Tools/Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: Ditto.
  • Tools/Scripts/webkitpy/layout_tests/views/buildbot_results.py: Ditto.
  • Tools/Scripts/webkitpy/w3c/test_converter.py: Ditto.
  • Tools/Scripts/webkitpy/w3c/test_importer.py: Ditto.
  • Tools/Scripts/webkitpy/w3c/test_parser.py: Ditto.
  • Tools/Scripts/webkitpy/xcode/sdk.py: Ditto.
  • Tools/Scripts/webkitpy/xcode/sdk_unittest.py: Ditto.

Canonical link: https://commits.webkit.org/247774@main

4:28 PM Changeset in webkit [290475] by Robert Jenner
  • 3 edits in trunk/LayoutTests

REGRESSION(r290358): [ Debug EWS ] ASSERTION FAILED: sample && sample->pixelBuffer()
https://bugs.webkit.org/show_bug.cgi?id=237164

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
4:17 PM Changeset in webkit [290474] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.7

4:04 PM Changeset in webkit [290473] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ EWS ] webgl/pending/conformance/textures/misc/tex-image-video-repeated.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=237166

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:44 PM Changeset in webkit [290472] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ Debug wk2 EWS ] imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=237165

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:26 PM Changeset in webkit [290471] by Ryan Haddad
  • 4 edits
    1 delete in trunk/Source/WTF

Unreviewed, reverting r290452.

Caused failues with clean builds

Reverted changeset:

"[XCBuild] WTF's SPI dependencies are copied via a folder
reference and do not emit task outputs"
https://bugs.webkit.org/show_bug.cgi?id=237129
https://commits.webkit.org/r290452

3:24 PM Changeset in webkit [290470] by jer.noble@apple.com
  • 87 edits in trunk/Source

Source/WebCore:
[Refactor] Adopt LoggerHelper in Logging EME classes
https://bugs.webkit.org/show_bug.cgi?id=234319

Reviewed by Eric Carlson.

In order to pass down a logger() and logIdentifier() to the platform/
classes, modify LegacyCDMSessionClient to be a CanMakeWeakPtr class,
so it can be passed around by reference and automatically invalidated
when the client is destroyed. Then modify LegacyCDMSessionClient to
provide a logger() and logIdentifier() to callers.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::CDM):

  • Modules/encryptedmedia/CDM.h:

(WebCore::CDM::logIdentifier const):

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::updateKeyStatuses):
(WebCore::MediaKeySession::sessionClosed):

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::MediaKeys):
(WebCore::MediaKeys::createSession):
(WebCore::MediaKeys::setServerCertificate):

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

(WebCore::LegacyCDM::createSession):

  • Modules/encryptedmedia/legacy/LegacyCDMPrivate.h:
  • Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp:

(WebCore::LegacyCDMPrivateClearKey::createSession):

  • Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.h:
  • Modules/encryptedmedia/legacy/LegacyCDMPrivateMediaPlayer.cpp:

(WebCore::CDMPrivateMediaPlayer::createSession):

  • Modules/encryptedmedia/legacy/LegacyCDMPrivateMediaPlayer.h:
  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::CDMSessionClearKey):

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::create):
(WebCore::WebKitMediaKeySession::WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::~WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::close):
(WebCore::WebKitMediaKeySession::generateKeyRequest):
(WebCore::WebKitMediaKeySession::update):
(WebCore::WebKitMediaKeySession::sendMessage):
(WebCore::WebKitMediaKeySession::sendError):
(WebCore::WebKitMediaKeySession::logChannel const):

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

(WebCore::WebKitMediaKeys::createSession):

  • Modules/encryptedmedia/legacy/WebKitMediaKeys.h:
  • platform/encryptedmedia/CDMFactory.h:
  • platform/encryptedmedia/CDMInstance.h:

(WebCore::CDMInstance::setLogIdentifier):
(WebCore::CDMInstance::setLogger): Deleted.

  • platform/encryptedmedia/CDMInstanceSession.h:

(WebCore::CDMInstanceSession::setLogIdentifier):
(WebCore::CDMInstanceSession::setLogger): Deleted.

  • platform/encryptedmedia/CDMPrivate.h:

(WebCore::CDMPrivate::setLogIdentifier):
(WebCore::CDMPrivate::setLogger): Deleted.

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMFactoryClearKey::createCDM):

  • platform/encryptedmedia/clearkey/CDMClearKey.h:
  • platform/graphics/LegacyCDMSession.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::createSession):

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

(WebCore::MediaPlayerPrivateInterface::createSession):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMFactoryFairPlayStreaming::createCDM):
(WebCore::CDMPrivateFairPlayStreaming::CDMPrivateFairPlayStreaming):
(WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const):
(WebCore::CDMPrivateFairPlayStreaming::createInstance):
(WebCore::CDMPrivateFairPlayStreaming::setLogger): Deleted.

  • platform/graphics/avfoundation/CDMFairPlayStreaming.h:
  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::createSession):

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:

(WebCore::CDMSessionAVFoundationCF::CDMSessionAVFoundationCF):

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::createSession):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::CDMInstanceFairPlayStreamingAVFObjC):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setServerCertificate):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::groupSessionIdentifierChanged):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::externalProtectionStatusDidChangeForContentKeyRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::CDMInstanceSessionFairPlayStreamingAVFObjC):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::protectionStatusForDisplayID const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setLogger): Deleted.
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setLogger): Deleted.

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

(WebCore::CDMSessionAVContentKeySession::logClassName const):

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

(WebCore::CDMSessionAVContentKeySession::CDMSessionAVContentKeySession):
(WebCore::CDMSessionAVContentKeySession::generateKeyRequest):
(WebCore::CDMSessionAVContentKeySession::releaseKeys):
(WebCore::CDMSessionAVContentKeySession::update):
(WebCore::CDMSessionAVContentKeySession::addParser):
(WebCore::CDMSessionAVContentKeySession::removeParser):
(WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage):

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

(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
(WebCore::CDMSessionAVFoundationObjC::update):
(WebCore::CDMSessionAVFoundationObjC::playerDidReceiveError):
(WebCore::CDMSessionAVFoundationObjC::logChannel const):

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

(WebCore::CDMSessionAVStreamSession::logClassName const):

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

(WebCore::CDMSessionAVStreamSession::CDMSessionAVStreamSession):
(WebCore::CDMSessionAVStreamSession::~CDMSessionAVStreamSession):
(WebCore::CDMSessionAVStreamSession::generateKeyRequest):
(WebCore::CDMSessionAVStreamSession::releaseKeys):
(WebCore::CDMSessionAVStreamSession::update):
(WebCore::CDMSessionAVStreamSession::addParser):
(WebCore::CDMSessionAVStreamSession::removeParser):
(WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage):

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

(WebCore::CDMSessionMediaSourceAVFObjC::logger const):
(WebCore::CDMSessionMediaSourceAVFObjC::logIdentifier const):

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

(WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
(WebCore::CDMSessionMediaSourceAVFObjC::logChannel const):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):

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

(WebCore::CDMFactoryThunder::createCDM):

  • platform/graphics/gstreamer/eme/CDMThunder.h:
  • testing/LegacyMockCDM.cpp:

(WebCore::LegacyMockCDM::createSession):
(WebCore::MockCDMSession::MockCDMSession):

  • testing/LegacyMockCDM.h:
  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::createCDM):

  • testing/MockCDMFactory.h:

Source/WebKit:
[Refactor] Adopt LoggerHelper in Legacy EME classes
https://bugs.webkit.org/show_bug.cgi?id=234319

Reviewed by Eric Carlson.

  • GPUProcess/media/RemoteCDMFactoryProxy.cpp:

(WebKit::RemoteCDMFactoryProxy::createCDM):
(WebKit::RemoteCDMFactoryProxy::logger const):

  • GPUProcess/media/RemoteCDMFactoryProxy.h:
  • GPUProcess/media/RemoteCDMInstanceProxy.cpp:

(WebKit::RemoteCDMInstanceProxy::create):
(WebKit::RemoteCDMInstanceProxy::RemoteCDMInstanceProxy):
(WebKit::RemoteCDMInstanceProxy::createSession):

  • GPUProcess/media/RemoteCDMInstanceProxy.h:
  • GPUProcess/media/RemoteCDMInstanceProxy.messages.in:
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:

(WebKit::RemoteCDMInstanceSessionProxy::create):
(WebKit::RemoteCDMInstanceSessionProxy::RemoteCDMInstanceSessionProxy):
(WebKit::RemoteCDMInstanceSessionProxy::setLogIdentifier):

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.h:
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.messages.in:
  • GPUProcess/media/RemoteCDMProxy.cpp:

(WebKit::RemoteCDMProxy::create):
(WebKit::RemoteCDMProxy::RemoteCDMProxy):
(WebKit::RemoteCDMProxy::setLogIdentifier):

  • GPUProcess/media/RemoteCDMProxy.h:

(WebKit::RemoteCDMProxy::logger const):
(WebKit::RemoteCDMProxy::logIdentifier const):

  • GPUProcess/media/RemoteCDMProxy.messages.in:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:

(WebKit::RemoteLegacyCDMFactoryProxy::logger const):

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.cpp:

(WebKit::RemoteLegacyCDMProxy::createSession):

  • GPUProcess/media/RemoteLegacyCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.messages.in:
  • GPUProcess/media/RemoteLegacyCDMSessionProxy.cpp:

(WebKit::RemoteLegacyCDMSessionProxy::create):
(WebKit::RemoteLegacyCDMSessionProxy::RemoteLegacyCDMSessionProxy):

  • GPUProcess/media/RemoteLegacyCDMSessionProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::createSession):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteCDM.cpp:

(WebKit::RemoteCDM::setLogIdentifier):

  • WebProcess/GPU/media/RemoteCDM.h:
  • WebProcess/GPU/media/RemoteCDMConfiguration.h:

(WebKit::RemoteCDMConfiguration::encode const):
(WebKit::RemoteCDMConfiguration::decode):

  • WebProcess/GPU/media/RemoteCDMFactory.cpp:

(WebKit::RemoteCDMFactory::createCDM):

  • WebProcess/GPU/media/RemoteCDMFactory.h:
  • WebProcess/GPU/media/RemoteCDMInstance.cpp:

(WebKit::RemoteCDMInstance::createSession):

  • WebProcess/GPU/media/RemoteCDMInstanceSession.cpp:

(WebKit::RemoteCDMInstanceSession::setLogIdentifier):

  • WebProcess/GPU/media/RemoteCDMInstanceSession.h:
  • WebProcess/GPU/media/RemoteLegacyCDM.cpp:

(WebKit::RemoteLegacyCDM::createSession):

  • WebProcess/GPU/media/RemoteLegacyCDM.h:
  • WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:

(WebKit::RemoteLegacyCDMSession::create):
(WebKit::RemoteLegacyCDMSession::RemoteLegacyCDMSession):

  • WebProcess/GPU/media/RemoteLegacyCDMSession.h:
3:08 PM Changeset in webkit [290469] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r290356-r290351?): [ iOS15 ] 3 imported/w3c/web-platform-tests/service-workers/service-worker/* tests are constant text failures.
https://bugs.webkit.org/show_bug.cgi?id=237160

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/ios/TestExpectations:
2:53 PM Changeset in webkit [290468] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r290351-r290356?): [ iOS EWS ] imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker-getRegistrations.tentative.https.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=237162

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:53 PM Changeset in webkit [290467] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKit

Delete SessionStorageQuotaManager
https://bugs.webkit.org/show_bug.cgi?id=237132

Reviewed by Chris Dumez.

The code is unused since r289474.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::addSessionStorageQuotaManager): Deleted.
(WebKit::NetworkProcess::removeSessionStorageQuotaManager): Deleted.
(WebKit::NetworkProcess::setSessionStorageQuotaManagerIDBRootPath): Deleted.
(WebKit::NetworkProcess::storageQuotaManager): Deleted.

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::SessionStorageQuotaManager::SessionStorageQuotaManager): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::defaultQuota const): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::ensureOriginStorageQuotaManager): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::existingStorageQuotaManagers): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::cacheRootPath const): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::setIDBRootPath): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::idbRootPath const): Deleted.

2:45 PM Changeset in webkit [290466] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r290356-r290351?):[ iOS EWS ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=237161

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:35 PM Changeset in webkit [290465] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS EWS ]imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-049.htmlis a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=237159

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:33 PM Changeset in webkit [290464] by Jonathan Bedard
  • 7 edits in trunk/Tools

[Python3] Change shebang for various scripts
https://bugs.webkit.org/show_bug.cgi?id=237155
<rdar://problem/89436097>

Reviewed by Ryan Haddad.

  • Tools/Scripts/lint-webkitpy: Change shebang to Python 3.
  • Tools/Scripts/open-layout-test: Ditto.
  • Tools/Scripts/run-imagediff: Ditto.
  • Tools/Scripts/run-minibrowser: Ditto.
  • Tools/Scripts/run-webkit-httpd: Ditto.
  • Tools/Scripts/test-webkit-scripts: Ditto.

Canonical link: https://commits.webkit.org/247762@main

2:32 PM Changeset in webkit [290463] by rniwa@webkit.org
  • 2 edits in trunk

Explain visit children and opaque roots in Introduction.md
https://bugs.webkit.org/show_bug.cgi?id=236894

Reviewed by Saam Barati.

Added the descriptions of visit children and opaque roots
as well as how to add IDL files.

  • Introduction.md:
2:26 PM Changeset in webkit [290462] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION (r289765-r289784): [iOS] Flaky crash under WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree()
https://bugs.webkit.org/show_bug.cgi?id=236794

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:23 PM Changeset in webkit [290461] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Python3] Make report-non-inclusive-language Python 3 compatible
https://bugs.webkit.org/show_bug.cgi?id=237154
<rdar://problem/89434987>

Reviewed by Aakash Jain.

  • Tools/Scripts/report-non-inclusive-language: Make Python 3 compatible.

Canonical link: https://commits.webkit.org/247760@main

1:59 PM Changeset in webkit [290460] by Russell Epstein
  • 1 copy in tags/Safari-614.1.3.6

Tag Safari-614.1.3.6.

1:57 PM Changeset in webkit [290459] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.8

Tag Safari-613.1.17.1.8.

1:43 PM Changeset in webkit [290458] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS15 ] fast/events/autoscroll-in-iframe-body.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=237150

Unreviewed Test Gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/ios/TestExpectations: Flaky Failure expectation while investigating
1:19 PM Changeset in webkit [290457] by Oriol Brufau
  • 9 edits in trunk

[css-cascade] Support 'revert' in @keyframes
https://bugs.webkit.org/show_bug.cgi?id=237073

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Expect tests to pass.

  • web-platform-tests/css/css-cascade/revert-val-006-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-007-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-008-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-010-expected.txt:

Source/WebCore:

Resolver::styleForKeyframe was constructing a RenderStyle with only the
styles specified in the @keyframes. But not taking into account the UA
and user rules that affect the element meant that 'revert' was broken.
Since Builder::applyProperty didn't find the declarations from other
origins, 'revert' just behaved as 'unset'.

This patch solves it by detecting if the @keyframes has a 'revert' value
and in that case it collects the UA and user rules so that it can be
resolved properly.

Tests: imported/w3c/web-platform-tests/css/css-cascade/revert-val-006.html

imported/w3c/web-platform-tests/css/css-cascade/revert-val-007.html
imported/w3c/web-platform-tests/css/css-cascade/revert-val-008.html
imported/w3c/web-platform-tests/css/css-cascade/revert-val-010.html

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::addAuthorKeyframeRules):

  • style/ElementRuleCollector.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):

1:16 PM Changeset in webkit [290456] by Devin Rousso
  • 15 edits in trunk/Source

REGRESSION(r290436): fix build failures
https://bugs.webkit.org/show_bug.cgi?id=237149

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/cocoa/PaymentSessionErrorCocoa.mm:

(WebCore::PaymentSessionError::sessionError const):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::adjustApplePayButtonStyle const):
Replace PAL::get_PassKitCore_*() with #define declared in <pal/cocoa/PassKitSoftLink.h>.

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h:
  • pal/spi/cocoa/PassKitInstallmentsSPI.h:

Undo some of the changes in r290436 by re-adding the old #import pre-r290436 when we do
not have PassKit modularization (i.e. HAVE(PASSKIT_MODULARIZATION)). This way, the code
is the same as it was for older releases.

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:

Declare some #define for convenience (and so that if we need to change from PassKitCore
in the future we don't have to change any callsites).

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toNSError):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate _willFinishWithError:]):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKContactFields):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
Replace PAL::get_PassKitCore_*() with #define declared in <pal/cocoa/PassKitSoftLink.h>.

Source/WTF:

  • wtf/PlatformHave.h:

Rename HAVE_PASSKIT_UI to HAVE_PASSKIT_MODULARIZATION so that it also involes PassKitCore.

1:14 PM Changeset in webkit [290455] by Megan Gardner
  • 6 edits
    13 adds in trunk

Add percent decoding to Scroll to Text Fragment parsing.
https://bugs.webkit.org/show_bug.cgi?id=236818

Reviewed by Chris Dumez.

Source/WebCore:

Leverage URL parser to percent decode parsed text directives in
scroll to text fragment implementation.

Tests: http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-emoji.html

http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-sentence.html
http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start.html

  • dom/FragmentDirectiveParser.cpp:

(WebCore::FragmentDirectiveParser::parseFragmentDirective):

Source/WTF:

Expose bits of URL parser to allow percent decoding elsewhere.

  • wtf/URLParser.h:

LayoutTests:

  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-emoji-expected.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-emoji.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-expected.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-sentence-expected.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-sentence.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start.html: Added.
1:10 PM Changeset in webkit [290454] by Alan Bujtas
  • 20 edits in trunk

[IFC][Integration] Enable non-paginated vertical-rl writing mode
https://bugs.webkit.org/show_bug.cgi?id=236897

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • fast/repaint/vertical-text-repaint-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:
  • platform/ios/fast/backgrounds/border-radius-split-background-expected.txt:
  • platform/ios/fast/backgrounds/border-radius-split-background-image-expected.txt:
  • platform/ios/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/ios/fast/writing-mode/border-styles-vertical-rl-expected.txt:
  • platform/ios/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt:
  • platform/mac/fast/backgrounds/border-radius-split-background-expected.txt:
  • platform/mac/fast/backgrounds/border-radius-split-background-image-expected.txt:
  • platform/mac/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/mac/fast/table/border-collapsing/004-vertical-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-rl-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt:
1:08 PM Changeset in webkit [290453] by Jonathan Bedard
  • 6 edits
    1 delete in trunk/Tools

[Python3] Migrate Tools/CISupport to Python3
https://bugs.webkit.org/show_bug.cgi?id=237148
<rdar://problem/89430395>

Reviewed by Aakash Jain.

  • Tools/CISupport/build-webkit-org/committer_auth_unittest_old.py: Removed.
  • Tools/CISupport/build-webkit-org/loadConfig_unittest.py: Change shebang to Python 3.
  • Tools/CISupport/build-webkit-org/make_passwords_json.py: Change shebang to Python 3,

make Python 3 compatible.

  • Tools/CISupport/ews-build/email_unittest.py: Change shebang to Python 3.
  • Tools/CISupport/ews-build/loadConfig_unittest.py: Ditto.
  • Tools/CISupport/win/kill-old-processes: Ditto.

Canonical link: https://commits.webkit.org/247753@main

1:08 PM Changeset in webkit [290452] by Elliott Williams
  • 4 edits
    1 copy in trunk/Source/WTF

[XCBuild] WTF's SPI dependencies are copied via a folder reference and do not emit task outputs
https://bugs.webkit.org/show_bug.cgi?id=237129

Reviewed by Alexey Proskuryakov.

In https://bugs.webkit.org/show_bug.cgi?id=235744, a folder reference was used to copy
headers from spi/, but the build system needs explicit file references for all headers to
infer discovered dependency relationships for incremental builds. Add spi/ headers directly
to WTF.xcodeproj.

We now have a method for using build rules to make a native Headers phase nest headers
according to their source directories. Use it here and delete the per-directory Copy Files
phases.

WTF's unicode headers--used only by external builders--are copied to a different include
directory, so for organization simplicity, add a separate target to WTF.xcodeproj to track
them. This target is effectively headers-only as it has no source files.

  • Configurations/Base.xcconfig: Copy WK_WHICH_BUILD_SYSTEM settings from other projects.
  • Configurations/WTF.xcconfig: Set header folder paths.
  • Configurations/icu.xcconfig: Copied from Source/WTF/Configurations/WTF.xcconfig.
  • WTF.xcodeproj/project.pbxproj: Add icu target, add spi headers, add build rules.
12:35 PM Changeset in webkit [290451] by Russell Epstein
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.6

12:13 PM Changeset in webkit [290450] by Wenson Hsieh
  • 8 edits
    2 adds in trunk

Refactor logic for showing "Markup Image" and Quick Note items in the callout bar
https://bugs.webkit.org/show_bug.cgi?id=237127
rdar://89396617

Reviewed by Megan Gardner.

Source/WebKit:

Use -buildMenuWithBuilder: to supply additional Quick Note and image analysis items, instead of adding them
directly to the shared menu controller. See below for more details.

Tests: ImageAnalysisTests.MenuControllerItems

WebKit.AppHighlightsInImageOverlays

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView didMoveToWindow]):

See below.

(-[WKWebView buildMenuWithBuilder:]):

Override this method and call into the content view via -buildMenuForWebViewWithBuilder: to populate the given
builder with either Quick Note or "Markup Image" items, if necessary. Note that overriding this method on
WKWebView is sufficient, since UIKit walks up the responder hierarchy starting from the first responder
(WKContentView) when populating menu items.

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

(-[WKContentView targetForAction:withSender:]):

Move some logic for conditionally enabling the Quick Note items into -imageAnalysisMarkupMenu.

(-[WKContentView imageAnalysisMarkupMenu]):
(-[WKContentView _selectionChanged]):

Remove logic that updates the shared UIMenuController's menu items every time the selection changes. This is
no longer needed, since UIKit will always call into -buildMenuWithBuilder: when presenting the callout bar,
which allows us to lazily run logic to determine whether or not we should show the Quick Note and image analysis
items when the callout bar is shown, instead of keeping the menu controller's -menuItems array up to date upon
each selection change.

(-[WKContentView buildMenuForWebViewWithBuilder:]):

Consult -appHighlightMenu and -imageAnalysisMarkupMenu to populate the menu with inline UIMenus. Note that
these menus' items are always inlined into the callout bar as top-level items, since we explicitly specify
UIMenuOptionsDisplayInline when creating the menu.

(-[WKContentView menuWithInlineAction:identifier:handler:]):
(-[WKContentView appHighlightMenu]):

Refactor this, and -imageAnalysisMarkupMenu above to return a UIMenu with a single UIAction presented inline.

(-[WKContentView updateImageAnalysisMarkupMenuItems:]): Deleted.

Replaced with -imageAnalysisMarkupMenu.

(-[WKContentView canPerformImageAnalysisMarkup]): Deleted.
(-[WKContentView performImageAnalysisMarkup:]): Deleted.
(-[WKContentView setUpAdditionalMenuControllerActions]): Deleted.
(findMenuItemWithAction): Deleted.
(-[WKContentView updateAppHighlightMenuItems:]): Deleted.

Replaced with -appHighlightMenu.

(-[WKContentView createHighlightForCurrentQuickNoteWithRange:]): Deleted.
(-[WKContentView createHighlightForNewQuickNoteWithRange:]): Deleted.

Tools:

Adjust a couple of existing API tests. See comments below.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

Refactor ImageAnalysisTests.MenuControllerItems to exercise -buildMenuWithBuilder: instead of swizzling
UIMenuController methods and checking -menuItems.

(TestWebKitAPI::swizzledSetMenuItems): Deleted.
(): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:

Refactor WebKit.AppHighlightsInImageOverlays to exercise -buildMenuWithBuilder: instead of passing in actions
to -targetForAction:withSender:.

  • TestWebKitAPI/ios/TestUIMenuBuilder.h: Added.
  • TestWebKitAPI/ios/TestUIMenuBuilder.mm: Added.

Add a helper class that conforms to UIMenuBuilder. This is used in the two API tests above as an argument to
-buildMenuWithBuilder: in order to collect additional menu items that WKWebView adds to the callout bar.

(-[TestUIMenuBuilder init]):
(-[TestUIMenuBuilder system]):
(-[TestUIMenuBuilder menuForIdentifier:]):
(-[TestUIMenuBuilder findMatching:]):
(-[TestUIMenuBuilder containsActionWithTitle:]):
(-[TestUIMenuBuilder reset]):
(-[TestUIMenuBuilder actionForIdentifier:]):
(-[TestUIMenuBuilder commandForAction:propertyList:]):
(-[TestUIMenuBuilder replaceMenuForIdentifier:withMenu:]):
(-[TestUIMenuBuilder replaceChildrenOfMenuForIdentifier:fromChildrenBlock:]):
(-[TestUIMenuBuilder insertChildMenu:atStartOfMenuForIdentifier:]):
(-[TestUIMenuBuilder insertChildMenu:atEndOfMenuForIdentifier:]):
(-[TestUIMenuBuilder removeMenuForIdentifier:]):
(-[TestUIMenuBuilder insertSiblingMenu:beforeMenuForIdentifier:]):
(-[TestUIMenuBuilder insertSiblingMenu:afterMenuForIdentifier:]):
(-[TestUIMenuBuilder registerMenu:]):

12:08 PM Changeset in webkit [290449] by Chris Dumez
  • 5 edits in trunk/Source/JavaScriptCore

[Cocoa] Only clear ICU cache when time zone is changed
https://bugs.webkit.org/show_bug.cgi?id=236996

Reviewed by Yusuke Suzuki.

We used to unconditionally invalidate the VM's DateCache in VMEntryScope in order to
make sure we always used the latest time zone from the host machine (in case it changed).
This overly aggressive invalidation was causing us to repeatedly go to the disk in order
to determine the host time zone. On Cocoa ports, we now listen to the
kCFTimeZoneSystemTimeZoneDidChangeNotification notification and only invalidate the
VM's DateCache in VMEntryScope if the host time zone has actually changed since the
last time.

  • runtime/JSDateMath.cpp:

(JSC::timeZoneChangeNotification):
(JSC::DateCache::DateCache):
(JSC::DateCache::resetIfNecessary):
(JSC::DateCache::reset): Deleted.

  • runtime/JSDateMath.h:
  • runtime/VM.h:

(JSC::VM::resetDateCacheIfNecessary):
(JSC::VM::resetDateCache): Deleted.

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):

11:58 AM Changeset in webkit [290448] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.8

11:51 AM Changeset in webkit [290447] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Python3] Convert shebangs in generate_xcfilelists_lib
https://bugs.webkit.org/show_bug.cgi?id=237147
<rdar://problem/89427981>

Reviewed by Alexey Proskuryakov.

  • Tools/Scripts/webkitpy/generate_xcfilelists_lib/init.py: Change shebang to Python 3.
  • Tools/Scripts/webkitpy/generate_xcfilelists_lib/application.py: Ditto.
  • Tools/Scripts/webkitpy/generate_xcfilelists_lib/generators.py: Ditto.
  • Tools/Scripts/webkitpy/generate_xcfilelists_lib/util.py: Ditto.

Canonical link: https://commits.webkit.org/247750@main

11:47 AM Changeset in webkit [290446] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r273929) FrameState no longer gets a move constructor
https://bugs.webkit.org/show_bug.cgi?id=237142

Reviewed by Darin Adler.

FrameState no longer gets an implicit move constructor since r273929 because a custom
destructor was added.

  • Shared/SessionState.h:
11:41 AM Changeset in webkit [290445] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix bad logging in SharedWorkerObjectConnection::notifyWorkerObjectOfLoadCompletion()
https://bugs.webkit.org/show_bug.cgi?id=237146

Reviewed by Geoffrey Garen.

Fix bad logging in SharedWorkerObjectConnection::notifyWorkerObjectOfLoadCompletion().
It was logging an error even when the load succeeded.

  • workers/shared/SharedWorkerObjectConnection.cpp:

(WebCore::SharedWorkerObjectConnection::notifyWorkerObjectOfLoadCompletion):

11:33 AM Changeset in webkit [290444] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Skip shadow-realm-import-value on ARM too
https://bugs.webkit.org/show_bug.cgi?id=237139

Unreviewed gardening.

  • stress/shadow-realm-import-value.js:
11:31 AM Changeset in webkit [290443] by Kate Cheney
  • 32 edits in trunk

Update CSP console logging
https://bugs.webkit.org/show_bug.cgi?id=232216
<rdar://problem/89322580>

Reviewed by Brent Fulgham.

Source/WebCore:

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::originalHeaders const):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowWorkerFromSource const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):

Source/WebKit:

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

  • NetworkProcess/NetworkLoadChecker.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:
10:29 AM Changeset in webkit [290442] by Devin Rousso
  • 7 edits
    1 add in trunk

[MacCatalyst] REGRESSION(r290091): sometimes can crash if WKWebView is deallocated before the next visible content rect update
https://bugs.webkit.org/show_bug.cgi?id=237126
<rdar://problem/89345853>

Reviewed by Tim Horton.

Source/WebKit:

Tests: WKWebViewResize.DoesNotAssertInDeallocAfterChangingFrame

WKWebViewResize.DoesNotAssertInDeallocAfterChangingBounds

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _acquireResizeAssertionForReason:]):
(-[WKWebView _invalidateResizeAssertions]): Added.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]):
Make sure to -invalidate any remaining assertions in -dealloc as required by _UIInvalidatable.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewResize.mm: Added.

(TEST.WKWebViewResize.DoesNotAssertInDeallocAfterChangingFrame):
(TEST.WKWebViewResize.DoesNotAssertInDeallocAfterChangingBounds):

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
10:02 AM Changeset in webkit [290441] by J Pascoe
  • 2 edits in trunk/Tools

Add myself (John Pascoe) to watchlist for authentication and WebCrypto
https://bugs.webkit.org/show_bug.cgi?id=237121
rdar://problem/89385797

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/watchlist:
9:55 AM Changeset in webkit [290440] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WTF

Fix debug build of WorkQueueGeneric after r290418
https://bugs.webkit.org/show_bug.cgi?id=237143

Unreviewed build fix.

Correct the method signature of WorkQueue::assertIsCurrent in WorkQueueGeneric.cpp.

  • wtf/generic/WorkQueueGeneric.cpp:

(WTF::WorkQueue::assertIsCurrent const):
(WTF::WorkQueue::assertIsCurrent): Deleted.

9:47 AM Changeset in webkit [290439] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, add some logging to imported/w3c/web-platform-tests/workers/semantics/multiple-workers/004.html to debug flakiness

  • web-platform-tests/workers/semantics/multiple-workers/004.html:
9:31 AM Changeset in webkit [290438] by Alan Bujtas
  • 8 edits in trunk

[LFC][IFC] Non-orthogonal inline block boxes keep their baseline on ideographic lines
https://bugs.webkit.org/show_bug.cgi?id=236946

Reviewed by Antti Koivisto.

Source/WebCore:

This is similar to the logic in RenderBlock::baselinePosition for inline block boxes.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

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

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

  • rendering/RenderBlock.h:

LayoutTests:

  • platform/mac/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt: Progression
9:19 AM Changeset in webkit [290437] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] verticalLogicalMargin returns incorrect values for vertical-rl
https://bugs.webkit.org/show_bug.cgi?id=237138

Reviewed by Antti Koivisto.

This was caused by an accidental copy/paste.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::verticalLogicalMargin): also switch over to "switch".

8:46 AM Changeset in webkit [290436] by Devin Rousso
  • 16 edits in trunk/Source

[Apple Pay] switch from PassKit/* to PassKit[Core,UI]/*
https://bugs.webkit.org/show_bug.cgi?id=237091
<rdar://problem/81085862>

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/cocoa/PaymentSessionErrorCocoa.mm:

(WebCore::PaymentSessionError::sessionError const):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::adjustApplePayButtonStyle const):

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h:
  • pal/spi/cocoa/PassKitInstallmentsSPI.h:
  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toNSError):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate _willFinishWithError:]):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
(WebKit::WebPaymentCoordinatorProxy::platformOpenPaymentSetup):
(WebKit::toPKContactFields):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

  • WebProcess/ApplePay/cocoa/WebPaymentCoordinatorCocoa.mm:

(WebKit::WebPaymentCoordinator::platformAvailablePaymentNetworks):

Source/WTF:

  • wtf/PlatformHave.h:
8:42 AM Changeset in webkit [290435] by Devin Rousso
  • 12 edits
    1 delete in trunk

Web Inspector: merge WI.OverlayManager into WI.DOMNode
https://bugs.webkit.org/show_bug.cgi?id=236533

Reviewed by Patrick Angle.

Source/WebInspectorUI:

There's really nothing substantial about WI.OverlayManager that requires it to exist. All
of the methods, members, etc. can be moved to WI.DOMNode, resulting in clearer calling
code (since callers currently have to provide a WI.DOMNode to WI.OverlayManager methods)
and fewer collections (e.g. it's no longer necessary to have a "list of nodes showing a grid
overlay").

  • UserInterface/Controllers/OverlayManager.js: Removed.
  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.resetDefaultLayoutOverlayConfiguration): Added.
(WI.DOMNode.prototype.get layoutOverlayShowing): moved from WI.OverlayManager.protytpe.hasVisibleOverlay.
(WI.DOMNode.prototype.set layoutContextType):
(WI.DOMNode.prototype.showLayoutOverlay): moved from WI.OverlayManager.protytpe.showOverlay.
(WI.DOMNode.prototype.hideLayoutOverlay): moved from WI.OverlayManager.protytpe.hideOverlay.
(WI.DOMNode.prototype.get layoutOverlayColor): moved from WI.OverlayManager.protytpe.getColorForNode.
(WI.DOMNode.prototype.set layoutOverlayColor): moved from WI.OverlayManager.protytpe.setColorForNode.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype._mainResourceDidChange):
Reset the index of the next default color to use for the next grid/flex DOM node.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.onattach):
(WI.DOMTreeElement.prototype.ondetach):
(WI.DOMTreeElement.prototype._layoutBadgeClicked):
(WI.DOMTreeElement.prototype._updateLayoutBadgeStatus):
(WI.DOMTreeElement.prototype._handleLayoutContextTypeChanged):

  • UserInterface/Views/NodeOverlayListSection.js:

(WI.NodeOverlayListSection.prototype.attached):
(WI.NodeOverlayListSection.prototype.detached):
(WI.NodeOverlayListSection.prototype.layout):
(WI.NodeOverlayListSection.prototype._handleOverlayStateChanged):
(WI.NodeOverlayListSection.prototype._handleToggleAllCheckboxChanged):
(WI.NodeOverlayListSection.prototype._updateToggleAllCheckbox):

  • UserInterface/Controllers/GridOverlayConfigurationDiagnosticEventRecorder.js:

(WI.GridOverlayConfigurationDiagnosticEventRecorder):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayShown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayHidden):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._sampleCurrentOverlayConfiguration):

  • UserInterface/Controllers/GridOverlayDiagnosticEventRecorder.js:

(WI.GridOverlayDiagnosticEventRecorder):
(WI.GridOverlayDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayDiagnosticEventRecorder.prototype._handleGridOverlayShown):
Adopt the above changes:

  • Replace WI.OverlayManager.Event.* with WI.DOMNode.Event.* (and event.data.domNode with event.target).
  • Replace WI.overlayManager.*(domNode[, ...]) with domNode.*([...]).
  • Directly query WI.settings.gridOverlay*.value instead of getting them from the data in WI.DOMNode.Event.LayoutOverlayShown (formerly WI.OverlayManager.Event.OverlayShown).

LayoutTests:

  • inspector/dom/showFlexOverlay.html:
  • inspector/dom/showGridOverlay.html:

Replace direct DOMAgent calls with equivalent WI.DOMNode methods.

8:09 AM Changeset in webkit [290434] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Merge r290401 - [WPE][GTK] Paths should be canonicalized before calling bwrap
https://bugs.webkit.org/show_bug.cgi?id=211131

Patch by Maxim Cournoyer <maxim.cournoyer@gmail.com> on 2022-02-23
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindSymlinksRealPath): Relocate earlier in file,
add a 'bindOption' argument and use FileSystem::realPath instead
of realpath from the standard C library.
(WebKit::bindIfExists): Use the modified above procedure to
canonicalize the source path, and avoid adding bind mounts for
locations under /etc.

8:09 AM Changeset in webkit [290433] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Merge r290395 - Bubblewrap launcher doesn't bind font locations from XDG_DATA_DIRS
https://bugs.webkit.org/show_bug.cgi?id=237089

Patch by Liliana Marie Prikler <liliana.prikler@gmail.com> on 2022-02-23
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindFonts): Expose font directories present in the
XDG_DATA_DIRS environment variable.

8:09 AM Changeset in webkit [290432] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.36/Source/JavaScriptCore

Merge r290359 - Ensure generated inline assembler that setups segments returns to previous state
https://bugs.webkit.org/show_bug.cgi?id=236976

Reviewed by Yusuke Suzuki.

Use .previous in inline assembler in order to ensure that mixed emission of assembler
functions and other definitions correctly puts each of them in their rightful sections
in the output object code.

  • assembler/MacroAssemblerARM64.cpp:
  • assembler/MacroAssemblerARMv7.cpp:
  • assembler/MacroAssemblerMIPS.cpp:
  • assembler/MacroAssemblerX86Common.cpp:
8:08 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
8:08 AM Changeset in webkit [290431] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.36/Source

Merge r290312 - When building introspection files, add CMAKE_C_FLAGS to the compiler flags.
https://bugs.webkit.org/show_bug.cgi?id=232936

Patch by Alexander Kanavin <alex@linutronix.de> on 2022-02-22
Reviewed by Michael Catanzaro.

g-ir-compiler is using a C compiler internally, so it needs to set
the proper flags for it.

  • PlatformGTK.cmake:
7:45 AM Changeset in webkit [290430] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

RELEASE_ASSERT(!renderer()); in WebCore::Node::~Node() + 479 (Node.cpp:366)
https://bugs.webkit.org/show_bug.cgi?id=235380

Patch by Frédéric Wang <fwang@igalia.com> on 2022-02-24
Reviewed by Ryosuke Niwa.

Source/WebCore:

RenderTreeUpdater::tearDownRenderers() browse the composed tree to tear down descendants.
However, element with a shadow root are handled specially in
ComposedTreeIterator::ComposedTreeIterator(), they have to be handled specially by calling
a tearDownLeftoverShadowHostChildren(). This patch does the same for slot elements which
are also handled specially in ComposedTreeIterator(). It also makes names within
tearDownLeftoverShadowHostChildren() more generic. This in particular fixes a release assert
when a slot with pseudo elements children is torn down.

Test: fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown.html

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers): Also call tearDownLeftoverShadowHostChildren
for a slot element and add a comment pointing to the method corresponding to these special
cases.
(WebCore::RenderTreeUpdater::tearDownLeftoverChildrenOfComposedTree): Renamed to remove "shadow host".

  • rendering/updating/RenderTreeUpdater.h: Ditto.

LayoutTests:

Add non-regression test.

  • fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown-expected.txt: Added.
  • fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown.html: Added.
7:13 AM Changeset in webkit [290429] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016>

Reviewed by Ryan Haddad.

  • Tools/Scripts/run-webkit-tests: Change shebang to Python 3.

Canonical link: https://commits.webkit.org/247736@main

6:40 AM Changeset in webkit [290428] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Adjust hittest coords when in flipped writing mode
https://bugs.webkit.org/show_bug.cgi?id=237103

Reviewed by Antti Koivisto.

This is similar to what we do in LegacyInlineFlowBox::nodeAtPoint.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::flippedRectForWritingMode):
(WebCore::LayoutIntegration::flippedPointForWritingMode):
(WebCore::LayoutIntegration::LineLayout::hitTest):

6:27 AM Changeset in webkit [290427] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WTF

Merge r290417 - REGRESSION(r289683): [GTK][WPE] Scrolling with the mouse wheel doesn't work in twitter after r289683
https://bugs.webkit.org/show_bug.cgi?id=237093

Reviewed by Carlos Garcia Campos.

Turn off by default for wpe/gtk and windows to investigate issue.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
4:49 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
4:47 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
4:32 AM Changeset in webkit [290426] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[GTK] WebGL ANGLE backend is broken after r290138
https://bugs.webkit.org/show_bug.cgi?id=237133

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-02-24
Reviewed by Kimmo Kinnunen.

We removed some of the options that are already included in the
general library compilation, that fixes the backend.

  • PlatformGTK.cmake:
4:29 AM Changeset in webkit [290425] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

webrtc/video-replace-muted-track.html is unnecessary long to run
https://bugs.webkit.org/show_bug.cgi?id=237086

Reviewed by Peng Liu.

  • platform/mac/TestExpectations: Unflake test since it is no longer flaky in bots.
  • webrtc/routines.js:

We were waiting for 360 iterations to validate no black frame is found in webrtc/routines.js.
This makes it last around 20 seconds.
Decrease the number of iterations to 40, around 2 seconds by decrementing counter from provided value
instead of incrementing value up to 400.

4:17 AM Changeset in webkit [290424] by alex
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed test gardening.

Another WebGL test with failing expected results in glib.

  • platform/glib/TestExpectations:
  • platform/glib/webgl/webgl-allow-shared-expected.txt: Removed.
4:11 AM Changeset in webkit [290423] by commit-queue@webkit.org
  • 13 edits in trunk/Source

LibWebRTCCodecs, -Proxy create and communicate the RemoteVideoFrameProxy incorrectly
https://bugs.webkit.org/show_bug.cgi?id=237083

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-24
Reviewed by Youenn Fablet.
Source/WebCore:

Add functions to set media sample ownership identity if the underlying object
supports the feature.

  • platform/MediaSample.h:

(WebCore::MediaSample::setOwnershipIdentity):

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

(WebCore::MediaSampleAVFObjC::setOwnershipIdentity):

  • platform/graphics/cv/VideoFrameCV.h:
  • platform/graphics/cv/VideoFrameCV.mm:

(WebCore::VideoFrameCV::setOwnershipIdentity):

Source/WebKit:

LibWebRTCCodecsProxy should not call RemoteVideoFrameObjectHeap::createVideoFrame,
the function should be removed. Instead, LibWebRTCCodecsProxy should construct a
write reference to insert the media sample -> remote proxy mapping. Then
the result of the insert, a new reference, should be sent as part of the
RemoteVideoFrameProxy::Properties to the WP. This way the sent reference is
constructed as expected. Previously the reference was correct but matched just
by selecting the constants currently used (0). This works towards being able
to remove RemoteVideoFrameObjectHeap::createVideoFrame.

Split the completedDecoding to two:

  • completedDecoding used to send new RemoteVideoFrames
  • completedDecodingCV to send CoreVideo specific RemoteVideoSample instances (which will removed eventually).
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::Function<void):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::completedDecodingCV):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:
3:57 AM Changeset in webkit [290422] by Martin Robinson
  • 11 edits in trunk

Implement logical properties for CSS overscroll-behavior
https://bugs.webkit.org/show_bug.cgi?id=237080

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt: Update expectations for passing tests.
  • web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical-expected.txt: Ditto.
  • web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed-expected.txt: Ditto.
  • web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid-expected.txt: Ditto.

Source/WebCore:

No new tests. This is covered by existing WPT tests.

Add support for overscroll-behavior-block and overscroll-behavior-inline, the logical versions
of the overscroll behavior properties.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

3:13 AM Changeset in webkit [290421] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Respect bytecode alignment in BytecodeRewriter
https://bugs.webkit.org/show_bug.cgi?id=237092

Patch by Geza Lore <Geza Lore> on 2022-02-24
Reviewed by Yusuke Suzuki.

Note: This patch only affects bytecode generation on platforms which
set CPU(NEEDS_ALIGNED_ACCESS), which are ARMv7 and MIPS. On all other
platforms the generated bytecode is identical.

The previous BytecodeRewriter::removeBytecode method unconditionally
removed the given instruction, which could then break the required
alignment of subsequent wide ops. While this could be fixed by
inserting padding after the removal, all current uses of
removeBytecode are such that they constitute one half of a replace.
Instead of adding unnecessary padding, added an explicit
replaceBytecodeWithFragment method that removes the old instruction
and replaces it with the given fragment, while maintaining alignment
of the subsequent bytecode. This yields fewer nops. If removeBytecode
turns out to be necessary later, use replaceBytecodeWithFragment with
an empty fragment.

  • bytecode/BytecodeGeneratorification.cpp:

(JSC::BytecodeGeneratorification::run):

  • bytecode/BytecodeRewriter.h:

(JSC::BytecodeRewriter::Fragment::align):
(JSC::BytecodeRewriter::insertFragmentAfter):
(JSC::BytecodeRewriter::replaceBytecodeWithFragment):

  • bytecompiler/BytecodeGeneratorBaseInlines.h:

(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode32):

2:22 AM Changeset in webkit [290420] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WTF

Unreviewed. Fix compile warnings when asserts are disabled after r290418

  • wtf/Threading.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

  • wtf/WorkQueue.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

1:42 AM Changeset in webkit [290419] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. [GTK] Mark GLContextGLX.cpp as no-unify

  • SourcesGTK.txt:
1:03 AM Changeset in webkit [290418] by commit-queue@webkit.org
  • 20 edits in trunk

Thread safety analysis to assert "code is run sequentially" is not useful when code is mainly run with WorkQueues
https://bugs.webkit.org/show_bug.cgi?id=236832

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-24
Reviewed by Antti Koivisto.

Source/WebKit:

Assert directly that the work queues are current instead of using ThreadAssertion.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::~RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::displayWasReconfigured):
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::workQueueUninitialize):
(WebKit::RemoteGraphicsContextGL::didComposite):
(WebKit::RemoteGraphicsContextGL::forceContextLost):
(WebKit::RemoteGraphicsContextGL::dispatchContextChangedNotification):
(WebKit::RemoteGraphicsContextGL::reshape):
(WebKit::RemoteGraphicsContextGL::prepareForDisplay):
(WebKit::RemoteGraphicsContextGL::synthesizeGLError):
(WebKit::RemoteGraphicsContextGL::getError):
(WebKit::RemoteGraphicsContextGL::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGL::markContextChanged):
(WebKit::RemoteGraphicsContextGL::paintRenderingResultsToCanvasWithQualifiedIdentifier):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToCanvasWithQualifiedIdentifier):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToMediaSample):
(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):
(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:

(WebKit::RemoteGraphicsContextGL::workQueue const):

  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromVideoFrame):
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(moveErrorsToSyntheticErrorList):
(activeTexture):
(attachShader):
(bindAttribLocation):
(bindBuffer):
(bindFramebuffer):
(bindRenderbuffer):
(bindTexture):
(blendColor):
(blendEquation):
(blendEquationSeparate):
(blendFunc):
(blendFuncSeparate):
(checkFramebufferStatus):
(clear):
(clearColor):
(clearDepth):
(clearStencil):
(colorMask):
(compileShader):
(copyTexImage2D):
(copyTexSubImage2D):
(createBuffer):
(createFramebuffer):
(createProgram):
(createRenderbuffer):
(createShader):
(createTexture):
(cullFace):
(deleteBuffer):
(deleteFramebuffer):
(deleteProgram):
(deleteRenderbuffer):
(deleteShader):
(deleteTexture):
(depthFunc):
(depthMask):
(depthRange):
(detachShader):
(disable):
(disableVertexAttribArray):
(drawArrays):
(drawElements):
(enable):
(enableVertexAttribArray):
(finish):
(flush):
(framebufferRenderbuffer):
(framebufferTexture2D):
(frontFace):
(generateMipmap):
(getActiveAttrib):
(getActiveUniform):
(getAttribLocation):
(getBufferParameteri):
(getString):
(getFloatv):
(getIntegerv):
(getInteger64):
(getInteger64i):
(getProgrami):
(getBooleanv):
(getFramebufferAttachmentParameteri):
(getProgramInfoLog):
(getRenderbufferParameteri):
(getShaderi):
(getShaderInfoLog):
(getShaderPrecisionFormat):
(getShaderSource):
(getTexParameterf):
(getTexParameteri):
(getUniformfv):
(getUniformiv):
(getUniformuiv):
(getUniformLocation):
(getVertexAttribOffset):
(hint):
(isBuffer):
(isEnabled):
(isFramebuffer):
(isProgram):
(isRenderbuffer):
(isShader):
(isTexture):
(lineWidth):
(linkProgram):
(pixelStorei):
(polygonOffset):
(renderbufferStorage):
(sampleCoverage):
(scissor):
(shaderSource):
(stencilFunc):
(stencilFuncSeparate):
(stencilMask):
(stencilMaskSeparate):
(stencilOp):
(stencilOpSeparate):
(texParameterf):
(texParameteri):
(uniform1f):
(uniform1fv):
(uniform1i):
(uniform1iv):
(uniform2f):
(uniform2fv):
(uniform2i):
(uniform2iv):
(uniform3f):
(uniform3fv):
(uniform3i):
(uniform3iv):
(uniform4f):
(uniform4fv):
(uniform4i):
(uniform4iv):
(uniformMatrix2fv):
(uniformMatrix3fv):
(uniformMatrix4fv):
(useProgram):
(validateProgram):
(vertexAttrib1f):
(vertexAttrib1fv):
(vertexAttrib2f):
(vertexAttrib2fv):
(vertexAttrib3f):
(vertexAttrib3fv):
(vertexAttrib4f):
(vertexAttrib4fv):
(vertexAttribPointer):
(viewport):
(bufferData0):
(bufferData1):
(bufferSubData):
(readnPixels0):
(readnPixels1):
(texImage2D0):
(texImage2D1):
(texSubImage2D0):
(texSubImage2D1):
(compressedTexImage2D0):
(compressedTexImage2D1):
(compressedTexSubImage2D0):
(compressedTexSubImage2D1):
(drawArraysInstanced):
(drawElementsInstanced):
(vertexAttribDivisor):
(createVertexArray):
(deleteVertexArray):
(isVertexArray):
(bindVertexArray):
(copyBufferSubData):
(getBufferSubData):
(blitFramebuffer):
(framebufferTextureLayer):
(invalidateFramebuffer):
(invalidateSubFramebuffer):
(readBuffer):
(renderbufferStorageMultisample):
(texStorage2D):
(texStorage3D):
(texImage3D0):
(texImage3D1):
(texSubImage3D0):
(texSubImage3D1):
(copyTexSubImage3D):
(compressedTexImage3D0):
(compressedTexImage3D1):
(compressedTexSubImage3D0):
(compressedTexSubImage3D1):
(getFragDataLocation):
(uniform1ui):
(uniform2ui):
(uniform3ui):
(uniform4ui):
(uniform1uiv):
(uniform2uiv):
(uniform3uiv):
(uniform4uiv):
(uniformMatrix2x3fv):
(uniformMatrix3x2fv):
(uniformMatrix2x4fv):
(uniformMatrix4x2fv):
(uniformMatrix3x4fv):
(uniformMatrix4x3fv):
(vertexAttribI4i):
(vertexAttribI4iv):
(vertexAttribI4ui):
(vertexAttribI4uiv):
(vertexAttribIPointer):
(drawRangeElements):
(drawBuffers):
(clearBufferiv):
(clearBufferuiv):
(clearBufferfv):
(clearBufferfi):
(createQuery):
(deleteQuery):
(isQuery):
(beginQuery):
(endQuery):
(getQuery):
(getQueryObjectui):
(createSampler):
(deleteSampler):
(isSampler):
(bindSampler):
(samplerParameteri):
(samplerParameterf):
(getSamplerParameterf):
(getSamplerParameteri):
(fenceSync):
(isSync):
(deleteSync):
(clientWaitSync):
(waitSync):
(getSynci):
(createTransformFeedback):
(deleteTransformFeedback):
(isTransformFeedback):
(bindTransformFeedback):
(beginTransformFeedback):
(endTransformFeedback):
(transformFeedbackVaryings):
(getTransformFeedbackVarying):
(pauseTransformFeedback):
(resumeTransformFeedback):
(bindBufferBase):
(bindBufferRange):
(getUniformIndices):
(getActiveUniforms):
(getUniformBlockIndex):
(getActiveUniformBlockName):
(uniformBlockBinding):
(getActiveUniformBlockiv):
(getGraphicsResetStatusARB):
(getTranslatedShaderSourceANGLE):
(drawBuffersEXT):
(getInternalformativ):
(multiDrawArraysANGLE):
(multiDrawArraysInstancedANGLE):
(multiDrawElementsANGLE):
(multiDrawElementsInstancedANGLE):
(paintRenderingResultsToPixelBuffer):

  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp:

(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):
(WebKit::RemoteGPU::workQueueInitialize):
(WebKit::RemoteGPU::workQueueUninitialize):
(WebKit::RemoteGPU::requestAdapter):

  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::~RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::stopListeningForIPC):
(WebKit::RemoteVideoFrameObjectHeap::releaseVideoFrame):

  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • Platform/IPC/StreamConnectionWorkQueue.cpp:

(IPC::StreamConnectionWorkQueue::assertIsCurrent const):

  • Platform/IPC/StreamConnectionWorkQueue.h:

(IPC::WTF_ASSERTS_ACQUIRED_CAPABILITY):

Source/WTF:

Thread safety analysis is not useful when code is mainly run with WorkQueues.
WorkQueue runnables might run in arbitrary thread, but still serially in a specific
"work queue". Thus current ThreadAssertion produces false assertions.

Make Thread and WorkQueue hold "is current" capability. This means the
assertIsCurrent(thread/workQueue) can establish that the caller holds the capabity,
e.g. that the caller is running in the particular thread or work queue.

Tested by new API tests.

  • wtf/Threading.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

  • wtf/WorkQueue.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueueBase::platformInitialize):
(WTF::WorkQueue::assertIsCurrent const):
(WTF::currentSequenceID):

  • wtf/generic/WorkQueueGeneric.cpp:

(WTF::WorkQueueBase::platformInitialize):
(WTF::WorkQueue::assertIsCurrent):
(WTF::currentSequenceID):

Tools:

Test the added functionality to be able to use assertIsCurrent(thread/workQueue).

Fix WTF_WorkQueue.DestroyDispatchedOnDispatchQueue test, it is now able to make the assertion correctly.

  • The object is created somewhere that is not the tested WorkQueue
  • The object is destroyed in the tested WorkQueue
  • Scripts/generate-gpup-webgl:
  • TestWebKitAPI/Tests/WTF/Threading.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

12:57 AM Changeset in webkit [290417] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

REGRESSION(r289683): [GTK][WPE] Scrolling with the mouse wheel doesn't work in twitter after r289683
https://bugs.webkit.org/show_bug.cgi?id=237093

Reviewed by Carlos Garcia Campos.

Turn off by default for wpe/gtk and windows to investigate issue.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
12:56 AM Changeset in webkit [290416] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] WeakMapImpl do not need to take cellLock in visitOutputConstraints and main thread
https://bugs.webkit.org/show_bug.cgi?id=200195

Reviewed by Mark Lam.

WeakMapImpl::visitOutputConstraints is called in the constraint solver, so the main thread is stopped.
WeakMapImpl::rehash can destroy the buffer, but it is only called on either the main thread or GC finalizer. As a result,
it never happens that destroying the buffer while touching it in visitOutputConstraints. We can remove the lock guarding
this buffer.

  • runtime/WeakMapImpl.cpp:

(JSC::WeakMapImpl<BucketType>::visitOutputConstraints):

  • runtime/WeakMapImpl.h:

(JSC::WeakMapImpl::WeakMapImpl):
(JSC::WeakMapImpl::makeAndSetNewBuffer):
(JSC::WeakMapImpl::finishCreation): Deleted.

  • runtime/WeakMapImplInlines.h:

(JSC::WeakMapImpl<WeakMapBucket>::rehash):

12:55 AM Changeset in webkit [290415] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Small optimizations to TinyLRUCache
https://bugs.webkit.org/show_bug.cgi?id=237117

Reviewed by Darin Adler.

Small optimizations to TinyLRUCache:

  • When trying to find an entry in the cache, start from the end of the vector since this is where the most recent entries are.
  • Use reverseFind() instead of a for loop to simplify the code a bit
  • Use Vector::uncheckedAppend() instead of Vector::append() to bypass capacity checks given that the vector has an inline capacity that is the size of the cache (vector capacity never grows or shrinks).
  • wtf/TinyLRUCache.h:

(WTF::TinyLRUCache::get):

Note: See TracTimeline for information about the timeline view.