Timeline



Mar 13, 2022:

7:34 AM Changeset in webkit [291217] by Angelos Oikonomopoulos
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Use addressTempRegister in loadValue(void *) on 32 bits
https://bugs.webkit.org/show_bug.cgi?id=237773

Reviewed by Žan Doberšek.

Instead of using one of the destination registers as an address
temporary, use addressTempRegister instead. This allows reusing
the value in addressTempRegister (with an appropriate offset) if
possible, which results in a >25% size reduction for DFGOSRExit
(JS2) on ARMv7 (though not a significant size reduction overall).
Technically, this change could be killing some address reuse that
was previously possible because loadValue was not clobbering
addressTempRegister but, if so, this seems to be balanced out for
JS2.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::BoundsNonDoubleWordOffset::within):
(JSC::MacroAssemblerARMv7::BoundsDoubleWordOffset::within):
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::setupArmAddress):
(JSC::MacroAssemblerARMv7::absoluteAddressWithinShortOffset):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::loadPair32):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::loadValue):

Mar 12, 2022:

11:23 PM Changeset in webkit [291216] by Jean-Yves Avenard
  • 8 edits
    7 adds in trunk

Safari produces scrambled output for some webm videos with vp8 codec.
https://bugs.webkit.org/show_bug.cgi?id=236754
Source/ThirdParty/libwebrtc:

rdar://80869041

Reviewed by Eric Carlson.

  • Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.cpp:

(webrtc::WebKitDecoderReceiver::decoderFailed): Tell CoreMedia if a frame
was silently dropped by the decoder.

Source/WebCore:

rdar://80869041

Reviewed by Eric Carlson.

The MediaFormatReader plugin and the MSE SourceBufferPrivate are using
a SampleMap to store all the media samples timing information: one sorted
by DTS order and the other in PTS order.
Those SampleMap use the sample's presentation time as unique key.
The VP8 codec can define hidden samples that are to be fed to the decoder
but will not decode into an actual image. Those samples are typically
packed together in the webm container in two or more consecutive blocks
with the same presentation time (similar behaviour can also be found in
webm where multiple frames may be stored with the same presentation
time).
When stored in the SampleMap, only the latest sample added would be kept
after overwriting the previous one with the same time.
To get around this issue, we pack all samples with the same presentation
time in a single MediaSamplesBlock so that they can be stored together in
the map without any losses.
Upon decoding, all those sub-samples will be retrieved and fed to the
decoder.

The CoreMedia MediaFormatReader backend however has a bug where it will
enter in an infinite if we return successive frames with the same
timestamp which will cause memory exhaustion and a crash.
To get around this, we make the grouped samples appear as discrete,
making each hidden sample have a duration of 1us followed by the
visible frames (which will see its duration shorten by 1us).

Tests: media/media-source/media-source-vp8-hiddenframes.html

media/media-vp8-hiddenframes.html

New tests had to be disabled due to bug 236755. We currently have no
way to guarantee which frame is currently displayed after either a seek
operation or reaching the end of playback.

  • platform/MediaSample.h:

(WebCore::MediaSamplesBlock::append):
(WebCore::MediaSamplesBlock::clear):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::WebMParser::parse):
(WebCore::WebMParser::OnFrame):
(WebCore::WebMParser::flushPendingVideoSamples):
(WebCore::WebMParser::VideoTrackData::resetCompletedFramesState):
(WebCore::WebMParser::VideoTrackData::consumeFrameData):
(WebCore::WebMParser::VideoTrackData::processPendingMediaSamples):
(WebCore::WebMParser::VideoTrackData::flushPendingSamples):
(WebCore::WebMParser::AudioTrackData::consumeFrameData):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:

(WebCore::WebMParser::TrackData::consumeFrameData):
(WebCore::WebMParser::TrackData::resetCompletedFramesState):
(WebCore::WebMParser::TrackData::drainPendingSamples):

LayoutTests:

Reviewed by Eric Carlson.

VP8 files were generated such that alternative reference frames were used:
$ fmpeg -i dragon.webm -c:v libvpx -vf scale=320:-1 -auto-alt-ref 1 -arnr-maxframes 5 -arnr-strength 3 -pass 1 test-vp8-hiddenframes.webm
$ fmpeg -i dragon.webm -c:v libvpx -vf scale=320:-1 -auto-alt-ref 1 -arnr-maxframes 5 -arnr-strength 3 -pass 2 test-vp8-hiddenframes.webm

The command used to extract the last frame in png format was:
$ ffmpeg -sseof -3 -i test-vp8-hiddenframes.webm -pred mixed -pix_fmt rgb24 -sws_flags +accurate_rnd+full_chroma_int -update 1 -q:v 1 test-vp8-hiddenframes.png

  • TestExpectations:
  • media/content/test-vp8-hiddenframes.png: Added.
  • media/content/test-vp8-hiddenframes.webm: Added.
  • media/media-source/media-source-vp8-hiddenframes-expected.html: Added.
  • media/media-source/media-source-vp8-hiddenframes.html: Added.
  • media/media-vp8-hiddenframes-expected.html: Added.
  • media/media-vp8-hiddenframes.html: Added.
  • media/utilities.js: Added.

(once):
(fetchWithXHR):
(loadSegment):

8:55 PM Changeset in webkit [291215] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[IFC][Integration] Add InlineIterator::Line::selectionPhysicalRect
https://bugs.webkit.org/show_bug.cgi?id=237796

Reviewed by Antti Koivisto.

Introduce selectionPhysicalRect() so that the clients don't need to convert/flip the logical coords and
also rename selectionRect() to selectionLogicalRect() to clear up any ambiguity.

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):

  • layout/integration/InlineIteratorLine.h:

(WebCore::InlineIterator::Line::selectionLogicalRect const):
(WebCore::InlineIterator::Line::selectionPhysicalRect const):
(WebCore::InlineIterator::Line::selectionRect const): Deleted.

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForLinePosition):

8:54 PM Changeset in webkit [291214] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

In RemoteLayerBackingStore, group makeFrontBufferNonVolatile() and swapToValidFrontBuffer() into a single function
https://bugs.webkit.org/show_bug.cgi?id=237806

Reviewed by Tim Horton.

As a step towards reducing the number of sync IPC calls when displaying layers, refactor
code in RemoteLayerBackingStore so that we can do the makeFrontBufferNonVolatile()
and swapToValidFrontBuffer() in a single function. Its return value indicates whether
we need to do any display, or a full display.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::operator<<):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::prepareBuffers):
(WebKit::RemoteLayerBackingStore::paintContents): Fix an assertion that fired for WebGL.
(WebKit::RemoteLayerBackingStore::swapBuffers): Deleted.

7:01 PM Changeset in webkit [291213] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WTF

Fail the build if Internal or Experimental web preferences are missing human readable names
https://bugs.webkit.org/show_bug.cgi?id=237813

Reviewed by Alex Christensen.

  • Scripts/GeneratePreferences.rb:

Ensure that all preferences that expose human readable strings to the
API client actually have such a name.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add one missing human readable preference name.

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

Unreviewed, reverting r291209.
https://bugs.webkit.org/show_bug.cgi?id=237811

Re-land 290754 due to mis-blaming

Reverted changeset:

"Unreviewed, reverting r290754."
https://bugs.webkit.org/show_bug.cgi?id=237808
https://commits.webkit.org/r291209

3:15 PM Changeset in webkit [291211] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[IFC][Integration] Replace generic InlineIterator::Line::legacyRootInlineBox() with 2 dedicated functions
https://bugs.webkit.org/show_bug.cgi?id=237807

Reviewed by Antti Koivisto.

  • layout/integration/InlineIteratorLine.h:

(WebCore::InlineIterator::Line::containingFragment const):
(WebCore::InlineIterator::Line::isFirstAfterPageBreak const):
(WebCore::InlineIterator::Line::legacyRootInlineBox const): Deleted.

  • layout/integration/InlineIteratorLineLegacyPath.h:

(WebCore::InlineIterator::LineIteratorLegacyPath::containingFragment const):
(WebCore::InlineIterator::LineIteratorLegacyPath::isFirstAfterPageBreak const):
(WebCore::InlineIterator::LineIteratorLegacyPath::legacyRootInlineBox const): Deleted.

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::containingFragment const):
(WebCore::InlineIterator::LineIteratorModernPath::isFirstAfterPageBreak const):
(WebCore::InlineIterator::LineIteratorModernPath::legacyRootInlineBox const): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionGeometries):

3:12 PM Changeset in webkit [291210] by timothy_horton@apple.com
  • 44 edits in trunk

Adopt FALLBACK_PLATFORM_NAME in place of FALLBACK_PLATFORM
https://bugs.webkit.org/show_bug.cgi?id=237809

Reviewed by Per Arne Vollan.

PerformanceTests:

  • MediaTime/Configurations/SDKVariant.xcconfig:

Source/bmalloc:

  • Configurations/SDKVariant.xcconfig:

Source/JavaScriptCore:

  • Configurations/SDKVariant.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/SDKVariant.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/SDKVariant.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/SDKVariant.xcconfig:

Source/WebCore:

  • Configurations/SDKVariant.xcconfig:

Source/WebCore/PAL:

  • Configurations/SDKVariant.xcconfig:

Source/WebGPU:

  • Configurations/SDKVariant.xcconfig:

Source/WebInspectorUI:

  • Configurations/SDKVariant.xcconfig:

Source/WebKit:

  • Configurations/SDKVariant.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/SDKVariant.xcconfig:

Source/WTF:

  • Configurations/SDKVariant.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/SDKVariant.xcconfig:
  • DumpRenderTree/mac/Configurations/SDKVariant.xcconfig:
  • ImageDiff/cg/Configurations/SDKVariant.xcconfig:
  • MiniBrowser/Configurations/SDKVariant.xcconfig:
  • MobileMiniBrowser/Configurations/SDKVariant.xcconfig:
  • TestWebKitAPI/Configurations/SDKVariant.xcconfig:
  • WebEditingTester/Configurations/SDKVariant.xcconfig:
  • WebKitTestRunner/Configurations/SDKVariant.xcconfig:
  • lldb/lldbWebKitTester/Configurations/SDKVariant.xcconfig:
12:53 PM Changeset in webkit [291209] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r290754.
https://bugs.webkit.org/show_bug.cgi?id=237808

Introduced launch regression

Reverted changeset:

"[iOS] Seatbelt sandbox profile entitlement is deprecated"
https://bugs.webkit.org/show_bug.cgi?id=237374
https://commits.webkit.org/r290754

11:10 AM Changeset in webkit [291208] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[IFC][Integration] previousLinePosition/nextLinePosition should use Line::lineBoxHeight
https://bugs.webkit.org/show_bug.cgi?id=237788

Reviewed by Antti Koivisto.

Line::lineBoxHeight() should be sufficient for checking if the line is empty for VisualPosition.

  • editing/VisibleUnits.cpp:

(WebCore::previousLinePosition):
(WebCore::nextLinePosition):

  • layout/integration/InlineIteratorLine.h:

(WebCore::InlineIterator::Line::lineBoxHeight const):
(WebCore::InlineIterator::Line::logicalHeight const): Deleted.

  • layout/integration/InlineIteratorLineLegacyPath.h:

(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalRight const):
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalHeight const): Deleted.

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalRight const):
(WebCore::InlineIterator::LineIteratorModernPath::logicalHeight const): Deleted.

6:30 AM Changeset in webkit [291207] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[IFC][Integration] RenderBlockFlow::findClosestTextAtAbsolutePoint should use root inline box iterator
https://bugs.webkit.org/show_bug.cgi?id=237786

Reviewed by Antti Koivisto.

Let's remove root inline box APIs from the line iterator interface.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint): Replace line iterator with root inline box iterator
and check whether the local point is in between these root inline boxes.

Mar 11, 2022:

9:01 PM Changeset in webkit [291206] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Adjust when _setPrivacyProxyFailClosedForUnreachableNonMainHosts is called
https://bugs.webkit.org/show_bug.cgi?id=237735
<rdar://89972004>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Geoff Garen.

It was originally being called differently between main resources and subresources on the same domain,
causing them to use connections with different properties, so we couldn't share connections any more.
This will make it so that more connections are shared, which should fix the performance regression from
no longer sharing connections to the same domain.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

8:07 PM Changeset in webkit [291205] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Unreviewed logging removal.

Revert an ALWAYS_LOG_WITH_STREAM() that I inadvertently committed back to a
LOG_WITH_STREAM().

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):

7:15 PM Changeset in webkit [291204] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore

[macOS] Image decoders should be restricted for Mail
https://bugs.webkit.org/show_bug.cgi?id=237717
<rdar://89827733>

Reviewed by Geoffrey Garen.

Use correct prefix for static member.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoderCG::enableRestrictedDecoding):
(WebCore::ImageDecoderCG::restrictedDecodingEnabled):

  • platform/graphics/cg/ImageDecoderCG.h:
6:33 PM Changeset in webkit [291203] by Chris Dumez
  • 5 edits in trunk/Source

IPC thread's QOS should match the sending thread's QOS when calling sendSync()
https://bugs.webkit.org/show_bug.cgi?id=237800
<rdar://problem/90061548>

Reviewed by Geoffrey Garen.

Source/WebKit:

IPC thread's QOS should match the sending thread's QOS when calling sendSync(), since it blocks the calling thread.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendSyncMessage):

Source/WTF:

Add function to get the QoS of the current thread.

  • wtf/Threading.cpp:

(WTF::toQOS):
(WTF::Thread::currentThreadQOS):

  • wtf/Threading.h:
6:23 PM Changeset in webkit [291202] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

Move RemoteLayerBackingStore flusher creation into RemoteLayerBackingStoreCollection
https://bugs.webkit.org/show_bug.cgi?id=237798

Reviewed by Tim Horton.

Move the code that creates layer flushers from RemoteLayerTreeDrawingArea into
RemoteLayerBackingStoreCollection, per the FIXME.

RemoteLayerBackingStoreCollection::didFlushLayers() then becomes internal, and gets renamed
to updateUnreachableBackingStores(). Now we only need to schedule the volatility timer from
one place.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::didFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::updateUnreachableBackingStores):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

4:56 PM Changeset in webkit [291201] by Wenson Hsieh
  • 6 edits in trunk/Source

Refactor the filter block in DocumentMarkerController::filterMarkers() to return an enum type
https://bugs.webkit.org/show_bug.cgi?id=237794

Reviewed by Megan Gardner.

Source/WebCore:

Change the return value of the filter function argument in filterMarkers() from a bool to a named enum
type with 2 values: Keep or Remove; this makes it more obvious to call sites whether the return value will
cause document markers to remain or be removed from the document.

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::filterMarkers):
(WebCore::DocumentMarkerController::removeMarkers):

  • dom/DocumentMarkerController.h: Remove a FIXME and comment that's no longer needed.

Source/WebKit:

Drive-by fix: only remove the spellchecking document marker in removeAnnotationRelativeToSelection if the
annotation string of the marker matches the given annotation string to the method.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::clearDictationAlternatives):

4:32 PM Changeset in webkit [291200] by commit-queue@webkit.org
  • 9 edits in trunk

Finish implementing modify-headers actions for WKContentRuleList SPI
https://bugs.webkit.org/show_bug.cgi?id=237784
Source/WebCore:

<rdar://72433048>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.

I hadn't implemented regex substitution yet.

  • contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::deserialize):
(WebCore::ContentExtensions::RedirectAction::applyToRequest):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::deserialize):
(WebCore::ContentExtensions::makeJSString):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::applyToURL const):

  • contentextensions/ContentExtensionActions.h:

(WebCore::ContentExtensions::add):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):

Source/WebKit:

<rdar://72433048>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.

  • UIProcess/API/APIContentRuleListStore.h:

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

4:00 PM Changeset in webkit [291199] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, ASan specific build fix
https://bugs.webkit.org/show_bug.cgi?id=237572

  • libpas/src/libpas/pas_utils.h:

(pas_zero_memory):

3:42 PM Changeset in webkit [291198] by Nikos Mouchtaris
  • 10 edits
    2 adds in trunk

[iOS] Fix ovserscroll-behavior for main document
https://bugs.webkit.org/show_bug.cgi?id=237696

Reviewed by Simon Fraser.

Source/WebCore:

Make getters for overscroll behavior public.

Test: fast/scrolling/ios/overscroll-behavior-on-body.html

  • page/scrolling/ScrollingTreeScrollingNode.h:

Source/WebKit:

Get value of over scroll behavior from root scrolling node to set whether root
UIScrollView should rubber band or not. Add new UIScrollView SPI.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _updateScrollViewForTransaction:]):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::rootNode const):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateScrollViewForOverscrollBehavior):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

LayoutTests:

Added test that does a scroll expecting a rubberband, sets overscroll-behavior:none for
the body, then does another scroll, expected that no rubberband occurs.

  • fast/scrolling/ios/overscroll-behavior-on-body-expected.txt: Added.
  • fast/scrolling/ios/overscroll-behavior-on-body.html: Added.
3:34 PM Changeset in webkit [291197] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=231266

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:30 PM Changeset in webkit [291196] by J Pascoe
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Unreviewed build fix after r291177
https://bugs.webkit.org/show_bug.cgi?id=237797
rdar://problem/90183881

Remove unused move that is breaking iOS build

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
3:25 PM Changeset in webkit [291195] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.5.10

Tag Safari-614.1.5.10.

2:55 PM Changeset in webkit [291194] by Adrian Perez de Castro
  • 6 edits in trunk

[GLib] Expose ArrayBuffer in the public API
https://bugs.webkit.org/show_bug.cgi?id=237088

Reviewed by Carlos Garcia Campos.

This adds a set of new functions to operate on JSCValue objects which refer to array
buffers in the JS side of the world. This allows sharing chunks of memory buffers
efficiently with native code, without needing to copy nor encode data back and forth.

Source/JavaScriptCore:

  • API/glib/JSCValue.cpp:

(jscArrayBufferDeallocate):
(jsc_value_new_array_buffer):
(jsc_value_is_array_buffer):
(jsc_value_array_buffer_get_data):
(jsc_value_array_buffer_get_length):

  • API/glib/JSCValue.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp: Added test for array buffers.

(testJSCArrayBuffer):
(main):

2:45 PM Changeset in webkit [291193] by Jonathan Bedard
  • 7 edits in trunk/Tools

[Merge-Queue] Add queue triggered by label addition
https://bugs.webkit.org/show_bug.cgi?id=237615
<rdar://problem/89983452>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json: Add Merge-Queue.
  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits): Remove action list, add merge-queue labels.
(GitHubEventHandlerNoEdits.handle_pull_request): Let parent class filter actions, treat
merge-queue label addition as a 'synchronize', but change event name to trigger different
scheduler family.

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

(MergeQueueFactory): Added.

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

(TestExpectedBuildSteps):

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

(loadBuilderConfig): AnyBranchSchedulers should only accept events which match their name.

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

(ConfigDotJSONTest): Match pull request scheduler name to pull request event.

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

2:30 PM Changeset in webkit [291192] by Elliott Williams
  • 4 edits in trunk/Source

[Xcode] "Nest Headers" script phases copy headers incorrectly on Catalyst
https://bugs.webkit.org/show_bug.cgi?id=237793

Reviewed by Alexey Proskuryakov.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:

Source/WTF:

SDK_VARIANT needs to be passed into the nested xcodebuild invocation that these script
phases run. Pass WK_USE_ALTERNATE_FRAMEWORKS_DIR=NO to prevent the default behavior where
Catalyst content is installed to /System/iOSSupport, as this causes headers to be copied to
WebKitBuild/Release/System/iOSSupport/...

This script phases only run under the legacy build system, so they do not affect production
builds. https://commits.webkit.org/247656@main provides more context on this hack (tl;dr
it's a temporary workaround for the XCBuild migration).

  • WTF.xcodeproj/project.pbxproj:
2:22 PM Changeset in webkit [291191] by Simon Fraser
  • 7 edits in trunk/Source/WebKit

Do buffer swapping on all RemoteLayerBackingStores before painting all of them
https://bugs.webkit.org/show_bug.cgi?id=237752

Reviewed by Tim Horton.

Buffer swapping requires sync IPC with the GPU Process, but painting can be asynchronous, so
do all the sync IPC before all the async IPC to avoid serializing everything.

During the recursive PlatformCALayerRemote::recursiveBuildTransaction() we now call
prepareToDisplay() which does the buffer swapping, and then we paint all the reachable
backing stores via RemoteLayerTreeContext::buildTransaction().

This is a 9% perf improvement on the "Images" MotionMark subtest.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::display): Deleted.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::paintReachableBackingStoreContents):
(WebKit::RemoteLayerBackingStoreCollection::didFlushLayers): The local variables can
be pointers, rather than using references to pointers.
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatile): Ditto

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::buildTransaction):

2:13 PM Changeset in webkit [291190] by pvollan@apple.com
  • 10 edits in trunk/Source

[macOS] Image decoders should be restricted for Mail
https://bugs.webkit.org/show_bug.cgi?id=237717
<rdar://89827733>

Reviewed by Geoffrey Garen.

Source/WebCore:

Only add restricted decoding flag when it is explicitly requested.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):
(WebCore::ImageDecoderCG::enableRestrictedDecoding):
(WebCore::ImageDecoderCG::restrictedDecodingEnabled):

  • platform/graphics/cg/ImageDecoderCG.h:

Source/WebKit:

We already restrict image decoders for Mail on iOS. We should do so on macOS too.

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:
1:55 PM Changeset in webkit [291189] by Kocsen Chung
  • 2 edits in branches/safari-614.1.5-branch/Source/WebGPU

Cherry-pick r291184. rdar://problem/90172920

WebGPU Catalyst builds fail when using the system content path
https://bugs.webkit.org/show_bug.cgi?id=237790

Reviewed by Saam Barati.

The value of ALTERNATE_ROOT_PATH should be set to the framework directory instead of
DYLIB_INSTALL_NAME_BASE since it will include the system content path as a prefix for
Catalyst builds.

This is similar to the construction of ALTERNATE_ROOT_PATH for the other frameworks.

  • Configurations/WebGPU.xcconfig:

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

1:55 PM Changeset in webkit [291188] by Kocsen Chung
  • 16 edits in branches/safari-614.1.5-branch/Source

Cherry-pick r291139. rdar://problem/90127039

Catalyst JavaScriptCore, WebCore, WebKitLegacy, and WebKit shouldn't be copied to the Secondary Path
https://bugs.webkit.org/show_bug.cgi?id=237748

Reviewed by Mark Lam.

Updated the configuration to exclude copying Catalyst build products to the secondary path.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Source/WebGPU:

  • Configurations/WebGPU.xcconfig:

Source/WebInspectorUI:

  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:

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

1:52 PM Changeset in webkit [291187] by Kocsen Chung
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.10

1:51 PM Changeset in webkit [291186] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Check for merge-queue labels
https://bugs.webkit.org/show_bug.cgi?id=237690
<rdar://problem/90064892>

Reviewed by Aakash Jain.

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

(GitHubMixin):
(GitHubMixin.get_pr_json): Add retry.
(GitHubMixin._is_pr_in_merge_queue): Check for merge-queue label.
(GitHubMixin.should_send_email_for_pr): get_pr_json now owns logging.
(ValidateChange.init): Add verifyMergeQueue flag.
(ValidateChange):
(ValidateChange.start): Add log to indicate PR has a merge-queue flag.
(ValidateChange.validate_github): Add retry when getting PR json, add merge queue check.

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

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

1:25 PM Changeset in webkit [291185] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org

Allow table of contents on posts in special cases
https://bugs.webkit.org/show_bug.cgi?id=237744

Reviewed by Devin Rousso.

  • wp-content/plugins/table-of-contents.php:
  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/single.php:
1:08 PM Changeset in webkit [291184] by msaboff@apple.com
  • 2 edits in trunk/Source/WebGPU

WebGPU Catalyst builds fail when using the system content path
https://bugs.webkit.org/show_bug.cgi?id=237790

Reviewed by Saam Barati.

The value of ALTERNATE_ROOT_PATH should be set to the framework directory instead of
DYLIB_INSTALL_NAME_BASE since it will include the system content path as a prefix for
Catalyst builds.

This is similar to the construction of ALTERNATE_ROOT_PATH for the other frameworks.

  • Configurations/WebGPU.xcconfig:
1:07 PM Changeset in webkit [291183] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Unreviewed gardening after r291169.

  • platform/ios/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
12:22 PM Changeset in webkit [291182] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

Delay responsiveness checks for the Network Process until it has finished initialization
https://bugs.webkit.org/show_bug.cgi?id=237782
<rdar://88226412>

Reviewed by Geoffrey Garen.

Delay responsiveness checks for the Network Process until it has finished initialization.
Network process initialization can be slow but we have evidence that it is not truly
hung since we see network process terminations right as the network process is initiating
the WebProcess connection later on.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
(WebKit::AuxiliaryProcessProxy::beginResponsivenessChecks):
(WebKit::AuxiliaryProcessProxy::startResponsivenessTimer):

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

(WebKit::GPUProcessProxy::didFinishLaunching):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

  • UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:

(WebKit::WebAuthnProcessProxy::didFinishLaunching):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

11:14 AM Changeset in webkit [291181] by Elliott Williams
  • 2 edits in trunk

Makefile.shared: Rename WORKSPACE to WORKSPACE_PATH and allow overrides
https://bugs.webkit.org/show_bug.cgi?id=237746

Reviewed by Alexey Proskuryakov.

This permits Make-based workflows which build out of a different workspace, e.g. a workspace
that includes WebKitAdditions.

WORKSPACE_PATH was chosen as a new name for parity with SCRIPTS_PATH and to avoid confusion
with USE_WORKSPACE.

Refactors Makefile.shared a bit to prevent SCHEME or WORKSPACE_PATH being set without
USE_WORKSPACE from breaking the build.

  • Makefile.shared:
11:08 AM Changeset in webkit [291180] by Wenson Hsieh
  • 21 edits in trunk

[iOS] Add support for -[UITextInput removeEmojiAlternatives] on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=237742
rdar://89647018

Reviewed by Kate Cheney.

Source/WebCore:

Add plumbing to AlternativeTextUIController and AlternativeTextContextController to replace an existing
DictationContext's NSTextAlternatives; passing in a nil NSTextAlternatives simply removes the DictationContext
and its existing text alternatives.

See WebKit ChangeLog for more details.

Tests: TextAlternatives.AddAndRemoveTextAlternativesWithMatch

TextAlternatives.AddAndRemoveTextAlternativesWithTextAndEmojis

  • dom/DocumentMarkerController.h:

Drive-by fix: adjust a comment to reflect the actual behavior in DocumentMarkerController, and also add a FIXME
to replace the bool return type with an enum type.

  • editing/cocoa/AlternativeTextContextController.h:
  • editing/cocoa/AlternativeTextContextController.mm:

(WebCore::AlternativeTextContextController::replaceAlternatives):

  • editing/cocoa/AlternativeTextUIController.h:
  • editing/cocoa/AlternativeTextUIController.mm:

(WebCore::AlternativeTextUIController::replaceAlternatives):

Source/WebKit:

Add support for -removeEmojiAlternatives, which removes all dictation alternatives at the current selection,
whose text alternative strings only contain emojis. See below for more details.

  • Platform/spi/ios/TextInputSPI.h:
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::replaceDictationAlternatives):

Add PageClient plumbing to the new AlternativeTextUIController methods in WebCore to replace an existing
dictation context's text alternatives.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::dictationAlternativesAtSelection):

We expand the selection range by one character here since DocumentMarkerController::markersInRange() does not
include document markers that end exactly at the given range.

(WebKit::WebPageProxy::clearDictationAlternatives):

Add two helper methods on WebPageProxy: one to query all dictation alternative identifiers that intersect with
the current selection range, and another to remove all dictation alternative document markers whose
DictationContext matches an identifier in a given list of identifiers.

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

(-[WKContentView removeEmojiAlternatives]):

Implement the new SPI method with a two-step process:

  1. Request the list of dictation context IDs at the selection; for each ID, we either (a) replace the text

alternatives for that context ID with a new NSTextAlternatives object that doesn't have any of the emoji-
only alternatives that appear in the original NSTextAlternatives, or (b) remove the NSTextAlternatives and
dictation context ID mapping entirely, if all the alternatives only contain emojis.

  1. For all the text alternatives that were removed in step 1 (due to only containing emojis), clear out all

document markers corresponding to those text alternatives in the document.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::dictationAlternativesAtSelection):
(WebKit::WebPage::clearDictationAlternatives):

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

Tools:

Adjust an API test and augment an existing test to exercise -removeEmojiAlternatives.

  • TestWebKitAPI/Tests/ios/TextAlternatives.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
11:05 AM Changeset in webkit [291179] by Russell Epstein
  • 1 copy in tags/Safari-613.2.2

Tag Safari-613.2.2.

10:42 AM Changeset in webkit [291178] by Simon Fraser
  • 7 edits in trunk/Source/WebKit

Some minor refactoring in RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=237749

Reviewed by Tim Horton.

Simplify RemoteLayerBackingStore a little, primarily to push the setNeedsDisplay() calls
when swapToValidFrontBuffer() returns WebCore::SetNonVolatileResult::Empty out to the
callers, so it's clearer when m_dirtyRegion gets mutated.

In order to pass SetNonVolatileResult around more, change setBufferVolatility(bool) into
setBufferVolatile() and setFrontBufferNonVolatile(), which makes it clear that we only ever
set the front buffer to non-volatile.

Also move the call to clearBackendHandle() into
RemoteLayerWithRemoteRenderingBackingStoreCollection, since it's about GPU process.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::swapBuffers):
(WebKit::RemoteLayerBackingStore::setContents):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::paintContents):
(WebKit::RemoteLayerBackingStore::setBufferVolatile):
(WebKit::RemoteLayerBackingStore::setFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::willMakeBufferVolatile): Deleted.
(WebKit::RemoteLayerBackingStore::didMakeFrontBufferNonVolatile): Deleted.
(WebKit::RemoteLayerBackingStore::setBufferVolatility): Deleted.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStoreCollection::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::swapToValidFrontBuffer):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectBackingStoreBufferIdentifiersToMarkVolatile):

10:25 AM Changeset in webkit [291177] by J Pascoe
  • 5 edits in trunk/Source/WebKit

[WebAuthn] Cancel running operations in ASA on navigation
https://bugs.webkit.org/show_bug.cgi?id=237452
rdar://problem/89781990

Reviewed by Brent Fulgham.

Pre-ASA WebAuthn calls cancel requests on navigation via calling authenticatorManager.cancelRequest
in WebPageProxy. In WebAuthn calls that go through ASA, the authenticatorManager lives in the ASA
process, so calls won't be cancelled on navigation.

This patch attempts to cancel ongoing operations whenever a WebAuthenticatorCoordinatorProxy that
uses ASA is destroyed, effectively cancelling requests on reload or navigation.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::~WebAuthenticatorCoordinatorProxy):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
9:49 AM Changeset in webkit [291176] by J Pascoe
  • 28 edits
    3 copies in trunk

[WebAuthn] Support authenticatorSelection.residentKey ResidentKeyRequirement
https://bugs.webkit.org/show_bug.cgi?id=237567
rdar://89788378

Reviewed by Brent Fulgham and Chris Dumez.

Source/WebCore:

In Web Authentication level one, relying parties can specify authenticatorSelection.residentKeyRequired,
to signify they require a client-side discoverable credential. However, if the authenticator does not
support client-side discoverable credentials, the rp has no way to clarify they want a client-side
discoverable credential only if available.

This patch implements authenticatorSelection.residentKeyRequired introduced in level 2, which has three
values 'Preferred', 'Required', and 'Discouraged'. This allows RPs to create a client-side discoverable
credential if possible.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:

(WebCore::PublicKeyCredentialCreationOptions::AuthenticatorSelectionCriteria::encode const):
(WebCore::PublicKeyCredentialCreationOptions::AuthenticatorSelectionCriteria::decode):

  • Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
  • Modules/webauthn/ResidentKeyRequirement.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
  • Modules/webauthn/ResidentKeyRequirement.idl: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
  • Modules/webauthn/fido/AuthenticatorSupportedOptions.cpp:

(fido::AuthenticatorSupportedOptions::setResidentKeyAvailability):
(fido::convertToCBOR):
(fido::AuthenticatorSupportedOptions::setSupportsResidentKey): Deleted.

  • Modules/webauthn/fido/AuthenticatorSupportedOptions.h:
  • Modules/webauthn/fido/DeviceRequestConverter.cpp:

(fido::encodeMakeCredenitalRequestAsCBOR):

  • Modules/webauthn/fido/DeviceRequestConverter.h:
  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::readCTAPGetInfoResponse):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

In Web Authentication level one, relying parties can specify authenticatorSelection.residentKeyRequired,
to signify they require a client-side discoverable credential. However, if the authenticator does not
support client-side discoverable credentials, the rp has no way to clarify they want a client-side
discoverable credential only if available.

This patch implements authenticatorSelection.residentKeyRequired introduced in level 2, which has three
values 'Preferred', 'Required', and 'Discouraged'. This allows RPs to create a client-side discoverable
credential if possible.

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

(-[_WKAuthenticatorSelectionCriteria init]):

  • UIProcess/API/Cocoa/_WKResidentKeyRequirement.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(residentKey):
(authenticatorSelectionCriteria):
(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataJSON:options:userVerificationAvailability:]):
(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:]):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::makeCredential):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Add API tests for authenticatorSelection.residentKey.

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):

LayoutTests:

Add layout tests using residentKey field.

  • http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.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:39 AM Changeset in webkit [291175] by Ben Nham
  • 2 edits in trunk/Source/WebCore

Fix WebContent jetsam that occurs when selecting text in a large e-mail
https://bugs.webkit.org/show_bug.cgi?id=237698

Reviewed by Simon Fraser.

When selecting text in a large e-mail in MobileMail, we often jetsam. This is due to this
chain of events:

  1. If the selection extends enough to start causing the content to pan (which is easy to do when zoomed in on the mail content), then AutoscrollController ends up changing the scroll position of the FrameView to perform the pan.
  2. FrameView::requestScrollPositionUpdate tries to prepopulate tiles around the endpoint of the pan by calling TileController::prepopulateRect with visibleContentRect's size.

The problem is that MobileMail resizes their web view (and therefore FrameView) to match
the size of the content. This causes FrameView's visibleContentRect to be very large (>100k
pts high for some emails). As a result, we end up prepopulating every single tile in the
email, causing a huge spike in IOSurface memory usage that leads to a jetsam.

To fix this, we make FrameView::requestScrollPositionUpdate act more like
RenderLayerCompositor::visibleRectForLayerFlushing. In particular, on iOS, we now use
exposedContentRect instead of visibleContentRect. Since exposedContentRect is derived from
contentOffset/contentSize of the scroll view in the UIProcess, it's more correct and is much
smaller than visibleContentRect in this case.

  • page/FrameView.cpp:

(WebCore::FrameView::requestScrollPositionUpdate):

9:38 AM Changeset in webkit [291174] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] DrawingAreaWC::sendUpdateAC should keep a WeakPtr of this for the reply handler
https://bugs.webkit.org/show_bug.cgi?id=237757

Reviewed by Don Olmstead.

WinCairo Release was crashing by visiting some random web sites
for several minutes. The reply handler in
DrawingAreaWC::sendUpdateAC should check that this object is
still alive with weakThis.

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::sendUpdateAC): Capture weakThis for the
reply handler and check it.

9:31 AM Changeset in webkit [291173] by don.olmstead@sony.com
  • 2 edits
    2 copies
    6 adds
    3 deletes in trunk/LayoutTests

Platforms implementing WebSocketTask pass hybi/close-and-server-script-exception-expected.txt
https://bugs.webkit.org/show_bug.cgi?id=237727

Reviewed by Alex Christensen.

The root expected.txt had a line with FAIL but all platforms that implement WebSocketTask
PASS the test fully. Make this the default and remove redundant expectations and add a
FAIL for Apple WebKitLegacy ports which don't implement WebSocketTask.

  • http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt:
  • platform/glib/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
  • platform/ios-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
  • platform/mac-wk1/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Copied from LayoutTests/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt.
  • platform/mac-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
  • platform/win/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Copied from LayoutTests/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt.
9:16 AM Changeset in webkit [291172] by Brandon
  • 2 edits in trunk/Source/WebCore

Verify values before adding to hash map
https://bugs.webkit.org/show_bug.cgi?id=237781

Reviewed by Simon Fraser.

Verify values before adding to hash map to avoid hash map corruption.

Original patch by John Cunningham

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::updateSnapOffsetsForScrollableArea):

9:11 AM Changeset in webkit [291171] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] shape-rendering should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237767

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

9:08 AM Changeset in webkit [291170] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] vector-effect should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237766

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

8:44 AM Changeset in webkit [291169] by Alan Bujtas
  • 8 edits in trunk

[IFC][Integration] Add support for inline table
https://bugs.webkit.org/show_bug.cgi?id=237498

Reviewed by Antti Koivisto.

Source/WebCore:

This patch enables inline tables for IFC
e.g.
<div>inline content with <table style="display: inline-table">table</table></div>

We treat the inline table as any other atomic inline level box with synthetic baseline.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateInlineTableDimensions):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

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

(WebCore::RenderBlockFlow::layoutModernLines):

LayoutTests:

  • platform/mac/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
8:05 AM Changeset in webkit [291168] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required sys call to sandbox
https://bugs.webkit.org/show_bug.cgi?id=237739

Reviewed by Chris Dumez.

Add a rarely used, but required syscall, to the WebContent process sandbox on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
7:33 AM Changeset in webkit [291167] by youenn@apple.com
  • 23 edits
    2 deletes in trunk

Do capture video frame downsampling in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=237316
<rdar://problem/89959777>

Reviewed by Eric Carlson.

Source/WebCore:

To prevent some flakinesses, we now compute the video frame size from MediaSample given to rvfc metadata.
We stop making requestToEnd as virtual by introducing a virtual endProducingData method.
RealtimeMediaSource::end calls the new endProducingData virtual method, which is stop by default.
RealtimeVideoSource::endProducingData is implemented by calling requestToEnd on the underlying source.
This makes sure that ending a source will not end a related cloned source.

Covered by existing tests.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
  • platform/mediastream/RealtimeMediaSource.cpp:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeVideoSource.cpp:
  • platform/mediastream/RealtimeVideoSource.h:

Source/WebKit:

Instead of cloning within WebProcess, we know clone in GPUProcess for camera tracks.
This allows to keep using IOSurfaces when several tracks are using the same device with different resolutions.
Since display tracks are already cloned remotely, we can merge RemoteRealtimeDisplaySource and RemoteRealtimeVideoSource.

We no longer need to stop the source in ~SourceProxy given we are removing ourselves from observing the source.
We rename UserMediaCaptureManagerProxy end to remove and requestToEnd to endProducingData.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteRealtimeDisplaySource.cpp: Removed.
  • WebProcess/cocoa/RemoteRealtimeDisplaySource.h: Removed.
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:
  • WebProcess/cocoa/UserMediaCaptureManager.h:

LayoutTests:

  • fast/mediastream/getDisplayMedia-size.html:

Remove potential race condition by restarting playing the stream to compute the size.

6:30 AM Changeset in webkit [291166] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] text-anchor should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237765

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:27 AM Changeset in webkit [291165] by Mikhail R. Gadelha
  • 3 edits in trunk/Source

Debug build failure after r246172: ASSERT_UNDER_CONSTEXPR_CONTEXT should work in constexpr contexts
https://bugs.webkit.org/show_bug.cgi?id=236728

Reviewed by Michael Catanzaro.

ASSERT_UNDER_CONSTEXPR_CONTEXT is calling a non-constexpr function (WTFReportAssertionFailure)
when it fails, so it cannot be used for an assert not reached.

This patch adds a new RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT() macro
that calls CRASH_UNDER_CONSTEXPR_CONTEXT() instead of WTFReportAssertionFailure.

No functional change.

  • wasm/WasmCompilationMode.h:

(JSC::Wasm::isOSREntry):
(JSC::Wasm::isAnyBBQ):
(JSC::Wasm::isAnyOMG):

6:27 AM Changeset in webkit [291164] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] stroke-linejoin should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237764

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:23 AM Changeset in webkit [291163] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] stroke-linecap should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237763

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:19 AM Changeset in webkit [291162] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebCore

Rename invalidation methods in SVGElement
https://bugs.webkit.org/show_bug.cgi?id=237716

Patch by Rob Buis <rbuis@igalia.com> on 2022-03-11
Reviewed by Martin Robinson.

Rename invalidation methods in SVGElement to be more specific. This in fact
uses the naming in the underlying ElementData.

  • svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::svgAttributeChanged):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::commitPropertyChange):

  • svg/SVGElement.h:
  • svg/SVGElementInlines.h:

(WebCore::SVGElement::setAnimatedSVGAttributesAreDirty):
(WebCore::SVGElement::setPresentationalHintStyleIsDirty):
(WebCore::SVGElement::invalidateSVGAttributes): Deleted.
(WebCore::SVGElement::invalidateSVGPresentationalHintStyle): Deleted.

  • svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::svgAttributeChanged):

  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::svgAttributeChanged):

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::svgAttributeChanged):

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::svgAttributeChanged):

  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::svgAttributeChanged):

  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::svgAttributeChanged):

  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::svgAttributeChanged):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::svgAttributeChanged):

  • svg/properties/SVGAttributeAnimator.cpp:

(WebCore::SVGAttributeAnimator::invalidateStyle):

6:17 AM Changeset in webkit [291161] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] mask-repeat should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237771

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setMaskRepeatX):
(WebCore::RenderStyle::setMaskRepeatY):

6:08 AM Changeset in webkit [291160] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] mask-mode should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237770

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:05 AM Changeset in webkit [291159] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] mask-composite should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237769

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

Refactor FillLayerFillBoxPropertyWrapper to a templatized DiscreteFillLayerPropertyWrapper
which allows us to support other enum types like CompositeOperator.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:01 AM Changeset in webkit [291158] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] mask-type should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237768

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

5:48 AM Changeset in webkit [291157] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] text-rendering should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237777

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

5:45 AM Changeset in webkit [291156] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

[web-animations] refactor discrete FontCascadeDescription to use dedicated animation wrappers
https://bugs.webkit.org/show_bug.cgi?id=237776

Reviewed by Antti Koivisto.

We added getters and setters on RenderStyle for properties exposed on FontCascadeDescription
solely for the purpose of animation support. Instead, we add a couple of dedicated animation
wrapper that removes the methods from RenderStyle and do all the work in
CSSPropertyAnimation.cpp.

The base class DiscreteFontDescriptionWrapper and is used for CSS properties backed by several
FontCascadeDescription methods.

The subclass DiscreteFontDescriptionTypedWrapper is used for CSS properties backed by a single
FontCascadeDescrption method dealing with a simple type.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::DiscreteFontDescriptionWrapper::DiscreteFontDescriptionWrapper):
(WebCore::DiscreteFontDescriptionWrapper::propertiesInFontDescriptionAreEqual const):
(WebCore::DiscreteFontDescriptionWrapper::setPropertiesInFontDescription const):
(WebCore::DiscreteFontDescriptionTypedWrapper::DiscreteFontDescriptionTypedWrapper):
(WebCore::DiscreteFontDescriptionTypedWrapper::value const):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontKerning): Deleted.
(WebCore::RenderStyle::setFontFeatureSettings): Deleted.
(WebCore::RenderStyle::setFontFamilies): Deleted.
(WebCore::RenderStyle::setFontSynthesis): Deleted.
(WebCore::RenderStyle::setFontVariantAlternates): Deleted.
(WebCore::RenderStyle::setFontVariantPosition): Deleted.
(WebCore::RenderStyle::setFontVariantCaps): Deleted.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontPalette const):
(WebCore::RenderStyle::fontKerning const): Deleted.
(WebCore::RenderStyle::fontFeatureSettings const): Deleted.
(WebCore::RenderStyle::fontFamilies const): Deleted.
(WebCore::RenderStyle::fontSynthesis const): Deleted.
(WebCore::RenderStyle::fontVariantAlternates const): Deleted.
(WebCore::RenderStyle::fontVariantPosition const): Deleted.
(WebCore::RenderStyle::fontVariantCaps const): Deleted.

4:59 AM Changeset in webkit [291155] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Allow AOM AV1 decoder and check for hardware AV1 decoders as well
https://bugs.webkit.org/show_bug.cgi?id=237713

Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-11
Reviewed by Xabier Rodriguez-Calvar.

The AOM AV1 decoder performs better nowadays. Also it seems hardware-accelerated decoders
are appearing, so we should check for this as well.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initializeDecoders):

3:51 AM Changeset in webkit [291154] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Only apply inline-size containment when it is allowed
https://bugs.webkit.org/show_bug.cgi?id=237761

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:

Source/WebCore:

"Giving an element inline-size containment has no effect if any of the following are true:

if the element does not generate a principal box (as is the case with display: contents or display: none)
if its inner display type is table
if its principal box is an internal table box
if its principal box is an internal ruby box or a non-atomic inline-level box"

https://drafts.csswg.org/css-contain-3/#containment-inline-size

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

Check for valid inline-size containment.

  • rendering/RenderObject.cpp:

(WebCore::shouldApplyInlineSizeContainment):

  • rendering/RenderObject.h:
  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::selectContainer const):

Cleanups.

(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

Check for valid size containment for the type, evaluate to unknown if it doesn't exist.
Also check layout containment.

3:17 AM Changeset in webkit [291153] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed isInGPUProcess() fix after 248209@main
https://bugs.webkit.org/show_bug.cgi?id=237762

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-11

  • platform/RuntimeApplicationChecks.h:

(WebCore::isInGPUProcess): Define isInGPUProcess() in all cases but
return false if ENABLE_GPU_PROCESS is disabled.

2:36 AM Changeset in webkit [291152] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] Add a unit tests to check the remote inspector HTTP server
https://bugs.webkit.org/show_bug.cgi?id=237708

Reviewed by Michael Catanzaro.

Source/WebKit:

Ensure we close the socket if it's still open when the remote inspector client is destroyed.

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::~RemoteInspectorClient):

Source/WTF:

  • wtf/glib/SocketConnection.h: Export close().

Tools:

Rework the inspector server test to also allow to launch the HTTP server and check it correctly serves the
target list page.

  • TestWebKitAPI/Tests/WebKitGtk/InspectorTestServer.cpp:

(main):

  • TestWebKitAPI/Tests/WebKitGtk/TestInspectorServer.cpp:

(InspectorHTTPServerTest::setup):
(InspectorHTTPServerTest::teardown):
(testInspectorServerPageList):
(testInspectorHTTPServerPageList):
(beforeAll):
(afterAll):
(stopTestServer): Deleted.
(sigAbortHandler): Deleted.
(connectToInspectorServer): Deleted.
(waitUntilInspectorServerIsReady): Deleted.
(startTestServer): Deleted.

1:27 AM Changeset in webkit [291151] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[web-animations] refactor discrete SVG properties to use a dedicated animation wrapper
https://bugs.webkit.org/show_bug.cgi?id=237760

Reviewed by Antti Koivisto.

We added getters and setters on RenderStyle for properties exposed on SVGRenderStyle
solely for the purpose of animation support. Instead, we add a dedicated animation
wrapper that removes the methods from RenderStyle and do all the work in
CSSPropertyAnimation.cpp. This will be beneficial for future SVG properties
with discrete animation support that are yet to be added.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::clipRule const): Deleted.
(WebCore::RenderStyle::setClipRule): Deleted.
(WebCore::RenderStyle::colorInterpolation const): Deleted.
(WebCore::RenderStyle::setColorInterpolation): Deleted.
(WebCore::RenderStyle::colorInterpolationFilters const): Deleted.
(WebCore::RenderStyle::setColorInterpolationFilters): Deleted.
(WebCore::RenderStyle::dominantBaseline const): Deleted.
(WebCore::RenderStyle::setDominantBaseline): Deleted.
(WebCore::RenderStyle::fillRule const): Deleted.
(WebCore::RenderStyle::setFillRule): Deleted.

1:20 AM Changeset in webkit [291150] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GLIB] Debian Stable & Ubuntu LTS build is failing after r291093
https://bugs.webkit.org/show_bug.cgi?id=237756

Reviewed by Carlos Garcia Campos.

Use soup_websocket_connection_send_message when SOUP < 2.67.3.

  • UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp:
12:40 AM Changeset in webkit [291149] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Disable WebGL and DOM GPU process when some dependencies are unavailable
https://bugs.webkit.org/show_bug.cgi?id=237700
<rdar://problem/88735051>

Reviewed by Eric Carlson.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
(WebKit::defaultUseGPUProcessForWebGLEnabled):

Mar 10, 2022:

11:37 PM Changeset in webkit [291148] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] mask-origin should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237733

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

11:26 PM Changeset in webkit [291147] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] font-variant-numeric should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237669

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

We can also add support for animating the font-variant shorthand since
font-variant-numeric is the last of its longhands that was lacking
animation support.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

10:43 PM Changeset in webkit [291146] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ iOS ] editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=237551

Patch by Frédéric Wang <fwang@igalia.com> on 2022-03-10
Reviewed by Ryosuke Niwa.

  • editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash.html: Ensure the

test does not complete before the page load.

10:29 PM WebKit Team edited by Diego Pino Garcia
Update location to contributors.json (diff)
9:39 PM Changeset in webkit [291145] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Abandoned memory in NetworkStorageManager::m_temporaryBlobPathsByConnection
https://bugs.webkit.org/show_bug.cgi?id=237734

Reviewed by Chris Dumez.

Remove items from m_temporaryBlobPathsByConnection when connection is closed.

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::stopReceivingMessageFromConnection):

9:03 PM Changeset in webkit [291144] by Peng Liu
  • 15 edits
    3 moves in trunk

EnterPictureInPictureEvent event was renamed to PictureInPictureEvent in spec
https://bugs.webkit.org/show_bug.cgi?id=221083

Reviewed by Youenn Fablet.

Source/WebCore:

Some updates based on the spec changes:

  • Rename EnterPictureInPictureEvent.idl to PictureInPictureEvent.idl.
  • leavepictureinpicture event should be fired with the Picture-in-Picture window.

(https://github.com/w3c/picture-in-picture/issues/188)

Covered by media/picture-in-picture/picture-in-picture-api-events.html.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:

(WebCore::HTMLVideoElementPictureInPicture::didEnterPictureInPicture):
(WebCore::HTMLVideoElementPictureInPicture::didExitPictureInPicture):

  • Modules/pictureinpicture/PictureInPictureEvent.cpp: Renamed from Source/WebCore/Modules/pictureinpicture/EnterPictureInPictureEvent.cpp.

(WebCore::PictureInPictureEvent::create):
(WebCore::PictureInPictureEvent::PictureInPictureEvent):

  • Modules/pictureinpicture/PictureInPictureEvent.h: Renamed from Source/WebCore/Modules/pictureinpicture/EnterPictureInPictureEvent.h.
  • Modules/pictureinpicture/PictureInPictureEvent.idl: Renamed from Source/WebCore/Modules/pictureinpicture/EnterPictureInPictureEvent.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.in:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

LayoutTests:

  • media/picture-in-picture/picture-in-picture-api-events-expected.txt:
  • media/picture-in-picture/picture-in-picture-api-events.html:

Check the picture-in-picture window in the "leavepictureinpicture" event handler.

7:22 PM Changeset in webkit [291143] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fix after 248294@main
https://bugs.webkit.org/show_bug.cgi?id=237751

  • layout/integration/LayoutIntegrationLineLayout.cpp: Add missing

include.

6:35 PM Changeset in webkit [291142] by Elliott Williams
  • 8 edits in trunk/Source/JavaScriptCore

[XCBuild] Emit a discovered dependency file from offlineasm
https://bugs.webkit.org/show_bug.cgi?id=237329

Reviewed by Alexey Proskuryakov.

Xcode needs to know what files offlineasm uses and produces in order to schedule it
correctly in incremental builds. Rather than use generated xcfilelists like WebKit does
elsewhere in the project, emit a depfile from offlineasm based on the parse tree's source
files.

Discovered dependency files ("depfiles") are Makefile-formatted files which list the inputs
used to produce an output. They are emitting during the build to a temporary directory, and
ensure that subsequent incremental builds will re-run offlineasm when any of the included
sources change. This is the same mechanism clang uses to track header dependencies.

Unfortunately, the legacy build system will refuse to execute a script phase or rule that
emits a depfile. To work around this, convert the offlineasm pipeline to be based on build
rules, to be used by XCBuild only. The idea is that LowLevelInterpreter.asm is listed as a
source build file in JSCLLIntSettingsExtractor, JSCLLIntOffsetsExtractor, and
JavaScriptCore. Each target uses a build rule to generate its respective header from
LowLevelInterpreter.asm. Xcode schedules these rule executions before any clang tasks.

The legacy build system avoids executing the rules via EXCLUDED_SOURCE_FILE_NAMES, and
instead uses the existing build phases, which have "(Legacy)" in their names and are now
no-ops under XCBuild.

Aside from working around the legacy build system's limitations, using build rules is
probably a superior way to express what we're doing, as it gives Xcode the opportunity to
compile other objects in parallel, and could be easily extended to compile multiple discrete
asm files should the need arise.

  • Configurations/ToolExecutable.xcconfig: Build rules are XCBuild-only.
  • JavaScriptCore.xcodeproj/project.pbxproj: Add build rules, rename legacy scripts.
  • offlineasm/asm.rb: Add --depfile flag.
  • offlineasm/generate_offset_extractor.rb: Add --depfile flag.
  • offlineasm/generate_settings_extractor.rb: Add --depfile flag.
6:04 PM Changeset in webkit [291141] by Chris Dumez
  • 6 edits
    3 adds in trunk

Main document is leaking on haaretz.co.il due to lazy image loading
https://bugs.webkit.org/show_bug.cgi?id=237660
<rdar://problem/90035071>

Reviewed by Geoffrey Garen.

Source/WebCore:

When an HTML image uses loading=lazy, ImageLoader::updateFromElement() may get
called twice. If the image is outside the viewport, the first time ImageLoader::updateFromElement()
is called, we'll request a CachedImage but we'll set m_lazyImageLoadState to LazyImageLoadState::Deferred
and not ask the CachedImage to load. Then, later on, if the HTML image approaches the viewport,
ImageLoader::loadDeferredImage() will get called. It will set m_lazyImageLoadState to LazyImageLoadState::LoadImmediately
and call updateFromElement() again. This time however, updateFromElement() will actually ask the CachedImage
to load.

The issue was that the first time ImageLoader::updateFromElement(), we would set m_lazyImageLoadState to Deferred
and not ask the CachedImage to load but still set m_hasPendingLoadEvent to true. This is problematic if the CachedImage
is not already loaded since no was was started and thus no load event is coming (and no load event may ever come if the
image never approaches the viewport). When updatedHasPendingEvent() is called, it will protect the HTMLImageElement if
m_hasPendingLoadEvent is true, to make sure the image element stays alive long enough for us to dispatch the load event.
With lazy loading, this meant that we would protect the HTMLImageElement right away and undefinitely since no load event
may ever come. This meant that when navigating away from a page with images that are lazily loaded (and not loaded yet),
we would leak the HTMLImageElements (and ImageLoaders), which in turn would keep the Document alive too.

To address the issue, we now make sure that m_hasPendingLoadEvent is no longer set to true when updateFromElement()
is called but the CachedImage is not already loaded and not loading (lazy loading case). When updateFromElement() gets
called the second time (when the lazily loaded image approaches the viewport), we make sure that the m_hasPendingLoadEvent
flag gets set to true then.

Test: fast/dom/lazy-image-loading-document-leak.html

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::ImageLoader):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::didUpdateCachedImage):
(WebCore::ImageLoader::didStartLoading):

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

(WebCore::CachedImage::load):

  • loader/cache/CachedImageClient.h:

(WebCore::CachedImageClient::didStartLoading):

LayoutTests:

Add layout test coverage.

  • fast/dom/lazy-image-loading-document-leak-expected.txt: Added.
  • fast/dom/lazy-image-loading-document-leak.html: Added.
  • fast/dom/resources/lazy-image-loading-document-leak-popup.html: Added.
5:47 PM Changeset in webkit [291140] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Fix naming in NetworkProcessProxy::registerRemoteWorkerClientProcess()
https://bugs.webkit.org/show_bug.cgi?id=237737

Reviewed by Geoffrey Garen.

Fix naming in NetworkProcessProxy::registerRemoteWorkerClientProcess() to store referring to
shared workers and add logging.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::registerRemoteWorkerClientProcess):
(WebKit::NetworkProcessProxy::unregisterRemoteWorkerClientProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
5:20 PM Changeset in webkit [291139] by msaboff@apple.com
  • 16 edits in trunk/Source

Catalyst JavaScriptCore, WebCore, WebKitLegacy, and WebKit shouldn't be copied to the Secondary Path
https://bugs.webkit.org/show_bug.cgi?id=237748

Reviewed by Mark Lam.

Updated the configuration to exclude copying Catalyst build products to the secondary path.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Source/WebGPU:

  • Configurations/WebGPU.xcconfig:

Source/WebInspectorUI:

  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
4:38 PM Changeset in webkit [291138] by Jonathan Bedard
  • 8 edits
    1 move in trunk

[git-webkit] Support multiple metadata locations
https://bugs.webkit.org/show_bug.cgi?id=237395
<rdar://problem/89715863>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git): Rename PROJECT_CONFIG_PATH to GIT_CONFIG_EXTENSION.
(Git.config): Use dynamic context.metadata instead of constant.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.init): Use self.metadata instead of constant.
(Scm.metadata): Support multiple locations for this directory.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Use dynamic repository.metadata instead of constant.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
  • metadata/git_config_extension: Renamed from metadata/project_config.
  • metadata/project_config: Renamed to metadata/git_config_extension.

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

4:28 PM Changeset in webkit [291137] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[macOS] WebContent processes crash with XPC_EXIT_REASON_SIGTERM_TIMEOUT when logging out
https://bugs.webkit.org/show_bug.cgi?id=237398
<rdar://88940229>

Reviewed by Alexey Proskuryakov.

Because we don't use RunningBoard on macOS, we leak an OS transaction to control the lifetime of our XPC
services ourselves. However, one of the side effects of leaking this transaction is that the default SIGTERM
handler doesn't cleanly exit our XPC services when logging out or rebooting. This led to crashes with
XPC_EXIT_REASON_SIGTERM_TIMEOUT as termination reason (rdar://88940229).

To address the issue, we now set our own SIGTERM handler that calls _exit(0) to exit cleanly. In the future,
we should likely adopt RunningBoard on macOS and control our lifetime via process assertions instead of
leaking this OS transaction.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

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

(WebKit::setOSTransaction):
(WebKit::XPCServiceExit):
(WebKit::osTransaction): Deleted.

4:15 PM Changeset in webkit [291136] by Wenson Hsieh
  • 11 edits
    1 add in trunk

[iOS] Add support for -[UITextInput addTextAlternatives:] on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=237691
rdar://89647018

Reviewed by Aditya Keerthi.

Source/WebKit:

Work towards refactoring support for dictation alternatives on iOS; this patch adds support for an optional,
private UITextInput protocol method on WKContentView, which clients can use to directly insert
NSTextAlternatives for a given string of matching text (i.e., if the given string matches text at or before the
current selection range).

Tests: TextAlternatives.AddTextAlternativesWithMatch

TextAlternatives.AddTextAlternativesWithSelectedMatch
TextAlternatives.AddTextAlternativesWithoutMatch

  • Scripts/webkit/messages.py:

(headers_for_type):

Add support for sending WebCore::DictationContext as an IPC message argument.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::addDictationAlternative):

Register the dictation alternative (NSTextAlternative) on the page client, and send a message to the web process
to try and insert document markers corresponding to this dictation alternative. If, for whatever reason, we fail
to map dictation alternatives to an editable DOM range, make sure we automatically unregister this text
alternative as well.

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

(-[WKContentView addTextAlternatives:]):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::addDictationAlternative):

Given a string to match and a dictation alternative identifier context, try to search for the matching string
before (or in) the selection; if found, install the dictation alternatives in the match range, as a document
marker.

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

Tools:

Add several basic API tests to exercise the new API; in particular, exercise both cases where the text
alternative's primary text matches before the selection, where it does not match, and where it matches inside
the selection.

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

(-[TestWKWebView dictationAlternativesMarkerCount:]):
(TestWebKitAPI::createWebViewForTestingTextAlternatives):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
3:45 PM Changeset in webkit [291135] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ iOS Mac ] imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker-matchAll.tentative.https.html is a flaky text failure on all queues
https://bugs.webkit.org/show_bug.cgi?id=237680

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
2:51 PM Changeset in webkit [291134] by Alan Bujtas
  • 40 edits in trunk

[IFC][Integration] Enable RenderListItem and RenderListMarker for IFC
https://bugs.webkit.org/show_bug.cgi?id=237497

Reviewed by Antti Koivisto.

Source/WebCore:

This enables horizontal, RTL, "non-same line nested" list items for IFC.

List markers behave as regular inline level boxes except when it comes to vertical align,
when non-image based list markers are aligned as text. Also outside list markers (list-style-position: outside)
have extra (negative) horizontal margin to place them outside of the containing block's border box.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::isWrappableRun):

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::InlineFormattingGeometry::inlineLevelBoxAffectsLineBox const):

  • layout/formattingContexts/inline/InlineLevelBox.h:

(WebCore::Layout::InlineLevelBox::isListMarker const):

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::toLineRunType):
(WebCore::Layout::Line::Run::Run):

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::isBox const):
(WebCore::Layout::Line::Run::isListMarker const):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::setBaselineAndLayoutBounds const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForChild):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationCoverage.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateListItemDimensions):
(WebCore::LayoutIntegration::LineLayout::updateListMarkerDimensions):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::layout):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isListMarker const):
(WebCore::Layout::Box::isInsideListMarker const):
(WebCore::Layout::Box::isOutsideListMarker const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

  • rendering/RenderListMarker.h:

LayoutTests:

  • fast/replaced/ul-li-word-break-break-word-expected.html: progression. We do not break between the list marker and the content anymore.
  • platform/mac/css1/box_properties/margin_right-expected.txt:
  • platform/mac/css1/box_properties/padding_right-expected.txt: progressions. Align list marker with the content (like Firefox does).
  • platform/mac/css2.1/t0505-c16-descendant-01-e-expected.txt: inline box height progression (not visible)
  • platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt: usual 1px diff.
  • platform/mac/fast/inline/emptyInlinesWithinLists-expected.txt: progression
  • platform/mac/fast/lists/002-expected.txt: same as margin_right/padding_right.
  • platform/mac/fast/lists/003-expected.txt:
  • platform/mac/fast/lists/li-br-expected.txt: same as ul-li-word-break-break-word
  • platform/mac/fast/selectors/166-expected.txt: usual 1px diff.
2:17 PM Changeset in webkit [291133] by Elliott Williams
  • 18 edits in trunk

[XCBuild] Fix GeneratedSources dependency validation errors
https://bugs.webkit.org/show_bug.cgi?id=237490

Reviewed by Alexey Proskuryakov.
.:

Fixes miscellanous targets which were not specifying their task outputs correctly.

For easier dependency validation testing, Make builds now recognize a VALIDATE_DEPENDENCIES
setting. Building with VALIDATE_DEPENDENCIES=YES or VALIDATE_DEPENDENCIES=YES_ERROR passes
the setting to xcodebuild and sets a magic xattr on the build directory so that product
files in it are validated.

  • Makefile.shared:

Source/JavaScriptCore:

Declare JSCBuiltins.cpp in DerivedSources.make. It's created by generate-js-builtins.py but
was never declared as an output.

  • DerivedSources-output.xcfilelist: Autogenerated changes.
  • DerivedSources.make:

Source/ThirdParty:

In gtest's static library target, replace the folder reference containing headers with file
references for each copied header. This allows XCBuild to correctly plan incremental builds
when these headers change.

  • gtest/xcode/Config/StaticLibraryTarget.xcconfig:
  • gtest/xcode/gtest.xcodeproj/project.pbxproj:

Source/WebCore:

Declare missing outputs in DerivedSources.make, and merge files from the "Copy Generated
Headers" phase in with the other private headers, since they all go to the same destination.

  • DerivedSources-output.xcfilelist: Autogenerated chagnes.
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:

Tools:

  • Scripts/set-webkit-configuration: Add --validate-dependencies option.
  • WebKitTestRunner/DerivedSources-input.xcfilelist: Autogenerated changes.
  • WebKitTestRunner/DerivedSources.make: Explicitly depend on preprocessor.pm, which is

imported by other scripts but not listed as a dependency.

2:00 PM Changeset in webkit [291132] by Jean-Yves Avenard
  • 4 edits in trunk/Source/WebKit

MediaSampleCursor should iterate over the samples contained in the MediaSamplesBlock
https://bugs.webkit.org/show_bug.cgi?id=237677
rdar://80869041

Reviewed by Eric Carlson.

No change in observable behaviour for now, as the current code can't
produce MediaSamplesBlock with more than one sub-sample.
Tests will be added in bug 236754.

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.h:
  • Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:

(WebKit::stepIterator):
(WebKit::MediaSampleCursor::MediaSampleCursor):
(WebKit::MediaSampleCursor::locateIterator const):
(WebKit::MediaSampleCursor::setLocator const):
(WebKit::MediaSampleCursor::locateMediaSample const):
(WebKit::MediaSampleCursor::locateTiming const):
(WebKit::MediaSampleCursor::stepInOrderedMap):
(WebKit::MediaSampleCursor::stepInPresentationTime):
(WebKit::MediaSampleCursor::getMediaSample const):
(WebKit::MediaSampleCursor::getSyncInfo const):
(WebKit::MediaSampleCursor::copyFormatDescription const):
(WebKit::MediaSampleCursor::copySampleLocation const):

  • Shared/mac/MediaFormatReader/MediaSampleCursor.h: The Locator type and

the templated code making use of it makes use of strong assumptions that
the iterator can only be made of one type or the other.
As such, the originally obvious solution to expand the Locator type with
a MediaSamplesBlock iterator ended up being overly complex.
So instead we define an additional member m_currentEntry
and will add all the logic handling in the stepIterator method.
It should be noted that while the MediaSampleCursor implements all the
methods of MTPluginSampleCursor; in practice only the following appear used:

  • stepInDecodeOrderAndReportStepsTaken
  • getSampleTiming
  • getSyncInfo
  • copyFormatDescription
1:50 PM Changeset in webkit [291131] by achristensen@apple.com
  • 1 edit
    2 deletes in trunk/LayoutTests

Remove unused iOS 14 test results

  • platform/ios-14: Removed.
  • platform/ios-14-wk2: Removed.
1:50 PM Changeset in webkit [291130] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] mask-clip should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237725

Reviewed by Simon Fraser.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

1:47 PM Changeset in webkit [291129] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] scroll-behavior should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237723

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

1:41 PM Changeset in webkit [291128] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] quotes should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237721

Reviewed by Antti Koivisto.

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:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

1:27 PM Changeset in webkit [291127] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Document is leaking on haaretz.co.il due to an async script
https://bugs.webkit.org/show_bug.cgi?id=237672
<rdar://problem/90050632>

Reviewed by Geoffrey Garen.

I haven't been able to reproduce this in the context of a layout test, however,
I see the https://acdn.adnxs.com/dmp/async_usersync.html document flakily leaking
on haaretz.co.il due to an async script (sometimes the top document too).

From a memgraph, I can see that the cycle is:
HTMLDocument -> ScriptRunner -> PendingScript (via m_scriptsToExecuteSoon) -> HTMLScriptElement -> HTMLDocument (again)

To address the issue, I updated Document::commonTeardown() to clear all its ScriptRunner's pending scripts, right after
we stop all ActiveDOMObjects. At this point, we no longer want to run script and clearing any pending scripts is critical
since they hold a strong reference to the Document.

I have validated the fix on haaretz.co.il since I wasn't able to write an automated
test for this.

  • dom/Document.cpp:

(WebCore::Document::commonTeardown):

  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::clearPendingScripts):

  • dom/ScriptRunner.h:
1:25 PM Changeset in webkit [291126] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Markup dropdown menu not working in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=237726
<rdar://problem/89777983>

Reviewed by Wenson Hsieh.

Partial revert of r290103. No need for standardShareMenu in the
services menu case.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

1:10 PM Changeset in webkit [291125] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

  • platform/ios/TestExpectations: r291034 fixed platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html.
12:15 PM Changeset in webkit [291124] by Chris Fleizach
  • 39 edits
    8 copies
    1 add in trunk

AX: Support updated WebSpeech API
https://bugs.webkit.org/show_bug.cgi?id=237614
<rdar://problem/89981851>

Reviewed by Andres Gonzalez.

LayoutTests/imported/w3c:

  • web-platform-tests/speech-api/SpeechSynthesisErrorEvent-constructor-expected.txt:
  • web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt:
  • web-platform-tests/speech-api/idlharness.window-expected.txt:

Source/WebCore:

Adopt WebSpeech (18 August 2020) changes from
https://wicg.github.io/speech-api/

Tests Fixed:

imported/w3c/web-platform-tests/speech-api/

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/speech/DOMWindow+SpeechSynthesis.idl:
  • Modules/speech/DOMWindowSpeechSynthesis.cpp:

(WebCore::DOMWindowSpeechSynthesis::speechSynthesis):

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::Ref<SpeechSynthesis>SpeechSynthesis::create):
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::voicesDidChange):
(WebCore::SpeechSynthesis::fireEvent const):
(WebCore::SpeechSynthesis::fireErrorEvent const):
(WebCore::SpeechSynthesis::handleSpeakingCompleted):
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::create): Deleted.
(WebCore::SpeechSynthesis::fireEvent): Deleted.

  • Modules/speech/SpeechSynthesis.h:
  • Modules/speech/SpeechSynthesis.idl:
  • Modules/speech/SpeechSynthesisErrorCode.h: Added.
  • Modules/speech/SpeechSynthesisErrorCode.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl.
  • Modules/speech/SpeechSynthesisErrorEvent.cpp: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.cpp.

(WebCore::SpeechSynthesisErrorEvent::create):
(WebCore::SpeechSynthesisErrorEvent::SpeechSynthesisErrorEvent):

  • Modules/speech/SpeechSynthesisErrorEvent.h: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.h.
  • Modules/speech/SpeechSynthesisErrorEvent.idl: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.idl.
  • Modules/speech/SpeechSynthesisErrorEventInit.h: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl.
  • Modules/speech/SpeechSynthesisErrorEventInit.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl.
  • Modules/speech/SpeechSynthesisEvent.cpp:

(WebCore::SpeechSynthesisEvent::create):
(WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):

  • Modules/speech/SpeechSynthesisEvent.h:

(WebCore::SpeechSynthesisEvent::utterance const):
(WebCore::SpeechSynthesisEvent::charLength const):
(): Deleted.

  • Modules/speech/SpeechSynthesisEvent.idl:
  • Modules/speech/SpeechSynthesisEventInit.h: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.h.

(WebCore::SpeechSynthesisEventInit::SpeechSynthesisEventInit):

  • Modules/speech/SpeechSynthesisEventInit.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl.
  • Modules/speech/SpeechSynthesisUtterance.cpp:

(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):

  • Modules/speech/SpeechSynthesisUtterance.h:
  • Modules/speech/SpeechSynthesisVoice.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventNames.h:
  • dom/EventNames.in:
  • dom/EventTargetFactory.in:
  • page/SpeechSynthesisClient.h:
  • platform/PlatformSpeechSynthesizer.h:
  • platform/cocoa/PlatformSpeechSynthesizerCocoa.mm:

(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

  • platform/mock/PlatformSpeechSynthesizerMock.cpp:

(WebCore::PlatformSpeechSynthesizerMock::speak):

Source/WebKit:

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::boundaryEventOccurred):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::boundaryEventOccurred):

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

LayoutTests:

Fixed expectations:

  • imported/w3c/web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt: Updated.
  • imported/w3c/web-platform-tests/speech-api/SpeechSynthesisErrorEvent-constructor-expected.txt: Updated.
  • fast/speechsynthesis/speech-synthesis-boundary-events.html: Updated.
  • fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt: Updated.
11:43 AM Changeset in webkit [291123] by Chris Dumez
  • 85 edits in trunk/Source

Optimize further the passing of data across threads
https://bugs.webkit.org/show_bug.cgi?id=237695

Reviewed by Geoffrey Garen.

Optimize further the passing of data across threads by leveraging the optimized
version of isolatedCopy() on r-value references whenever possible.

Source/JavaScriptCore:

  • inspector/remote/RemoteConnectionToTarget.cpp:

(Inspector::RemoteConnectionToTarget::sendMessageToTarget):

  • inspector/remote/RemoteConnectionToTarget.h:
  • inspector/remote/RemoteControllableTarget.h:
  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObjectDebuggable.cpp:

(JSC::JSGlobalObjectDebuggable::dispatchMessageFromRemote):

  • runtime/JSGlobalObjectDebuggable.h:
  • tools/FunctionOverrides.cpp:

(JSC::FunctionOverrides::initializeOverrideFor):

Source/WebCore:

  • Modules/cache/CacheStorageConnection.h:
  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::queryCache):

  • Modules/cache/WorkerCacheStorageConnection.cpp:

(WebCore::toCrossThreadRecordData):
(WebCore::recordsDataFromRecords):
(WebCore::recordsDataOrErrorFromRecords):
(WebCore::WorkerCacheStorageConnection::retrieveRecords):
(WebCore::WorkerCacheStorageConnection::batchPutOperation):

  • Modules/cache/WorkerCacheStorageConnection.h:
  • Modules/entriesapi/DOMFileSystem.cpp:

(WebCore::DOMFileSystem::listDirectory):

  • Modules/mediastream/DetachedRTCDataChannel.h:

(WebCore::DetachedRTCDataChannel::DetachedRTCDataChannel):
(WebCore::DetachedRTCDataChannel::decode):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::detach):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::create):
(WebCore::Notification::Notification):

  • Modules/notifications/Notification.h:
  • Modules/push-api/PushSubscriptionData.cpp:

(WebCore::PushSubscriptionData::isolatedCopy const):
(WebCore::PushSubscriptionData::isolatedCopy):

  • Modules/push-api/PushSubscriptionData.h:
  • Modules/storage/DummyStorageProvider.h:
  • Modules/storage/StorageConnection.h:
  • Modules/storage/StorageManager.cpp:

(WebCore::StorageManager::persisted):
(WebCore::StorageManager::fileSystemAccessGetDirectory):

  • Modules/storage/WorkerStorageConnection.cpp:

(WebCore::WorkerStorageConnection::getPersisted):
(WebCore::WorkerStorageConnection::fileSystemGetDirectory):

  • Modules/storage/WorkerStorageConnection.h:
  • Modules/webdatabase/ChangeVersionWrapper.cpp:

(WebCore::ChangeVersionWrapper::ChangeVersionWrapper):

  • Modules/webdatabase/ChangeVersionWrapper.h:

(WebCore::ChangeVersionWrapper::create):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::changeVersion):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::addOpenDatabase):

  • Modules/webdatabase/SQLError.h:

(WebCore::SQLError::create):
(WebCore::SQLError::SQLError):

  • Modules/websockets/ThreadableWebSocketChannel.h:
  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveMessageError):

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::didFailSocketStream):
(WebCore::WebSocketChannel::processFrame):

  • Modules/websockets/WebSocketChannel.h:
  • Modules/websockets/WebSocketChannelClient.h:
  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::setURL): Deleted.

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::fail):
(WebCore::WorkerThreadableWebSocketChannel::Peer::fail):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • dom/ExceptionData.h:

(WebCore::ExceptionData::toException const):
(WebCore::ExceptionData::toException):

  • inspector/agents/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::sendMessageFromWorkerToFrontend):

  • inspector/agents/InspectorWorkerAgent.h:
  • page/CacheStorageProvider.h:
  • page/PageDebuggable.cpp:

(WebCore::PageDebuggable::dispatchMessageFromRemote):

  • page/PageDebuggable.h:
  • workers/WorkerInspectorProxy.cpp:

(WebCore::WorkerInspectorProxy::sendMessageFromWorkerToFrontend):

  • workers/WorkerInspectorProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postMessageToDebugger):

  • workers/service/SWClientConnection.cpp:

(WebCore::SWClientConnection::jobRejectedInServer):
(WebCore::SWClientConnection::registrationJobResolvedInServer):

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerClientData.cpp:

(WebCore::ServiceWorkerClientData::isolatedCopy const):
(WebCore::ServiceWorkerClientData::isolatedCopy):

  • workers/service/ServiceWorkerClientData.h:
  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::ImportedScript::isolatedCopy const):
(WebCore::ServiceWorkerContextData::ImportedScript::isolatedCopy):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::showNotification):

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/ServiceWorkerRegistrationOptions.cpp:

(WebCore::ServiceWorkerRegistrationOptions::isolatedCopy const):
(WebCore::ServiceWorkerRegistrationOptions::isolatedCopy):

  • workers/service/ServiceWorkerRegistrationOptions.h:
  • workers/service/context/ServiceWorkerDebuggable.cpp:

(WebCore::ServiceWorkerDebuggable::dispatchMessageFromRemote):

  • workers/service/context/ServiceWorkerDebuggable.h:
  • workers/service/context/ServiceWorkerInspectorProxy.cpp:

(WebCore::ServiceWorkerInspectorProxy::sendMessageToWorker):
(WebCore::ServiceWorkerInspectorProxy::sendMessageFromWorkerToFrontend):

  • workers/service/context/ServiceWorkerInspectorProxy.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::postMessageToDebugger):
(WebCore::ServiceWorkerThreadProxy::startFetch):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):

Source/WebKit:

  • NetworkProcess/NetworkSocketChannel.cpp:

(WebKit::NetworkSocketChannel::didReceiveMessageError):

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

(WebKit::NetworkStorageManager::fileSystemGetDirectory):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::dispatchMessageFromRemote):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Inspector/WebPageDebuggable.cpp:

(WebKit::WebPageDebuggable::dispatchMessageFromRemote):

  • UIProcess/Inspector/WebPageDebuggable.h:
  • WebProcess/Cache/WebCacheStorageConnection.cpp:

(WebKit::WebCacheStorageConnection::retrieveRecords):

  • WebProcess/Cache/WebCacheStorageConnection.h:
  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::didReceiveText):
(WebKit::WebSocketChannel::didReceiveMessageError):

  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/WebCoreSupport/WebStorageConnection.cpp:

(WebKit::WebStorageConnection::getPersisted):
(WebKit::WebStorageConnection::fileSystemGetDirectory):

  • WebProcess/WebCoreSupport/WebStorageConnection.h:
11:41 AM Changeset in webkit [291122] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] grid-template-areas should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237712

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

While we now run the grid-template-areas tests, we have a bug in the way we serialize the value through the
computed style.

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

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

10:56 AM Changeset in webkit [291121] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.1.11

Tag Safari-613.1.17.1.11.

10:46 AM Changeset in webkit [291120] by Kocsen Chung
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.11

10:36 AM Changeset in webkit [291119] by graouts@webkit.org
  • 15 edits in trunk

[web-animations] font-variant-caps should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237662

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • platform/text/TextFlags.cpp:

(WebCore::operator<<):

  • platform/text/TextFlags.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontVariantAlternates):
(WebCore::RenderStyle::setFontVariantCaps):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontVariantCaps const):

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
10:22 AM Changeset in webkit [291118] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

[iOS] Netflix.com fails to resume after moving app to background during playback
https://bugs.webkit.org/show_bug.cgi?id=237659
<rdar://88775037>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-interruption-with-resume-allowing-play.html

When the MediaPlayerPrivateMediaSourceAVFObjC player is asked to play or pause, it notifies
the client (HTMLMediaElement) that its playback state has changed. HTMLMediaElement will in response
call playInternal() or pauseInternal() to ensure that a state change driven by the MediaPlayer
is reflected up to the DOM. However, when an interruption causes the media element to suspend
and pause playback, this results in an additional call to pauseInternal(), which updates the
"state to resume" after an interruption ends to "Paused".

In mediaPlayerPlaybackStateChanged(), only call pauseInternal() or playInternal() if the reported
player state does not match the HTMLMediaElement's own state.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerPlaybackStateChanged):

LayoutTests:

  • media/media-source/media-source-interruption-with-resume-allowing-play-expected.txt: Added.
  • media/media-source/media-source-interruption-with-resume-allowing-play.html: Added.
9:58 AM Changeset in webkit [291117] by sihui_liu@apple.com
  • 11 edits in trunk/Source

IndexedDB: free memory used by database connection on low-memory warning
https://bugs.webkit.org/show_bug.cgi?id=237673

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::handleLowMemoryWarning):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::handleLowMemoryWarning):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

Source/WebKit:

  • NetworkProcess/storage/IDBStorageManager.cpp:

(WebKit::IDBStorageManager::handleLowMemoryWarning):

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

(WebKit::NetworkStorageManager::handleLowMemoryWarning):

9:56 AM Changeset in webkit [291116] by youenn@apple.com
  • 2 edits in trunk/Source/WTF

Enable Permissions API by default on Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=237699

Reviewed by Brent Fulgham.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
9:28 AM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
8:47 AM Changeset in webkit [291115] by graouts@webkit.org
  • 11 edits in trunk

[web-animations] font-variant-position should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237671

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • platform/text/TextFlags.cpp:

(WebCore::operator<<):

  • platform/text/TextFlags.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontVariantAlternates):
(WebCore::RenderStyle::setFontVariantPosition):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontVariantPosition const):

8:43 AM Changeset in webkit [291114] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] font-variant-ligatures should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237667

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

8:34 AM Changeset in webkit [291113] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fix after 248260@main
https://bugs.webkit.org/show_bug.cgi?id=237715

  • css/ContainerQuery.h: Add missing include.
8:31 AM Changeset in webkit [291112] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Add DEFAULT_BRANCH variable
https://bugs.webkit.org/show_bug.cgi?id=237693
<rdar://problem/90067276>

Reviewed by Aakash Jain.

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

(ShowIdentifier.evaluateCommand):
(CheckOutPullRequest.run):
(CleanGitRepo.init):

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

8:25 AM Changeset in webkit [291111] by commit-queue@webkit.org
  • 8 edits in trunk

REGRESSION(r284711): [GStreamer] Buffering, seek broken on youtube.com
https://bugs.webkit.org/show_bug.cgi?id=233861

Unreviewed, manual revert of 284711.

Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-10

Source/WebCore:

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::currentTimeFudgeFactor):

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::timeFudgeFactor const):

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::toGstClockTime):

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::bufferTimeToStreamTime): Deleted.

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
8:01 AM Changeset in webkit [291110] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r290795.

Caused crashes <rdar://problem/89970722>

Reverted changeset:

"[macOS] WebContent processes crash with
XPC_EXIT_REASON_SIGTERM_TIMEOUT when logging out"
https://bugs.webkit.org/show_bug.cgi?id=237398
https://commits.webkit.org/r290795

7:57 AM Changeset in webkit [291109] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] font-variant-east-asian should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237665

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

7:52 AM Changeset in webkit [291108] by commit-queue@webkit.org
  • 21 edits in trunk/Source/WebCore

Use PropertyRegistry consistently in svgAttributeChanged
https://bugs.webkit.org/show_bug.cgi?id=237604

Patch by Rob Buis <rbuis@igalia.com> on 2022-03-10
Reviewed by Martin Robinson.

Use PropertyRegistry consistently in svgAttributeChanged by always checking
PropertyRegistry::isKnownAttribute first thing, before delegating to subclasses.

  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::svgAttributeChanged):

  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::svgAttributeChanged):

  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::svgAttributeChanged):

  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):

  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::svgAttributeChanged):

  • svg/SVGFEMergeNodeElement.cpp:

(WebCore::SVGFEMergeNodeElement::svgAttributeChanged):

  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::svgAttributeChanged):

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::svgAttributeChanged):

  • svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::svgAttributeChanged):

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::svgAttributeChanged):

  • svg/SVGGeometryElement.cpp:

(WebCore::SVGGeometryElement::svgAttributeChanged):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::svgAttributeChanged):

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::svgAttributeChanged):

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::svgAttributeChanged):

  • svg/SVGPolyElement.cpp:

(WebCore::SVGPolyElement::svgAttributeChanged):

  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::svgAttributeChanged):

7:27 AM Changeset in webkit [291107] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed GStreamer gardening

  • platform/glib/TestExpectations: media/video-src-blob-perf.html is failing actually.
6:23 AM Changeset in webkit [291106] by Lauro Moura
  • 159 edits
    6 copies
    1 move
    16 adds
    2 deletes in trunk

Add context.roundRect support to OffScreenCanvas
https://bugs.webkit.org/show_bug.cgi?id=232780
<rdar://problem/85366210>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Updated baselines with PASS.

  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.dompointinit.single.argument-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.double.single.argument-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.1.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.1.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.1.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.2.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.2.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.2.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.2.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.2.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.2.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.dompoint-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.dompointinit-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.double-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.closed-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.end.1-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.end.2-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.end.3-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.end.4-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.negative-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.newsubpath-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.nonfinite-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.intersecting.1-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.intersecting.2-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.negative-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.none-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.toomany-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.selfintersect-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.winding-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.1-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.2-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.3-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.4-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.5-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.6-expected.txt:
  • web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt:
  • web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.dompointinit-expected.txt.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.dompointinit-expected.txt.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.dompointinit-expected.txt.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.dompointinit-expected.txt.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.dompointinit-expected.txt.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompoint-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompoint.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.dompointinit-expected.txt.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompointinit.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.double-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.double.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.closed-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.closed.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.1-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.1.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.2-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.2.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.3-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.3.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.4-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.4.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.negative-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.negative.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.newsubpath-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.newsubpath.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.nonfinite-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.nonfinite.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.1-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.1.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.2-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.2.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.negative-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.negative.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.none-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.none.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.toomany-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.toomany.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.selfintersect-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.selfintersect.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.winding-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.winding.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.1-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.1.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.2-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.2.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.3-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.3.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.4-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.4.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.5-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.5.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.6-expected.txt:
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.6.worker-expected.txt:
  • web-platform-tests/html/dom/idlharness.https-expected.txt:
  • web-platform-tests/html/dom/idlharness.worker-expected.txt:

Source/WebCore:

Covered by existing tests.

  • html/canvas/CanvasPath.cpp:

(WebCore::CanvasPath::roundRect): Added.

  • html/canvas/CanvasPath.h:
  • html/canvas/CanvasPath.idl: Added roundRect declarations.
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::processArgument): Added stub for the
RadiusVariant as used in roundRect.

  • inspector/InspectorCanvasCallTracer.h:
  • inspector/agents/InspectorCanvasAgent.cpp: Add include.
  • inspector/RecordingSwizzleType.h: Added DOMPointInit type.

Source/WebInspectorUI:

  • UserInterface/Models/Recording.js:

(WI.Recording.displayNameForSwizzleType): Added name for DOMPointInit.
Proper support for it should come with bug233255.

LayoutTests:

  • inspector/canvas/recording-2d-full-expected.txt:
  • inspector/canvas/resources/recording-2d.js: Added calls to roundRect

to test the inspector processArgument()

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt.
5:37 AM Changeset in webkit [291105] by Nikolas Zimmermann
  • 8 edits
    4 adds in trunk

Cleanup RenderLayer::currentTransform()
https://bugs.webkit.org/show_bug.cgi?id=237553

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

Add two new WPT tests covering animations of the 'transform-box' property.

  • web-platform-tests/css/css-transforms/animation/transform-box-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-box-will-change-transform-layer-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-box-will-change-transform-layer.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-box.html: Added.

Source/WebCore:

In preparation for the upcoming SVG/CSS transforms support in LBSE,
the transform related code in RenderLayer is cleaned up, starting
with RenderLayers currentTransform() function.

RenderLayer::currentTransform() has two purposes. It can either be used
to re-compute the existing transformation matrix with different options
(e.g. include or exclude 'transform-origin' induced transformations), or
to retrieve the current transformation matrix from the animatedStyle() of
the associated renderer, if an accelerated transform animation is running
(triggered e.g. via CSS Animations / JS WebAnimations).

Currently the code to compute the transformation matrix is duplicated,
avoid that and unify the two code paths (re-compute CTM if accelerated transform
animations are running / re-compute CTM if transform-origin shall be excluded).

Add two new WPT tests that verify animating 'transform-box' is functional
for both composited & non-composited elements. Currently 'transform-box'
support is ignored for composited elements, as demonstrated by the
transform-box-with-change-transform-layer.html test.

Follow-up patches that fix the bugs depends on this initial cleanup patch.
For now mark the failing test as such until it's fixed.

Tests: imported/w3c/web-platform-tests/css/css-transforms/animation/transform-box-will-change-transform-layer.html

imported/w3c/web-platform-tests/css/css-transforms/animation/transform-box.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform const):

LayoutTests:

Mark new WPT test css/css-transforms/animation/transform-box-will-change-transform-layer.html
as expected to fail, since 'transform-box' is ignored for composited elements at the moment.

  • platform/glib/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
4:50 AM Changeset in webkit [291104] by graouts@webkit.org
  • 10 edits in trunk

[web-animations] font-variant-alternates should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237661

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

While we now run the font-variant-alternates tests, we don't support all values for this property so we fail
those tests.

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

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • platform/text/TextFlags.cpp:

(WebCore::operator<<):

  • platform/text/TextFlags.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontFamilies):
(WebCore::RenderStyle::setFontVariantAlternates):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontVariantAlternates const):

4:44 AM Changeset in webkit [291103] by graouts@webkit.org
  • 9 edits in trunk

[web-animations] font-synthesis should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237650

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontFamilies):
(WebCore::RenderStyle::setFontSynthesis):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontSynthesis const):

4:04 AM Changeset in webkit [291102] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Panel: CSS variable completions should be provided even without a query
https://bugs.webkit.org/show_bug.cgi?id=237679
<rdar://problem/90059628>

Reviewed by Patrick Angle.

Return the list of all available completion suggestions if WI.CSSCompletions is configured to allow empty
prefix search. This was already the case for classic autocompletion with prefix matching, but was missing
for fuzzy matching.

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.prototype.executeQuery):

4:03 AM Changeset in webkit [291101] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][SourceBuffer] Fix creating float PTS/DTS when dividing sample
https://bugs.webkit.org/show_bug.cgi?id=237528

Reviewed by Xabier Rodriguez-Calvar.

The timestamps used for sample division in SourceBuffer aren't being
aligned with the same rounding margin used in
SourceBuffer::sourceBufferPrivateDidReceiveSample().

This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797

  • platform/graphics/SourceBufferPrivate.cpp: Extracted roundTowardsTimeScaleWithRoundingMargin lambda as a function and used it from removeCodedFrames(), on top of the current usage from sourceBufferPrivateDidReceiveSample().
3:38 AM Changeset in webkit [291100] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] fill-rule should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237648

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

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

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fillRule const):
(WebCore::RenderStyle::setFillRule):

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

[web-animations] counter-reset should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237644

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

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

Source/WebCore:

Generalize the wrapper added for counter-increment to also handle counter-reset.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

2:22 AM Changeset in webkit [291098] by Antti Koivisto
  • 11 edits in trunk

[CSS Container Queries] Implement new container selection algorithm
https://bugs.webkit.org/show_bug.cgi?id=237657

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:

Source/WebCore:

"For each element, the query container to be queried is selected from among the element’s
ancestor query containers that have a valid container-type for all the container features
in the <container-condition>."

https://drafts.csswg.org/css-contain-3/#container-rule

  • css/ContainerQuery.cpp:

(WebCore::CQ::requiredAxesForFeature):

  • css/ContainerQuery.h:
  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeFilteredContainerQuery):

Move container name parsing to ContainerQueryParser too.

(WebCore::ContainerQueryParser::consumeSizeQuery):

Collect required axes during parsing.

  • css/ContainerQueryParser.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeContainerRule):

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluate const):
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):

Select container based on required axes for the features being used.

(WebCore::Style::ContainerQueryEvaluator::evaluateQuery const):
(WebCore::Style::ContainerQueryEvaluator::evaluateCondition const):
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

No need to check axes during evaluation anymore. We only evaluate against containers that support them.

(WebCore::Style::ContainerQueryEvaluator::resolveContainer const): Deleted.

Rename resolveContainer -> selectContainer to match the spec.

  • style/ContainerQueryEvaluator.h:
2:19 AM Changeset in webkit [291097] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] We should gurantee that in-flux-stash is fully baked when pointing table is set
https://bugs.webkit.org/show_bug.cgi?id=237697
rdar://89116983

Reviewed by Mark Lam.

To support enumerating hashtable which can be in the middle of resizing, we have in-flux-stash: this
small stash is used to keep old table and size while resizing. However, Mark pointed that
pas_tiny_large_map_hashtable_for_each_entry_remote's assertion is firing, which is ensuring that table's
underlying pointer should be NULL when the size is 0. But in-flux-stash, we did not guarantee that
in-flux-stash data is consistent when it is exposed to the enumerator (when setting hashtable_being_resized).

This patch inserts pas_compiler_fence when exposing and unexposing in-flux-stash. pas_compiler_fence is
enough (pas_store_store_fence is not necessary) because pas_enumerator runs after suspending the process.
Thus, data structure's consistency between instruction boundary is enough.

  • libpas/src/libpas/pas_hashtable.h:
1:30 AM Changeset in webkit [291096] by Carlos Garcia Campos
  • 2 edits
    2 adds in trunk/Source/WebCore

[GTK][WPE] Add initial adwaita style for PDF.js
https://bugs.webkit.org/show_bug.cgi?id=237527

Reviewed by Michael Catanzaro.

  • Modules/pdfjs-extras/adwaita/style.css: Added.

(#openFile):
(.dropdownToolbarButton > select):

  • html/PDFDocument.cpp:

(WebCore::PDFDocument::injectStyleAndContentScript):

1:08 AM Changeset in webkit [291095] by youenn@apple.com
  • 15 edits
    2 deletes in trunk/Source

Remove RemoteVideoSample
https://bugs.webkit.org/show_bug.cgi?id=237592

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/RemoteVideoSample.cpp: Removed.
  • platform/graphics/RemoteVideoSample.h: Removed.

Source/WebKit:

Send RemoteVideoSample data directly as IPC message parameters instead of inside RemoteVideoSample.
Fix timeStampNs by sending them back to WebProcess and divide them by 1000 to put them as milliseconds, as expected by libwebrtc backend.

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

(WebKit::LibWebRTCCodecsProxy::createDecoderCallback):

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

(WebKit::LibWebRTCCodecs::completedDecodingCV):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::videoFrameAvailable):
(WebKit::RemoteCaptureSampleManager::videoFrameAvailableCV):
(WebKit::RemoteCaptureSampleManager::videoSampleAvailable): Deleted.
(WebKit::RemoteCaptureSampleManager::videoSampleAvailableCV): Deleted.
(WebKit::RemoteCaptureSampleManager::RemoteVideo::videoSampleAvailable): Deleted.

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
1:00 AM Changeset in webkit [291094] by Carlos Garcia Campos
  • 16 edits
    2 adds in trunk

[GTK][WPE] Add initial support for PDF documents using PDF.js
https://bugs.webkit.org/show_bug.cgi?id=237513

Reviewed by Michael Catanzaro.

Source/WebCore:

Add support for loading PDF documents using PDF.js.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::isPDFJSResourceLoad const):

  • loader/soup/ResourceLoaderSoup.cpp:

(WebCore::ResourceLoader::loadGResource):

  • page/SecurityOrigin.cpp:

(WebCore::shouldTreatAsUniqueOrigin):

  • platform/LegacySchemeRegistry.cpp:

(WebCore::builtinSecureSchemes):

Source/WebKit:

Build PDF.js resources into the library.

  • PdfJSGResources.cmake: Added.
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::canShowMIMEType): Claim to support PDF documents when PDF.js is enabled.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::canShowMIMEType const): Ditto.

Source/WTF:

Enable PDF.js for GTK and WPE ports.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Add a script to generate the GResource manifest for PDF.js sources.

  • glib/generate-pdfjs-gresource-manifest.py: Added.

(get_filenames):
(get_filenames.should_ignore_resource):
(get_filenames.resource_name):
(is_compressible):

  • gtk/manifest.txt.in: Add pdfjs to tarballs.
  • wpe/manifest.txt.in: Ditto.
12:57 AM Changeset in webkit [291093] by Carlos Garcia Campos
  • 18 edits
    4 adds in trunk/Source

[GTK][WPE] Web Inspector: make it possible to use the remote inspector from other browsers
https://bugs.webkit.org/show_bug.cgi?id=237601

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Make it possible to start the inspector server with 0 port, meaning any free one will be used.

  • inspector/remote/glib/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::start): Pass the effective address to g_socket_listener_add_address and get the port.

  • inspector/remote/glib/RemoteInspectorServer.h:

(Inspector::RemoteInspectorServer::port const): Return the port the server is listening to.

Source/WebInspectorUI:

Add Base/BrowserInspectorFrontendHost.js to be used when inspector is run and InspectorFrontendHost is not
defined in window. This new file is only included in the inspector sources for GTK and WPE ports.

  • CMakeLists.txt:
  • PlatformWPE: Added
  • PlatformGTK:
  • Scripts/combine-resources.pl: Add --input-script-name to be able to skip individual scripts too.
  • Scripts/copy-user-interface-resources.pl: If inspector frontend host should not be included, remove the script

from generated files.

  • UserInterface/Base/BrowserInspectorFrontendHost.js: Added.

(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get supportsShowCertificate):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get isRemote):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get inspectionLevel):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get debuggableInfo):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get port):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get platform):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get platformVersionName):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get supportsDiagnosticLogging):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get supportsWebExtensions):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.connect):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.loaded):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.closeWindow):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.reopen):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.reset):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.bringToFront):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.inspectedURLChanged):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.showCertificate):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setZoomFactor):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.zoomFactor):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setForcedAppearance):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.userInterfaceLayoutDirection):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.supportsDockSide):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.requestDockSide):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setAttachedWindowHeight):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setAttachedWindowWidth):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setSheetRect):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.startWindowDrag):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.moveWindowBy):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.copyText):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.killText):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.openURLExternally):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.canSave):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.save):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.append):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.close):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.showContextMenu):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.dispatchEventAsContextMenuEvent):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.sendMessageToBackend):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.unbufferedLog):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.isUnderTest):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.isExperimentalBuild):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.beep):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.inspectInspector):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.isBeingInspected):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setAllowsInspectingInspector):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.logDiagnosticEvent):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.didShowExtensionTab):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.didHideExtensionTab):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.didNavigateExtensionTab):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.inspectedPageDidNavigate):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.evaluateScriptInExtensionTab):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype._sendPendingMessagesToBackendIfNeeded):

  • UserInterface/Base/Main.js:

(WI.loaded): Connect the inspector host if needed.

  • UserInterface/Main.html: Add Base/BrowserInspectorFrontendHost.js.

Source/WebKit:

This is no longer possible since we switched to the new remote inspector. We don't want to bring the legacy
remote inspector back, but it should be possible to use a mixed approach, using a WebSocket for the inspector
protocol communication, but still using the new remote inspector code. This patch adds a simple HTTP browser to
server the inspector resources and open WebSocket connection to the inspector. It pretends to be a remote
inspector client, so we don't need any change in the current remote inspector implementation. The server is only
started when the env var WEBKIT_INSPECTOR_HTTP_SERVER is present, and the inspector server is started for the
same host but using a free port.

  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitInitialize.cpp:

(WebKit::initializeRemoteInspectorServer): Start the HTTP server if the env var WEBKIT_INSPECTOR_HTTP_SERVER is present.
(WebKit::webkitInitialize): Just call initializeRemoteInspectorServer().

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::handleRequest): Use RemoteInspectorClient::buildTargetListPage().

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::inspect): Only call RemoteInspectorProxy::load() for UI inspector type.
(WebKit::RemoteInspectorClient::buildTargetListPage const): Build the target list page, using message handlers
for UI inspector and window.open for the HTTP inspector.

  • UIProcess/Inspector/glib/RemoteInspectorClient.h:

(WebKit::RemoteInspectorClient::targets const): Deleted.

  • UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp: Added.

(WebKit::RemoteInspectorHTTPServer::singleton):

  • UIProcess/Inspector/glib/RemoteInspectorHTTPServer.h: Added.

Mar 9, 2022:

11:14 PM Changeset in webkit [291092] by youenn@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

imported/w3c/web-platform-tests/webrtc-extensions/transfer-datachannel.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=237327

Reviewed by Eric Carlson.

The worker is first sending the Opened message, than any message coming from the data channel.
Wait for the Opened message before proceeding with the rest of the test.

  • web-platform-tests/webrtc-extensions/transfer-datachannel.html:
11:04 PM Changeset in webkit [291091] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Combine Lookup and Define.
https://bugs.webkit.org/show_bug.cgi?id=237627
rdar://26205225

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _defineForWebView:]):

10:12 PM Changeset in webkit [291090] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] counter-increment should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237640

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

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

Source/WebCore:

The counter-increment and counter-reset properties are represented via a single data structure
held by RenderStyle. This lays up the groundwork for animation support of counter-reset as well
but right now we only handle counter-increment to keep this patch focused.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

8:36 PM Changeset in webkit [291089] by Cameron McCormack
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=237688

  • gpu-process/TestExpectations:
  • svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t.svg:
8:31 PM Changeset in webkit [291088] by Cameron McCormack
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=236931

  • gpu-process/TestExpectations:
7:31 PM Changeset in webkit [291087] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Limit WK_XCODE_SUPPORTS_LTO in JavaScriptCore based on target OS
https://bugs.webkit.org/show_bug.cgi?id=237682

Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:
7:18 PM Changeset in webkit [291086] by Cameron McCormack
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=236930

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
7:05 PM Changeset in webkit [291085] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Remove unused AccessibilityObject member variable.
https://bugs.webkit.org/show_bug.cgi?id=237670
<rdar://problem/90042470>

Reviewed by Chris Fleizach.

AccessibilityObject::m_isolatedTreeNodeInitialized is not used, thus
removing.

  • accessibility/AccessibilityObject.h:
6:43 PM Changeset in webkit [291084] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

In isolated tree mode, do not call NSAccessibilityUnregisterUniqueIdForUIElement until the isolated object is detached.
https://bugs.webkit.org/show_bug.cgi?id=237621
<rdar://problem/89992486>

Reviewed by Chris Fleizach.

When the live object is detached from its wrapper on the main thread,
the wrapper may be in the middle of serving a request on the AX thread.
Therefore calling NSAccessibilityUnregisterUniqueIdForUIElement may
interfere with the completiong of the request, or even cause undefined
behavior since many of the internal lookups for objects depend on a data
structure updated by system call. With this patch, we unregister a
wrapper when the isolated object is detached, which happens after the
live object is detached.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase initWithAccessibilityObject:]):
(-[WebAccessibilityObjectWrapperBase attachIsolatedObject:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper detach]):
(-[WebAccessibilityObjectWrapper detachIsolatedObject:]):
(-[WebAccessibilityObjectWrapper unregisterUniqueIdForUIElement]): Deleted.

6:05 PM Changeset in webkit [291083] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp

Unreivewed build fix. rdar://89376484

./Modules/webauthn/AuthenticatorCoordinator.cpp:144:50: error: no member named 'findIf' in 'WTF::Vector<WebCore::PublicKeyCredentialCreationOptions::Parameters, 0, WTF::CrashOnOverflow, 16>'; did you mean 'find'?

6:02 PM Changeset in webkit [291082] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore/platform/sql

Apply patch. rdar://problem/82071968

3:43 PM Changeset in webkit [291081] by Russell Epstein
  • 87 edits
    1 copy
    2 adds in branches/safari-613-branch

Revert "Cherry-pick r289790. rdar://problem/89997669"

This reverts commit r291070.

3:06 PM Changeset in webkit [291080] by Matt Woodrow
  • 5 edits
    5 adds in trunk

Empty float rects should remain empty after integrally enclosing them.
https://bugs.webkit.org/show_bug.cgi?id=237507

Reviewed by Alan Bujtas.

Source/WebCore:

Test: compositing/tile-coverage-subpixel-empty-rect.html

  • platform/graphics/FloatRect.cpp:

(WebCore::enclosingIntRectPreservingEmptyRects):

  • platform/graphics/FloatRect.h:
  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::setNeedsDisplayInRect):
(WebCore::TileGrid::dropTilesInRect):
(WebCore::TileGrid::tilesWouldChangeForCoverageRect const):
(WebCore::TileGrid::prepopulateRect):
(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::ensureTilesForRect):

Add a new variant of enclosingIntRect(const Float&) that ensures that empty input rects
always return an empty output rect, even if the x/y position is fractional.
Significant portions of the layout code (including, but not limited to linesBoundingBox()) depend
on the old behavior, so the new behaviour is opt-in and only used by TileGrid.

Fixes the case where TileGrid received an empty coverage rect at a fractional position, and rounded
it out to a 1x1 rect and allocated unnecessary tiles.

LayoutTests:

  • compositing/tile-coverage-subpixel-empty-rect-expected.txt: Added.
  • compositing/tile-coverage-subpixel-empty-rect.html: Added.
  • platform/gtk/compositing/tile-coverage-subpixel-empty-rect-expected.txt: Added.
  • platform/ios/compositing/tile-coverage-subpixel-empty-rect-expected.txt: Added.

Adds a new test that uses multiple overflow:hidden clips and absolute positioning to create
an empty coverage rect with a subpixel x/y position that is within the bounds of an offscreen
layer. Confirms that we don't accidentally allocate a tile for this layer.

2:45 PM Changeset in webkit [291079] by ysuzuki@apple.com
  • 2 edits in branches/safari-613-branch/Source/bmalloc

Cherry-picking r290110

[libpas] scavenger should not call pthread_mach_thread_np after suspension
https://bugs.webkit.org/show_bug.cgi?id=236798
rdar://89020902

Reviewed by Mark Lam and Keith Miller.

pthread_mach_thread_np can take a lock internally. So we should not call it after suspending a thread.
This patch refactors libpas scavenger so that we call pthread_mach_thread_np before suspending a thread.
We also avoid calling pthread_self() after suspension to make suspending safer (while it does not take
a lock, it also depends on an internal implementation).

  • libpas/src/libpas/pas_thread_local_cache.c: (scavenger_thread_suspend_data_create): (suspend): (resume): (stop_allocator): (pas_thread_local_cache_for_all):
2:38 PM Changeset in webkit [291078] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=236131

  • platform/VideoFrame.cpp:

(WebCore::VideoFrame::asVideoFrameCV):

  • platform/VideoFrame.h:
2:35 PM Changeset in webkit [291077] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support concept of 'blocked' pull requests
https://bugs.webkit.org/show_bug.cgi?id=237370
<rdar://problem/89689094>

Unreviewed follow-up fix.

Accidently landed change using string literals instead of variables.

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

(GitHubMixin):
(GitHubMixin._is_pr_blocked):
(ValidateChange.validate_github):
(BlockPullRequest.start):
(BlockPullRequest.getResultSummary):

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

2:31 PM Changeset in webkit [291076] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=236131

  • platform/VideoFrame.cpp:

(WebCore::VideoFrame::asVideoFrameCV):

2:25 PM Changeset in webkit [291075] by rmorisset@apple.com
  • 12 edits
    1 copy
    2 adds in trunk/Source/WebGPU

[WGSL] Implement enough of the Parser for the simplest shaders
https://bugs.webkit.org/show_bug.cgi?id=237629

Reviewed by Myles Maxfield.

The specific "hello-world"-like shaders that I want this to be able to parse are included in WGSLParserTests.mm.

The general approach to the parser, such as its templating by the Lexer, is directly copied from JSC's parser.
Things are a bit simpler for us as WGSL is such a simple language to parse, being strictly LR(1).

In this patch I also deleted BlockAttribute, since this attribute was recently removed from the language.

  • WGSL/AST/Attribute.h:

(WGSL::AST::Attribute::isBlock const): Deleted.

  • WGSL/AST/Expressions/TypeConversion.h:
  • WGSL/AST/FunctionDecl.h:
  • WGSL/AST/ShaderModule.h:
  • WGSL/AST/Statements/AssignmentStatement.h:
  • WGSL/AST/StructureDecl.h:
  • WGSL/AST/TypeDecl.h:

(WGSL::AST::ParameterizedType::stringViewToKind):

  • WGSL/CompilationMessage.h:
  • WGSL/Parser.cpp: Added.

(WGSL::Parser::Parser):
(WGSL::Parser::current):
(WGSL::parse):
(WGSL::parseLChar):
(WGSL::parseUChar):
(WGSL::Parser<Lexer>::consumeType):
(WGSL::Parser<Lexer>::consume):
(WGSL::Parser<Lexer>::parseShader):
(WGSL::Parser<Lexer>::parseGlobalDecl):
(WGSL::Parser<Lexer>::parseAttributes):
(WGSL::Parser<Lexer>::parseAttribute):
(WGSL::Parser<Lexer>::parseStructDecl):
(WGSL::Parser<Lexer>::parseStructMember):
(WGSL::Parser<Lexer>::parseTypeDecl):
(WGSL::Parser<Lexer>::parseTypeDeclAfterIdentifier):
(WGSL::Parser<Lexer>::parseGlobalVariableDecl):
(WGSL::Parser<Lexer>::parseVariableQualifier):
(WGSL::Parser<Lexer>::parseStorageClass):
(WGSL::Parser<Lexer>::parseAccessMode):
(WGSL::Parser<Lexer>::parseFunctionDecl):
(WGSL::Parser<Lexer>::parseParameter):
(WGSL::Parser<Lexer>::parseStatement):
(WGSL::Parser<Lexer>::parseCompoundStatement):
(WGSL::Parser<Lexer>::parseReturnStatement):
(WGSL::Parser<Lexer>::parseShortCircuitOrExpression):
(WGSL::Parser<Lexer>::parseRelationalExpression):
(WGSL::Parser<Lexer>::parseShiftExpression):
(WGSL::Parser<Lexer>::parseAdditiveExpression):
(WGSL::Parser<Lexer>::parseMultiplicativeExpression):
(WGSL::Parser<Lexer>::parseUnaryExpression):
(WGSL::Parser<Lexer>::parseSingularExpression):
(WGSL::Parser<Lexer>::parsePostfixExpression):
(WGSL::Parser<Lexer>::parsePrimaryExpression):
(WGSL::Parser<Lexer>::parseExpression):
(WGSL::Parser<Lexer>::parseLHSExpression):
(WGSL::Parser<Lexer>::parseCoreLHSExpression):
(WGSL::Parser<Lexer>::parseArgumentExpressionList):

  • WGSL/Parser.h: Copied from Source/WebGPU/WGSL/CompilationMessage.h.
  • WGSL/WGSL.cpp:

(WGSL::staticCheck):
(WGSL::SuccessfulCheck::SuccessfulCheck):

  • WGSL/WGSL.h:
  • WebGPU.xcodeproj/project.pbxproj:
2:16 PM Changeset in webkit [291074] by Russell Epstein
  • 9 edits in branches/safari-613-branch

Cherry-pick r290515. rdar://problem/89376484

[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:

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

2:16 PM Changeset in webkit [291073] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613-branch

Cherry-pick r290760. rdar://problem/83745510

Rendering issues with many dynamically-added sticky elements inside overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=237378
<rdar://83745510>

Reviewed by Cameron McCormack.

Source/WebCore:

A bug was filed describing a symptom where position:sticky elements would eventually
fail to render when many of them were dynamically added inside a non-stacking context
overflow scroll.

Debugging showed that CALayers were accumulating, causing us to hit per-process IOSurface
limits, at which point content fails to render (this is being fixed via rdar://89640915).
Further debugging showed that these layers were unparented, and being entrained by
ScrollingStateStickyNodes, which were accumulating in ScrollingStateTree's m_unparentedNodes.

This happened because with this scrolling configuration, each ScrollingStateStickyNode
is parented via a ScrollingStateOverflowScrollProxyNode which is referenced by entries
in RenderLayerBacking's m_ancestorClippingStack. On cleanup, the ScrollingStateOverflowScrollProxyNode
was unparented first, leaving the ScrollingStateStickyNode in m_unparentedNodes.

The fix is to have ScrollingStateTree::unparentChildrenAndDestroyNode() remove nodes
from m_unparentedNodes.

To test, add a m_unparentedNodes count to scrollingStateTreeAsText output, which means
having scrollingStateTreeAsText() as a member function on ScrollingStateTree.

Test: scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes.html

  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText const):
  • page/scrolling/ScrollingStateTree.cpp: (WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode): (WebCore::ScrollingStateTree::scrollingStateTreeAsText const):
  • page/scrolling/ScrollingStateTree.h:

LayoutTests:

  • scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes-expected.txt: Added.
  • scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes.html: Added.

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

2:16 PM Changeset in webkit [291072] by Russell Epstein
  • 27 edits
    4 adds in branches/safari-613-branch

Cherry-pick r290646. rdar://problem/88911184

focus({preventScroll: true}) does not prevent scrolling on iOS
https://bugs.webkit.org/show_bug.cgi?id=236584
rdar://88911184

Reviewed by Simon Fraser.

Source/WebCore:

Plumb FocusOptions through Element::dispatchFocusEvent() as well as the chrome client hooks for
elementDidRefocus and elementDidFocus, instead of just a FocusDirection flag.

  • dom/Document.cpp: (WebCore::Document::setFocusedElement):
  • dom/Element.cpp: (WebCore::Element::focus): (WebCore::Element::dispatchFocusEvent):
  • dom/Element.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::dispatchFocusEvent):
  • html/HTMLSelectElement.h:
  • html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
  • html/HTMLTextFormControlElement.h:
  • loader/EmptyClients.h:
  • page/ChromeClient.h: (WebCore::ChromeClient::elementDidFocus): (WebCore::ChromeClient::elementDidRefocus):
  • page/FocusController.cpp: (WebCore::dispatchEventsOnWindowAndFocusedElement): (WebCore::FocusController::setFocusedElement):

Source/WebKit:

Add support for preventScroll on iOS by avoiding UI-side zooming/scrolling to reveal the focused element if it
was focused with preventScroll: true. See below for more details.

Tests: fast/forms/select-focus-prevent-scroll.html

fast/forms/text-field-focus-prevent-scroll.html

  • Shared/FocusedElementInformation.cpp: (WebKit::FocusedElementInformation::encode const): (WebKit::FocusedElementInformation::decode):
  • Shared/FocusedElementInformation.h:

Add a boolean flag to FocusedElementInformation to indicate whether or not scrolling to reveal the focused
element should be prevented.

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

Only zoom to reveal the focused element if the focused element information's preventScroll flag is NO.

(-[WKContentView _elementDidBlur]):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::elementDidFocus): (WebKit::WebChromeClient::elementDidRefocus):
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::elementDidRefocus): (WebKit::WebPage::elementDidFocus):

Use FocusOptions to set the preventScroll flag when propagating FocusedElementInformation.

  • WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/ios:

Adjust the method signature of elementDidFocus. See WebCore ChangeLog for more information.

  • WebCoreSupport/WebChromeClientIOS.h:
  • WebCoreSupport/WebChromeClientIOS.mm: (WebChromeClientIOS::elementDidFocus):

Source/WebKitLegacy/mac:

Adjust the method signature of elementDidFocus. See WebCore ChangeLog for more information.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm: (WebChromeClient::elementDidFocus):

LayoutTests:

Add a couple of new layout tests to verify that passing in { preventScroll: true } for focus options causes
us to avoid scrolling to reveal focused select elements and text fields.

  • fast/forms/select-focus-prevent-scroll-expected.txt: Added.
  • fast/forms/select-focus-prevent-scroll.html: Added.
  • fast/forms/text-field-focus-prevent-scroll-expected.txt: Added.
  • fast/forms/text-field-focus-prevent-scroll.html: Added.
  • resources/ui-helper.js:

Also make it safe to call waitForInputSessionToDismiss() in a platform-agnostic test, by bailing early if
we're not on iOS, using WebKit2.

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

2:16 PM Changeset in webkit [291071] by Russell Epstein
  • 15 edits
    4 adds in branches/safari-613-branch/LayoutTests

Cherry-pick r290556. rdar://problem/89525864

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:

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

2:15 PM Changeset in webkit [291070] by Russell Epstein
  • 87 edits
    3 deletes in branches/safari-613-branch

Cherry-pick r289790. rdar://problem/89997669

ExtensionsGL is not useful class, it should be removed
https://bugs.webkit.org/show_bug.cgi?id=236490

Source/WebCore:

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.

Remove ExtensionsGL. It is not a useful class, it does not abstract anything.
It has similar functions to GraphicsContextGL subclass, and needs and uses GraphicsContextGL subclass
underneath.
It is a problematic class as it is obtained through a virtual function, but that
virtual function override is being called during construction of the GraphicsContextGL subclass
instance.
Also the ExtensionsGL will neccessarily call back to GraphicsContextGL subclass instance being
constructed.
Current getExtensions() virtual function override calls are expected to go
where the C++ defines them going during construction.
Current calls back to the GraphicsContextGL subclass instance during construction *should*
access state that is already initialized, but it is quite error-prone and hard to
analyze.

Move ExtensionsGL functions to GraphicsContextGL. Make call-sites call the context instead of the
extension helper. Rename the functions with pattern "isSupported" -> "isExtensionSupported".
Remove GraphicsContextGL::getExtensions() virtual function call.

For legacy contexts GraphicsContextGLOpenGL, GraphicsContextGLOpenGLES preserve their
ExtensionGLCommon subclasses. Accessing it happens from a normal function from legacy call sites
that know that they're calling GraphicsContextGLOpenGL.

For GraphicsContextGLANGLE, move context initialization code to GraphicsContextGLANGLE::initialize()
instead of the constructor. This way the initialization code can call virtual functions and the calls
are delivered normally to the last overrider.

RemoteGraphicsContextGLProxyBase can now be removed, as it is unneeded anyway and its added virtual
functions would cause inconvenient naming duplication.

No new tests, a refactor.

  • CMakeLists.txt:
  • Headers.cmake:
  • Modules/webxr/WebXROpaqueFramebuffer.cpp: (WebCore::WebXROpaqueFramebuffer::startFrame): (WebCore::WebXROpaqueFramebuffer::setupFramebuffer):
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/ANGLEInstancedArrays.cpp: (WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays): (WebCore::ANGLEInstancedArrays::supported):
  • html/canvas/ANGLEInstancedArrays.h:
  • html/canvas/EXTColorBufferFloat.cpp: (WebCore::EXTColorBufferFloat::EXTColorBufferFloat): (WebCore::EXTColorBufferFloat::supported):
  • html/canvas/EXTColorBufferFloat.h:
  • html/canvas/EXTColorBufferHalfFloat.cpp: (WebCore::EXTColorBufferHalfFloat::EXTColorBufferHalfFloat): (WebCore::EXTColorBufferHalfFloat::supported):
  • html/canvas/EXTColorBufferHalfFloat.h:
  • html/canvas/EXTFloatBlend.cpp: (WebCore::EXTFloatBlend::EXTFloatBlend): (WebCore::EXTFloatBlend::supported):
  • html/canvas/EXTFloatBlend.h:
  • html/canvas/EXTTextureCompressionRGTC.cpp: (WebCore::EXTTextureCompressionRGTC::EXTTextureCompressionRGTC):
  • html/canvas/KHRParallelShaderCompile.cpp: (WebCore::KHRParallelShaderCompile::KHRParallelShaderCompile): (WebCore::KHRParallelShaderCompile::supported):
  • html/canvas/KHRParallelShaderCompile.h:
  • html/canvas/OESFBORenderMipmap.cpp: (WebCore::OESFBORenderMipmap::OESFBORenderMipmap): (WebCore::OESFBORenderMipmap::supported):
  • html/canvas/OESFBORenderMipmap.h:
  • html/canvas/OESTextureFloat.cpp: (WebCore::OESTextureFloat::OESTextureFloat): (WebCore::OESTextureFloat::supported):
  • html/canvas/OESTextureFloat.h:
  • html/canvas/OESTextureHalfFloat.cpp: (WebCore::OESTextureHalfFloat::OESTextureHalfFloat): (WebCore::OESTextureHalfFloat::supported):
  • html/canvas/OESTextureHalfFloat.h:
  • html/canvas/OESVertexArrayObject.cpp:
  • html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::initializeShaderExtensions): (WebCore::WebGL2RenderingContext::getExtension): (WebCore::WebGL2RenderingContext::getSupportedExtensions):
  • html/canvas/WebGLColorBufferFloat.cpp: (WebCore::WebGLColorBufferFloat::WebGLColorBufferFloat): (WebCore::WebGLColorBufferFloat::supported):
  • html/canvas/WebGLColorBufferFloat.h:
  • html/canvas/WebGLCompressedTextureASTC.cpp: (WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC): (WebCore::WebGLCompressedTextureASTC::supported):
  • html/canvas/WebGLCompressedTextureASTC.h:
  • html/canvas/WebGLCompressedTextureATC.cpp: (WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC): (WebCore::WebGLCompressedTextureATC::supported):
  • html/canvas/WebGLCompressedTextureATC.h:
  • html/canvas/WebGLCompressedTextureETC.cpp: (WebCore::WebGLCompressedTextureETC::WebGLCompressedTextureETC): (WebCore::WebGLCompressedTextureETC::supported):
  • html/canvas/WebGLCompressedTextureETC.h:
  • html/canvas/WebGLCompressedTextureETC1.cpp: (WebCore::WebGLCompressedTextureETC1::WebGLCompressedTextureETC1): (WebCore::WebGLCompressedTextureETC1::supported):
  • html/canvas/WebGLCompressedTextureETC1.h:
  • html/canvas/WebGLCompressedTexturePVRTC.cpp: (WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC): (WebCore::WebGLCompressedTexturePVRTC::supported):
  • html/canvas/WebGLCompressedTexturePVRTC.h:
  • html/canvas/WebGLCompressedTextureS3TC.cpp: (WebCore::WebGLCompressedTextureS3TC::WebGLCompressedTextureS3TC): (WebCore::WebGLCompressedTextureS3TC::supported):
  • html/canvas/WebGLCompressedTextureS3TC.h:
  • html/canvas/WebGLCompressedTextureS3TCsRGB.cpp: (WebCore::WebGLCompressedTextureS3TCsRGB::WebGLCompressedTextureS3TCsRGB): (WebCore::WebGLCompressedTextureS3TCsRGB::supported):
  • html/canvas/WebGLCompressedTextureS3TCsRGB.h:
  • html/canvas/WebGLDebugShaders.cpp: (WebCore::WebGLDebugShaders::WebGLDebugShaders): (WebCore::WebGLDebugShaders::getTranslatedShaderSource):
  • html/canvas/WebGLDepthTexture.cpp: (WebCore::WebGLDepthTexture::WebGLDepthTexture): (WebCore::WebGLDepthTexture::supported):
  • html/canvas/WebGLDrawBuffers.cpp: (WebCore::WebGLDrawBuffers::WebGLDrawBuffers): (WebCore::WebGLDrawBuffers::supported): (WebCore::WebGLDrawBuffers::drawBuffersWEBGL): (WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
  • html/canvas/WebGLFramebuffer.cpp: (WebCore::getClearBitsByAttachmentType): (WebCore::getClearBitsByFormat): (WebCore::WebGLFramebuffer::checkStatus const): (WebCore::WebGLFramebuffer::drawBuffersIfNecessary): (WebCore::WebGLFramebuffer::getDrawBuffer):
  • html/canvas/WebGLMultiDraw.cpp: (WebCore::WebGLMultiDraw::WebGLMultiDraw): (WebCore::WebGLMultiDraw::supported):
  • html/canvas/WebGLMultiDraw.h:
  • html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getExtension): (WebCore::WebGLRenderingContext::getSupportedExtensions): (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): (WebCore::WebGLRenderingContext::getMaxDrawBuffers): (WebCore::WebGLRenderingContext::getMaxColorAttachments): (WebCore::WebGLRenderingContext::validateBlendEquation):
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::getChannelBitsByFormat): (WebCore::possibleFormatAndTypeForInternalFormat): (WebCore::WebGLRenderingContextBase::setupFlags): (WebCore::WebGLRenderingContextBase::getParameter): (WebCore::WebGLRenderingContextBase::getProgramParameter): (WebCore::WebGLRenderingContextBase::getShaderParameter): (WebCore::WebGLRenderingContextBase::getTexParameter): (WebCore::WebGLRenderingContextBase::getUniform): (WebCore::WebGLRenderingContextBase::hint): (WebCore::WebGLRenderingContextBase::readPixels): (WebCore::WebGLRenderingContextBase::renderbufferStorageImpl): (WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType): (WebCore::WebGLRenderingContextBase::texParameter): (WebCore::WebGLRenderingContextBase::loseContextImpl): (WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData): (WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions): (WebCore::WebGLRenderingContextBase::validateCompressedTexSubDimensions): (WebCore::WebGLRenderingContextBase::maybeRestoreContext): (WebCore::WebGLRenderingContextBase::getMaxDrawBuffers): (WebCore::WebGLRenderingContextBase::getMaxColorAttachments): (WebCore::WebGLRenderingContextBase::enableSupportedExtension):
  • html/canvas/WebGLVertexArrayObjectOES.cpp:
  • loader/FrameLoaderClient.h:
  • platform/graphics/ExtensionsGL.h: Removed.
  • platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::computeFormatAndTypeParameters):
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.h:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp: Removed.
  • platform/graphics/angle/ExtensionsGLANGLE.h: Removed.
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::initialize): (WebCore::GraphicsContextGLANGLE::platformInitializeContext): (WebCore::GraphicsContextGLANGLE::platformInitialize): (WebCore::GraphicsContextGLANGLE::texImage2D): (WebCore::GraphicsContextGLANGLE::validateDepthStencil): (WebCore::GraphicsContextGLANGLE::supportsExtension): (WebCore::GraphicsContextGLANGLE::ensureExtensionEnabled): (WebCore::GraphicsContextGLANGLE::isExtensionEnabled): (WebCore::GraphicsContextGLANGLE::getGraphicsResetStatusARB): (WebCore::GraphicsContextGLANGLE::getTranslatedShaderSourceANGLE): (WebCore::GraphicsContextGLANGLE::drawBuffersEXT): (WebCore::GraphicsContextGLANGLE::adjustWebGL1TextureInternalFormat):
  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::create): (WebCore::GraphicsContextGLCocoa::GraphicsContextGLCocoa): (WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE): (WebCore::GraphicsContextGLCocoa::platformInitializeContext): (WebCore::GraphicsContextGLCocoa::platformInitialize): (WebCore::GraphicsContextGLCocoa::reshapeDisplayBufferBacking): (WebCore::GraphicsContextGLCocoa::allocateAndBindDisplayBufferBacking): (WebCore::GraphicsContextGLCocoa::bindDisplayBufferBacking): (WebCore::GraphicsContextGLCocoa::prepareForDisplay):
  • platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm: (WebCore::createWebProcessGraphicsContextGL):
  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp: (WebCore::ExtensionsGLOpenGL::platformSupportsExtension):
  • platform/graphics/opengl/ExtensionsGLOpenGL.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp: (WebCore::ExtensionsGLOpenGLCommon::supports): (WebCore::ExtensionsGLOpenGLCommon::ensureEnabled):
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp: (WebCore::ExtensionsGLOpenGLES::isEnabled): (WebCore::ExtensionsGLOpenGLES::getGraphicsResetStatusARB): (WebCore::ExtensionsGLOpenGLES::platformSupportsExtension):
  • platform/graphics/opengl/ExtensionsGLOpenGLES.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: (WebCore::GraphicsContextGLOpenGL::getExtensions): (WebCore::GraphicsContextGLOpenGL::validateDepthStencil): (WebCore::GraphicsContextGLOpenGL::supportsExtension): (WebCore::GraphicsContextGLOpenGL::ensureExtensionEnabled): (WebCore::GraphicsContextGLOpenGL::isExtensionEnabled): (WebCore::GraphicsContextGLOpenGL::getGraphicsResetStatusARB): (WebCore::GraphicsContextGLOpenGL::drawBuffersEXT): (WebCore::GraphicsContextGLOpenGL::getTranslatedShaderSourceANGLE):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp: (WebCore::GraphicsContextGLOpenGL::texImage2D): (WebCore::GraphicsContextGLOpenGL::getExtensions):
  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp: (WebCore::GraphicsContextGLOpenGL::reshapeFBOs): (WebCore::GraphicsContextGLOpenGL::validateAttributes): (WebCore::GraphicsContextGLOpenGL::getExtensions):
  • platform/graphics/texmap/BitmapTextureGL.cpp:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp: (WebCore::GraphicsContextGLTextureMapper::create): (WebCore::createWebProcessGraphicsContextGL):
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp: (WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE): (WebCore::GraphicsContextGLTextureMapper::prepareForDisplay): (WebCore::GraphicsContextGLTextureMapper::reshapeDisplayBufferBacking):
  • platform/graphics/texmap/TextureMapperGL.cpp:

Source/WebKit:

Move the RemoteGraphicsContextGLProxyBase functions to
RemoteGraphicsContextGL. The ..Base can now be removed
as ExtensionGL is removed.

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::workQueueInitialize): (WebKit::RemoteGraphicsContextGL::ensureExtensionEnabled): (WebKit::RemoteGraphicsContextGL::markContextChanged):
  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h: (getGraphicsResetStatusARB): (getTranslatedShaderSourceANGLE): (drawBuffersEXT):
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp: (WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy): (WebKit::RemoteGraphicsContextGLProxy::setContextVisibility): (WebKit::RemoteGraphicsContextGLProxy::isGLES2Compliant const): (WebKit::RemoteGraphicsContextGLProxy::markContextChanged): (WebKit::RemoteGraphicsContextGLProxy::supportsExtension): (WebKit::RemoteGraphicsContextGLProxy::ensureExtensionEnabled): (WebKit::RemoteGraphicsContextGLProxy::isExtensionEnabled): (WebKit::RemoteGraphicsContextGLProxy::initialize): (WebKit::RemoteGraphicsContextGLProxy::reshape):
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:

Tools:

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.

Update manually implemented functions.

  • Scripts/generate-gpup-webgl:
  • TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:

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

2:15 PM Changeset in webkit [291069] by Russell Epstein
  • 5 edits
    5 adds in branches/safari-613-branch

Cherry-pick r289071. rdar://problem/89997434

ANGLE Metal and ANGLE OpenGL cannot be initialised one after the other
https://bugs.webkit.org/show_bug.cgi?id=236030

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-03
Reviewed by Dean Jackson.

Source/WebCore:

Test: webgl/pending/conformance2/misc/webgl2-after-webgl1-bug.html

Remove the power-preference specific native displays.
Add a native display for opengl, and use the default
one for Metal.

After the recent ANGLE roll, ANGLE uses (native display, power preference)
as the key to look up EGLDisplays.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::releaseThreadResources):
  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::initializeEGLDisplay):

LayoutTests:

  • webgl/pending/conformance2/misc/webgl2-after-webgl1-bug-expected.txt: Added.
  • webgl/pending/conformance2/misc/webgl2-after-webgl1-bug.html: Added.
  • webgl/resources/pending_webgl_test_files/conformance2/misc/webgl2-after-webgl1-bug.html: Added.

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

2:10 PM Changeset in webkit [291068] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] dominant-baseline should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237645

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

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

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::dominantBaseline const):
(WebCore::RenderStyle::setDominantBaseline):

2:07 PM Changeset in webkit [291067] by Lauro Moura
  • 1 edit
    1 add in trunk/Tools

[Tools] Add script to query results database
https://bugs.webkit.org/show_bug.cgi?id=233800

Reviewed by Jonathan Bedard.

This commit adds a script to query https://results.webkit.org for the
history of a testcase for a given bot/config. It includes a
--only-changes switch to show only revisions when the actual changed
from the previous one (useful to check when a test started failing).

For now it supports only layout-tests and has GTK/WPE bots predefined,
although full configurations (the query string for results.webkit.org)
can be used to access other bots.

  • Scripts/webkit-test-results: Added.
2:05 PM Changeset in webkit [291066] by Matteo Flores
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r290750.

Bug has been fixed, expectations are no longer needed.

Reverted changeset:

"[ iOS Debug ] editing/async-clipboard/* 20 tests are flaky
timeouts on iOS."
https://bugs.webkit.org/show_bug.cgi?id=237372
https://commits.webkit.org/r290750

1:46 PM Changeset in webkit [291065] by Lauro Moura
  • 2 edits in trunk/Tools

[webkitcorepy] Prefer xdg-open to open in linux
https://bugs.webkit.org/show_bug.cgi?id=237655

Reviewed by Jonathan Bedard.

  • Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py:

(Terminal.open_url):

1:06 PM Changeset in webkit [291064] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebCore/page/csp/ContentSecurityPolicy.cpp

Unreviewed build fix. rdar://83734079

error: no matching member function for call to 'reportViolation'

1:05 PM Changeset in webkit [291063] by zhifei_fang@apple.com
  • 7 edits
    1 add in trunk/Tools

[results.webkit.org]Add selection box for results database.
https://bugs.webkit.org/show_bug.cgi?id=233958

Reviewed by Jonathan Bedard.

Allow user can drag a selection box to select multiple dots.
Allow user to use cmd + click to select multiple dots.
Allow user to use shift + click to select a row of dots.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(TimelineFromEndpoint):
(TimelineFromEndpoint.prototype.update):
(TimelineFromEndpoint.prototype.getTestResultStatus):
(TimelineFromEndpoint.prototype.getTestResultUrl):
(TimelineFromEndpoint.prototype.render):

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/tooltip.js:
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:

(pointRectCollisionDetect): Detact if a point and a rect have a insertion.
(rectRectCollisionDetect): Detact if two rects have a insertion.
(XScrollableCanvasProvider): Add selection box.
(xScrollStreamRenderFactory):
(Timeline.CanvasSeriesComponent): Add selection box , cmd + click and shift + click.
(prototype.ExpandableSeriesComponent):
(prototype.Timeline.CanvasContainer):

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

12:59 PM Changeset in webkit [291062] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

The accessibility library should be soft linked optionally
https://bugs.webkit.org/show_bug.cgi?id=236513

Reviewed by Geoffrey Garen.

The accessibility library should be soft linked optionally, since it is not always present.

  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::handleAXPreferenceChange):
(WebKit::AuxiliaryProcess::handlePreferenceChange):

12:44 PM Changeset in webkit [291061] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

[CMake] Associate platform specific configuration with WinCairo
https://bugs.webkit.org/show_bug.cgi?id=237668

Reviewed by Basuke Suzuki.

Move all cairo and curl platform configuration under a check for WinCairo. This arranges
platform config in a consistent manner.

  • PlatformWin.cmake:
12:29 PM Changeset in webkit [291060] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support concept of 'blocked' pull requests
https://bugs.webkit.org/show_bug.cgi?id=237370
<rdar://problem/89689094>

Reviewed by Ryan Haddad.

cq- communicates that a change is blocked, either by an engineer or by a failed EWS run.
"changes requested" is not as dramatic as "cq-", so we are adding the concept of a "blocked"
pull request, which has simlar effects to "cq-".

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

(GitHubMixin._is_pr_blocked): Check if a pull request currently has the "blocked" tag.
(GitHubMixin.modify_label): Add or remove a label from a pull request.
(SetCommitQueueMinusFlagOnPatch.hideStepIf): Added.
(BlockPullRequest): Added.
(AnalyzeCompileWebKitResults.analyzeResults): Block PR if failed.
(AnalyzeLayoutTestsResults.report_failure): Ditto.

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

11:59 AM Changeset in webkit [291059] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS ] 2 imported/w3c/web-platform-tests/content-security-policy/connect-src/* tests are flaky text failures
https://bugs.webkit.org/show_bug.cgi?id=237603

Unreviewed test gardening.

  • platform/ios/TestExpectations:
11:48 AM Changeset in webkit [291058] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.9

Tag Safari-614.1.5.9.

11:43 AM Changeset in webkit [291057] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

File System Access: disallows names that are not permitted by underlying file system
https://bugs.webkit.org/show_bug.cgi?id=237635
rdar://89291566

We use FileSystem::fileSystemRepresentation to convert input name to a name that is permitted in current file
system. This patch makes File System Access API to throw error if the input name does not match the converted
name.

Reviewed by Youenn Fablet.

  • NetworkProcess/storage/FileSystemStorageHandle.cpp:

(WebKit::isValidFileName):
(WebKit::FileSystemStorageHandle::requestCreateHandle):
(WebKit::FileSystemStorageHandle::removeEntry):
(WebKit::FileSystemStorageHandle::move):

11:03 AM Changeset in webkit [291056] by jonlee@apple.com
  • 4 edits in trunk/Source/WebKit

Update feature flags for WebGL
https://bugs.webkit.org/show_bug.cgi?id=237666
rdar://problem/90040981

Reviewed by Geoffrey Garen.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-watchos.plist:
10:40 AM Changeset in webkit [291055] by Matteo Flores
  • 3 edits in trunk

[iOS] Hard link AVPictureInPictureController
https://bugs.webkit.org/show_bug.cgi?id=237227

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
10:32 AM Changeset in webkit [291054] by graouts@webkit.org
  • 6 edits in trunk

[css-lists] css/css-lists/inherit-overwrites.html and css/css-lists/li-counter-increment-computed-style.html are unique failures
https://bugs.webkit.org/show_bug.cgi?id=237642

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-lists/inherit-overwrites-expected.txt:
  • web-platform-tests/css/css-lists/li-counter-increment-computed-style-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/lists/lists-styles-expected.txt:

Source/WebCore:

A std::nullopt means the property isn't set, not that it shoudl be 0.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::counterToCSSValue):

10:16 AM Changeset in webkit [291053] by Simon Fraser
  • 18 edits in trunk/Source

Move RemoteLayerBackingStore::Buffer.isVolatile into ImageBufferBackend
https://bugs.webkit.org/show_bug.cgi?id=237631

Reviewed by Tim Horton.
Source/WebCore:

'isVolatile' is a property of a specific image buffer, so it makes more sense to have it in
ImageBuffer[Backend] than RemoteLayerBackingStore. This also allows GPU Process code to
maintain volatility state in the web process, which reduces the amount of IPC needed when
making the front buffer non-volatile before display.

So ImageBufferBackend gets volatilityState()/setVolatilityState(), accessed via ImageBuffer.
This state is maintained by RemoteRenderingBackendProxy for remote buffers. We set the state
to volatile when we receive the IPC reply for markSurfacesVolatile(), which requires
changing the reply to list buffers for which making volatile was successful.

RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile() can now
early return when the buffer is already non-volatile, and we have a backend handle (recall
that we clear backend handles when trying to make a buffer volatile).

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

(WebCore::ImageBufferBackend::volatilityState const):
(WebCore::ImageBufferBackend::setVolatilityState):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::setVolatile):
(WebCore::ImageBufferIOSurfaceBackend::setNonVolatile):
(WebCore::ImageBufferIOSurfaceBackend::volatilityState const):
(WebCore::ImageBufferIOSurfaceBackend::setVolatilityState):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Source/WebKit:

'isVolatile' is a property of a specific image buffer, so it makes more sense to have it in
ImageBuffer[Backend] than RemoteLayerBackingStore. This also allows GPU Process code to
maintain volatility state in the web process, which reduces the amount of IPC needed when
making the front buffer non-volatile before display.

So ImageBufferBackend gets volatilityState()/setVolatilityState(), accessed via ImageBuffer.
This state is maintained by RemoteRenderingBackendProxy for remote buffers. We set the state
to volatile when we receive the IPC reply for markSurfacesVolatile(), which requires
changing the reply to list buffers for which making volatile was successful.

RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile() can now
early return when the buffer is already non-volatile, and we have a backend handle (recall
that we clear backend handles when trying to make a buffer volatile).

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::markSurfacesVolatile):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::setBufferVolatile):
(WebKit::RemoteLayerBackingStore::setBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::didMakeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::Buffer::discard):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::RemoteLayerWithRemoteRenderingBackingStoreCollection):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectBackingStoreBufferIdentifiersToMarkVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::sendMarkBuffersVolatile): Call the completion handler inside the callback.

  • WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h:

(WebKit::ImageBufferBackendHandleSharing::hasBackendHandle const):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile):
(WebKit::RemoteRenderingBackendProxy::markSurfacesVolatile):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:

(WebKit::ImageBufferRemoteIOSurfaceBackend::createBackendHandle const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::hasBackendHandle const):

  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
10:13 AM Changeset in webkit [291052] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

  • platform/ios-wk2/TestExpectations:
9:47 AM Changeset in webkit [291051] by youenn@apple.com
  • 23 edits
    2 adds in trunk/Source

Allow to pass webrtc video frame buffers through RealtimeMediaSource based pipelines
https://bugs.webkit.org/show_bug.cgi?id=236131
<rdar://problem/88805580>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Update routines to take VideoFrameBuffer instead of VideoFrame.
Fix bugs in handling of YUV conversion libwebrtc routines.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

Source/WebCore:

Introduce VideoFrameLibWebRTC as a wrapper to libwebrtc video frame buffer.
In case we send VideoFrameLibWebRTC through RealtimeOutgoingVideoSourceCocoa, directly send the video frame buffer.
When receiving libwebrtc video frame buffers in RealtimeIncomingVideoSourceCocoa, make use of VideoFrameLibWebRTC to delay conversion of the video frame buffer in a CVPixelBufferRef.
In most cases, the conversion is unneeded as the video frame buffer will be used for rendering and will be copied to shared memory through SharedVideoFrameWriter.
Fix bugs in handling of YUV conversion libwebrtc routines.
Minor refactoring to have a default asVideoFrameCV method implementatin in VideoFrame.

Covered by existing tests.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/VideoFrame.cpp:
  • platform/VideoFrame.h:
  • platform/cocoa/SharedVideoFrameInfo.h:
  • platform/cocoa/SharedVideoFrameInfo.mm:
  • platform/mediastream/libwebrtc/VideoFrameLibWebRTC.cpp: Added.
  • platform/mediastream/libwebrtc/VideoFrameLibWebRTC.h: Added.
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

Source/WebKit:

Add optimization support for VideoFrameLibWebRTC writing into shared memory.
This removes the need to convert the webrtc video frame into a CVPixelBuffer, just to send it to GPUProcess for rendering.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
  • WebProcess/GPU/webrtc/SharedVideoFrame.h:
7:58 AM Changeset in webkit [291050] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Extract revision from git svn dcommit (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=236849
<rdar://problem/89155179>

Unreviewed follow-up fix.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:

(Land.main): Only capture stdout.

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

7:25 AM Changeset in webkit [291049] by youenn@apple.com
  • 9 edits in trunk

WebRTC decoded frames are not correctly rotated in case GPU Process DOM rendering flag is set to true
https://bugs.webkit.org/show_bug.cgi?id=237468
<rdar://problem/89807876>

Reviewed by Eric Carlson.

Source/WebCore:

We were creating remote video frames at webrtc decoder level but at that level, we do not know yet the rotation and timestamps of the frame.
We need to set those values when the frame is exposed to RealtimeIncomingVideoSource.
Previous tests did not catch the regression as we were correctly computing the size of the video using the webrtc rotation and not the rotation from the frame.
We should probably migrate to RemoteVideoFrameProxy as a buffer wrapper so that we can easily create remote video frames from a RemoteVideoFrameProxy buffer.
In the meantime, we use const_cast in VideoFrame::initializeCharacteristics.

Covered by updated test.

  • platform/VideoFrame.cpp:
  • platform/VideoFrame.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • webrtc/video-rotation.html:

Observe actual video frame rotation value.

6:30 AM Changeset in webkit [291048] by Fujii Hironori
  • 10 edits
    2 adds in trunk/Source

[WinCairo] Improve WCTiledBacking and TextureMapperSparseBackingStore
https://bugs.webkit.org/show_bug.cgi?id=237355

Reviewed by Don Olmstead.

Source/WebCore:

  • platform/graphics/texmap/TextureMapperSparseBackingStore.cpp:

(WebCore::TextureMapperSparseBackingStore::setSize):
(WebCore::TextureMapperSparseBackingStore::paintToTextureMapper):
(WebCore::TextureMapperSparseBackingStore::drawBorder):
(WebCore::TextureMapperSparseBackingStore::drawRepaintCounter):
(WebCore::TextureMapperSparseBackingStore::updateContents):
(WebCore::TextureMapperSparseBackingStore::removeTile):
(WebCore::TextureMapperSparseBackingStore::TextureMapperSparseBackingStore): Deleted.
(WebCore::TextureMapperSparseBackingStore::removeUncoveredTiles): Deleted.
(WebCore::TextureMapperSparseBackingStore::tileDimension const): Deleted.

  • platform/graphics/texmap/TextureMapperSparseBackingStore.h:
  • platform/graphics/texmap/TextureMapperTile.h:

Source/WebKit:

TextureMapperSparseBackingStore simply had a Vector to have all
tiles. If a web page had a very large layer, the vector was
extended to be able to keep all tiles, and it performed poorly.
Use a HashMap to keep tiles only in the coverage rect.

GraphicsLayerWC had only one dirty rect, and created a
ImageBuffer for all tiles to update. Change it to have one dirty
rect for one tile, and create a ImageBuffer for every dirty tile.

  • GPUProcess/graphics/wc/WCScene.cpp:

(WebKit::WCScene::update):

  • PlatformWin.cmake:
  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::flushLayerImageBuffers):

  • WebProcess/WebPage/wc/GraphicsLayerWC.cpp:

(WebKit::GraphicsLayerWC::setSize):
(WebKit::GraphicsLayerWC::recursiveCommitChanges):

  • WebProcess/WebPage/wc/WCTileGrid.cpp: Added.

(WebKit::WCTileGrid::Tile::Tile):
(WebKit::WCTileGrid::Tile::addDirtyRect):
(WebKit::WCTileGrid::Tile::clearDirtyRect):
(WebKit::WCTileGrid::Tile::hasDirtyRect const):
(WebKit::WCTileGrid::setSize):
(WebKit::WCTileGrid::tileRectFromPixelRect):
(WebKit::WCTileGrid::tileSizeFromPixelSize):
(WebKit::WCTileGrid::tilePixelSize const):
(WebKit::WCTileGrid::addDirtyRect):
(WebKit::WCTileGrid::clearDirtyRects):
(WebKit::WCTileGrid::ensureTile):
(WebKit::WCTileGrid::setCoverageRect):

  • WebProcess/WebPage/wc/WCTileGrid.h: Added.

(WebKit::WCTileGrid::Tile::willRemove const):
(WebKit::WCTileGrid::Tile::setWillRemove):
(WebKit::WCTileGrid::Tile::dirtyRect):
(WebKit::WCTileGrid::tiles):

  • WebProcess/WebPage/wc/WCUpateInfo.h:

(WebKit::WCTileUpdate::encode const):
(WebKit::WCTileUpdate::decode):
(WebKit::WCLayerUpateInfo::encode const):
(WebKit::WCLayerUpateInfo::decode):

5:44 AM Changeset in webkit [291047] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[web-animations] increase the max number of animatable properties
https://bugs.webkit.org/show_bug.cgi?id=237651

Reviewed by Antti Koivisto.

We've run out of space in m_propertyToIdMap, the limit was 255.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

5:34 AM Changeset in webkit [291046] by Antti Koivisto
  • 6 edits in trunk

[CSS Container Queries] Remove size() function syntax
https://bugs.webkit.org/show_bug.cgi?id=237639

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:

Source/WebCore:

Per https://github.com/w3c/csswg-drafts/issues/6870

  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeContainerQuery):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeSingleContainerName):

Also disallow strings as container names (they need to be identifiers).

5:31 AM Changeset in webkit [291045] by Angelos Oikonomopoulos
  • 3 edits in trunk/Tools

[JSC] Make runner should only schedule tests on live remotes
https://bugs.webkit.org/show_bug.cgi?id=237030

Reviewed by Adrian Perez de Castro.

The make runner does static scheduling of tests, i.e. it will
assign tests to all known remotes. In practice, this means that
even though the make runner participates in the retry loop, it
will always end up scheduling any tests that failed to run
(e.g. because the remote was down on startup or went away during
testing) on all remotes, including ones that are known to be down.

This patch makes it slightly more robust by introducing a liveness
check (getLiveRemoteHosts) before the static scheduling, i.e.

  1. in the initial preparation of the tests to run (prepareArtifacts) and
  2. in refreshExecution.

It reuses the command to get the number of processors as the
liveness check (it's a command we know currenly works in all
supported remotes), so flips numberOfProcessors inside-out.
While here, it adds getconf _NPROCESSORS_ONLN as a final attempt
to get the number of processors.

This does not mean that the make runner is now robust against
flaky remotes. At the very least, it's still missing an ssh
timeout (so it won't hang e.g. when hosts go away after the
initial connection is established) and child cleanup (e.g. when
bailing early from one remote in forEachRemote, it needs to kill
all children for other remotes, or we might end up retrying while
the old jobs are still running). But it's getting there.

Q: But isn't the GNU parallel runner much better suited for
handling flaky remotes?

A: Yes. However, the make runner is (somewhat) better at keeping
the remote CPUs busy with "fast" remotes, so we may still want to
use it when the remotes are both fast and stable enough. That
said, it still needs to be able to recover from the occasional
failed remote without producing false test failures.

  • Scripts/run-jsc-stress-tests:
  • Scripts/webkitruby/jsc-stress-test/executor.rb:

Make remoteHosts available to refreshExecution.

5:29 AM Changeset in webkit [291044] by Fujii Hironori
  • 4 edits in trunk/Source/WebCore

[WinCairo] SpatialNavigation.h(93): error C2365: 'WebCore::None': redefinition; previous definition was 'enumerator'
https://bugs.webkit.org/show_bug.cgi?id=237647

Unreviewed build fix.

Changed WebCore::RectsAlignment to an enum class.

  • page/FocusController.cpp:

(WebCore::updateFocusCandidateIfNeeded):

  • page/SpatialNavigation.cpp:

(WebCore::FocusCandidate::FocusCandidate):
(WebCore::alignmentForRects):
(WebCore::distanceDataForNode):

  • page/SpatialNavigation.h:

(WebCore::FocusCandidate::FocusCandidate):
(): Deleted.

5:01 AM Changeset in webkit [291043] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] color-interpolation-filters should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237637

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

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

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::colorInterpolationFilters const):
(WebCore::RenderStyle::setColorInterpolationFilters):

4:58 AM Changeset in webkit [291042] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] clip-rule should support discrete animations
https://bugs.webkit.org/show_bug.cgi?id=237609

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

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

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::clipRule const):
(WebCore::RenderStyle::setClipRule):

4:55 AM Changeset in webkit [291041] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] background-blend-mode should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237607

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

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

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::backgroundBlendMode const):
(WebCore::RenderStyle::setBackgroundBlendMode):

4:52 AM Changeset in webkit [291040] by graouts@webkit.org
  • 13 edits in trunk

[web-animations] font-family should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237591

Reviewed by Myles Maxfield.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontFamilies):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontFamilies const):

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
4:45 AM Changeset in webkit [291039] by graouts@webkit.org
  • 11 edits in trunk

[web-animations] font-feature-settings should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237587

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • platform/graphics/FontTaggedSettings.cpp:

(WebCore::operator<<):

  • platform/graphics/FontTaggedSettings.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontFeatureSettings):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontFeatureSettings const):

4:43 AM Changeset in webkit [291038] by Carlos Garcia Campos
  • 9 edits in trunk/Source

[GTK][WPE] Stop using the env var WEBKIT_INSPECTOR_SERVER to connect to the inspector
https://bugs.webkit.org/show_bug.cgi?id=237646

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Add RemoteInspector::s_inspectorServerAddress to keep the remote inspector server address instead of the
environment variable used to start the server.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/glib/RemoteInspectorGlib.cpp:

(Inspector::RemoteInspector::RemoteInspector): Only call start if s_inspectorServerAddress is not null.
(Inspector::RemoteInspector::start): Use s_inspectorServerAddress instead of querying the environment.

Source/WebKit:

Use it only in the UI process to start the server, but propagate the address to web process using creation
parameters.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Encode inspectorServerAddress.
(WebKit::WebProcessCreationParameters::decode): Decode inspectorServerAddress.

  • Shared/WebProcessCreationParameters.h: Add inspectorServerAddress.
  • UIProcess/API/glib/WebKitInitialize.cpp:

(WebKit::initializeRemoteInspectorServer): Set RemoteInspector::s_inspectorServerAddress if the server started
successfully.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Set inspectorServerAddress parameter from
RemoteInspector::s_inspectorServerAddress value.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Set RemoteInspector::s_inspectorServerAddress from creation
parameter value.

4:37 AM Changeset in webkit [291037] by graouts@webkit.org
  • 14 edits
    1 add in trunk

[web-animations] font-kerning should supporting discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237585

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • platform/text/TextFlags.cpp: Added.

(WebCore::operator<<):

  • platform/text/TextFlags.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontKerning):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontKerning const):

  • style/PropertyAllowlist.cpp:

(WebCore::Style::isValidMarkerStyleProperty):

3:38 AM Changeset in webkit [291036] by Antti Koivisto
  • 88 edits
    7 moves
    23 adds in trunk/LayoutTests

[CSS Container Queries] Import updated WPTs
https://bugs.webkit.org/show_bug.cgi?id=237638

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

Upstream has been updated with the new syntax from

https://github.com/w3c/csswg-drafts/issues/6870

and behavior from

https://github.com/w3c/csswg-drafts/issues/6644

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/container-queries/animation-container-size.html:
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic.html:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation.html:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition.html:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation.html:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars.html:
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation.html:
  • web-platform-tests/css/css-contain/container-queries/canvas-as-container-005-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/canvas-as-container-005.html: Added.
  • web-platform-tests/css/css-contain/container-queries/canvas-as-container-006-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/canvas-as-container-006.html: Added.
  • web-platform-tests/css/css-contain/container-queries/change-display-in-container.html:
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status.html:
  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-computed.html:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt.
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative.html.
  • web-platform-tests/css/css-contain/container-queries/container-inner-at-rules-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-inner-at-rules.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-computed.html:
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation.html:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-nested-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-nested.html:
  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection.html:
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation.html:
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation.html:
  • web-platform-tests/css/css-contain/container-queries/container-units-small-viewport-fallback-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-small-viewport-fallback.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular.html:
  • web-platform-tests/css/css-contain/container-queries/counters-in-container-dynamic.html:
  • web-platform-tests/css/css-contain/container-queries/counters-in-container.html:
  • web-platform-tests/css/css-contain/container-queries/deep-nested-inline-size-containers-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/deep-nested-inline-size-containers.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-contents.html:
  • web-platform-tests/css/css-contain/container-queries/display-in-container.html:
  • web-platform-tests/css/css-contain/container-queries/display-none.html:
  • web-platform-tests/css/css-contain/container-queries/fieldset-legend-change.html:
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-000-crash.html:
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-001-crash.html:
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-002-crash.html:
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-003-crash.html:
  • web-platform-tests/css/css-contain/container-queries/focus-inside-content-visibility-crash.html:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic.html:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units.html:
  • web-platform-tests/css/css-contain/container-queries/fragmented-container-001-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/fragmented-container-001.html: Added.
  • web-platform-tests/css/css-contain/container-queries/get-animations.html:
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-000-crash.html:
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-001-crash.html:
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-002-crash.html:
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-003-crash.html:
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation.html:
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment.html:
  • web-platform-tests/css/css-contain/container-queries/inline-multicol-inside-container-crash.html:
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width.html:
  • web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats.html:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl.html:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment.html:
  • web-platform-tests/css/css-contain/container-queries/inline-with-columns-000-crash.html:
  • web-platform-tests/css/css-contain/container-queries/inline-with-columns-001-crash.html:
  • web-platform-tests/css/css-contain/container-queries/multicol-container-001-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/multicol-container-001.html: Added.
  • web-platform-tests/css/css-contain/container-queries/multicol-inside-container.html:
  • web-platform-tests/css/css-contain/container-queries/never-match-container-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/never-match-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query.html:
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal.html:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001.html:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-expected.html: Removed.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-ref.html: Removed.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative.html: Removed.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative.html.
  • web-platform-tests/css/css-contain/container-queries/query-content-box.html:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation.html:
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child.html:
  • web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden.html:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box.html:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation.html:
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container.html:
  • web-platform-tests/css/css-contain/container-queries/svg-layout-root-crash.html:
  • web-platform-tests/css/css-contain/container-queries/svg-root-size-container-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/svg-root-size-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-000-crash.html:
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-001-crash.html:
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-002-crash.html:
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-003-crash.html:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop.html:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container.html:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog.html:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog.html:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars.html:
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event.html:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis.html:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic.html:
  • web-platform-tests/css/css-contain/container-queries/viewport-units.html:
  • web-platform-tests/css/css-contain/container-queries/w3c-import.log:
  • web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal.html:

LayoutTests:

12:36 AM Changeset in webkit [291035] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

GraphicsContextGLCocoa manages EGL native displays manually
https://bugs.webkit.org/show_bug.cgi?id=237313

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-09
Reviewed by Kenneth Russell.

ANGLE now keys the Metal EGL_DEFAULT_DISPLAY on the EGL_PLATFORM_ANGLE_TYPE_ANGLE.
This means that we do not need to use the default a native display for Metal and an
invented native display for OpenGL.

  • platform/graphics/GraphicsTypesGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::platformInitialize):
(WebCore::GraphicsContextGLANGLE::releaseThreadResources):

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::initializeEGLDisplay):
(WebCore::GraphicsContextGLCocoa::platformInitialize):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLTextureMapper::platformInitialize):

12:04 AM Changeset in webkit [291034] by youenn@apple.com
  • 62 edits
    1 move
    3 deletes in trunk

Scope capture sources by page identifiers
https://bugs.webkit.org/show_bug.cgi?id=237359

Reviewed by Eric Carlson.

Source/WebCore:

Pass PageIdentifier when creating capture sources.
This is used at WebKit layer to better handle creation of mulitple sources.
Since we are now sometimes answering to getUserMedia by cloning sources directly,
fix a bug in RealtimeVideoSource to use the preset aspect ratio to compute missing width or height.
Introduce a way to end immediately a capture source, this is used on GPUProcess side in case starting a capture using a different device.

Covered by existing tests.

  • Headers.cmake:
  • Modules/mediastream/MediaDevices.cpp:
  • Modules/mediastream/MediaStreamTrack.cpp:
  • Modules/speech/SpeechRecognitionCaptureSource.cpp:
  • Modules/speech/SpeechRecognitionCaptureSource.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/PageIdentifier.h: Renamed from Source/WebCore/page/PageIdentifier.h.
  • platform/mediastream/MediaStreamRequest.h:
  • platform/mediastream/RealtimeMediaSource.cpp:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:
  • platform/mediastream/RealtimeMediaSourceFactory.cpp: Removed.
  • platform/mediastream/RealtimeMediaSourceFactory.h:
  • platform/mediastream/RealtimeVideoCaptureSource.cpp:
  • platform/mediastream/RealtimeVideoCaptureSource.h:
  • platform/mediastream/RealtimeVideoSource.cpp:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:
  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
  • platform/mediastream/mac/AVVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
  • platform/mediastream/mac/CoreAudioCaptureSource.h:
  • platform/mediastream/mac/MockAudioSharedUnit.mm:
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • platform/mock/MockRealtimeAudioSource.cpp:
  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:
  • platform/mock/MockRealtimeVideoSource.h:

Source/WebKit:

Pass PageIdentifier where appropriate.
Make use of PageIdentifier in UserMediaCaptureManagerProxy:

  • For microphone, if there is a source with a different device, fail the source as we are not yet supporting concurrent captures.
  • For camera, if there is a source with a different device, fail the source as we are not yet supporting concurrent captures (only on iOS). Otherwise, if there is a matching source, clone it so that we reduce the overhead of creating a new source (setting up a camera can be an expensive operation).

We silently fail (meaning there is no console log message for now, while still firing ended event) but add release logging to detect this case.
Minor refactoring to have one message in case capture source ends (stopped or failing) instead of two.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:
  • UIProcess/WebPageProxy.cpp:
  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:
  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:
  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.messages.in:
  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeAudioSource.h:
  • WebProcess/cocoa/RemoteRealtimeDisplaySource.cpp:
  • WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:
  • WebProcess/cocoa/UserMediaCaptureManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.messages.in:

LayoutTests:

Remove platform/ios/mediastream/getUserMedia-single-capture.html now that we no longer handle multi capture in WebProcess but in GPUProcess.
Update platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html to be like platform/ios/mediastream/audio-muted-in-background-tab.html
so that test is no longer dependent on synchronous event firing.

  • platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html:
  • platform/ios/mediastream/getUserMedia-single-capture-expected.txt: Removed.
  • platform/ios/mediastream/getUserMedia-single-capture-gpu-process.html:
  • platform/ios/mediastream/getUserMedia-single-capture.html: Removed.
Note: See TracTimeline for information about the timeline view.