Timeline



Jan 25, 2022:

11:58 PM Changeset in webkit [288607] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

Unreviewed, reverting r288606.
https://bugs.webkit.org/show_bug.cgi?id=235629

Should never have been committed

Reverted changeset:

"[WebGPU] Fix WGSLUnitTests build"
https://bugs.webkit.org/show_bug.cgi?id=235628
https://commits.webkit.org/r288606

Patch by Commit Queue <commit-queue@webkit.org> on 2022-01-25

11:54 PM Changeset in webkit [288606] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Fix WGSLUnitTests build
https://bugs.webkit.org/show_bug.cgi?id=235628

Unreviewed.

  • Configurations/WGSLUnitTests.xcconfig:
11:00 PM Changeset in webkit [288605] by Chris Dumez
  • 12 edits in trunk

REGRESSION (iOS 15.2): Loading gets stuck after back-navigation involving COOP header
https://bugs.webkit.org/show_bug.cgi?id=235475
<rdar://problem/87948317>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make sure ShouldTreatAsContinuingLoad is properly propagated for back/forward navigations,
not just regular loadRequests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:

Source/WebKit:

WebPageProxy::continueNavigationInNewProcess() was failing to pass the identifier of the
NetworkResourceLoader that needs to be resumed to ProvisionalPageProxy::goToBackForwardItem().
It was only passing it to ProvisionalPageProxy::loadRequest(), which is used for non-back/forward
navigations. As a result, in case of COOP process-swap on back/forward navigation, the network
process would start a fresh load instead of resuming the existing one. The fresh load would get
a COOP header and thus trigger yet another process swap (and so on in a loop).

Also fix an issue where ProvisionalPageProxy::goToBackForwardItem() would always use
ShouldTreatAsContinuingLoad::YesAfterNavigationPolicyDecision even in the case of a COOP
process-swap. In the case of a COOP process-swap, we should pass in
ShouldTreatAsContinuingLoad::YesAfterProvisionalLoadStarted. This was causing us to
do an extra call to didStartProvisionalLoad() and was causing the new API test to hit
an assertion on debug builds.

Covered by new API test.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::goToBackForwardItem):

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

(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadData):
(WebKit::WebPage::goToBackForwardItem):

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

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:22 PM Changeset in webkit [288604] by eric.carlson@apple.com
  • 56 edits
    2 copies
    8 adds in trunk

[macOS] Add new screen and window capture backend
https://bugs.webkit.org/show_bug.cgi?id=234029
Source/WebCore:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

New API test: GetDisplayMediaWindowAndScreen.mm

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • en.lproj/Localizable.strings: Add strings for window and screen prompts.
  • platform/mediastream/MediaConstraints.h:

(WebCore::StringConstraint::getExact const): Drive-by: fix logic inversion bug.
(WebCore::StringConstraint::getIdeal const): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance): Assert if device ID constraint is
not a string.

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::useScreenCaptureKit const):
(WebCore::RealtimeMediaSourceCenter::setUseScreenCaptureKit):
(WebCore::RealtimeMediaSourceCenter::useMockCaptureDevices const):
(WebCore::RealtimeMediaSourceCenter::setUseMockCaptureDevices):

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::create):
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
(WebCore::DisplayCaptureSourceCocoa::Capturer::setObserver):
(WebCore::DisplayCaptureSourceCocoa::Capturer::capturerIsRunningChanged): Deleted.

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:

(WebCore::CapturerObserver::capturerIsRunningChanged):
(WebCore::CapturerObserver::capturerFailed):

  • platform/mediastream/ios/ReplayKitCaptureSource.mm:

(WebCore::ReplayKitCaptureSource::captureStateDidChange):

  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:

(WebCore::DisplayCaptureManagerCocoa::updateDisplayCaptureDevices): Use
ScreenCaptureKitCaptureSource when available.
(WebCore::DisplayCaptureManagerCocoa::updateWindowCaptureDevices): Ditto.
(WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID): Ditto.
(WebCore::DisplayCaptureManagerCocoa::windowCaptureDeviceWithPersistentID): Ditto.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.h: Added.
  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm: Added.

(-[WebCoreScreenCaptureKitHelper initWithCallback:]):
(-[WebCoreScreenCaptureKitHelper disconnect]):
(-[WebCoreScreenCaptureKitHelper stream:didStopWithError:]):
(WebCore::usingOldAPI):
(WebCore::ScreenCaptureKitCaptureSource::isAvailable):
(WebCore::ScreenCaptureKitCaptureSource::create):
(WebCore::ScreenCaptureKitCaptureSource::ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::~ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::start):
(WebCore::ScreenCaptureKitCaptureSource::stop):
(WebCore::ScreenCaptureKitCaptureSource::streamFailedWithError):
(WebCore::ScreenCaptureKitCaptureSource::generateFrame):
(WebCore::ScreenCaptureKitCaptureSource::processSharableContent):
(WebCore::ScreenCaptureKitCaptureSource::findShareableContent):
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
(WebCore::ScreenCaptureKitCaptureSource::intrinsicSize const):
(WebCore::ScreenCaptureKitCaptureSource::updateStreamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::commitConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::captureQueue):
(WebCore::ScreenCaptureKitCaptureSource::frameAvailableHandler):
(WebCore::ScreenCaptureKitCaptureSource::deviceType const):
(WebCore::ScreenCaptureKitCaptureSource::surfaceType const):
(WebCore::ScreenCaptureKitCaptureSource::screenCaptureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::screenCaptureDevices):
(WebCore::ScreenCaptureKitCaptureSource::windowCaptureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::windowCaptureDevices):
(WebCore::ScreenCaptureKitCaptureSource::forEachNSWindow):

  • platform/mock/MockMediaDevice.h:

(WebCore::MockMediaDevice::captureDevice const): Make devices enabled by default.
Initialize screen and window devices with the correct type.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices): Fix window device types.
(WebCore::MockRealtimeMediaSourceCenter::displayDevices):

  • platform/mock/MockRealtimeMediaSourceCenter.h:

Source/WebCore/PAL:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • PAL.xcodeproj/project.pbxproj:
  • pal/mac/ScreenCaptureKitSoftLink.h: Added.
  • pal/mac/ScreenCaptureKitSoftLink.mm: Added.

Source/WebKit:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultScreenCaptureKitEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKPreferences.mm: Add _useScreenCaptureKit private preference.

(-[WKPreferences _useScreenCaptureKit]):
(-[WKPreferences _setUseScreenCaptureKit:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add private delegate for a

getDisplayMedia-specific prompt.

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

(-[WKWebView _setIndexOfGetDisplayMediaDeviceSelectedForTesting:]): Set the index
of the screen or window device to return for getDisplayMedia without prompting.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::promptForDisplayCapturePermission): Call new
screen/window capture delegate.
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::promptForGetDisplayMedia): Add parameter
specifying a window or screen capture prompt.

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::manager const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIndexOfGetDisplayMediaDeviceSelectedForTesting):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/DisplayCaptureSessionManager.h: Added.

(WebKit::DisplayCaptureSessionManager::setIndexOfDeviceSelectedForTesting):

  • UIProcess/mac/DisplayCaptureSessionManager.mm: Added.

(WebKit::getMockWindowList):
(WebKit::getCGWindowList):
(WebKit::getWindowList):
(WebKit::alertForWindowSelection):
(WebKit::DisplayCaptureSessionManager::alertForGetDisplayMedia):
(WebKit::DisplayCaptureSessionManager::isAvailable):
(WebKit::DisplayCaptureSessionManager::singleton):
(WebKit::DisplayCaptureSessionManager::DisplayCaptureSessionManager):
(WebKit::DisplayCaptureSessionManager::~DisplayCaptureSessionManager):
(WebKit::DisplayCaptureSessionManager::promptForGetDisplayMedia):
(WebKit::DisplayCaptureSessionManager::deviceSelectedForTesting):
(WebKit::DisplayCaptureSessionManager::showWindowPicker):
(WebKit::DisplayCaptureSessionManager::showScreenPicker):

  • UIProcess/mac/UserMediaPermissionRequestProxyMac.h: Added.
  • UIProcess/mac/UserMediaPermissionRequestProxyMac.mm: Added.

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxyMac::UserMediaPermissionRequestProxyMac):
(WebKit::UserMediaPermissionRequestProxyMac::~UserMediaPermissionRequestProxyMac):
(WebKit::UserMediaPermissionRequestProxyMac::promptForGetDisplayMedia):
(WebKit::UserMediaPermissionRequestProxyMac::canPromptForGetDisplayMedia):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Add UseScreenCaptureKit.
  • wtf/PlatformEnableCocoa.h: Define ENABLE_SCREEN_CAPTURE_KIT.
  • wtf/PlatformHave.h: Define HAVE_SCREEN_CAPTURE_KIT.
  • wtf/cocoa/SoftLinking.h: Add softlink macros that take an API_AVAILABLE check.

Tools:

Reviewed by Jer Noble and Youenn Fablet.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMediaWindowAndScreen.mm: Added.

(-[WindowAndScreenCaptureTestView haveStream:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewUnderPageBackgroundColor.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebProcessTerminate.mm:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.h:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm:

(-[UserMediaCaptureUIDelegate init]):
(-[UserMediaCaptureUIDelegate setGetDisplayMediaDecision:]):
(-[UserMediaCaptureUIDelegate _webView:requestDisplayCapturePermissionForOrigin:initiatedByFrame:decisionHandler:]):

8:15 PM Changeset in webkit [288603] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Build fix for Mac Catalyst
https://bugs.webkit.org/show_bug.cgi?id=235625

Unreviewed.

The WGSL headers and .a file for Mac Catalyst need to not collide with the same files for regular Mac builds.

  • Configurations/Base.xcconfig:
  • Configurations/WGSL.xcconfig:
8:12 PM Changeset in webkit [288602] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Shadows are flattened to bitmaps in CGDisplayListImageBufferBackend
https://bugs.webkit.org/show_bug.cgi?id=235617

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContextCG::fillRect):
(WebCore::GraphicsContextCG::fillRoundedRectImpl):
(WebCore::GraphicsContextCG::fillRectWithRoundedHole):
(WebCore::GraphicsContextCG::canUseShadowBlur const):

  • platform/graphics/cg/GraphicsContextCG.h:

Factor out canUseShadowBlur so that GraphicsContextCG subclasses can
request that we not use WebCore's custom shadow implementation.

Source/WebKit:

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

Disable ShadowBlur for CGDisplayListImageBufferBackend, allowing it to
be recorded as a "shadow" display list item instead of a series of bitmaps.

7:14 PM Changeset in webkit [288601] by Fujii Hironori
  • 23 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/wincairo/fast/css/word-space-extra-expected.txt:
  • platform/wincairo/fast/dom/52776-expected.txt:
  • platform/wincairo/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/wincairo/fast/text/atsui-spacing-features-expected.txt:
  • platform/wincairo/fast/text/basic/015-expected.txt:
  • platform/wincairo/fast/text/international/003-expected.txt:
  • platform/wincairo/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-001-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-002-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-003-expected.txt:
  • platform/wincairo/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/wincairo/fast/text/international/hebrew-vowels-expected.txt:
  • platform/wincairo/fast/text/international/hindi-whitespace-expected.txt:
  • platform/wincairo/fast/text/international/thai-baht-space-expected.txt:
  • platform/wincairo/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/wincairo/fast/text/midword-break-before-surrogate-pair-2-expected.txt:
  • platform/wincairo/fast/text/stroking-decorations-expected.txt:
  • platform/wincairo/fast/text/stroking-expected.txt:
  • platform/wincairo/fast/text/wbr-expected.txt:
  • platform/wincairo/fast/text/wide-zero-width-space-expected.txt:
6:13 PM Changeset in webkit [288600] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Fix non-unified build by adding missing headers to JSKeyframeEffectCustom.cpp

Unreviewed non-unified build fix.

No new tests needed.

  • bindings/js/JSKeyframeEffectCustom.cpp: Add missing headers Document.h,

JSDOMConvertObject.h, JSDOMConvertSequences.h, and JSDOMConvertStrings.h.

6:08 PM Changeset in webkit [288599] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: build fix for CLoop.

Not reviewed.

Code for the USE(LIBPAS_JIT_HEAP) ExecutableMemoryHandle is only built in when
ENABLE(JIT). Update the header to reflect this so that CLoop builds don't try to
link against it.

  • jit/ExecutableMemoryHandle.h:
5:37 PM Changeset in webkit [288598] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.2

Tag Safari-613.1.14.5.2.

5:36 PM Changeset in webkit [288597] by Russell Epstein
  • 6 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288593. rdar://problem/87906922

Install build failure when using SYSTEM_CONTENT_PATH
https://bugs.webkit.org/show_bug.cgi?id=235609

Reviewed by Filip Pizlo.

Source/ThirdParty/libwebrtc:

Change the Create Symlinks to Alternate Root script to create the links for the headers
for both the install headers and install phases.

  • Scripts/create-symlink-to-altroot.sh:

Source/WebKit:

Eliminated the Output Files of the Create Symlink to Alt Root Path script for the targets
adattributiond, GPU, Networking, WebAuthn, webpushd, and the various WebContent targets,
since the symlink to WebKit.framework will be created by the "WebKit" target.
Also fixed the INSTALL_PATH for adattributiond and webpushd to follow the difference between
macOS and iOS.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

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

5:35 PM Changeset in webkit [288596] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.2

5:26 PM Changeset in webkit [288595] by Robert Jenner
  • 2 edits in trunk/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
rdar://86037417

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Temporarily disabling test.
5:23 PM Changeset in webkit [288594] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WebIDL] Remove the now-unused [CustomEnabled] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=235608

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-25
Reviewed by Darin Adler.

It's unlikely we will ever need it, and it's limited to Window only,
and it generates a call to a free function rather than a method.

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

5:11 PM Changeset in webkit [288593] by msaboff@apple.com
  • 6 edits in trunk/Source

Install build failure when using SYSTEM_CONTENT_PATH
https://bugs.webkit.org/show_bug.cgi?id=235609

Reviewed by Filip Pizlo.

Source/ThirdParty/libwebrtc:

Change the Create Symlinks to Alternate Root script to create the links for the headers
for both the install headers and install phases.

  • Scripts/create-symlink-to-altroot.sh:

Source/WebKit:

Eliminated the Output Files of the Create Symlink to Alt Root Path script for the targets
adattributiond, GPU, Networking, WebAuthn, webpushd, and the various WebContent targets,
since the symlink to WebKit.framework will be created by the "WebKit" target.
Also fixed the INSTALL_PATH for adattributiond and webpushd to follow the difference between
macOS and iOS.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
5:10 PM Changeset in webkit [288592] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk

[WebIDL] Blob-related methods should use _relevant_ context instead of _current_
https://bugs.webkit.org/show_bug.cgi?id=235279

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-25
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from TBA.

  • web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame.html: Added.
  • web-platform-tests/FileAPI/support/empty-document.html: Added.

Source/WebCore:

This patch fixes the following methods to rely on _relevant_ global object instead of _current_:

  1. Blob's slice() / stream() / arrayBuffer() / text() as explicitly required by the File API spec [1]. Before this change, methods from detached <iframe> were throwing when called on a main frame's Blob. Aligns WebKit with Blink and Gecko.
  1. HTMLCanvasElement's toBlob() as per HTML spec [2]: a task should be queued on _relevant_ document's event loop.
  1. HTMLCanvasElement's transferControlToOffscreen() / captureStream() per recommendatation for spec authors [4], and to align with toBlob(). transferControlToOffscreen() should certainly pass _relevant_ context, which would be used later for Blob creation.

[1] https://w3c.github.io/FileAPI/#blob-get-stream
[2] https://html.spec.whatwg.org/#canvas-blob-serialisation-task-source
[3] https://html.spec.whatwg.org/multipage/webappapis.html#realms-settings-objects-global-objects:concept-relevant-everything-2

Test: imported/w3c/web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame.html

Not sure if changes to HTMLCanvasElement methods are even testable.

  • fileapi/Blob.cpp:

(WebCore::Blob::slice const):
(WebCore::Blob::loadBlob):
(WebCore::Blob::text):
(WebCore::Blob::arrayBuffer):
(WebCore::Blob::stream):

  • fileapi/Blob.h:
  • fileapi/Blob.idl:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toBlob):
(WebCore::HTMLCanvasElement::transferControlToOffscreen):
(WebCore::HTMLCanvasElement::captureStream):

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:

Mark transferControlToOffscreen() as [NewObject].

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

[macOS][WP] Allow mach extension to service
https://bugs.webkit.org/show_bug.cgi?id=235599
<rdar://87850345>

Reviewed by Darin Adler.

Allow mach extension to a service in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
4:55 PM Changeset in webkit [288590] by Aditya Keerthi
  • 16 edits in trunk

Disable input-security CSS property
https://bugs.webkit.org/show_bug.cgi?id=235557
rdar://87984277

Reviewed by Dean Jackson.

Source/WebCore:

CSSWG is planning to remove input-security from CSS UI 4
(https://github.com/w3c/csswg-drafts/issues/6788).

Keep the property around as an experimental feature, so that
it can be used in the UA stylesheet, and easily turned on if the
resolution is not finalized.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

(WebCore::CSSParserContext::CSSParserContext):

Enable input-security when parsing the UA stylesheet, as it is used to
obscure text in password inputs.

(WebCore::operator==):
(WebCore::add):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

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

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

Source/WebKitLegacy/win:

Add support for tests enabling the CSSInputSecurityEnabled preference.

  • WebPreferences.cpp:

(WebPreferences::cssInputSecurityEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Make input-security a disabled-by-default experimental feature.

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

Add default for WebKitLegacy on Windows.

LayoutTests:

  • fast/css/computed-text-security-for-input-security.html:
4:31 PM Changeset in webkit [288589] by Alexey Shvayka
  • 3 edits
    2 adds in trunk

XPath::Step::nodesInAxis(): add null checks after Attr::ownerElement() calls
https://bugs.webkit.org/show_bug.cgi?id=235500

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from https://github.com/web-platform-tests/wpt/pull/32544.

  • web-platform-tests/domxpath/xpath-evaluate-crash-expected.txt: Added.
  • web-platform-tests/domxpath/xpath-evaluate-crash.html: Added.

Source/WebCore:

This patch adds null checks for results of Attr::ownerElement() to avoid crashes
when evaluating XPath expressions with an orphaned Attr as the context node.

Inspired by the recent Blink fix [1], yet this change covers all null pointer
dereferencing sites, as proven by the updated test.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=1236967

Test: imported/w3c/web-platform-tests/domxpath/xpath-evaluate-crash.html

  • xml/XPathStep.cpp:

(WebCore::XPath::Step::nodesInAxis const):

4:14 PM Changeset in webkit [288588] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix some spelling errors in Color functions
https://bugs.webkit.org/show_bug.cgi?id=235618

Reviewed by Wenson Hsieh.

Fix the spelling of outOfLineComponentsEqual and outOfLineComponentsEqualIgnoringSemanticColor.

  • platform/graphics/Color.h:

(WebCore::operator==):
(WebCore::outOfLineComponentsEqual):
(WebCore::outOfLineComponentsEqualIgnoringSemanticColor):
(WebCore::equalIgnoringSemanticColor):
(WebCore::outOfLineComponentssEqual): Deleted.
(WebCore::outOfLineComponentssEqualIgnoringSemanticColor): Deleted.

3:59 PM Changeset in webkit [288587] by Simon Fraser
  • 4 edits in trunk

Fix the lldb Color formatter
https://bugs.webkit.org/show_bug.cgi?id=235613

Reviewed by Darin Adler.
Source/WebCore:

  • platform/graphics/ColorSpace.h:

Tools:

Copy the list of color spaces from ColorSpace.h

  • lldb/lldb_webkit.py:

(WebCoreColorProvider._to_string_out_of_line):

3:46 PM Changeset in webkit [288586] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Observe CFNetwork preference domain
https://bugs.webkit.org/show_bug.cgi?id=235603
<rdar://87994712>

Reviewed by Darin Adler.

Since the Networking process is now using CF prefs direct mode, the CFNetwork preference domain should be observed for changes.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver init]):

2:10 PM Changeset in webkit [288585] by mmaxfield@apple.com
  • 8 edits
    7 adds in trunk

Add another test for locale-specific shaping
https://bugs.webkit.org/show_bug.cgi?id=235558

Reviewed by Darin Adler.

Thanks so much to Just van Rossum for contributing the test font!!!

.:

  • metadata/contributors.json:

LayoutTests:

This test makes sure the LOCL lookup works correctly, even without font-feature-settings.

  • fast/text/locale-shaping-2-expected.html: Added.
  • fast/text/locale-shaping-2.html: Added.
  • fast/text/locale-shaping-3-expected.html: Added.
  • fast/text/locale-shaping-3.html: Added.
  • fast/text/resources/langlocatest_cjk/LICENSE: Added.
  • fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf: Added.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
2:09 PM Changeset in webkit [288584] by Alexey Shvayka
  • 3 edits in trunk/Source/WebCore

Remove unused Document::ListenerType enumerators
https://bugs.webkit.org/show_bug.cgi?id=235049

Reviewed by Sam Weinig.

Except for RESIZE_LISTENER, which just seems to be left behind, legacyType() of EventTarget.cpp
handles all other event types, deleted in this patch, according to the spec [1].

[1] https://dom.spec.whatwg.org/#concept-event-listener-invoke (step 9)

No new tests, no behavior change.

  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded):

  • dom/Document.h:
1:55 PM Changeset in webkit [288583] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS arm64] fast/scrolling/mac/j-shaped-scroll-rubberband.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235605

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as failing on arm64.
1:54 PM Changeset in webkit [288582] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

Mavericks: media/track/track-in-band-legacy-api.html fails intermittently
https://bugs.webkit.org/show_bug.cgi?id=123522

Reviewed by Simon Fraser.

Remove expectations since it's not longer happening.

  • gpu-process/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
1:49 PM Changeset in webkit [288581] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS arm64] imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235084

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as failing on arm64.
1:36 PM Changeset in webkit [288580] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Collapse blackboxed call frames by default
https://bugs.webkit.org/show_bug.cgi?id=234581
<rdar://problem/86967088>

Reviewed by Devin Rousso.

Remove "Collapse blackboxed call frames" checkbox from the experimental settings
and enable the feature by default.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/CallFrameTreeController.js:

(WI.CallFrameTreeController.prototype.groupBlackboxedCallFrames):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.shouldAutoExpandBlackboxedCallFrameGroup):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

1:25 PM Changeset in webkit [288579] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

[ Catalina wk1 ews ] media/remote-control-command-seek.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215325

Reviewed by Simon Fraser.

No longer flaking on Catalina or on iOS bots. Remove expectations.

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:24 PM Changeset in webkit [288578] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287990. rdar://problem/86781432

[iOS][Networking] Add access to required network service
https://bugs.webkit.org/show_bug.cgi?id=235188
<rdar://86781432>

Reviewed by Brent Fulgham.

Add access to required network service in the Networking process on iOS.

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

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

1:09 PM Changeset in webkit [288577] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WTF

[WTF] Make CRASH_WITH_INFO more useful when using GCC
https://bugs.webkit.org/show_bug.cgi?id=235573

Make CRASH_WITH_INFO() print out the additional information instead of silently crash
when WebKit is compiled with GCC.

Reviewed by Yusuke Suzuki.

  • wtf/Assertions.h: Add a variant of CRASH_WITH_INFO() which uses VA_OPT for

GCC and Clang; MSVC is left with the existing version as the version currently in
use is not happy about VA_OPT.
(CRASH_WITH_INFO): Deleted inline function for GCC.
(CRASH_WITH_SECURITY_IMPLICATION_AND_INFO): Ditto.

12:36 PM Changeset in webkit [288576] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Parsing support for container shorthand property
https://bugs.webkit.org/show_bug.cgi?id=235582

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

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

Source/WebCore:

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

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

(WebCore::CSSPropertyParser::consumeContainerShorthand):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:
12:32 PM Changeset in webkit [288575] by Wenson Hsieh
  • 5 edits in trunk

UIWKDocumentRequestSpatialAndCurrentSelection should limit context to the editable root of the current selection
https://bugs.webkit.org/show_bug.cgi?id=235595
rdar://87835602

Reviewed by Aditya Keerthi.

Source/WebKit:

Adjust the behavior of document editing context requests in the case where the SpatialAndCurrentSelection flag
is specified, but no explicit textInputContext has been given. Instead of using the hit-tested corners of the
spatial request as-is, clamp to the visible start and end positions of the current editable root (only if it
exists).

This adjustment makes this particular request configuration useful for text input clients that just want to
request text input context information for the current editable element in a given rect, but don't already have
a text input element identifier.

Test: DocumentEditingContext.SpatialAndCurrentSelectionRequest_LimitContextToEditableRoot

  • Platform/spi/ios/UIKitSPI.h:

Drive-by fix: also clean up a couple of old staging declarations.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add a new API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

12:21 PM Changeset in webkit [288574] by Robert Jenner
  • 2 edits
    3 adds in trunk/LayoutTests

[CSS Container Queries] Basic parsing support for container-type property
https://bugs.webkit.org/show_bug.cgi?id=235514

Uneviewed, rebaseline for iOS.

  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
11:54 AM Changeset in webkit [288573] by ysuzuki@apple.com
  • 13 edits in trunk

[JSC] Wasm module import should be done in sync when WebAssembly.instantiate gets module
https://bugs.webkit.org/show_bug.cgi?id=235506

Reviewed by Saam Barati.

LayoutTests/imported/w3c:

  • web-platform-tests/wasm/jsapi/constructor/instantiate.any-expected.txt:
  • web-platform-tests/wasm/jsapi/constructor/instantiate.any.worker-expected.txt:

Source/JavaScriptCore:

According to the spec, module imports need to be done synchronously when WebAssembly.instantiate
is called with a wasm module[1].

To align our implementation to this behavior, we split WebAssemblyModuleRecord::initializeImportsAndExports
into WebAssemblyModuleRecord::initializeImports and WebAssemblyModuleRecord::initializeExports. The former
does not require CalleeGroups so we can execute before compiling CalleeGroups.

[1]: https://webassembly.github.io/spec/js-api/#asynchronously-instantiate-a-webassembly-module

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::evaluate):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::setOwner):
(JSC::Wasm::Instance::finalizeCreation): Deleted.

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::hasMemoryImport const):

  • wasm/js/JSWebAssembly.cpp:

(JSC::instantiate):
(JSC::resolve): Deleted.

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::initializeImports):
(JSC::JSWebAssemblyInstance::finalizeCreation):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::initializeImports):
(JSC::WebAssemblyModuleRecord::initializeExports):
(JSC::WebAssemblyModuleRecord::initializeImportsAndExports): Deleted.

  • wasm/js/WebAssemblyModuleRecord.h:
11:52 AM Changeset in webkit [288572] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Use cwd as default path
https://bugs.webkit.org/show_bug.cgi?id=235048
<rdar://problem/87360213>

Reviewed by Aakash Jain.

Re-landing, infrastructure now handles git-webkit calls appropriately.

  • Scripts/git-webkit: Use default path behavior.
11:41 AM Changeset in webkit [288571] by graouts@webkit.org
  • 6 edits in trunk

Deduplication for @keyframes rules should account for animation-composition
https://bugs.webkit.org/show_bug.cgi?id=235596

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Import test recently added in WPT via https://github.com/web-platform-tests/wpt/pull/32495.
We pass them all with the source change.

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

Source/WebCore:

The CSS Animations Level 2 spec recently changed to account for animation-composition
when deduplicating @keyframes rules (see https://github.com/w3c/csswg-drafts/pull/6974).

  • animation/CompositeOperation.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::keyframeRulesForName const):

11:38 AM Changeset in webkit [288570] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r288267. rdar://problem/87785288

<dialog> with transformed ancestor asserts under RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=235194

Reviewed by Antti Koivisto.

Source/WebCore:

With this change we reparent the RenderLayers of top layer elements under the RenderView's
layer. This makes the RenderLayer hierarchy a closer match to the containing block
hierarchy, and means that all the existing RenderLayer tree walks that use
parent()/firstChild()/nextSibling() traverse the the "top layer" layers as children of the
RenderView. This in turn means that the various bits of RenderLayer state that track the
state of descendants (e.g. m_hasVisibleDescendant, m_hasSelfPaintingLayerDescendant,
m_hasNotIsolatedBlendingDescendants) reflect descendency in the top-layer-aware hierarchy.

Note that m_hasVisibleDescendant is about the inherited visibility property which follows
DOM order, but since we consult it during painting-related tree walks, we want this state to
reflect the top-layer-aware tree.

The patch adds top-layer-aware helpers on RenderElement to find the parent and next sibling,
and uses those when parenting layers.

In addition, when the top layer status changes for a RenderLayer, we unparent and
re-parent its layer (which in turn should toggle the relevant dirty bits).

  • rendering/RenderElement.cpp: (WebCore::findNextLayer): (WebCore::layerNextSiblingRespectingTopLayer): (WebCore::addLayers): (WebCore::RenderElement::layerParentRespectingTopLayer const): (WebCore::RenderElement::layerNextSiblingRespectingTopLayer const): (WebCore::RenderElement::insertedIntoTree): (WebCore::RenderElement::willBeRemovedFromTree): (WebCore::RenderElement::findNextLayer const): Deleted.
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer): (WebCore::RenderLayer::stackingContext const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::setHasVisibleContent): (WebCore::RenderLayer::dirtyAncestorChainVisibleDescendantStatus): (WebCore::RenderLayer::setAncestorChainHasVisibleDescendant): (WebCore::RenderLayer::enclosingAncestorForPosition const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::paintLayerWithEffects): Ditto (WebCore::RenderLayer::establishesTopLayerWillChange): (WebCore::RenderLayer::establishesTopLayerDidChange): (WebCore::RenderLayer::clipCrossesPaintingBoundary const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::calculateClipRects const): Ditto

LayoutTests:

  • TestExpectations: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html no longer asserts.

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

11:38 AM Changeset in webkit [288569] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288127. rdar://problem/87785288

Clean up some code around RenderElement::addLayers()
https://bugs.webkit.org/show_bug.cgi?id=235272

Reviewed by Darin Adler.

The code that looks for the next layer via render tree traversal is tricky and
hard to understand. Do some initial cleanup prior to fixing it for top layer.

First, use std::optional<> in the static addLayers() to make the beforeChild
finding easier to understand (no longer need a null newObject as the signal that
you've tried to look).

Second, use references in findNextLayer() and rename 'startPoint' to make its
purpose more clear.

  • rendering/RenderElement.cpp: (WebCore::addLayers): (WebCore::RenderElement::addLayers): (WebCore::RenderElement::findNextLayer const): (WebCore::RenderElement::findNextLayer): Deleted.
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer):

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

11:38 AM Changeset in webkit [288568] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288059. rdar://problem/87785288

Make a function that returns the ordered list of top layer RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=235251

Reviewed by Alan Bujtas.

Factor the code in RenderLayer::rebuildZOrderLists() that generates the list of
top-layer RenderLayers into its own function.

Add Document::hasTopLayerElement() to avoid calling it when there are no top layer
elements.

  • dom/Document.h: (WebCore::Document::hasTopLayerElement const):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::rebuildZOrderLists):
  • rendering/RenderLayer.h:

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

11:38 AM Changeset in webkit [288567] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r287845. rdar://problem/87785288

REGRESSION(r287683): <dialog> elements inside clipped/overflowed elements are no longer shown
https://bugs.webkit.org/show_bug.cgi?id=234984

Reviewed by Simon Fraser.

Source/WebCore:

Paint at the right place by fixing isContainerForPositioned, also fix clip rects.

  • rendering/RenderLayer.cpp: (WebCore::isContainerForPositioned): (WebCore::RenderLayer::enclosingAncestorForPosition const): (WebCore::accumulateOffsetTowardsAncestor): (WebCore::RenderLayer::calculateClipRects const):

LayoutTests:

Enable relevant tests. Set the asserting test as Crash instead of Skipping.

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

11:13 AM Changeset in webkit [288566] by Russell Epstein
  • 33 edits
    1 copy
    6 adds
    2 deletes in branches/safari-613-branch

Cherry-pick r288315. rdar://problem/87601762

Implement WebGL GPU buffer texture upload path for Cocoa getUserMedia camera streams
https://bugs.webkit.org/show_bug.cgi?id=235233
<rdar://problem/87601762>

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

Source/WebCore:

Make full texture uploads from MediaStream camera captures use CVPixelBuffers
instead of reading the pixels back.
Implement MediaPlayerInterface::pixelBufferForCurrentTime() for
MediaPlayerPrivateMediaSourceAVFObjC.
Rename functions from pixelBuffer... to videoSample...
Use new type MediaSampleVideoFrame instead of CVPixelBuffer.
MediaSampleVideoFrame contains also the frame orientation. The
orientation is needed as the camera might capture the image
with a rotation or a flip.

To avoid ifdefs, the new API videoSampleForCurrentTime exists
for all platforms, but is currently called only by Cocoa.
Also the type MediaSampleVideoFrame exists for all platforms
but has the frame contents implementation only for Cocoa.

Tested by
fast/mediastream/getUserMedia-to-canvas-1.html
fast/mediastream/getUserMedia-to-canvas-2.html

Currently the "mirrored" part is tested manually, WebKit
does not request mirrored camera image so it is dead code.

  • Headers.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::videoSampleForCurrentTime): (WebCore::MediaPlayer::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture): (WebCore::MediaPlayerPrivateInterface::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/MediaSampleVideoFrame.h: Added. (WebCore::MediaSampleVideoFrame::orientation const): (WebCore::MediaSampleVideoFrame::pixelBuffer const): (WebCore::MediaSampleVideoFrame::operator== const): (WebCore::MediaSampleVideoFrame::encode const): (WebCore::MediaSampleVideoFrame::decode):
  • platform/graphics/avfoundation/MediaSampleVideoFrameAVF.mm: Added. (WebCore::MediaSampleVideoFrame::MediaSampleVideoFrame):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::videoOrientation): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleForCurrentTime):
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):
  • platform/graphics/cv/GraphicsContextGLCV.h:
  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp: (WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa): (WebCore::GraphicsContextGLCVCocoa::copyVideoFrameToTexture): (WebCore::GraphicsContextGLCVCocoa::copyPixelBufferToTexture): Deleted.
  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:

Source/WebKit:

Rename functions from pixelBuffer... to videoFrame.
Send new type MediaPlayerVideoFrame instead of CVPixelBuffer.
MediaPlayerVideoFrame contains also the frame orientation.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::invalidate): (WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTimeIfChanged): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime): (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.

LayoutTests:

  • fast/mediastream/getUserMedia-to-canvas.html:
  • webrtc/routines.js: Test camera image rotations in the test.

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

11:08 AM Changeset in webkit [288565] by Devin Rousso
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: replace gear-with-contextmenu icons used for filtering with filter-with-contextmenu icons
https://bugs.webkit.org/show_bug.cgi?id=235546

Reviewed by Dean Jackson.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.initialLayout):

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter):
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter:active): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter.active): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter.active:active): Added.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.css:

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

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Images/Filter.svg: Added.
10:50 AM Changeset in webkit [288564] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r281419): iCloud.com Notes web app fonts render incorrectly
https://bugs.webkit.org/show_bug.cgi?id=235559
<rdar://problem/87268956>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character-expected.txt: Added.
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html: Added.

Source/WebCore:

Chrome and Firefox render U+0000 NULL as invisible. We should do the same, despite it technically being classified as a control character.

https://github.com/w3c/csswg-drafts/pull/6983

Test: imported/w3c/web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):

10:30 AM Changeset in webkit [288563] by aakash_jain@apple.com
  • 4 edits in trunk/Tools/CISupport

[buildbot] Detailed bot information should be displayed inside PrintConfiguration step instead of workers page
https://bugs.webkit.org/show_bug.cgi?id=235583

Reviewed by Jonathan Bedard and Ryan Haddad.

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

(PrintConfiguration): run 'system_profiler SPSoftwareDataType SPHardwareDataType' command in PrintConfiguration.

  • Tools/CISupport/ews-build/steps.py: Ditto.
  • Tools/CISupport/ews-build/steps_unittest.py: Updated unit-tests.
  • Tools/CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests.

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

9:48 AM Changeset in webkit [288562] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r286669. rdar://problem/81618758

[iOS] Always set audio session preferred input after changing the category
https://bugs.webkit.org/show_bug.cgi?id=232626
rdar://81618758

Reviewed by Youenn Fablet.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::sessionCaptureConfigurationChanged): Schedule a session update so the category and/or preferred input is setup.
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/ios/AudioSessionIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm: (WebCore::AudioSessionIOS::setCategory): Don't set the audio session category unless something has changed. Ask the AVAudioSessionCaptureDeviceManager to set the preferred capture device if that has changed.
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUID): Remember the device UID if the configuration is successful. (WebCore::AVAudioSessionCaptureDeviceManager::configurePreferredAudioCaptureDevice): Reset the preferred device if necessary. (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUIDInternal): Refactored from setPreferredAudioSessionDeviceUID.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::captureDeviceChanged):

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

9:48 AM Changeset in webkit [288561] by Russell Epstein
  • 7 edits
    5 deletes in branches/safari-613-branch

Revert r282746. rdar://problem/87732806

9:36 AM Changeset in webkit [288560] by graouts@webkit.org
  • 6 edits
    1 add in trunk/Source/WebCore

Refactor KeyframeEffect::getKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235504

Reviewed by Chris Dumez.

We move all the JS conversion code to a new custom implementation for JSKeyframeEffect::getKeyframes()
such that KeyframeEffect::getKeyframes() is simply in the business of compiling the list of computed
keyframes.

To do this, we start by changing the way the various KeyframeEffect structs are organized. We make
BaseComputedKeyframe extend BaseKeyframe, then ComputedKeyframe extend BaseComputedKeyframe by adding
a map of CSSPropertyID to String values, then ParsedKeyframe can simply extend ComputedKeyframe.
This makes it easy to copy ParsedKeyframe into a ComputedKeyframe for the properties relevant
to the output of getKeyframes().

We also take the opportunity to merge what used to be two methods, getBindingsKeyframes() and getKeyframes(),
into a single method since getKeyframes() is only ever called through the JS bindings.

Finally, we remove the big if/else statement in KeyframeEffect::getKeyframes() to have a small if block
for the case where the keyframes are already set via the setKeyframes() API and return early.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::CSSPropertyIDToIDLAttributeName):
(WebCore::IDLAttributeNameToAnimationPropertyName):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::animatedProperties):
(WebCore::KeyframeEffect::animatesProperty const):
(WebCore::CSSPropertyIDToIDLAttributeName): Deleted.
(WebCore::KeyframeEffect::getBindingsKeyframes): Deleted.

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • bindings/js/JSKeyframeEffectCustom.cpp: Added.

(WebCore::JSKeyframeEffect::getKeyframes):

9:34 AM Changeset in webkit [288559] by Pablo Saavedra
  • 5 edits in trunk/Source/WebCore

[WPE][GTK] Build error in ARMv7 Neon targets after r286152
https://bugs.webkit.org/show_bug.cgi?id=235410

Reviewed by Simon Fraser.

  • platform/graphics/cpu/arm/filters/FEBlendNEON.h:

(WebCore::FEBlend::platformApplySoftware): Deleted.

  • platform/graphics/filters/software/FEBlendSoftwareApplier.cpp:

(WebCore::FEBlendSoftwareApplier::apply const):

  • platform/graphics/filters/software/FECompositeSoftwareApplier.cpp:

(WebCore::FECompositeSoftwareApplier::applyArithmetic const):

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:
9:18 AM Changeset in webkit [288558] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull requests in Trigger (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=235545
<rdar://problem/87992990>

Unreviewed follow-up fix.

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

(Trigger.propertiesToPassToTriggers): Pass ews_revision for patch workflows.

9:09 AM Changeset in webkit [288557] by Russell Epstein
  • 4 edits in branches/safari-614.1.1-branch/Source/WebCore

Cherry-pick r288546. rdar://problem/87944391

Add a WebShare policy quirk for Twitter
https://bugs.webkit.org/show_bug.cgi?id=235502
<rdar://87944391>

Reviewed by Chris Dumez.

Disable WebShare policy in case of twitter documents as this is not yet web compatible.

Manually tested.

  • page/Navigator.cpp: (WebCore::validateWebSharePolicy): (WebCore::Navigator::canShare): (WebCore::Navigator::share):
  • page/Quirks.cpp: (WebCore::isTwitterDocument): (WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const): (WebCore::Quirks::shouldDisableWebSharePolicy const):
  • page/Quirks.h:

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

9:06 AM Changeset in webkit [288556] by Antti Koivisto
  • 14 edits in trunk

[CSS Container Queries] Parsing support for container-name property
https://bugs.webkit.org/show_bug.cgi?id=235564

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Parse 'container-name' and map it to style.

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

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

(WebCore::consumeContainerName):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containerNames const):
(WebCore::RenderStyle::setContainerNames):
(WebCore::RenderStyle::initialContainerNames):

'container-name' is actually a list of names, that's why the plural.

  • rendering/style/StyleRareNonInheritedData.cpp:

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

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

(WebCore::Style::BuilderConverter::convertContainerName):

9:04 AM Changeset in webkit [288555] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.2

9:00 AM Changeset in webkit [288554] by Russell Epstein
  • 1 copy in branches/safari-614.1.1-branch

New branch.

8:47 AM Changeset in webkit [288553] by Sam Sneddon
  • 4 edits in trunk/Source/WebCore

Missing EnabledBySetting=WebXREnabled where Conditional=WEBXR exists
https://bugs.webkit.org/show_bug.cgi?id=235527

Reviewed by Darin Adler.

Manually tested.

  • Modules/webxr/XRFrameRequestCallback.idl:
  • html/canvas/WebGLContextAttributes.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
8:46 AM Changeset in webkit [288552] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull requests in Trigger
https://bugs.webkit.org/show_bug.cgi?id=235545
<rdar://problem/87992990>

Reviewed by Aakash Jain.

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

(Trigger.init): Pass flags for patch and pull requests.
(Trigger.propertiesToPassToTriggers): Pass different properties if Triggered by a
pull request verse a patch.
(CompileWebKit.evaluateCommand): Pass flags for patch and pull request to Trigger.
(AnalyzeLayoutTestsResults.retry_build): Ditto.

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

8:33 AM Changeset in webkit [288551] by sihui_liu@apple.com
  • 10 edits in trunk/Source/WebKit

Regression (r235236): NetworkStorageManager sends messages to wrong StorageAreaMap
https://bugs.webkit.org/show_bug.cgi?id=235553

Reviewed by Darin Adler.

Started from r235236, NetworkStorageManager uses StorageAreaMapIdentifier instead of StorageAreaIdentifier as
the message destination (as web process stores StorageAreaMap by StorageAreaMapIdentifier). However, the
destination is not changed accordingly when sending didSetItem, didRemoveItem and didClear messages, so the
messages are dispatched to wrong StorageAreaMaps.

Since these messages are reply for some message sent from StorageAreaMap to NetworkStorageManager (e.g.
didSetItem is reply of setItem), we may just use sendMessageWithAsyncReply when sending original message, and
we don't need to worry about the destination.

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::setItem):
(WebKit::StorageManagerSet::removeItem):
(WebKit::StorageManagerSet::clear):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • NetworkProcess/WebStorage/StorageManagerSet.messages.in:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::setItem):
(WebKit::NetworkStorageManager::removeItem):
(WebKit::NetworkStorageManager::clear):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):

  • WebProcess/WebStorage/StorageAreaMap.h:
  • WebProcess/WebStorage/StorageAreaMap.messages.in:
8:20 AM Changeset in webkit [288550] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Non-unified buildfix after r288546/246378@main
https://bugs.webkit.org/show_bug.cgi?id=235590

Unreviewed build fix.

  • page/Navigator.cpp: Add missing include.
7:59 AM Changeset in webkit [288549] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r282374.
https://bugs.webkit.org/show_bug.cgi?id=235587

Introduced perf regression

Reverted changeset:

"Playback stops although the progress bar moves"
https://bugs.webkit.org/show_bug.cgi?id=230210
https://commits.webkit.org/r282374

7:52 AM Changeset in webkit [288548] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

ews is displaying PR by even on patch based builds
https://bugs.webkit.org/show_bug.cgi?id=235578

Reviewed by Jonathan Bedard.

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

(ConfigureBuild.add_pr_details):

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

6:39 AM Changeset in webkit [288547] by Alan Bujtas
  • 3 edits
    2 adds in trunk

(REGRESSION r287485) [LFC][IFC] Incorrect RTL content position when intrusive float is present
https://bugs.webkit.org/show_bug.cgi?id=235547
<rdar://87824766>

Reviewed by Antti Koivisto.

Source/WebCore:

The float box coordinates are always visual. They need to be converted to
logical to be able to properly constrain the available space on the current line.

Test: fast/inline/intrusive-float-with-rtl-content.html

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::floatConstraints const):

LayoutTests:

  • fast/inline/intrusive-float-with-rtl-content-expected.html: Added.
  • fast/inline/intrusive-float-with-rtl-content.html: Added.
6:09 AM Changeset in webkit [288546] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add a WebShare policy quirk for Twitter
https://bugs.webkit.org/show_bug.cgi?id=235502
<rdar://87944391>

Reviewed by Chris Dumez.

Disable WebShare policy in case of twitter documents as this is not yet web compatible.

Manually tested.

  • page/Navigator.cpp:

(WebCore::validateWebSharePolicy):
(WebCore::Navigator::canShare):
(WebCore::Navigator::share):

  • page/Quirks.cpp:

(WebCore::isTwitterDocument):
(WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const):
(WebCore::Quirks::shouldDisableWebSharePolicy const):

  • page/Quirks.h:
4:00 AM Changeset in webkit [288545] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/send_email.py

[ews] Remove redundant check for test mode in send_email.py
https://bugs.webkit.org/show_bug.cgi?id=235552

Reviewed by Jonathan Bedard.

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

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

1:57 AM Changeset in webkit [288544] by Ziran Sun
  • 9 edits in trunk

[css-grid] Fix grid shorthand expansion of initial values
https://bugs.webkit.org/show_bug.cgi?id=234430

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/parsing/grid-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:

Source/WebCore:

This CL is to add the InitialValue support when parsing the grid shorthand for 6 grid properties
including grid-auto-columns, grid-auto-flow, grid-auto-rows, grid-template-areas,
grid-template-columns and grid-template-rows. The original code only adds a CSSInitial.

This is an import of chromium change at
https://chromium-review.googlesource.com/c/chromium/src/+/3299364

Apart from fixing wpt test imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand.html,
The CL also updates the expectation file for test
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand-valid.html. This test fails before
this CL and need to be investigated as a seperated issue. Related bugs have been raised at -
https://bugs.chromium.org/p/chromium/issues/detail?id=1028283 &
https://bugs.webkit.org/show_bug.cgi?id=204611

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeImplicitGridAutoFlow):
(WebCore::CSSPropertyParser::consumeGridShorthand):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertGridTrackSizeList):
(WebCore::Style::BuilderConverter::convertGridAutoFlow):

LayoutTests:

  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:

Jan 24, 2022:

11:13 PM Changeset in webkit [288543] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION(r282320): [Cocoa] User-installed fonts don't work in the GPU Process (in WKWebView)
https://bugs.webkit.org/show_bug.cgi?id=235449
<rdar://problem/84958961>

Reviewed by Darin Adler.

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:

Source/WebKit:

The reason for this bug was I was misusing kCTFontOptionsSystemUIFont. I thought this flag just
meant "allow the creation of system fonts" but it turns out it means something more subtle than
that. Instead of unconditionally specifying this flag, we should just pull out the options field
from the source font (which will include that flag if the font was a system font) and use that
instead.

Test: fast/text/user-installed-canvas.html

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<Ref<WebCore::Font>>::encodePlatformData):
(IPC::createCTFont):
(IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData):

LayoutTests:

  • fast/text/user-installed-canvas-expected.html: Added.
  • fast/text/user-installed-canvas.html: Added.
11:00 PM Changeset in webkit [288542] by youenn@apple.com
  • 8 edits in trunk

A sandboxed document should not reuse its service worker client ID
https://bugs.webkit.org/show_bug.cgi?id=235310

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:

Source/WebCore:

Create a new identifier when the current identifier, already exposed to service workers, cannot be reused.
Covered by updated test.

  • dom/Document.cpp:
  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptExecutionContext.h:
  • loader/DocumentLoader.cpp:
10:15 PM Changeset in webkit [288541] by mark.lam@apple.com
  • 89 edits in trunk

Rename Vector and FixedVector::findMatching to findIf to match stl naming.
https://bugs.webkit.org/show_bug.cgi?id=234864
rdar://87424746

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::emitDirectBinding):

Source/WebCore:

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::getType):

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::getType):
(WebCore::ClipboardItemBindingsDataSource::collectDataForWriting):

  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::match):
(WebCore::DOMCacheStorage::has):
(WebCore::DOMCacheStorage::findCacheOrCreate):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::doRemove):

  • Modules/highlight/Highlight.cpp:

(WebCore::Highlight::addToSetLike):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::showMediaControlsContextMenu):

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::trackEnded):

  • Modules/mediastream/RTCController.cpp:

(WebCore::RTCController::shouldDisableICECandidateFiltering):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::setConfiguration):
(WebCore::RTCPeerConnection::getOrCreateIceTransport):
(WebCore::RTCPeerConnection::getOrCreateDtlsTransport):

  • Modules/mediastream/RTCRtpSFrameTransformer.cpp:

(WebCore::RTCRtpSFrameTransformer::decryptFrame):

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::checkNumberOfChannelsForInput):

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::cancelAndHoldAtTime):

  • Modules/webaudio/IIRFilterNode.cpp:

(WebCore::IIRFilterNode::create):

  • Modules/webauthn/fido/U2fCommandConstructor.cpp:

(fido::isConvertibleToU2fRegisterCommand):

  • Modules/webxr/WebXRInputSourceArray.cpp:

(WebCore::WebXRInputSourceArray::handleAddedOrUpdatedInputSources):

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::cancelAnimationFrame):

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected):

  • accessibility/AXObjectCache.cpp:

(WebCore::appendIfNotContainsMatching):

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::shouldEmitSignal):

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::types const):

  • dom/DataTransferItemList.cpp:

(WebCore::removeStringItemOfLowercasedType):

  • dom/Document.cpp:

(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::updateIntersectionObservations):

  • dom/EventPath.cpp:

(WebCore:: const):

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::enqueueSlotChangeEvent):

  • html/BaseTextInputType.cpp:

(WebCore::BaseTextInputType::patternMismatch const):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::cancelVideoFrameCallback):

  • html/shadow/DateTimeEditElement.cpp:

(WebCore::DateTimeEditElement::fieldIndexOf const):
(WebCore::DateTimeEditElement::focusedFieldElement const):
(WebCore::DateTimeEditElement::didBlurFromField):

  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::findIncompleteCue):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):

  • inspector/agents/WebDebuggerAgent.cpp:

(WebCore::WebDebuggerAgent::didAddEventListener):
(WebCore::WebDebuggerAgent::willRemoveEventListener):

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::append):

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startIconLoading):

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::isObserving const):

  • page/ModalContainerObserver.cpp:

(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):

  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::observe):

  • page/scrolling/ScrollLatchingController.cpp:

(WebCore::ScrollLatchingController::removeLatchingStateForTarget):

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::hasCompatibleSnapArea):

  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::removeChild):

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::preferredImageMIMETypeForEncoding):

  • platform/PasteboardCustomData.cpp:

(WebCore::PasteboardCustomData::addOrMoveEntryToEnd):
(WebCore::PasteboardCustomData::hasSameOriginCustomData const):

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::fileContentState):

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyStore::containsKeyID const):
(WebCore::KeyStore::add):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::findMonitorForDisplayID const):

  • platform/graphics/HEVCUtilities.cpp:

(WebCore::createHEVCCodecParametersString):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::mediaEngine):
(WebCore::MediaPlayer::nextMediaEngine):

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForKeyIDs const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForGroup const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::animationIsRunning const):
(WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
(WebCore::GraphicsLayerCA::isRunningTransformAnimation const):

  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::isProbablyOnlyUsedToRenderIcons const):

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::isContentTypeSupported const):

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

(WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::fileContentState):

  • platform/mediastream/CaptureDevice.h:

(WebCore::haveDevicesChanged):

  • platform/mediastream/MediaConstraints.h:

(WebCore::NumericConstraint::valueForDiscreteCapabilityValues const):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebKitMediaStreamObserver::didRemoveTrack):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::generatePresets):

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::getUncommonHeader const):
(WebCore::HTTPHeaderMap::setUncommonHeader):
(WebCore::HTTPHeaderMap::add):
(WebCore::HTTPHeaderMap::contains const):
(WebCore::HTTPHeaderMap::get const):
(WebCore::HTTPHeaderMap::set):

  • platform/xr/openxr/OpenXRExtensions.cpp:

(PlatformXR::OpenXRExtensions::isExtensionSupported const):

  • plugins/PluginData.h:

(WebCore::isSupportedPlugin):

Source/WebKit:

  • GPUProcess/media/RemoteCDMFactoryProxy.cpp:

(WebKit::factoryForKeySystem):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::findRootNetworkActivity):
(WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker):

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::storeRecords):
(WebKit::CacheStorage::Cache::put):
(WebKit::CacheStorage::Cache::remove):
(WebKit::CacheStorage::Cache::removeFromRecordList):
(WebKit::CacheStorage::Cache::updateRecordToDisk):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::find):
(WebKit::CacheStorage::Caches::remove):
(WebKit::CacheStorage::Caches::hasActiveCache const):
(WebKit::CacheStorage::Caches::dispose):

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::didProvideMediaData):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_remove_frame_displayed_callback):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::PasteboardAccessInformation::grantAccess):
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::accessType const):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::setDeviceAsFirst):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):

  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::DragDropInteractionState::defaultDropPreview const):
(WebKit::BlockPtr<void):

  • UIProcess/mac/DisplayLink.cpp:

(WebKit::DisplayLink::setPreferredFramesPerSecond):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(shouldShowDividersBetweenCells):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::computeElementLayout):

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addUserScriptMessageHandlerInternal):
(WebKit::WebUserContentController::addUserScriptInternal):
(WebKit::WebUserContentController::addUserStyleSheetInternal):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestTextRecognition):

  • WebProcess/WebProcess.cpp:

(WebKit::checkDocumentsCaptureStateConsistency):

Source/WTF:

Also rename reverseFindMatching to reverseFindIf.

See https://bugs.webkit.org/show_bug.cgi?id=234855#c3 and
https://en.cppreference.com/w/cpp/algorithm/find.

  • wtf/FixedVector.h:

(WTF::FixedVector<T>::findIf const):
(WTF::FixedVector<T>::find const):
(WTF::FixedVector<T>::findMatching const): Deleted.

  • wtf/Vector.h:

(WTF::Malloc>::findIf const):
(WTF::Malloc>::find const):
(WTF::Malloc>::reverseFindIf const):
(WTF::Malloc>::findMatching const): Deleted.
(WTF::Malloc>::reverseFindMatching const): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/FixedVector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::parseUserAgent):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::closeOtherPage):

10:09 PM Changeset in webkit [288540] by commit-queue@webkit.org
  • 9 edits in trunk

Re-enable CustomDisplayName and DefaultDisplayName API tests on Monterey
https://bugs.webkit.org/show_bug.cgi?id=234613

Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-24
Reviewed by Brady Eidson.

Source/WebKit:

When we introduced setting the display name from the network process,
we didn't update the tests to get the information from the process that can access it.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/mac/NetworkConnectionToWebProcessMac.mm:

(WebKit::NetworkConnectionToWebProcess::updateActivePages):
(WebKit::NetworkConnectionToWebProcess::getProcessDisplayName):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::getProcessDisplayName):

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

(WebKit::WebProcess::auditTokenForSelf):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::getProcessDisplayName):
(WebKit::WebProcess::updateActivePages):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::TEST):

9:48 PM Changeset in webkit [288539] by ysuzuki@apple.com
  • 3 edits in trunk/Source/WebCore

Expand RefPtr / Ref use in FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):

  • loader/FrameLoader.h:
9:38 PM Changeset in webkit [288538] by ysuzuki@apple.com
  • 10 edits in trunk

[JSC] Enable Array#groupBy and Array#groupByToMap
https://bugs.webkit.org/show_bug.cgi?id=235549

Reviewed by Ross Kirsling.

JSTests:

  • stress/unscopables.js:

Source/JavaScriptCore:

  • runtime/OptionsList.h:

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/array-unscopables-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/array-unscopables-properties.js:
9:13 PM Changeset in webkit [288537] by Cameron McCormack
  • 4 edits in trunk/Source/JavaScriptCore

Remove VM::stringCache
https://bugs.webkit.org/show_bug.cgi?id=235536

Reviewed by Sam Weinig.

We consult VM::stringCache when creating a JSString, but since
bug 142115 we never insert anything into it.

Removing this results in almost-significant improvements in the VueJS,
Vanilla-ES2015, and jQuery sub-tests of Speedometer 2 (of 0.5-2%,
0.03 <= p <= 0.05), and an almost significant 0.2% improvement in the
overall score (p = 0.06).

  • runtime/JSString.cpp:

(JSC::jsStringWithCacheSlowCase):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
8:59 PM Changeset in webkit [288536] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

REGRESSION (r286932): Fixed position elements jiggle sometimes (Twitter, Facebook)
https://bugs.webkit.org/show_bug.cgi?id=235543
<rdar://87981122>

Reviewed by Tim Horton.

In r286932 we ensure that the scrolling layer's position gets committed in the scrolling
thread to reduce stutters. However, we also have to do the same for fixed and sticky
layers, because they need to committed in synchrony with the scrolling layer.

Also change some 'override' to 'final' and add locking annotations.

  • page/scrolling/cocoa/ScrollingTreeFixedNode.h:
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::applyLayerPositions):

  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h:
  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm:

(WebCore::ScrollingTreeStickyNodeCocoa::applyLayerPositions):

7:44 PM Changeset in webkit [288535] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.7

Tag Safari-613.1.14.1.7.

7:41 PM Changeset in webkit [288534] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.7

7:21 PM Changeset in webkit [288533] by Devin Rousso
  • 3 edits
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Network: give the Ignore Caches button a label so it's more visible and immediately understandable
https://bugs.webkit.org/show_bug.cgi?id=235539

Reviewed by Patrick Angle.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get navigationItems):
(WI.NetworkTableContentView.prototype._resourceCachingDisabledSettingChanged):

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/IgnoreCaches.svg: Deleted.
6:14 PM Changeset in webkit [288532] by Diego Pino Garcia
  • 4 edits in trunk/Source

Unreviewed, fix non-unified build after r288458

Source/JavaScriptCore:

  • runtime/DeferredWorkTimer.h:

Source/WebCore:

  • fileapi/FileReaderLoaderClient.h:
5:57 PM Changeset in webkit [288531] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288441. rdar://problem/87707090

AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>

Addressing post commit comments.

Reviewed by Eric Carlson and Geoff Garen.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: Fixed the release logging.

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

5:56 PM Changeset in webkit [288530] by Russell Epstein
  • 6 edits
    1 copy
    1 add in branches/safari-613-branch

Cherry-pick r288429. rdar://problem/86612099

Position:fixed layers shouldn't allocate a backing buffer if all children are offscreen.
https://bugs.webkit.org/show_bug.cgi?id=235420
<rdar://86612099>

Patch by Matt Woodrow <Matt Woodrow> on 2022-01-23
Reviewed by Simon Fraser and Darin Adler.

Source/WebCore:

Adds a bounds intersection check to isPaintDestinationForDescendantLayers,
so that we can exclude descendants that definitely won't draw anything into
the compositing layer. Uses a conservative check, which gives up if there are
any transforms in the ancestor chain.

Test: compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html

  • rendering/RenderLayerBacking.cpp: (WebCore::intersectsWithAncestor): (WebCore::RenderLayerBacking::isPaintDestinationForDescendantLayers const):

LayoutTests:

Adds a test that has a viewport sized position:fixed element (with compositing
layer), and a single child which is entirely offscreen. Tests that we correctly
determine that we don't need a backing store for the layer.

  • compositing/backing/no-backing-for-offscreen-children-of-position-fixed-expected.txt: Added.
  • compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html: Added.

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

5:56 PM Changeset in webkit [288529] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288415. rdar://problem/87904254

REGRESSION(r280887) broke some svg based chart content repaint
https://bugs.webkit.org/show_bug.cgi?id=235483
<rdar://87904254>

Unreviewed, reverting r280887.

  • svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::svgAttributeChanged):

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

5:56 PM Changeset in webkit [288528] by Russell Epstein
  • 13 edits in branches/safari-613-branch/Source

Cherry-pick r288389. rdar://problem/85405320

Disable CFURLCache in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=234988
<rdar://problem/87619196>

Reviewed by Geoffrey Garen.

Source/WebCore:

_CFURLStorageSessionCopyCache can be slow (see rdar://85418732) and UI process may kill network process for
being unresponsive. Since WebKit does not use CFURLCache, we should disable it to avoid the hang.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/NetworkStorageSessionCFNet.cpp: (WebCore::NetworkStorageSession::createCFStorageSessionForIdentifier):
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::createPrivateStorageSession):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::newTestingSession): (WebKit::NetworkProcess::ensureSession):

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp: (NetworkStorageSessionMap::ensureSession):

Source/WTF:

  • wtf/PlatformHave.h:

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

5:56 PM Changeset in webkit [288527] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288386. rdar://problem/87822314

[iOS][WP] Allow access to CFNetwork prefs
https://bugs.webkit.org/show_bug.cgi?id=235457
<rdar://87822314>

Reviewed by Brent Fulgham.

Allow access to CFNetwork prefs on internal builds.

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

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

5:56 PM Changeset in webkit [288526] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebInspectorUI

Cherry-pick r288385. rdar://problem/87851989

Web Inspector: Make alignment editor accessible
https://bugs.webkit.org/show_bug.cgi?id=235395
<rdar://problem/87851989>

Reviewed by Patrick Angle.

Make alignment editor icons focusable, and annotate elements so VoiceOver could correctly read what is selected.

  • UserInterface/Views/AlignmentEditor.css: (.alignment-editor .glyph:focus): (.alignment-editor .glyph:not(:focus-visible)):
  • UserInterface/Views/AlignmentEditor.js: (WI.AlignmentEditor): (WI.AlignmentEditor.prototype.set alignment): (WI.AlignmentEditor.prototype._removePreviouslySelected): (WI.AlignmentEditor.prototype._updateSelected):

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

5:56 PM Changeset in webkit [288525] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288375. rdar://problem/76403140

[macOS][GPUP] Add access to IOKit property
https://bugs.webkit.org/show_bug.cgi?id=235450
<rdar://76403140>

Reviewed by Brent Fulgham.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

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

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

Cherry-pick r288336. rdar://problem/86558157

REGRESSION (r284136): A slight horizontal rubberband kills scroll momentum
https://bugs.webkit.org/show_bug.cgi?id=234384

Reviewed by Tim Horton.

Source/WebCore:

ScrollAnimationRubberBand subtly changed the behavior of the rubberband animation on the
axis that is not the rubberbanding axis. Because it converged on m_targetOffset, it always
resulted in no offset on that axis.

Fix by restoring the behavior from before r284136, which applies the rubberbanding as a
delta from the current offset and no longer uses m_targetOffset, which is removed. It's a
bit surprising that this rubberband animation drives a vertical scroll when the gesture is
primarily horizontal (normally we'd clamp these deltas to be purely horizontal), but people
are used to this behavior so restore it.

Test: fast/scrolling/mac/j-shaped-scroll-rubberband.html

  • platform/ScrollAnimation.h:
  • platform/ScrollingEffectsController.cpp: (WebCore::ScrollingEffectsController::overscrollAmount): (WebCore::ScrollingEffectsController::scrollOffset):
  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollAnimationRubberBand.h:
  • platform/mac/ScrollAnimationRubberBand.mm: (WebCore::ScrollAnimationRubberBand::startRubberBandAnimation): (WebCore::ScrollAnimationRubberBand::serviceAnimation): (WebCore::ScrollAnimationRubberBand::debugDescription const):
  • platform/mac/ScrollingEffectsController.mm: (WebCore::ScrollingEffectsController::startRubberBandAnimation): (WebCore::ScrollingEffectsController::startRubberBandAnimationIfNecessary):

LayoutTests:

  • fast/scrolling/mac/j-shaped-scroll-rubberband-expected.txt: Added.
  • fast/scrolling/mac/j-shaped-scroll-rubberband.html: Added.

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

5:56 PM Changeset in webkit [288523] by Russell Epstein
  • 3 edits
    3 adds in branches/safari-613-branch

Cherry-pick r288304. rdar://problem/87836459

[:has() pseudo-class] Ignore :visited inside :has()
https://bugs.webkit.org/show_bug.cgi?id=235404

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/has-visited-expected.html: Added.
  • web-platform-tests/css/selectors/has-visited-ref.html: Added.
  • web-platform-tests/css/selectors/has-visited.html: Added.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/selectors/has-visited.html

  • css/SelectorChecker.cpp: (WebCore::SelectorChecker::matchHasPseudoClass const):

Make this more similar to :is/:not():
Use the current SelectorChecker with a different context rather than a nested SelectorChecker.
Use matchRecursively.
Setup the functional pseudo-class bits for the context.

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

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

Cherry-pick r288303. rdar://problem/87836127

[:has pseudo-class] Support :has(:not(foo))
https://bugs.webkit.org/show_bug.cgi?id=235399

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/has-with-not-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/has-with-not.html: Added.

Source/WebCore:

This already works except for a filter bug.

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-with-not.html

  • style/HasSelectorFilter.h: (WebCore::Style::HasSelectorFilter::reject const):

We shouldn't reject a selector if we have a null key.

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

5:56 PM Changeset in webkit [288521] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288275. rdar://problem/87707090

AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>

Reviewed by Eric Carlson.

Sometimes the defaultInput is not available, in which case it is good to resort to the previous default device if available.
This fix prevents the following case to happen:

  • We start rendering WebRTC audio on some output, say AirPods
  • We start capturing microphone, but the default microphone is not the AirPods one (while it probably should, this is not always the case).
  • We migrate audio rendering to VPIO which will output audio to the same device as the input microphone if feasible (typically builtin speaker).
  • Audio is now flowing on builtin speaker instead of AirPods.

Manually tested.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

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

5:56 PM Changeset in webkit [288520] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288269. rdar://problem/86943871

Grant access to GlobalPreferences and GlobalPreferences_m uniformly
https://bugs.webkit.org/show_bug.cgi?id=235387
<rdar://problem/86943871>

Reviewed by Per Arne Vollan.

We should allow access to GlobalPreferences_m.plist in the places where we currently
allow GlobalPreferences.plist. We are inconsistent about this in our sandboxes, and
telemetry shows that we need to provide access.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:

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

5:56 PM Changeset in webkit [288519] by Russell Epstein
  • 12 edits in branches/safari-613-branch

Cherry-pick r288266. rdar://problem/87804395

Web Inspector: fully blackboxed stack traces don't show the right top call frame
https://bugs.webkit.org/show_bug.cgi?id=235381

Reviewed by Patrick Angle.

Source/WebInspectorUI:

  • UserInterface/Models/StackTrace.js: (WI.StackTrace): (WI.StackTrace.fromPayload): (WI.StackTrace.prototype.get firstNonNativeNonAnonymousNotBlackboxedCallFrame): Only assign to firstNonNativeNonAnonymousCallFrame once. Drive-by: Don't re-fetch the blackbox data for the WI.SourceCode of the WI.CallFrame. Drive-by: Combine optional parameters into an options = {} for current code cleanliness

and greater flexibility for future changes.

  • UserInterface/Models/CallFrame.js: (WI.CallFrame): (WI.CallFrame.fromDebuggerPayload): (WI.CallFrame.fromPayload):
  • UserInterface/Views/ThreadTreeElement.js: (WI.ThreadTreeElement.prototype.refresh): Drive-by: Combine optional parameters into an options = {} for current code cleanliness

and greater flexibility for future changes.

  • UserInterface/Views/CallFrameTreeElement.js: (WI.CallFrameTreeElement): (WI.CallFrameTreeElement.prototype.onattach):
  • UserInterface/Views/CallFrameView.js: (WI.CallFrameView): Drive-by: Don't re-fetch the blackbox data for the WI.SourceCode of the WI.CallFrame.

LayoutTests:

  • inspector/model/stack-trace.html:
  • inspector/model/stack-trace-expected.txt:
  • inspector/debugger/resources/async-stack-trace-test.js: (TestPage.registerInitializer.window.getAsyncStackTrace):
  • inspector/debugger/resources/log-active-stack-trace.js: (TestPage.registerInitializer.window.getActiveStackTrace):
  • inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js: (TestPage.registerInitializer.window.getAsyncStackTrace): Drive-by: Adopt new WI.StackTrace constructor arguments format.

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

5:56 PM Changeset in webkit [288518] by Russell Epstein
  • 6 edits in branches/safari-613-branch/Source/bmalloc

Cherry-pick r288265. rdar://problem/87842725

[libpas] Disable PAS_ASSERT on Darwin ARM64 (not in ARM64E)
https://bugs.webkit.org/show_bug.cgi?id=235349

Reviewed by Saam Barati.

We have several weak devices which only have ARM64 (not ARM64E).
And in such a weak device, PAS_ASSERT affects on performance.
By disabling PAS_ASSERT, we got 0.5% improvement in PLT in iPhone 6S.

  • libpas/src/libpas/pas_config.h:
  • libpas/src/libpas/pas_config_prefix.h:
  • libpas/src/libpas/pas_internal_config.h:
  • libpas/src/libpas/pas_platform.h:
  • libpas/src/libpas/pas_utils.h:

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

5:56 PM Changeset in webkit [288517] by Russell Epstein
  • 27 edits in branches/safari-613-branch

Cherry-pick r288264. rdar://problem/87745419

Align our qualified name validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=201699

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt: Rebaseline WPT tests now that more checks are passing.

Source/WebCore:

Align our qualified name validation with the latest specification:

No new tests, rebaselined existing tests.

  • dom/Document.cpp: (WebCore::isValidNameStart): (WebCore::isValidNamePart):

LayoutTests:

  • dom/xhtml/level3/core/canonicalform06-expected.txt:
  • dom/xhtml/level3/core/infoset06-expected.txt:
  • dom/xhtml/level3/core/infoset07-expected.txt:
  • dom/xhtml/level3/core/wellformed01-expected.txt:
  • dom/xhtml/level3/core/wellformed02-expected.txt:
  • dom/xhtml/level3/core/wellformed03-expected.txt:
  • dom/xhtml/level3/core/wellformed04-expected.txt: Rebaseline outdated imported tests.
  • fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
  • fast/dom/DOMImplementation/createDocument-namespace-err.html:
  • fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
  • fast/dom/Document/createAttributeNS-namespace-err.html:
  • fast/dom/Document/createElement-invalid-names-expected.txt:
  • fast/dom/Document/createElement-invalid-names.html:
  • fast/dom/Document/createElementNS-namespace-err-expected.txt:
  • fast/dom/Document/createElementNS-namespace-err.html:
  • fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
  • fast/dom/Element/setAttributeNS-namespace-err.html:
  • fast/dom/dataset-expected.txt:
  • fast/dom/dataset-xhtml-expected.txt:
  • fast/dom/dataset-xhtml.xhtml:
  • fast/dom/dataset.html: Update and rebaseline outdated WebKit tests.

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

5:55 PM Changeset in webkit [288516] by Russell Epstein
  • 9 edits
    2 adds
    2 deletes in branches/safari-613-branch

Cherry-pick r288245. rdar://problem/85878291

Limit the deprecated CSSOMPrimitiveValue to formerly standardized unit types
https://bugs.webkit.org/show_bug.cgi?id=233651
<rdar://problem/85878291>

Reviewed by Darin Adler.

Source/WebCore:

This removes support, and makes it clear that these deprecated APIs shouldn't be exposing
anything more modern than what is standardized in DOM Level 2 Style. Hopefully this avoids
others in future adding support for new units.

Other changes included as they are necessary to make improved test not assert.

Test: fast/css/CSSPrimitiveValue-modern-length.html

  • css/CSSUnits.cpp: (WebCore::unitCategory): Ensure this is complete for all units. (WebCore::canonicalUnitTypeForCategory): Ensure this is complete for all unit categories.
  • css/DeprecatedCSSOMPrimitiveValue.cpp: (WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const): Remove post-DOM Level 2 Style values. (WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const): Remove post-DOM Level 2 Style values. (WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue const): Add comment.
  • css/DeprecatedCSSOMPrimitiveValue.h: Remove post-DOM Level 2 Style constants.
  • css/DeprecatedCSSOMPrimitiveValue.idl: Remove post-DOM Level 2 Style constants.
  • css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor. (WebCore::CSSPrimitiveValue::doubleValueInternal const): Handle std::optional return.
  • css/CSSPrimitiveValue.h: (WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor.
  • page/PrintContext.cpp: (WebCore::PrintContext::computedPageMargin): Handle std::optional return.

LayoutTests:

Updated/moved test to cover all modern length units, not just ic.

  • fast/css/CSSPrimitiveValue-ic-expected.txt: Removed.
  • fast/css/CSSPrimitiveValue-ic.html: Removed.
  • fast/css/CSSPrimitiveValue-modern-length-expected.txt: Added.
  • fast/css/CSSPrimitiveValue-modern-length.html: Added.

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

5:55 PM Changeset in webkit [288515] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288238. rdar://problem/87272534

WebsiteDataStore.cpp uses switch statements for WebKit::ProcessAccessType enum that fall through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234986
<rdar://problem/87272534>

Reviewed by Darin Adler.

Clean up / clarify processAccessType logic in WebsiteDataStore.cpp.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::computeNetworkProcessAccessTypeForDataFetch): (WebKit::computeWebProcessAccessTypeForDataFetch): (WebKit::WebsiteDataStore::fetchDataAndApply): (WebKit::computeNetworkProcessAccessTypeForDataRemoval): (WebKit::computeWebProcessAccessTypeForDataRemoval): (WebKit::WebsiteDataStore::removeData):

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

5:55 PM Changeset in webkit [288514] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288232. rdar://problem/87265153

WebKit::DownloadProxy::publishProgress() falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234975
<rdar://problem/87265153>

Reviewed by Darin Adler.

  • UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::publishProgress): Let's not send the IPC if we failed to create the handle since the recipient code early returns when the handle is invalid.

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

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

Cherry-pick r288180. rdar://problem/84440841

Loupe sometimes flips to the bottom of the page when dragging the end of a selection to the top of a page with selection flipping.
https://bugs.webkit.org/show_bug.cgi?id=235220

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html

When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.

  • platform/graphics/FloatPoint.cpp: (WebCore::FloatPoint::constrainedWithin const):
  • platform/graphics/FloatPoint.h:
  • platform/graphics/IntPoint.cpp: (WebCore::IntPoint::constrainedWithin const):
  • platform/graphics/IntPoint.h:

Source/WebKit:

When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.

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

LayoutTests:

  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow-expected.txt: Added.
  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html: Added.

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

5:55 PM Changeset in webkit [288512] by Russell Epstein
  • 7 edits in branches/safari-613-branch

Cherry-pick r288111. rdar://problem/87699260

[:has() pseudo-class] Disallow nested :has()
https://bugs.webkit.org/show_bug.cgi?id=235231

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt:
  • web-platform-tests/css/selectors/has-basic-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:

Source/WebCore:

Nested case ':has(:has(foo))' adds no meaningful capability and would complicate invalidation.
See https://github.com/w3c/csswg-drafts/issues/6952 for more details.

  • css/parser/CSSSelectorParser.cpp: (WebCore::CSSSelectorParser::consumePseudo):

Also set m_resistDefaultNamespace like other logical combination pseudo-classes.

  • css/parser/CSSSelectorParser.h:

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

5:55 PM Changeset in webkit [288511] by Russell Epstein
  • 5 edits
    4 adds in branches/safari-613-branch

Cherry-pick r288107. rdar://problem/87425066

REGRESSION(r281389): using font-variant-ligatures causes Unicode bidi isolation control characters to render
https://bugs.webkit.org/show_bug.cgi?id=235053
<rdar://problem/87425066>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/white-space/default-ignorable-complex-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable-complex.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable.html: Added.

Source/WebCore:

The spec says (https://drafts.csswg.org/css-text-3/#white-space-processing)

unsupported Default_ignorable characters must be ignored for text rendering.

Previously, we were handling this by mapping the characters to the zero width space character. r281389 changed
that to be more faithful to the original string (and not do the mapping). One somewhat unexpected result of
this patch was that, now that we're not mapping these code points to the zero width space character, fewer fonts
on the system will support those code points. It became much more common for no font at all to support the code
point in question. r281389 handled the situation where the code points were supported by a font but shouldn't be
rendered, but didn't handle the case where the code points *weren't* supported by any fonts (in the complex text
codepath). This patch updates that path to handle it.

This patch also replaces our previous hardcoded list of Default_ignorable characters with the proper call to ICU
to check the Unicode property. It does this in both the fast text codepath and the simple text codepath, to make
sure they match.

Tests: imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable-complex.html

imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable.html

  • platform/graphics/ComplexTextController.cpp: (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
  • platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::applyCSSVisibilityRules):

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

5:55 PM Changeset in webkit [288510] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE

Cherry-pick r288105. rdar://problem/87656387

REGRESSION (r286603): rx::ProgramMtl::getSpecializedShader() leaks MTLFunctionConstantValues object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235281>
<rdar://problem/87656387>

Reviewed by Darin Adler.

  • src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::getSpecializedShader):
  • Use mtl::AutoObjCObj<> to release MTLFunctionConstantValues object on early return.

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

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

Cherry-pick r288099. rdar://problem/86586969

Layered @import rules in <style> should be preloaded
https://bugs.webkit.org/show_bug.cgi?id=234094
<rdar://problem/86586969>

Reviewed by Dean Jackson.

Source/WebCore:

Test: http/tests/loading/preload-css-import-layer.html

  • html/parser/CSSPreloadScanner.cpp: (WebCore::CSSPreloadScanner::tokenize): (WebCore::hasValidImportConditions): (WebCore::CSSPreloadScanner::emitRule):
  • html/parser/CSSPreloadScanner.h:

Allow @import rule containing layer condition to be preloaded.

LayoutTests:

  • http/tests/loading/preload-css-import-layer-expected.txt: Added.
  • http/tests/loading/preload-css-import-layer.html: Added.

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

5:55 PM Changeset in webkit [288508] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE

Cherry-pick r288097. rdar://problem/87653812

Follow-up: REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>

Unreviewed follow-up fix from Bug 235281, Comment #5.

  • src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMetalDeviceMatchingAttribute):
  • Remove unneeded calls to .get().

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

5:55 PM Changeset in webkit [288507] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE

Cherry-pick r288074. rdar://problem/87653812

REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>

Reviewed by Darin Adler.

  • src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMetalDeviceMatchingAttribute):
  • Make use of mtl::adoptObjCObj<> so these objects are relaseed when the method returns.

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

5:55 PM Changeset in webkit [288506] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r288039. rdar://problem/79220540

[iOS] Occasional crash under -[UITargetedPreview initWithView:parameters:target:] when focusing form controls
https://bugs.webkit.org/show_bug.cgi?id=235248
rdar://79220540

Reviewed by Tim Horton and Aditya Keerthi.

Source/WebKit:

It's possible for -resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets: to return a nil snapshot
view in the case where a screen update has not been performed yet (among other scenarios). In the case where
UIKit returns nil when we're creating the targeted preview for the context menu when focusing a select element
or file input, we'll crash due to an Objective-C exception in the initializer of UITargetedPreview. Mitigate
this by falling back to an empty UIView after requesting the snapshot view to make our code robust against this
scenario.

Test: KeyboardInputTests.DoNotCrashWhenFocusingSelectWithoutViewSnapshot

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

Tools:

Add an API test that exercises the crash by forcing -resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:
to return nil via swizzling.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm: (TestWebKitAPI::nilResizableSnapshotViewFromRect): (TestWebKitAPI::TEST):

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

5:55 PM Changeset in webkit [288505] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288034. rdar://problem/86341944

REGRESSION: ARKit example loads a page full of random symbols instead of a 3D model
https://bugs.webkit.org/show_bug.cgi?id=235254

Reviewed by Tim Horton.

When we enabled the ModelDocument support, we disabled the ContentProvider path.
This was a mistake - it has to be a runtime check.

  • UIProcess/API/Cocoa/WKPreferences.mm: Expose the ModelDocumentEnabled WebPreference so that it can be read from a WKWebViewConfiguration. (-[WKPreferences _setModelDocumentEnabled:]): (-[WKPreferences _modelDocumentEnabled]):
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Rather than the compile-time test, check the WebPreferences to see if ModelDocument is disabled. (-[WKWebViewContentProviderRegistry initWithConfiguration:]):

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

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

Cherry-pick r288025. rdar://problem/83407577

gl.texImage2D upload of getUserMedia streams via <video> element fails
https://bugs.webkit.org/show_bug.cgi?id=230617
<rdar://problem/83407577>

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

Source/WebCore:

Fix MSE camera to WebGL texture uploads.
Partially revert r280963 for Cocoa MediaPlayer implementatations
that do not have nativeImageForCurrentTime / pixelBufferForCurrentTime.
Turns out MSE does not have these implemented, so currently fall back
to the painting path.

Test: fast/mediastream/getUserMedia-to-canvas.html

  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::videoFrameToImage):

LayoutTests:

  • fast/mediastream/getUserMedia-to-canvas-expected.txt: Added.
  • fast/mediastream/getUserMedia-to-canvas.html: Added. Add a test to test getting video frame to 2DContext and WebGL canvas elements.
  • webrtc/routines.js: Add a function to assert that ImageData contains the simulated mock camera image. This is useful in verifying that the image is exactly as expected. The test tests only the default orientation. Later changes will update the test to address the camera rotation.

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

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

Cherry-pick r288015. rdar://problem/84617690

[LFC][IFC] Incorrect root inline box position when non-empty atomic inline level child box has height: 0px
https://bugs.webkit.org/show_bug.cgi?id=235218
<rdar://84617690>

Reviewed by Antti Koivisto.

Source/WebCore:

Even if the atomic inline level box itself does not stetch the line box, it may still affect the root inline box position
through baseline "syncing" (This is mostly the case with 0 tall boxes as (non-empty) atomic inline boxes in general stretch the line box).

Test: fast/block/line-layout/non-empty-inline-block-with-zero-height.html

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp: (WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):

LayoutTests:

  • fast/block/line-layout/non-empty-inline-block-with-zero-height-expected.html: Added.
  • fast/block/line-layout/non-empty-inline-block-with-zero-height.html: Added.

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

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

Cherry-pick r288012. rdar://problem/87397176

[:has() pseudo-class] Avoid O(n2) in style invalidation with repeated DOM mutations
https://bugs.webkit.org/show_bug.cgi?id=234842
<rdar://problem/87397176>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/has-complexity-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/has-complexity.html: Added.

Source/WebCore:

Use invalidation selectors to check if a given mutation needs :has() invalidation.

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-complexity.html

  • css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOne const):
  • css/SelectorChecker.h:
  • style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):

Invalidate only if the invalidation ruleset has an invalidation selector that matches
the added/removed element. Even in that case we only need to invalidate if that selector
has not already matched within this parent.

As we don't have persistent state that would remember what already matched accross multiple
mutations, approximate this by checking if the closest sibling matched.

(WebCore::Style::ChildChangeInvalidation::invalidateForHasBeforeMutation):
(WebCore::Style::ChildChangeInvalidation::invalidateForHasAfterMutation):

  • style/ChildChangeInvalidation.h:

LayoutTests:

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

5:55 PM Changeset in webkit [288501] by Russell Epstein
  • 5 edits in branches/safari-613-branch

Cherry-pick r288010. rdar://problem/87557846

Expose way to encode CTAP commands with only the hash of ClientDataJSON
https://bugs.webkit.org/show_bug.cgi?id=235191
<rdar://problem/87557846>

Reviewed by Brent Fulgham.

Source/WebKit:

CTAP command encoding covered by existing tests (see CtapRequestTest) and the SPI
in new API tests.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:]): (+[_WKWebAuthenticationPanel encodeGetAssertionCommandWithClientDataHash:options:userVerificationAvailability:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST): Tests for new SPIs.

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

5:54 PM Changeset in webkit [288500] by Russell Epstein
  • 8 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r287973. rdar://problem/87533906

[:has() pseudo-class] Collect invalidation selectors for child invalidation
https://bugs.webkit.org/show_bug.cgi?id=235103

Reviewed by Dean Jackson.

Collect selectors we can use to test if :has status actually changed before invalidating.

This patch doesn't yet use the the selector.

  • style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):

Use the pseudo class invalidation keys for looking up :has selectors too
instead of having a custom mechanism for doing the same thing.

  • style/PseudoClassChangeInvalidation.cpp: (WebCore::Style::makePseudoClassInvalidationKeys):
  • style/PseudoClassChangeInvalidation.h:
  • style/RuleFeature.cpp: (WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

Always return a selector for consistency.

(WebCore::Style::makePseudoClassInvalidationKey):
(WebCore::Style::RuleFeatureSet::collectFeatures):
(WebCore::Style::RuleFeatureSet::add):
(WebCore::Style::RuleFeatureSet::clear):
(WebCore::Style::RuleFeatureSet::shrinkToFit):

  • style/RuleFeature.h:
  • style/StyleScopeRuleSets.cpp: (WebCore::Style::ScopeRuleSets::collectFeatures const): (WebCore::Style::ScopeRuleSets::hasPseudoClassInvalidationRuleSets const): (WebCore::Style::ScopeRuleSets::tagInvalidationRuleSets const): Deleted.

We don't need keep around tag rule sets anymore.

  • style/StyleScopeRuleSets.h:

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

5:54 PM Changeset in webkit [288499] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WTF

Cherry-pick r287941. rdar://problem/87472589

[JSC] Enable libpas jit-heap when libpas is enabled
https://bugs.webkit.org/show_bug.cgi?id=235042

Reviewed by Filip Pizlo.

Previously, we enabled jit-heap only in ARM64 macOS.
We should enable it when libpas is enabled.

  • wtf/PlatformUse.h:

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

5:54 PM Changeset in webkit [288498] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r287934. rdar://problem/86578732

Web Inspector: Unhandled exception when moving cursor mid-token after receiving CSS property name completions
https://bugs.webkit.org/show_bug.cgi?id=234393
<rdar://problem/86578732>

Reviewed by Patrick Angle.

Source/WebInspectorUI:

A faulty check for mid-token completions in WI.CSSKeywordCompletions.forPartialPropertyName(), which are still
unsupported, prevented an early return and completions were provided unexpectedly. This had knock-on effects in
WI.SpreadsheetTextField which is not set up to handle cases where the caret is placed within the completion query.
Calculating the adjusted caret position could return a negative index and throw an unhandled exception.

Web Inspector does not currently explicitly support mid-token completions. See https://webkit.org/b/227157

The implementation of fuzzy matching for CSS completions in https://webkit.org/b/234092
means that, unhindered, the completion provider for CSS property names _can_ return mid-token completions.
Typing a query like margin, then moving the caret to the beginning and correcting to s|margin will return
completions like [s]croll-[margin]. Accepting the completion results in a malformed SpreadsheetTextField.value
by concatenation within the prefix itself. As the user types mid-token, the prefix becomes ambiguous.

Fixing the condition in WI.CSSKeywordCompletions.forPartialPropertyName() now inhibits unintentional
mid-token completions when fuzzy matching is enabled.

  • UserInterface/Models/CSSKeywordCompletions.js: (WI.CSSKeywordCompletions.forPartialPropertyName):
  • UserInterface/Views/SpreadsheetTextField.js: (WI.SpreadsheetTextField.prototype._showSuggestionsView):

LayoutTests:

  • inspector/unit-tests/css-keyword-completions-expected.txt:
  • inspector/unit-tests/css-keyword-completions.html:

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

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

Cherry-pick r287922. rdar://problem/87455957

[LFC][IFC] Incorrect negative margin handling (both left/right) with RTL inline base direction
https://bugs.webkit.org/show_bug.cgi?id=235095

Reviewed by Antti Koivisto.

Source/WebCore:

The simplified negative margin handling on inline boxes does not work well with RTL inline base direction.
With LTR direction, we could just treat the negative left margin value (which pulls content to the left)
as part the "logical width" (may resulting in negative width values) and let this shorter width pull
the the adjoining content.
However this setup produces incorrect box positions when the inline base direction is RTL.
In this patch, we switch over to a more correct inline box positioning where the negative margin
affects the logical left while it does not make the run shorter anymore.

Test: fast/inline/rtl-negative-margins.html

  • layout/formattingContexts/inline/InlineLine.cpp: (WebCore::Layout::Line::appendInlineBoxStart): (WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp: (WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
  • layout/formattingContexts/inline/InlineLineBuilder.cpp: (WebCore::Layout::LineBuilder::layoutInlineContent):
  • layout/formattingContexts/inline/InlineLineBuilder.h:
  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp: (WebCore::Layout::InlineDisplayLineBuilder::build const):

LayoutTests:

  • fast/inline/rtl-negative-margins-expected.html: Added.
  • fast/inline/rtl-negative-margins.html: Added.

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

5:54 PM Changeset in webkit [288496] by Russell Epstein
  • 5 edits
    1 copy in branches/safari-613-branch

Cherry-pick r287878. rdar://problem/85359803

::backdrop pseudo element should react to associated element event listeners
https://bugs.webkit.org/show_bug.cgi?id=233072

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events.html

We now append the ::backdrop renderer as a child of the top layer element, rather than a sibling of the
top layer element. This gets hit testing working properly for free.

We used to append the ::backdrop renderer as a sibling to get the proper layout, but this is no longer
necessary after r287683 and r287845.

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp: (WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):

LayoutTests:

iOS failure is due to WPT test_driver actions being unsupported.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt: Added.

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

5:54 PM Changeset in webkit [288495] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebInspectorUI

Cherry-pick r287870. rdar://problem/86543279

Web Inspector: Increase padding around icons in Alignment editor
https://bugs.webkit.org/show_bug.cgi?id=234036
<rdar://problem/86543279>

Reviewed by Devin Rousso.

Increase margin and padding around the icons, making the icons more visually appealing
and easier to distinguish and from each other.

  • UserInterface/Images/AlignContentStretch.svg: The gap between rectangles was only 0.5px. Increase it to 2px.
  • UserInterface/Views/AlignmentEditor.css: (.alignment-editor .glyph): (.alignment-editor .glyph:not(:first-child)): (.alignment-editor .glyph.selected): (.alignment-editor .glyph.selected:active): (.alignment-editor .glyph:not(:last-child)): Deleted. (.alignment-editor .glyph.selected + .glyph): Deleted.

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

5:54 PM Changeset in webkit [288494] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r287835. rdar://problem/87338875

[Web Animations] getKeyframes() for a CSS Animation should not use computed style for keyframes (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235028

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progressions.

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

Source/WebCore:

In bug 235008, we already improved the situtation by reading from the StyleProperties
associated with the StyleRuleKeyframe for CSS Animations. We're now taking the next
step by reading from the matching rules for the provided element.

There is one remaining case where we use the computed style: when the CSSValue uses
a CSS variable. To fix the css/css-animations/KeyframeEffect-getKeyframes.tentative.html
WPT entirely, we'll need to be able to substitute those in the output.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::getKeyframes):

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

5:23 PM Changeset in webkit [288493] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (iOS 15): HTMLAudioElement fails to load new audio when device is locked or safari is in background
https://bugs.webkit.org/show_bug.cgi?id=229688
<rdar://problem/82554226>

Unreviewed, adress post-review feedback.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState):

5:11 PM Changeset in webkit [288492] by Patrick Angle
  • 10 edits in trunk

Web Inspector: [Flexbox] Add instrumentation/protocol bits for flex layout containers
https://bugs.webkit.org/show_bug.cgi?id=235454

Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • inspector/protocol/CSS.json:

Source/WebCore:

Added tests in inspector/css/nodeLayoutContextTypeChanged.html.

Add instrumentation to RenderFlexibleBox to observe elements becoming/ceasing to be flex containers. We only
instrument RenderFlexibleBox created with an Element, not a Document, since all anonymous nodes will have their
document passed, which means we would attempt to track multiple different nodes against the same document,
resulting in unexpected results. Conversely, we only instrument in the destructor for non-anonymous nodes.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::layoutContextTypeForRenderer):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::RenderFlexibleBox):
(WebCore::RenderFlexibleBox::~RenderFlexibleBox):

Source/WebInspectorUI:

  • UserInterface/Models/DOMNode.js:

LayoutTests:

  • inspector/css/nodeLayoutContextTypeChanged-expected.txt:
  • inspector/css/nodeLayoutContextTypeChanged.html:
5:07 PM Changeset in webkit [288491] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.41.2

Tag Safari-613.1.14.41.2.

5:05 PM Changeset in webkit [288490] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.41-branch/Source

Versioning.

WebKit-7613.1.14.41.2

5:02 PM Changeset in webkit [288489] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Avoid calling IOSurfaceGetPropertyMaximum
https://bugs.webkit.org/show_bug.cgi?id=235526
<rdar://85128431>

Reviewed by Simon Fraser and Darin Adler.

There should be no need to call IOSurfaceGetPropertyMaximum on iOS, since the return value will exceed the hardcoded maximum.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::maxSurfaceDimensionCA):
(WebCore::computeMaximumSurfaceSize):

4:51 PM Changeset in webkit [288488] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.3.2

Tag Safari-613.1.14.3.2.

4:48 PM Changeset in webkit [288487] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.2.4

Tag Safari-613.1.14.2.4.

4:48 PM Changeset in webkit [288486] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.6

Tag Safari-613.1.14.1.6.

4:48 PM Changeset in webkit [288485] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.0.5

Tag Safari-613.1.14.0.5.

4:45 PM Changeset in webkit [288484] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.3-branch/Source

Versioning.

WebKit-7613.1.14.3.2

4:43 PM Changeset in webkit [288483] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.2-branch/Source

Versioning.

WebKit-7613.1.14.2.4

4:38 PM Changeset in webkit [288482] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.0-branch/Source

Versioning.

WebKit-7613.1.14.0.5

4:35 PM Changeset in webkit [288481] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.6

4:22 PM Changeset in webkit [288480] by Adrian Perez de Castro
  • 9 edits in releases/WebKitGTK/webkit-2.34

Merge r288379 - Build failure with g++ 12: std::exchange undefined
https://bugs.webkit.org/show_bug.cgi?id=235445

Patch by Mike Gorse <mgorse@suse.com> on 2022-01-21
Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • API/JSRetainPtr.h: Include <utility>

Source/WebCore:

  • platform/graphics/x11/XUniqueResource.h: Include <utility>

Source/WTF:

  • wtf/CompletionHandler.h: Include <utility>
  • wtf/MallocPtr.h: Ditto

Tools:

  • ImageDiff/ImageDiff.cpp: Include <utility>
4:22 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
4:19 PM Changeset in webkit [288479] by Jonathan Bedard
  • 5 edits in trunk/Tools

[EWS] Support pull request in AnaylzePatch
https://bugs.webkit.org/show_bug.cgi?id=235411
<rdar://problem/87839638>

Reviewed by Aakash Jain.

  • CISupport/ews-build/factories.py:

(Factory.init): Rename AnalyzePatch to AnalyzeChange.

  • CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Rename AnalyzePatch to AnalyzeChange.

  • CISupport/ews-build/steps.py:

(AnalyzeChange): Renamed from AnalyzePatch.
(AnalyzeChange._get_patch): Create a parseable string including the files changed.
(CheckChangeRelevance): Renamed from CheckPatchRelevance.
(FindModifiedLayoutTests): Inherit from AnalyzeChange.
(AnalyzePatch): Renamed to AnalyzeChange.
(CheckPatchRelevance): Renamed to CheckChangeRelevance.

  • CISupport/ews-build/steps_unittest.py:

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

4:07 PM Changeset in webkit [288478] by sihui_liu@apple.com
  • 4 edits in trunk

Regression (r286936): SessionStorage data is not cleared when deleting website data by modification time
https://bugs.webkit.org/show_bug.cgi?id=235542

Reviewed by Chris Dumez.

Source/WebKit:

The old behavior before r286936 is to delete SessionStorage data regardless of the modifiedSince parameter.
r286936 made it check modifiedSince and perform deleteion when modifiedSince time is -Walltime::infinity. This
patch corrects it by deleting SessionStorage data when modifiedSince time is in the past.

API test: SessionStorage.ClearByModificationTime

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::deleteData):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SessionStorage.mm:

(TEST):

3:47 PM Changeset in webkit [288477] by Wenson Hsieh
  • 4 edits in trunk

[macOS] Update Pasteboard::read to prioritize native representations over TIFF
https://bugs.webkit.org/show_bug.cgi?id=190101
rdar://44879244

Reviewed by Ryosuke Niwa.

Source/WebCore:

Currently on macOS, when pasting image data from the pasteboard into richly editable elements, we attempt to
read the image data by checking a hard-coded list of types; in order, these are: TIFF, PDF, PNG, and finally
JPEG. Since AppKit automatically provides TIFF as an available type for compatibility when writing non-TIFF
image data to the pasteboard, this means that WebKit automatically transcodes all images to TIFF when pasting
images in editable areas.

This leads to unexpected behavior in Mail compose when using the continuity camera to insert images, since all
drawings and photos end up being inserted as (often much larger) TIFF files instead of JPEG and PNG,
respectively. To address this, we adjust Pasteboard::read to prioritize image formats in the hard-coded list
above that were written directly to the pasteboard by the copier (i.e. without transcoding) before reading from
the remaining types that were added to the pasteboard by the system (and thus require extra transcoding).

In the case where only PNG and JPEG data was written to the pasteboard by the copier, this means we'll read
images as PNG and JPEG data directly. If TIFF was explicitly written as an image format to the pasteboard, this
patch will preserve existing behavior by reading the image data as TIFF.

Note that this existing logic for reading images directly into web content is an existing privacy risk, since
AppKit's pasteboard code preserves all metadata properties when transcoding between image formats. In the
future, we should add a step here to strip out as much metadata as possible here, with an allow-list of metadata
properties that are essential to preserving image fidelity (e.g. orientation).

See: <https://webkit.org/b/235534> for more details.

Test: WKAttachmentTests.PastingPreservesImageFormat

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::read):

Refactor this logic so that we first try to read any natively written image formats that happen to be one of
("TIFF", "PDF", "PNG", "JPEG"), before trying to read any other types that would otherwise require transcoding.

Tools:

Add a cross-platform API test to verify that when using the client-side attachments, pasted image data of
varying formats (PDF, JPEG, PNG) are read in their original form. See WebCore/ChangeLog for more details. This
test currently passes on iOS but fails on macOS, where both the PNG and JPEG images are transcoded and read as
TIFF.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(testJPEGFileURL):
(testJPEGData):
(platformCopyPDF):
(platformCopyJPEG):
(TestWebKitAPI::TEST):

Drive-by fix: also remove a JavaScript evaluation in a nearby test that could only result in an exception (and
was probably accidentally left there while writing the test).

3:20 PM Changeset in webkit [288476] by Mikhail R. Gadelha
  • 10 edits in trunk/Source

[JSC][32bit] Fix regexp crash on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=234476

Reviewed by Yusuke Suzuki.

This patch fixes several regexp crashes on ARMv7 due to an incorrect
offset to retrieve the 5th argument from the stack: in ARMv7, only
4 arguments are passed via registers r0-r3i, and any other argument is
placed on the stack, however, YarrJIT was trying to get the 5th arg
from a fixed offset, so because the generateEnter() method pushed
register into the stack, the offset was wrong. This patch fixes how
the offset is calculated for MIPS and ARMv7.

This patch also introduces some small changes:

  1. Added static_asserts that the YarrJIT calls do indeed have 5 arguments

and that the 5th argument has the type that we expect (MatchingContextHolder*).

  1. Removed an unnecessary pointer from the MatchingContextHolder

constructor.

  1. Fixed some warnings in the YarrJIT code here and there.
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):

  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):

  • yarr/YarrJIT.cpp:
  • yarr/YarrMatchingContextHolder.h:

(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):

3:02 PM Changeset in webkit [288475] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/Source/WebKit

Soft link ARKit in a separate ARKitSoftLink file
https://bugs.webkit.org/show_bug.cgi?id=235532

Patch by Ada Chan <adachan@apple.com> on 2022-01-24
Reviewed by Tim Horton.

  • Shared/Cocoa/ARKitSoftLink.h: Added.
  • Shared/Cocoa/ARKitSoftLink.mm: Added.
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • WebKit.xcodeproj/project.pbxproj:
2:54 PM Changeset in webkit [288474] by Jonathan Bedard
  • 5 edits in trunk/Tools

[EWS] Use github.head.sha instead of revision
https://bugs.webkit.org/show_bug.cgi?id=235521
<rdar://problem/87970427>

Reviewed by Aakash Jain.

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

(Events.buildFinishedGitHub): Use github.head.sha instead of revision.
(Events.stepStartedGitHub): Ditto.

  • Tools/CISupport/ews-build/master.cfg: Extract github.head.sha from hook.
  • Tools/CISupport/ews-build/steps.py:

(GitHubMixin._is_pr_obsolete): Use github.head.sha instead of revision.
(ConfigureBuild.add_pr_details): Ditto.
(ValidateChange.validate_github): Ditto.

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

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

2:51 PM Changeset in webkit [288473] by ysuzuki@apple.com
  • 31 edits
    2 adds in trunk

[JSC] Support import assertion syntax
https://bugs.webkit.org/show_bug.cgi?id=235312

Reviewed by Ross Kirsling.

JSTests:

  • modules/import-meta-syntax.js:

(shouldThrow):

  • stress/import-syntax.js:
  • stress/modules-syntax-error.js:
  • stress/modules-syntax-import-assertion-error.js: Added.

(shouldThrow):

  • stress/modules-syntax-import-assertion.js: Added.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-dynamic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/dynamic-import-with-assertion-argument.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/dynamic-import-with-assertion-argument.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/charset-bom.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/charset-bom.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/json-module-service-worker-test.https-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/repeated-imports.any-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/repeated-imports.any.worker-expected.txt:
  • web-platform-tests/service-workers/service-worker/dedicated-worker-service-worker-interception.https-expected.txt:
  • web-platform-tests/workers/dedicated-worker-parse-error-failure-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-options-credentials-expected.txt:

Source/JavaScriptCore:

This patch adds syntax support for import assertion[1].
This does not add the actual feature propagating import assertion
to the module request yet.

[1]: https://github.com/tc39/proposal-import-assertions

  • bytecompiler/NodesCodegen.cpp:

(JSC::ImportNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createImportExpr):
(JSC::ASTBuilder::createImportAssertionList):
(JSC::ASTBuilder::appendImportAssertion):
(JSC::ASTBuilder::createImportDeclaration):
(JSC::ASTBuilder::createExportAllDeclaration):
(JSC::ASTBuilder::createExportNamedDeclaration):

  • parser/NodeConstructors.h:

(JSC::ImportNode::ImportNode):
(JSC::ImportDeclarationNode::ImportDeclarationNode):
(JSC::ExportAllDeclarationNode::ExportAllDeclarationNode):
(JSC::ExportNamedDeclarationNode::ExportNamedDeclarationNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseImportAssertions):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createImportExpr):
(JSC::SyntaxChecker::createImportAssertionList):
(JSC::SyntaxChecker::appendImportAssertion):
(JSC::SyntaxChecker::createImportDeclaration):
(JSC::SyntaxChecker::createExportAllDeclaration):
(JSC::SyntaxChecker::createExportNamedDeclaration):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/OptionsList.h:
2:47 PM Changeset in webkit [288472] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WTF

Merge r288459 - REGRESION(r288200): [GTK][WPE] Build broken on Ubuntu 18.04
https://bugs.webkit.org/show_bug.cgi?id=235401

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24
Reviewed by Adrian Perez de Castro.

This implements WTF_CRASH_UNDER_CONSTEXPR_CONTEXT() properly for compatibility with older
compilers.

  • wtf/Assertions.h:
2:47 PM Changeset in webkit [288471] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WTF

Merge r288460 - Build failure with GCC 12: no matching function for call to 'end(LChar [7])'
https://bugs.webkit.org/show_bug.cgi?id=235458

Unreviewed. Just need to #include <string> here.

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24

  • wtf/text/IntegerToStringConversion.h:
2:33 PM Changeset in webkit [288470] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: move filtering checkboxes into a single gear-with-contextmenu to save space
https://bugs.webkit.org/show_bug.cgi?id=235538

Reviewed by Patrick Angle.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get navigationItems):
(WI.NetworkTableContentView.prototype.get filterNavigationItems):
(WI.NetworkTableContentView.prototype.closed):
(WI.NetworkTableContentView.prototype._changeCollection):
(WI.NetworkTableContentView.prototype._updateOtherFiltersNavigationItemState): Added.
(WI.NetworkTableContentView.prototype._handleOtherFiltersNavigationItemContextMenu): Added.
(WI.NetworkTableContentView.prototype._handleClearNetworkOnNavigateChanged): Renamed from _handleClearNetworkOnNavigateChanged.
(WI.NetworkTableContentView.prototype._handleGroupMediaRequestsByDOMNodeChanged): Renamed from _handleGroupMediaRequestsByDOMNodeCheckedDidChange.

  • UserInterface/Views/NetworkTableContentView.css:

(.network-other-filters-button > .glyph): Added.
(.network-other-filters-button:active > .glyph): Added.
(.network-other-filters-button.active > .glyph): Added.
(.network-other-filters-button.active:active > .glyph): Added.

  • Localizations/en.lproj/localizedStrings.js:
2:31 PM Changeset in webkit [288469] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: collapse type filter scope bar into a single button to save space
https://bugs.webkit.org/show_bug.cgi?id=235537

Reviewed by Patrick Angle.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Views/NetworkTableContentView.css:

(.network-type-filter-scope-bar.default-item-selected:not(:hover)): Added.
(.network-type-filter-scope-bar.default-item-selected:hover): Added.

2:31 PM Changeset in webkit [288468] by aakash_jain@apple.com
  • 2 edits in trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy

Incorrect pull-request url printed by git-webkit
https://bugs.webkit.org/show_bug.cgi?id=235513

Reviewed by Jonathan Bedard.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.PRGenerator.PullRequest):

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

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

2:22 PM Changeset in webkit [288467] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.5

Tag Safari-613.1.14.1.5.

2:05 PM Changeset in webkit [288466] by eric.carlson@apple.com
  • 9 edits
    2 adds in trunk

REGRESSION (iOS 15): HTMLAudioElement fails to load new audio when device is locked or safari is in background
https://bugs.webkit.org/show_bug.cgi?id=229688
<rdar://problem/82554226>

Reviewed by Jer Noble.
Source/WebCore:

An iOS application loses its NowPlaying status as soon as the AudioSession category
is set to Ambient, and it can only get it back again by changing the category
to Playback *and* starting playback. When an application is in the background, however,
it can't start playback unless it *already* has NowPlaying status. So, ipso facto,
background playback will always fail once the category is set to Ambient.

If an AudioSession's category is set to Playback when it is activated, it will
interrupt another application playing audio, activate Bluetooth routes, etc.
This means WebKit has to relinquish Playback when a page is unable to produce audio
because AVFoundation automatically activates the audio session when playback starts

  • even if the AVPlayer is muted or has no audio.

To allow pages that were playing audio when WebKit went into the background to
continue to play after switching urls or activating another media element, add a
grace period when switch from Playback to Ambient.

Test: media/audio-session-category.html

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState):

Source/WebKit:

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::category const): Return the most recently set category
on all platforms so it is possible to test.

LayoutTests:

  • fast/mediasession/metadata/audio-track-enabled.html: Wait longer for the audio session

category to be reset.

  • media/audio-session-category-expected.txt: Added.
  • media/audio-session-category.html: Added.
  • platform/gtk/TestExpectations: Skip new test.
  • platform/mac-wk1/TestExpectations: Skip new test, MediaStream isn't supported

on WK1.

2:02 PM Changeset in webkit [288465] by Antti Koivisto
  • 71 edits in trunk

[CSS Container Queries] Basic parsing support for container-type property
https://bugs.webkit.org/show_bug.cgi?id=235514

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-basic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt:

Source/WebCore:

Parse 'container-type' with values 'none', 'size' and 'inline-size.

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

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ContainerType const):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containerType const):
(WebCore::RenderStyle::setContainerType):
(WebCore::RenderStyle::initialContainerType):

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

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

  • rendering/style/StyleRareNonInheritedData.h:
1:55 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
1:40 PM Changeset in webkit [288464] by youenn@apple.com
  • 9 edits in trunk/Source/ThirdParty/libwebrtc

Cherry-pick WebRTC 235826 change
https://bugs.webkit.org/show_bug.cgi?id=235510
<rdar://87884184>

Reviewed by Eric Carlson.

Cherry-picking above fixing for compliance.

  • Source/webrtc/media/engine/webrtc_media_engine.cc:
  • Source/webrtc/media/engine/webrtc_media_engine.h:
  • Source/webrtc/media/engine/webrtc_media_engine_unittest.cc:
  • Source/webrtc/media/engine/webrtc_video_engine.cc:
  • Source/webrtc/media/engine/webrtc_video_engine.h:
  • Source/webrtc/media/engine/webrtc_voice_engine.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map_unittest.cc:
1:12 PM Changeset in webkit [288463] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

file.stream() is slow and CPU-bound
https://bugs.webkit.org/show_bug.cgi?id=235448

Reviewed by Alex Christensen.

We introduce a ReadAsBinaryChunks mode to prevent storing the whole file in memory.
Use this in Blob stream implementation.
The new implementation is much faster for big files given it does not need to keep in memory the whole file.
Covered by existing tests.

  • fileapi/Blob.cpp:
  • fileapi/FileReaderLoader.cpp:
  • fileapi/FileReaderLoader.h:
  • fileapi/FileReaderLoaderClient.h:
1:11 PM Changeset in webkit [288462] by youenn@apple.com
  • 5 edits in trunk

[ iOS Release ] fast/mediastream/mediaElement-gc.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231601
<rdar://problem/84158942>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by existing test.

  • testing/Internals.cpp:

Looking at https://build.webkit.org/results/Apple-iOS-15-Simulator-Debug-WK2-Tests/r287831%20(1192)/fast/mediastream/mediaElement-gc-pretty-diff.html,
we can see the number of media elements is 2 while the test has created only 1 element.
We update Internals.mediaElementCount to only count elements of the current document

LayoutTests:

  • fast/mediastream/mediaElement-gc.html: add more precise checks to get better error information if test continues to be flaky.
  • platform/ios-wk2/TestExpectations:
12:33 PM Changeset in webkit [288461] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Reject large number of WebRTC audio channels
https://bugs.webkit.org/show_bug.cgi?id=235511

Reviewed by Eric Carlson.

Cherry-picking WebRTC upstream fix for compliance.

  • Source/webrtc/pc/webrtc_sdp.cc:
  • Source/webrtc/pc/webrtc_sdp_unittest.cc:
12:28 PM Changeset in webkit [288460] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Build failure with GCC 12: no matching function for call to 'end(LChar [7])'
https://bugs.webkit.org/show_bug.cgi?id=235458

Unreviewed. Just need to #include <string> here.

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24

  • wtf/text/IntegerToStringConversion.h:
12:13 PM Changeset in webkit [288459] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

REGRESION(r288200): [GTK][WPE] Build broken on Ubuntu 18.04
https://bugs.webkit.org/show_bug.cgi?id=235401

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24
Reviewed by Adrian Perez de Castro.

This implements WTF_CRASH_UNDER_CONSTEXPR_CONTEXT() properly for compatibility with older
compilers.

  • wtf/Assertions.h:
12:01 PM Changeset in webkit [288458] by mark.lam@apple.com
  • 7 edits in trunk

Add FixedVector::clear(), contains(), find(), and findMatching().
https://bugs.webkit.org/show_bug.cgi?id=234855

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Use FixedVector instead of Vector in DeferredWorkTimer::TicketData now that
the needed APIs have been added.

  • runtime/DeferredWorkTimer.h:

Source/WTF:

  • wtf/FixedVector.h:

(WTF::FixedVector::clear):
(WTF::FixedVector<T>::contains const):
(WTF::FixedVector<T>::findMatching const):
(WTF::FixedVector<T>::find const):

Tools:

Added new tests for FixedVector. Also added the ClearContainsAndFind test to
Vector since it is missing these tests.

  • TestWebKitAPI/Tests/WTF/FixedVector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

11:19 AM Changeset in webkit [288457] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.0.4

Tag Safari-613.1.14.0.4.

11:17 AM Changeset in webkit [288456] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.5

11:14 AM Changeset in webkit [288455] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.0-branch/Source

Versioning.

WebKit-7613.1.14.0.4

11:09 AM Changeset in webkit [288454] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Pass the Document through bindings to KeyframeEffect::setKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235503

Unreviewed build fix, I had a merge issue when landing r288452.

  • animation/KeyframeEffect.idl:
11:01 AM Changeset in webkit [288453] by Ben Nham
  • 2 edits in trunk/Source/WebCore

Fix macOS build after r288442

Unreviewed build fix.

  • DerivedSources-output.xcfilelist: Add the new IDL file to derived sources.
10:41 AM Changeset in webkit [288452] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Pass the Document through bindings to KeyframeEffect::setKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235503

Reviewed by Sam Weinig.

We're making a similar change as part of bug 232086 for getKeyframes()
after a suggestion from Darin during review. Since the bindings code
can guarantee a Document for these bindings-exposed methods, we might
as well use it rather than obtain the Document through the global object.

  • animation/KeyframeEffect.cpp:

(WebCore::processKeyframeLikeObject):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::setBindingsKeyframes):
(WebCore::KeyframeEffect::setKeyframes):
(WebCore::KeyframeEffect::processKeyframes):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • dom/Element.cpp:

(WebCore::Element::animate):

9:44 AM Changeset in webkit [288451] by david_quesada@apple.com
  • 6 edits in trunk/Source

Simplify accesses to SystemVersion.plist
https://bugs.webkit.org/show_bug.cgi?id=234306

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests since no behavior change is expected.

  • platform/cocoa/SystemVersion.mm:

(WebCore::createSystemMarketingVersion):

Read the SystemVersion.plist file using _CFCopySystemVersionDictionary()
rather than by manually constructing the path and initializing the dictionary.

Source/WebCore/PAL:

  • pal/spi/cf/CFUtilitiesSPI.h:

Forward declare _kCFSystemVersionProductUserVisibleVersionKey, used
by WebCore's SystemVersion.mm

Source/WebKit:

No new tests since no behavior change is expected.

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):

Use _CFCopySystemVersionDictionary() to locate and load the
SystemVersion.plist file rather than doing that all manually.

(WebKit::systemVersionPlist): Deleted.

9:38 AM Changeset in webkit [288450] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove customElements when transitioning documents
https://bugs.webkit.org/show_bug.cgi?id=222727

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-24
Reviewed by Ryosuke Niwa.

Remove customElements when transitioning documents
of Window since the old document may be gone.

Test: fast/js-promise/js-promise-invalid-context-access.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::didSecureTransitionTo):
(WebCore::DOMWindow::ensureCustomElementRegistry):

9:36 AM Changeset in webkit [288449] by Simon Fraser
  • 16 edits in trunk/LayoutTests

Add pixel tolerance to some compositing tests
https://bugs.webkit.org/show_bug.cgi?id=235462

Reviewed by Darin Adler.

Add pixel tolerance to tests whose output is slightly different when accelerated drawing
is enabled in the iOS simulator, for bug 231828.

  • compositing/clipping/border-radius-async-overflow-non-stacking.html:
  • compositing/geometry/css-clip-oversize.html:
  • compositing/geometry/scroller-with-clipping-and-foreground-layers.html:
  • compositing/overlap-blending/children-opacity-huge.html:
  • compositing/overlap-blending/children-opacity-no-overlap.html:
  • compositing/patterns/direct-pattern-compositing-add-text.html:
  • compositing/patterns/direct-pattern-compositing-contain.html:
  • compositing/patterns/direct-pattern-compositing-cover.html:
  • compositing/patterns/direct-pattern-compositing-padding.html:
  • compositing/patterns/direct-pattern-compositing-position.html:
  • compositing/patterns/direct-pattern-compositing-size.html:
  • compositing/patterns/direct-pattern-compositing.html:
  • compositing/reflections/nested-reflection-opacity2.html:
  • compositing/reflections/opacity-in-reflection.html:
  • compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container.html:
8:22 AM Changeset in webkit [288448] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Do not expose the slider thumb to ATs with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235487

Reviewed by Adrian Perez de Castro.

We expose the slider as a whole but not its value indicator.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

8:21 AM Changeset in webkit [288447] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][a11y] Only consider links as replaced objects when iterating with EmitsObjectReplacementCharacters
https://bugs.webkit.org/show_bug.cgi?id=235474

Reviewed by Adrian Perez de Castro.

We don't want to consider links replaced objects in other cases.

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement): Add TextIteratorBehaviors parameter to check if
EmitsObjectReplacementCharacters is present.
(WebCore::TextIterator::advance): Pass m_behaviors to isRendererReplacedElement().
(WebCore::SimplifiedBackwardsTextIterator::advance): Ditto.
(WebCore::isInsideReplacedElement): Add TextIteratorBehaviors parameter and pass it to isRendererReplacedElement().
(WebCore::resolveCharacterRange): Pass behaviors to isInsideReplacedElement().

  • editing/TextIterator.h:

(WebCore::isRendererReplacedElement): Add optional parameter TextIteratorBehaviors.

8:20 AM Changeset in webkit [288446] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][a11y] Do not use heap allocated timers in AccessibilityAtspi
https://bugs.webkit.org/show_bug.cgi?id=235473

Reviewed by Adrian Perez de Castro.

It was needed to ensure they were constructed in the ax thread, but they are now always created in the main
thread, so they can be created once in the constructor.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::AccessibilityAtspi):
(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::removeClient):
(WebCore::AccessibilityAtspi::addToCacheIfPending):
(WebCore::AccessibilityAtspi::addAccessible):
(WebCore::AccessibilityAtspi::cacheClearTimerFired):
(WebCore::AccessibilityAtspi::scheduleCacheUpdate): Deleted.

  • accessibility/atspi/AccessibilityAtspi.h:
8:19 AM Changeset in webkit [288445] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Emit children-changed:remove signal even for ignored objects with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235472

Reviewed by Adrian Perez de Castro.

We are returning early in case the object is ignored, but that could change, so if an object is not initially
ignored and is registered we still need to emit children-changed:remove signal when destroyed to ensure the
atspi cache is updated.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::childRemoved):

8:18 AM Changeset in webkit [288444] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK][a11y] Test accessibility/url-test.html fails with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235486

Reviewed by Darin Adler.

Ensure we don't remove the fragment id of URL when removing the base path.

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::url):

8:13 AM Changeset in webkit [288443] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Allow configuring multiple user credentials on ews
https://bugs.webkit.org/show_bug.cgi?id=235301

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/master.cfg:

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

8:05 AM Changeset in webkit [288442] by commit-queue@webkit.org
  • 34 edits
    3 copies
    25 adds in trunk

[Shadow Realms] Use WebCore module loaders for shadow realm importValue
https://bugs.webkit.org/show_bug.cgi?id=234155

Patch by Joseph Griego <jgriego@igalia.com> on 2022-01-24
Reviewed by Darin Adler.

Source/JavaScriptCore:

Add hook for creating the new realm object for shadow realms, since
importValue requires the cooperation of the module loading logic to work
right.

  • API/JSAPIGlobalObject.cpp:
  • jsc.cpp:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::deriveShadowRealmGlobalObject):

  • runtime/ShadowRealmConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ShadowRealmObject.cpp:

(JSC::ShadowRealmObject::create):

  • runtime/ShadowRealmObject.h:

Source/WebCore:

Introduces a new ShadowRealmGlobalScope that serves as the
implementation of a global object for code running in a shadow realm--to
implement the requirements of JS(DOM)GlobalObject, it simply delegates
all methods to the incubating (enclosing) realm, with the exception of
methods related to module loading, for which it uses a custom
ScriptModuleLoader configured to use the appropriate global object when
evaluating module code.

Also requires some adjustment to the IDL-driven code generation--the
current draft spec requires that the global object for the shadow realm
be an ordinary object--ShadowRealmGlobalScope is opted out of codegen
for producing a custom prototype, but can still have APIs included as
properties if they are marked as Exposed=ShadowRealm or Exposed=*

Tests: js/ShadowRealm-evaluate.html

js/ShadowRealm-importValue.html
js/ShadowRealm-worker.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::scriptExecutionContext const):
(WebCore::scriptModuleLoader):
(WebCore::JSDOMGlobalObject::deriveShadowRealmGlobalObject):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSRemoteDOMWindowBase.cpp:
  • bindings/js/JSShadowRealmGlobalScopeBase.cpp: Added.

(WebCore::JSShadowRealmGlobalScopeBase::JSShadowRealmGlobalScopeBase):
(WebCore::JSShadowRealmGlobalScopeBase::finishCreation):
(WebCore::JSShadowRealmGlobalScopeBase::visitChildrenImpl):
(WebCore::JSShadowRealmGlobalScopeBase::scriptExecutionContext const):
(WebCore::JSShadowRealmGlobalScopeBase::incubating const):
(WebCore::JSShadowRealmGlobalScopeBase::destroy):
(WebCore::JSShadowRealmGlobalScopeBase::supportsRichSourceInfo):
(WebCore::JSShadowRealmGlobalScopeBase::shouldInterruptScript):
(WebCore::JSShadowRealmGlobalScopeBase::shouldInterruptScriptBeforeTimeout):
(WebCore::JSShadowRealmGlobalScopeBase::javaScriptRuntimeFlags):
(WebCore::JSShadowRealmGlobalScopeBase::scriptExecutionStatus):
(WebCore::JSShadowRealmGlobalScopeBase::reportViolationForUnsafeEval):
(WebCore::JSShadowRealmGlobalScopeBase::queueMicrotaskToEventLoop):
(WebCore::toJS):

  • bindings/js/JSShadowRealmGlobalScopeBase.h: Added.

(WebCore::JSShadowRealmGlobalScopeBase::subspaceFor):
(WebCore::JSShadowRealmGlobalScopeBase::wrapped const):
(WebCore::JSShadowRealmGlobalScopeBase::incubating):
(WebCore::toJS):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::shadowRealmLoader const):
(WebCore::ScriptModuleLoader::evaluate):

  • bindings/js/ScriptModuleLoader.h:
  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(IsDOMGlobalObject):
(ShouldUseOrdinaryObjectPrototype):
(GenerateHeader):
(GenerateRuntimeEnableConditionalStringForExposed):
(GenerateImplementation):
(GeneratePrototypeDeclaration):
(GenerateConstructorHelperMethods):

  • bindings/scripts/preprocess-idls.pl:
  • bindings/scripts/test/ShadowRealmGlobalScopeConstructors.idl: Added.
  • bindings/scripts/test/SupplementalDependencies.dep:
  • dom/PromiseRejectionEvent.idl:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::isShadowRealmGlobalScope const):

  • page/ShadowRealmGlobalScope.cpp: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.

(WebCore::ShadowRealmGlobalScope::tryCreate):
(WebCore::ShadowRealmGlobalScope::ShadowRealmGlobalScope):
(WebCore::ShadowRealmGlobalScope::moduleLoader):
(WebCore::ShadowRealmGlobalScope::wrapper):
(WebCore::ShadowRealmGlobalScope::~ShadowRealmGlobalScope):

  • page/ShadowRealmGlobalScope.h: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.

(WebCore::ShadowRealmGlobalScope::self):

  • page/ShadowRealmGlobalScope.idl: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.

Tools:

  • Scripts/webkitpy/bindings/main.py:

(BindingsTests.generate_supplemental_dependency):
(BindingsTests.main):

LayoutTests:

Improve test coverage a bit for shadow realms, especially running
nested, in worker contexts, or in iframes.

  • js/ShadowRealm-evaluate-expected.txt: Added.
  • js/ShadowRealm-evaluate.html: Added.
  • js/ShadowRealm-importValue-expected.txt: Added.
  • js/ShadowRealm-importValue.html: Added.
  • js/ShadowRealm-worker-expected.txt: Added.
  • js/ShadowRealm-worker.html: Added.
  • js/script-tests/ShadowRealm-evaluate.js: Added.

(assert_closed_opener):
(promise_test.async t):

  • js/script-tests/ShadowRealm-importValue.js: Added.

(wrappedLog):
(promise_test.async t):

  • js/script-tests/example-module.js: Added.

(check):
(log_equal):
(check_nested):
(setValue):

  • js/script-tests/shadow-realm-worker.js: Added.

(assert_equals):
(async test):
(async await):

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

AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>

Addressing post commit comments.

Reviewed by Eric Carlson and Geoff Garen.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

Fixed the release logging.

8:02 AM Changeset in webkit [288440] by graouts@webkit.org
  • 6 edits
    2 adds in trunk

[Model] Add testing coverage for camera API
https://bugs.webkit.org/show_bug.cgi?id=233643

Reviewed by Dean Jackson.

Source/WebCore:

Test: model-element/model-element-camera.html

We reject the promise returned by the getCamera() and setCamera() methods
with an Exception so that we can correctly test this behavior. We also make
the keys on HTMLModelElementCamera be required to reject incomplete objects.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::getCamera):
(WebCore::HTMLModelElement::setCamera):

  • Modules/model-element/HTMLModelElementCamera.idl:

LayoutTests:

Add a new test that exercises the getCamera() and setCamera() methods.
These are currently skipped in OpenSource and will be enabled on internal bots.

  • model-element/model-element-camera-expected.txt: Added.
  • model-element/model-element-camera.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
7:37 AM Changeset in webkit [288439] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Reconfiguring the CoreAudioSharedUnit should take into account that there is a speaker sample producer
https://bugs.webkit.org/show_bug.cgi?id=235397
<rdar://problem/87819949>

Reviewed by Eric Carlson and Geoff Garen.

Address post-commit comments.
Introduce a boolean to make high priority thread callbacks no-ops when reconfiguring the audio unit.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
6:26 AM Changeset in webkit [288438] by Antti Koivisto
  • 63 edits
    264 adds in trunk/LayoutTests

[CSS Container Queries] Import WPT tests
https://bugs.webkit.org/show_bug.cgi?id=235508

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

Import css/css-contain/container-queries and also update css/css-contain.

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/contain-content-001.html:
  • web-platform-tests/css/css-contain/contain-content-002.html:
  • web-platform-tests/css/css-contain/contain-content-003.html:
  • web-platform-tests/css/css-contain/contain-content-004.html:
  • web-platform-tests/css/css-contain/contain-content-011.html:
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-fieldset-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-legend-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-001.html:
  • web-platform-tests/css/css-contain/contain-layout-breaks-002.html:
  • web-platform-tests/css/css-contain/contain-layout-cell-001.html:
  • web-platform-tests/css/css-contain/contain-layout-cell-002.html:
  • web-platform-tests/css/css-contain/contain-layout-formatting-context-margin-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ifc-022.html:
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-ib-split-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-overflow-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-overflow-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-size-003.html:
  • web-platform-tests/css/css-contain/contain-layout-suppress-baseline-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-suppress-baseline-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-022.html:
  • web-platform-tests/css/css-contain/contain-paint-023.html:
  • web-platform-tests/css/css-contain/contain-paint-024.html:
  • web-platform-tests/css/css-contain/contain-paint-047.html:
  • web-platform-tests/css/css-contain/contain-paint-048.html:
  • web-platform-tests/css/css-contain/contain-paint-baseline-001.html:
  • web-platform-tests/css/css-contain/contain-paint-cell-001.html:
  • web-platform-tests/css/css-contain/contain-paint-cell-002.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-006-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-011.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-012.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-013.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-014.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-015.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-016.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-017.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-018.html:
  • web-platform-tests/css/css-contain/contain-paint-clip-019.html:
  • web-platform-tests/css/css-contain/contain-paint-containing-block-absolute-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-containing-block-fixed-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-formatting-context-float-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-formatting-context-margin-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ifc-011.html:
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ib-split-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-internal-table-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-no-principal-box-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-containing-block-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-stacking-and-clipping-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-size-001.html:
  • web-platform-tests/css/css-contain/contain-paint-size-002.html:
  • web-platform-tests/css/css-contain/contain-paint-size-003.html:
  • web-platform-tests/css/css-contain/contain-paint-stacking-context-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-table-001.html:
  • web-platform-tests/css/css-contain/contain-paint-table-002.html:
  • web-platform-tests/css/css-contain/contain-size-021.html:
  • web-platform-tests/css/css-contain/contain-size-023.html:
  • web-platform-tests/css/css-contain/contain-size-025.html:
  • web-platform-tests/css/css-contain/contain-size-027.html:
  • web-platform-tests/css/css-contain/contain-size-041.html:
  • web-platform-tests/css/css-contain/contain-size-042.html:
  • web-platform-tests/css/css-contain/contain-size-051.html:
  • web-platform-tests/css/css-contain/contain-size-052.html:
  • web-platform-tests/css/css-contain/contain-size-056.html:
  • web-platform-tests/css/css-contain/contain-size-061.html:
  • web-platform-tests/css/css-contain/contain-size-062.html:
  • web-platform-tests/css/css-contain/contain-size-063.html:
  • web-platform-tests/css/css-contain/contain-size-baseline-001.html:
  • web-platform-tests/css/css-contain/contain-size-block-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-button-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-flex-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-005-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-flex-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-monolithic-001.html:
  • web-platform-tests/css/css-contain/contain-size-multicol-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-005-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-006-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-002-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-003-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-004-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-005-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-size-table-caption-001-ref.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-001.html:
  • web-platform-tests/css/css-contain/contain-strict-002.html:
  • web-platform-tests/css/css-contain/contain-strict-003.html:
  • web-platform-tests/css/css-contain/contain-strict-011.html:
  • web-platform-tests/css/css-contain/contain-style-baseline-001.html:
  • web-platform-tests/css/css-contain/contain-style-counters-001.html:
  • web-platform-tests/css/css-contain/contain-style-counters-002.html:
  • web-platform-tests/css/css-contain/contain-style-counters-003.html:
  • web-platform-tests/css/css-contain/contain-style-counters-004.html:
  • web-platform-tests/css/css-contain/contain-style-counters-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-container-size.html: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition.html: Added.
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing.html: Added.
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars.html: Added.
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/change-display-in-container-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/change-display-in-container-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/change-display-in-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/chrome-legacy-skip-recalc-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/chrome-legacy-skip-recalc.html: Added.
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-computed.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-inheritance.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-computed.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-parsing.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-selection.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-change-chrome-legacy-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-computed-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-computed.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-containment.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-animation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-basic-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-basic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-computational-independence.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-selection-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-selection.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-units-typed-om.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-in-container-dynamic-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-in-container-dynamic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-in-container-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-in-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/counters-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/display-contents.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-in-container-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-in-container-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-in-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/display-none.html: Added.
  • web-platform-tests/css/css-contain/container-queries/fieldset-legend-change-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/fieldset-legend-change-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/fieldset-legend-change.html: Added.
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-002-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/flex-in-columns-003-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/focus-inside-content-visibility-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/font-relative-units.html: Added.
  • web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/get-animations.html: Added.
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-002-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/grid-in-columns-003-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-multicol-inside-container-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-with-columns-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/inline-with-columns-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/input-column-group-container-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/multicol-inside-container-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/multicol-inside-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query.html: Added.
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-container-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative.html: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative.html: Added.
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/query-content-box.html: Added.
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/query-evaluation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child.html: Added.
  • web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden.html: Added.
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box.html: Added.
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation.html: Added.
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/support/cq-testcommon.js: Added.

(assert_implements_container_queries):

  • web-platform-tests/css/css-contain/container-queries/support/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/container-queries/svg-layout-root-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-002-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-in-columns-003-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop-ref.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog.html: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog.html: Added.
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars.html: Added.
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event.html: Added.
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis.html: Added.
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic.html: Added.
  • web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/viewport-units.html: Added.
  • web-platform-tests/css/css-contain/container-queries/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal-expected.html: Added.
  • web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/container-focus-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/container-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/container-with-child-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/container-with-pos-children-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-003-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-004-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-019-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-020-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-021-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-022-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-023-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-024-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-025-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-027-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-032-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-033-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-034-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-042-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-049-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-058-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-059-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-064-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-074-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-075-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-076-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-078-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-079-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-with-top-layer-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/inline-container-with-child-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/positioned-container-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/spacer-and-container-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/spacer-and-container-scrolled-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/spacer-with-top-layer-ref.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/w3c-import.log:
  • web-platform-tests/css/css-contain/w3c-import.log:

LayoutTests:

6:08 AM Changeset in webkit [288437] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Fix non-unified build after r288432

Unreviewed non-unified build fix.

No new tests needed.

  • platform/graphics/filters/software/FEImageSoftwareApplier.cpp: Do not use #pragma once

in an implementation file, add missing inclusion of the GraphicsContext.h header.

5:58 AM Changeset in webkit [288436] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Display builders should flip coords for writing mode
https://bugs.webkit.org/show_bug.cgi?id=235498

Reviewed by Antti Koivisto.

Display boxes/lines all have visual geometries. This patch flips their coords when they
are inside a block with vertical writing mode.

This is in preparation for enabling vertical writing mode for IFC.

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

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

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

(WebCore::Layout::InlineDisplayLineBuilder::build const):

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

MediaStream canvas.captureStream() playback to LocalSampleBufferDisplayLayer is flaky
https://bugs.webkit.org/show_bug.cgi?id=230623
<rdar://problem/83668578>

Reviewed by Kimmo Kinnunen.

There are a few issues when creating the video element, setting the srcObject and playing it right away.
The first thing is that we try to render the video element while thinking that it might be video accelerated
(it is always the case for MediaStreamTrack based tracks), but the video element is asynchronously updating whether it is accelerated.
Following what other MediaPlayerPrivate are doing, when MediaPlayerPrivateMediaStreamAVFObjC has set up its video layers,
we schedule a call to renderingModeChanged which will trigger a relayout.

We also ensure, when the layer is fully initialized to set all values (bounds, hide states) as otherwise, this might be lost on GPUProcess
which currently does not register a RemoteSampleBufferDisplayLayer at the time the corresponding IPC message is received.

The additional issue is in the case the MediaStreamTrack source only generates one frame for some time.
In that case, and if the frame is enqueueud while setting up the video layers, we were not rendering this frame.
To fix this, when the video layers are ready, we reenqueue the last video frame as neeeded.

Manually tested.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
3:52 AM Changeset in webkit [288434] by commit-queue@webkit.org
  • 11 edits
    7 adds in trunk

texImage2d fails to set same video frame to multiple textures
https://bugs.webkit.org/show_bug.cgi?id=203148
<rdar://problem/56436745>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-24
Reviewed by Darin Adler.

Source/WebCore:

WebGL optimizes repeated video uploads to same texture, due to this being
usual practice among pages. Reason is that there are no API to know when the
video frame updates.
The algorithm was:

  • If the IOSurface is the same as in the last call
  • If the texture contents has not changed since we last modified this texture then skip the upload.

However, this logic skips errorneously if the "last call" updates some other texture.
Fix and test the above.

There are other issues for the current algorithm. This patch fixes some other theoretical ones:

  • If the texture is deleted and new one gets assigned the same texture id and the content seed would clash
  • Video was uploaded to a different level

The previous implementation was keeping per-texture seed value map in the context
(GraphicsContextGLANGLE) and per-teture seed value map in the texture upload helper
(GraphicsContextGLCVCocoa) and last uploaded IOSurface seed in the upload helper (not per
texture).

The implementation in this patch keeps per-texture known content description in the texture
upload helper and invalidates this when each texture changes. The known content description
is the parameter list of the texture upload call.

Test: webgl/pending/conformance/textures/misc/tex-image-video-repeated.html

  • platform/graphics/GraphicsContextGLState.h:

(WebCore::GraphicsContextGLState::setBoundTexture):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::texImage2D):
(WebCore::GraphicsContextGLANGLE::texSubImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexSubImage2D):
(WebCore::GraphicsContextGLANGLE::texStorage2D):
(WebCore::GraphicsContextGLANGLE::texStorage3D):
(WebCore::GraphicsContextGLANGLE::texImage2DDirect):
(WebCore::GraphicsContextGLANGLE::framebufferTexture2D):
(WebCore::GraphicsContextGLANGLE::createTexture):
(WebCore::GraphicsContextGLANGLE::deleteTexture):
(WebCore::GraphicsContextGLANGLE::invalidateKnownTextureContent):
(WebCore::GraphicsContextGLANGLE::textureSeed): Deleted.

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::invalidateKnownTextureContent):

  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:

(WebCore::GraphicsContextGLCVCocoa::TextureContent::operator== const):
(WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture):
(WebCore::GraphicsContextGLCVCocoa::invalidateKnownTextureContent):

  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:

LayoutTests:

Add a test for testing the bug in which some video texture uploads
were skipped errorneously.

  • webgl/pending/conformance/textures/misc/tex-image-video-repeated.html: Added.
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated-expected.txt: Added.
  • webgl/pending/resources/webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html: Added.
2:59 AM Changeset in webkit [288433] by graouts@webkit.org
  • 37 edits
    1 copy in trunk

[Web Animations] add support for animation-composition CSS property
https://bugs.webkit.org/show_bug.cgi?id=232086
<rdar://problem/84508394>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Mark WPT progressions and import one ::marker WPT test that wasn't imported originally with bug 235443.

  • web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative-expected.txt:
  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties.html:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Add support for the "animation-composition" property from the CSS Animations Level 2 specification.
This property sets the "composite" property on the animation's effect and is overridden by use of
the Web Animations API to set that property.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):
(WebCore::CSSAnimation::setBindingsEffect):
(WebCore::CSSAnimation::effectCompositeOperationWasSetUsingBindings):

  • animation/CSSAnimation.h:
  • animation/CompositeOperation.cpp: Added.

(WebCore::toCompositeOperation):

  • animation/CompositeOperation.h:
  • animation/CompositeOperationOrAuto.h:

(WebCore::toCompositeOperationOrAuto):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getBindingsKeyframes):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::bindingsComposite const):
(WebCore::KeyframeEffect::setBindingsComposite):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForAnimationComposition):
(WebCore::ComputedStyleExtractor::addValueForAnimationPropertyToList):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

(WebCore::CSSToStyleMap::mapAnimationCompositeOperation):

  • css/CSSToStyleMap.h:
  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAnimationValue):
(WebCore::CSSPropertyParser::parseSingleValue):

  • platform/animation/Animation.cpp:

(WebCore::Animation::Animation):

  • platform/animation/Animation.h:

(WebCore::Animation::clearCompositeOperation):
(WebCore::Animation::fillCompositeOperation):
(WebCore::Animation::isCompositeOperationFilled const):

  • platform/animation/AnimationList.cpp:

(WebCore::AnimationList::fillUnsetProperties):

  • style/PropertyAllowlist.cpp:

(WebCore::Style::isValidMarkerStyleProperty):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::keyframeStylesForAnimation):

LayoutTests:

Update existing tests to account for the new "animation-composition" CSS property.

  • animations/fill-unset-properties-expected.txt:
  • animations/fill-unset-properties.html:
  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
12:58 AM Changeset in webkit [288432] by Said Abou-Hallawa
  • 30 edits
    1 copy
    2 moves
    1 add in trunk/Source

[GPU Process] [Filters] Move FEImage to the 'platform' directory
https://bugs.webkit.org/show_bug.cgi?id=234109
rdar://86608573

Reviewed by Darin Adler.

Source/WebCore:

Move FEImageSoftwareApplier to separate source and header files. Make all
the filter applier concrete classes be final and make their overridden
'apply()' method be private and final.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/coreimage/FEColorMatrixCoreImageApplier.h:
  • platform/graphics/coreimage/FEComponentTransferCoreImageApplier.h:
  • platform/graphics/coreimage/SourceGraphicCoreImageApplier.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:
  • platform/graphics/filters/FEImage.cpp: Renamed from Source/WebCore/svg/graphics/filters/SVGFEImage.cpp.

(WebCore::FEImage::create):
(WebCore::FEImage::FEImage):
(WebCore::FEImage::calculateImageRect const):
(WebCore::FEImage::createSoftwareApplier const):
(WebCore::FEImage::externalRepresentation const):

  • platform/graphics/filters/FEImage.h: Renamed from Source/WebCore/svg/graphics/filters/SVGFEImage.h.

(WebCore::FEImage::encode const):
(WebCore::FEImage::decode):

  • platform/graphics/filters/software/FEBlendSoftwareApplier.h:
  • platform/graphics/filters/software/FEColorMatrixSoftwareApplier.h:
  • platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h:
  • platform/graphics/filters/software/FECompositeSoftwareApplier.h:
  • platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h:
  • platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.h:

(WebCore::FEDisplacementMapSoftwareApplier::byteOffsetOfPixel): Deleted.

  • platform/graphics/filters/software/FEDropShadowSoftwareApplier.h:
  • platform/graphics/filters/software/FEFloodSoftwareApplier.h:
  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h:
  • platform/graphics/filters/software/FEImageSoftwareApplier.cpp: Added.

(WebCore::FEImageSoftwareApplier::apply const):

  • platform/graphics/filters/software/FEImageSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/coreimage/SourceGraphicCoreImageApplier.h.
  • platform/graphics/filters/software/FELightingSoftwareApplier.h:

(WebCore::FELightingSoftwareApplier::AlphaWindow::topLeft const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::left const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottomLeft const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::top const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::center const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottom const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTop): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setCenter): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottom): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTopRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottomRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::shiftRow): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::shift): Deleted.

  • platform/graphics/filters/software/FEMergeSoftwareApplier.h:
  • platform/graphics/filters/software/FEMorphologySoftwareApplier.h:

(WebCore::FEMorphologySoftwareApplier::pixelArrayIndex): Deleted.
(WebCore::FEMorphologySoftwareApplier::makePixelValueFromColorComponents): Deleted.
(WebCore::FEMorphologySoftwareApplier::makeColorComponentsfromPixelValue): Deleted.

  • platform/graphics/filters/software/FEOffsetSoftwareApplier.h:
  • platform/graphics/filters/software/FETileSoftwareApplier.h:
  • platform/graphics/filters/software/FETurbulenceSoftwareApplier.h:

(WebCore::FETurbulenceSoftwareApplier::PaintingData::random): Deleted.
(WebCore::FETurbulenceSoftwareApplier::smoothCurve): Deleted.
(WebCore::FETurbulenceSoftwareApplier::linearInterpolation): Deleted.

  • platform/graphics/filters/software/SourceAlphaSoftwareApplier.h:
  • platform/graphics/filters/software/SourceGraphicSoftwareApplier.h:
  • rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
  • svg/SVGFEImageElement.cpp:
  • svg/SVGFEImageElement.h:

Source/WebKit:

  • Platform/IPC/FilterReference.h:

Jan 23, 2022:

11:32 PM Changeset in webkit [288431] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.2.3

Tag Safari-613.1.14.2.3.

11:28 PM Changeset in webkit [288430] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.2-branch/Source

Versioning.

WebKit-7613.1.14.2.3

8:48 PM Changeset in webkit [288429] by commit-queue@webkit.org
  • 6 edits
    1 copy
    1 add in trunk

Position:fixed layers shouldn't allocate a backing buffer if all children are offscreen.
https://bugs.webkit.org/show_bug.cgi?id=235420
<rdar://86612099>

Patch by Matt Woodrow <Matt Woodrow> on 2022-01-23
Reviewed by Simon Fraser and Darin Adler.

Source/WebCore:

Adds a bounds intersection check to isPaintDestinationForDescendantLayers,
so that we can exclude descendants that definitely won't draw anything into
the compositing layer. Uses a conservative check, which gives up if there are
any transforms in the ancestor chain.

Test: compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::intersectsWithAncestor):
(WebCore::RenderLayerBacking::isPaintDestinationForDescendantLayers const):

LayoutTests:

Adds a test that has a viewport sized position:fixed element (with compositing
layer), and a single child which is entirely offscreen. Tests that we correctly
determine that we don't need a backing store for the layer.

  • compositing/backing/no-backing-for-offscreen-children-of-position-fixed-expected.txt: Added.
  • compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html: Added.
6:07 PM Changeset in webkit [288428] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix "componet" typo in just-landed patch.

  • platform/graphics/ColorInterpolation.h: I suggested Sam change a name

to interpolateComponentWithoutAccountingForNaN, but mispelled it "componet".
Fixing it here.

4:57 PM Changeset in webkit [288427] by weinig@apple.com
  • 10 edits in trunk

Support interpolating colors with missing/none components via color-mix()
https://bugs.webkit.org/show_bug.cgi?id=235496

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update color-mix() tests to include test cases that use 'none' components.

  • web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-mix-computed.html:
  • web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-mix-valid.html:

Source/WebCore:

Adds support for interpolating colors that have a missing/none component. Currently,
the only way for a color to have a missing/none component is for it to be specified
explicitly by the user (e.g. hsl(none 20% 40%)), but the interpolation implementation
is agnostic to how the color was created so will work once there is automatic creation
of missing/none components on conversion for powerless components.

This change only enables the new interpolation behavior for color-mix(), by replacing
a call of colorType.resolved() with colorType.unresolved(), support for other interpolation
use cases will follow.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::mixColorComponentsUsingColorInterpolationMethod):
Replace resolved() with unrersolved() to allow NaN values through to interpolation.

  • platform/graphics/ColorInterpolation.cpp:

(WebCore::fixupHueComponentsPriorToInterpolation):
(WebCore::interpolateColors):
Move non-templated version of interpolateColors to the implementation file as it generates
a lot of code and there is little reason to believe it would be useful to inline it.

  • platform/graphics/ColorInterpolation.h:

(WebCore::interpolateComponent):
(WebCore::interpolateComponentAccountingForNaN):
(WebCore::interpolateHue):
(WebCore::interpolateAlphaPremulitplied):
(WebCore::interpolateComponentUsingPremultipliedAlpha):
(WebCore::interpolateAlphaUnpremulitplied):
(WebCore::interpolateComponentUsingUnpremultipliedAlpha):
(WebCore::interpolateColorComponents):
(WebCore::preInterpolationNormalizationForComponent): Deleted.
(WebCore::preInterpolationNormalization): Deleted.
(WebCore::postInterpolationNormalizationForComponent): Deleted.
(WebCore::postInterpolationNormalization): Deleted.
(WebCore::interpolateColors): Deleted.
Replace existing interpolation implementation which separated each component into pre/interpolate/post
steps, with one that does all three steps at once and now also supports missing components. Removing
the steps made the overall algorithm is easier to understand a couples premulitplication and unpremultiplication
much closer together.

  • platform/graphics/ColorTypes.h:

(WebCore::constexprIsNaN):
Update comment to include missing word.

4:55 PM Changeset in webkit [288426] by Darin Adler
  • 18 edits in trunk/Source/WebCore

Improve FourCC to use more inlining, fix incorrect mix of WEBCORE_EXPORT on entire class with inline functions
https://bugs.webkit.org/show_bug.cgi?id=235461

Reviewed by Sam Weinig.

  • WebCore.xcodeproj/project.pbxproj: Added FourCC.cpp. Because of

unified sources it was compiled, but because it was not in the project
various Xcode features would not work.

  • platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp:

Added some explicitly non-inlined exported functions. These need to
be exported because they are used in TestWebKitAPI tests and we
want to export the functions rather than the vtable pointer.

  • platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:

Stop using WEBCORE_EXPORT on whole classes that contain inline
functions, and instead use it on individual functions.

  • platform/graphics/FourCC.cpp:

(WebCore::FourCC::fromString): Take a StringView instead of String.
Removed unnecessary allocation of a temporary CString for the result
of String::ascii.
(WebCore::FourCC::string const): Rename from toString to string and
changed the return type to std::array instead of String.

  • platform/graphics/FourCC.h: Made all the constructors constexpr.

Changed the string literal constructor to just work with 4-character
strings. The old one was a template for any length string, but then
asserted it was 4 characters long, which is a roundabout way to do it.

  • platform/graphics/HEVCUtilities.cpp:

(WebCore::parseHEVCDecoderConfigurationRecord): Take FourCC instead
of const FourCC&. Also removed unnecessary explicit conversion to
FourCC since four character strings.

  • platform/graphics/HEVCUtilities.h: Ditto.
  • platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:

Removed unneeded WEBCORE_EXPORT on these classes.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Removed
unnecesary calls to toString, logging can handle FourCC without it.
Also removed unneeded type casts to size_t.

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

(WebCore::contentTypesToCodecs): Removed unnecessary allocation of
a String by using StringView for the substring.

  • platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:

(WebCore::validateHEVCParameters): Added an explicit cast to String
since FourCC::fromString now takes a StringView. Sadly there's not
a trivial way to do this without allocating a String.

  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:

(WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture):
Since FourCC::string now returns a std::array with a C-style
null-terminated string, use it instead of calling toString and
then utf8. Cleaner and also much more efficient.

  • platform/graphics/iso/ISOBox.cpp: Moved constructors and

destructors so they are no longer inlined so there is no need to
export the vtable.
(WebCore::ISOBox::peekBox): Removed unnecessary initialization
of FourCC since they are zero by default.

  • platform/graphics/iso/ISOBox.h: Removed WEBCORE_EXPORT of

the entire class, since that's not fully compatible with a class
with inline functions (warning is done by check-webkit-style).
Put WEBCORE_EXPORT on individual functions instead. Also use some
more constexpr, removed unneeded FourCC initialization since it is
zero by default, and use FourCC, not const FourCC& for return value.

  • platform/graphics/iso/ISOOriginalFormatBox.h: Removed unneeded

FourCC initialization since it is zero by default.

  • platform/graphics/iso/ISOSchemeTypeBox.h: Ditto.
  • platform/graphics/iso/ISOVTTCue.cpp: Moved constructors and

destructors so they are no longer inlined so there is no need to
export the vtable.
(WebCore::ISOWebVTTCue::parse): Use PRIu64 instead of casting
to size_t, no need to rely on the relationship between type sizes.

  • platform/graphics/iso/ISOVTTCue.h: Removed WEBCORE_EXPORT of

the entire class, since that's not fully compatible with a class
with inline functions (warning is done by check-webkit-style).
Put WEBCORE_EXPORT on individual functions instead.

3:10 PM Changeset in webkit [288425] by Tyler Wilcock
  • 4 edits
    2 adds in trunk

AX Isolated Tree Mode: Re-compute AXPropertyName::IsEnabled when a node experiences AXDisabledStateChanged
https://bugs.webkit.org/show_bug.cgi?id=235295

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/dynamic-attribute-changes-should-update-isenabled.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):
Re-compute AXPropertyName::IsEnabled when receiving an AXDisabledStateChanged notification.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Handle requests for AXPropertyName::IsEnabled updates.

LayoutTests:

This patch adds a test verifying that AXPropertyName::IsEnabled is re-computed when an
object's disabled state changes.

  • accessibility/dynamic-attribute-changes-should-update-isenabled-expected.txt: Added.
  • accessibility/dynamic-attribute-changes-should-update-isenabled.html: Added.
1:50 PM Changeset in webkit [288424] by graouts@webkit.org
  • 16 edits
    3 adds
    4 deletes in trunk

[Model] Add load and error events to distinguish resource load from model readiness
https://bugs.webkit.org/show_bug.cgi?id=233706
rdar://85922697

Reviewed by Chris Dumez and Dean Jackson.

Source/WebCore:

Test: model-element/model-element-error-and-load-events.html

Prior to this patch, <model> elements had a "ready" promise which resolved once the resource had been loaded.
However, this promise should be used when the <model> is fully ready, and this is done on macOS and iOS asynchronously
after the resource has been loaded by the supporting ARQL framework. So we need a way to monitor success or failure of
the resource load specifically.

To that end, and matching the <img> element, we dispatch "load" and "error" events on <model> elements and add a
"complete" property to indicate whether the resource is loaded.

Meanwhile, the "ready" promise is now resolved when the model is fully loaded by the supporting framework, indicating
that further APIs are safe to use.

Since creating the support ARQL object for macOS and iOS also requires the <model> element's renderer being available,
we opt into "custom style resolve callbacks" so that we may implement didAttachRenderers() on HTMLModelElement and keep
track of renderer availability before attempting to create the ModelPlayer.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::HTMLModelElement):
(WebCore::HTMLModelElement::create):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::didAttachRenderers):
(WebCore::HTMLModelElement::notifyFinished):
(WebCore::HTMLModelElement::modelDidChange):
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::didFinishLoading):
(WebCore::HTMLModelElement::didFailLoading):
(WebCore::HTMLModelElement::activeDOMObjectName const):
(WebCore::HTMLModelElement::virtualHasPendingActivity const):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:

Tools:

Use the "load" event instead of the "ready" promise for this test which only requires monitoring
the <model> resource being loaded.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::TEST):

LayoutTests:

Remove existing tests around resource loading and recreate them in terms of "load" and "error"
events in model-element/model-element-error-and-load-events.html and in terms of the ready
promise in model-element/model-element-ready.html.

Other tests using model.ready for other purposes are also rewritten using events.

  • model-element/model-element-contents-layer-updates-with-clipping.html:
  • model-element/model-element-contents-layer-updates.html:
  • model-element/model-element-error-and-load-events-expected.txt: Added.
  • model-element/model-element-error-and-load-events.html: Added.
  • model-element/model-element-graphics-layers-opacity.html:
  • model-element/model-element-graphics-layers.html:
  • model-element/model-element-ready-expected.txt:
  • model-element/model-element-ready-load-aborted-expected.txt: Removed.
  • model-element/model-element-ready-load-aborted.html: Removed.
  • model-element/model-element-ready-load-failed-expected.txt: Removed.
  • model-element/model-element-ready-load-failed.html: Removed.
  • model-element/model-element-ready.html:
  • model-element/resources/model-element-test-utils.js: Added.

(const.createModelAndSource):

  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
1:21 PM Changeset in webkit [288423] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.
11:27 AM Changeset in webkit [288422] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] C++20 warnings
https://bugs.webkit.org/show_bug.cgi?id=235493

Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-23
Reviewed by Darin Adler.

Fix ambiguous-reversed-operator warnings. In C++20 comparison operators (like a == b) need
to be declared const, so that reverse comparisons (like b == a) also work as intended.

  • platform/graphics/gstreamer/GStreamerCommon.h:

(GstIteratorAdaptor::iterator::operator== const):
(GstIteratorAdaptor::iterator::operator!= const):
(GstIteratorAdaptor::iterator::operator==): Deleted.
(GstIteratorAdaptor::iterator::operator!=): Deleted.

10:43 AM Changeset in webkit [288421] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] InlineFormattingContext::computeGeometryForLineContent should always return the line logical rect
https://bugs.webkit.org/show_bug.cgi?id=235494

Reviewed by Antti Koivisto.

The return rect of computeGeometryForLineContent (based on the display line) is input to the next line's
initial rect and therefore it is supposed to be logical (in general, layout should strictly use logical coords).

This is in preparation for supporting vertical writing mode.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::InlineFormattingGeometry::flipVisualRectToLogicalForWritingMode):

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
8:59 AM Changeset in webkit [288420] by Ziran Sun
  • 4 edits in trunk

[forms] Prevent contenteditable anchors from being stuck
https://bugs.webkit.org/show_bug.cgi?id=235438

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update 1 WPT test expectation file as the test is now passing.

  • web-platform-tests/html/semantics/forms/the-input-element/anchor-active-contenteditable-expected.txt:

Source/WebCore:

Anchors can be stuck in the :active state if contenteditable is enabled before
:active is removed. With this patch setActive() can remove :active during
contenteditable in order to prevent anchors from navigating during contenteditable.

This is an import of Chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/2595978

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::setActive):

8:50 AM Changeset in webkit [288419] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Refactor near-duplicate AXObjectCache::updateIsolatedTree implementations
https://bugs.webkit.org/show_bug.cgi?id=235481

Reviewed by Chris Fleizach.

AXObjectCache::updateIsolatedTree(AXCoreObject&, AXNotification) and
AXObjectCache::updateIsolatedTree(const Vector<std::pair<RefPtr<AXCoreObject>, AXNotification>>&)
duplicate a lot of code, and make it possible to forget to add new
notification handling in one place or the other. This patch refactors
this by making the single-object versions of this method defer to the
multiple-object version by wrapping the single change in a Vector.

No tests added because there is no behavior change.

  • accessibility/AXObjectCache.cpp:

(WebCore::appendIfNotContainsMatching):
Moved this function above updateIsolatedTree methods. No other change.
(WebCore::AXObjectCache::updateIsolatedTree):

8:25 AM Changeset in webkit [288418] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] LineLayout::contentLogicalHeight should always return the logical height
https://bugs.webkit.org/show_bug.cgi?id=235488

Reviewed by Antti Koivisto.

The display boxes/lines always have visual geometries and in case of vertical writing mode it means that the
content stretches in horiztonal direction (left to right/right to left).

This is in preparation for supporting vertical writing mode.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::adjustForPagination):

  • layout/integration/LayoutIntegrationLineLayout.h:

(WebCore::LayoutIntegration::LineLayout::isPaginated const):

6:48 AM Changeset in webkit [288417] by Alan Bujtas
  • 5 edits in trunk

[LFC][IFC] Enable unicode-bidi: plaintext for IFC
https://bugs.webkit.org/show_bug.cgi?id=235429

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):

  • layout/integration/LayoutIntegrationCoverage.h:

LayoutTests:

  • platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:

Jan 22, 2022:

9:20 PM Changeset in webkit [288416] by Ben Nham
  • 22 edits
    1 copy in trunk/Source

Add PushSubscriptionIdentifier
https://bugs.webkit.org/show_bug.cgi?id=234797

Reviewed by Darin Adler.

Source/WebCore:

This adds a PushSubscriptionIdentifier to each PushSubscription. Implementation-wise, it
will be the rowid if the subscription in the subscription database. We need this so that
PushSubscription.unsubscribe only unsubscribes from the given subscription. Currently it
unsubscribes from any active subscription associated with the subscription's service worker
scope.

No new tests. I plan on adding a test for this case in an API test which will work with real
PushSubscription objects when I submit the patch that implements the subscription business
logic in webpushd. The current layout tests only work with fake PushSubscription objects
that aren't connected to webpushd.

  • Headers.cmake:
  • Modules/push-api/PushSubscription.cpp:

(WebCore::PushSubscription::unsubscribe):

  • Modules/push-api/PushSubscriptionData.cpp:

(WebCore::PushSubscriptionData::isolatedCopy const):

  • Modules/push-api/PushSubscriptionData.h:

(WebCore::PushSubscriptionData::encode const):
(WebCore::PushSubscriptionData::decode):
webpushd only supports modern decoding and we need to send this object to it, so use modern decoding.

  • Modules/push-api/PushSubscriptionIdentifier.h:
  • WebCore.xcodeproj/project.pbxproj:
  • testing/Internals.cpp:

(WebCore::Internals::createPushSubscription):

  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::createPushSubscription):

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

(WebCore::ServiceWorkerContainer::unsubscribeFromPushService):

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

(WebCore::ServiceWorkerRegistration::unsubscribeFromPushService):

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

(WebCore::WorkerSWClientConnection::unsubscribeFromPushService):

  • workers/service/WorkerSWClientConnection.h:

Source/WebKit:

Pass the subscription identifier in the PushSubscription.unsubscribe call to guarantee that
we only unsubscribe from the given subscription.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::unsubscribeFromPushService):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::unsubscribeFromPushService):

  • WebProcess/Storage/WebSWClientConnection.h:
9:01 PM Changeset in webkit [288415] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

REGRESSION(r280887) broke some svg based chart content repaint
https://bugs.webkit.org/show_bug.cgi?id=235483
<rdar://87904254>

Unreviewed, reverting r280887.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::svgAttributeChanged):

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

[iOS] Unreviewed gardering

  • platform/ios/TestExpectations: blank selection.
7:38 PM Changeset in webkit [288413] by Peng Liu
  • 2 edits in trunk/Source/WebCore

REGRESSION (Safari 15?): Blob videos slow to pause, affects CBS and CNN
https://bugs.webkit.org/show_bug.cgi?id=234066

Reviewed by Jer Noble.

MediaPlayerPrivateMediaSourceAVFObjC::playInternal() calls [m_synchronizer setRate:],
which will make the return value of MediaPlayerPrivateMediaSourceAVFObjC::paused() change
from true to false. But it won't push the new paused value back to the Web process.

RemoteMediaPlayerProxy::play() does call sendCachedState() after calling
m_player->play(), but because MediaPlayerPrivateMediaSourceAVFObjC::playInternal() is not
called in the same run loop, sendCachedState() won't send back the updated paused value either.

In most cases, this is not an issue, because other member functions of RemoteMediaPlayerProxy
will call sendCachedState() to push the updated paused value back to the Web process later.
However, we did find some videos need the paused value to be pushed back the Web process
in a timely manner.

No new tests, manually tested.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):

5:03 PM Changeset in webkit [288412] by Said Abou-Hallawa
  • 18 edits
    2 adds in trunk/Source

[GPU Process] Add the class 'SourceImage' to represent variants of image
https://bugs.webkit.org/show_bug.cgi?id=235467

Reviewed by Cameron McCormack.

Source/WebCore:

Before the existence of GPUProcess we used to do some drawing on an
ImageBuffer, get a NativeImage from the ImageBuffer and then use this
NativeImage. With GPUProces, this will require bouncing the NativeImage
between WebProcess and GPUProcess at least two times. To make this scenario
efficient, a new class called 'SourceImage' will be introduced. The purpose
of this class is to provide a new level of abstraction for the images
such that no conversion is needed before the actual use.

Replace FEImage::SourceImage with a new class named 'SourceImage'. Let
the new class handle the encoding and decoding and the conversion from
NativeImage to ImageBuffer and vice versa.

Make Recorder::recordResourceUse() returns a boolean which indicates
whether the resource can be cached for later replay or not.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/Image.h:

(WebCore::Image::nativeImageForCurrentFrame):
(WebCore::Image::preTransformedNativeImageForCurrentFrame):

  • platform/graphics/SourceImage.cpp: Added.

(WebCore::SourceImage::SourceImage):
(WebCore::SourceImage::nativeImageIfExists const):
(WebCore::SourceImage::nativeImage):
(WebCore::SourceImage::imageBufferIfExists const):
(WebCore::SourceImage::imageBuffer):
(WebCore::SourceImage::imageIdentifier const):

  • platform/graphics/SourceImage.h: Added.

(WebCore::SourceImage::encode const):
(WebCore::SourceImage::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawFilteredImageBuffer):
(WebCore::DisplayList::Recorder::drawImageBuffer):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::recordResourceUse):

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::filterEffect const):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame): Deleted.

  • svg/graphics/SVGImage.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::calculateImageRect const):
(WebCore::FEImageSoftwareApplier::apply const):

  • svg/graphics/filters/SVGFEImage.h:

(WebCore::FEImage::encode const):
(WebCore::FEImage::decode):

Source/WebKit:

Provide a new recordResourceUse() for the SourceImage.

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
4:00 PM Changeset in webkit [288411] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

[JSC] Relax Date.parse requirement
https://bugs.webkit.org/show_bug.cgi?id=235468

Reviewed by Darin Adler.

JSTests:

  • stress/date-relaxed-separator.js: Added.

(shouldBe):

Source/WTF:

While the spec does not require accepting 't' / ' ' separator, ISO 8601 accepts it.
This is because ECMA262's Date format is *not* ISO 8601 (it is called simplification
of ISO 8601[1]).
This patch relaxes this strictness to accept more formats, which can be accepted in
the other engines too.

[1]: https://tc39.es/ecma262/#sec-date-time-string-format

  • wtf/DateMath.cpp:

(WTF::parseES5DateFromNullTerminatedCharacters):

LayoutTests:

  • js/date-parse-test-expected.txt:
  • js/script-tests/date-parse-test.js:
2:58 PM Changeset in webkit [288410] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add InlineDisplay::Box::isHorizontal
https://bugs.webkit.org/show_bug.cgi?id=235482

Reviewed by Antti Koivisto.

This is in preparation for supporting vertical writing mode.

  • layout/formattingContexts/inline/display/InlineDisplayBox.h:

(WebCore::InlineDisplay::Box::isHorizontal const):

  • layout/integration/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::isHorizontal const):

2:57 PM Changeset in webkit [288409] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION (r288069): Bits of selection left after deselecting on bugzilla page
https://bugs.webkit.org/show_bug.cgi?id=235466
<rdar://87902230>

Reviewed by Darin Adler.

Source/WebCore:

Undo the incorrect dynamicDowncast change.

This code reads (perhaps confusingly at first sight):

return is<RenderView>(containingBlock) ? nullptr : containingBlock;

while the dynamicDowncast is meant to shorten code like this:

return is<RenderView>(containingBlock) ? containingBlock : nullptr;

Test: fast/text/incorrect-deselection-across-multiple-elements.html

  • rendering/SelectionRangeData.cpp:

(WebCore::containingBlockBelowView):

LayoutTests:

  • fast/text/incorrect-deselection-across-multiple-elements-expected.txt: Added.
  • fast/text/incorrect-deselection-across-multiple-elements.html: Added. Use indexOf because

while the repaint rect area is always the same, the rects order may vary.

2:20 PM Changeset in webkit [288408] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Use content direction for the first "unicode-paragraph" when "unicode-bidi: plaintext" is present
https://bugs.webkit.org/show_bug.cgi?id=235452

Reviewed by Antti Koivisto.

This makes the /css/css-writing-modes/bidi-plaintext-br-* tests pass (not enabled yet).

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):

2:14 PM Changeset in webkit [288407] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Alignment logic should take the line specific direction (which may be different from the root direction)
https://bugs.webkit.org/show_bug.cgi?id=235460

Reviewed by Antti Koivisto.

This makes the the /html/dom/elements/global-attributes/dir_auto-* tests pass (not enabled yet).

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::build):

12:55 PM Changeset in webkit [288406] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Skip installing webpushd in STP and downlevel builds
https://bugs.webkit.org/show_bug.cgi?id=235464
<rdar://87425138>

Patch by Elliott Williams <Elliott Williams> on 2022-01-22
Reviewed by Brady Eidson.

We can't ship webpushd as part of STP or builds made for previous versions of macOS. This
change adjusts build settings to skip installing webpushd and its launchd plist outside of a
non-relocatable production build environment.

As a consequence, webpushd will not _install_ in development builds (where all build
products are relocatable). It will continue to build and be runnable from the build
products directory.

  • Configurations/BaseTarget.xcconfig: Add WK_SKIP_INSTALL_WEBPUSHD to determine whether to

skip installation.

  • Configurations/webpushd.xcconfig: Set SKIP_INSTALL based on WK_SKIP_INSTALL_WEBPUSHD.
  • WebKit.xcodeproj/project.pbxproj: Skip installing launchd plists when

WK_SKIP_INSTALL_WEBPUSHD=YES.

10:17 AM Changeset in webkit [288405] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Create ancestry of isolated objects instead of generating the entire subtree for an ancestor.
https://bugs.webkit.org/show_bug.cgi?id=235389
<rdar://problem/87803473>

Reviewed by Chris Fleizach.

AXIsolatedTree::updateChildren may be called for an AXObject that has no
corresponding IsolatedObject. That is the case of empty canvas and some
empty div elements. In those cases we were generating the subtree of the
first available ancestor in the isolated tre. This can be expensive
because in some cases the immediate exisiting ancestor was the webarea,
causing the re-generation of the entire isolated tree. With this patch,
only the IsolatedObjects that are missing in the isolated tree are added
to the tree.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueChanges):
The above two methods are added to avoid coude duplication and to be
able to decouple the creation of new isolated objects from the addition
of those objects to the isolated tree.
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateChildren):

  • accessibility/isolatedtree/AXIsolatedTree.h:
9:26 AM Changeset in webkit [288404] by Oriol Brufau
  • 3 edits
    2 deletes in trunk

[CSS Cascade Layers] Enable CSSImportRule.layerName for WebKitGTK
https://bugs.webkit.org/show_bug.cgi?id=235455

Reviewed by Darin Adler.

Source/WebCore:

Bug 231340 added support for CSSImportRule.layerName, but CMakeLists.txt
wasn't listing CSSImportRule+Layer.idl

So the attribute was not there when running WebKitGTK, built with CMake.

Tests: imported/w3c/web-platform-tests/css/css-cascade/idlharness.html

imported/w3c/web-platform-tests/css/css-cascade/layer-rules-cssom.html

  • CMakeLists.txt: link missing css/CSSImportRule+Layer.idl

LayoutTests:

Expect the tests to pass.

  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/idlharness-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/layer-rules-cssom-expected.txt: Removed.
1:31 AM Changeset in webkit [288403] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK][a11y] Stop registering the tree when clients are connected with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235313

Reviewed by Adrian Perez de Castro.

Source/WebCore:

That was needed with the isolated tree mode, now we can go back to register objects on demand.

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::platformPerformDeferredCacheUpdate):

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::parentChanged):
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::cacheClearTimerFired):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::isTreeRegistered const): Deleted.

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::embedded):
(WebCore::AccessibilityRootAtspi::child const):
(WebCore::AccessibilityRootAtspi::childAdded):
(WebCore::registerSubtree): Deleted.
(WebCore::AccessibilityRootAtspi::registerTree): Deleted.
(WebCore::AccessibilityRootAtspi::didUnregisterTree): Deleted.

  • accessibility/atspi/AccessibilityRootAtspi.h:

Tools:

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testDocumentLoadEvents): Now we don't get the initial event from previous document web because it happens
before the first client is connected.

Jan 21, 2022:

11:39 PM Changeset in webkit [288402] by graouts@webkit.org
  • 6 edits
    6 adds in trunk/LayoutTests/imported/w3c

Update css/css-animation WPT following animation-composition testing updates
https://bugs.webkit.org/show_bug.cgi?id=235443

Unreviewed WPT import and rebaseline.

  • web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt:
  • web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
  • web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative-expected.txt: Added.
  • web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative.html: Added.
  • web-platform-tests/css/css-animations/parsing/animation-composition-invalid.tentative-expected.txt: Added.
  • web-platform-tests/css/css-animations/parsing/animation-composition-invalid.tentative.html: Added.
  • web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative-expected.txt: Added.
  • web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative.html: Added.
  • web-platform-tests/css/css-animations/parsing/w3c-import.log:
10:03 PM Changeset in webkit [288401] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Unreviewed, reverting r288400.
https://bugs.webkit.org/show_bug.cgi?id=235470

broke ARM64E build

Reverted changeset:

"[JSC][32bit] Fix regexp crash on ARMv7"
https://bugs.webkit.org/show_bug.cgi?id=234476
https://commits.webkit.org/r288400

8:58 PM Changeset in webkit [288400] by Mikhail R. Gadelha
  • 10 edits in trunk/Source

[JSC][32bit] Fix regexp crash on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=234476

Reviewed by Yusuke Suzuki.

This patch fixes several regexp crashes on ARMv7 due to an incorrect
offset to retrieve the 5th argument from the stack: in ARMv7, only
4 arguments are passed via registers r0-r3i, and any other argument is
placed on the stack, however, YarrJIT was trying to get the 5th arg
from a fixed offset, so because the generateEnter() method pushed
register into the stack, the offset was wrong. This patch fixes how
the offset is calculated for MIPS and ARMv7.

This patch also introduces some small changes:

  1. Added static_asserts that the YarrJIT calls do indeed have 5 arguments

and that the 5th argument has the type that we expect (MatchingContextHolder*).

  1. Removed an unnecessary pointer from the MatchingContextHolder

constructor.

  1. Fixed some warnings in the YarrJIT code here and there.
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):

  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):

  • yarr/YarrJIT.cpp:
  • yarr/YarrMatchingContextHolder.h:

(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):

7:03 PM Changeset in webkit [288399] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, follow-up after r288066
https://bugs.webkit.org/show_bug.cgi?id=235271

  • runtime/DatePrototype.cpp:

(JSC::applyToNumberToOtherwiseIgnoredArguments):
(JSC::fillStructuresUsingDateArgs):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::applyToNumbersToTrashedArguments): Deleted.

6:22 PM Changeset in webkit [288398] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.1

Tag Safari-613.1.14.5.1.

6:18 PM Changeset in webkit [288397] by Russell Epstein
  • 10 edits
    2 adds in branches/safari-613.1.14.5-branch/Source/ThirdParty/libwebrtc

Cherry-pick r288391. rdar://problem/87829404

WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=235459

Reviewed by Mark Lam.

We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
This is needed for both the include files and archive libraries.

  • Configurations/boringssl.xcconfig:
  • Configurations/libsrtp.xcconfig:
  • Configurations/libvpx.xcconfig:
  • Configurations/libwebm.xcconfig:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libyuv.xcconfig:
  • Configurations/opus.xcconfig:
  • Configurations/usrsctp.xcconfig:
  • Scripts: Added.
  • Scripts/create-symlink-to-altroot.sh: Added.
  • libwebrtc.xcodeproj/project.pbxproj:

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

6:13 PM Changeset in webkit [288396] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.1

6:13 PM Changeset in webkit [288395] by timothy_horton@apple.com
  • 4 edits in trunk

GraphicsContextStateChange logging doesn't dump shadow color
https://bugs.webkit.org/show_bug.cgi?id=235428

Reviewed by Wenson Hsieh.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContextStateChange::dump const):
Add shadowColor property to the things we dump on ShadowChange.

5:59 PM Changeset in webkit [288394] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.41-branch/Source

Revert "Versioning."

This reverts commit r288393.

5:58 PM Changeset in webkit [288393] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.41-branch/Source

Versioning.

WebKit-7613.1.14.5.1

5:48 PM Changeset in webkit [288392] by Russell Epstein
  • 1 copy in branches/safari-613.1.14.5-branch

New branch.

5:38 PM Changeset in webkit [288391] by msaboff@apple.com
  • 10 edits
    2 adds in trunk/Source/ThirdParty/libwebrtc

WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=235459

Reviewed by Mark Lam.

We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
This is needed for both the include files and archive libraries.

  • Configurations/boringssl.xcconfig:
  • Configurations/libsrtp.xcconfig:
  • Configurations/libvpx.xcconfig:
  • Configurations/libwebm.xcconfig:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libyuv.xcconfig:
  • Configurations/opus.xcconfig:
  • Configurations/usrsctp.xcconfig:
  • Scripts: Added.
  • Scripts/create-symlink-to-altroot.sh: Added.
  • libwebrtc.xcodeproj/project.pbxproj:
5:23 PM Changeset in webkit [288390] by Tyler Wilcock
  • 9 edits in trunk/Source/WebCore

AX: Move Mac subrole logic to new subrolePlatformString AXCoreObject interface method
https://bugs.webkit.org/show_bug.cgi?id=235414

Reviewed by Chris Fleizach.

This patch moves most of the Mac subrole logic to a new AXCoreObject interface
method, subrolePlatformString (matching the naming of rolePlatformString).
This allows us to cache a new AXPropertyName::SubrolePlatformString
property in isolated tree objects.

This fixes accessibility/mac/subroles-for-formatted-groups.html in isolated
tree mode because this test exercised the backingObject->isStyleFormatGroup() codepath,
which in turn tried to compare AtomStrings off the main-thread, which won't work
(the string comparisons will unexpectedly not match).

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::subrolePlatformString const):
Added.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:

Add new AXPropertyName::SubrolePlatformString property.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
Initialize new AXPropertyName::subrolePlatformString.

  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::subrolePlatformString const):
Added.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper isEmptyGroup]):
Added.
(-[WebAccessibilityObjectWrapper subrole]):
Defer to subrolePlatformString for determining all subroles except AXEmptyGroup.

5:01 PM Changeset in webkit [288389] by sihui_liu@apple.com
  • 13 edits in trunk/Source

Disable CFURLCache in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=234988
<rdar://problem/87619196>

Reviewed by Geoffrey Garen.

Source/WebCore:

_CFURLStorageSessionCopyCache can be slow (see rdar://85418732) and UI process may kill network process for
being unresponsive. Since WebKit does not use CFURLCache, we should disable it to avoid the hang.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::createCFStorageSessionForIdentifier):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::createPrivateStorageSession):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::newTestingSession):
(WebKit::NetworkProcess::ensureSession):

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::ensureSession):

Source/WTF:

  • wtf/PlatformHave.h:
4:41 PM Changeset in webkit [288388] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

imported/w3c/web-platform-tests/css/css-color/parsing/color-valid.html fails in debug

Reviewed by Sam Weinig.

  • platform/graphics/ColorTypes.h:

(WebCore::assertInRange):
We want to *ignore* NaN alpha, like for the other channels. The conditional was backwards.

4:29 PM Changeset in webkit [288387] by pvollan@apple.com
  • 12 edits in trunk/Source/WebKit

Inject Launch Services database before NSApplication is initialized
https://bugs.webkit.org/show_bug.cgi?id=235186
<rdar://87468788>

Reviewed by Chris Dumez.

To avoid the main thread getting stuck, the Launch Services database should be injected before NSApplication
is initialized, since the initialization now depends on the database. To make sure also prewarmed WebContent
processes are receiving the Launch Services database, the WebsiteDataStore method
sendNetworkProcessXPCEndpointToProcess is moved to the class NetworkProcessProxy, since prewarmed processes
will not have a data store initially. This allows us to simplify the code, since we are no longer depending
on having a Website data store before sending the XPC endpoint.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/cocoa/LaunchServicesDatabaseManager.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm:

(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

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

[iOS][WP] Allow access to CFNetwork prefs
https://bugs.webkit.org/show_bug.cgi?id=235457
<rdar://87822314>

Reviewed by Brent Fulgham.

Allow access to CFNetwork prefs on internal builds.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
3:40 PM Changeset in webkit [288385] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make alignment editor accessible
https://bugs.webkit.org/show_bug.cgi?id=235395
<rdar://problem/87851989>

Reviewed by Patrick Angle.

Make alignment editor icons focusable, and annotate elements so VoiceOver could correctly read what is selected.

  • UserInterface/Views/AlignmentEditor.css:

(.alignment-editor .glyph:focus):
(.alignment-editor .glyph:not(:focus-visible)):

  • UserInterface/Views/AlignmentEditor.js:

(WI.AlignmentEditor):
(WI.AlignmentEditor.prototype.set alignment):
(WI.AlignmentEditor.prototype._removePreviouslySelected):
(WI.AlignmentEditor.prototype._updateSelected):

3:30 PM Changeset in webkit [288384] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull-requests in ValidateChange (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=234861
<rdar://problem/87114299>

Unreviewed follow-up fix.

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

(GitHubMixin.fetch_data_from_url_with_authentication): Fix authentication call.

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

3:10 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
2:49 PM Changeset in webkit [288383] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Avoid extra network request from buildbot to github
https://bugs.webkit.org/show_bug.cgi?id=235417
<rdar://problem/87846222>

Reviewed by Aakash Jain.

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

(GitHubEventHandlerNoEdits._get_commit_msg): Return empty string.

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

2:18 PM Changeset in webkit [288382] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Unreviewed test resource change.

Change this alpha PNG image to use a simple color with alpha, rather than a gradient,
so that when the image is stretched it doesn't result in small pixel diffs in test
results.

  • compositing/resources/simple_image.png:
1:59 PM Changeset in webkit [288381] by ysuzuki@apple.com
  • 3 edits in trunk/Source/bmalloc

[libpas] Follow-up after r288339
https://bugs.webkit.org/show_bug.cgi?id=235423

Changed the type names.

  • libpas/src/libpas/pas_allocation_callbacks.c:
  • libpas/src/libpas/pas_allocation_callbacks.h:
1:51 PM Changeset in webkit [288380] by Robert Jenner
  • 3 edits in trunk/LayoutTests

REGRESSION (r286944?): web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click tests have become flaky failures
https://bugs.webkit.org/show_bug.cgi?id=234410

Unreviewed test gardening. Adding expectations due to negative impact on EWS.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:47 PM Changeset in webkit [288379] by commit-queue@webkit.org
  • 9 edits in trunk

Build failure with g++ 12: std::exchange undefined
https://bugs.webkit.org/show_bug.cgi?id=235445

Patch by Mike Gorse <mgorse@suse.com> on 2022-01-21
Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • API/JSRetainPtr.h: Include <utility>

Source/WebCore:

  • platform/graphics/x11/XUniqueResource.h: Include <utility>

Source/WTF:

  • wtf/CompletionHandler.h: Include <utility>
  • wtf/MallocPtr.h: Ditto

Tools:

  • ImageDiff/ImageDiff.cpp: Include <utility>
1:38 PM Changeset in webkit [288378] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.41.1

Tag Safari-613.1.14.41.1.

1:32 PM Changeset in webkit [288377] by Russell Epstein
  • 1 edit in branches/safari-613.1.14.41-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj

Revert "Apply patch. rdar://problem/86298747"

This reverts commit r288231

1:29 PM Changeset in webkit [288376] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.41-branch/Source

Versioning.

WebKit-7613.1.14.41.1

1:25 PM Changeset in webkit [288375] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][GPUP] Add access to IOKit property
https://bugs.webkit.org/show_bug.cgi?id=235450
<rdar://76403140>

Reviewed by Brent Fulgham.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
1:19 PM Changeset in webkit [288374] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Add MacroAssemblerRISCV64 branch-testing operations
https://bugs.webkit.org/show_bug.cgi?id=235442

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-21
Reviewed by Yusuke Suzuki.

Implement MacroAssemblerRISCV64 branch-testing operations. The branching
instructions being intentionally simple in RISC-V, and with no status
register, scratch register has to be used to hold the testing result
and perform a branch based on its value. This will disallow use of these
implementations from Air, but that has to be address inside Air itself.

When performing tests for values that are smaller than 64 bits in width,
the tested value is zero-extended or, when necessary, loaded as an
unsigned value, to impose zeroed upper bits that eliminate masking
values that are too wide or get sign-extended when used as immediates.
Post-masking, these shorter-width values still have to be sign-extended
to accommodate branch instructions that are used when testing
signedness.

The test result value is then passed on, along with the desired
condition, to the new branchTestFinalize() helper method that finally
generates the appropriate branch.

  • assembler/MacroAssemblerRISCV64.h:

(JSC::MacroAssemblerRISCV64::branchTest8):
(JSC::MacroAssemblerRISCV64::branchTest16):
(JSC::MacroAssemblerRISCV64::branchTest32):
(JSC::MacroAssemblerRISCV64::branchTest64):
(JSC::MacroAssemblerRISCV64::branchPtr):
(JSC::MacroAssemblerRISCV64::branchTestFinalize):

1:18 PM Changeset in webkit [288373] by Russell Epstein
  • 1 copy in branches/safari-613.1.14.41-branch

New branch.

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

[RISCV64] Add MacroAssemblerRISCV64 operations for bitfield, zero-counting, byte-swapping operations
https://bugs.webkit.org/show_bug.cgi?id=235439

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-21
Reviewed by Yusuke Suzuki.

Add MacroAssemblerRISCV64 implementations that cover unsigned bitfield,
leading-zero, trailing-zero and byte-swapping operations. All these
operations are not supported in base RISC-V specifications. There are
extensions currently being ratified that will introduce more useful
instructions, but until then more verbose implementations will have
to be used.

For the unsigned bitfield operations, the desired result is achieved
through shifting and masking. Scratch registers are only needed in
case of the mask immediate being too large, but that will be properly
handled by the higher-level JITs. For other operations covered in this
patch we have to use scratch registers and custom loops to implement
the necessary behavior.

  • assembler/MacroAssemblerRISCV64.h:

(JSC::MacroAssemblerRISCV64::extractUnsignedBitfield32):
(JSC::MacroAssemblerRISCV64::extractUnsignedBitfield64):
(JSC::MacroAssemblerRISCV64::insertUnsignedBitfieldInZero32):
(JSC::MacroAssemblerRISCV64::insertUnsignedBitfieldInZero64):
(JSC::MacroAssemblerRISCV64::countLeadingZeros32):
(JSC::MacroAssemblerRISCV64::countLeadingZeros64):
(JSC::MacroAssemblerRISCV64::countTrailingZeros32):
(JSC::MacroAssemblerRISCV64::countTrailingZeros64):
(JSC::MacroAssemblerRISCV64::byteSwap16):
(JSC::MacroAssemblerRISCV64::byteSwap32):
(JSC::MacroAssemblerRISCV64::byteSwap64):

1:07 PM Changeset in webkit [288371] by Alan Bujtas
  • 4 edits in trunk

[LFC][IFC] Inline boxes with collapsible content only should not be considered opaque bidi items
https://bugs.webkit.org/show_bug.cgi?id=235447

Reviewed by Antti Koivisto.

Source/WebCore:

We don't normally submit inline boxes with content to ubidi re-ordering since their content drives the visual
position unless they are empty. While empty inline boxes do not usually produce visual artifacts (except ones with decoration)
they still need to be able to answer "bounding box" type of questions.

So in order to have geometry generated for inline boxes, they either
1, need to have some content so that while processing their content, we also compute their geometries
2, have to participate in ubidi's visual re-ordering so that they show up in the visual list (which is the input to the display box create function)

This patch treats inline boxes with fully collapsible content empty so that they fall into group #2.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):

LayoutTests:

1:02 PM Changeset in webkit [288370] by Robert Jenner
  • 1 edit
    1 move in trunk/LayoutTests

[ iOS EWS ] imported/w3c/web-platform-tests/dom/events/focus-event-document-move.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235150
<rdar://problem/87524787>

Unreviewed, re-land iOS baseline in the correct location. The behaviour difference is expected as it involves mouse events.

  • platform/ios/imported/w3c/web-platform-tests/dom/events/focus-event-document-move-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/dom/events/focus-event-document-move-expected.txt.
1:01 PM Changeset in webkit [288369] by Russell Epstein
  • 1 copy in branches/safari-613.1.13.1-branch

New branch.

12:30 PM Changeset in webkit [288368] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Use token when processing hook
https://bugs.webkit.org/show_bug.cgi?id=235383
<rdar://problem/87791577>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/master.cfg:

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

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

[EWS] ConfigureBuild should display PR information instead of ValidateChange
https://bugs.webkit.org/show_bug.cgi?id=235377
<rdar://problem/87853245>

Reviewed by Aakash Jain.

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

(GitHub):
(GitHub.commit_url): Convert a sha and repository to clickable commit url.
(ConfigureBuild._addToLog): Added.
(ConfigureBuild.add_pr_details): Print link to pull request, commit being
tested and author of change.
(ValidateChange.validate_github): Move links to ConfigureBuild.

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

10:31 AM Changeset in webkit [288366] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Stop killing finished processes
https://bugs.webkit.org/show_bug.cgi?id=235427
<rdar://problem/87887233>

Rubber-stamped by Aakash Jain.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.Cache.populate): Check if process has finished before killing it.
(Git.commits): Ditto.

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

(Svn.Cache.populate): Check if process has finished before killing it.
(Svn.commits): Ditto.

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

9:14 AM Changeset in webkit [288365] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.1.7

Tag Safari-612.4.9.1.7.

9:10 AM Changeset in webkit [288364] by Russell Epstein
  • 8 edits in branches/safari-612.4.9.1-branch/Source

Versioning.

WebKit-7612.4.9.1.7

8:11 AM Changeset in webkit [288363] by achristensen@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix build when using Visual Studio 2022
https://bugs.webkit.org/show_bug.cgi?id=235440

Reviewed by Antti Koivisto.

It doesn't like having a switch with a default but no cases.
This is cleaner with if statements anyways.
Also make members const because I can.

  • jit/JITCode.cpp:

(JSC::JITCode::calleeSaveRegisters const):

  • jit/JITCode.h:
7:08 AM Changeset in webkit [288362] by Antti Koivisto
  • 6 edits
    2 adds in trunk

WPT version of css/css-cascade/parsing/layer-import-parsing.html crashes with nullptr
https://bugs.webkit.org/show_bug.cgi?id=235434
rdar://87832940

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/parsing/layer-import-parsing.html:

Update to WPT version.

Source/WebCore:

Test: fast/css/insert-import-rule-crash.html

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::setCSSStyleSheet):

Null check the parent stylesheet. It can be null if the rule has been removed.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::startLoadingDynamicSheet):

Also fix a debug assert in addPendingSheet, this can get called multiple times.

LayoutTests:

  • fast/css/insert-import-rule-crash-expected.txt: Added.
  • fast/css/insert-import-rule-crash.html: Added.
5:11 AM Changeset in webkit [288361] by Lauro Moura
  • 13 edits in trunk

[CMake] Cannot link libTestRunnerInjectedBundle.so in non unified build
https://bugs.webkit.org/show_bug.cgi?id=226088

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

  • wasm/js/JSWebAssemblyModule.h: Add missing header

Source/WebCore:

Covered by existing tests.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::isUnderTest const): Defining it.

  • inspector/InspectorController.h: Export isUnderTest().
  • loader/SubresourceIntegrity.h: Add missing header.
  • platform/gtk/ValidationBubbleGtk.cpp: Ditto.
  • svg/graphics/filters/SVGFEImage.h: Ditto.
  • testing/Internals.cpp:

(WebCore::Internals::mediaSessionState): Cast new enum to the WebCore
one.

  • testing/Internals.h: Redefine MediaSessionState as a new enum

instead of aliasing to avoid redefinitions of
convertEnumerationToString in non-unified builds.

  • workers/WorkerConsoleClient.h:

Tools:

  • WebKitTestRunner/CMakeLists.txt: Pull WebCore as dependency for

WTR/WTRInjectedBundle

3:05 AM Changeset in webkit [288360] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.34.4

WPE WebKit 2.34.4

3:03 AM Changeset in webkit [288359] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.34.4
2:36 AM Changeset in webkit [288358] by Martin Robinson
  • 10 edits
    1 delete in trunk

element.scrollIntoView() sometimes doesn't scroll
https://bugs.webkit.org/show_bug.cgi?id=42593

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/scrollIntoView-horizontal-partially-visible-expected.txt:

Source/WebCore:

No new tests. This is covered by existing WPT tests.

For some operations which scroll to a rectangle, if an object is more than
32 pixels onscreen, it's not considered onscreen. This was originally used
to prevent unnecessary scrolling while tabbing through form fields, but is
no longer used for that in the majority of cases. Instead, the behavior affects
the calls to Element.focus(), Element.scrollIntoView(), and navigations to
anchor elements.

While navigation to anchor elements and calls to Element.focus() offer more
flexibility to the user agent, this behavior is not spec-compliant with
scrollIntoView(). This change adds a flag to ScrollAlignment to turn it off.

It could be that, in the future, the behavior for focus() is specified more
thoroughly, which might mean extending this fix.

  • dom/Element.cpp:

(WebCore::Element::scrollIntoView): Turn off the legacy horizontal visibility threshold.
(WebCore::Element::scrollIntoViewIfNeeded): Ditto.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::getRectToExpose const): Use the new setting in ScrollAlignment
and also rework the code to use the new methods on ScrollAlignment.

  • rendering/ScrollAlignment.h:

(WebCore::ScrollAlignment::getVisibleBehavior const): Converted this to a method to match
the new ones.
(WebCore::ScrollAlignment::getPartialBehavior const): Ditto.
(WebCore::ScrollAlignment::getHiddenBehavior const): Ditto.
(WebCore::ScrollAlignment::disableLegacyHorizontalVisibilityThreshold): Added.
(WebCore::ScrollAlignment::legacyHorizontalVisibilityThresholdEnabled const): Added.
(WebCore::ScrollAlignment::getVisibleBehavior): Deleted.
(WebCore::ScrollAlignment::getPartialBehavior): Deleted.
(WebCore::ScrollAlignment::getHiddenBehavior): Deleted.

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-empty-inline-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-shy-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:
2:25 AM Changeset in webkit [288357] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Garden fast/mediastream/getUserMedia-to-canvas-*.html failure for WPE
https://bugs.webkit.org/show_bug.cgi?id=235396

Unreviewed gardnening.

Move fast/mediastream/getUserMedia-to-canvas-*.html failures to glib
to suppress also WPE failures.

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-21

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:41 AM Changeset in webkit [288356] by Fujii Hironori
  • 5 edits in trunk/Source

Fix AppleWin build with newer MSVC
https://bugs.webkit.org/show_bug.cgi?id=235431

Reviewed by Alex Christensen.

Source/WebCore:

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(printLayer):

Source/WebKitLegacy/win:

  • WebDownloadCFNet.cpp:

(WebDownload::cancelForResume):

  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:

(WKQCA::CAD3DRenderer::resetD3DDevice):

1:25 AM Changeset in webkit [288355] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

  • gpu-process/TestExpectations:
12:32 AM Changeset in webkit [288354] by commit-queue@webkit.org
  • 28 edits
    1 copy
    3 adds in trunk

Support in-process testing of IPC messages
https://bugs.webkit.org/show_bug.cgi?id=231674
<rdar://84189314>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-21
Reviewed by Brent Fulgham.

Source/WebKit:

Add IPCTester service to UI, GPU, Network, Authn process.
The service can be used to send random messages to the processes.

Test: ipc/start-message-testing.html

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • Platform/IPC/Connection.cpp:

(IPC::Connection::dispatchIncomingMessageForTesting):
(IPC::Connection::dispatchMessage):
(IPC::CompletionHandler<void):
Remove asserts from takeAsyncReplyHandler, they're already present
in the caller. The caller can filter them based on the testing flag,
allowing testing without asserts.

  • Platform/IPC/Connection.h:
  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::create):
(IPC::Decoder::Decoder):
(IPC::Decoder::~Decoder):

  • Platform/IPC/Decoder.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::createMessageDecoder):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::readEventHandler):

  • Shared/IPCTester.cpp: Added.

(WebKit::messageTestDriver):
(WebKit::runMessageTesting):
(WebKit::IPCTester::~IPCTester):
(WebKit::IPCTester::startMessageTesting):
(WebKit::IPCTester::stopMessageTesting):
(WebKit::IPCTester::stopIfNeeded):

  • Shared/IPCTester.h: Added.
  • Shared/IPCTester.messages.in: Copied from Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in.
  • Sources.txt:
  • UIProcess/LegacySessionStateCodingNone.cpp:

(WebKit::decodeLegacySessionState):

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

(WebKit::WebProcessProxy::shouldSendPendingMessage):

  • WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp:

(WebKit::WebAuthnConnectionToWebProcess::dispatchMessage):
(WebKit::WebAuthnConnectionToWebProcess::dispatchSyncMessage):

  • WebAuthnProcess/WebAuthnConnectionToWebProcess.h:
  • WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSMessageListener::didReceiveMessage):
(WebKit::IPCTestingAPI::JSMessageListener::willSendMessage):

LayoutTests:

done-ipc-fuzizng

Note: See TracTimeline for information about the timeline view.