Timeline



May 16, 2022:

11:18 PM Changeset in webkit [294314] by Alan Coon
  • 2 edits in branches/safari-7614.1.14.0-branch/Source/WTF

Cherry-pick r294272. rdar://problem/93118830

Correct erroneous guard in Platform file
https://bugs.webkit.org/show_bug.cgi?id=240469
<rdar://problem/93358873>

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

11:18 PM Changeset in webkit [294313] by Alan Coon
  • 3 edits in branches/safari-7614.1.14.0-branch/Source/WTF

Cherry-pick r294265. rdar://problem/93118830

Remove abandoned WebKitAdditionsFeature1 flag (240462)
https://bugs.webkit.org/show_bug.cgi?id=240462
<rdar://93353298>

Reviewed by Alex Christensen.

Remove the abandoned WebKitAdditionsFeature1 preference, since
it ended up not being needed and now just complicates the build
and generated preferences.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/ExperimentalFeatureNames.h:

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

11:17 PM Changeset in webkit [294312] by Alan Coon
  • 18 edits in branches/safari-7614.1.14.0-branch

Cherry-pick r294264. rdar://problem/93118830

Remove abandoned UseScreenCaptureKit preference
https://bugs.webkit.org/show_bug.cgi?id=240460
<rdar://problem/93351960>

Reviewed by Youenn Fablet.

We no longer need this switch to activate ScreenCaptureKit, and this code is no
longer used. We should remove it to simplify the build and reduce complexity.

Source/WebCore:

  • platform/mediastream/RealtimeMediaSourceCenter.h: (WebCore::RealtimeMediaSourceCenter::useScreenCaptureKit const): Deleted. (WebCore::RealtimeMediaSourceCenter::setUseScreenCaptureKit): Deleted.

Source/WebKit:

  • GPUProcess/GPUProcess.cpp: (WebKit::GPUProcess::setUseScreenCaptureKit): Deleted.
  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultScreenCaptureKitEnabled): Deleted.
  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _useScreenCaptureKit]): Deleted. (-[WKPreferences _setUseScreenCaptureKit:]): Deleted.
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::updatePreferences):
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMediaWindowAndScreen.mm: (TestWebKitAPI::TEST):

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

11:17 PM Changeset in webkit [294311] by Alan Coon
  • 10 edits in branches/safari-7614.1.14.0-branch

Cherry-pick r294208. rdar://problem/93118830

AX: Remove CSSDisplayContentsAXSupportEnabled flag
https://bugs.webkit.org/show_bug.cgi?id=240409

Reviewed by Chris Fleizach.

Source/WebCore:

We added initial support without using this flag and will continue to
fix bugs as we find them, making this flag unnecessary.

  • page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setCSSDisplayContentsAXSupportEnabled): Deleted. (WebCore::RuntimeEnabledFeatures::cssDisplayContentsAXSupportEnabled const): Deleted.

Source/WebKitLegacy/mac:

We added initial support without using this flag and will continue to
fix bugs as we find them, making this flag unnecessary.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm: (-[WebPreferences cssDisplayContentsAXSupportEnabled]): Deleted. (-[WebPreferences setCSSDisplayContentsAXSupportEnabled:]): Deleted.
  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp: (WTR::TestOptions::defaults):

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

11:17 PM Changeset in webkit [294310] by Alan Coon
  • 2 edits in branches/safari-7614.1.14.1-branch/Source/WTF

Cherry-pick r294272. rdar://problem/93118830

Correct erroneous guard in Platform file
https://bugs.webkit.org/show_bug.cgi?id=240469
<rdar://problem/93358873>

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

11:17 PM Changeset in webkit [294309] by Alan Coon
  • 3 edits in branches/safari-7614.1.14.1-branch/Source/WTF

Cherry-pick r294265. rdar://problem/93118830

Remove abandoned WebKitAdditionsFeature1 flag (240462)
https://bugs.webkit.org/show_bug.cgi?id=240462
<rdar://93353298>

Reviewed by Alex Christensen.

Remove the abandoned WebKitAdditionsFeature1 preference, since
it ended up not being needed and now just complicates the build
and generated preferences.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/ExperimentalFeatureNames.h:

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

11:17 PM Changeset in webkit [294308] by Alan Coon
  • 18 edits in branches/safari-7614.1.14.1-branch

Cherry-pick r294264. rdar://problem/93118830

Remove abandoned UseScreenCaptureKit preference
https://bugs.webkit.org/show_bug.cgi?id=240460
<rdar://problem/93351960>

Reviewed by Youenn Fablet.

We no longer need this switch to activate ScreenCaptureKit, and this code is no
longer used. We should remove it to simplify the build and reduce complexity.

Source/WebCore:

  • platform/mediastream/RealtimeMediaSourceCenter.h: (WebCore::RealtimeMediaSourceCenter::useScreenCaptureKit const): Deleted. (WebCore::RealtimeMediaSourceCenter::setUseScreenCaptureKit): Deleted.

Source/WebKit:

  • GPUProcess/GPUProcess.cpp: (WebKit::GPUProcess::setUseScreenCaptureKit): Deleted.
  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultScreenCaptureKitEnabled): Deleted.
  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _useScreenCaptureKit]): Deleted. (-[WKPreferences _setUseScreenCaptureKit:]): Deleted.
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::updatePreferences):
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMediaWindowAndScreen.mm: (TestWebKitAPI::TEST):

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

11:17 PM Changeset in webkit [294307] by Alan Coon
  • 10 edits in branches/safari-7614.1.14.1-branch

Cherry-pick r294208. rdar://problem/93118830

AX: Remove CSSDisplayContentsAXSupportEnabled flag
https://bugs.webkit.org/show_bug.cgi?id=240409

Reviewed by Chris Fleizach.

Source/WebCore:

We added initial support without using this flag and will continue to
fix bugs as we find them, making this flag unnecessary.

  • page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setCSSDisplayContentsAXSupportEnabled): Deleted. (WebCore::RuntimeEnabledFeatures::cssDisplayContentsAXSupportEnabled const): Deleted.

Source/WebKitLegacy/mac:

We added initial support without using this flag and will continue to
fix bugs as we find them, making this flag unnecessary.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm: (-[WebPreferences cssDisplayContentsAXSupportEnabled]): Deleted. (-[WebPreferences setCSSDisplayContentsAXSupportEnabled:]): Deleted.
  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp: (WTR::TestOptions::defaults):

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

11:17 PM Changeset in webkit [294306] by Ross Kirsling
  • 6 edits in trunk

ISO8601::parseCalendarTime must throw in cases of time/date ambiguity
https://bugs.webkit.org/show_bug.cgi?id=240498

Reviewed by Yusuke Suzuki.

The CalendarTime production (https://tc39.es/proposal-temporal/#prod-CalendarTime) goes to a lot of trouble
to ensure that ambiguous parses are not allowed; this patch ensures that our implementation does so too.

In short:

  • CalendarTime is basically TimeDesignator[opt] TimeSpec TimeZone[opt] Calendar[opt].
  • When we don't have a TimeDesignator or a Calendar, we're in danger of ambiguity: YYYY-MM, YYYYMM, MM-DD, MMDD look the same as HHMM-UU, HHMMSS, HH-UU, HHMM (where UU is a UTC offset).
  • The solution is to attempt to reparse the string as one of these date formats and throw if we succeed.
  • stress/temporal-plaintime.js: Adjust expectations.
  • test262/expectations.yaml: Mark 10 test cases as passing.
  • runtime/ISO8601.cpp:

(JSC::ISO8601::isAmbiguousCalendarTime):
(JSC::ISO8601::parseCalendarTime):
(JSC::ISO8601::daysInMonth):

  • runtime/ISO8601.h:

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

11:11 PM Changeset in webkit [294305] by Alan Coon
  • 4 edits
    3 adds in branches/safari-613-branch

Cherry-pick r294012. rdar://problem/92425915

Fix inertness of pseudo-elements
https://bugs.webkit.org/show_bug.cgi?id=239831

Reviewed by Antti Koivisto.

When we adjust style for a pseudo-element, m_element and document().activeModalDialog() are both null. So we accidentally reset inertness to false in those cases.

Fix this by making checking for m_element's existence too.

LayoutTests/imported/w3c:

  • web-platform-tests/inert/inert-pseudo-element-hittest-expected.txt: Added.
  • web-platform-tests/inert/inert-pseudo-element-hittest.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/inert/inert-pseudo-element-hittest.html

  • style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjust const):

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-pseudo-element-hittest-expected.txt: Added.

Canonical link: https://commits.webkit.org/250446@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294012 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:11 PM Changeset in webkit [294304] by Alan Coon
  • 16 edits
    2 adds in branches/safari-613-branch

Cherry-pick r293987. rdar://problem/92775435

Implement CSS :modal pseudo class
https://bugs.webkit.org/show_bug.cgi?id=240109

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Add and extend tests for :modal pseudo-class.

  • web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-show-modal.html:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html

Renames :-internal-modal-dialog to :modal and adds :has() invalidation support.

  • css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText const):
  • css/CSSSelector.h:
  • css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOne const):
  • css/SelectorCheckerTestFunctions.h: (WebCore::matchesModalPseudoClass): (WebCore::matchesModalDialogPseudoClass): Deleted.
  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • css/dialog.css: (dialog:modal): (dialog:-internal-modal-dialog): Deleted.
  • css/parser/CSSSelectorParser.cpp: (WebCore::CSSSelectorParser::consumePseudo):
  • cssjit/SelectorCompiler.cpp: (WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION): (WebCore::SelectorCompiler::addPseudoClassType):
  • html/HTMLDialogElement.cpp: (WebCore::HTMLDialogElement::showModal): (WebCore::HTMLDialogElement::close): (WebCore::HTMLDialogElement::removedFromAncestor): (WebCore::HTMLDialogElement::setIsModal):
  • html/HTMLDialogElement.h:

LayoutTests:

Removes :-internal-modal-dialog from internal pseudo classes.

  • fast/css/pseudo-class-internal-expected.txt:
  • fast/css/pseudo-class-internal.html:

Canonical link: https://commits.webkit.org/250424@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293987 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:11 PM Changeset in webkit [294303] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r293981. rdar://problem/92084291

ASSERT in WebCore::RenderTreeUpdater::updateRenderTree
https://bugs.webkit.org/show_bug.cgi?id=240237

Reviewed by Antti Koivisto.

There are instances where calling findRenderingRoots() in RenderTreeUpdater::commit will
returns two rendering roots, with one of them being an ancestor of the other.

Calling updateRenderTree on the ancestor rendering root could end up removing
the renderer of the descendant rendering root.

This patch merges findRenderingRoots() to RenderTreeUpdater::commit() which, and now we will
ignore the nested root if there is no longer a renderer when it is being processed.

  • rendering/updating/RenderTreeUpdater.cpp:

Canonical link: https://commits.webkit.org/250419@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293981 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294302] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/bmalloc

Cherry-pick r293952. rdar://problem/92913312

Force PAS_ASSERT to generate different crash sites for each assertion.
https://bugs.webkit.org/show_bug.cgi?id=240209

Reviewed by Yusuke Suzuki.

Clang currently optimizes all crash sites into one in each function. Hence, if we
get a crash address at the 1 crash site, we don't know which failed assertion got
us there. This patch uses an asm statement to force Clang to emit a different
crash site for each assertion.

Benchmarks show that performance is neutral on both Jetstream2 and Speedometer2.

Size-wise, there is some increase. The following is the "size" output on
JavaScriptCore on M1:

TEXT. DATA OBJC others dec hex

old 19628032 180224 0 18792448 38600704 24d0000
new 19644416 180224 0 19251200 39075840 2544000

diff 16384 0 0 458752 475136

The increase in the "others" categories are mostly in the String Table, Symbol
Table, and Function Start Addresses. These take up disk space but should not
impact RAM usage unless they are accessed by a a debugger.

  • libpas/src/libpas/pas_utils.h: (pas_assertion_failed):

Canonical link: https://commits.webkit.org/250398@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293952 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294301] by Alan Coon
  • 4 edits in branches/safari-613-branch/Source

Cherry-pick r293894. rdar://problem/74201964

[iOS] Infinite recursion at -[WKFullScreenWindowController _exitFullscreenImmediately]
https://bugs.webkit.org/show_bug.cgi?id=239744
<rdar://74201964>

Reviewed by Eric Carlson.

Source/WebCore:

Even after fullscreen is correctly torn down during an immediate exit, fullscreen can never again
be entered for the lifetime of the page. This is due to the ivar m_pendingExitFullscreen being set
to true with no opportunity for that state to be cleared. This occurs because the callbacks for
exiting fullscreen are performed before the lambda form FullscreenManager::exitFullscreen() is
called.

Set m_pendingExitFullscreen inside exitFullscreen(), rather than the lambda, and clear it explicitly
in the cases where fullscreen exiting is not actually necessary.

The mock behavior of Fullscreen inside DumpRenderTree and WebKitTestRunner are not able to exercise
this same path. Track improvements to this mock in bug #239747.

  • dom/FullscreenManager.cpp: (WebCore::FullscreenManager::requestFullscreenForElement): (WebCore::FullscreenManager::exitFullscreen): (WebCore::FullscreenManager::setAnimatingFullscreen): (WebCore::FullscreenManager::setFullscreenControlsHidden):

Source/WebKit:

When exiting fullscreen immediately, we trigger the correct state transition by calling
-[self exitFullScreen]. However, when no fullscreen manager exists (as may happen during
navigation), -exitFullscreen may itself call -_exitFullscreenImmediately, which causes an
infinite recursion and stack overflow.

Unroll the implementation by performing all the same pieces as would have been done by
-exitFullScreen, but inline. Refactor out common behavior into -_reinsertWebViewUnderPlaceholder,
and call that both from -_exitFullscreenImmediately and _completedExitFullScreen.

Unfortunately, no API tests are possible here because TestWebKitAPI is not an actual iOS UI
application.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: (-[WKFullScreenWindowController exitFullScreen]): (-[WKFullScreenWindowController _reinsertWebViewUnderPlaceholder]): (-[WKFullScreenWindowController _completedExitFullScreen]): (-[WKFullScreenWindowController _exitFullscreenImmediately]):

Canonical link: https://commits.webkit.org/250352@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293894 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294300] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore/platform/graphics/avfoundation/objc

Cherry-pick r293877. rdar://problem/92676179

[Cocoa] QueuedVideoOutput constructor missing nil check
https://bugs.webkit.org/show_bug.cgi?id=240149

Reviewed by Eric Carlson.

Covered by existing tests.

  • Source/WebCore/platform/graphics/avfoundation/objc/QueuedVideoOutput.h:
  • Source/WebCore/platform/graphics/avfoundation/objc/QueuedVideoOutput.mm: (WebCore::QueuedVideoOutput::create): (WebCore::QueuedVideoOutput::QueuedVideoOutput): (WebCore::QueuedVideoOutput::valid):

Canonical link: https://commits.webkit.org/250335@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293877 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294299] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r293647. rdar://problem/92257660

Only stretch the percent height <body> when it is the document element's child
https://bugs.webkit.org/show_bug.cgi?id=239932
<rdar://92257660>

Reviewed by Antti Koivisto.

This IE quirk should only be applied to when the body is actually the document element's child (stretching case).

  • rendering/RenderBox.cpp: (WebCore::RenderBox::computeLogicalHeight const):
  • rendering/RenderBox.h: (WebCore::RenderBox::parentBox const):

Canonical link: https://commits.webkit.org/250151@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293647 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294298] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r293433. rdar://problem/91981865

[WebAuthn] Do not pass ASCCredentialRequestTypePlatform... if LocalService unavailable
https://bugs.webkit.org/show_bug.cgi?id=239746
rdar://91981865

Reviewed by Brent Fulgham.

Passing platform in requestTypes breaks the UI in registerations with the syncing platform
authenticator off and local service is unavailable. This patch stops passing it in this case.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::configureRegistrationRequestContext): (WebKit::WebAuthenticatorCoordinatorProxy::performRequest):

Canonical link: https://commits.webkit.org/249993@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293433 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294297] by Alan Coon
  • 9 edits in branches/safari-613-branch

Cherry-pick r293264. rdar://problem/92130849

Web Inspector: Regression(r287684) Resources from the memory cache show empty content in Network, Sources, and Search tabs
https://bugs.webkit.org/show_bug.cgi?id=239667

Reviewed by Devin Rousso.

Source/WebCore:

Updated tests:

  • http/tests/inspector/network/resource-response-source-disk-cache.html
  • http/tests/inspector/network/resource-response-source-memory-cache.html

r287684 introduced a subtle bug when calling InspectorInstrumentation::didReceiveData. We rely
on there being a difference between real, but empty, data buffer and not having a data buffer,
but after r287684 an empty SharedBuffer would be passed in the later case. Instead, we should
continue to pass nullptr if there is no buffer so that InspectorNetworkAgent::didReceiveData
can distiguish between the two.

The bug is the result of having a non-nullptr data in InspectorNetworkAgent::didReceiveData,
which causes us to call maybeAddResourceData, which means by the time
InspectorNetworkAgent::getResponseBody is called, the ResourceData for the request will have
an empty, not non-existant, content(), which means we will return the empty content instead,
since we believe the response had actual content.

  • inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::didReceiveDataImpl):
  • inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::didReceiveData):
  • loader/ResourceLoadNotifier.cpp: (WebCore::ResourceLoadNotifier::dispatchDidReceiveData):

LayoutTests:

Add test steps to ensure that the resource has content, and that the base64Encoded value matches our
expectations. While only the memory cache was affected by this regression, add the test steps to both
the memory and disk caches to defend this functionality.

  • http/tests/inspector/network/resource-response-source-memory-cache-expected.txt:
  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/resource-response-source-disk-cache-expected.txt:
  • http/tests/inspector/network/resource-response-source-disk-cache.html:

Canonical link: https://commits.webkit.org/249905@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293264 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294296] by Alan Coon
  • 7 edits in branches/safari-613-branch/Source

Cherry-pick r293220. rdar://problem/91924480

Apply purifyNaN in more places.
https://bugs.webkit.org/show_bug.cgi?id=239619
<rdar://problem/91924480>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • wasm/js/JSWebAssemblyHelpers.h: (JSC::toJSValue):

Source/WebCore:

  • bindings/js/IDBBindingUtilities.cpp: (WebCore::toJS):
  • bindings/js/JSDOMConvertWebGL.cpp: (WebCore::convertToJSValue):
  • bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readTerminal):
  • bridge/objc/objc_utility.mm: (JSC::Bindings::convertObjcValueToValue):

Canonical link: https://commits.webkit.org/249889@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293220 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294295] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613-branch

Cherry-pick r293170. rdar://problem/91117803

AVSampleBufferRenderSynchronizer timeline sometimes goes backwards when playback begins
https://bugs.webkit.org/show_bug.cgi?id=239471
rdar://91117803

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-current-time.html

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Log current time and requested playback rate. (WebCore::HTMLMediaElement::setPausedInternal): Log.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): If time has gone backward, clamp to the most recent seek time. (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal): INFO_LOG -> ALWAYS_LOG (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal): Ditto. (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime const): Use clampTimeToLastSeekTime. (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::clampTimeToLastSeekTime const): New, clamp time value to the most recent seek time. (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCurrentTimeDidChangeCallback): Use clampTimeToLastSeekTime. (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance): INFO_LOG -> ALWAYS_LOG (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal): INFO_LOG -> ALWAYS_LOG (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer): INFO_LOG -> ALWAYS_LOG (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableVideoFrame): INFO_LOG -> ALWAYS_LOG (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged): INFO_LOG -> ALWAYS_LOG

Source/WebKit:

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::currentTimeChanged): Log when time jumps backwards.

LayoutTests:

  • media/media-source/media-source-current-time-expected.txt: Added.
  • media/media-source/media-source-current-time.html: Added.

Canonical link: https://commits.webkit.org/249852@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293170 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294294] by Alan Coon
  • 6 edits
    2 moves
    2 adds in branches/safari-613-branch

Cherry-pick r293126. rdar://problem/90483049

REGRESSION (r281913): Map toolbar flickers when dragging the map on https://gis.ee/
https://bugs.webkit.org/show_bug.cgi?id=238589
<rdar://90483049>

Reviewed by Alan Bujtas.
Source/WebCore:

If a layer has negative z-order descendants, and one of those descendants becomes
composited, then that layer also has to composite, because its foreground needs to render in
front of those descendants. But this is tricky, because the compositing toggle is
out-of-order; we only know that the layer has to get composited after processing
descendants.

In particular, this created a problem with the overlap map, which tracks sets of rectangles
in "compositing scopes" via LayerOverlapMap. The delayed compositing toggle of the layer
with negative z-order descendants meant that any layers processed up to that point had their
bounds added in the wrong overlap scope. This resulted in subsequent bad overlap testing,
and a failure to make later layers composited.

The previous fix in this area (r281913) was incorrect. Revert it, and do a better fix, which
is to speculatively push an overlap map entry for the layer with negative z-order
descendants, if necessary. If this layer ends up not getting composited, we unwind the
speculative push, which will merge that scope with its parent scope.

In addition give OverlapMapContainer (an "overlap scope") a RenderLayer& which we can use
for logging, and to assert on correct behavior; it is not otherwise used in release builds.

Tests: compositing/layer-creation/overlap-with-negative-z-layers.html

compositing/layer-creation/subtree-div-overlaps-multiple-negative-z-divs.html

  • rendering/LayerOverlapMap.cpp: (WebCore::OverlapMapContainer::OverlapMapContainer): (WebCore::OverlapMapContainer::scopeLayer const): (WebCore::OverlapMapContainer::dump const): (WebCore::LayerOverlapMap::LayerOverlapMap): (WebCore::LayerOverlapMap::add): (WebCore::LayerOverlapMap::pushCompositingContainer): (WebCore::LayerOverlapMap::popCompositingContainer):
  • rendering/LayerOverlapMap.h:
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::computeCompositingRequirements): (WebCore::RenderLayerCompositor::traverseUnchangedSubtree): (WebCore::RenderLayerCompositor::updateOverlapMap const):

LayoutTests:

Move subtree-div-overlaps-multiple-negative-z-divs.html into the layer-creation directory.
Add a new test.

  • compositing/layer-creation/overlap-with-negative-z-layers-expected.html: Added.
  • compositing/layer-creation/overlap-with-negative-z-layers.html: Added.
  • compositing/layer-creation/subtree-div-overlaps-multiple-negative-z-divs-expected.html: Renamed from LayoutTests/compositing/subtree-div-overlaps-multiple-negative-z-divs-expected.html.
  • compositing/layer-creation/subtree-div-overlaps-multiple-negative-z-divs.html: Renamed from LayoutTests/compositing/subtree-div-overlaps-multiple-negative-z-divs.html.
  • fast/harness/render-tree-as-text-options-expected.txt: Test progressed; update results.

Canonical link: https://commits.webkit.org/249828@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293126 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294293] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r292738. rdar://problem/91295875

Use WebKit::blockedError instead of ResourceLoader::blockedError in WebLoaderStrategy::scheduleLoadFromNetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=239089
<rdar://91295875>

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

The latter dereferences the frame loader which can be null.

  • WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

Canonical link: https://commits.webkit.org/249522@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292738 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 PM Changeset in webkit [294292] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r292350. rdar://problem/90589355

intersectsWithAncestor should take fragmented boxes into account.
https://bugs.webkit.org/show_bug.cgi?id=238648

Reviewed by Dean Jackson.

Source/WebCore:

Test: compositing/backing/backing-store-columns-inside-position-fixed.html

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

Use boundingBox() for intersectsWithAncestor, so that we can explicitly request the box that contains
all fragment boxes.

LayoutTests:

  • compositing/backing/backing-store-columns-inside-position-fixed-expected.txt: Added.
  • compositing/backing/backing-store-columns-inside-position-fixed.html: Added.

Adds new test that scrolls content split into columns until the first column is offscreen, to confirm
that we still have a backing store.

Canonical link: https://commits.webkit.org/249215@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292350 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:59 PM Changeset in webkit [294291] by Antti Koivisto
  • 14 edits
    1 copy
    1 add
    11 deletes in trunk

Resolve ::first-letter eagerly
https://bugs.webkit.org/show_bug.cgi?id=239844

Reviewed by Alan Bujtas.

Source/WebCore:

::first-letter pseudo-element should be resolved eagerly during style resolution, similar to ::first-line.
This will clean up the architecture. It also makes ::first-letter animatable.

  • rendering/RenderTextFragment.cpp:

(WebCore::RenderTextFragment::styleDidChange): Deleted.

  • rendering/RenderTextFragment.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::removeCachedPseudoStyle): Deleted.

We always create a new style. There is no need to removed pseudo element styles.

  • rendering/style/RenderStyle.h:
  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::styleForFirstLetter):

Pull first-letter style from the parent style instead of resolving it in the middle of render tree building.

(WebCore::RenderTreeBuilder::FirstLetter::updateAfterDescendants):
(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):

Delete the renderer if we no longer have a style.

(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):

  • rendering/updating/RenderTreeBuilderFirstLetter.h:
  • style/StyleTreeResolver.cpp:

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

Resove first-letter.

(WebCore::Style::TreeResolver::resolvePseudoElement):
(WebCore::Style::TreeResolver::resolveInheritedPseudoElement):

Factor into a function.

(WebCore::Style::isChildInBlockFormattingContext):
(WebCore::Style::TreeResolver::resolveAncestorFirstLinePseudoElement):
(WebCore::Style::TreeResolver::resolveAncestorFirstLetterPseudoElement):

Resolving first-letter is similar to first-line except it is always a leaf and so won't be inherited from.

(WebCore::Style::TreeResolver::makeResolutionContextForPseudoElement):
(WebCore::Style::TreeResolver::makeResolutionContextForInheritedFirstLine):

  • style/StyleTreeResolver.h:

LayoutTests:

  • fast/css-generated-content/first-letter-in-nested-before-expected.html: Added.
  • fast/css-generated-content/first-letter-in-nested-before-expected.png: Removed.
  • fast/css-generated-content/first-letter-in-nested-before-expected.txt: Removed.
  • fast/css-generated-content/first-letter-in-nested-before-table-expected.html: Copied from LayoutTests/fast/css-generated-content/first-letter-in-nested-before-table.html.
  • fast/css-generated-content/first-letter-in-nested-before-table-expected.png: Removed.
  • fast/css-generated-content/first-letter-in-nested-before-table-expected.txt: Removed.
  • fast/css-generated-content/first-letter-in-nested-before-table.html:
  • fast/css-generated-content/first-letter-in-nested-before.html:

Make reftest and update the behavior. ::first-letter won't affect ::before/after with display:table,
matching Firefox behavior (and spec logic).

  • platform/glib/fast/css-generated-content/first-letter-in-nested-before-table-expected.txt: Removed.
  • platform/gtk/fast/css-generated-content/first-letter-in-nested-before-expected.png: Removed.
  • platform/gtk/fast/css-generated-content/first-letter-in-nested-before-table-expected.png: Removed.
  • platform/ios/fast/css-generated-content/first-letter-in-nested-before-table-expected.txt: Removed.
  • platform/mac/fast/css-generated-content/first-letter-in-nested-before-table-expected.txt: Removed.
  • platform/win/fast/css-generated-content/first-letter-in-nested-before-table-expected.txt: Removed.
  • platform/wincairo/fast/css-generated-content/first-letter-in-nested-before-table-expected.txt: Removed.
10:52 PM Changeset in webkit [294290] by zan@falconsigh.net
  • 4 edits in trunk/Source

[GTK][WPE] Current-context enforcement in ANGLE is expensive
https://bugs.webkit.org/show_bug.cgi?id=240392

Reviewed by Adrian Perez de Castro.

Source/WebCore:

ANGLE's current-context operations are relatively heavy and introduce
detectable overhead when executed for each of many WebGL operation. More
specifically, loads of the current-thread data from thread-local
storage are done under both EGL_GetCurrentContext() and
EGL_MakeCurrent() through the general TLS access model, relying on the
tls_get_addr function.

Instead, a static thread-local pointer variable is introduced, with the
initial-exec method, containing the address of the current
GraphicsContextGLANGLE object for a given thread. Instead of dipping
into ANGLE to retrieve the current context, the GraphicsContextGLANGLE
object's address is compared to the value of the thread-local variable
and an early return is done if they match.

This model is applied through the TLS_MODEL_INITIAL_EXEC macro that's
defined appropriately if the compiler is detected to support the
required tls_model attribute. This should be the case when targetting
platforms that use ELF, i.e. Unix-like systems but primarily Linux.

The initial-exec TLS model relies on early understanding from the
dynamic linker about what TLS data is required, which enables more
efficient allocation of and access into the required underlying memory.

Caching the current-context data into a static thread-specific variable
with the initial-exec TLS model is the same approach that's taken in the
Mesa library. More on this and other TLS models can be gathered from the
'ELF Handling For Thread-Local Storage' paper by Ulrich Drepper.

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

Source/WTF:

  • wtf/Compiler.h: Define the TLS_MODEL_INITIAL_EXEC macro as the

tls_model attribute with the initial-exec value, to be used on variables
whose TLS model should be adjusted.

10:23 PM Changeset in webkit [294289] by Alan Coon
  • 17 edits
    2 adds in branches/safari-7614.1.14.100-branch/Source

Cherry-pick r294160. rdar://problem/87170289

Add UI-side layers for optionally indicating interaction regions
https://bugs.webkit.org/show_bug.cgi?id=240372
<rdar://problem/87170289>

Reviewed by Dean Jackson.

Source/WebCore:

  • page/DebugPageOverlays.cpp: (WebCore::pathsForRegion): Move inline rect inflation into InteractionRegion so that all clients get it.
  • page/Page.cpp: (WebCore::Page::shouldBuildInteractionRegions const):
  • page/Page.h:
  • page/Frame.cpp: (WebCore::Frame::invalidateContentEventRegionsIfNeeded):
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintObject):
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::maintainsEventRegion const): (WebCore::RenderLayerBacking::updateEventRegion): If the ENABLE() and setting are both enabled, update event regions due to possible interaction region changes. We could make this more conservative later, but chances are high that most layers include interaction regions.

For now, compute interaction regions only for the root layer.
In a future patch, we will adopt the normal fake paint mechanism
and maintain them on the layer that owns them.

  • page/InteractionRegion.cpp: (WebCore::regionForElement): Move inline rect inflation into InteractionRegion so that all clients get it. Limit interaction rects to half of the viewport. Ignore regions that are larger.
  • page/InteractionRegion.h: (WebCore::operator==): Added. (WebCore::InteractionRegion::encode const): (WebCore::InteractionRegion::decode): Remove the isInline bit, since we only used it for rect inflation.
  • rendering/EventRegion.cpp: (WebCore::EventRegion::operator== const): (WebCore::EventRegion::translate): (WebCore::EventRegion::uniteInteractionRegions): (WebCore::EventRegion::computeInteractionRegions):
  • rendering/EventRegion.h: (WebCore::EventRegion::interactionRegions const): (WebCore::EventRegion::encode const): (WebCore::EventRegion::decode): Store interaction regions on EventRegion.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer): (WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates): Allow RemoteLayerTreeInteractionRegionLayers to add and maintain layers for interaction regions.
  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.h: Added.
  • UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: Added. (configureLayerForInteractionRegion): (WebKit::interactionRegionForLayer): (WebKit::isInteractionRegionLayer): (WebKit::setInteractionRegion): Box WebCore::InteractionRegion in a Objective-C object and store it on the layer. Use this as a key to indicate that a given layer is an interaction region.

(WebKit::appendInteractionRegionLayersForLayer):
Make sure that interaction region layers are always at the end of the layer's sublayers array.

(WebKit::updateLayersForInteractionRegions):
Add new layers for interaction regions.
Maintain the same layer for regions that cover the same area.
Add a green wash if the default WKInteractionRegionDebugFill is set.

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml: Add a preference to toggle interaction region layers.

Canonical link: https://commits.webkit.org/250529@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294160 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:22 PM Changeset in webkit [294288] by Alan Coon
  • 42 edits in branches/safari-7614.1.14.100-branch/Source/WebCore

Cherry-pick r293993. rdar://problem/92993954

Const-ify Node::willRespondTo*Events()
https://bugs.webkit.org/show_bug.cgi?id=240246

Reviewed by Wenson Hsieh.

Constify these four methods, because there's no
reason for them not to be, and because it makes
them usable in a const context in a future patch.

  • dom/EventNames.h: (WebCore::EventNames::isTouchRelatedEventType const):
  • dom/EventTarget.cpp: (WebCore::EventTarget::eventTypes const):
  • dom/EventTarget.h:
  • dom/Node.cpp: (WebCore::Node::willRespondToMouseMoveEvents const): (WebCore::Node::willRespondToTouchEvents const): (WebCore::Node::willRespondToMouseClickEvents const): (WebCore::Node::willRespondToMouseWheelEvents const):
  • dom/Node.h:
  • html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::willRespondToMouseClickEvents const):
  • html/HTMLAnchorElement.h:
  • html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::willRespondToMouseClickEvents const):
  • html/HTMLButtonElement.h:
  • html/HTMLElement.cpp: (WebCore::HTMLElement::willRespondToMouseMoveEvents const): (WebCore::HTMLElement::willRespondToMouseWheelEvents const): (WebCore::HTMLElement::willRespondToMouseClickEvents const):
  • html/HTMLElement.h:
  • html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::willRespondToMouseClickEvents const):
  • html/HTMLImageElement.h:
  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::willRespondToMouseClickEvents const):
  • html/HTMLInputElement.h:
  • html/HTMLLabelElement.cpp: (WebCore::HTMLLabelElement::willRespondToMouseClickEvents const):
  • html/HTMLLabelElement.h:
  • html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::willRespondToMouseClickEvents const):
  • html/HTMLPlugInElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::willRespondToMouseClickEvents const):
  • html/HTMLSelectElement.h:
  • html/HTMLSummaryElement.cpp: (WebCore::HTMLSummaryElement::willRespondToMouseClickEvents const):
  • html/HTMLSummaryElement.h:
  • html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::willRespondToMouseClickEvents const):
  • html/HTMLTextAreaElement.h:
  • html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents const): (WebCore::TextFieldInputType::shouldSpinButtonRespondToWheelEvents const):
  • html/TextFieldInputType.h:
  • html/shadow/SliderThumbElement.cpp: (WebCore::SliderThumbElement::willRespondToMouseMoveEvents const): (WebCore::SliderThumbElement::willRespondToMouseClickEvents const):
  • html/shadow/SliderThumbElement.h:
  • html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::willRespondToMouseMoveEvents const): (WebCore::SpinButtonElement::willRespondToMouseClickEvents const): (WebCore::SpinButtonElement::shouldRespondToMouseEvents const):
  • html/shadow/SpinButtonElement.h:
  • html/shadow/TextControlInnerElements.cpp: (WebCore::SearchFieldResultsButtonElement::willRespondToMouseClickEvents const): (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents const):
  • html/shadow/TextControlInnerElements.h:
  • mathml/MathMLElement.cpp: (WebCore::MathMLElement::willRespondToMouseClickEvents const):
  • mathml/MathMLElement.h:
  • mathml/MathMLSelectElement.cpp: (WebCore::MathMLSelectElement::willRespondToMouseClickEvents const):
  • mathml/MathMLSelectElement.h:
  • svg/SVGAElement.cpp: (WebCore::SVGAElement::willRespondToMouseClickEvents const):
  • svg/SVGAElement.h:

Canonical link: https://commits.webkit.org/250430@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293993 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:21 PM Changeset in webkit [294287] by mark.lam@apple.com
  • 28 edits in trunk/Source

Add ARM64 disassembler support for symbolic dumping of some well known constants.
https://bugs.webkit.org/show_bug.cgi?id=240443

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  1. Added a Options::needDisassemblySupport() option. This option is true if any of the JSC disassembly options are enabled. This allows us to trivially check if we need to enable additional infrastructure (like those added in this patch) to support disassembly.
  1. Refactor the Disassembler's thunkLabelMap into a more generic labelMap. It can now map a pointer to a CString or a const char* label.
  1. Enable JITOperationList infrastructure when ENABLE(JIT_OPERATION_DISASSEMBLY) is true. This adds a name to the JITOperationAnnotation record. Since this is guarded by ENABLE(JIT_OPERATION_DISASSEMBLY), we can trivially turn this part off later if adding this name adds too much size burden (or if any unexpected issues arise). Turning this off will only disable disassembly of JIT operation names. Disassembly of other constants (see below) will still be supported.

If Options::needDisassemblySupport() is true, the JITOperationList will
register all JIT operations (and the LLInt ones as well) with the Disassembler
labelMap.

  1. Removed the < > brackets around branch target labels except for internal pc index labels (e.g. <716>) and <unknown> (when we don't know what the branch target is). The < > notation takes up space and doesn't add any info. The branch targets now look like this:

<32> 0x1180102c0: b.ne 0x1180101c0 -> thunk: native Tail With Saved Tags Call trampoline
<92> 0x11801c87c: b 0x118008980 -> thunk: LLInt function for call jump to prologue thunk

<3508> 0x1198e16b4: b 0x1198bc1a0 -> JIT PC

Internal pc index labels will still use the < > brackets:

<3476> 0x1198e1694: b.eq 0x1198e16a0 -> <3488>

  1. Added ARM64 disassembler support to compute the value of a constant being loaded into a register using "MoveWide" instructions e.g. movz and movk.

When the disassembler sees a movz or movn or mov (of the MoveWide variety),
the disassembler initializes a m_builtConstant value. With each subsequent
movk instruction with the same destination register, the disassembler splices
in the corresponding 16-bit immediate.

After disassembling a MoveWide instruction, it will check if the next
instruction is also a MoveWide instruction targeting the same destination
register. If so, the constant is still being build: hence, it does nothing and
continues.

If the next instruction is (a) a MoveWide instruction targeting a different
register, (b) not a MoveWide instruction, or (c) we've reached the end of the
LinkBuffer (i.e. there's no next instruction), then the constant building for
the current target register is complete.

  1. Added ARM64 disassembler support for looking up constants (built in (5) above) and printing symbolic info / names of those constants.

With ENABLE(JIT_OPERATION_DISASSEMBLY), we now have JIT operation names e.g.

<176> 0x118010270: movk x3, #0x9f6e, lsl #48 -> 0x102dc8950 operationVMHandleException
<164> 0x1180180a4: movk x8, #0xe5c, lsl #48 -> 0x102db9420 operationVirtualCall

Apart from looking up the constant in the Disassembler labelMap, it also looks
up some commonly used constants e.g.

  1. VM pointers:

<156> 0x11801105c: movk x0, #0x1, lsl #32 -> 0x139435000 vm

  1. Some VM internal pointers (more can be added later as needed):

<24> 0x118014d18: movk x17, #0x1, lsl #32 -> 0x13943ee78 vm +40568: vm.topCallFrame
<76> 0x118014d4c: movk x17, #0x1, lsl #32 -> 0x139441a10 vm +51728: vm.m_exception

<196> 0x118011244: movk x17, #0x1, lsl #32 -> 0x1394417d0 vm +51152: vm.targetMachinePCForThrow
<208> 0x1198e09d0: movk x17, #0x1, lsl #32 -> 0x104432cc0 vm +52416: vm.m_doesGC

  1. VM related pointers (only 1 for now; not VM fields, but hangs off of VM):

<12> 0x11801938c: movk x1, #0x1, lsl #32 -> 0x1052cd3c8 vm scratchBuffer.m_buffer

  1. Well known PtrTags:

<204> 0x11801124c: movz x16, #0x6f9b -> 0x6f9b ExceptionHandlerPtrTag ?
<212> 0x1180150d4: movz x16, #0x593 -> 0x593 JSEntryPtrTag ?
<168> 0x1180183a8: movz lr, #0xb389 -> 0xb389 OperationPtrTag ?

  • the ? is because we cannot be certain that the 16-bit constant is a PtrTag. It may just be a coincidence that the value is the same. However, the user can trivially look at the surrounding disassembled code, and be able to tell if the value is used as a PtrTag.

For constants that are not found in the known sets:

  1. Small 16-bit constant (prints decimal value for convenience):

<200> 0x1198e09c8: movz x17, #0x2cc0 -> 11456

  1. Unknown pointers that aren't in the JIT and LLINT regions will simply print the pointer / constant:

<88> 0x1198e0958: movz x17, #0x2088
<92> 0x1198e095c: movk x17, #0x30d, lsl #16
<96> 0x1198e0960: movk x17, #0x1, lsl #32 -> 0x1030d2088

<unknown> is only used in relative branches.

  1. Enhanced the Integrity::isSanePointer() check to reject pointer values that are less than 4G on CPU(ADDRESS64) targets for OS(DARWIN). No sane pointer should be in the lowest 4G address region.

This also helps the disassembler more quickly filter out constant values that
aren't pointers.

This change affects DFG's speculationFromCell(), which is the only place that
may affect user facing performance. However, I think the impact should be
insignificant (since the added check is cheap).

  • assembler/JITOperationList.cpp:

(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::llintOperations):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):
(JSC::JITOperationList::addDisassemblyLabels):
(JSC::JITOperationList::populateDisassemblyLabelsInJavaScriptCore):
(JSC::JITOperationList::populateDisassemblyLabelsInJavaScriptCoreForLLInt):
(JSC::JITOperationList::populateDisassemblyLabelsInEmbedder):

  • assembler/JITOperationList.h:

(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):

  • assembler/JITOperationValidation.h:
  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::finalizeCodeWithDisassemblyImpl):

  • b3/testb3_1.cpp:

(main):

  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64DOpcode::appendPCRelativeOffset):
(JSC::ARM64Disassembler::MoveWideFormatTrait::rejectedResult):
(JSC::ARM64Disassembler::MoveWideFormatTrait::acceptedResult):
(JSC::ARM64Disassembler::MoveWideIsValidTrait::rejectedResult):
(JSC::ARM64Disassembler::MoveWideIsValidTrait::acceptedResult):
(JSC::ARM64Disassembler::A64DOpcodeMoveWide::handlePotentialDataPointer):
(JSC::ARM64Disassembler::A64DOpcodeMoveWide::handlePotentialPtrTag):
(JSC::ARM64Disassembler::A64DOpcodeMoveWide::parse):
(JSC::ARM64Disassembler::A64DOpcodeMoveWide::format):
(JSC::ARM64Disassembler::A64DOpcodeMoveWide::isValid):

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcodeMoveWide::baseFormat):
(JSC::ARM64Disassembler::A64DOpcodeMoveWide::formatBuffer):

  • disassembler/Disassembler.cpp:

(JSC::Disassembler::ensureLabelMap):
(JSC::registerLabel):
(JSC::labelFor):
(JSC::ensureThunkLabelMap): Deleted.
(JSC::registerThunkLabel): Deleted.
(JSC::labelForThunk): Deleted.

  • disassembler/Disassembler.h:
  • jsc.cpp:

(jscmain):

  • runtime/Gate.h:
  • runtime/JSCPtrTag.cpp:

(JSC::ptrTagName):

  • runtime/JSCPtrTag.h:
  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
  • runtime/VM.cpp:

(JSC::VM::isScratchBuffer):

  • runtime/VM.h:
  • tools/Integrity.h:

(JSC::Integrity::isSanePointer):

Source/WebCore:

  • bindings/js/WebCoreJITOperations.cpp:

(WebCore::populateJITOperations):
(WebCore::populateDisassemblyLabels):

  • bindings/js/WebCoreJITOperations.h:

(WebCore::populateDisassemblyLabels):
(WebCore::populateJITOperations):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::populateJITOperations):
(WebCoreTestSupport::populateDisassemblyLabels):

  • testing/js/WebCoreTestSupport.h:

(WebCoreTestSupport::populateDisassemblyLabels):
(WebCoreTestSupport::populateJITOperations):

Source/WTF:

  1. Added a ENABLE(JIT_OPERATION_DISASSEMBLY) flag. Currently, this feature relies on an USE(APPLE_INTERNAL_SDK) for enumerating JIT operations similar to ENABLE(JIT_OPERATION_VALIDATION). It is also restricted to ENABLE(DISASSEMBLER) && CPU(ARM64E).
  • wtf/PlatformCallingConventions.h:
  • wtf/PlatformEnable.h:
8:36 PM Changeset in webkit [294286] by Chris Dumez
  • 2 edits in trunk/Source/WebKit/UIProcess/API/C

Expose Page identifier via WKPageRef SPI
https://bugs.webkit.org/show_bug.cgi?id=240400
<rdar://93269635>

Reviewed by Tim Horton.

  • Source/WebKit/UIProcess/API/C/WKPage.cpp:

(WKPageGetIdentifier):

  • Source/WebKit/UIProcess/API/C/WKPage.h:

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

8:29 PM Changeset in webkit [294285] by Wenson Hsieh
  • 7 edits in trunk

Demote -[WKWebView retrieveAccessibilityTreeData:] to SPI
https://bugs.webkit.org/show_bug.cgi?id=240494
rdar://93385094

Reviewed by Tim Horton.

This method was only intended for use in MiniBrowser, and should ship as public API on WKWebView. Move the
declaration and implementation of this over to WKWebViewPrivateForTestingMac.h and WKWebViewTestingMac.mm
(respectively), and additionally prefix this testing-only SPI with an underscore.

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

(-[WKWebView retrieveAccessibilityTreeData:]): Deleted.

  • UIProcess/API/mac/WKWebViewPrivateForTestingMac.h:
  • UIProcess/API/mac/WKWebViewTestingMac.mm:

(-[WKWebView _retrieveAccessibilityTreeData:]):
Demote -[WKWebView retrieveAccessibilityTreeData:] to SPI
https://bugs.webkit.org/show_bug.cgi?id=240494
rdar://93385094

Reviewed by Tim Horton.

See WebKit/ChangeLog for more details.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController logAccessibilityTrees:]):

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

6:34 PM Changeset in webkit [294284] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Move around some NaN handling code
https://bugs.webkit.org/show_bug.cgi?id=240493
<rdar://92111504>

Reviewed by Yusuke Suzuki.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueRep):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::purifyNaN):
(JSC::FTL::DFG::LowerDFGToB3::compileValueRep):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

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

6:32 PM Changeset in webkit [294283] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r294215): [ iOS ] Nine fast tests are a consistent image failure
https://bugs.webkit.org/show_bug.cgi?id=240495

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

6:00 PM Changeset in webkit [294282] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in

[macOS] Fix mach syscall sandbox violation in the Network process
https://bugs.webkit.org/show_bug.cgi?id=240466
<rdar://93249176>

Reviewed by Chris Dumez.

Fix mach syscall sandbox violation in the Network process on macOS.

  • Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:

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

4:58 PM Changeset in webkit [294281] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebCore

Crash in WebCore::InsertTextCommand::positionInsideTextNode
https://bugs.webkit.org/show_bug.cgi?id=240480

Reviewed by Ryosuke Niwa.

Calling pushAnchorElementDown in CompositeEditCommand::positionAvoidingSpecialElementBoundary can
end up removing the startPosition's container node which leaves an invalid endingSelection.

InsertTextCommand::doApply requires a real endingSelection, so we should check if this occurred and bail out.

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::doApply):

4:44 PM Changeset in webkit [294280] by Said Abou-Hallawa
  • 8 edits in trunk/Source

REGRESSION(r249162): CanvasRenderingContext2DBase::drawImage() crashes if the image is animated and the first frame cannot be decoded
https://bugs.webkit.org/show_bug.cgi?id=239113
rdar://87980543

Reviewed by Simon Fraser.

Source/WebCore:

CanvasRenderingContext2DBase::drawImage() needs to ensure the first frame
of the animated image can be decoded correctly before creating the temporary
static image. If the first frame can't be decoded, this function should return
immediately. This matches the behavior of this function before r249162.

The animated image decodes its frames asynchronously in a work queue. But
the first frame has to be decoded synchronously in the main run loop. So
to avoid running the image decoder in two different threads we are going
to keep the first and the current frame cached when we receive a memory
pressure warning. This should not increase the memory allocation of the
animated image because the numbers of cached frames increases quickly and
we keep all of them till a memory warning is received. But the memory
pressure warning will be received a little bit more often. This depends
on the memory size of the first frame.

To make the code more robust, make ImageSource take a Ref<NativeImage>
instead of taking a RefPtr<NativeImage>.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::destroyDecodedData):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::destroyDecodedData):
(WebCore::ImageSource::setNativeImage):

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::create):
(WebCore::ImageSource::isDecoderAvailable const):
(WebCore::ImageSource::destroyAllDecodedData): Deleted.
(WebCore::ImageSource::destroyAllDecodedDataExcludeFrame): Deleted.
(WebCore::ImageSource::destroyDecodedDataBeforeFrame): Deleted.

Source/WebKit:

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawSystemImage):

4:40 PM Changeset in webkit [294279] by Simon Fraser
  • 12 edits in trunk/Source/WebCore

rdar://93377867 (WebKit r294204: weird text rendering artifacts while pages are loading)

Revert r294204 and r294262

  • layout/integration/inline/InlineIteratorBox.cpp:

(WebCore::InlineIterator::Box::visualRect const): Deleted.

  • layout/integration/inline/InlineIteratorBox.h:

(WebCore::InlineIterator::Box::visualRect const):
(WebCore::InlineIterator::Box::containingBlock const): Deleted.

  • layout/integration/inline/InlineIteratorBoxLegacyPath.h:

(WebCore::InlineIterator::BoxLegacyPath::containingBlock const): Deleted.
(WebCore::InlineIterator::BoxLegacyPath::direction const): Deleted.
(WebCore::InlineIterator::BoxLegacyPath::isFirstLine const): Deleted.

  • layout/integration/inline/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::direction const):
(WebCore::InlineIterator::BoxModernPath::containingBlock const): Deleted.
(WebCore::InlineIterator::BoxModernPath::isFirstLine const): Deleted.

  • layout/integration/inline/LayoutIntegrationLineLayout.cpp:

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

  • rendering/InlineBoxPainter.cpp:

(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addTextBoxVisualOverflow):

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::paint):

  • rendering/LegacyInlineTextBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::TextBoxPainter):
(WebCore::TextBoxPainter::~TextBoxPainter):
(WebCore::TextBoxPainter::paint):
(WebCore::TextBoxPainter::createMarkedTextFromSelectionInBox):
(WebCore::TextBoxPainter::paintBackground):
(WebCore::TextBoxPainter::paintForegroundAndDecorations):
(WebCore::TextBoxPainter::paintCompositionBackground):
(WebCore::TextBoxPainter::paintForeground):
(WebCore::TextBoxPainter::createDecorationPainter):
(WebCore::TextBoxPainter::paintBackgroundDecorations):
(WebCore::TextBoxPainter::paintForegroundDecorations):
(WebCore::TextBoxPainter::paintCompositionUnderlines):
(WebCore::textPosition):
(WebCore::TextBoxPainter::paintCompositionUnderline):
(WebCore::TextBoxPainter::paintPlatformDocumentMarkers):
(WebCore::TextBoxPainter::calculateUnionOfAllDocumentMarkerBounds):
(WebCore::TextBoxPainter::paintPlatformDocumentMarker):
(WebCore::TextBoxPainter::computePaintRect):
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds):
(WebCore::TextBoxPainter::computeHaveSelection const):
(WebCore::TextBoxPainter::fontCascade const):
(WebCore::TextBoxPainter::textOriginFromPaintRect const):
(WebCore::TextBoxPainter::debugTextShadow const):
(WebCore::LegacyTextBoxPainter::LegacyTextBoxPainter): Deleted.
(): Deleted.
(WebCore::ModernTextBoxPainter::ModernTextBoxPainter): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::TextBoxPainter): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::~TextBoxPainter): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::makeIterator const): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paint): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::createMarkedTextFromSelectionInBox): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintBackground): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintForegroundAndDecorations): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionBackground): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintForeground): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::createDecorationPainter): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintBackgroundDecorations): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintForegroundDecorations): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionUnderlines): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::textPosition): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionUnderline): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintPlatformDocumentMarkers): Deleted.
(WebCore::LegacyTextBoxPainter::calculateUnionOfAllDocumentMarkerBounds): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::paintPlatformDocumentMarker): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::computePaintRect): Deleted.
(WebCore::calculateDocumentMarkerBounds): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::computeHaveSelection const): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::fontCascade const): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::textOriginFromPaintRect const): Deleted.
(WebCore::TextBoxPainter<TextBoxPath>::debugTextShadow const): Deleted.

  • rendering/TextBoxPainter.h:

(WebCore::TextBoxPainter::textBox const):

4:40 PM Changeset in webkit [294278] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/004.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240489

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

4:13 PM Changeset in webkit [294277] by Alan Coon
  • 8 edits
    2 adds in branches/safari-613-branch

Apply patch. rdar://problem/88672183

4:13 PM Changeset in webkit [294276] by Alan Coon
  • 6 edits in branches/safari-613-branch/Source/WebCore

Apply patch. rdar://problem/88408231

4:03 PM Changeset in webkit [294275] by Oriol Brufau
  • 6 edits
    2 adds in trunk

Take intrinsicBorderForFieldset() into account in intrinsically sized fieldset
https://bugs.webkit.org/show_bug.cgi?id=240388

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Add test.

  • web-platform-tests/html/semantics/forms/the-fieldset-element/fieldset-intrinsic-size-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-fieldset-element/fieldset-intrinsic-size.html: Added.

Source/WebCore:

With 'box-sizing: content-box', computeIntrinsicLogicalContentHeightUsing
was not taking intrinsicBorderForFieldset() into account. So a fieldset
with 'height: min-content' would ignore the extra space required by the
legend, and the contents would overflow.

This patch adds a RenderBox::adjustIntrinsicLogicalHeightForBoxSizing
method with the logic, and overrides it in RenderBlock to take
intrinsicBorderForFieldset() into account.

Test: imported/w3c/web-platform-tests/html/semantics/forms/the-fieldset-element/fieldset-intrinsic-size.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::adjustIntrinsicLogicalHeightForBoxSizing const):
Take intrinsicBorderForFieldset() into account.

  • rendering/RenderBlock.h:

Override adjustIntrinsicLogicalHeightForBoxSizing.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::adjustIntrinsicLogicalHeightForBoxSizing const):
(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing const):
Move logic into a new method so that RenderBlock can override it.

  • rendering/RenderBox.h:

Declare adjustIntrinsicLogicalHeightForBoxSizing as virtual.
No need for computeIntrinsicLogicalContentHeightUsing to be virtual.

3:59 PM Changeset in webkit [294274] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the build after 250556@main

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
Maintain the status quo here, for now, by adopting unsafeBuffer().

3:56 PM Changeset in webkit [294273] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[CMake][VS] PrivateHeaders/WebCore/WebCoreJSBuiltinInternals.h is not updated in incremental build
https://bugs.webkit.org/show_bug.cgi?id=240297

Reviewed by Don Olmstead.

In CMake Visual Studio generator builds,
WebCoreJSBuiltinInternals.h was not copied to the private headers
directory as expected in incremental builds.

${WebCore_DERIVED_SOURCES_DIR}/WebCoreJSBuiltinInternals.h was
added to both WebCore_SOURCES and WebCore_PRIVATE_FRAMEWORK_HEADERS.
This caused the incremental build problem. Don't add the headers
to WebCore_SOURCES.

There was another minor problem. ${WebCore_BUILTINS_SOURCES} was
passed to the MAIN_DEPENDENCY argument of add_custom_command.
However, MAIN_DEPENDENCY argument should take a single file. It
should be passed to DEPENDS argument.

  • CMakeLists.txt:
3:43 PM Changeset in webkit [294272] by Brent Fulgham
  • 2 edits in trunk/Source/WTF

Correct erroneous guard in Platform file
https://bugs.webkit.org/show_bug.cgi?id=240469
<rdar://problem/93358873>

3:35 PM Changeset in webkit [294271] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

-Wdangling-pointer warning when building ANGLE with GCC 12
https://bugs.webkit.org/show_bug.cgi?id=239339

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-16
Reviewed by Yusuke Suzuki and Kenneth Russell.

  • Source/ThirdParty/ANGLE/CMakeLists.txt:

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

3:26 PM Changeset in webkit [294270] by Alan Coon
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.3.2

3:26 PM Changeset in webkit [294269] by Alan Coon
  • 9 edits in branches/safari-613-branch/Source

Revert "Versioning."

This reverts r294068.

3:25 PM Changeset in webkit [294268] by yurys@chromium.org
  • 2 edits in trunk/Source/WebKit

[SOUP2] Compute number of header bytes whe using soup 2
https://bugs.webkit.org/show_bug.cgi?id=240200

Reviewed by Michael Catanzaro.

SOUP 2 lacks methods that allow to get computed head sizes (only present in v3),
calculate the sizes manually when libsoup 2 is used.

No new tests, covered by LayoutTests/http/tests/inspector/network/resource-sizes-network.html
when compiled with SOUP 2.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::addHeaderSizes):
(WebKit::NetworkDataTaskSoup::didGetHeaders):

3:25 PM Changeset in webkit [294267] by ntim@apple.com
  • 4 edits in trunk

[css-ui] Unexpose attachment and borderless-attachment appearance values
https://bugs.webkit.org/show_bug.cgi?id=240447

Reviewed by Tim Horton.

Hide them behind the attachmentElementEnabled setting.

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

LayoutTests:

  • imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Source/WebCore:

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

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

3:18 PM Changeset in webkit [294266] by ntim@apple.com
  • 5 edits in trunk/Source

[css-ui] Update documentation for appearance CSS property
https://bugs.webkit.org/show_bug.cgi?id=240481

Reviewed by Devin Rousso.

Account for r294226, r294187 and r294170.

Source/WebCore:

  • css/CSSProperties.json:

Source/WebInspectorUI:

  • UserInterface/External/CSSDocumentation/CSSDocumentation-overrides.json:
  • UserInterface/External/CSSDocumentation/CSSDocumentation.js:

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

2:53 PM Changeset in webkit [294265] by Brent Fulgham
  • 3 edits in trunk/Source/WTF

Remove abandoned WebKitAdditionsFeature1 flag (240462)
https://bugs.webkit.org/show_bug.cgi?id=240462
<rdar://93353298>

Reviewed by Alex Christensen.

Remove the abandoned WebKitAdditionsFeature1 preference, since
it ended up not being needed and now just complicates the build
and generated preferences.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/ExperimentalFeatureNames.h:
2:44 PM Changeset in webkit [294264] by Brent Fulgham
  • 18 edits in trunk

Remove abandoned UseScreenCaptureKit preference
https://bugs.webkit.org/show_bug.cgi?id=240460
<rdar://problem/93351960>

Reviewed by Youenn Fablet.

We no longer need this switch to activate ScreenCaptureKit, and this code is no
longer used. We should remove it to simplify the build and reduce complexity.

Source/WebCore:

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::useScreenCaptureKit const): Deleted.
(WebCore::RealtimeMediaSourceCenter::setUseScreenCaptureKit): Deleted.

Source/WebKit:

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::setUseScreenCaptureKit): Deleted.

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultScreenCaptureKitEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

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

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

(WebKit::GPUProcessProxy::updatePreferences):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMediaWindowAndScreen.mm:

(TestWebKitAPI::TEST):

2:43 PM Changeset in webkit [294263] by Adrian Perez de Castro
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update libwpe to version 1.13.2
https://bugs.webkit.org/show_bug.cgi?id=240470

Reviewed by Philippe Normand.

  • elements/sdk/libwpe.bst: Update to version 1.13.2, switch download URL to the

canonical release site while at it.

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

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

Unreviewed, fix build after 250565@main
https://bugs.webkit.org/show_bug.cgi?id=240416

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-16

  • Source/WebCore/rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):

  • Source/WebCore/rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter<TextBoxPath>::debugTextShadow const):

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

2:37 PM Changeset in webkit [294261] by Ryan Haddad
  • 9 edits in trunk

Unreviewed, reverting r294238.

Breaks internal builds

Reverted changeset:

"Use _adoptEffectiveConfiguration instead of a separate
NSURLSession without credentials"
https://bugs.webkit.org/show_bug.cgi?id=240362
https://commits.webkit.org/r294238

2:21 PM Changeset in webkit [294260] by Alan Coon
  • 31 edits in branches/safari-7614.1.14.1-branch

Cherry-pick r294225. rdar://problem/92978482

Make sure calling showNotification will extend the service worker lifetime
https://bugs.webkit.org/show_bug.cgi?id=240273
<rdar://92978482>

Reviewed by Chris Dumez.

Source/WebCore:

Update NotificationClient API so that show is taking a completion handler.
Make use of this completion handler to resolve the promise when the show notification steps are done, as per spec.
Register push event to ServiceWorkerGlobalScope when the event handlers are called.
When ServiceWorkerRegistration::show is called during one of the push event handlers,
extend the push event lifetime by adding the show notification promise to the push event.

Covered by API test.

  • Modules/notifications/Notification.cpp:
  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationClient.h:
  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptExecutionContext.h:
  • workers/service/ServiceWorkerGlobalScope.cpp:
  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerRegistration.cpp:
  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/context/ServiceWorkerThread.cpp:

Source/WebKit:

On WebProcess side, implement the new NoficationClient::show API that takes a callback.
Delay calling this callback until UIProcess tells us so through async IPC.
On UIProcess side, take a callback and call it when the show notification steps are done.

  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:
  • NetworkProcess/Notifications/NetworkNotificationManager.h:
  • Shared/Notifications/NotificationManagerMessageHandler.h:
  • Shared/Notifications/NotificationManagerMessageHandler.messages.in:
  • UIProcess/Notifications/ServiceWorkerNotificationHandler.cpp:
  • UIProcess/Notifications/ServiceWorkerNotificationHandler.h:
  • UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp:
  • UIProcess/Notifications/WebNotificationManagerMessageHandler.h:
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
  • WebProcess/Notifications/WebNotificationManager.cpp:
  • WebProcess/Notifications/WebNotificationManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.cpp:
  • WebProcess/WebCoreSupport/WebNotificationClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebNotificationClient.h:
  • WebCoreSupport/WebNotificationClient.mm:

Tools:

  • TestWebKitAPI/TestNotificationProvider.cpp:
  • TestWebKitAPI/TestNotificationProvider.h:
  • TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:

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

2:21 PM Changeset in webkit [294259] by mmaxfield@apple.com
  • 1 edit in trunk/Source/WebCore/css/CSSProperties.json

Fix URL to offset-rotate property in CSSProperties.json
https://bugs.webkit.org/show_bug.cgi?id=240474

Reviewed by Myles C. Maxfield.

No new tests, not a functional change.

  • Source/WebCore/css/CSSProperties.json:

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

2:21 PM Changeset in webkit [294258] by Alan Coon
  • 8 edits in branches/safari-7614.1.14.1-branch

Cherry-pick r294218. rdar://problem/90400867

Right click > "Open Link" should trigger a navigation action with WKNavigationTypeLinkActivated
https://bugs.webkit.org/show_bug.cgi?id=240427
rdar://90400867

Reviewed by Tim Horton.

Add a new linked-on-or-after check to guard this new behavior for apps built against newer SDK versions.

Reviewed by Tim Horton.

Make a couple of minor adjustments to ContextMenuController to ensure that right clicking a link and choosing
"Open Link" or "Open Link in New Window" surfaces a navigation action with WKNavigationTypeLinkActivated,
rather than WKNavigationTypeOther.

Test: ContextMenuTests.NavigationTypeWhenOpeningLink

  • page/ContextMenuContext.cpp: (WebCore::ContextMenuContext::ContextMenuContext):
  • page/ContextMenuContext.h: (WebCore::ContextMenuContext::event const):

Save a reference to the Event of type "contextmenu" that's triggering context menu presentation in the
ContextMenuContext.

  • page/ContextMenuController.cpp: (WebCore::ContextMenuController::maybeCreateContextMenu): (WebCore::openNewWindow):

Plumb the "contextmenu" event through to FrameLoader::loadFrameRequest when opening links via context menu.

(WebCore::ContextMenuController::contextMenuItemSelected):
Right click > "Open Link" should trigger a navigation action with WKNavigationTypeLinkActivated
https://bugs.webkit.org/show_bug.cgi?id=240427
rdar://90400867

Reviewed by Tim Horton.

Add an API test to verify that right clicking a link and selecting "Open Link" triggers a navigation action with
the type WKNavigationTypeLinkActivated.

  • TestWebKitAPI/Tests/mac/ContextMenuTests.mm: (TestWebKitAPI::TEST):

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

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

2:19 PM Changeset in webkit [294257] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.36/Source

Merge r294177 - Non-unified build broken in debug mode
https://bugs.webkit.org/show_bug.cgi?id=240378

Unreviewed non-unified build fixes.

  • heap/StructureAlignedMemoryAllocator.cpp: Include <sys/mman.h> if needed.

Non-unified build broken in debug mode
https://bugs.webkit.org/show_bug.cgi?id=240378

Unreviewed non-unified build fixes.

  • contentextensions/ContentExtensionCompiler.cpp: Add missing wtf/CrossThreadCopier.h header.
  • workers/service/ServiceWorkerClients.cpp: Add missing Logging.h header.

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

2:19 PM Changeset in webkit [294256] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.36/Source

Merge r294154 - Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=240369

Source/JavaScriptCore:

  • runtime/DateConversion.cpp:

Source/WebCore:

  • Modules/highlight/HighlightRegister.h:
  • rendering/TextPainter.h:
2:15 PM Changeset in webkit [294255] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.2

2:01 PM Changeset in webkit [294254] by ntim@apple.com
  • 1 edit in trunk/metadata/contributors.json

Add myself to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240475

Reviewed by Myles C. Maxfield.

  • metadata/contributors.json:

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

1:45 PM Changeset in webkit [294253] by Alan Coon
  • 66 edits
    2 adds
    2 deletes in branches/safari-7614.1.14.0-branch/Source/WebKit

Cherry-pick r294190. rdar://problem/91006582

SharedBuffer should be copied and then attributed back to WebContent
https://bugs.webkit.org/show_bug.cgi?id=240223
rdar://91006582

Patch by Jean-Yves Avenard <jean-yves.avenard@apple.com> on 2022-05-14
Reviewed by Jer Noble.

Ideally, when mapping an IPCHandle we would prefer to use Copy On Write.
However, there's no support for COW with explicitly-owned memory such as
those created with VM_FLAGS_PURGABLE flag.
As such, when calling mach_vm_map with copy=true argument is set the
entire page will be copied.
It is therefore more performant to manually create a new buffer and copy
the actual content.
The memory can then be blamed on a particular process.

Rework FragmentedSharedBuffer/SharedBuffer IPC's serializer to perform
a copy, partially reverting changes made in bug 233401.

We replace the unnecessary use of SharedMemory::IPCHandle and directly
send SharedBuffer in clipboard and PDF related methods.
Rename SharedBufferCopy to SharedBufferReference to more accurately
describe what it does.

Make new use of the SharedBufferReference class, replacing the use of IPCHandle
in RemoteSourceBufferProxy and RemoteMediaResourceManager.

Rename SharedBufferReference::buffer() into
SharedBufferReference::unsafeBuffer() to give better clarity that accessing
SharedBuffer and SharedMemory should be treated with care.

SharedBuffer sent from trusted processes such as network process should
prefer the use of SharedBufferReference over directly using IPCHandle or
SharedBuffer, it makes optimisation easier and avoid duplicating code.

No observable change, covered by existing tests.

  • GPUProcess/GPUConnectionToWebProcess.cpp: (WebKit::GPUConnectionToWebProcess::remoteMediaResourceManager):
  • GPUProcess/media/RemoteCDMInstanceProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp: (WebKit::RemoteImageDecoderAVFProxy::createDecoder): (WebKit::RemoteImageDecoderAVFProxy::setData):
  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • GPUProcess/media/RemoteMediaResourceManager.cpp: (WebKit::RemoteMediaResourceManager::RemoteMediaResourceManager): (WebKit::RemoteMediaResourceManager::dataReceived):
  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/media/RemoteMediaResourceManager.messages.in:
  • GPUProcess/media/RemoteSourceBufferProxy.cpp: (WebKit::RemoteSourceBufferProxy::append):
  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::bufferingTimerFired): (WebKit::NetworkResourceLoader::sendBuffer): (WebKit::NetworkResourceLoader::dataReceivedThroughContentFilter):
  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp: (WebKit::ServiceWorkerDownloadTask::didReceiveData):
  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.messages.in:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: (WebKit::ServiceWorkerFetchTask::didReceiveData): (WebKit::ServiceWorkerFetchTask::loadBodyFromPreloader):
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
  • Platform/IPC/SharedBufferCopy.cpp: Removed.
  • Platform/IPC/SharedBufferCopy.h: Removed.
  • Platform/IPC/SharedBufferReference.cpp: Added. (IPC::SharedBufferReference::encode const): (IPC::SharedBufferReference::decode): (IPC::SharedBufferReference::unsafeBuffer const): (IPC::SharedBufferReference::data const): (IPC::SharedBufferReference::bufferWithOwner const):
  • Platform/IPC/SharedBufferReference.h: Added. (IPC::SharedBufferReference::SharedBufferReference): (IPC::SharedBufferReference::size const): (IPC::SharedBufferReference::isEmpty const): (IPC::SharedBufferReference::isNull const):
  • Platform/SharedMemory.cpp: (WebKit::transferOwnershipOfMemory const):
  • Platform/SharedMemory.h:
  • Platform/cocoa/SharedMemoryCocoa.cpp: (WebKit::changeOwnershipOfMemory): (WebKit::SharedMemory::Handle::takeOwnershipOfMemory const): (WebKit::SharedMemory::Handle::transferOwnershipOfMemory const): (WebKit::machProtection): (WebKit::SharedMemory::map):
  • Scripts/process-entitlements.sh:
  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp: (WebKit::CGDisplayListImageBufferBackend::createBackendHandle const):
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
  • Shared/WebCoreArgumentCoders.cpp: (IPC::encodeSharedBuffer): (IPC::decodeSharedBuffer):
  • Sources.txt:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView createPDFWithConfiguration:completionHandler:]):
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::platformRegisterAttachment):
  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: (WebKit::WebPasteboardProxy::getPasteboardBufferForType): (WebKit::WebPasteboardProxy::setPasteboardBufferForType): (WebKit::WebPasteboardProxy::readBufferFromPasteboard):
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::sendAudioComponentRegistrations):
  • UIProcess/WebPageProxy.cpp: (WebKit::CompletionHandler<void): (WebKit::WebPageProxy::drawPagesToPDF): (WebKit::WebPageProxy::drawToPDF): (WebKit::WebPageProxy::getLoadDecisionForIcon): (WebKit::WebPageProxy::updateAttachmentAttributes): (WebKit::WebPageProxy::registerAttachmentIdentifierFromData): (WebKit::WebPageProxy::platformRegisterAttachment):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPasteboardProxy.cpp: (WebKit::WebPasteboardProxy::readBufferFromPasteboard):
  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/WebURLSchemeTask.cpp: (WebKit::WebURLSchemeTask::didReceiveData):
  • UIProcess/gtk/WebPasteboardProxyGtk.cpp: (WebKit::WebPasteboardProxy::readBuffer):
  • UIProcess/ios/WKContentView.mm: (-[WKContentView _wk_pageCountForPrintFormatter:]):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::drawToPDFiOS):
  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::dataSelectionForPasteboard):
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferBackendHandle.h:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp: (WebKit::RemoteImageDecoderAVF::setData):
  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp: (WebKit::RemoteImageDecoderAVFManager::createImageDecoder):
  • WebProcess/GPU/media/RemoteMediaResourceProxy.cpp: (WebKit::RemoteMediaResourceProxy::dataReceived):
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp: (WebKit::SourceBufferPrivateRemote::append):
  • WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::didReceiveData):
  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::writeItemsToPasteboard):
  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: (WebKit::WebServiceWorkerFetchTaskClient::didReceiveData): (WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::registerAttachmentIdentifier):
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::bufferForType): (WebKit::WebPlatformStrategies::setBufferForType): (WebKit::WebPlatformStrategies::readBufferFromClipboard): (WebKit::WebPlatformStrategies::readBufferFromPasteboard):
  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::WebDragClient::declareAndWriteDragImage):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::getContentsAsMHTMLData): (WebKit::WebPage::getSelectionAsWebArchiveData): (WebKit::WebPage::getMainResourceDataOfFrame): (WebKit::WebPage::getResourceDataFromFrame): (WebKit::WebPage::getWebArchiveOfFrame): (WebKit::WebPage::getAccessibilityTreeData): (WebKit::WebPage::drawToPDF): (WebKit::WebPage::drawPagesToPDF): (WebKit::WebPage::didGetLoadDecisionForIcon): (WebKit::WebPage::urlSchemeTaskDidReceiveData): (WebKit::WebPage::updateAttachmentAttributes):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getDataSelectionForPasteboard): (WebKit::WebPage::performActionOnElement): (WebKit::WebPage::drawToPDFiOS): (WebKit::WebPage::didFinishLoadForQuickLookDocumentInMainFrame):
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getDataSelectionForPasteboard):
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::consumeAudioComponentRegistrations):

# Please populate the above commit message. Lines starting
# with '#' will be ignored

# 13 Tim Horton <timothy_horton@apple.com>
#
# ApplePayLogoSystemImage needlessly loads PassKit in WebKit child processes on iOS
# https://bugs.webkit.org/show_bug.cgi?id=240404
# <rdar://93070349>
#
# Reviewed by Chris Dumez.
#
# * UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
# (WebKit::ProcessLauncher::launchProcess): Adopt the WTF implementation of systemDirectoryPath.
# (WebKit::systemDirectoryPath): Moved to WTF.
#
# 13 Wenson Hsieh <Wenson Hsieh>
#
# ImageAnalysisQueue should reanalyze image elements whose image sources have changed
# https://bugs.webkit.org/show_bug.cgi?id=240371
# rdar://93175651
#
# Reviewed by Tim Horton.
#
# To aid with debugging similar issues in the future, plumb the image URL through to
# requestImageAnalysisWithIdentifier, which (if an engineering default is specified) will additionally reveal
# the URL in system logs.
#
# * Platform/cocoa/ImageAnalysisUtilities.h:
# * UIProcess/Cocoa/WebViewImpl.mm:
# (WebKit::WebViewImpl::requestTextRecognition):
# * UIProcess/ios/WKContentViewInteraction.mm:
# (-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]):
#
# 13 Aditya Keerthi <Aditya Keerthi>
#
# [iOS] Multiple visible find highlights when searching for text after beginning a "find from selection"
# https://bugs.webkit.org/show_bug.cgi?id=240393
# rdar://91441895
#
# Reviewed by Wenson Hsieh.
#
# Some WebKit clients use SPI on WKWebView to support "find from selection"
# functionality (the Cmd+E shortcut). However, to support general
# find functionality, they use new find API that uses a different codepath
# to draw highlights. Mixing use of the API and SPI can currently result
# in two highlights showing up.
#
# To fix, ensure SPI highlights are removed once the API is being used.
# The long term solution is for clients to adopt API for the
# "find from selection" functionality, but in the short term the SPI
# should remain supported.
#
# * WebProcess/WebPage/WebPage.cpp:
# (WebKit::WebPage::clearAllDecoratedFoundText):
#
# 13 Kimmo Kinnunen <kkinnunen@apple.com>
#
# IPC cannot encode, decode Ref<>, causing duplicate code
# https://bugs.webkit.org/show_bug.cgi?id=240160
#
# Reviewed by Antti Koivisto.
#
# Consider reference counted type T:
# Encoding is of signature encode(const T&)
# Decoding is of signature std::optional<Ref<T>> decode()
# This is usable for both RefPtr and Ref use-cases.
#
# Add Ref<T> encoder that is polymorphic to T.
# This way clients do not need to write encoders for
# Ref<T>, RefPtr<T>. They just need one encoder, for T.
#
# When clients do not need to write RefPtr<T>, they make less
# bugs. These will be corrected in future patches.
#
# Having Ref<T> encoders allows clients to use Vector<Ref<T>> encoding
# via Vector<U> encoder, and they would not need to duplicate that
# logic, making less bugs. These will be corrected in future patches.
#
# Remove most IPC::ArgumentCoder<Ref<..>> in favor of IPC::ArgumentCoder<..>.
# In the cases where removal was done, remove also redundant
# IPC::ArgumentCoder<RefPtr<..>>.
#
# * Platform/IPC/ArgumentCoders.h:
# (IPC::ArgumentCoder<RefPtr<T>>::decode):
# (IPC::ArgumentCoder<Ref<T>>::encode):
# (IPC::ArgumentCoder<Ref<T>>::decode):
# * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
# (IPC::ArgumentCoder<WebCore::Font>::encodePlatformData):
# (IPC::ArgumentCoder<WebCore::Font>::decodePlatformData):
# * Shared/WebCoreArgumentCoders.cpp:
# (IPC::ArgumentCoder<WebCore::Font>::encode):
# (IPC::ArgumentCoder<Font>::decode):
# (IPC::ArgumentCoder<SystemImage>::encode):
# (IPC::ArgumentCoder<SystemImage>::decode):
# * Shared/WebCoreArgumentCoders.h:
# * Shared/playstation/WebCoreArgumentCodersPlayStation.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
# * Shared/soup/WebCoreArgumentCodersSoup.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
# * Shared/win/WebCoreArgumentCodersWin.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
#
# 13 Tim Horton <timothy_horton@apple.com>
#
# Add UI-side layers for optionally indicating interaction regions
# https://bugs.webkit.org/show_bug.cgi?id=240372
# <rdar://problem/87170289>
#
# Reviewed by Dean Jackson.
#
# * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
# (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
# (WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
# Allow RemoteLayerTreeInteractionRegionLayers to add and maintain layers for interaction regions.
#
# * SourcesCocoa.txt:
# * UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.h: Added.
# * UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: Added.
# (configureLayerForInteractionRegion):
# (WebKit::interactionRegionForLayer):
# (WebKit::isInteractionRegionLayer):
# (WebKit::setInteractionRegion):
# Box WebCore::InteractionRegion in a Objective-C object and store it on the layer.
# Use this as a key to indicate that a given layer is an interaction region.
#
# (WebKit::appendInteractionRegionLayersForLayer):
# Make sure that interaction region layers are always at the end of the layer's sublayers array.
#
# (WebKit::updateLayersForInteractionRegions):
# Add new layers for interaction regions.
# Maintain the same layer for regions that cover the same area.
# Add a green wash if the default WKInteractionRegionDebugFill is set.
#
# * WebKit.xcodeproj/project.pbxproj:
#
# 13 Simon Fraser <Simon Fraser>
#
# Simplify the usage of DrawGlyphsRecorder
# https://bugs.webkit.org/show_bug.cgi?id=240363
#
# Reviewed by Myles Maxfield.
#
# Move the DeconstructDrawGlyphs switch from inside DrawGlyphsRecorder to
# DisplayList::Recorder, so that DrawGlyphsRecorder is only ever used when deconstructing
# glyphs.
#
# Also, ensure that the only time that glyph deconstruction is enabled is when
# recording display lists via RemoteDisplayListRecorderProxy. There's no reason for
# paintAttachmentText() to need glyph deconstruction.
#
# This is a small perf improvement on the MotionMark Design subtest.
#
# * WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
# (WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
# (WebKit::m_renderingBackend):
# * WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
#
# it takes from the XPC message is sent until the XPC reply is received. Add reporting when this happens

# On branch bz/240223
# Your branch is ahead of 'origin/main' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git restore --staged <file>..." to unstage)
# modified: Source/WebKit/ChangeLog
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# 0001-SharedBuffer-should-be-copied-and-then-attributed-ba.patch
#

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

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

1:43 PM Changeset in webkit [294252] by Alan Coon
  • 2 edits in branches/safari-7614.1.14.0-branch/Source/WebKit

Cherry-pick r294175. rdar://problem/91441895

[iOS] Multiple visible find highlights when searching for text after beginning a "find from selection"
https://bugs.webkit.org/show_bug.cgi?id=240393
rdar://91441895

Reviewed by Wenson Hsieh.

Some WebKit clients use SPI on WKWebView to support "find from selection"
functionality (the Cmd+E shortcut). However, to support general
find functionality, they use new find API that uses a different codepath
to draw highlights. Mixing use of the API and SPI can currently result
in two highlights showing up.

To fix, ensure SPI highlights are removed once the API is being used.
The long term solution is for clients to adopt API for the
"find from selection" functionality, but in the short term the SPI
should remain supported.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::clearAllDecoratedFoundText):

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

1:38 PM Changeset in webkit [294251] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.0-branch/Source

Versioning.

WebKit-7614.1.14.0.2

1:32 PM Changeset in webkit [294250] by Jonathan Bedard
  • 2 edits in trunk/Websites/bugs.webkit.org

[PrettyPatch] Support commit messages (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=240386
<rdar://problem/93248835>

Unreviewed follow-up fix.

  • Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb: Handle diffs without a header.

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

12:00 PM Changeset in webkit [294249] by Ziran Sun
  • 3 edits
    1 move in trunk

[css-ui] alias appearance <compat-auto> keywords to 'auto' for textfield
https://bugs.webkit.org/show_bug.cgi?id=238551

Reviewed by Tim Nguyen.

Source/WebCore:

This is to add support of aliasing appearance to 'auto' for textfield.
It has improved the following wpt tests
imported/w3c/web-platform-tests/css/css-ui/appearance-textfield-001.html
and
imported/w3c/web-platform-tests/css/css-ui/webkit-appearance-textfield-001.html.

The test failures though, are not fully fixed. The issue left is that the search cancel button
for input type="search" still present while it is expected to disappear (Bug 238751).

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustAppearanceForElement const):

LayoutTests:

Rename test name as the test result now matches the expected.

  • fast/forms/color/color-input-uses-color-well-appearance-expected.html: Renamed from LayoutTests/fast/forms/color/color-input-uses-color-well-appearance-expected-mismatch.html.
11:54 AM Changeset in webkit [294248] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Update to pipewire master
https://bugs.webkit.org/show_bug.cgi?id=240428

Patch by Philippe Normand <pnormand@igalia.com> on 2022-05-16
Reviewed by Adrian Perez de Castro.

The GStreamer pipewiresrc element from 0.3.36 has bugs that were fixed in the master branch.

  • elements/freedesktop-sdk.bst:
  • patches/fdo-0001-pipewire-base-Track-master-branch.patch: Added.

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

11:35 AM Changeset in webkit [294247] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.100-branch/Source

Versioning.

WebKit-7614.1.14.100.1

11:11 AM Changeset in webkit [294246] by Alan Coon
  • 1 copy in branches/safari-7614.1.14.100-branch

New branch.

10:58 AM Changeset in webkit [294245] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK][WPE] Make ANGLE backend EGL context initialization work
https://bugs.webkit.org/show_bug.cgi?id=240313

The platform is not selected correctly by default and the config
can not be chosen in some cases in the current conditions. Maybe
at some point we want something more general in the code for the
platform detection but for testing we have solved it adding the
environment variable (EGL_PLATORM) to make sure the platform
inside mesa is correctly selected when running the tests. If we
don't do it the small environment in the testing driver process
causes to chose the X11 because it is the building default
option. We used wayland because the headless driver we use is a
wayland backed implemented using shared memory.

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-05-16
Reviewed by Žan Doberšek.

No new tests, it fixes the tests for the ANGLE implementation.

  • Scripts/webkitpy/port/headlessdriver.py:

(HeadlessDriver._setup_environ_for_test):

10:57 AM Changeset in webkit [294244] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[Gardening]: REGRESSION (r264117): [ Mac iOS ] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/blob.https.html
https://bugs.webkit.org/show_bug.cgi?id=214155

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

10:53 AM Changeset in webkit [294243] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r294104): [GStreamer][VideoCapture] Webcam raw streams may hang up the video capture pipeline
https://bugs.webkit.org/show_bug.cgi?id=240456

Patch by Loïc Le Page <llepage@igalia.com> on 2022-05-16
Reviewed by Philippe Normand.

When capturing a raw stream from a webcam, the pipeline may hang up because the decodebin3 cannot fix the upstream caps.
The webcam capsfilter should not only specify the captured mime-type (video/x-raw) but also the capture image dimensions.

Manually tested.

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
10:48 AM Changeset in webkit [294242] by J Pascoe
  • 2 edits in trunk/Tools

(REGRESSION(r287957)[ Mac ] TestWebKitAPI.WebAuthenticationPanel.LAGetAssertionNoMockNoUserGesture is a constant timeout)
https://bugs.webkit.org/show_bug.cgi?id=240403
rdar://93271671

Reviewed by Brent Fulgham.

Whenever HAVE(UNIFIED_ASC_AUTH_UI), unmocked calls are passed to ASA, which does not
support calls from TWAPI.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

10:43 AM Changeset in webkit [294241] by J Pascoe
  • 2 edits in trunk/Source/WebKit

REGRESSION (250501@main): [ Mac ] 2 TestWebKitAPI.WebAuthenticationPanel.GetAssertionLA tests failing
https://bugs.webkit.org/show_bug.cgi?id=240406
rdar://93267082

Reviewed by Brent Fulgham.

Using the the truthiness of BOOL from attributes doesn't work here, instead compare it to @YES.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::getExistingCredentials):

10:35 AM Changeset in webkit [294240] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][FFC] Add support for logical ordering
https://bugs.webkit.org/show_bug.cgi?id=240442

Reviewed by Antti Koivisto.

Let's reorder the logicalFlexItemList when the 'order' property has a non-initial value.

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

10:30 AM Changeset in webkit [294239] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/webrtc/RTCRtpSender-replaceTrack.https.html is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240463

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

9:49 AM Changeset in webkit [294238] by commit-queue@webkit.org
  • 8 edits in trunk

Use _adoptEffectiveConfiguration instead of a separate NSURLSession without credentials
https://bugs.webkit.org/show_bug.cgi?id=240362

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

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::initializeNSURLSessionsInSet):
(WebKit::SessionSet::initializeEphemeralStatelessSessionIfNeeded):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::NetworkSessionCocoa::appBoundSession):
(WebKit::SessionSet::isolatedSession):
(WebKit::NetworkSessionCocoa::invalidateAndCancelSessionSet):

9:33 AM Changeset in webkit [294237] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][FFC] Add "flex-direction: column-reverse" basic visual/logical conversion
https://bugs.webkit.org/show_bug.cgi?id=240434

Reviewed by Antti Koivisto.

With "flex-direction: column-reverse" the main axis progression is from visual bottom to top (with default writing mode and all that).

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

9:18 AM Changeset in webkit [294236] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[Gardening]:[ iOS ] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-videoDetectorTest.html is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240348

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

9:12 AM Changeset in webkit [294235] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm

Canvas generated transparent pixels are not well handled by LocalSampleBufferDisplayLayer
https://bugs.webkit.org/show_bug.cgi?id=230621
rdar://problem/83668394

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-16
Reviewed by Eric Carlson.

Remove black color for root and display layer.
When display layer is hidden but root layer is visible, set root layer background color to black to keep existing behavior.
This allows to render transparent video frames without a black background.

Covered by https://jsfiddle.net/nfu7oL60/ (make sure to switch between tabs after clicking start).
Also covered by https://webrtc.github.io/samples/src/content/peerconnection/pc1/ and muting/unmuting the camera.

  • Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::initialize):
(WebCore::LocalSampleBufferDisplayLayer::updateDisplayMode):

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

8:52 AM Changeset in webkit [294234] by Patrick Angle
  • 8 edits in trunk

Web Inspector: Regression(r266885) Crash sometimes when rehydrating imported audit results
https://bugs.webkit.org/show_bug.cgi?id=240366

Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Source/WebCore:

Added test cases to inspector/model/dom-node.html

After r266885, there is no path to handle the possibility that there may not be a resulting node for calls to
DOM.querySelector. To correct this, mark the return value as optional (Web Inspector frontend already treats
it as optional) and return early if there was no Element matching the selector.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::querySelector):

  • inspector/agents/InspectorDOMAgent.h:

LayoutTests:

  • inspector/model/dom-node.html:
  • inspector/model/dom-node-expected.txt:
8:08 AM Changeset in webkit [294233] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][FFC] Add "flex-direction: row-reverse" basic visual/logical conversion
https://bugs.webkit.org/show_bug.cgi?id=240432

Reviewed by Antti Koivisto.

With "flex-direction: row-reverse" the main axis progression is from visual right to left (with default writing mode and all that).

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

6:55 AM Changeset in webkit [294232] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Warning in WebKitDOMDocumentGtk.cpp with GCC 12
https://bugs.webkit.org/show_bug.cgi?id=239353

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-16
Reviewed by Yusuke Suzuki.

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

(webkit_dom_document_create_node_iterator):
(webkit_dom_document_create_tree_walker):

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

6:16 AM Changeset in webkit [294231] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][FFC] Add "flex-direction: column" basic visual/logical conversion
https://bugs.webkit.org/show_bug.cgi?id=240430

Reviewed by Antti Koivisto.

With "flex-direction: column" the main axis progression is based on the margin box height.

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

5:54 AM Changeset in webkit [294230] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm

Rename MockAudioSharedInternalUnit::m_isProducingState to MockAudioSharedInternalUnit::m_internalState
https://bugs.webkit.org/show_bug.cgi?id=240450

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-16
Reviewed by Eric Carlson.

Follow-up to https://bugs.webkit.org/show_bug.cgi?id=240421 review.

No change of behavior.

  • Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm:

(WebCore::MockAudioSharedInternalUnit::MockAudioSharedInternalUnit):
(WebCore::MockAudioSharedInternalUnit::~MockAudioSharedInternalUnit):
(WebCore::MockAudioSharedInternalUnit::start):
(WebCore::MockAudioSharedInternalUnit::stop):
(WebCore::MockAudioSharedInternalUnit::uninitialize):
(WebCore::MockAudioSharedInternalUnit::generateSampleBuffers):

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

5:48 AM Changeset in webkit [294229] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

REGRESSION(r294104): [GStreamer] getUserMedia broken
https://bugs.webkit.org/show_bug.cgi?id=240420

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

The converter handling logic was modified in order to fix getUserMedia negotiated with raw
video and also getDisplayMedia which is always raw video and thus doesn't require decoding.

This patch also introduces a small optimization, reconfiguration is now done once only,
after setting size and framerate. Before this patch it was done twice, so the pipeline was a
taking more time to produce the first frame.

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::~GStreamerVideoCaptureSource):
(WebCore::GStreamerVideoCaptureSource::settingsDidChange): Trigger capturer reconfiguration after setting both size and framerate.
(WebCore::GStreamerVideoCaptureSource::startProducingData): Ditto.

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:

(WebCore::GStreamerVideoCapturer::createConverter): Do not decode display capture streams, these are always raw anyway.
(WebCore::GStreamerVideoCapturer::setSize): Delay reconfiguration.
(WebCore::GStreamerVideoCapturer::setFrameRate): Ditto.
(WebCore::GStreamerVideoCapturer::reconfigure): Keep track of compatible video format. This
is needed to workaround an issue in pipewiresrc caps negotiation.
(WebCore::GStreamerVideoCapturer::adjustVideoSrcMIMEType): Renamed to reconfigure().

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.h:

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

5:23 AM Changeset in webkit [294228] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Add basic video meta handling in sinks
https://bugs.webkit.org/show_bug.cgi?id=240429

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

By handling allocation queries and advertising video meta handling to upstream elements, our
video sinks are now more efficient, especially on Raspberry Pi 4 with the v4l2 stateless
H.264 decoder.

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:

(webKitVideoSinkSetMediaPlayerPrivate):

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

4:43 AM Changeset in webkit [294227] by commit-queue@webkit.org
  • 1 edit
    8 deletes in trunk/LayoutTests

Remove some custom-element tests
https://bugs.webkit.org/show_bug.cgi?id=240449

Patch by Rob Buis <rbuis@igalia.com> on 2022-05-16
Reviewed by Tim Nguyen.

Remove some custom-element tests since they are now available in WPT.

  • fast/custom-elements/enqueue-custom-element-callback-reactions-inside-another-callback-expected.txt: Removed.
  • fast/custom-elements/enqueue-custom-element-callback-reactions-inside-another-callback.html: Removed.
  • fast/custom-elements/perform-microtask-checkpoint-before-construction-expected.txt: Removed.
  • fast/custom-elements/perform-microtask-checkpoint-before-construction.html: Removed.
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct-expected.txt: Removed.
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html: Removed.
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions-expected.txt: Removed.
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html: Removed.
3:27 AM Changeset in webkit [294226] by ntim@apple.com
  • 8 edits
    11 deletes in trunk

[css-ui] Make inner-spin-button/sliderthumb-horizontal/sliderthumb-vertical appearance values internal
https://bugs.webkit.org/show_bug.cgi?id=240448

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

iOS baseline for appearance-cssom-001-expected.txt is identical to the main one, so remove it.

LayoutTests:

  • fast/forms/range/thumbslider-crash-expected.txt: Removed.
  • fast/forms/range/thumbslider-crash.html: Removed.
  • fast/forms/range/thumbslider-no-parent-slider.html: Removed.
  • platform/gtk/fast/forms/range/thumbslider-no-parent-slider-expected.png: Removed.
  • platform/gtk/fast/forms/range/thumbslider-no-parent-slider-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt: Removed.
  • platform/ios/fast/forms/range/thumbslider-no-parent-slider-expected.txt: Removed.
  • platform/mac/fast/forms/range/thumbslider-no-parent-slider-expected.png: Removed.
  • platform/mac/fast/forms/range/thumbslider-no-parent-slider-expected.txt: Removed.
  • platform/win/fast/forms/range/thumbslider-no-parent-slider-expected.txt: Removed.
  • platform/wincairo/fast/forms/range/thumbslider-no-parent-slider-expected.txt: Removed.
  • imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Source/WebCore:

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • platform/ThemeTypes.h:

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

1:18 AM Changeset in webkit [294225] by youenn@apple.com
  • 31 edits in trunk

Make sure calling showNotification will extend the service worker lifetime
https://bugs.webkit.org/show_bug.cgi?id=240273
<rdar://92978482>

Reviewed by Chris Dumez.

Source/WebCore:

Update NotificationClient API so that show is taking a completion handler.
Make use of this completion handler to resolve the promise when the show notification steps are done, as per spec.
Register push event to ServiceWorkerGlobalScope when the event handlers are called.
When ServiceWorkerRegistration::show is called during one of the push event handlers,
extend the push event lifetime by adding the show notification promise to the push event.

Covered by API test.

  • Modules/notifications/Notification.cpp:
  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationClient.h:
  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptExecutionContext.h:
  • workers/service/ServiceWorkerGlobalScope.cpp:
  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerRegistration.cpp:
  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/context/ServiceWorkerThread.cpp:

Source/WebKit:

On WebProcess side, implement the new NoficationClient::show API that takes a callback.
Delay calling this callback until UIProcess tells us so through async IPC.
On UIProcess side, take a callback and call it when the show notification steps are done.

  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:
  • NetworkProcess/Notifications/NetworkNotificationManager.h:
  • Shared/Notifications/NotificationManagerMessageHandler.h:
  • Shared/Notifications/NotificationManagerMessageHandler.messages.in:
  • UIProcess/Notifications/ServiceWorkerNotificationHandler.cpp:
  • UIProcess/Notifications/ServiceWorkerNotificationHandler.h:
  • UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp:
  • UIProcess/Notifications/WebNotificationManagerMessageHandler.h:
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
  • WebProcess/Notifications/WebNotificationManager.cpp:
  • WebProcess/Notifications/WebNotificationManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.cpp:
  • WebProcess/WebCoreSupport/WebNotificationClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebNotificationClient.h:
  • WebCoreSupport/WebNotificationClient.mm:

Tools:

  • TestWebKitAPI/TestNotificationProvider.cpp:
  • TestWebKitAPI/TestNotificationProvider.h:
  • TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
1:14 AM Changeset in webkit [294224] by Martin Robinson
  • 17 edits in trunk

Do not allow unitless values for CSS unprefixed perspective property
https://bugs.webkit.org/show_bug.cgi?id=104805
<rdar://problem/77016090>

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • web-platform-tests/quirks/unitless-length/excluded-properties-001-expected.txt:

Source/WebCore:

No new tests. This is tested by an existing WPT test:

web-platform-tests/quirks/unitless-length/excluded-properties-001.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

(WebCore::consumePerspective):
(WebCore::CSSPropertyParser::consumePrefixedPerspective):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:
  • rendering/style/WillChangeData.cpp:

(WebCore::WillChangeData::propertyCreatesStackingContext):

LayoutTests:

  • platform/gtk/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/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
12:26 AM Changeset in webkit [294223] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

MockAudioSharedInternalUnit should exit early when being stopped in generateSampleBuffers
https://bugs.webkit.org/show_bug.cgi?id=240421
<rdar://93279260>

Reviewed by Eric Carlson.

We used to always call generateSampleBuffers from main thread.
We are now calling it from background thread with dispatchAfter to mimick a realtime clock.
This broke the dispatchSync call we were calling when stopping the mock unit as the dispatchAfter task would be called
after the dispatchSync and |this| could potentially no longer be valid.
To prevent this, we introduce MockAudioSharedInternalUnitState which allows to safely know whether the unit is stopped or not
at any point in time. If the unit is stopped, dispatchAfter will not call generateSampleBuffers.

Covered by existing tests.

  • platform/mediastream/mac/MockAudioSharedUnit.mm:

(WebCore::MockAudioSharedInternalUnitState::create):
(WebCore::MockAudioSharedInternalUnitState::isProducingData const):
(WebCore::MockAudioSharedInternalUnitState::setIsProducingData):
(WebCore::MockAudioSharedInternalUnit::MockAudioSharedInternalUnit):
(WebCore::MockAudioSharedInternalUnit::~MockAudioSharedInternalUnit):
(WebCore::MockAudioSharedInternalUnit::start):
(WebCore::MockAudioSharedInternalUnit::stop):
(WebCore::MockAudioSharedInternalUnit::uninitialize):
(WebCore::MockAudioSharedInternalUnit::generateSampleBuffers):

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

Add logging when taking a process assertion synchronously
https://bugs.webkit.org/show_bug.cgi?id=240334

Reviewed by Chris Dumez.

No observable change of behavior.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::acquireSync):

May 15, 2022:

11:37 PM Changeset in webkit [294221] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Audio playback rate sped up for few seconds when using createMediaElementSource
https://bugs.webkit.org/show_bug.cgi?id=239696
<rdar://problem/92569332>

Reviewed by Eric Carlson.

We added a way for AudioSampleDataSource to reduce latency due to its audio buffer by reading the audio buffer faster
until the audio buffer size decreases to a reasonnable value.
The reasonnable buffer size was computed in terms of multiple of 10ms as RTC sources are pushing 10 or 20 millisecond chunks.
Other sources may push much bigger chunks (100 milliseconds for instance), in which case it does not make real sense to try to reduce the delay below it.
To prevent this, we will decrease the buffer size if it is above 100 milliseconds (as previously) AND the buffer size is 4 times the size of the pushed audio chunk.
4 times the size of the pushed audio chunk is 40 ms for RTC sources which is a reasonnable buffer size.

Manually tested with https://webaudioapi.com/samples/audio-tag/.

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

(WebCore::AudioSampleDataConverter::updateBufferedAmount):

  • platform/audio/cocoa/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::pushSamplesInternal):

7:32 PM Changeset in webkit [294220] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, revert r294214 partially
https://bugs.webkit.org/show_bug.cgi?id=240292

These part is not cold code. We must not use PAS_ASSERT_WITH_DETAIL.

  • libpas/src/libpas/pas_local_allocator_config_kind.h:

(pas_local_allocator_config_kind_create_normal):
(pas_local_allocator_config_kind_create_primordial_partial):
(pas_local_allocator_config_kind_create_bitfit):
(pas_local_allocator_config_kind_get_segregated_page_config_kind):
(pas_local_allocator_config_kind_get_bitfit_page_config_kind):
(pas_local_allocator_config_kind_get_string):

6:44 PM Changeset in webkit [294219] by hironori.fujii@sony.com
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=240439

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:

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

4:21 PM Changeset in webkit [294218] by Wenson Hsieh
  • 8 edits in trunk

Right click > "Open Link" should trigger a navigation action with WKNavigationTypeLinkActivated
https://bugs.webkit.org/show_bug.cgi?id=240427
rdar://90400867

Reviewed by Tim Horton.

Add a new linked-on-or-after check to guard this new behavior for apps built against newer SDK versions.

  • wtf/cocoa/RuntimeApplicationChecksCocoa.h:

Right click > "Open Link" should trigger a navigation action with WKNavigationTypeLinkActivated
https://bugs.webkit.org/show_bug.cgi?id=240427
rdar://90400867

Reviewed by Tim Horton.

Make a couple of minor adjustments to ContextMenuController to ensure that right clicking a link and choosing
"Open Link" or "Open Link in New Window" surfaces a navigation action with WKNavigationTypeLinkActivated,
rather than WKNavigationTypeOther.

Test: ContextMenuTests.NavigationTypeWhenOpeningLink

  • page/ContextMenuContext.cpp:

(WebCore::ContextMenuContext::ContextMenuContext):

  • page/ContextMenuContext.h:

(WebCore::ContextMenuContext::event const):

Save a reference to the Event of type "contextmenu" that's triggering context menu presentation in the
ContextMenuContext.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::maybeCreateContextMenu):
(WebCore::openNewWindow):

Plumb the "contextmenu" event through to FrameLoader::loadFrameRequest when opening links via context menu.

(WebCore::ContextMenuController::contextMenuItemSelected):
Right click > "Open Link" should trigger a navigation action with WKNavigationTypeLinkActivated
https://bugs.webkit.org/show_bug.cgi?id=240427
rdar://90400867

Reviewed by Tim Horton.

Add an API test to verify that right clicking a link and selecting "Open Link" triggers a navigation action with
the type WKNavigationTypeLinkActivated.

  • TestWebKitAPI/Tests/mac/ContextMenuTests.mm:

(TestWebKitAPI::TEST):

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

9:53 AM Changeset in webkit [294217] by Alan Bujtas
  • 3 edits
    1 add in trunk/Source/WebCore

[LFC][FFC] Introduce logical direction based flex layout
https://bugs.webkit.org/show_bug.cgi?id=240424

Reviewed by Antti Koivisto.

This is in preparation for ensuring that core flex layout only needs to deal with
one direction for flex content progression (row vs. column vs. reversed etc).

  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFlexLayout):

8:49 AM Changeset in webkit [294216] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Skip flaky test on ARM
https://bugs.webkit.org/show_bug.cgi?id=240426

Unreviewed gardening.

  • stress/verify-can-gc-node-index.js:
6:30 AM Changeset in webkit [294215] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

WebCore::IOSurface has WebCore::GraphicsContext as its property, it should be the other way around
https://bugs.webkit.org/show_bug.cgi?id=240417

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-15
Reviewed by Simon Fraser.

Do not store WebCore::GraphicsContext in WebCore::IOSurface.
E.g. graphics context is not the property of the bitmap that
is being drawn to. The backing bitmap is a property of the context.

Instead, store the GraphicsContextCG at the place where the user is,
e.g. in ImageBufferIOSurfaceBackend. This allows the context client
to create the context with the options the client needs.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContextCG::GraphicsContextCG):
(WebCore::GraphicsContextCG::drawNativeImage):

  • platform/graphics/cg/GraphicsContextCG.h:
  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::willAddSurface):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::~ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::context const):
(WebCore::ImageBufferIOSurfaceBackend::releaseGraphicsContext):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::create):
(WebCore::IOSurface::releasePlatformGraphicsContext):
(WebCore::IOSurface::ensureGraphicsContext): Deleted.
(WebCore::IOSurface::releaseGraphicsContext): Deleted.

May 14, 2022:

7:08 PM Changeset in webkit [294214] by Justin Michaud
  • 6 edits in trunk/Source/bmalloc

[LIBPAS] Add extra assert information to malloc enumeration API
https://bugs.webkit.org/show_bug.cgi?id=240292

Reviewed by Yusuke Suzuki.

In the heap enumerator (which is a slow path), we have asserts that
have the opportunity to include extra information to aid debugging.

We add PAS_ASSERT_WITH_DETAIL, which stuffs extra data into registers before crashing
so that we can see it in crash logs. We also add a debugging option to allow logging
to syslog, for cases when we do not have access to stdout.

  • libpas/src/libpas/pas_enumerate_segregated_heaps.c:

(consider_allocator):

  • libpas/src/libpas/pas_local_allocator_config_kind.h:

(pas_local_allocator_config_kind_create_normal):
(pas_local_allocator_config_kind_create_primordial_partial):
(pas_local_allocator_config_kind_create_bitfit):
(pas_local_allocator_config_kind_get_segregated_page_config_kind):
(pas_local_allocator_config_kind_get_bitfit_page_config_kind):
(pas_local_allocator_config_kind_get_string):

  • libpas/src/libpas/pas_log.c:

(pas_vlog):

  • libpas/src/libpas/pas_utils.c:

(pas_crash_with_info_impl):
(pas_panic):
(pas_assertion_failed_no_inline):
(pas_assertion_failed_no_inline_with_extra_detail):

  • libpas/src/libpas/pas_utils.h:
5:47 PM Changeset in webkit [294213] by ysuzuki@apple.com
  • 9 edits in trunk/Source

Put ThreadGlobalData in Thread
https://bugs.webkit.org/show_bug.cgi?id=240116

Reviewed by Darin Adler and Mark Lam.

This patch puts ThreadGlobalData into Thread's m_clientData field.
Thread is stored in fast TLS, so accessing to this field is quite fast
compared to the current ThreadSpecific one.

At the same time, this change can remove a hack in ThreadGlobalData.
Previously worker thread needs to tear down ThreadGlobalData explicitly
because Thread::current() can be destroyed earlier than ThreadGlobalData.
In that case, EventNames etc., which accesses to AtomString's destruction
can have problem because of lack of Thread::current() access. But since
we now move it to Thread, we can control how it is destroyed with Thread::current()
precisely, and we can explicitly destroy it before Thread::current() is fully
cleared. So we do not need to call it explicitly anymore.
Currently, we are calling it just to make ThreadGlobalData destroyed for debugging.

  • Source/WebCore/PAL/pal/ThreadGlobalData.cpp:

(PAL::ThreadGlobalData::ThreadGlobalData):
(PAL::ThreadGlobalData::destroy): Deleted.

  • Source/WebCore/PAL/pal/ThreadGlobalData.h:

(PAL::ThreadGlobalData::ThreadGlobalData::cachedConverterICU): Deleted.

  • Source/WTF/wtf/Threading.h:

(WTF::Thread::Thread):

  • Source/WTF/wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::destructTLS):

  • Source/WTF/wtf/win/ThreadingWin.cpp:

(WTF::Thread::ThreadHolder::~ThreadHolder):

  • Source/WebCore/platform/ThreadGlobalData.cpp:

(WebCore::ThreadGlobalData::destroy):
(WebCore::ThreadGlobalData::setWebCoreThreadData):
(WebCore::threadGlobalData):

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

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

[webkit-patch] Include commit messages in patches (Follow-up #2)
https://bugs.webkit.org/show_bug.cgi?id=240256
<rdar://problem/92982358>

Unreviewed follow-up fix.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.create_patch): Allow caller to exclude commit message, run git diff against HEAD by
default to include both staged and unstaged changes.

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.create_patch): Match function signature for git.

  • Scripts/webkitpy/common/checkout/scm/scm_mock.py:

(MockSCM.create_patch): Match function signature for git.

  • Scripts/webkitpy/common/checkout/scm/svn.py:

(SVN.create_patch): Match function signature for git.

  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter._wpt_patch): Exclude commit message since we won't be able
to classify it's file.

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.MockGit.create_patch): Match function signature for git.

3:39 PM Changeset in webkit [294211] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Changing text color and removing line-clamp on hover causes text to disappear permanently
https://bugs.webkit.org/show_bug.cgi?id=240410

Reviewed by Simon Fraser.

Source/WebCore:

Invalidate the flex items' line layout path when line-clamp property value changes.

While the line clamp property is set on the flex box, it is "forced on" the flex items' inline content.
(i.e. the property is not inherited, it is propagated to the flex children)
It means dynamic value change only runs on the flex box renderer.

Test: fast/block/dynamic-line-clamp-empty-content.html

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::styleWillChange):

LayoutTests:

  • fast/block/dynamic-line-clamp-empty-content-expected.html: Added.
  • fast/block/dynamic-line-clamp-empty-content.html: Added.
2:35 PM Changeset in webkit [294210] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Unreviewed win build fix.

  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::flexBoxLogicalBorder):
(WebCore::LayoutIntegration::flexBoxLogicalPadding):
(WebCore::LayoutIntegration::FlexLayout::updateFormattingRootGeometryAndInvalidate):
(WebCore::LayoutIntegration::logicalBorder): Deleted.
(WebCore::LayoutIntegration::logicalPadding): Deleted.

1:08 PM Changeset in webkit [294209] by ysuzuki@apple.com
  • 14 edits in trunk/Source

Rename EventTrackingRegions::Event to EventTrackingRegions::EventType
https://bugs.webkit.org/show_bug.cgi?id=240295

Reviewed by Darin Adler.

This patch is follow-up after r293967 by Darin's comment. EventTrackingRegions::Event is not event actually,
it is just an EventType. This patch renames it with EventType. We also rename variables "event" to "eventType".

  • Source/WebKit/Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<EventTrackingRegions>::decode):

  • Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::eventTrackingTypeForPoint const):

  • Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateTouchEventTracking):

  • Source/WebCore/page/DebugPageOverlays.cpp:

(WebCore::NonFastScrollableRegionOverlay::drawRect):

  • Source/WebCore/page/Page.cpp:

(WebCore::Page::touchEventRectsForEventForTesting):

  • Source/WebCore/page/Page.h:
  • Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame const):

  • Source/WebCore/page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::computeWheelProcessingSteps):
(WebCore::ScrollingTree::eventTrackingTypeForPoint):

  • Source/WebCore/page/scrolling/ScrollingTree.h:
  • Source/WebCore/platform/EventTrackingRegions.cpp:

(WebCore::EventTrackingRegions::eventName):
(WebCore::EventTrackingRegions::eventNameAtomString): We add this function to have a way to get AtomString event name. It simplifies Internal code.
(WebCore::EventTrackingRegions::trackingTypeForPoint):
(WebCore::EventTrackingRegions::uniteSynchronousRegion):

  • Source/WebCore/platform/EventTrackingRegions.h:
  • Source/WebCore/testing/Internals.cpp:

(WebCore::Internals::touchEventRectsForEvent):

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

12:15 PM Changeset in webkit [294208] by Tyler Wilcock
  • 10 edits in trunk

AX: Remove CSSDisplayContentsAXSupportEnabled flag
https://bugs.webkit.org/show_bug.cgi?id=240409

Reviewed by Chris Fleizach.

Source/WebCore:

We added initial support without using this flag and will continue to
fix bugs as we find them, making this flag unnecessary.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSDisplayContentsAXSupportEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssDisplayContentsAXSupportEnabled const): Deleted.

Source/WebKitLegacy/mac:

We added initial support without using this flag and will continue to
fix bugs as we find them, making this flag unnecessary.

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

(-[WebPreferences cssDisplayContentsAXSupportEnabled]): Deleted.
(-[WebPreferences setCSSDisplayContentsAXSupportEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

11:04 AM Changeset in webkit [294207] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.14.1.1

Tag WebKit-7614.1.14.1.1.

11:02 AM Changeset in webkit [294206] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.14.0.1

Tag WebKit-7614.1.14.0.1.

10:58 AM Changeset in webkit [294205] by Russell Epstein
  • 9 edits in branches/safari-7614.1.14.1-branch/Source

Versioning.

WebKit-7614.1.14.1.1

10:51 AM Changeset in webkit [294204] by Antti Koivisto
  • 13 edits in trunk/Source/WebCore

Template TextBoxPainter on line layout path
https://bugs.webkit.org/show_bug.cgi?id=240416

Reviewed by Alan Bujtas.

Painting currently goes via a line layout path agnostic iterator.
This is inefficient since we always know what sort of layout we are painting.

  • layout/integration/inline/InlineIteratorBox.cpp:

(WebCore::InlineIterator::Box::visualRect const):

  • layout/integration/inline/InlineIteratorBox.h:

(WebCore::InlineIterator::Box::containingBlock const):
(WebCore::InlineIterator::Box::visualRect const): Deleted.

  • layout/integration/inline/InlineIteratorBoxLegacyPath.h:

(WebCore::InlineIterator::BoxLegacyPath::containingBlock const):
(WebCore::InlineIterator::BoxLegacyPath::direction const):
(WebCore::InlineIterator::BoxLegacyPath::isFirstLine const):

  • layout/integration/inline/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::containingBlock const):
(WebCore::InlineIterator::BoxModernPath::direction const):
(WebCore::InlineIterator::BoxModernPath::isFirstLine const):
(WebCore::InlineIterator::BoxModernPath::renderText const):

  • layout/integration/inline/LayoutIntegrationLineLayout.cpp:

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

  • rendering/InlineBoxPainter.cpp:

(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addTextBoxVisualOverflow):

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::paint):

  • rendering/LegacyInlineTextBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):

  • rendering/TextBoxPainter.cpp:

(WebCore::LegacyTextBoxPainter::LegacyTextBoxPainter):
(WebCore::ModernTextBoxPainter::ModernTextBoxPainter):
(WebCore::TextBoxPainter<TextBoxPath>::TextBoxPainter):
(WebCore::TextBoxPainter<TextBoxPath>::~TextBoxPainter):
(WebCore::TextBoxPainter<TextBoxPath>::makeIterator const):
(WebCore::TextBoxPainter<TextBoxPath>::paint):
(WebCore::TextBoxPainter<TextBoxPath>::createMarkedTextFromSelectionInBox):
(WebCore::TextBoxPainter<TextBoxPath>::paintBackground):
(WebCore::TextBoxPainter<TextBoxPath>::paintForegroundAndDecorations):
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionBackground):
(WebCore::TextBoxPainter<TextBoxPath>::paintForeground):
(WebCore::TextBoxPainter<TextBoxPath>::createDecorationPainter):
(WebCore::TextBoxPainter<TextBoxPath>::paintBackgroundDecorations):
(WebCore::TextBoxPainter<TextBoxPath>::paintForegroundDecorations):
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionUnderlines):
(WebCore::TextBoxPainter<TextBoxPath>::textPosition):
(WebCore::TextBoxPainter<TextBoxPath>::paintCompositionUnderline):
(WebCore::TextBoxPainter<TextBoxPath>::paintPlatformDocumentMarkers):
(WebCore::LegacyTextBoxPainter::calculateUnionOfAllDocumentMarkerBounds):
(WebCore::TextBoxPainter<TextBoxPath>::paintPlatformDocumentMarker):
(WebCore::TextBoxPainter<TextBoxPath>::computePaintRect):
(WebCore::calculateDocumentMarkerBounds):
(WebCore::TextBoxPainter<TextBoxPath>::computeHaveSelection const):
(WebCore::TextBoxPainter<TextBoxPath>::fontCascade const):
(WebCore::TextBoxPainter<TextBoxPath>::textOriginFromPaintRect const):
(WebCore::TextBoxPainter<TextBoxPath>::debugTextShadow const):
(WebCore::TextBoxPainter::TextBoxPainter): Deleted.
(WebCore::TextBoxPainter::~TextBoxPainter): Deleted.
(WebCore::TextBoxPainter::paint): Deleted.
(WebCore::TextBoxPainter::createMarkedTextFromSelectionInBox): Deleted.
(WebCore::TextBoxPainter::paintBackground): Deleted.
(WebCore::TextBoxPainter::paintForegroundAndDecorations): Deleted.
(WebCore::TextBoxPainter::paintCompositionBackground): Deleted.
(WebCore::TextBoxPainter::paintForeground): Deleted.
(WebCore::TextBoxPainter::createDecorationPainter): Deleted.
(WebCore::TextBoxPainter::paintBackgroundDecorations): Deleted.
(WebCore::TextBoxPainter::paintForegroundDecorations): Deleted.
(WebCore::TextBoxPainter::paintCompositionUnderlines): Deleted.
(WebCore::textPosition): Deleted.
(WebCore::TextBoxPainter::paintCompositionUnderline): Deleted.
(WebCore::TextBoxPainter::paintPlatformDocumentMarkers): Deleted.
(WebCore::TextBoxPainter::calculateUnionOfAllDocumentMarkerBounds): Deleted.
(WebCore::TextBoxPainter::paintPlatformDocumentMarker): Deleted.
(WebCore::TextBoxPainter::computePaintRect): Deleted.
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds): Deleted.
(WebCore::TextBoxPainter::computeHaveSelection const): Deleted.
(WebCore::TextBoxPainter::fontCascade const): Deleted.
(WebCore::TextBoxPainter::textOriginFromPaintRect const): Deleted.
(WebCore::TextBoxPainter::debugTextShadow const): Deleted.

  • rendering/TextBoxPainter.h:

(WebCore::TextBoxPainter::textBox const):

10:40 AM Changeset in webkit [294203] by Russell Epstein
  • 9 edits in branches/safari-7614.1.14.0-branch/Source

Versioning.

WebKit-7614.1.14.0.1

10:25 AM Changeset in webkit [294202] by Russell Epstein
  • 1 copy in branches/safari-7614.1.14.3-branch

New branch.

10:25 AM Changeset in webkit [294201] by Russell Epstein
  • 1 copy in branches/safari-7614.1.14.2-branch

New branch.

10:25 AM Changeset in webkit [294200] by Russell Epstein
  • 1 copy in branches/safari-7614.1.14.1-branch

New branch.

10:25 AM Changeset in webkit [294199] by Russell Epstein
  • 1 copy in branches/safari-7614.1.14.0-branch

New branch.

9:56 AM Changeset in webkit [294198] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[FFC][Integration] Add "fixed sized/all default value" flex layout
https://bugs.webkit.org/show_bug.cgi?id=240414

Reviewed by Antti Koivisto.

This patch adds support for the simplest possible flex layout (fixed size, no-wrap, no-reversed etc).

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

9:26 AM Changeset in webkit [294197] by commit-queue@webkit.org
  • 6 edits in trunk/Source

WebCore::IOSurface refers to unused context size
https://bugs.webkit.org/show_bug.cgi?id=240385

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-14
Reviewed by Simon Fraser.

Source/WebCore:

Remove unused IOSurface::m_contextSize.
Context related code makes IOSurface error-prone wrt
reusing the IOSurface in the pool.

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::create):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::create):
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::ensurePlatformContext):

Source/WebKit:

Adjust after removing the IOSurface context size parameter.
All call sites passed the surface size.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

8:59 AM Changeset in webkit [294196] by Simon Fraser
  • 12 edits in trunk/Source/WebCore

Use an OptionSet<> for DisplayList::AsTextFlags
https://bugs.webkit.org/show_bug.cgi?id=240415

Reviewed by Alan Bujtas.

Simple adoption of OptionSet<DisplayList::AsTextFlag> in place of DisplayList::AsTextFlags.

  • html/HTMLCanvasElement.h:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::displayListAsText const):
(WebCore::GraphicsLayer::replayDisplayListAsText const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::displayListAsText const):
(WebCore::GraphicsLayerCA::replayDisplayListAsText const):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::shouldDumpForFlags):
(WebCore::DisplayList::DisplayList::asText const):

  • platform/graphics/displaylists/DisplayList.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::displayListAsText const):
(WebCore::RenderLayerBacking::replayDisplayListAsText const):

  • rendering/RenderLayerBacking.h:
  • rendering/TextPainter.cpp:

(WebCore::TextPainter::cachedGlyphDisplayListsForTextNodeAsText):

  • rendering/TextPainter.h:
  • testing/Internals.cpp:

(WebCore::Internals::displayListForElement):
(WebCore::Internals::replayDisplayListForElement):
(WebCore::Internals::cachedGlyphDisplayListsForTextNode):

8:24 AM Changeset in webkit [294195] by Alan Bujtas
  • 13 edits
    4 adds in trunk

[Repaint] Border ignores currentColor change when hovering
https://bugs.webkit.org/show_bug.cgi?id=240401

Reviewed by Antti Koivisto.

Source/WebCore:

This patch triggers repaint when currentColor is applied on border.

It most likely got broken at r150259 (9 years ago!) when StyleDifferenceRepaintIfText was introduced.
StyleDifferenceRepaintIfText is a "conditional repaint" diff value which only triggers repaint if the renderer has some text content.

Later, r156619 addressed some of the "content with border/outline is not painting" fallout by extending
StyleDifferenceRepaintIfText to RepaintIfTextOrBorderOrOutline.
RepaintIfTextOrBorderOrOutline turns "conditional repaints" to real repaints if, in addition to text, the content has outline/border.
However the fix was neither complete nor proper (it patched the repaint logic by changing hasImmediateNonWhitespaceTextChildOrBorderOrOutline
instead of computing the correct diff value -unconditional Repaint).

Fast-forward to 2020, r267528 ensured that content with outline is no longer a "conditional repaint".
It also made some of the code introduced in r156619 redundant (see hasImmediateNonWhitespaceTextChildOrBorderOrOutline).

This patch expands on r267528 by introducing isEquivalentForPainting for the border data. It ensures that we
compute (unconditional) Repaint diff value, if the border uses currentColor.

Tests: fast/repaint/repaint-current-color-border-on-hover.html

fast/repaint/repaint-pseudo-border-on-hover.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::hasImmediateNonWhitespaceTextChildOrBorderOrOutline const):

  • rendering/style/BorderData.h:

(WebCore::BorderData::isEquivalentForPainting const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRepaint const):

LayoutTests:

  • fast/repaint/repaint-current-color-border-on-hover-expected.txt: Added.
  • fast/repaint/repaint-current-color-border-on-hover.html: Added.
  • fast/repaint/repaint-pseudo-border-on-hover-expected.txt: Added.
  • fast/repaint/repaint-pseudo-border-on-hover.html: Added.
7:40 AM Changeset in webkit [294194] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkit-patch] Include commit messages in patches (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=240256
<rdar://problem/92982358>

Unreviewed follow-up fix.

  • Tools/Scripts/webkitpy/common/checkout/scm/git.py:

(Git.create_patch): Prefer commit specified by user.

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

6:59 AM Changeset in webkit [294193] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[FFC][Integration] Add updateFormattingRootGeometryAndInvalidate/updateRenderers
https://bugs.webkit.org/show_bug.cgi?id=240413

Reviewed by Antti Koivisto.

Make sure that the layout box/renderer geometries are all up-to-date.

  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::logicalBorder):
(WebCore::LayoutIntegration::logicalPadding):
(WebCore::LayoutIntegration::FlexLayout::updateFormattingRootGeometryAndInvalidate):
(WebCore::LayoutIntegration::FlexLayout::layout):
(WebCore::LayoutIntegration::FlexLayout::updateRenderers const):

  • layout/integration/flex/LayoutIntegrationFlexLayout.h:

(WebCore::LayoutIntegration::FlexLayout::flexBoxRenderer const):
(WebCore::LayoutIntegration::FlexLayout::flexBoxRenderer):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

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

[FFC][Integration] Do not reset the effective display value for flex root
https://bugs.webkit.org/show_bug.cgi?id=240412

Reviewed by Antti Koivisto.

Non-inline formatting roots (e.g. flex) should not need display type adjustment.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::rootBoxStyle):
(WebCore::LayoutIntegration::rootBoxFirstLineStyle):
(WebCore::LayoutIntegration::BoxTree::BoxTree):
(WebCore::LayoutIntegration::BoxTree::updateStyle):

6:19 AM Changeset in webkit [294191] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] LayoutState should track the integration formatting context type
https://bugs.webkit.org/show_bug.cgi?id=240411

Reviewed by Antti Koivisto.

Let's not use RuntimeEnabledFeatures to check wheter the integration codepath is enabled as
the new FCs (e.g. flex) don't even have such flags.

  • layout/LayoutContext.cpp:
  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::LayoutState):
(WebCore::Layout::LayoutState::formattingStateForFormattingContext const):
(WebCore::Layout::LayoutState::formattingStateForInlineFormattingContext const):
(WebCore::Layout::LayoutState::formattingStateForFlexFormattingContext const):
(WebCore::Layout::LayoutState::ensureInlineFormattingState):
(WebCore::Layout::LayoutState::ensureFlexFormattingState):
(WebCore::Layout::LayoutState::setViewportSize):
(WebCore::Layout::LayoutState::viewportSize const):
(WebCore::Layout::LayoutState::setIsIntegratedRootBoxFirstChild):
(WebCore::Layout::LayoutState::shouldIgnoreTrailingLetterSpacing const):
(WebCore::Layout::LayoutState::shouldNotSynthesizeInlineBlockBaseline const):

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::isInlineFormattingContextIntegration const):
(WebCore::Layout::LayoutState::isFlexFormattingContextIntegration const):

  • layout/floats/FloatingState.cpp:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):

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

(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):

  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::FlexLayout):

  • layout/integration/inline/LayoutIntegrationInlineContent.cpp:
  • layout/integration/inline/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::LineLayout):
(WebCore::LayoutIntegration::LineLayout::releaseCaches):

5:41 AM Changeset in webkit [294190] by commit-queue@webkit.org
  • 66 edits
    2 adds
    2 deletes in trunk/Source/WebKit

SharedBuffer should be copied and then attributed back to WebContent
https://bugs.webkit.org/show_bug.cgi?id=240223
rdar://91006582

Patch by Jean-Yves Avenard <jean-yves.avenard@apple.com> on 2022-05-14
Reviewed by Jer Noble.

Ideally, when mapping an IPCHandle we would prefer to use Copy On Write.
However, there's no support for COW with explicitly-owned memory such as
those created with VM_FLAGS_PURGABLE flag.
As such, when calling mach_vm_map with copy=true argument is set the
entire page will be copied.
It is therefore more performant to manually create a new buffer and copy
the actual content.
The memory can then be blamed on a particular process.

Rework FragmentedSharedBuffer/SharedBuffer IPC's serializer to perform
a copy, partially reverting changes made in bug 233401.

We replace the unnecessary use of SharedMemory::IPCHandle and directly
send SharedBuffer in clipboard and PDF related methods.
Rename SharedBufferCopy to SharedBufferReference to more accurately
describe what it does.

Make new use of the SharedBufferReference class, replacing the use of IPCHandle
in RemoteSourceBufferProxy and RemoteMediaResourceManager.

Rename SharedBufferReference::buffer() into
SharedBufferReference::unsafeBuffer() to give better clarity that accessing
SharedBuffer and SharedMemory should be treated with care.

SharedBuffer sent from trusted processes such as network process should
prefer the use of SharedBufferReference over directly using IPCHandle or
SharedBuffer, it makes optimisation easier and avoid duplicating code.

No observable change, covered by existing tests.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::remoteMediaResourceManager):

  • GPUProcess/media/RemoteCDMInstanceProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createDecoder):
(WebKit::RemoteImageDecoderAVFProxy::setData):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • GPUProcess/media/RemoteMediaResourceManager.cpp:

(WebKit::RemoteMediaResourceManager::RemoteMediaResourceManager):
(WebKit::RemoteMediaResourceManager::dataReceived):

  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/media/RemoteMediaResourceManager.messages.in:
  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::append):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBuffer):
(WebKit::NetworkResourceLoader::dataReceivedThroughContentFilter):

  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:

(WebKit::ServiceWorkerDownloadTask::didReceiveData):

  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.messages.in:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::loadBodyFromPreloader):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
  • Platform/IPC/SharedBufferCopy.cpp: Removed.
  • Platform/IPC/SharedBufferCopy.h: Removed.
  • Platform/IPC/SharedBufferReference.cpp: Added.

(IPC::SharedBufferReference::encode const):
(IPC::SharedBufferReference::decode):
(IPC::SharedBufferReference::unsafeBuffer const):
(IPC::SharedBufferReference::data const):
(IPC::SharedBufferReference::bufferWithOwner const):

  • Platform/IPC/SharedBufferReference.h: Added.

(IPC::SharedBufferReference::SharedBufferReference):
(IPC::SharedBufferReference::size const):
(IPC::SharedBufferReference::isEmpty const):
(IPC::SharedBufferReference::isNull const):

  • Platform/SharedMemory.cpp:

(WebKit::transferOwnershipOfMemory const):

  • Platform/SharedMemory.h:
  • Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::changeOwnershipOfMemory):
(WebKit::SharedMemory::Handle::takeOwnershipOfMemory const):
(WebKit::SharedMemory::Handle::transferOwnershipOfMemory const):
(WebKit::machProtection):
(WebKit::SharedMemory::map):

  • Scripts/process-entitlements.sh:
  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::createBackendHandle const):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeSharedBuffer):
(IPC::decodeSharedBuffer):

  • Sources.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView createPDFWithConfiguration:completionHandler:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::platformRegisterAttachment):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • UIProcess/WebPageProxy.cpp:

(WebKit::CompletionHandler<void):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::registerAttachmentIdentifierFromData):
(WebKit::WebPageProxy::platformRegisterAttachment):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didReceiveData):

  • UIProcess/gtk/WebPasteboardProxyGtk.cpp:

(WebKit::WebPasteboardProxy::readBuffer):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _wk_pageCountForPrintFormatter:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::drawToPDFiOS):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::dataSelectionForPasteboard):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferBackendHandle.h:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::setData):

  • WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:

(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):

  • WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:

(WebKit::RemoteMediaResourceProxy::dataReceived):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::append):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::registerAttachmentIdentifier):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::readBufferFromClipboard):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getContentsAsMHTMLData):
(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):
(WebKit::WebPage::getAccessibilityTreeData):
(WebKit::WebPage::drawToPDF):
(WebKit::WebPage::drawPagesToPDF):
(WebKit::WebPage::didGetLoadDecisionForIcon):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::updateAttachmentAttributes):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):
(WebKit::WebPage::performActionOnElement):
(WebKit::WebPage::drawToPDFiOS):
(WebKit::WebPage::didFinishLoadForQuickLookDocumentInMainFrame):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):

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

(WebKit::WebProcess::consumeAudioComponentRegistrations):

# Please populate the above commit message. Lines starting
# with '#' will be ignored

# 13 Tim Horton <timothy_horton@apple.com>
#
# ApplePayLogoSystemImage needlessly loads PassKit in WebKit child processes on iOS
# https://bugs.webkit.org/show_bug.cgi?id=240404
# <rdar://93070349>
#
# Reviewed by Chris Dumez.
#
# * UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
# (WebKit::ProcessLauncher::launchProcess): Adopt the WTF implementation of systemDirectoryPath.
# (WebKit::systemDirectoryPath): Moved to WTF.
#
# 13 Wenson Hsieh <Wenson Hsieh>
#
# ImageAnalysisQueue should reanalyze image elements whose image sources have changed
# https://bugs.webkit.org/show_bug.cgi?id=240371
# rdar://93175651
#
# Reviewed by Tim Horton.
#
# To aid with debugging similar issues in the future, plumb the image URL through to
# requestImageAnalysisWithIdentifier, which (if an engineering default is specified) will additionally reveal
# the URL in system logs.
#
# * Platform/cocoa/ImageAnalysisUtilities.h:
# * UIProcess/Cocoa/WebViewImpl.mm:
# (WebKit::WebViewImpl::requestTextRecognition):
# * UIProcess/ios/WKContentViewInteraction.mm:
# (-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]):
#
# 13 Aditya Keerthi <Aditya Keerthi>
#
# [iOS] Multiple visible find highlights when searching for text after beginning a "find from selection"
# https://bugs.webkit.org/show_bug.cgi?id=240393
# rdar://91441895
#
# Reviewed by Wenson Hsieh.
#
# Some WebKit clients use SPI on WKWebView to support "find from selection"
# functionality (the Cmd+E shortcut). However, to support general
# find functionality, they use new find API that uses a different codepath
# to draw highlights. Mixing use of the API and SPI can currently result
# in two highlights showing up.
#
# To fix, ensure SPI highlights are removed once the API is being used.
# The long term solution is for clients to adopt API for the
# "find from selection" functionality, but in the short term the SPI
# should remain supported.
#
# * WebProcess/WebPage/WebPage.cpp:
# (WebKit::WebPage::clearAllDecoratedFoundText):
#
# 13 Kimmo Kinnunen <kkinnunen@apple.com>
#
# IPC cannot encode, decode Ref<>, causing duplicate code
# https://bugs.webkit.org/show_bug.cgi?id=240160
#
# Reviewed by Antti Koivisto.
#
# Consider reference counted type T:
# Encoding is of signature encode(const T&)
# Decoding is of signature std::optional<Ref<T>> decode()
# This is usable for both RefPtr and Ref use-cases.
#
# Add Ref<T> encoder that is polymorphic to T.
# This way clients do not need to write encoders for
# Ref<T>, RefPtr<T>. They just need one encoder, for T.
#
# When clients do not need to write RefPtr<T>, they make less
# bugs. These will be corrected in future patches.
#
# Having Ref<T> encoders allows clients to use Vector<Ref<T>> encoding
# via Vector<U> encoder, and they would not need to duplicate that
# logic, making less bugs. These will be corrected in future patches.
#
# Remove most IPC::ArgumentCoder<Ref<..>> in favor of IPC::ArgumentCoder<..>.
# In the cases where removal was done, remove also redundant
# IPC::ArgumentCoder<RefPtr<..>>.
#
# * Platform/IPC/ArgumentCoders.h:
# (IPC::ArgumentCoder<RefPtr<T>>::decode):
# (IPC::ArgumentCoder<Ref<T>>::encode):
# (IPC::ArgumentCoder<Ref<T>>::decode):
# * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
# (IPC::ArgumentCoder<WebCore::Font>::encodePlatformData):
# (IPC::ArgumentCoder<WebCore::Font>::decodePlatformData):
# * Shared/WebCoreArgumentCoders.cpp:
# (IPC::ArgumentCoder<WebCore::Font>::encode):
# (IPC::ArgumentCoder<Font>::decode):
# (IPC::ArgumentCoder<SystemImage>::encode):
# (IPC::ArgumentCoder<SystemImage>::decode):
# * Shared/WebCoreArgumentCoders.h:
# * Shared/playstation/WebCoreArgumentCodersPlayStation.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
# * Shared/soup/WebCoreArgumentCodersSoup.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
# * Shared/win/WebCoreArgumentCodersWin.cpp:
# (IPC::ArgumentCoder<Font>::encodePlatformData):
# (IPC::ArgumentCoder<Font>::decodePlatformData):
#
# 13 Tim Horton <timothy_horton@apple.com>
#
# Add UI-side layers for optionally indicating interaction regions
# https://bugs.webkit.org/show_bug.cgi?id=240372
# <rdar://problem/87170289>
#
# Reviewed by Dean Jackson.
#
# * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
# (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
# (WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
# Allow RemoteLayerTreeInteractionRegionLayers to add and maintain layers for interaction regions.
#
# * SourcesCocoa.txt:
# * UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.h: Added.
# * UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: Added.
# (configureLayerForInteractionRegion):
# (WebKit::interactionRegionForLayer):
# (WebKit::isInteractionRegionLayer):
# (WebKit::setInteractionRegion):
# Box WebCore::InteractionRegion in a Objective-C object and store it on the layer.
# Use this as a key to indicate that a given layer is an interaction region.
#
# (WebKit::appendInteractionRegionLayersForLayer):
# Make sure that interaction region layers are always at the end of the layer's sublayers array.
#
# (WebKit::updateLayersForInteractionRegions):
# Add new layers for interaction regions.
# Maintain the same layer for regions that cover the same area.
# Add a green wash if the default WKInteractionRegionDebugFill is set.
#
# * WebKit.xcodeproj/project.pbxproj:
#
# 13 Simon Fraser <Simon Fraser>
#
# Simplify the usage of DrawGlyphsRecorder
# https://bugs.webkit.org/show_bug.cgi?id=240363
#
# Reviewed by Myles Maxfield.
#
# Move the DeconstructDrawGlyphs switch from inside DrawGlyphsRecorder to
# DisplayList::Recorder, so that DrawGlyphsRecorder is only ever used when deconstructing
# glyphs.
#
# Also, ensure that the only time that glyph deconstruction is enabled is when
# recording display lists via RemoteDisplayListRecorderProxy. There's no reason for
# paintAttachmentText() to need glyph deconstruction.
#
# This is a small perf improvement on the MotionMark Design subtest.
#
# * WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
# (WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
# (WebKit::m_renderingBackend):
# * WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
#
# it takes from the XPC message is sent until the XPC reply is received. Add reporting when this happens

# On branch bz/240223
# Your branch is ahead of 'origin/main' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git restore --staged <file>..." to unstage)
# modified: Source/WebKit/ChangeLog
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# 0001-SharedBuffer-should-be-copied-and-then-attributed-ba.patch
#

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

12:21 AM Changeset in webkit [294189] by Chris Dumez
  • 1 edit in trunk/Source/WTF/wtf/text/WTFString.h

Drop unused appendNumber(Vector<CharacterType>& vector, unsigned char) function
https://bugs.webkit.org/show_bug.cgi?id=240387

Reviewed by Darin Adler.

  • Source/WTF/wtf/text/WTFString.h:

(WTF::appendNumber): Deleted.

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

May 13, 2022:

11:14 PM Changeset in webkit [294188] by timothy_horton@apple.com
  • 7 edits in trunk/Source

ApplePayLogoSystemImage needlessly loads PassKit in WebKit child processes on iOS
https://bugs.webkit.org/show_bug.cgi?id=240404
<rdar://93070349>

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/applepay/ApplePayLogoSystemImage.mm:

(WebCore::passKitBundle):
Adopt systemDirectoryPath instead of unnecessarily loading PassKit just
to find its bundle path (the previous implementation made use of the fact
that dlopen internally adjusts the search path to look in the simulator
root, but also resulted in wasted time loading and initializing PassKit
and its dependencies).

Source/WebKit:

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess): Adopt the WTF implementation of systemDirectoryPath.
(WebKit::systemDirectoryPath): Moved to WTF.

Source/WTF:

  • wtf/FileSystem.h:
  • wtf/cocoa/FileSystemCocoa.mm:

(WTF::FileSystemImpl::systemDirectoryPath):
Move the implementation of systemDirectoryPath() from WebKit2.

systemDirectoryPath() provides the correct path to /System
in the simulator, for consumption by APIs (like NSURL) that do not
adjust to the simulator-rooted path themselves.

10:29 PM Changeset in webkit [294187] by ntim@apple.com
  • 11 edits
    2 deletes in trunk

[css-ui] Unexpose appearance property values already handled by appearance: auto
https://bugs.webkit.org/show_bug.cgi?id=240384

Reviewed by Aditya Keerthi.

These are only used internally, and are handled by appearance: auto in the UA sheets:

  • caps-lock-indicator
  • color-well
  • list-button
  • searchfield-decoration
  • searchfield-results-decoration
  • searchfield-results-button
  • searchfield-cancel-button

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • platform/ThemeTypes.h:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • fast/css/appearance-caps-lock-indicator-expected.txt: Removed.
  • fast/css/appearance-caps-lock-indicator.html: Removed.
9:37 PM Changeset in webkit [294186] by Tyler Wilcock
  • 8 edits
    2 adds in trunk

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::currentModalNode):

  • accessibility/AXObjectCache.h:

Add m_isRetrievingCurrentModalNode.
(WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::accessibilityIsIgnored const):
Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.
8:20 PM Changeset in webkit [294185] by Alan Coon
  • 9 edits in branches/safari-7614.1.12-branch/Source

Versioning.

WebKit-7614.1.12.4

6:42 PM Changeset in webkit [294184] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkit-patch] Apply patches commit messages
https://bugs.webkit.org/show_bug.cgi?id=240402
<rdar://93272455>

Reviewed by Dewei Zhu.

  • Tools/Scripts/webkitpy/common/checkout/checkout.py:

(Checkout):
(filter_patch_content): Insert reviewer to git patch as we're applying it.
(apply_patch): If a patch has a commit subject, it contains commit messages
and we should apply those commit messages.

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

4:37 PM Changeset in webkit [294183] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkit-patch] Include commit messages in patches
https://bugs.webkit.org/show_bug.cgi?id=240256
<rdar://92982358>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/common/checkout/checkout.py:

(Checkout.commit_message_for_this_commit): If no changelogs are modified, prefer
the commit message.

  • Scripts/webkitpy/common/checkout/diff_parser.py:

(DiffParser._parse_into_diff_files): Ignore commit message headers.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.create_patch): Prefer git format-patch when local commits are available.
(Git.rev_parse): Determine hash for ref.
(Git.format_patch): Deleted.
(Git.request_pull): Deleted.

  • Scripts/webkitpy/tool/steps/abstractstep.py:

(AbstractStep): Keep record of local commit.

  • Scripts/webkitpy/tool/steps/editchangelog.py:

(EditChangeLog.run): Do not edit changelog if no changelog is present.

  • Scripts/webkitpy/tool/steps/preparechangelog.py:

(PrepareChangeLog.run): Do not prepare changelog if local commit is present.

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

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

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Unreviewed correction based on a comment from Darin.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):

3:56 PM Changeset in webkit [294181] by Ben Nham
  • 2 edits in trunk/Source/WTF

Enforce foreground WebContent memory limit on macOS
https://bugs.webkit.org/show_bug.cgi?id=240397

Reviewed by Chris Dumez.

We removed the foreground memory limit for WebContent on macOS in r272046. But based on some
bug reports that we've seen, it seems like we need to restore some limit to prevent bad user
outcomes when a misbehaving process has runaway memory usage.

This patch adds a foreground memory limit of 8GB or 16GB depending on RAM size. This matches
the limits set by other browsers for their content process.

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillOfActiveProcess):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):

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

3:28 PM Changeset in webkit [294180] by mark.lam@apple.com
  • 28 edits in trunk/Source/JavaScriptCore

Enhance the ARM64Disassembler to print pc indices and better branch target labels.
https://bugs.webkit.org/show_bug.cgi?id=240370

Reviewed by Saam Barati.

Disassemblies used to look like this:

0x10e480ff8: ldurb w17, [x0, #7]
0x10e480ffc: cmp w17, #0
0x10e481000: b.hi 0x10e48103c
0x10e481004: stur x0, [fp, #-72]
...
0x10e481040: movk x3, #0xfffe, lsl #48
0x10e481044: b 0x10e4814f4
0x10e481048: nop

With this patch, it will now look like this:

<748> 0x10e120aec: ldurb w17, [x0, #7]
<752> 0x10e120af0: cmp w17, #0
<756> 0x10e120af4: b.hi 0x10e120b30 -> <816>
<760> 0x10e120af8: stur x0, [fp, #-80]
...
<820> 0x10e120b34: movk x3, #0xfffe, lsl #48
<824> 0x10e120b38: b 0x10e120fc8 -> <1992>
<828> 0x10e120b3c: nop

  1. Each instruction pc is now prefixed with a pc index i.e. the offset of the pc address from the start of the compilation unit e.g. <756>.
  1. Relative branches now show the branch target as a pc index (effectively, an internal label in this compilation unit) in addition to the pc address e.g. the "-> <816>" in:

<756> 0x10e120af4: b.hi 0x10e120b30 -> <816>

Also fixed a formatting bug where the space between relative branch instructions
and their target pc was short 2 spaces.

  1. If the relative branch target is a known thunk, the disassembler will now print the thunk label e.g.

<828> 0x10e12033c: bl 0x10e0f0a00 -> <thunk: get_from_scope thunk>

<1476> 0x10e120dc4: cbnz x16, 0x10e104100 -> <thunk: handleExceptionWithCallFrameRollback>
<2368> 0x10e121140: b 0x10e10c000 -> <thunk: DFG OSR exit generation thunk>

Introduced a FINALIZE_THUNK macro that will be used instead of FINALIZE_CODE in
thunk generators. By doing so, thunk labels will automatically be registered
with the disassembler, and will be used for the above look up.

Thunk label registration is only done if disassembly is enabled.

  1. If the branch target is neither an internal label nor a thunk, then the disassembler will print some useful info about it to the best of its knowledge e.g.

<168> 0x10e1002e8: b 0x10e120b60 -> <JIT PC>
<168> 0x10e1002e8: b 0x10e120b60 -> <LLInt PC>
<168> 0x10e1002e8: b 0x10e120b60 -> <unknown>

  1. The disassemble() function now takes 2 additional arguments: codeStart, and codeEnd. These are needed so that the disassembler can compute the pc index for each instruction, as well as determine if a branch target is internal to this compilation unit, or pointing out of it.

This feature is currently only supported for the ARM64 disassembler.

Printing of JIT operation labels (via movz + movk + indirect branch) is not yet
supported.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::finalizeCodeWithDisassemblyImpl):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::setIsThunk):

  • b3/air/AirDisassembler.cpp:

(JSC::B3::Air::Disassembler::dump):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::dumpDisassembly):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):

  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64DOpcode::appendPCRelativeOffset):
(JSC::ARM64Disassembler::A64DOpcodeConditionalBranchImmediate::format):

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcode::A64DOpcode):
(JSC::ARM64Disassembler::A64DOpcode::appendPCRelativeOffset): Deleted.

  • disassembler/ARM64Disassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/CapstoneDisassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/Disassembler.cpp:

(JSC::disassemble):
(JSC::disassembleAsynchronously):
(JSC::ensureThunkLabelMap):
(JSC::registerThunkLabel):
(JSC::labelForThunk):

  • disassembler/Disassembler.h:

(JSC::tryToDisassemble):

  • disassembler/RISCV64Disassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/X86Disassembler.cpp:

(JSC::tryToDisassemble):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/JIT.cpp:

(JSC::JIT::consistencyCheckGenerator):

  • jit/JITCall.cpp:

(JSC::JIT::returnFromBaselineGenerator):

  • jit/JITDisassembler.cpp:

(JSC::JITDisassembler::dump):
(JSC::JITDisassembler::dumpDisassembly):

  • jit/JITDisassembler.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::valueIsFalseyGenerator):
(JSC::JIT::valueIsTruthyGenerator):
(JSC::JIT::op_throw_handlerGenerator):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::op_check_traps_handlerGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::slow_op_get_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_with_this_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::generateOpResolveScopeThunk):
(JSC::JIT::slow_op_resolve_scopeGenerator):
(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::slow_op_put_to_scopeGenerator):

  • jit/SlowPathCall.cpp:

(JSC::JITSlowPathCall::generateThunk):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::finalize):

  • jit/ThunkGenerator.h:
  • jit/ThunkGenerators.cpp:

(JSC::handleExceptionGenerator):
(JSC::handleExceptionWithCallFrameRollbackGenerator):
(JSC::popThunkStackPreservesAndHandleExceptionGenerator):
(JSC::checkExceptionGenerator):
(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::unreachableGenerator):
(JSC::stringGetByValGenerator):
(JSC::boundFunctionCallGenerator):
(JSC::remoteFunctionCallGenerator):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):
(JSC::LLInt::generateThunkWithJumpToPrologue):
(JSC::LLInt::generateThunkWithJumpToLLIntReturnPoint):
(JSC::LLInt::createJSGateThunk):
(JSC::LLInt::createWasmGateThunk):
(JSC::LLInt::createTailCallGate):
(JSC::LLInt::tagGateThunk):
(JSC::LLInt::untagGateThunk):

  • yarr/YarrDisassembler.cpp:

(JSC::Yarr::YarrDisassembler::dump):
(JSC::Yarr::YarrDisassembler::dumpDisassembly):

  • yarr/YarrDisassembler.h:
3:20 PM Changeset in webkit [294179] by Wenson Hsieh
  • 9 edits in trunk

ImageAnalysisQueue should reanalyze image elements whose image sources have changed
https://bugs.webkit.org/show_bug.cgi?id=240371
rdar://93175651

Reviewed by Tim Horton.

Currently, ImageAnalysisQueue maintains the set of all image elements that have been queued for analysis, and
avoids re-queueing such image elements. However, on some websites, this leads to stale analysis results being
shown in certain image elements that have changed image sources (and subsequently finished loaded the new image).
To address this, we introduce a mechanism to remember the latest image URL for image elements that have been
analyzed using the analysis queue; we only avoid reanalyzing these same image elements if the source URL is the
same as the source URL when we last analyzed it.

This allows us (for instance) to handle the scenario where a single image element periodically cycles between
different src attribute values.

Test: ImageAnalysisTests.AnalyzeImageAfterChangingSource

  • page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::enqueueIfNeeded):

Also avoid trying to prematurely analyze images whose cached images only contain the null image. This caused
empty results to sometimes be incorrectly cached for some image elements, if analysis is triggered too early.

(WebCore::ImageAnalysisQueue::resumeProcessing):

  • page/ImageAnalysisQueue.h:

To aid with debugging similar issues in the future, plumb the image URL through to
requestImageAnalysisWithIdentifier, which (if an engineering default is specified) will additionally reveal
the URL in system logs.

  • Platform/cocoa/ImageAnalysisUtilities.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::requestTextRecognition):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]):

Add an API test to exercise the scenario by verifying that the same image element is reanalyzed after setting
the src to a different image URL.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::TEST):

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

3:11 PM Changeset in webkit [294178] by Lauro Moura
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Add Breakpad to SDK
https://bugs.webkit.org/show_bug.cgi?id=240367

Reviewed by Philippe Normand.

To be used to generate minidumps of crashes.

Based on original bst file by Adrian Perez de Castro.

  • elements/sdk-platform.bst:
  • elements/sdk/breakpad.bst: Added.
3:02 PM Changeset in webkit [294177] by Adrian Perez de Castro
  • 5 edits in trunk/Source

Non-unified build broken in debug mode
https://bugs.webkit.org/show_bug.cgi?id=240378

Unreviewed non-unified build fixes.

  • heap/StructureAlignedMemoryAllocator.cpp: Include <sys/mman.h> if needed.

Non-unified build broken in debug mode
https://bugs.webkit.org/show_bug.cgi?id=240378

Unreviewed non-unified build fixes.

  • contentextensions/ContentExtensionCompiler.cpp: Add missing wtf/CrossThreadCopier.h header.
  • workers/service/ServiceWorkerClients.cpp: Add missing Logging.h header.

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

2:55 PM Changeset in webkit [294176] by Ross Kirsling
  • 6 edits in trunk

TemporalPlainTime::toTemporalTimeRecord shouldn't require all properties to be provided
https://bugs.webkit.org/show_bug.cgi?id=240394

Reviewed by Yusuke Suzuki and Darin Adler.

Following the spec correction of https://github.com/tc39/proposal-temporal/pull/1862, this patch
fixes our Temporal.PlainTime implementation to require that *one* property be provided, not *all* of them.

  • stress/temporal-plaintime.js:
  • test262/expectations.yaml: Mark 32 test cases as passing.
  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::fromDurationLike):

  • runtime/TemporalPlainTime.cpp:

(JSC::toTemporalTimeRecord):

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

2:43 PM Changeset in webkit [294175] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[iOS] Multiple visible find highlights when searching for text after beginning a "find from selection"
https://bugs.webkit.org/show_bug.cgi?id=240393
rdar://91441895

Reviewed by Wenson Hsieh.

Some WebKit clients use SPI on WKWebView to support "find from selection"
functionality (the Cmd+E shortcut). However, to support general
find functionality, they use new find API that uses a different codepath
to draw highlights. Mixing use of the API and SPI can currently result
in two highlights showing up.

To fix, ensure SPI highlights are removed once the API is being used.
The long term solution is for clients to adopt API for the
"find from selection" functionality, but in the short term the SPI
should remain supported.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::clearAllDecoratedFoundText):

2:40 PM Changeset in webkit [294174] by achristensen@apple.com
  • 2 edits in trunk/Tools

Disable MediaLoading.CaptivePortalHLS API test
https://bugs.webkit.org/show_bug.cgi?id=239859

It is always timing out.
Disable it to speed up EWS.

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

2:39 PM Changeset in webkit [294173] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14

Tag WebKit-7614.1.14.

2:36 PM Changeset in webkit [294172] by Chris Dumez
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm

Regression(r293803) ProcessSwap.MediaTypeAfterSwap and ProcessSwap.PageZoomLevelAfterSwap are failing
https://bugs.webkit.org/show_bug.cgi?id=240399

Reviewed by Alex Christensen.

Since r293803, WebKit's default WebContent process crash handler only reloads WebViews that are
visible. However, those 2 API tests were relying on the old behavior. To address the issue, use
a custom process termination handler which reloads the view.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONNavigationDelegate webViewWebContentProcessDidTerminate:]):

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

2:12 PM Changeset in webkit [294171] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

Use None for architecture when dump-class-layout does not have -a option
https://bugs.webkit.org/show_bug.cgi?id=240395

Reviewed by Saam Barati and Simon Fraser.

We can pass None to architecture, then SBDebugger::CreateTargetWithFileAndArch
will call CreateTarget with nullptr architecture string. Then, TargetList constructs
ArchSpec based on currently selected platform automatically and it covers most of cases.
I tried it, and it worked with watchOS, macOS, iOS so far.
So, we should just pass None to CreateTargetWithFileAndArch by default.

  • Tools/lldb/lldb_dump_class_layout.py:

(LLDBDebuggerInstance.init):
(LLDBDebuggerInstance.del):
(LLDBDebuggerInstance._get_first_file_architecture): Deleted.

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

12:38 PM Changeset in webkit [294170] by ntim@apple.com
  • 14 edits
    1 delete in trunk

[css-ui] Remove caret/progress-bar-value/listitem values from appearance property
https://bugs.webkit.org/show_bug.cgi?id=240390

Reviewed by Aditya Keerthi.

LayoutTests/imported/w3c:

They're basically unimplemented.

  • web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • platform/ThemeTypes.h:

LayoutTests:

They're basically unimplemented.

Remove WPE expectations which were very out-of-date.

  • fast/css/appearance-with-pseudo-elements-expected.html:
  • fast/css/appearance-with-pseudo-elements-in-quirks-mode-expected.html:
  • fast/css/appearance-with-pseudo-elements-in-quirks-mode.html:
  • fast/css/appearance-with-pseudo-elements.html:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt: Removed.
12:16 PM Changeset in webkit [294169] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

IPC cannot encode, decode Ref<>, causing duplicate code
https://bugs.webkit.org/show_bug.cgi?id=240160

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

Consider reference counted type T:
Encoding is of signature encode(const T&)
Decoding is of signature std::optional<Ref<T>> decode()
This is usable for both RefPtr and Ref use-cases.

Add Ref<T> encoder that is polymorphic to T.
This way clients do not need to write encoders for
Ref<T>, RefPtr<T>. They just need one encoder, for T.

When clients do not need to write RefPtr<T>, they make less
bugs. These will be corrected in future patches.

Having Ref<T> encoders allows clients to use Vector<Ref<T>> encoding
via Vector<U> encoder, and they would not need to duplicate that
logic, making less bugs. These will be corrected in future patches.

Remove most IPC::ArgumentCoder<Ref<..>> in favor of IPC::ArgumentCoder<..>.
In the cases where removal was done, remove also redundant
IPC::ArgumentCoder<RefPtr<..>>.

  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<RefPtr<T>>::decode):
(IPC::ArgumentCoder<Ref<T>>::encode):
(IPC::ArgumentCoder<Ref<T>>::decode):

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

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

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WebCore::Font>::encode):
(IPC::ArgumentCoder<Font>::decode):
(IPC::ArgumentCoder<SystemImage>::encode):
(IPC::ArgumentCoder<SystemImage>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/playstation/WebCoreArgumentCodersPlayStation.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

  • Shared/win/WebCoreArgumentCodersWin.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

11:25 AM Changeset in webkit [294168] by Russell Epstein
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebCore

Cherry-pick r294135. rdar://problem/93201070

[WebAuthn] Remove document focus requirement for conditional mediation requests
https://bugs.webkit.org/show_bug.cgi?id=240361
rdar://problem/93201070

Reviewed by Brent Fulgham.

This is necessary so conditional mediation requests work when you open a page in
a new tab. Conditional mediation requests do not support security keys and the
request will be aborted if conditional mediation is not available.

  • Modules/credentialmanagement/CredentialsContainer.cpp: (WebCore::CredentialsContainer::get):

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

11:22 AM Changeset in webkit [294167] by Andres Gonzalez
  • 9 edits in trunk/Source/WebCore

Move handling of active descendant changed notifications out of AccessibilityRenderObject.
https://bugs.webkit.org/show_bug.cgi?id=240357
<rdar://problem/93196901>

Reviewed by Chris Fleizach.

No change in functionality.

AXObjectCache::handleActiveDescendantChanged now handles this
notifications as appropriate. This makes the code cleaner and more
straightforward. More importantly this change is necessary for the
refactoring of relationships implementation.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleActiveDescendantChanged):
(WebCore::AXObjectCache::handleAttributeChange):

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::handleActiveDescendantChanged):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::findRelatedObjectInAncestry):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::activeDescendant const):
(WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant const): Deleted.
(WebCore::AccessibilityRenderObject::targetElementForActiveDescendant const): Deleted.
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged): Deleted.

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

(WebCore::AXIsolatedObject::handleActiveDescendantChanged): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
11:06 AM Changeset in webkit [294166] by commit-queue@webkit.org
  • 26 edits
    8 adds in trunk

Web Inspector: [Meta] Implement Timelines Film Strip
https://bugs.webkit.org/show_bug.cgi?id=239350

Patch by Anjali Kumar <anjalik_22@apple.com> on 2022-05-13
Reviewed by Devin Rousso and Patrick Angle.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:

Source/WebCore:

Test: inspector/timeline/timeline-event-screenshots.html

  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createScreenshotData):

  • inspector/TimelineRecordFactory.h:
  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::didComposite):
(WebCore::InspectorTimelineAgent::willPaint):
(WebCore::InspectorTimelineAgent::didPaint):
(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::captureScreenshot):
(WebCore::toProtocol):
(WebCore::InspectorTimelineAgent::createRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):

  • inspector/agents/InspectorTimelineAgent.h:

Source/WebInspectorUI:

Add the ability to see screenshots taken of the viewport within the Timelines tab. The purpose of the
screenshots is to provide more context to the other data presented within the Timelines tab, so that
developers can improve the efficiency of their page loading times. They can see what is painting on their
pages in addition to when the paints are occuring.

The screenshots presented are taken immediately after each composite. They are designed to be layered
on top of one another as opposed to being presented in a non-overlapping fashion in order to provide developers
with the exact screenshot that occured during a particular point in time on the timeline. This allows developers
to zoom in and pinpoint the exact moment the page looked like that particularly rendered screenshot.

When a screenshot is clicked on, the details section opens up to an enlarged view of that particular image.
Developers can utilize this to view each screenshot in greater detail.

This feature is named "Screenshots" (one word), as in the UI we currently have existing strings for "Capture
Screenshot" and "Could not capture screenshot".

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

(WI.TimelineManager.defaultTimelineTypes):
(WI.TimelineManager.prototype._processRecord):
(WI.TimelineManager.prototype._updateAutoCaptureInstruments):

  • UserInterface/Images/IdentifierIcons.svg:
  • UserInterface/Main.html:
  • UserInterface/Models/Instrument.js:

(WI.Instrument.createForTimelineType):

  • UserInterface/Models/ScreenshotsInstrument.js: Added.

(WI.ScreenshotsInstrument):
(WI.ScreenshotsInstrument.supported):
(WI.ScreenshotsInstrument.prototype.get timelineRecordType):

  • UserInterface/Models/ScreenshotsTimelineRecord.js: Added.

(WI.ScreenshotsTimelineRecord):
(WI.ScreenshotsTimelineRecord.async fromJSON):
(WI.ScreenshotsTimelineRecord.prototype.toJSON):
(WI.ScreenshotsTimelineRecord.prototype.get imageData):
(WI.ScreenshotsTimelineRecord.prototype.get width):
(WI.ScreenshotsTimelineRecord.prototype.get height):

  • UserInterface/Models/TimelineRecord.js:

(WI.TimelineRecord.async fromJSON):

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.addRecord):

  • UserInterface/Test.html:
  • UserInterface/Views/ContentView.js:

(WI.ContentView.createFromRepresentedObject):

  • UserInterface/Views/ScreenshotsTimelineOverviewGraph.css: Added.

(body .sidebar > .panel.navigation.timeline > .timelines-content li.item.screenshots,):
(.timeline-overview-graph.screenshots > img):
(.timeline-overview-graph.screenshots > img.selected):

  • UserInterface/Views/ScreenshotsTimelineOverviewGraph.js: Added.

(WI.ScreenshotsTimelineOverviewGraph):
(WI.ScreenshotsTimelineOverviewGraph.prototype.get height):
(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):
(WI.ScreenshotsTimelineOverviewGraph.prototype.updateSelectedRecord):
(WI.ScreenshotsTimelineOverviewGraph.prototype._visibleRecords):

  • UserInterface/Views/ScreenshotsTimelineView.css: Added.

(.timeline-view.screenshots):
(.timeline-view.screenshots > img):
(.timeline-view.screenshots > img.selected):

  • UserInterface/Views/ScreenshotsTimelineView.js: Added.

(WI.ScreenshotsTimelineView):
(WI.ScreenshotsTimelineView.prototype.reset):
(WI.ScreenshotsTimelineView.prototype.clear):
(WI.ScreenshotsTimelineView.prototype.get showsFilterBar):
(WI.ScreenshotsTimelineView.prototype.layout):
(WI.ScreenshotsTimelineView.prototype.selectRecord):
(WI.ScreenshotsTimelineView.prototype._selectTimelineRecord):
(WI.ScreenshotsTimelineView.prototype._visibleRecords):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/TimelineIcons.css:

(.screenshots-icon .icon):
(@media (prefers-color-scheme: dark) .screenshots-icon .icon):

  • UserInterface/Views/TimelineOverviewGraph.js:

(WI.TimelineOverviewGraph.createForTimeline):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.displayNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForTimelineType):
(WI.TimelineTabContentView.genericClassNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForRecord):
(WI.TimelineTabContentView.displayNameForRecord):

LayoutTests:

  • inspector/timeline/resources/timeline-event-utilities.js:

(TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithScript):
(TestPage.registerInitializer):

  • inspector/timeline/timeline-event-screenshots-expected.txt: Added.
  • inspector/timeline/timeline-event-screenshots.html: Added.
  • inspector/timeline/timeline-recording-expected.txt:
11:04 AM Changeset in webkit [294165] by commit-queue@webkit.org
  • 2 edits in trunk

Add self to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240389

Patch by Geza Lore <Geza Lore> on 2022-05-13
Reviewed by Jonathan Bedard.

  • metadata/contributors.json:
10:58 AM Changeset in webkit [294164] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

-Wstringop-overflow warning in DocumentWriter.cpp
https://bugs.webkit.org/show_bug.cgi?id=239340

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WebCore/loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::end):

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

10:25 AM Changeset in webkit [294163] by Ziran Sun
  • 4 edits in trunk

input.showPicker() should throw when input is readonly/disabled
https://bugs.webkit.org/show_bug.cgi?id=240302

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html: Added.

Source/WebCore:

When input is readonly or disabled, input.showPicker() should throw InvalidStateError.

Test: imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::showPicker):

10:21 AM Changeset in webkit [294162] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

-Wreturn-type warning in PathOperation.cpp
https://bugs.webkit.org/show_bug.cgi?id=240383

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WebCore/rendering/PathOperation.cpp:

(WebCore::RayPathOperation::lengthForPath const):

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

10:05 AM Changeset in webkit [294161] by Jonathan Bedard
  • 2 edits in trunk/Websites/bugs.webkit.org

[PrettyPatch] Support commit messages
https://bugs.webkit.org/show_bug.cgi?id=240386
<rdar://problem/93248835>

Rubber-stamped by Aakash Jain.

  • Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:

(PrettyPatch.message_header): Match a commit message header.
(PrettyPatch.message_footer): Match a commit message footer.
(PrettyPatch.MESSAGE_HEADER_FORMATS): List of commit message headers.
(PrettyPatch.BUG_URL_RE): Regex to match bug urls in subject.
(PrettyPatch.MESSAGE_FOOTER_FORMATS): List of commit messagae footers.
(PrettyPatch.parse): Treat commit messages a new file named 'COMMIT_MESSAGE'.

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

9:31 AM Changeset in webkit [294160] by timothy_horton@apple.com
  • 17 edits
    2 adds in trunk/Source

Add UI-side layers for optionally indicating interaction regions
https://bugs.webkit.org/show_bug.cgi?id=240372
<rdar://problem/87170289>

Reviewed by Dean Jackson.

Source/WebCore:

  • page/DebugPageOverlays.cpp:

(WebCore::pathsForRegion):
Move inline rect inflation into InteractionRegion so that all clients get it.

  • page/Page.cpp:

(WebCore::Page::shouldBuildInteractionRegions const):

  • page/Page.h:
  • page/Frame.cpp:

(WebCore::Frame::invalidateContentEventRegionsIfNeeded):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::maintainsEventRegion const):
(WebCore::RenderLayerBacking::updateEventRegion):
If the ENABLE() and setting are both enabled, update event regions
due to possible interaction region changes. We could make this more
conservative later, but chances are high that most layers include
interaction regions.

For now, compute interaction regions only for the root layer.
In a future patch, we will adopt the normal fake paint mechanism
and maintain them on the layer that owns them.

  • page/InteractionRegion.cpp:

(WebCore::regionForElement):
Move inline rect inflation into InteractionRegion so that all clients get it.
Limit interaction rects to half of the viewport. Ignore regions that are larger.

  • page/InteractionRegion.h:

(WebCore::operator==): Added.
(WebCore::InteractionRegion::encode const):
(WebCore::InteractionRegion::decode):
Remove the isInline bit, since we only used it for rect inflation.

  • rendering/EventRegion.cpp:

(WebCore::EventRegion::operator== const):
(WebCore::EventRegion::translate):
(WebCore::EventRegion::uniteInteractionRegions):
(WebCore::EventRegion::computeInteractionRegions):

  • rendering/EventRegion.h:

(WebCore::EventRegion::interactionRegions const):
(WebCore::EventRegion::encode const):
(WebCore::EventRegion::decode):
Store interaction regions on EventRegion.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
Allow RemoteLayerTreeInteractionRegionLayers to add and maintain layers for interaction regions.

  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.h: Added.
  • UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: Added.

(configureLayerForInteractionRegion):
(WebKit::interactionRegionForLayer):
(WebKit::isInteractionRegionLayer):
(WebKit::setInteractionRegion):
Box WebCore::InteractionRegion in a Objective-C object and store it on the layer.
Use this as a key to indicate that a given layer is an interaction region.

(WebKit::appendInteractionRegionLayersForLayer):
Make sure that interaction region layers are always at the end of the layer's sublayers array.

(WebKit::updateLayersForInteractionRegions):
Add new layers for interaction regions.
Maintain the same layer for regions that cover the same area.
Add a green wash if the default WKInteractionRegionDebugFill is set.

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add a preference to toggle interaction region layers.

9:05 AM Changeset in webkit [294159] by Russell Epstein
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.14

9:02 AM Changeset in webkit [294158] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r294113.
https://bugs.webkit.org/show_bug.cgi?id=240381

This bug needs to be addressed using a different approach

Reverted changeset:

"Mail compose: right clicking an image attachment selects it"
https://bugs.webkit.org/show_bug.cgi?id=240315
https://commits.webkit.org/r294113

7:54 AM Changeset in webkit [294157] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

False positive warning when building RefCounter test with GCC 12
https://bugs.webkit.org/show_bug.cgi?id=239338

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WTF/wtf/RefCounter.h:

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

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

7:38 AM Changeset in webkit [294156] by ntim@apple.com
  • 3 edits
    1 copy
    11 deletes in trunk/LayoutTests

Clean up some html/semantics/forms/ test expectations
https://bugs.webkit.org/show_bug.cgi?id=240344

Unreviewed test gardening.

Combine multiple files to reduce the number of platform specific expectations.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt.
  • web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/win/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
4:41 AM Changeset in webkit [294155] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Remove leftover for WINDOWS support in GraphicsContextGLGBM
https://bugs.webkit.org/show_bug.cgi?id=240314

GBM is a Linux technology we would need another sharing buffers
technology to add support in Windows. This is leftover from the
code copied originally.

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-05-13
Reviewed by Žan Doberšek.

No new tests, we are just removing some compilation option.

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLGBM::platformInitializeContext):

4:30 AM Changeset in webkit [294154] by Lauro Moura
  • 5 edits in trunk/Source

Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=240369

Source/JavaScriptCore:

  • runtime/DateConversion.cpp:

Source/WebCore:

  • Modules/highlight/HighlightRegister.h:
  • rendering/TextPainter.h:
2:25 AM Changeset in webkit [294153] by Ziran Sun
  • 60 edits
    1 copy
    1 move
    23 adds
    10 deletes in trunk/LayoutTests

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

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

Upstream commit: https://github.com/web-platform-tests/wpt/commit/23e7602b7784c758397308183f414bb99e0c622b

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/forms/beforeinput.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/beforeinput.tentative.html: Added.
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing.html:
  • web-platform-tests/html/semantics/forms/constraints/support/validator.js:

(validator.run_test):
(validator.test_support_type): Deleted.

  • web-platform-tests/html/semantics/forms/form-submission-0/enctypes-helper.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl.html:
  • web-platform-tests/html/semantics/forms/form-submission-0/multipart-formdata.window.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/resources/getactionurl-iframe.html: Added.
  • web-platform-tests/html/semantics/forms/form-submission-0/resources/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window.js:
  • web-platform-tests/html/semantics/forms/textfieldselection/select-event-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/select-event.html: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/cloning-steps-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/cloning-steps.html:
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local.html:
  • web-platform-tests/html/semantics/forms/the-input-element/input-untrusted-key-event-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-untrusted-key-event.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-whitespace-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-whitespace.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/invalid-datalist-options-crash.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/large-step-crash.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html:
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-user-gesture-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-user-gesture.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker.html.
  • web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html:
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-label-element/proxy-modifier-click-to-associated-element.tentative.html:
  • web-platform-tests/html/semantics/forms/the-label-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-ask-for-reset.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-form-submission.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-labels.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-many-options.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-many-options.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-nested.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed-ref.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed.tentative-expected.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-not-displayed.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-focusable.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup-position-with-zoom.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup-position.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-required-attribute.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-shadow-root-replacement.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-value-selectedOption.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/support/cat.png: Removed.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/forms/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/notifications/idlharness.https.any-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • tests-options.json:
2:14 AM Changeset in webkit [294152] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebCore

[GStreamer] Properly handle DMABuf-containing GstBuffers with missing DMABuf GstCaps feature
https://bugs.webkit.org/show_bug.cgi?id=240374

Reviewed by Chris Lord.

To detect DMABuf-backed GstBuffers, for now we relied on the appropriate
feature being present on the related GstCaps object. This doesn't cover
every decoder which for one reason or another isn't specifying their
caps like this.

For those cases, we have to do a weaker but sufficient check on the
base GstMemory object contained in the GstBuffer, namely test that it
comes from a DMABuf-capable allocator, through using the
gst_is_dmabuf_memory() function. When true, we can proceed on handling
the buffer and its contained DMABuf object.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

2:07 AM Changeset in webkit [294151] by zan@falconsigh.net
  • 4 edits
    1 add in trunk/Source/WebCore

[Linux][GBM] Provide utility function for construction of eglCreateImage attributes data
https://bugs.webkit.org/show_bug.cgi?id=240373

Reviewed by Chris Lord.

Provide DMABufEGLUtilities::constructEGLCreateImageAttributes() helper
function that unifies the construction of the EGLImage creation
attributes. For a given DMABufObject and plane index, a Vector of EGLint
attributes for a single-plane EGLImage object is returned, optionally
including the modifier value if requested (when the EGL implementation,
through the necessary extensions, supports modifiers).

The new function replaces duplicated code in GraphicsContextGLGBM and
TextureMapperPlatformLayerProxyDMABuf.

  • platform/TextureMapper.cmake:
  • platform/graphics/gbm/DMABufEGLUtilities.h: Added.

(WebCore::DMABufEGLUtilities::constructEGLCreateImageAttributes):

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):

1:36 AM Changeset in webkit [294150] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Sandbox access to pipewire socket
https://bugs.webkit.org/show_bug.cgi?id=240338

Patch by Philippe Normand <pnormand@igalia.com> on 2022-05-13
Reviewed by Adrian Perez de Castro.

Starting from version 0.5 of Bubblewrap bind mounts behavior slightly changed. Without this
patch the pipewire socket wouldn't be available from the default XDG runtime directory.

  • flatpak/webkit-bwrap:

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

1:31 AM Changeset in webkit [294149] by Diego Pino Garcia
  • 1 edit
    5 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening, follow-up to r294148

Add removed baselines in corresponding directory.

  • platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt: Added.
1:22 AM Changeset in webkit [294148] by Diego Pino Garcia
  • 1 edit
    3 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening, follow-up to r294142

Remove wrongly generated baselines. Parent directoy has the same name
as baseline and that ends up in an Exception error while running the
layout-tests.

  • platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt/location_hash-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt/getresponseheader.any-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt/getresponseheader.any.worker-expected.txt: Removed.
1:13 AM Changeset in webkit [294147] by youenn@apple.com
  • 14 edits in trunk/Source/WebCore

Remove WorkerLoaderProxy::postTaskForModeToWorkerOrWorkletGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=240299

Reviewed by Alex Christensen.

WorkerLoaderProxy::postTaskForModeToWorkerOrWorkletGlobalScope is no longer needed given we have
ScriptExecutionContext infrastructure that can be used instead.

Covered by existing tests.

  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::AudioWorkletMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope): Deleted.

  • Modules/webaudio/AudioWorkletMessagingProxy.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpgradeURL):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::postTaskTo):
(WebCore::ScriptExecutionContext::postTaskForModeToWorkerOrWorklet):

  • dom/ScriptExecutionContext.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::m_contextIdentifier):
(WebCore::WorkerThreadableLoader::MainThreadBridge::notifyIsDone):
(WebCore::WorkerThreadableLoader::MainThreadBridge::redirectReceived):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishTiming):

  • loader/WorkerThreadableLoader.h:
  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope): Deleted.

  • workers/WorkerMessagingProxy.h:
  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/shared/context/SharedWorkerThreadProxy.h:
12:54 AM Changeset in webkit [294146] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][WPE] Unreviewed test gardening, move test image failures to GLIB

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:29 AM Changeset in webkit [294145] by Simon Fraser
  • 14 edits in trunk/Source

Simplify the usage of DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=240363

Reviewed by Myles Maxfield.

Move the DeconstructDrawGlyphs switch from inside DrawGlyphsRecorder to
DisplayList::Recorder, so that DrawGlyphsRecorder is only ever used when deconstructing
glyphs.

Also, ensure that the only time that glyph deconstruction is enabled is when
recording display lists via RemoteDisplayListRecorderProxy. There's no reason for
paintAttachmentText() to need glyph deconstruction.
Source/WebCore:

This is a small perf improvement on the MotionMark Design subtest.

  • platform/graphics/DrawGlyphsRecorder.h:

(WebCore::DrawGlyphsRecorder::deconstructDrawGlyphs const): Deleted.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DrawGlyphsRecorder::drawGlyphs):
(WebCore::DrawGlyphsRecorder::drawNativeText):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::drawGlyphs):
(WebCore::DisplayList::Recorder::drawGlyphsAndCacheFont):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::RecorderImpl):

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:
  • platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • platform/graphics/win/DrawGlyphsRecorderWin.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • rendering/RenderThemeIOS.mm:

(WebCore::paintAttachmentText):

Source/WebKit:

This is a small perf improvement on the MotionMark Design subtest.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
(WebKit::m_renderingBackend):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
12:26 AM Changeset in webkit [294144] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

Remove unneeded check in HTMLSlotElement::assignedNodes()
https://bugs.webkit.org/show_bug.cgi?id=240340

Reviewed by Ryosuke Niwa.

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::assignedNodes const):

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

12:19 AM Changeset in webkit [294143] by Diego Pino Garcia
  • 31 edits
    3 moves
    1 add
    3 deletes in trunk/LayoutTests

[WPE] Unreviewed test gardening, update baselines

  • platform/glib/TestExpectations:
  • platform/glib/css2.1/t0805-c5520-brdr-b-01-e-expected.txt: Renamed from LayoutTests/platform/gtk/css2.1/t0805-c5520-brdr-b-01-e-expected.txt.
  • platform/glib/fast/text/international/bidi-layout-across-linebreak-expected.txt: Renamed from LayoutTests/platform/gtk/fast/text/international/bidi-layout-across-linebreak-expected.txt.
  • platform/glib/fast/text/international/hindi-spacing-expected.txt: Renamed from LayoutTests/platform/gtk/fast/text/international/hindi-spacing-expected.txt.
  • platform/gtk/TestExpectations:
  • platform/wpe/css2.1/20110323/replaced-elements-001-expected.txt:
  • platform/wpe/css2.1/t0805-c5518-brdr-t-01-e-expected.txt:
  • platform/wpe/css2.1/t0805-c5520-brdr-b-01-e-expected.txt: Removed.
  • platform/wpe/css3/flexbox/button-expected.txt:
  • platform/wpe/fast/block/float/float-avoidance-expected.txt:
  • platform/wpe/fast/block/lineboxcontain/glyphs-expected.txt:
  • platform/wpe/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-basic-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-border-padding-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-raised-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-sunken-expected.txt:
  • platform/wpe/fast/css/continuationCrash-expected.txt:
  • platform/wpe/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/wpe/fast/css/rtl-ordering-expected.txt:
  • platform/wpe/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wpe/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/wpe/fast/html/details-replace-summary-child-expected.txt:
  • platform/wpe/fast/html/details-replace-text-expected.txt:
  • platform/wpe/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/wpe/fast/overflow/scrollRevealButton-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-expected.txt:
  • platform/wpe/fast/replaced/width100percent-button-expected.txt:
  • platform/wpe/fast/table/003-expected.txt:
  • platform/wpe/fast/table/append-cells2-expected.txt:
  • platform/wpe/fast/table/remove-td-display-none-expected.txt:
  • platform/wpe/fast/text/emoji-expected.txt:
  • platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt: Removed.
  • platform/wpe/fast/text/international/bidi-override-expected.txt:
  • platform/wpe/fast/text/international/hindi-spacing-expected.txt: Removed.
  • platform/wpe/fast/text/orientation-sideways-expected.txt:

May 12, 2022:

11:24 PM Changeset in webkit [294142] by Diego Pino Garcia
  • 2 edits
    1 copy
    2 moves
    5 adds
    1 delete in trunk/LayoutTests

[GTK] Unreviewed test gardening, fix missing test results.

  • platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt/location_hash-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt/getresponseheader.any-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt/getresponseheader.any.worker-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt.
  • platform/gtk/TestExpectations:
10:04 PM Changeset in webkit [294141] by Manuel Rego Casasnovas
  • 12 edits in trunk

ARIA reflection for FrozenArray<Element> attributes
https://bugs.webkit.org/show_bug.cgi?id=239853
<rdar://problem/92797836>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update expectations with the new PASS lines.

  • web-platform-tests/dom/nodes/aria-element-reflection.tentative-expected.txt:

Source/WebCore:

Implement ARIA reflection for attributes that refer to a list of Elements:
aria-controls, aria-describedby, aria-details, aria-flowto,
aria-labelledby and aria-owns.
For the properties names this patch uses "Elements" suffix:
ariaControlsElements, ariaDescribedByElements, ariaDescribedByElements,
ariaFlowToElements, ariaLabelledByElements, ariaOwnsElements
this matches Chromium implementation and AOM explainer, but not AOM spec:
https://github.com/w3c/aria/issues/1732

  • accessibility/AriaAttributes.idl: Add the new properties under

AriaReflectionForElementReferencesEnabled runtime flag.

  • bindings/scripts/CodeGenerator.pm:

(GetterExpression): Add function for FrozenArray<Element> properties.
(SetterExpression): Ditto.

  • bindings/scripts/test/JS/JSTestObj.cpp: Add tests.

(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObj_reflectedElementsArrayAttrGetter):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::setJSTestObj_reflectedElementsArrayAttrSetter):
(WebCore::JSC_DEFINE_CUSTOM_SETTER):

  • bindings/scripts/test/TestObj.idl: Add example attribute.
  • dom/Element.cpp:

(WebCore::isElementsArrayReflectionAttribute): New utility method to
identify the attributes that refer to a list of Elements.
(WebCore::Element::attributeChanged): Include check for elements
array.
(WebCore::Element::getElementsArrayAttribute const): Implement getter.
(WebCore::Element::setElementsArrayAttribute): Implement setter.

  • dom/Element.h: Remove FIXME in ExplicitlySetAttrElementsMap as now

it stores more than one element. Add headers for getter and setter.

LayoutTests:

Update test so it identifies the FrozenArray<Element> attributes.

  • accessibility/ARIA-reflection-expected.txt:
  • accessibility/ARIA-reflection.html:
8:38 PM Changeset in webkit [294140] by Diego Pino Garcia
  • 4 edits
    4 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening, update tests expected to fail but passed

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-002-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Removed.
  • platform/wpe/TestExpectations:
7:12 PM Changeset in webkit [294139] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

-Wattributes warnings from AtomString.cpp and WTFString.cpp
https://bugs.webkit.org/show_bug.cgi?id=240358

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-12
Reviewed by Yusuke Suzuki.

  • Source/WTF/wtf/text/AtomString.cpp:
  • Source/WTF/wtf/text/WTFString.cpp:

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

6:49 PM Changeset in webkit [294138] by Matt Woodrow
  • 14 edits in trunk/Source/WebCore

Quirk Flightaware.com to use the older number serialization path.
https://bugs.webkit.org/show_bug.cgi?id=240320

Reviewed by Simon Fraser.

Ensures that serialization of matrix() CSS properties uses the older serialization (which
matches ECMA script serialization) since this site expects these to be comparable as strings.

No new tests, since this is a site-specific quirk.

  • css/CSSFunctionValue.cpp:

(WebCore::CSSFunctionValue::customCSSText const):

  • css/CSSFunctionValue.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberValue const):
(WebCore::CSSPrimitiveValue::customCSSText const):

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

(WebCore::CSSValue::cssText const):

  • css/CSSValue.h:

(WebCore::CSSValue::CSSValue):

  • css/CSSValueList.cpp:

(WebCore::CSSValueList::customCSSText const):

  • css/CSSValueList.h:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

  • css/StyleProperties.h:
  • page/Quirks.cpp:

(WebCore::Quirks::needsFlightAwareSerializationQuirk const):

  • page/Quirks.h:
6:41 PM Changeset in webkit [294137] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

-Wunused-result in WebCoreSupport/WebContextMenuClient.cpp
https://bugs.webkit.org/show_bug.cgi?id=240364

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-12
Reviewed by Chris Dumez.

  • Source/WebKit/WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::searchWithGoogle):

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

6:09 PM Changeset in webkit [294136] by Alan Coon
  • 13 edits in branches/safari-7614.1.13-branch/Source

Cherry-pick r293994. rdar://problem/87157773

[iOS] Adjust some viewport behaviors when multitasking mode is enabled
https://bugs.webkit.org/show_bug.cgi?id=240151
rdar://87157773

Reviewed by Tim Horton.

Add a new ViewportConfiguration flag to prefer horizontal scrolling over shrinking to fit when the view layout
size falls under the current "default desktop webpage" of 980pt. See WebKit changes for more details.

  • page/ViewportConfiguration.cpp: (WebCore::ViewportConfiguration::initialScaleFromSize const): (WebCore::ViewportConfiguration::webpageParameters): (WebCore::ViewportConfiguration::imageDocumentParameters):

Pull the magic value representing the "assumed width of most desktop webpages" (980) out into a named constant,
defaultDesktopViewportWidth, so that we can consult it when computing the initial scale.

(WebCore::ViewportConfiguration::description const):

  • page/ViewportConfiguration.h: (WebCore::ViewportConfiguration::setPrefersHorizontalScrollingBelowDesktopViewportWidths): [iOS] Adjust some viewport behaviors when multitasking mode is enabled https://bugs.webkit.org/show_bug.cgi?id=240151 rdar://87157773

Reviewed by Tim Horton.

Make some adjustments to viewport behaviors when multitasking mode is enabled. See the comments below for more
details. There are no changes in behavior when multitasking mode is disabled; tests for the new behaviors in
multitasking mode will be added in a subsequent patch.

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

Add plumbing to inform the web process when "multitasking mode" state changes; we use this bit in WebPage to
determine whether or not we should use multitasking mode viewport behaviors (see below).

  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _registerForNotifications]): (-[WKWebView didMoveToWindow]): (-[WKWebView _multitaskingModeDidChange:]):

Send IPC to WebPage in these two places, to keep "multitasking mode" state in sync with the native view.

(-[WKWebView _beginAnimatedResizeWithUpdates:]):

Make a minor adjustment here to ignore oldWebViewWidthInContentViewCoordinates when computing a target scale
to zoom to when performing animated resize, in multitasking mode. This is required to prevent us from zooming
in excessively when the width of the view increases, since we'd otherwise attempt to keep the same content in
the page visible by zooming in (for instance, if an image covers most of the visual viewport at a lower view
width, this min() logic would cause us to zoom in, such that the image would still cover most of the viewport
at a larger width). This behavior is undesirable in multitasking mode.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setIsInMultitaskingMode):
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad): (WebKit::WebPage::setIsInMultitaskingMode):

Add plumbing to set the m_isInMultitaskingMode flag on WebPage, and update the viewport configuration flag to
prefer horizontal scrolling below 980pt.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::scaleAfterViewportWidthChange):

Refactor a bit of code here (without changing any behaviors), to make it a bit clearer:

  • Rename userHasChangedPageScaleFactor to scaleToFitContent to better describe how this flag affects the

adjusted target scale during dynamic resize.

  • Make the log messages specific to both branches, and also log the adjusted viewport scale instead of the

(currently unused) given scale in the non-scaleToFitContent codepath.

(WebKit::WebPage::dynamicViewportSizeUpdate):

Make another "multitasking mode viewport behavior" adjustment here by maintaining the initial scale (only if the
viewport was already at initial scale) when performing dynamic viewport size updates. By default, we currently
adjust the scale such that the same content is still visible at the new viewport size; however, when allowing
horizontal scrolling, this causes us to zoom in excessively when making the window width larger. Instead, when
multitasking mode is enabled, we should try to preserve initial scale when changing window size, such that only
the horizontal scroll amount changes.

(WebKit::WebPage::usesMultitaskingModeViewportBehaviors const):

Add a helper method to encapsulate whether or not multitasking mode viewport behaviors should be used; this
should be true only when both desktop-class viewport behaviors are active, *and* multitasking mode is also
active.

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

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

6:02 PM Changeset in webkit [294135] by J Pascoe
  • 2 edits in trunk/Source/WebCore

[WebAuthn] Remove document focus requirement for conditional mediation requests
https://bugs.webkit.org/show_bug.cgi?id=240361
rdar://problem/93201070

Reviewed by Brent Fulgham.

This is necessary so conditional mediation requests work when you open a page in
a new tab. Conditional mediation requests do not support security keys and the
request will be aborted if conditional mediation is not available.

  • Modules/credentialmanagement/CredentialsContainer.cpp:

(WebCore::CredentialsContainer::get):

5:55 PM Changeset in webkit [294134] by Alan Coon
  • 4 edits in branches/safari-7614.1.13-branch/Source

Cherry-pick r294122. rdar://problem/93191958

[WebAuthn] Include backup state in authenticatorData
https://bugs.webkit.org/show_bug.cgi?id=240353
rdar://problem/93191958

Reviewed by Brent Fulgham.

Source/WebCore:

Add flags for credential backup state: https://github.com/w3c/webauthn/pull/1695

  • Modules/webauthn/WebAuthenticationConstants.h:

Source/WebKit:

This patch adds support for backup state flags, which will be added to
the Web Authentication spec soon via https://github.com/w3c/webauthn/pull/1695

These flags are set whenever a credential is "backup eligible" and "backed up"
hinting to RPs that the credential is "durable" and may persist through device
restores. This is useful for RPs that may choose to offer to remove the user
password if a credental is in this state.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: (WebKit::LocalAuthenticatorInternal::authDataFlags): (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification): (WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):

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

5:55 PM Changeset in webkit [294133] by Alan Coon
  • 6 edits in branches/safari-7614.1.13-branch

Cherry-pick r294088. rdar://problem/93134975

ImageAnalysisQueue should extract and analyze images inside of subframes
https://bugs.webkit.org/show_bug.cgi?id=240328
rdar://93134975

Reviewed by Tim Horton.

Teach ImageAnalysisQueue to recursively find all images on the page (including images in of subframe content)
and queue them for analysis. To do this, we refactor enqueueAllImages to call into a new recursive helper
method, enqueueAllImagesRecursive, to look for more candidate image elements that exist inside frame owner
elements (e.g. iframe).

Test: ImageAnalysisTests.AnalyzeImagesInSubframes

  • page/ImageAnalysisQueue.cpp: (WebCore::ImageAnalysisQueue::enqueueAllImages): (WebCore::ImageAnalysisQueue::enqueueAllImagesRecursive):
  • page/ImageAnalysisQueue.h: ImageAnalysisQueue should extract and analyze images inside of subframes https://bugs.webkit.org/show_bug.cgi?id=240328 rdar://93134975

Reviewed by Tim Horton.

Add an API test to verify that we extract and analyze images inside of subframes, in addition to images in the
main frame.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:

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

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

5:55 PM Changeset in webkit [294132] by Alan Coon
  • 14 edits in branches/safari-7614.1.13-branch

Cherry-pick r294084. rdar://problem/93036066

Re-send connection configuration if webpushd dies
https://bugs.webkit.org/show_bug.cgi?id=240286

Reviewed by Geoffrey Garen.

If webpushd dies, all future communication with it from NetworkProcess fails because we
don't re-send the connection configuration to the daemon after the connection is
interrupted. This manifests itself as an "invalid sender" AbortError from various
PushManager methods because webpushd doesn't know the bundle identifier of the UIProcess it
is working on behalf of.

To fix this, I moved the responsibility for sending the configuration from
NetworkNotificationManager to WebPushD::Connection, and WebPushD::Connection re-sends the
configuration every time a new XPC connection is created.

Covered by a new API test.

Source/WebKit:

  • NetworkProcess/NetworkSession.cpp: (WebKit::NetworkSession::NetworkSession):
  • NetworkProcess/NetworkSession.h: (WebKit::NetworkSession::webPushDaemonUsesMockBundlesForTesting const): Deleted.
  • NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm: (WebKit::WebPushD::Connection::newConnectionWasInitialized const):
  • NetworkProcess/Notifications/NetworkNotificationManager.cpp: (WebKit::NetworkNotificationManager::NetworkNotificationManager): (WebKit::NetworkNotificationManager::sendMessage const): (WebKit::NetworkNotificationManager::sendMessageWithReply const): (WebKit::NetworkNotificationManager::maybeSendConnectionConfiguration const): Deleted.
  • NetworkProcess/Notifications/NetworkNotificationManager.h:
  • NetworkProcess/Notifications/WebPushDaemonConnection.cpp: (WebKit::WebPushD::Connection::Connection):
  • NetworkProcess/Notifications/WebPushDaemonConnection.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm: (TestWebKitAPI::testWebPushDaemonPList): (TestWebKitAPI::setUpTestWebPushD): (TestWebKitAPI::restartTestWebPushD): (TestWebKitAPI::WebPushDTest::WebPushDTest):
  • TestWebKitAPI/cocoa/DaemonTestUtilities.h:
  • TestWebKitAPI/cocoa/DaemonTestUtilities.mm: (TestWebKitAPI::restartService):

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

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

5:55 PM Changeset in webkit [294131] by Alan Coon
  • 4 edits in branches/safari-7614.1.13-branch/Source

Cherry-pick r293968. rdar://problem/92892014

[macOS] REGRESSION (r293825): Find highlight snapshots are incorrectly scaled
https://bugs.webkit.org/show_bug.cgi?id=240203
rdar://92892014

Reviewed by Tim Horton.

Source/WebCore:

takeSnapshots() depends on the snapshot ImageBuffer::resolutionScale() to
set the size of the TextIndicatorData image. r293825 scaled the size of
the ImageBuffer before creation and moved the scaling to the GraphicsContext.
So we have correct scaled pixels but the resolutionScale is 1. So we get
enlarged incorrect image.

The fix is to revert r293825 and fix the iOS snapshot without having to
change snapshotFrameRectWithClip().

  • page/FrameSnapshotting.cpp: (WebCore::snapshotFrameRectWithClip):

Source/WebKit:

In getShareableBitmapForImageBufferWithQualifiedIdentifier(), we used to
pass the backendSize as the srcRect and the backendSize as the destRect
to GraphicsContext::drawImageBuffer(). The backendSize is the logicalSize
scaled by the resolutionScale. But in ImageBufferCGBackend::draw() we
scale the srcRect by the resolutionScale one more time. This double-
scaled srcRect draws a srcRect whose size = backendSize * resolutionScale
to a destRect whose size = backendSize. And this results in shrinking the
desired snapshot image by 1 / resolutionScale.

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

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

5:55 PM Changeset in webkit [294130] by Alan Coon
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebKit

Cherry-pick r293954. rdar://problem/92885915

Do WebKitAdditions header replacement only when a specific environment variable is set
https://bugs.webkit.org/show_bug.cgi?id=240210
<rdar://92885915>

Reviewed by Tim Horton.

  • Source/WebKit/Configurations/WebKit.xcconfig:
  • Source/WebKit/mac/replace-webkit-additions-includes.py: (check_should_do_replacement): (main): (is_supported_os): Deleted.

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

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

5:55 PM Changeset in webkit [294129] by Alan Coon
  • 13 edits
    2 adds in branches/safari-7614.1.13-branch

Cherry-pick r293951. rdar://problem/92635604

Don't propagate GraphicsContextState change bits into TextPainter's glyph display list recorder
https://bugs.webkit.org/show_bug.cgi?id=239952
<rdar://problem/92635604>

Source/WebCore:

Reviewed by Said Abou-Hallawa and Antti Koivisto.

In FontCascade::displayListForTextRun, we create a
DisplayList::Recorder, then call drawGlyphBuffer. We initialize the
DisplayList::Recorder with the GraphicsContextState of the
GraphicsContext we're drawing to. Just before this, we will have set the
current fill color on that GraphicsContext.

When GPUP DOM rendering is disabled, GraphicsContextCG responds to
setFillColor etc. by updating GraphicsContextState, including setting
the Change flag, then immediately updating the CGContext, and clearing
the Change flag.

But when GPUP DOM rendering is enabled, the GraphicsContext is a
DisplayList::Recorder for the layer we're painting in to. Because
DisplayList::Recorder applies its state changes lazily, it can be in the
situation where its GraphicsContextState has had the fill brush changed,
and the Change flag is still set. So DisplayList::Recorder starts off
with a GraphicsContextState with unapplied changes in it. We end up in
DisplayList::Recorder::drawGlyphsAndCacheFont, which calls
appendStateChangeItemIfNecessary, which sees that the Change bit is set,
and generates a SetInlineFillColor display list item, which is
recorded and then replayed the next time the same text is painted.
This recorded fill color then may be wrong for the next TextPainter
that wants to reuse the cached glyph display list.

Display list recorders should never be initialized with a
GraphicsContextState that has change flags set on it. We can assert
this, then make FontCascade explicitly clear those flags on the state
object it passes in to the DisplayList::Recorder.

Test: fast/text/glyph-display-list-color.html

  • platform/graphics/FontCascade.cpp: (WebCore::FontCascade::displayListForTextRun const):
  • platform/graphics/GraphicsContextState.cpp: (WebCore::GraphicsContextState::cloneForRecording const):
  • platform/graphics/GraphicsContextState.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp: (WebCore::DisplayList::Recorder::Recorder):

Add setForceUseGlyphDisplayListForTesting and
cachedGlyphDisplayListsForTextNode functions on Internal for the
test to use:

  • rendering/GlyphDisplayListCache.h: (WebCore::GlyphDisplayListCache::getIfExists):
  • rendering/TextPainter.cpp: (WebCore::TextPainter::shouldUseGlyphDisplayList): (WebCore::TextPainter::setForceUseGlyphDisplayListForTesting): (WebCore::TextPainter::cachedGlyphDisplayListsForTextNodeAsText):
  • rendering/TextPainter.h: (WebCore::TextPainter::glyphDisplayListIfExists):
  • testing/Internals.cpp: (WebCore::Internals::setForceUseGlyphDisplayListForTesting): (WebCore::Internals::cachedGlyphDisplayListsForTextNode):
  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Reviewed by Antti Koivisto.

  • fast/text/glyph-display-list-color-expected.txt: Added.
  • fast/text/glyph-display-list-color.html: Added.

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

5:31 PM Changeset in webkit [294128] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

TextBoxPainter::paintForeground: painting text with no marking/decoration should be simple
https://bugs.webkit.org/show_bug.cgi?id=240319

Reviewed by Simon Fraser.

Let's have a fast codepath for regular, simple text painting.

  • rendering/StyledMarkedText.cpp:

(WebCore::StyledMarkedText::computeStyleForUnmarkedMarkedText):
(WebCore::computeStyleForUnmarkedMarkedText): Deleted.

  • rendering/StyledMarkedText.h:

(WebCore::StyledMarkedText::StyledMarkedText):
(WebCore::StyledMarkedText::style):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintBackground):
(WebCore::TextBoxPainter::paintForegroundAndDecorations):

5:05 PM Changeset in webkit [294127] by Alan Coon
  • 3 edits in branches/safari-7614.1.13-branch/Source/WebKit

Cherry-pick r294126. rdar://problem/93208265

Revert r293861
https://bugs.webkit.org/show_bug.cgi?id=239977
<rdar://93208265>

Apparently it is still needed on trunk

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::createWebSocketTask):

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

4:43 PM Changeset in webkit [294126] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Revert r293861
https://bugs.webkit.org/show_bug.cgi?id=239977
<rdar://93208265>

Apparently it is still needed on trunk

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::createWebSocketTask):

3:32 PM Changeset in webkit [294125] by Chris Dumez
  • 2 edits in trunk

Unreviewed, revert r284894 as it caused issues with printing and reader mode
https://bugs.webkit.org/show_bug.cgi?id=240355
<rdar://92538667>

Revert r284894 as it caused issues with printing and reader mode.

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

2:57 PM Changeset in webkit [294124] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

StorageMap::removeItem may fail to remove item from map
https://bugs.webkit.org/show_bug.cgi?id=239982
rdar://80891555

  • storage/StorageMap.cpp:

(WebCore::StorageMap::removeItem):
Address post-landing review comment from Darin.

2:56 PM Changeset in webkit [294123] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore

Merge r293971 - [Nicosia] Canvas animations don't work with threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=227760
<rdar://problem/80588913>

Reviewed by Adrian Perez de Castro.

Implement Nicosia::CairoOperationRecorder::draImageBuffer(), which is required in order to paint
canvas contents into a GraphicsContext.

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

(Nicosia::CairoOperationRecorder::drawImageBuffer):

2:54 PM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
2:51 PM Changeset in webkit [294122] by J Pascoe
  • 4 edits in trunk/Source

[WebAuthn] Include backup state in authenticatorData
https://bugs.webkit.org/show_bug.cgi?id=240353
rdar://problem/93191958

Reviewed by Brent Fulgham.

Source/WebCore:

Add flags for credential backup state: https://github.com/w3c/webauthn/pull/1695

  • Modules/webauthn/WebAuthenticationConstants.h:

Source/WebKit:

This patch adds support for backup state flags, which will be added to
the Web Authentication spec soon via https://github.com/w3c/webauthn/pull/1695

These flags are set whenever a credential is "backup eligible" and "backed up"
hinting to RPs that the credential is "durable" and may persist through device
restores. This is useful for RPs that may choose to offer to remove the user
password if a credental is in this state.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::authDataFlags):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):

2:30 PM Changeset in webkit [294121] by jfernandez@igalia.com
  • 2 edits in trunk

Add GitHub account to contributors.json and update expertise field
https://bugs.webkit.org/show_bug.cgi?id=240360

Unreviewed.

  • metadata/contributors.json:
2:14 PM Changeset in webkit [294120] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.12.3

Tag WebKit-7614.1.12.3.

2:06 PM Changeset in webkit [294119] by Alan Coon
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.13.5

1:58 PM Changeset in webkit [294118] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Reviewed by Geoffrey Garen.

The refactoring in Bug 229414 did not retain the old behavior on iOS where local
files (which do not get a MIME type assigned by CFNetwork) passed through the
same 'preferredMIMETypeForFileExtensionFromUTType' logic we use on macOS.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):

1:15 PM Changeset in webkit [294117] by commit-queue@webkit.org
  • 4 edits in trunk

Make if-domain and unless-domain regexes only look at URL hosts
https://bugs.webkit.org/show_bug.cgi?id=240199

Patch by Alex Christensen <achristensen@webkit.org> on 2022-05-12
Reviewed by John Wilander.

Source/WebCore:

In bug 234126 I moved how if-domain and unless-domain are done by translating them into a regex.
I overlooked that a domain can be in the path. If we get to '/' then we are at the end of the host.
Covered by an API test.

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getDomainList):

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

1:08 PM Changeset in webkit [294116] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/build-webkit-org/steps.py

[build.webkit.org] Upload minified archives while building custom revision
https://bugs.webkit.org/show_bug.cgi?id=240354

Reviewed by Ryan Haddad.

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

(CompileWebKit.evaluateCommand):
(TransferToS3.init):
(TransferToS3.finished):

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

1:03 PM Changeset in webkit [294115] by aakash_jain@apple.com
  • 2 edits in trunk/Tools/CISupport/build-webkit-org

[build.webkit.org] Upload steps should be properly named
https://bugs.webkit.org/show_bug.cgi?id=240351

Reviewed by Ryan Haddad.

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

(TestExpectedBuildSteps):

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

(ArchiveMinifiedBuiltProduct):
(UploadBuiltProduct):
(UploadMinifiedBuiltProduct):

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

11:51 AM Changeset in webkit [294114] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Don't install WebKit feature flags plist on macOS
https://bugs.webkit.org/show_bug.cgi?id=240350
<rdar://problem/93183882>

Reviewed by Wenson Hsieh.

  • WebKit.xcodeproj/project.pbxproj:

We don't need it on macOS (and won't need it at all soon), and
the script is currently installing to the wrong place for some kinds
of macOS builds. So, just skip it.

11:22 AM Changeset in webkit [294113] by Kate Cheney
  • 6 edits in trunk

Mail compose: right clicking an image attachment selects it
https://bugs.webkit.org/show_bug.cgi?id=240315
rdar://45454933

Reviewed by Wenson Hsieh.

  • wtf/cocoa/RuntimeApplicationChecksCocoa.h:

Mail compose: right clicking an image attachment selects it
https://bugs.webkit.org/show_bug.cgi?id=240315
rdar://45454933

Reviewed by Wenson Hsieh.

If the page is editable, don't select if the element is an image.

  • page/EventHandler.cpp:

(WebCore::EventHandler::sendContextMenuEvent):
Mail compose: right clicking an image attachment selects it
https://bugs.webkit.org/show_bug.cgi?id=240315
rdar://45454933

Reviewed by Wenson Hsieh.

API test coverage.

  • TestWebKitAPI/Tests/mac/ContextMenuTests.mm:

(TestWebKitAPI::rightClick):
(TestWebKitAPI::TEST):

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

11:14 AM Changeset in webkit [294112] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.13.4

Tag WebKit-7614.1.13.4.

11:05 AM Changeset in webkit [294111] by Russell Epstein
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebKit

Apply patch. rdar://problem/92617943

10:55 AM Changeset in webkit [294110] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-videoDetectorTest.html is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240348

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

10:43 AM Changeset in webkit [294109] by yurys@chromium.org
  • 4 edits in trunk/Source/WebKit

[GTK][WPE] Do not return pointer to disposed timezone string
https://bugs.webkit.org/show_bug.cgi?id=240327

Reviewed by Michael Catanzaro.

Store time zone name in CString to avoid returning pointer to a temp string which was
disposed before returning from webkit_web_context_get_time_zone_override.

No new tests. Covered by existing unit tests.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextSetProperty):
(webkitWebContextConstructed):
(webkit_web_context_get_time_zone_override):
(webkit_web_context_set_time_zone_override): Deleted this function as the time zone can
only be overridden during context construction.

  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/wpe/WebKitWebContext.h:
10:43 AM Changeset in webkit [294108] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[macOS] Remove support for deprecated ScreenCaptureKit API
https://bugs.webkit.org/show_bug.cgi?id=239511
<rdar://problem/91973817>

Reviewed by Youenn Fablet.

Source/WebCore:

Tested manually.

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

(-[WebCoreScreenCaptureKitHelper stream:didOutputSampleBuffer:ofType:]):
(WebCore::ScreenCaptureKitCaptureSource::ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::stop):
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
(WebCore::ScreenCaptureKitCaptureSource::updateStreamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::streamDidOutputSampleBuffer):

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm:

(-[WebDisplayMediaPromptHelper sessionDidEnd:]):
(WebCore::ScreenCaptureKitSharingSessionManager::sessionDidEnd):
(WebCore::ScreenCaptureKitSharingSessionManager::takeSharingSessionForFilter):

Source/WebCore/PAL:

  • pal/spi/mac/ScreenCaptureKitSPI.h:
10:39 AM Changeset in webkit [294107] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Unskip no longer failing test
https://bugs.webkit.org/show_bug.cgi?id=240346

Unreviewed gardening.

Test no longer fails on ARM. No good explanation for why it was only
failing in bytecode-cache mode. Also not sure which subsequent commit
fixed it.

  • stress/exception-in-to-property-key-should-be-handled-early.js:
10:37 AM Changeset in webkit [294106] by Russell Epstein
  • 3 edits in branches/safari-7614.1.13-branch/Source/WebKit

Cherry-pick r294072. rdar://problem/93058432

Need to add DYLD_LIBRARY_PATH for XPC services
https://bugs.webkit.org/show_bug.cgi?id=240289

Reviewed by Alexey Proskuryakov.

Set DYLD_LIBRARY_PATH / DYLD_VERSIONED_LIBRARY_PATH for XPC services depending on the value of USE_STAGING_INSTALL_PATH.
Also added DYLD_LIBRARY_PATH to the XPC environment for webpushd.

  • Configurations/BaseTarget.xcconfig:
  • webpushd/webpushtool/WebPushToolMain.mm: (registerDaemonWithLaunchD):

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

10:31 AM Changeset in webkit [294105] by Russell Epstein
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.13.4

9:24 AM Changeset in webkit [294104] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GStreamer][VideoCapture] Add support for capturing encoded video streams from a webcam
https://bugs.webkit.org/show_bug.cgi?id=240229

Patch by Loïc Le Page <llepage@igalia.com> on 2022-05-12
Reviewed by Philippe Normand.

Takes into account encoded video streams produced by a webcam for
video capture.

Manually tested (requires a webcam with encoded video streams).

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::generatePresets):

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:

(WebCore::GStreamerVideoCapturer::createConverter):
(WebCore::GStreamerVideoCapturer::setSize):
(WebCore::GStreamerVideoCapturer::setFrameRate):
(WebCore::GStreamerVideoCapturer::adjustVideoSrcMIMEType):

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.h:
7:27 AM Changeset in webkit [294103] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

REGRESSION(r291038) [GTK][WPE] Fix build without remote inspector
https://bugs.webkit.org/show_bug.cgi?id=240305

Patch by Olivier Blin <Olivier Blin> on 2022-05-12
Reviewed by Michael Catanzaro.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

6:56 AM Changeset in webkit [294102] by youenn@apple.com
  • 9 edits
    1 copy
    3 adds in trunk

Add a better mock for audio units used by CoreAudioSharedUnit
https://bugs.webkit.org/show_bug.cgi?id=240231

Reviewed by Eric Carlson.

Source/WebCore:

Move CoreAudioSharedUnit to its own file, CoreAudioSharedUnit.h/CoreAudioSharedUnit.cpp.
Introduce an internal unit to abstract out CoreAudioSharedUnit from actual CoreAudio units.
Implement a CoreAudio based internal unit in CoreAudioSharedUnit.cpp.
Implement a Mock based internal unit in MockAudioSharedUnit.h/MockAudioSharedUnit.mm.
Add inputput/ouput sample rate validation (debug assert and release error returned).
Add a test that uses this validation.

Test: fast/mediastream/audio-unit-reconfigure.html

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:
  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
  • platform/mediastream/mac/CoreAudioSharedUnit.cpp: Added.
  • platform/mediastream/mac/CoreAudioSharedUnit.h: Added.
  • platform/mediastream/mac/MockAudioSharedUnit.h:
  • platform/mediastream/mac/MockAudioSharedUnit.mm:

LayoutTests:

  • fast/mediastream/audio-unit-reconfigure-expected.txt: Added.
  • fast/mediastream/audio-unit-reconfigure.html: Added.
6:49 AM Changeset in webkit [294101] by Oriol Brufau
  • 4 edits in trunk

[cssom] Serialize computed '-webkit-text-combine: none'
https://bugs.webkit.org/show_bug.cgi?id=239989

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

Update some test expectations.

  • web-platform-tests/css/cssom/serialize-all-longhands-expected.txt:

Source/WebCore:

The computed value of '-webkit-text-combine' was only serialized for
'-webkit-text-combine: horizontal' or 'text-combine-upright: all'.

But the initial value 'none' just produced an empty string.

Test: imported/w3c/web-platform-tests/css/cssom/serialize-all-longhands.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

6:30 AM Changeset in webkit [294100] by zan@falconsigh.net
  • 7 edits in trunk/Source/WebCore

[GTK][WPE] Respect and use the DMABuf modifier values
https://bugs.webkit.org/show_bug.cgi?id=240276

Reviewed by Chris Lord.

When wrapping DMABuf objects in EGLImages, the modifier values should be
respected and used to properly and completely describe the DMABuf.

This should be applied in two places. First one is GraphicsContextGLGBM
where the DMABuf is used to back the ANGLE-handled EGLImage. Second one
is TextureMapperPlatformLayerProxyDMABuf, during construction of the
DMABufLayer object used to present the DMABuf inside the composition
engine.

In both cases this primarily relies on the presence of the
EGL_EXT_image_dma_buf_import_modifiers extension. For the first case
detection of this extension is done through ANGLE and its state stored
on the GraphicsContextGLGBM object during context initialization. For
the second case this state is stored on the PlatformDisplay object
after it's retrieved during the EGLDisplay initialization.

If detected, the DMABuf modifier value is included in the attributes
array used for the EGLImage creation call. The actual modifier value is
retrieved from the gbm_bo object, leaving it to libgbm to assess the
best possible formatting of the DMAbuf resource.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::initializeEGLDisplay):

  • platform/graphics/PlatformDisplay.h:

(WebCore::PlatformDisplay::eglExtensions const):

  • platform/graphics/gbm/GBMBufferSwapchain.cpp:

(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
(WebCore::GraphicsContextGLGBM::platformInitializeContext):

  • platform/graphics/gbm/GraphicsContextGLGBM.h:

(WebCore::GraphicsContextGLGBM::eglExtensions):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):

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

TextBoxPainter::paintBackground should bail out early when nothing to paint
https://bugs.webkit.org/show_bug.cgi?id=240317

Reviewed by Simon Fraser.

Collecting markers and highlights is a somewhat expensive operation while most
of the time the text has neither markers nor highlights. Let's just bail out early when applicable.

  • dom/Document.h:

(WebCore::Document::hasHighlightRegister const):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintBackground):

5:40 AM Changeset in webkit [294098] by ntim@apple.com
  • 5 edits in trunk

[:has() pseudo-class] Support invalidation for :target pseudo-class
https://bugs.webkit.org/show_bug.cgi?id=240329

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Extend current test to cover more cases, and mark it as passing.

  • web-platform-tests/css/selectors/invalidation/target-pseudo-in-has-expected.txt:
  • web-platform-tests/css/selectors/invalidation/target-pseudo-in-has.html:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/target-pseudo-in-has.html

  • dom/Document.cpp:

(WebCore::Document::setCSSTarget):

1:44 AM Changeset in webkit [294097] by ntim@apple.com
  • 11 edits
    12 adds in trunk/LayoutTests/imported/w3c

Re-import css/selectors WPT from revision 4653e9128742e2c2609e76f04f4084cdc10ffead
https://bugs.webkit.org/show_bug.cgi?id=240332

Reviewed by Antti Koivisto.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/4653e9128742e2c2609e76f04f4084cdc10ffead

  • web-platform-tests/css/selectors/first-child-expected.txt: Added.
  • web-platform-tests/css/selectors/first-child.html: Added.
  • web-platform-tests/css/selectors/first-of-type-expected.txt: Added.
  • web-platform-tests/css/selectors/first-of-type.html: Added.
  • web-platform-tests/css/selectors/invalidation/has-in-adjacent-position-expected.txt:
  • web-platform-tests/css/selectors/invalidation/has-in-adjacent-position.html:
  • web-platform-tests/css/selectors/invalidation/has-in-ancestor-position-expected.txt:
  • web-platform-tests/css/selectors/invalidation/has-in-ancestor-position.html:
  • web-platform-tests/css/selectors/invalidation/has-in-parent-position-expected.txt:
  • web-platform-tests/css/selectors/invalidation/has-in-parent-position.html:
  • web-platform-tests/css/selectors/invalidation/has-in-sibling-position-expected.txt:
  • web-platform-tests/css/selectors/invalidation/has-in-sibling-position.html:
  • web-platform-tests/css/selectors/invalidation/target-pseudo-in-has-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/target-pseudo-in-has.html: Added.
  • web-platform-tests/css/selectors/invalidation/w3c-import.log:
  • web-platform-tests/css/selectors/last-child-expected.txt: Added.
  • web-platform-tests/css/selectors/last-child.html: Added.
  • web-platform-tests/css/selectors/last-of-type-expected.txt: Added.
  • web-platform-tests/css/selectors/last-of-type.html: Added.
  • web-platform-tests/css/selectors/only-child-expected.txt: Added.
  • web-platform-tests/css/selectors/only-child.html: Added.
  • web-platform-tests/css/selectors/w3c-import.log:
Note: See TracTimeline for information about the timeline view.