Timeline



Jun 17, 2022:

11:46 PM Changeset in webkit [295658] by ysuzuki@apple.com
  • 2 edits
    4 adds in trunk

[JSC] Fix iterator_next's tmp liveness and OSR exit recovery
https://bugs.webkit.org/show_bug.cgi?id=241702

Reviewed by Mark Lam.

We fix two issues in iterator_next DFG handling.

  1. Consider the following case,

function inlinedGetterUsedByIteratorNext()
{

if (flag)

ForceOSRExit() Terminal

...

}

And we hit ForceOSRExit and do OSR exit. We are not reporting tmp (nextResult tmp in this case) as live at
the terminal accidentally. As a result, when OSR exit is performed, it is dead.
But this is still used after "done" lookup is finished since "value" lookup also uses this nextResult. As
a result, we encounter an error since nextResult is not recovered after OSR exit.
In this patch, we report liveness of tmp in flushForTerminalImpl to recover them. Strictly speaking, this
code is slightly too conservative: for example, when OSR exit happens for inlined call of "value" getter, "value"'s
requiring tmp is not necessary since this is the last checkpoint and this llint_slow_path_checkpoint_osr_exit_from_inlined_call
is called after finishing the call => we finished all the things. For now, we align it to the other places since
this is conservatively correct. In a future patch, we can make it more precisely modeled.

  1. llint_slow_path_checkpoint_osr_exit_from_inlined_call should not use handleIteratorNextCheckpoint

handleIteratorNextCheckpoint is not for inlined call. Inlined call is "OSR exit during the checkpoint's call".
Thus, its checkpoint meaning is different from llint_slow_path_checkpoint_osr_exit: for example, when OSR exit
happens for inlined call of "value" getter, all the operation is already done and only thing we need to do is
storing the result value to the specified VirtualRegister position. On the other hand, in llint_slow_path_checkpoint_osr_exit,
we should perform what we need to do in the last checkpoint sequence.
This patch fixes iterator_next's definition in llint_slow_path_checkpoint_osr_exit_from_inlined_call since it
is the only incorrect case.

  • JSTests/stress/osr-exit-iterator-next-get-by-id-value-access.js: Added.

(result.get value):
(result.get done):
(iterator.next):
(object.Symbol.iterator):
(test):

  • JSTests/stress/osr-exit-iterator-next-get-by-id-value-exit.js: Added.

(result.get value):
(result.get done):
(iterator.next):
(object.Symbol.iterator):
(test):

  • JSTests/stress/osr-exit-iterator-next-get-by-id.js: Added.

(result.get value):
(result.get done):
(iterator.next):
(object.Symbol.iterator):
(test):

  • JSTests/stress/osr-exit-iterator-open-get-by-id.js: Added.

(iterator.nextImpl):
(iterator.get next):
(object.Symbol.iterator):
(test):

  • Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::flushForTerminalImpl):

  • Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::callerReturnPC):
(JSC::DFG::reifyInlinedCallFrames):

  • Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:

(JSC::LLInt::handleIteratorNextCheckpoint):
(JSC::LLInt::llint_slow_path_checkpoint_osr_exit_from_inlined_call):

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

10:54 PM Changeset in webkit [295657] by Cameron McCormack
  • 1 edit in trunk/Source/WebCore/svg/properties/SVGAnimatedProperty.h

SVGAnimatedProperty::isAnimating need not compute number of animators
https://bugs.webkit.org/show_bug.cgi?id=241732

Reviewed by Tim Horton.

We just need to know if there are any.

  • Source/WebCore/svg/properties/SVGAnimatedProperty.h:

(WebCore::SVGAnimatedProperty::isAnimating const):

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

9:26 PM Changeset in webkit [295656] by mark.lam@apple.com
  • 6 edits in trunk/Source

Enhance Options::useOSLog to accept an os log type value.
https://bugs.webkit.org/show_bug.cgi?id=241719

Reviewed by Yusuke Suzuki.

This option only applies to OS(DARWIN).

For example, we can now use any of these:

--useOSLog=default logs to OS_LOG_TYPE_DEFAULT
--useOSLog=info
logs to OS_LOG_TYPE_INFO
--useOSLog=debug logs to OS_LOG_TYPE_DEBUG
--useOSLog=error
logs to OS_LOG_TYPE_ERROR
--useOSLog=fault. logs to OS_LOG_TYPE_FAULT

We can still use --useOSLog=0 or false (which means do the normal dataLog) and
--useOSLog=1 or true (which means dataLog to OS_LOG_TYPE_ERROR).

Previously, when we specify --useOSLog=1, we will log to OS_LOG_TYPE_INFO. This
has been a source of friction in usage because no one ever remembers that we need
to enable OS_LOG_TYPE_INFO in the log stream to see this logging. Instead,
--useOSLog=1 will now log to OS_LOG_TYPE_ERROR, which ensures that logging will
show up in log stream. This is fine to do because the --useOSLog=1 option
indicates that the client really wants to see the logs. Otherwise, the client
can use one of the other os log types if they want something different.

Secondly, because --useOSLog=1 indicates that the client really wants to see the
logs, logging to OS_LOG_TYPE_ERROR ensures that the logging is flushed to the
file system instead of sitting in a memory buffer, and potentially not showing up
in the log stream.

Also made the following changes:

  1. Changed Options::dumpAllOptions to use dataLog instead of printing to stderr. This allows its output to be diverted using Options::useOSLog as well.
  1. Moved the call to WTF::setDataFile from Options::initialize to Options::recomputeDependentOptions. This allows Options::useOSLog to be specified using the jsc shell's --useOSLog argument instead of requiring it to be specified using the JSC_useOSLog env var in order to work.

To enable this, added a useOSLogOptionHasChanged flag that can be set in
the parser of the Options::useOSLog option. This prevents
Options::recomputeDependentOptions from calling initializeDatafileToUseOSLog()
repeatedly every time any option is set.

  1. Added initializeDatafileToUseOSLog() which now instantiates the appropriate OSLogPrintStream and sets it using WTF::setDataFile.

initializeDatafileToUseOSLog() also asserts that it is called at most once.

  1. Added an assertion in WTF::setDataFile() to ensure that it is not called more than once.
  1. #if out the calls to overrideAliasedOptionWithHeuristic() on PLATFORM(COCOA). They are not needed because, on PLATFORM(COCOA), we already iterate through every env var starting with JSC_ and call Options::setOption() on it. Options::setOption() will also handle aliased options.

For reference, this is an example of how we can view the logs using log stream
once --useOSLog=1 is used:

# log stream --predicate 'category == "DataLog"'

  • Source/JavaScriptCore/API/glib/JSCOptions.cpp:
  • Source/JavaScriptCore/jsc.cpp:

(CommandLine::parseArguments):

  • Source/JavaScriptCore/runtime/Options.cpp:

(JSC::parse):
(JSC::asDarwinOSLogType):
(JSC::initializeDatafileToUseOSLog):
(JSC::asString):
(JSC::Options::recomputeDependentOptions):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::dumpAllOptions):
(JSC::OptionReader::Option::initValue):
(JSC::OptionReader::Option::dump const):
(JSC::OptionReader::Option::operator== const):

  • Source/JavaScriptCore/runtime/Options.h:
  • Source/JavaScriptCore/runtime/OptionsList.h:
  • Source/WTF/wtf/DataLog.cpp:

(WTF::setDataFile):

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

8:57 PM Changeset in webkit [295655] by Nikos Mouchtaris
  • 1 edit in trunk/Source/WebCore/page/FocusController.cpp

Assertion failed m_page.shouldSuppressScrollbarAnimations() in FocusController::setIsVisibleAndActiveInternal(bool)
https://bugs.webkit.org/show_bug.cgi?id=241609

Reviewed by Simon Fraser.

Revert to original assert after change in https://bugs.webkit.org/show_bug.cgi?id=238497. In the case of a scrollable
area with no scrollbars, m_scrollerImpPair is not nil, but its members _horizontalScrollerImp and _verticalScrollerImp
are nil, so presumably the NSScroller API handles this case correctly.

  • Source/WebCore/page/FocusController.cpp:

(WebCore::FocusController::setIsVisibleAndActiveInternal):

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

8:46 PM Changeset in webkit [295654] by commit-queue@webkit.org
  • 1 edit in trunk/Websites/perf.webkit.org/tools/sync-commits.py

sync-commits.py should force reset to FETCH_HEAD instead.

Patch by Zhifei Fang <facetothefate@gmail.com> on 2022-06-17
Reviewed by Jonathan Bedard.

  • Websites/perf.webkit.org/tools/sync-commits.py:

(GitRepository._fetch_remote):

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

5:50 PM Changeset in webkit [295653] by commit-queue@webkit.org
  • 1 edit in trunk/Websites/perf.webkit.org/tools/sync-commits.py

[sync-commit.py] Stop syncing SVN revision after a certain revision

Patch by Zhifei Fang <facetothefate@gmail.com> on 2022-06-17
Reviewed by Dewei Zhu.

  • Websites/perf.webkit.org/tools/sync-commits.py:

(load_repository):
(GitRepository.init):
(GitRepository.fetch_next_commit):
(GitRepository._svn_revision_from_git_hash):
(GitRepository._git_hash_from_svn_revision_hash_mixed):
(GitRepository._revision_from_tokens):
(GitRepository._git_hash_from_svn_revision): Deleted.

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

5:15 PM Changeset in webkit [295652] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/audio/DenormalDisabler.h

General Protection Fault in WebKitWebProcess on 32bit CPUs

Patch by Karo <karogyoker2@gmail.com> on 2022-06-17
https://bugs.webkit.org/show_bug.cgi?id=241588

Reviewed by Yusuke Suzuki.

The DAZ flag is used unconditionally and that makes every 32 bit CPUs crash except newer steppings of Pentium 4.

  • Source/WebCore/platform/audio/DenormalDisabler.h:

(WebCore::DenormalDisabler::DenormalDisabler):
(WebCore::DenormalDisabler::isDAZSupported):

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

4:59 PM Changeset in webkit [295651] by Devin Rousso
  • 8 edits in trunk

Web Inspector: Allow forcing pseudo class :target
https://bugs.webkit.org/show_bug.cgi?id=241707

Reviewed by Patrick Angle and Yusuke Suzuki.

Test: inspector/css/forcePseudoState.html

  • Source/JavaScriptCore/inspector/protocol/CSS.json:
  • Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::forcePseudoState):

  • Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.displayNameForForceablePseudoClass):
(WI.CSSManager.prototype.canForcePseudoClass):

  • Source/WebCore/css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • Source/WebCore/cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsTarget):

  • Source/WebCore/dom/Document.h:

(WebCore::Document::cssTargetMemoryOffset): Deleted.
Adjust the CSS JIT to also take into account Web Inspector forcibly applying :target styles.

  • LayoutTests/inspector/css/forcePseudoState.html:
  • LayoutTests/inspector/css/forcePseudoState-expected.txt:

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

4:56 PM Changeset in webkit [295650] by beidson@apple.com
  • 1 edit in trunk/Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp

pas_panic_on_out_of_memory_error decoding large session state data blobs
https://bugs.webkit.org/show_bug.cgi?id=241486 and <rdar://90025974>

Reviewed by Tim Horton.

  • Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::encodeLegacySessionState): Try malloc, and gracefully handle failure.

This will result in some users losing session state blobs in large single tab use cases,
but is better than crashing the UI process.
Better handling these cases will be subject of followup work.

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

4:56 PM Changeset in webkit [295649] by commit-queue@webkit.org
  • 2 edits
    2 deletes in trunk

video.currentSrc should not be reset when a new load errors
https://bugs.webkit.org/show_bug.cgi?id=225451

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-17
Reviewed by Jer Noble.

  • LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-currentSrc-expected.txt:

Covered by existing test which was previously failing.

  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::prepareForLoad):

Media test removed since this condition is already covered by the above WPT test.

  • LayoutTests/media/video-currentsrc-cleared.html: Removed.
  • LayoutTests/media/video-currentsrc-cleared-expected.txt: Removed.

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

4:47 PM Changeset in webkit [295648] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Avoid using hardware JPEG decoding in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=241560
<rdar://94474188>

Reviewed by Simon Fraser.

This patch switches the file thumbnail logic in WebKit to use PNG, rather than JPEG.
This provides two benefits: (1) it uses a better image format for this use case,
and (2) it avoids attempts by CoreGraphics to perform hardware JPEG decoding in the
WebContent process, which is prohibited by the current sandbox.

  • Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]): Switch to using UIImagePNGRepresentation.

  • Source/WebKit/WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChooseFilesForOpenPanelWithDisplayStringAndIcon):

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

4:18 PM Changeset in webkit [295647] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk

Cues displayed during end time
https://bugs.webkit.org/show_bug.cgi?id=221854
<rdar://problem/74541188>

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-17
Reviewed by Eric Carlson.

Fixed edge case with cue intervals that had end times that coincided
with the current media time in order to follow the spec.

Test: media/track/track-cue-endtime.html

  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateActiveTextTrackCues):

  • LayoutTests/media/track/track-cue-endtime-expected.txt: Added.
  • LayoutTests/media/track/track-cue-endtime.html: Added.

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

4:09 PM Changeset in webkit [295646] by Devin Rousso
  • 1 edit in trunk/Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp

Add PaymentHandler references when handling updates
https://bugs.webkit.org/show_bug.cgi?id=241726
<rdar://problem/95372332>

Reviewed by Wenson Hsieh.

  • Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::paymentMethodChanged):
(WebCore::PaymentRequest::settleDetailsPromise):
(WebCore::PaymentRequest::complete):
(WebCore::PaymentRequest::retry):

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

3:18 PM Changeset in webkit [295645] by Wenson Hsieh
  • 2 edits in trunk

attachment elements with -webkit-user-drag: none; should not be draggable
https://bugs.webkit.org/show_bug.cgi?id=241720
rdar://95401577

Reviewed by Tim Horton.

The logic to walk up the ancestor chain in search of draggable elements in draggableElement()
currently ignores -webkit-user-drag for attachment elements, and instead considers the
attachment draggable as long as it's either the only element in the selection range, or the
selection range does not encompass the hit-tested attachment element.

Fix this by only proceeding with the single-attachment-drag codepath (DragSourceAction::Attachment)
in the case where the dragged attachment has a -webkit-user-drag value that isn't "none".

Test: WKAttachmentTests.UserDragNonePreventsDragOnAttachmentElement

  • Source/WebCore/page/DragController.cpp:

(WebCore::DragController::draggableElement const):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

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

2:42 PM Changeset in webkit [295644] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in

Remove some sandbox telemetry
https://bugs.webkit.org/show_bug.cgi?id=241725

Reviewed by Geoffrey Garen.

Remove some sandbox telemetry in the WebContent process on iOS to make room for other telemetry.

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

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

1:33 PM Changeset in webkit [295643] by Jonathan Bedard
  • 4 edits in trunk

[git-webkit] Add WebKit-security remote
https://bugs.webkit.org/show_bug.cgi?id=241647
<rdar://problem/95235184>

Reviewed by Stephanie Lewis.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.github): Don't add remote postfix if repo name already has the remote postfix.

  • metadata/git_config_extension: Add WebKit-security remote.

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

12:06 PM Changeset in webkit [295642] by achristensen@apple.com
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm

New test: [macOS/iOS arm64] TestWebKitAPI.WKContentRuleListStoreTest.CrossOriginCookieBlocking is crashing
https://bugs.webkit.org/show_bug.cgi?id=241653

Reviewed by Yusuke Suzuki.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:

(TEST_F):

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

11:57 AM Changeset in webkit [295641] by J Pascoe
  • 1 edit in trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm

[WebAuthn] Upgrading a legacy platform credential to a passkey does not delete the legacy credential
https://bugs.webkit.org/show_bug.cgi?id=241608
rdar://95059952

Reviewed by Brent Fulgham.

  • Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
Query credentials by user handle, regardless of sync status to properly remove
legacy credentials.

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

11:03 AM Changeset in webkit [295640] by timothy@apple.com
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Base/Main.js

Inspector window goes into an inactive state when extension tab is selected.
https://bugs.webkit.org/show_bug.cgi?id=241652
rdar://91768323

Reviewed by Devin Rousso.

  • Source/WebInspectorUI/UserInterface/Base/Main.js:

(WI.contentLoaded): Update event listeners to use a single _updateWindowInactiveState
and listen to visibilitychange.
(WI._updateWindowInactiveState): Combined from WI._windowFocused and WI._windowBlurred.
Use document.hasFocus() to check for an active window, which works for child frames too.
When an iframe is the active element, we will not get any more focus or blur events for
the main window, so use a 250ms timeout to keep checking while the iframe is focused.

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

10:42 AM Changeset in webkit [295639] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[Cocoa] Rename WebM Experiment to Alternate WebM Player
https://bugs.webkit.org/show_bug.cgi?id=241695
<rdar://problem/95322406>

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-17
Reviewed by Eric Carlson.

Renamed the WebM Experiment to a more legible name and fixed flag to
show up in internal debug menu.

  • Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml:
  • Source/WTF/wtf/PlatformEnableCocoa.h:

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

10:23 AM Changeset in webkit [295638] by Simon Fraser
  • 9 edits
    4 adds in trunk/LayoutTests/imported/w3c

Update Intersection Observer WPTs
https://bugs.webkit.org/show_bug.cgi?id=241708

Reviewed by Antoine Quint.

Update Intersection Observer WPTs from 93a98d6ac4785d3c78b57845d91c78e2bf12c6eb

  • LayoutTests/imported/w3c/resources/import-expectations.json:
  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/display-none-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/display-none.html:
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-ib-split.html:
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-with-fractional-bounds-2-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-with-fractional-bounds-2.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-with-fractional-bounds-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-with-fractional-bounds.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js:

(return.new.Promise.):
(return.new.Promise):
(waitForNotification):
(waitForFrame): Deleted.
(runTestCycle): Deleted.

  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html:
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/w3c-import.log:
  • LayoutTests/imported/w3c/web-platform-tests/intersection-observer/zero-area-element-visible.html:

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

9:23 AM Changeset in webkit [295637] by Jonathan Bedard
  • 3 edits in trunk/Tools/CISupport/ews-build

[ews-build.webkit.org] Seperate authentication for EWS and Merge-Queue
https://bugs.webkit.org/show_bug.cgi?id=241698
<rdar://problem/95328651>

Reviewed by Aakash Jain.

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

(Events.sendDataToGitHub): Allow caller to pick a different set of GitHub credentials.
(Events.buildFinishedGitHub): Pick GitHub credentials specific to builder.
(Events.stepStartedGitHub): Ditto.

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

(GitHub):
(GitHub.user_for_queue): Map buildername to GitHub user.
(GitHub.credentials): Allow caller to pick a different set of GitHub credentials.
(GitHubMixin.fetch_data_from_url_with_authentication_github): Pick GitHub credentials
specific to builder.
(GitHubMixin.add_label): Ditto.
(GitHubMixin.remove_labels): Ditto.
(GitHubMixin.comment_on_pr): Ditto.
(GitHubMixin.update_pr): Ditto.
(GitHubMixin.close_pr): Ditto.
(CheckOutPullRequest.run): Ditto.
(PushPullRequestBranch.start): Ditto.

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

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

8:45 AM Changeset in webkit [295636] by Andres Gonzalez
  • 4 edits
    3 adds in trunk

AX ITM: Crash in com.apple.WebKit.WebContent at Recursion :: com.apple.WebCore: WebCore::AXIsolatedTree::collectNodeChangesForSubtree.
https://bugs.webkit.org/show_bug.cgi?id=241571

Test: accessibility/deep-tree.html

Reviewed by Chris Fleizach.

Added a limit for recursive calls to AXIsolatedTree::collectNodeChangesForSubtree. The limit is obtained from the DOM maximum tree depth.
In addition, added a sanity check during parent-child traversal, that none of the children can be equal to the parent. This will not cover all possible circular relations that can cause an infinite recursion, but may catch some pathological cases.

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::updateNode):

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
  • LayoutTests/accessibility/deep-tree-expected.txt: Added.
  • LayoutTests/accessibility/deep-tree.html: Added.
  • LayoutTests/platform/glib/accessibility/deep-tree-expected.txt: Added.

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

8:43 AM Changeset in webkit [295635] by Darin Adler
  • 1 edit in trunk/Source/JavaScriptCore/runtime/JSONObject.cpp

Speed up JSON.stringify by cutting down on reference count churn, etc.
https://bugs.webkit.org/show_bug.cgi?id=241533

Reviewed by Ross Kirsling and Yusuke Suzuki.

  • Source/JavaScriptCore/runtime/JSONObject.cpp:

(JSC::unwrapBoxedPrimitive): Break out object check so we can host it
into the caller in some cases.
(JSC::PropertyNameForFunctionCall::PropertyNameForFunctionCall): Use
PropertyName instead of Identifier to avoid reference count churn.
(JSC::PropertyNameForFunctionCall::value const): Ditto.
(JSC::Stringifier::stringify): Update to use PropertyName.
(JSC::Stringifier::appendStringifiedValue): Use ASCIILiteral when
appending literals to StringBuilder, for possible future optimization,
no benefit for now. Move exception check inside isObject clause so we
don't do it for non-object values like strings.
(JSC::Stringifier::indent): Use StringView instead of String for
m_indent to avoid reference count churn.
(JSC::Stringifier::unindent): Ditto.
(JSC::Stringifier::startNewLine const): Use a single call to append
instead of two separate ones. Also twweak coding style.
(JSC::Stringifier::Holder::appendNextProperty): Use PropertyName
instead of Identifier.

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

8:22 AM Changeset in webkit [295634] by Jonathan Bedard
  • 2 edits in trunk/Tools/CISupport/ews-build

[ews-build.webkit.org] Support periods in reviewer name
https://bugs.webkit.org/show_bug.cgi?id=241706

Reviewed by Aakash Jain.

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

(ValidateCommitMessage):
(ValidateCommitMessage.extract_reviewers): Support reviewers with periods in their name.

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

(mock_load_contributors):

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

6:35 AM Changeset in webkit [295633] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Remove redundant logical right computation for grid items in RenderBlock::computeOverflow
https://bugs.webkit.org/show_bug.cgi?id=241689

Reviewed by Simon Fraser.

If the grid content produces layout overflow, we should not need to re-compute it again by looping through the grid items.

  1. Decouple "include padding end" and "include child's margin end" logic
  2. Decouple "include padding after" and "include padding end" logic.
  3. Restore RenderFlexibleBox and RenderGrid computeOverflow calls to pre-r282463 (when clientLogicalRightAndBottomAfterRepositioning was introduced)
  • LayoutTests/fast/overflow/grid-horizontal-overflow-with-padding-end-expected.html: Added.
  • LayoutTests/fast/overflow/grid-horizontal-overflow-with-padding-end.html: Added.
  • Source/WebCore/rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::layoutOverflowLogicalBottom):
(WebCore::RenderBlock::clientLogicalRightAndBottomAfterRepositioning const): Deleted.

  • Source/WebCore/rendering/RenderBlock.h:
  • Source/WebCore/rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation const):

  • Source/WebCore/rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutBlock):

  • Source/WebCore/rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):

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

4:57 AM Changeset in webkit [295632] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/LayoutTests/imported/w3c/web-platform-tests

css/css-transitions/before-load-001.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=235131
<rdar://87785218>

Patch by Antoine Quint <Antoine Quint> on 2022-06-17
Unreviewed WPT import (https://github.com/web-platform-tests/wpt/pull/34463) and rebaseline.

  • LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/before-load-001-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/before-load-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event-until-move-to-empty-source-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event-until-move-to-empty-source.html: Added.

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

12:23 AM Changeset in webkit [295631] by Jean-Yves Avenard
  • 1 edit in trunk/metadata/contributors.json

Change contributor status of Jean-Yves Avenard from committer to reviewer

Unreviewed change.

  • metadata/contributors.json:

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

Jun 16, 2022:

11:58 PM Changeset in webkit [295630] by timothy_horton@apple.com
  • 10 edits
    8 adds in trunk

Record InteractionRegions per RenderLayer, instead of all on the root
https://bugs.webkit.org/show_bug.cgi?id=241503
<rdar://problem/93855866>

Reviewed by Simon Fraser.

  • Source/WebCore/page/DebugPageOverlays.cpp:

(WebCore::pathsForRegion):
(WebCore::InteractionRegionOverlay::activeLayer const):
(WebCore::InteractionRegionOverlay::activeRegion const):
(WebCore::InteractionRegionOverlay::drawRect):
Hit test to the correct layer and retrieve regions from that layer for the debug overlay.
Also, fix some coordinate conversion now that we actually see non-root layers.

  • Source/WebCore/page/InteractionRegion.cpp:

(WebCore::cursorTypeForElement):
(WebCore::interactionRegionForRenderedRegion):
(WebCore::absoluteBoundingRectForRange): Deleted.
(WebCore::regionForElement): Deleted.
(WebCore::interactionRegions): Deleted.

  • Source/WebCore/page/InteractionRegion.h:

Refactor InteractionRegion to take the same arguments as EventRegion::unite(),
so we can call it from there. Use the painting-originated rects in the Region,
instead of computing them ourselves.

  • Source/WebCore/rendering/EventRegion.cpp:

(WebCore::EventRegionContext::unite):
(WebCore::EventRegionContext::uniteInteractionRegions):
(WebCore::EventRegionContext::copyInteractionRegionsToEventRegion):
(WebCore::EventRegion::computeInteractionRegions): Deleted.

  • Source/WebCore/rendering/EventRegion.h:

Collect InteractionRegions in a HashMap by element identifier, in order to
unite the rects for a given element -- but not *across* elements, like other EventRegions.
We need to keep them separate so that we can add an indicator for the united region.
Also, unusually, we maintain this map on the EventRegionContext as we paint, and copy them
to the serialized type at the end, to avoid having two different members on
EventRegion that are only valid on opposite sides of the process boundary.

  • Source/WebCore/rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):
Stop computing interaction regions for the root layer.

  • Source/WebCore/rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • Source/WebCore/rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollLayerClipping):

  • Source/WebCore/rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):

  • Source/WebCore/rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter<TextBoxPath>::paint):
Plumb the renderer through to EventRegionContext so that we can use it in
InteractionRegion::interactionRegionForRenderedRegion.

  • LayoutTests/interaction-region/click-handler-in-shadowed-layer-expected.txt: Added.
  • LayoutTests/interaction-region/click-handler-in-shadowed-layer.html: Added.
  • LayoutTests/interaction-region/inline-link-in-layer-expected.txt: Added.
  • LayoutTests/interaction-region/inline-link-in-layer.html: Added.
  • LayoutTests/interaction-region/inline-link-in-composited-iframe-expected.txt: Added.
  • LayoutTests/interaction-region/inline-link-in-composited-iframe.html: Added.
  • LayoutTests/interaction-region/inline-link-in-non-composited-iframe-expected.txt: Added.
  • LayoutTests/interaction-region/inline-link-in-non-composited-iframe.html: Added.

Add some tests.

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

11:23 PM Changeset in webkit [295629] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/html/canvas

Fix InspectorScopedShaderProgramHighlight for indexed blend state
https://bugs.webkit.org/show_bug.cgi?id=241463

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-16
Reviewed by Kimmo Kinnunen.

  • The program highlight helper now correctly restores

indexed blend state when OES_draw_buffers_indexed is enabled.

  • The program highlight helper now skips non-default FBOs.
  • Optimized execution to directly call into GL context

avoiding extra validation and value unboxing.

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::InspectorScopedShaderProgramHighlight::showHighlight):
(WebCore::InspectorScopedShaderProgramHighlight::hideHighlight):
(WebCore::InspectorScopedShaderProgramHighlight::saveBlendValue): Deleted.
(WebCore::InspectorScopedShaderProgramHighlight::hasBufferBinding): Deleted.
(WebCore::InspectorScopedShaderProgramHighlight::hasFramebufferParameterAttachment): Deleted.

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.h:

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

11:05 PM Changeset in webkit [295628] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[iOS] Callout bar is sometimes obscured when selecting Live Text in a fullscreen video in AVPlayerViewController
https://bugs.webkit.org/show_bug.cgi?id=241700
rdar://95310525

Reviewed by Tim Horton.

Even after the changes in r295052, UITextEffectsWindow-hosted text selection views (e.g. grabber
dots and callout bar) are still _sometimes_ obscured behind the fullscreen player view controller
window. This happens because UIKit may actually maintain multiple UITextEffectsWindows at
different window levels (only one of which is used to host text selection UI for Live Text in
fullscreen videos). For instance, if the user focuses the unified field in Safari and selects or
edits text in the unified field, a UITextEffectsWindow with a window level of 1.0 will be
instantiated; if this happens prior to triggering Live Text for a fullscreen video, this text
effects window may be reused for Live Text.

In cases where this .windowLevel = 1.0 text effects window is used, the window used for the player
view controller (which currently has a level of UITextEffectsBeneathStatusBarWindowLevel - 1) will
be above the rest of the Live Text selection UI, which causes this bug to occur.

Mitigate this by explicitly grabbing the UITextEffectsWindow that corresponds to the player view's
window using +sharedTextEffectsWindowForWindowScene:, and setting the player view window's level
to a value that's right below this text effects window.

  • Source/WebCore/PAL/pal/ios/UIKitSoftLink.h:
  • Source/WebCore/PAL/pal/ios/UIKitSoftLink.mm:
  • Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h:
  • Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup):

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

10:26 PM Changeset in webkit [295627] by Claudio Saavedra
  • 4 edits in trunk/Source

Assorted build-time warnings fixes
https://bugs.webkit.org/show_bug.cgi?id=241681

Reviewed by Mark Lam.

  • Source/JavaScriptCore/bytecode/Repatch.cpp:

(JSC::linkPolymorphicCall): Use declared codeBlock variable.

  • Source/JavaScriptCore/runtime/TemporalPlainTime.cpp:

(JSC::roundTime): Fix function reaching end without return
value.

  • Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::computeMinimumValue): Ditto.

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):
Remove leftover variable.

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

9:53 PM Changeset in webkit [295626] by Kate Cheney
  • 12 edits in trunk

[Trackpad with iPad] Right-clicking on text sometimes doesn't show the correct list of actions
https://bugs.webkit.org/show_bug.cgi?id=241645
rdar://91792562

Reviewed by Devin Rousso.

This patch fixes a race condition in Reveal code where we may not have updated
the selection in UITextInteractionAssistant before calling the
completion handler for the Reveal menu. This results in an empty menu
appearing often during a right-click.

To fix this, this patch converts sendEditorStateUpdate to an async call and
makes sure that call has completed before returning the context menu.

Since this is a race condition, it was a bit tricky to test. This patch
adds a function _simulateSelectionStart which sets up the WKContentView
as if a selection has begun, but it doesn't actually contact the
UITextInteractionAssistant (to avoid flaky false positives). Then the test calls
the context menu code and makes sure that the UITextInteractionAssistant has
been contacted by the time it completes.

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

(-[WKWebView _simulateSelectionStart]):

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::editorStateChanged):

  • Source/WebKit/UIProcess/WebPageProxy.h:
  • Source/WebKit/UIProcess/WebPageProxy.messages.in:
  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _simulateSelectionStart]):

  • Source/WebKit/WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::deleteSurrounding):
(WebKit::WebPage::didApplyStyle):
(WebKit::WebPage::didChangeContents):
(WebKit::WebPage::didUpdateComposition):
(WebKit::WebPage::didEndUserTriggeredSelectionChanges):
(WebKit::WebPage::discardedComposition):
(WebKit::WebPage::canceledComposition):
(WebKit::WebPage::sendEditorStateUpdate):
(WebKit::WebPage::flushPendingEditorStateUpdate):

  • Source/WebKit/WebProcess/WebPage/WebPage.h:
  • Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::prepareSelectionForContextMenuWithLocationInView):
(WebKit::WebPage::requestPositionInformation):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:

(handleUpdatedSelection):
(TEST):

  • Tools/TestWebKitAPI/ios/UIKitSPI.h:

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

7:47 PM Changeset in webkit [295625] by commit-queue@webkit.org
  • 12 edits
    2 adds in trunk

Fix styling of th elements when explicitly specifiying text-align:inherit
https://bugs.webkit.org/show_bug.cgi?id=138577

Patch by Ryan Reno <rreno@apple.com> on 2022-06-16
Reviewed by Tim Nguyen.

<th> elements were being incorrectly centered when specifying
text-align: inherit. This fixes that bug by adding a new internal CSS
value for use in the UA stylesheet. This also removes a non-inherited
flag that was meant to be used for detecting this special case but ultimately didn't
work due to conflicts with the all property.

  • Source/WebCore/css/CSSValueKeywords.in:
  • Source/WebCore/css/html.css:

(th):

  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • Source/WebCore/css/parser/CSSParserIdioms.cpp:

(WebCore::isValueAllowedInMode):

  • Source/WebCore/rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • Source/WebCore/rendering/style/RenderStyle.h:

(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::hasExplicitlySetTextAlign const): Deleted.
(WebCore::RenderStyle::setHasExplicitlySetTextAlign): Deleted.

  • Source/WebCore/style/StyleAdjuster.cpp:

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

  • Source/WebCore/style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTextAlign):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialTextAlign): Deleted.
(WebCore::Style::BuilderCustom::applyValueTextAlign): Deleted.

  • LayoutTests/fast/css/internal-th-center-ua-only-expected.txt: Added.
  • LayoutTests/fast/css/internal-th-center-ua-only.html: Added.
  • LayoutTests/fast/table/center-th-when-parent-has-initial-text-align-expected.html:
  • LayoutTests/fast/table/center-th-when-parent-has-initial-text-align.html:

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

7:20 PM Changeset in webkit [295624] by basuke.suzuki@sony.com
  • 5 edits in trunk/Source/JavaScriptCore

The extraMemorySize() get wrong when transferring ArrayBuffer from Worker VM
https://bugs.webkit.org/show_bug.cgi?id=241559

Reviewed by Yusuke Suzuki.

When ArrayBuffer is passed in the transfer option of postMessage(), the size cached in
heap.m_arrayBuffers get incorrect and that makes extraMemorySize() bigger than actual
managed size.

This patch added the code to reduce size from GCIncomingRefCountedSet.m_bytes when
ArrayBuffer is actually transferring from VM.

Also for verification, added a simple check code in GCIncomingRefCountedSet.addReference
with constexpr flag.

  • Source/JavaScriptCore/heap/GCIncomingRefCountedSet.h:
  • Source/JavaScriptCore/heap/GCIncomingRefCountedSetInlines.h:

(JSC::GCIncomingRefCountedSet<T>::sweep):
(JSC::GCIncomingRefCountedSet<T>::reduceSize):

  • Source/JavaScriptCore/heap/Heap.cpp:

(JSC::Heap::reduceArrayBufferSize):

  • Source/JavaScriptCore/heap/Heap.h:
  • Source/JavaScriptCore/runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::transferTo):

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

7:17 PM Changeset in webkit [295623] by Devin Rousso
  • 13 edits
    2 adds in trunk

Web Inspector: Elements: rework CSS pseudo class toggles
https://bugs.webkit.org/show_bug.cgi?id=241655

Reviewed by Patrick Angle.

Move the forced pseudo class checkboxes to the bottom of the sidebar next to the class list
checkboxes (though only one of them can be enabled at a time) since more space is needed to support
new (and future) pseudo classes and using space at the bottom of the sidebar is better than at the
top (since there's already precedent with the class list checkboxes).

Test: inspector/css/forcePseudoState.html

  • Source/WebInspectorUI/UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel):
(WI.GeneralStyleDetailsSidebarPanel.prototype.get minimumWidth):
(WI.GeneralStyleDetailsSidebarPanel.prototype.attached):
(WI.GeneralStyleDetailsSidebarPanel.prototype.layout):
(WI.GeneralStyleDetailsSidebarPanel.prototype.addEventListeners):
(WI.GeneralStyleDetailsSidebarPanel.prototype.removeEventListeners):
(WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
(WI.GeneralStyleDetailsSidebarPanel.prototype.sizeDidChange):
(WI.GeneralStyleDetailsSidebarPanel.prototype._updateClassListContainer): Added.
(WI.GeneralStyleDetailsSidebarPanel.prototype._updateForcedPseudoClassContainer): Added.
(WI.GeneralStyleDetailsSidebarPanel.prototype._handleNodeChanged):
(WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged): Added.
(WI.GeneralStyleDetailsSidebarPanel.prototype._updatePseudoClasasCheckboxes): Added.
(WI.GeneralStyleDetailsSidebarPanel.prototype._classListToggleButtonClicked): Renamed from _classToggleButtonClicked.
(WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassToggleButtonClicked): Added.
(WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusLastPseudoClassCheckbox): Deleted.
(WI.GeneralStyleDetailsSidebarPanel.prototype.get _initialScrollOffset): Deleted.
(WI.GeneralStyleDetailsSidebarPanel.prototype._updateNoForcedPseudoClassesScrollOffset): Deleted.
(WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown): Deleted.

  • Source/WebInspectorUI/UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ :is(.options-container, .class-list-container, .forced-pseudo-class-container)): ADded.
(.sidebar > .panel.details.css-style > .content ~ :is(.options-container, .class-list-container)):
(.sidebar > .panel.details.css-style > .content:not(.supports-new-rule, .has-filter-bar) ~ :is(.options-container, .class-list-container, .forced-pseudo-class-container)): Renamed from .sidebar > .panel.details.css-style > .content:not(.supports-new-rule, .has-filter-bar) ~ :is(.options-container, .class-list-container).
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle): Renamed from .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle.
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle:focus): Renamed from .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:focus.
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle::before): Renamed from .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle::before.
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle:is(.selected, :hover)): Renamed from .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:is(.selected, :hover).
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle:is(.selected, :hover)::before): Renamed from .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:is(.selected, :hover)::before.
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle:not(.selected):hover::before): Renamed from .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:not(.selected):hover::before.
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle.selected:active::before): Renamed from .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle.selected:active::before.
(.sidebar > .panel.details.css-style > .content:not(.supports-new-rule) ~ .options-container > .new-rule, .sidebar > .panel.details.css-style > .content:not(.supports-toggle-class-list) ~ .options-container > .toggle.class-list, .sidebar > .panel.details.css-style > .content:not(.supports-toggle-forced-pseudo-class) ~ .options-container > .toggle.forced-pseudo-class, .sidebar > .panel.details.css-style > .content:not(.has-filter-bar) ~ .options-container > .filter-bar, .sidebar > .panel.details.css-style > .content:not(.supports-new-rule):not(.supports-toggle-class-list):not(.supports-toggle-forced-pseudo-class):not(.has-filter-bar) ~ .options-container): Renamed from .sidebar > .panel.details.css-style > .content:not(.supports-new-rule) ~ .options-container > .new-rule, .sidebar > .panel.details.css-style > .content:not(.supports-toggle-css-class) ~ .options-container > .toggle-class-toggle, .sidebar > .panel.details.css-style > .content:not(.has-filter-bar) ~ .options-container > .filter-bar, .sidebar > .panel.details.css-style > .content:not(.supports-new-rule):not(.supports-toggle-class):not(.has-filter-bar) ~ .options-container.
(.sidebar > .panel.details.css-style > .content ~ :is(.class-list-container, .forced-pseudo-class-container)): Added.
(.sidebar > .panel.details.css-style > .content ~ :is(.class-list-container, .forced-pseudo-class-container)[hidden]): Added.
(.sidebar > .panel.details.css-style > .content ~ .class-list-container):
(.sidebar > .panel.details.css-style > .content ~ .forced-pseudo-class-container): Added.
(.sidebar > .panel.details.css-style > .content ~ .forced-pseudo-class-container > label): Added.

  • Source/WebInspectorUI/UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel.prototype.get supportsToggleCSSClassList): Added.
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.get supportsToggleCSSForcedPseudoClass): Added.
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.get initialToggleCSSForcedPseudoClassState): Added.
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionStartEditingAdjacentRule):
Remove styleDetailsPanelFocusLastPseudoClassCheckbox as the forced pseudo class checkboxes are no
longer at the top, and therefore should not be focused when shift-tabbing from the first property.

  • Source/WebInspectorUI/UserInterface/Views/StyleDetailsPanel.js:

(WI.StyleDetailsPanel.prototype.get supportsToggleCSSClassList): Renamed from get supportsToggleCSSClass.
(WI.StyleDetailsPanel.prototype.get supportsToggleCSSForcedPseudoClass):
(WI.StyleDetailsPanel.prototype.get _initialScrollOffset): Deleted.
No need to adjust the initial scrollTop for the forced pseudo class checkboxes since they are no
longer at the top.

  • Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.get supportsToggleCSSClassList): Added.
(WI.ComputedStyleDetailsPanel.prototype.get supportsToggleCSSForcedPseudoClass): Added.
(WI.ComputedStyleDetailsPanel.prototype.get initialToggleCSSForcedPseudoClassState): Added.

  • Source/WebInspectorUI/UserInterface/Views/FontDetailsPanel.js:

(WI.FontDetailsPanel.prototype.get supportsToggleCSSClass): Deleted.
Allow WI.StyleDetailsPanel subclasses to control whether they support forcing pseudo classes (and
if so whether the container should initially be shown).

  • Source/JavaScriptCore/inspector/protocol/CSS.json:
  • Source/WebCore/inspector/agents/InspectorCSSAgent.h:
  • Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:

(WebCore::computePseudoClassMask): Deleted.
(WebCore::InspectorCSSAgent::forcePseudoState):

  • Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.displayNameForForceablePseudoClass): Added.
(WI.CSSManager.prototype.canForcePseudoClass): Renamed from canForcePseudoClasses.
Add enum values for :focus-visible and :focus-within.
Drive-by: Make CSS.ForceablePseudoClass enum instead of having it be an inline/anonymous enum for

only CSS.forcePseudoState.

  • Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForDOMNode):

  • Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype._populateIconElementContextMenu):
Handle WI.CSSManager.ForceablePseudoClass now being an object instead of an array.

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • LayoutTests/inspector/css/forcePseudoState.html: Added.
  • LayoutTests/inspector/css/forcePseudoState-expected.txt: Added.

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

6:43 PM Changeset in webkit [295622] by ysuzuki@apple.com
  • 1 edit in trunk/.github/CODEOWNERS

Unreviewed, add bmalloc related information to .github/CODEOWNERS

  • .github/CODEOWNERS:

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

6:38 PM Changeset in webkit [295621] by Cameron McCormack
  • 64 edits
    1 copy
    15 adds in trunk

Add a new DrawDecomposedGlyphs display list item to avoid repeatedly sending glyphs when using the GlyphDisplayListCache
https://bugs.webkit.org/show_bug.cgi?id=240497
<rdar://93387615>

Reviewed by Simon Fraser.

The GlyphDisplayListCache is used to record a display list for
frequently painting text content. With GPU Process DOM rendering, there
is significant overhead in sending the contents of these display lists
over IPC. The contents of these display lists don't change if the text
content in the document doesn't change, so we could greatly reduce the
overhead by treating the data inside a display list item for glyph
drawing as a remote resource.

This commit adds:

  • a new display list item, DrawDecomposedGlyphs, to represent drawing a glyph list resource
  • a new class, DecomposedGlyphs, which is the resource type
  • a new struct, PositionedGlyphs, to provide a common place for the glyph drawing fields (the vector of glyph IDs, the anchor position, etc.) to live, so that we don't have duplication between DisplayList::DrawGlyphs and DecomposedGlyphs

So that a DrawDecomposedGlyphs command can be replayed from a
GlyphDisplayListCache's in-memory display list and recorded to a
RemoteDisplayListRecorder, the GraphicsContext API gains a new
drawDecomposedGlyphs function.

A new argument to the DisplayList::RecordImpl constructor (and the
DrawGlyphsRecorder) is added to represent how to record drawText
commands:

  • DrawGlyphsMode::Normal, which records each GraphicsContext::drawText call with a single DrawText command
  • DrawGlyphsMode::DeconstructToDrawGlyphsCommands, which ensures different text layers get deconstructed into separate DrawText commands
  • DrawGlyphsMode::DeconstructToDrawDecomposedGlyphsCommands, which ensures different text layers get desconstructed into separate DrawDecomposedGlyphs commands

FontCascade::displayListForTextRun is updated to use that last value.

Additionally, GlyphDisplayListCache is extended to cache display lists
keyed off TextRun/FontCascade/etc. values. This allows sharing of the same
cached display list between different elements on the page that have the same
text content.

This sharing would not be valid if the two elements have different
values for the color property, and the text contains COLRv0 glyphs that
alternate painting of specific colors and the color fill color, since
the recording would incorrectly record a setFillBrush command
corresponding to the first element's fill color. Rather than extend the
glyph recorder to parameterize the current fill (and stroke) colors, we
detect when outlines are drawn with colors other than the context's
initial colors, and prevent sharing. This is done by checking whether
the recorded display list contains items that aren't known to be safe
for sharing.

Similarly, if the sharing would not be valid if the contains bitmap
images (like those from emoji fonts) or SVG glyphs, both of which are
captured as DrawNativeImage commands, if the text is drawn at different
scales. This is because the size of the images is dependent on the
scale. We detect and prevent reuse across different text runs if the
scale is different, by checking the recorded display list for
DrawNativeImage commands and by storing the context scale on the
GlyphDisplayListCache::Entry.

  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-color-expected.txt:
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-colr-unshared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-colr-unshared.html: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-scaled-unshared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-scaled-unshared.html: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-shadow-unshared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-shadow-unshared.html: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-shared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-shared.html: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-svg-unshared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-svg-unshared.html: Added.
  • Source/WTF/wtf/PlatformHave.h:
  • Source/WebCore/Headers.cmake:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/page/MemoryRelease.cpp:

(WebCore::releaseNoncriticalMemory):

  • Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp:

(WebCore::BifurcatedGraphicsContext::drawDecomposedGlyphs):

  • Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h:
  • Source/WebCore/platform/graphics/DecomposedGlyphs.cpp: Added.

(WebCore::DecomposedGlyphs::create):
(WebCore::DecomposedGlyphs::DecomposedGlyphs):
(WebCore::m_renderingResourceIdentifier):

  • Source/WebCore/platform/graphics/DecomposedGlyphs.h: Added.

(WebCore::DecomposedGlyphs::positionedGlyphs const):
(WebCore::DecomposedGlyphs::bounds const):
(WebCore::DecomposedGlyphs::addObserver):
(WebCore::DecomposedGlyphs::removeObserver):
(WebCore::DecomposedGlyphs::renderingResourceIdentifier const):

  • Source/WebCore/platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • Source/WebCore/platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawDecomposedGlyphs):

  • Source/WebCore/platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawGlyphsAndCacheResources):
(WebCore::GraphicsContext::drawGlyphsAndCacheFont): Deleted.

  • Source/WebCore/platform/graphics/NullGraphicsContext.h:
  • Source/WebCore/platform/graphics/PositionedGlyphs.cpp: Copied from Source/WebCore/platform/graphics/win/DrawGlyphsRecorderWin.cpp.

(WebCore::PositionedGlyphs::computeBounds const):

  • Source/WebCore/platform/graphics/PositionedGlyphs.h: Added.

(WebCore::PositionedGlyphs::PositionedGlyphs):
(WebCore::PositionedGlyphs::encode const):
(WebCore::PositionedGlyphs::decode):

  • Source/WebCore/platform/graphics/TextRun.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):
(WebCore::TextRun::isHashTableEmptyValue const):
(WebCore::TextRun::isHashTableDeletedValue const):
(WebCore::TextRun::isolatedCopy const):

  • Source/WebCore/platform/graphics/TextRunHash.h: Added.

(WebCore::add):
(WebCore::TextRun::operator== const):
(WebCore::TextRunHash::hash):
(WebCore::TextRunHash::equal):
(WTF::HashTraits<WebCore::TextRun>::isDeletedValue):
(WTF::HashTraits<WebCore::TextRun>::isEmptyValue):
(WTF::HashTraits<WebCore::TextRun>::constructDeletedValue):
(WTF::HashTraits<WebCore::TextRun>::emptyValue):

  • Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContextCairo::drawDecomposedGlyphs):

  • Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h:
  • Source/WebCore/platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::createInternalContext):
(WebCore::DrawGlyphsRecorder::updateCTM):
(WebCore::DrawGlyphsRecorder::recordDrawGlyphs):

  • Source/WebCore/platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::description const):
(WebCore::DisplayList::DisplayList::append):

  • Source/WebCore/platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::cacheDecomposedGlyphs):

  • Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):

  • Source/WebCore/platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • Source/WebCore/platform/graphics/displaylists/DisplayListItemType.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawGlyphs::DrawGlyphs):
(WebCore::DisplayList::m_bounds):
(WebCore::DisplayList::DrawGlyphs::apply const):
(WebCore::DisplayList::DrawDecomposedGlyphs::apply const):
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::dumpItem):
(WebCore::DisplayList::dumpItemHandle):
(WebCore::DisplayList::DrawGlyphs::computeBounds): Deleted.

  • Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawGlyphs::localAnchor const):
(WebCore::DisplayList::DrawGlyphs::anchorPoint const):
(WebCore::DisplayList::DrawGlyphs::glyphs const):
(WebCore::DisplayList::DrawGlyphs::encode const):
(WebCore::DisplayList::DrawGlyphs::decode):
(WebCore::DisplayList::DrawDecomposedGlyphs::DrawDecomposedGlyphs):
(WebCore::DisplayList::DrawDecomposedGlyphs::fontIdentifier const):
(WebCore::DisplayList::DrawDecomposedGlyphs::decomposedGlyphsIdentifier const):
(WebCore::DisplayList::DrawDecomposedGlyphs::globalBounds const):
(WebCore::DisplayList::DrawDecomposedGlyphs::localBounds const):

  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::shouldDeconstructDrawGlyphs const):
(WebCore::DisplayList::Recorder::drawGlyphs):
(WebCore::DisplayList::Recorder::drawDecomposedGlyphs):
(WebCore::DisplayList::Recorder::drawGlyphsAndCacheResources):
(WebCore::DisplayList::Recorder::drawGlyphsAndCacheFont): Deleted.

  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::RecorderImpl):
(WebCore::DisplayList::RecorderImpl::recordDrawDecomposedGlyphs):
(WebCore::DisplayList::RecorderImpl::recordResourceUse):

  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applyDrawDecomposedGlyphs):
(WebCore::DisplayList::Replayer::applyItem):
(WebCore::DisplayList::Replayer::replay):

  • Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h:

(WebCore::DisplayList::LocalResourceHeap::add):

  • Source/WebCore/platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DrawGlyphsRecorder::drawGlyphs):

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

(Nicosia::CairoOperationRecorder::drawDecomposedGlyphs):

  • Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • Source/WebCore/platform/graphics/win/DrawGlyphsRecorderWin.cpp:

(WebCore::DrawGlyphsRecorder::drawGlyphs):

  • Source/WebCore/platform/text/TextDirection.h:

(WebCore::operator<<):

  • Source/WebCore/platform/text/TextFlags.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/text/TextFlags.h:

(WebCore::ExpansionBehavior::operator== const):

  • Source/WebCore/rendering/GlyphDisplayListCache.cpp: Added.

(WebCore::canShareDisplayListWithItem):
(WebCore::add):
(WebCore::GlyphDisplayListCacheKeyTranslator::hash):
(WebCore::GlyphDisplayListCacheKeyTranslator::equal):
(WebCore::GlyphDisplayListCache::singleton):
(WebCore::GlyphDisplayListCache::clear):
(WebCore::GlyphDisplayListCache::size const):
(WebCore::GlyphDisplayListCache::sizeInBytes const):
(WebCore::GlyphDisplayListCache::get):
(WebCore::GlyphDisplayListCache::getIfExists):
(WebCore::GlyphDisplayListCache::remove):
(WebCore::GlyphDisplayListCache::canShareDisplayList):
(WebCore::GlyphDisplayListCacheEntry::~GlyphDisplayListCacheEntry):

  • Source/WebCore/rendering/GlyphDisplayListCache.h:

(WebCore::GlyphDisplayListCacheEntry::create):
(WebCore::GlyphDisplayListCacheEntry::operator== const):
(WebCore::GlyphDisplayListCacheEntry::displayList):
(WebCore::GlyphDisplayListCacheEntry::GlyphDisplayListCacheEntry):
(WebCore::add):
(WebCore::GlyphDisplayListCacheEntryHash::hash):
(WebCore::GlyphDisplayListCacheEntryHash::equal):
(WebCore::GlyphDisplayListCache::get):
(WebCore::GlyphDisplayListCache::getIfExists):
(WebCore::GlyphDisplayListCache::remove):
(WebCore::GlyphDisplayListCache::singleton): Deleted.
(WebCore::GlyphDisplayListCache::clear): Deleted.
(WebCore::GlyphDisplayListCache::size const): Deleted.
(WebCore::GlyphDisplayListCache::sizeInBytes const): Deleted.

  • Source/WebCore/rendering/RenderLayerCompositor.cpp:
  • Source/WebCore/rendering/TextPainter.cpp:

(WebCore::TextPainter::clearGlyphDisplayLists): Deleted.

  • Source/WebCore/rendering/TextPainter.h:

(WebCore::TextPainter::setGlyphDisplayListIfNeeded):
(WebCore::TextPainter::removeGlyphDisplayList):
(WebCore::TextPainter::glyphDisplayListIfExists):

  • Source/WebCore/testing/Internals.cpp:

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

  • Source/WebCore/testing/Internals.h:
  • Source/WebCore/testing/Internals.idl:
  • Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h:

(WebKit::QualifiedResourceHeap::add):
(WebKit::QualifiedResourceHeap::getDecomposedGlyphs const):
(WebKit::QualifiedResourceHeap::removeDecomposedGlyphs):
(WebKit::QualifiedResourceHeap::checkInvariants const):

  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawDecomposedGlyphs):
(WebKit::RemoteDisplayListRecorder::drawDecomposedGlyphsWithQualifiedIdentifiers):

  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::cacheFontWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheDecomposedGlyphs):
(WebKit::RemoteRenderingBackend::cacheDecomposedGlyphsWithQualifiedIdentifier):

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheDecomposedGlyphs):
(WebKit::RemoteResourceCache::cachedDecomposedGlyphs const):
(WebKit::RemoteResourceCache::releaseRemoteResource):

  • Source/WebKit/GPUProcess/graphics/RemoteResourceCache.h:
  • Source/WebKit/Scripts/webkit/messages.py:
  • Source/WebKit/Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DecomposedGlyphs>::encode):
(IPC::ArgumentCoder<DecomposedGlyphs>::decode):

  • Source/WebKit/Shared/WebCoreArgumentCoders.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawDecomposedGlyphs):
(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::cacheDecomposedGlyphs):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::~RemoteResourceCacheProxy):
(WebKit::RemoteResourceCacheProxy::recordDecomposedGlyphsUse):
(WebKit::RemoteResourceCacheProxy::releaseDecomposedGlyphs):
(WebKit::RemoteResourceCacheProxy::clearDecomposedGlyphsMap):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:

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

6:11 PM Changeset in webkit [295620] by dino@apple.com
  • 3 edits in trunk/Source

Clean up code that protects volume from being set on iOS
https://bugs.webkit.org/show_bug.cgi?id=241657
<rdar://problem/95252820>

Reviewed by Eric Carlson.

The code to protect HTMLMediaElement.volume from being writable is guarded
by some PLATFORM(IOS_FAMILY) tests. Make this a
HAVE(MEDIA_VOLUME_PER_ELEMENT) test so it can be expanded a bit easier.

  • Source/WTF/wtf/PlatformHave.h:
  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::updateVolume):
(WebCore::HTMLMediaElement::cancelPendingTasks):
(WebCore::HTMLMediaElement::mediaVolumeDidChange):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume):

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

5:51 PM Changeset in webkit [295619] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore/platform/graphics

Stop updating FontCascade::{m_useBackslashAsYenSymbol,m_enableKerning,m_requiresShaping} in FontCascade::updateFonts
https://bugs.webkit.org/show_bug.cgi?id=241672

Unreviewed.

(Actually this was reviewed by Myles Maxfield, but the bots are having
trouble identifying the reviewer.)

These fields are computed based on the FontDescription. They're only mutable
because we also update them in FontCascade::updateFonts(), but that function
only updates the FontCascadeFonts pointer, not the FontDescription. So there
should be no need to update them at that time.

  • Source/WebCore/platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::updateFonts const):

  • Source/WebCore/platform/graphics/FontCascade.h:

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

5:21 PM Changeset in webkit [295618] by Tyler Wilcock
  • 1 edit in trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

AX: AccessibilityObject::insertChild does not check the validity of the insertionIndex while processing grandchildren
https://bugs.webkit.org/show_bug.cgi?id=241650

Reviewed by Chris Fleizach.

When AccessibilityObject::insertChild is asked to insert a child that's
ignored, we instead add that object's children. However, both
accessibilityIsIgnored and children can cause layout, and said
layout could cause AccessibilityObject::m_children to be cleared. This
makes the insertionIndex invalid, which causes a crash.

In this patch, right before m_children.insert(), we check to make sure
the index is still valid.

I wasn't able to make a test for this bug. It is difficult to reproduce,
and the circumstances to reproduce are complex.

  • Source/WebCore/accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::insertChild):

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

4:52 PM Changeset in webkit [295617] by J Pascoe
  • 1 edit in trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm

[WebAuthn] Stop using decidePolicyForLocalAuthenticator
https://bugs.webkit.org/show_bug.cgi?id=241614
rdar://95066808

Reviewed by Brent Fulgham.

  • Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::makeCredential):
Previously, in the browser ui delegate based flow, consent would be given
for the platform authenticator after selecting it. In the new flow you
must consent to the platform authenticator before getting here, so
decidePolicyForLocalAuthenticator is no longer needed.

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

4:37 PM Changeset in webkit [295616] by J Pascoe
  • 6 edits in trunk/Source

[WebAuthn] Rename cable transport to hybrid
https://bugs.webkit.org/show_bug.cgi?id=241691
rdar://problem/95312126

Reviewed by Brent Fulgham.

This transport got renamed in https://github.com/fido-alliance/fido-2-specs/issues/1332

Hybrid is the name that should be used in AuthenticatorTransport, we continue to recgnize
the old string.

  • Source/WebCore/Modules/webauthn/AuthenticatorTransport.h:
  • Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.cpp:

(fido::toString):

  • Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::convertStringToAuthenticatorTransport):

  • Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::transports):

  • Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::toASCDescriptor):

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

4:23 PM Changeset in webkit [295615] by Aditya Keerthi
  • 2 edits in trunk/Source

[iOS] Update the title of the context menu action to save an image
https://bugs.webkit.org/show_bug.cgi?id=241690
rdar://95117013

Reviewed by Kate Cheney.

Change the title from "Add to Photos" to "Save to Photos" to align with
strings used in the Photos app.

  • Source/WebCore/en.lproj/Localizable.strings:
  • Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

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

4:08 PM Changeset in webkit [295614] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] Always create StructureStubInfo for op_get_by_val
https://bugs.webkit.org/show_bug.cgi?id=241669
rdar://75146284

Reviewed by Saam Barati and Mark Lam.

DFG OSR exit requires StructureStubInfo for getter / setter calls. However very generic baseline JIT
op_get_by_val does not create StructureStubInfo. It is possible that OSR exit crashes because of this
missing StructureStubInfo. Let's consider the following edge case.

  1. Now, Baseline detects that this is very generic op_get_by_val. So we do not create StructureStubInfo.
  2. This function is inlined in DFG. And DFG emits IC for this GetByVal.
  3. (2)'s DFG function collects information in DFG-level IC. And luckily, in this inlined call path, it was not so generic.
  4. Then, due to different OSR exit or something, we recreate DFG code for this function with (2)'s inlining.
  5. DFG detects that DFG-level IC has more specialized information. So it can inline getter call in this op_get_by_val.
  6. Inside this getter, we perform OSR exit.
  7. Looking into Baseline, and we found that there is no StructureStubInfo!

We always create StructureStubInfo. In very generic op_get_by_val case, we create this with tookSlowPath = true.
And we emit empty inline path to record doneLocation. So, OSR exit can jump to this place.

We also clean up StructureStubInfo code.

  1. "start" is renamed to startLocation. And we do not record it in DataIC case since it is not necessary.
  2. Rename inlineSize to inlineCodeSize.
  3. Add some assertions to ensure that this path is not used for DataIC case.
  4. We also record opcode value in the crashing RELEASE_ASSERT to get more information if this does not fix the issue.
  • Source/JavaScriptCore/bytecode/InlineAccess.cpp:

(JSC::linkCodeInline):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::generateStringLength):
(JSC::InlineAccess::rewireStubAsJumpInAccessNotUsingInlineAccess):
(JSC::InlineAccess::rewireStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccess):

  • Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):
(JSC::StructureStubInfo::initializeFromDFGUnlinkedStructureStubInfo):

  • Source/JavaScriptCore/bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::inlineCodeSize const):
(JSC::StructureStubInfo::inlineSize const): Deleted.

  • Source/JavaScriptCore/dfg/DFGInlineCacheWrapperInlines.h:

(JSC::DFG::InlineCacheWrapper<GeneratorType>::finalize):

  • Source/JavaScriptCore/dfg/DFGJITCode.h:
  • Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::callerReturnPC):

  • Source/JavaScriptCore/jit/JIT.cpp:

(JSC::JIT::link):

  • Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::finalize):
(JSC::JITGetByValGenerator::generateEmptyPath):

  • Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:
  • Source/JavaScriptCore/jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):

  • JSTests/stress/get-by-val-generic-structurestubinfo.js: Added.

(let.program):
(runMono.let.o.get x):
(runMono):
(runPoly):

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

2:48 PM Changeset in webkit [295613] by eric.carlson@apple.com
  • 1 edit in trunk/Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm

[macOS] Unable to resume screen sharing after it is paused
https://bugs.webkit.org/show_bug.cgi?id=241693
rdar://93573937

Reviewed by Youenn Fablet.

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

(WebCore::ScreenCaptureKitCaptureSource::stop): Clear m_contentStream in the completion handler.
(WebCore::ScreenCaptureKitCaptureSource::startContentStream): Don't recreate instance variables
that already exist.

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

1:45 PM Changeset in webkit [295612] by Jonathan Bedard
  • 6 edits in trunk/Tools/Scripts/libraries

[webkitcorepy] Validate cached credentials
https://bugs.webkit.org/show_bug.cgi?id=241664
<rdar://problem/95254368>

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bumpv version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py: Add user endpoint.
  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:

(credentials): Validate cached credentials, do not reload credentials which fail validation
from the keychain.

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

1:41 PM Changeset in webkit [295611] by Dewei Zhu
  • 4 edits in trunk/Websites/perf.webkit.org

Prefer using commit identifier to build commit URL.
https://bugs.webkit.org/show_bug.cgi?id=241646
rdar://93104485

Reviewed by Jonathan Bedard.

Use commit identifier to construct commit URL and blame URL when available.
This simplifies URL construction for Git transition.

  • Websites/perf.webkit.org/public/v3/models/commit-log.js: Added code to prefer using commit identifiers

when available.
(CommitLog.prototype.url):
(CommitLog.prototype.diff):

  • Websites/perf.webkit.org/unit-tests/commit-log-tests.js: Added a unit test for diff.

(assert.deepStrictEqual.webkitGitCommitWithRevisionIdentifier.diff.oldWebKitGitCommitWithRevisionIdentifier):

  • Websites/perf.webkit.org/unit-tests/commit-set-tests.js: Updated unit test.
  • Websites/perf.webkit.org/unit-tests/resources/mock-v3-models.js: Added 'blameUrl' to 'WebKitGit' mock repository.

(MockModels.inject):

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

1:37 PM Changeset in webkit [295610] by Alexey Shvayka
  • 1 edit in trunk/Source/JavaScriptCore/bytecode/PropertyCondition.cpp

AbsenceOfSetEffect property condition should mind put() overrides
https://bugs.webkit.org/show_bug.cgi?id=241574
<rdar://91833733>

Reviewed by Yusuke Suzuki.

Since JSArray's "length" and RegExpObject's "lastIndex" may be reconfigured as non-writable,
we need to handle them separately in AbsenceOfSetEffect property condition to ensure that compiler
takes a slow path in that case, following the spec and throwing an exception in strict mode [1].

I'm not sure how to make a test case capturing this though.

[1]: https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor (step 2.a)

  • Source/JavaScriptCore/bytecode/PropertyCondition.cpp:

(JSC::nonStructurePropertyMayBecomeReadOnlyWithoutTransition):
(JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const):

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

1:33 PM Changeset in webkit [295609] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: use proper name for ITP debug mode
https://bugs.webkit.org/show_bug.cgi?id=241697

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Base/Main.js:

(WI._handleDeviceSettingsTabBarButtonClicked):

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:

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

1:11 PM Changeset in webkit [295608] by Alexey Shvayka
  • 8 edits
    1 add in trunk

CommonSlowPaths::putDirectWithReify() is incorrect for DontDelete properties
https://bugs.webkit.org/show_bug.cgi?id=241651
<rdar://94016559>

Reviewed by Saam Barati.

Provided the base object has no read-only / accessor / custom properties,
putDirectWithReify() is incorrect for an object with non-configurable property,
whether it's on the structure or a non-reified static none.

In that case, putDirectWithReify() ignores existing non-configurable / non-reified
descriptor and produces an incorrect property descriptor instead of throwing TypeError.
One it's observed in the wild is via an instance field [1].

The issue was due to incorrect ReadOnly-focused check for putDirect() fast path,
which would be correct for Set? but not for DefineOwnProperty?.

Apart from introducing tighter fast patch check, this change extracts
JSFunction::mayHaveNonReifiedPrototype() helper, cleaning up JSFunction's overrides,
and removes now unused PutModeDefineOwnPropertyIgnoringExtensibility, which apart from
ignoring extensibility, also ignored read-only / accessor / custom properties,
which felt a bit counter-intuitive.

This change carefully preserves the fast path introduced in webkit.org/b/232479.

[1]: https://tc39.es/ecma262/#sec-definefield

  • Source/JavaScriptCore/runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::originalStructureBeforePut):
(JSC::CommonSlowPaths::canPutDirectFast):
(JSC::CommonSlowPaths::putDirectWithReify):
(JSC::CommonSlowPaths::putDirectAccessorWithReify):

  • Source/JavaScriptCore/runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::put):
(JSC::JSFunction::deleteProperty):
(JSC::JSFunction::defineOwnProperty):
(JSC::JSFunction::reifyLazyPropertyIfNeeded):
(JSC::JSFunction::reifyLazyPrototypeIfNeeded):

  • Source/JavaScriptCore/runtime/JSFunction.h:
  • Source/JavaScriptCore/runtime/JSFunctionInlines.h:

(JSC::JSFunction::mayHaveNonReifiedPrototype):

  • Source/JavaScriptCore/runtime/JSObject.cpp:

(JSC::JSObject::putDirectCustomAccessor):
(JSC::JSObject::putDirectNonIndexAccessor):

  • Source/JavaScriptCore/runtime/JSObject.h:

(JSC::JSObject::putDirect):
(JSC::JSObject::putDirectRespectingExtensibility): Deleted.

  • Source/JavaScriptCore/runtime/JSObjectInlines.h:

(JSC::JSObject::putDirectInternal):

  • Source/JavaScriptCore/tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):

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

1:00 PM Changeset in webkit [295607] by Megan Gardner
  • 2 edits in trunk/Source

Implement alternate fullscreen controls.
https://bugs.webkit.org/show_bug.cgi?id=241654

Reviewed by Tim Horton.

Alternative UI for fullscreen video controls.

  • Source/WTF/Scripts/Preferences/WebPreferences.yaml:
  • Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController loadView]):

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

12:51 PM Changeset in webkit [295606] by sbarati@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp

Change how we rewind instructions in Air's O0 register allocator
https://bugs.webkit.org/show_bug.cgi?id=241687

Reviewed by Mark Lam.

  • Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

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

12:44 PM Changeset in webkit [295605] by Elliott Williams
  • 6 edits in trunk

Add lldbWebKitTester to WebKit.xcworkspace

Unreviewed test fix.

When we switched build-webkit to workspace builds in
https://commits.webkit.org/251501@main, we stopped building it.

lldbWebKitTester must only build on macOS. Add a "lldbWebKitTester
(Platform filters)" aggregate target that selectively builds
lldbWebKitTester on Mac only, like we did for MiniBrowser in
https://commits.webkit.org/251501@main. Update the relevant schemes to
build that aggregate.

We cannot rely on lldbWebKitTester's "SUPPORTED_PLATFORMS = macosx" as a
way to make it always build for Mac, because it depends on WTF and
therefore must only build if WTF is also being built for Mac.

  • Tools/lldb/lldbWebKitTester/Configurations/Base.xcconfig: Claim to support every platform, so that the aggregate target is always buildable and able to apply a platform filter.
  • Tools/lldb/lldbWebKitTester/Configurations/lldbWebKitTester.xcconfig: Move "SUPPORTED_PLATFORMS = macosx" here, because lldbWebKitTester really does need to be restricted to building for Mac.
  • Tools/lldb/lldbWebKitTester/lldbWebKitTester.xcodeproj/project.pbxproj:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Modules.xcscheme:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Tools.xcscheme:

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

12:33 PM Changeset in webkit [295604] by Kate Cheney
  • 1 edit in trunk/Source/WebCore/platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp

File size label for attachment in mail compose shows up black instead of expected grey
https://bugs.webkit.org/show_bug.cgi?id=241600
rdar://94071484

Reviewed by Cameron McCormack.

As of https://trac.webkit.org/changeset/293867/webkit in DrawGlyphsRecorder
specifically, we use the fill color of the initial state of GraphicsContext
in the case where the new fill color we are updating to is equal to the existing
fill color for perf reasons. This revealed a bug where CGContext state gets
out of sync with it's wrapping GraphicsContext, causing an incorrect
initial state fill color and thus painting the second line of Mail
attachments in the wrong color.

This patch fixes this bug by saving and restoring the state of
m_internalContext, which we reference in the case above to determine
whether to update the fill color.

  • Source/WebCore/platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::drawNativeText):

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

12:30 PM Changeset in webkit [295603] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore/workers

SharedWorkerGlobalScope::close should not directly stop its thread
https://bugs.webkit.org/show_bug.cgi?id=241677
rdar://95010255

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-16
Reviewed by Alex Christensen.

We were directly stopping the worker thread when calling SharedWorkerGlobalScope::close.
This can trigger the case of stopping the worker thread concurrently from main thread and shared worker thread.
Instead, we reuse the existing Worker infastructure to tell its SharedWorkerThreadProxy to terminate.

  • Source/WebCore/workers/WorkerOrWorkletThread.cpp:

(WebCore::WorkerOrWorkletThread::stop):

  • Source/WebCore/workers/shared/SharedWorkerGlobalScope.cpp:

(WebCore::SharedWorkerGlobalScope::close): Deleted.

  • Source/WebCore/workers/shared/SharedWorkerGlobalScope.h:
  • Source/WebCore/workers/shared/context/SharedWorkerThreadProxy.cpp:

(WebCore::SharedWorkerThreadProxy::workerGlobalScopeClosed):

  • Source/WebCore/workers/shared/context/SharedWorkerThreadProxy.h:

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

11:49 AM Changeset in webkit [295602] by Alexey Shvayka
  • 12 edits
    5 adds in trunk

[WebIDL] maplike<> and setlike<> declarations should be resilient to tampered prototypes
https://bugs.webkit.org/show_bug.cgi?id=241617
<rdar://93229569>

Reviewed by Yusuke Suzuki.

With this change, maplike<> and setlike<> declarations work as expected if methods of
Map.prototype / Set.prototype are removed, as they are suppossed to per spec [1][2].
Usage of backing Map / Set is an implementation detail of WebKit bindings and should
not be observable.

The fix mirrors all Map / Set prototype methods and "size" getter by private names,
which are inacessible to userland code, ensuring that public JSFunction* instances
are reused to avoid memory bloat.

Also, this change:

  • saves creating 4 extra JSFunction* instances during init of Map / Set prototypes;
  • speeds-up call forwarding by retrieving methods from prototypes with getDirect();
  • aligns property order with the spec, even though there is no requirement.

[1] https://webidl.spec.whatwg.org/#es-maplike
[2] https://webidl.spec.whatwg.org/#es-setlike

  • LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/Highlight-setlike-tampered-Set-prototype-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/Highlight-setlike-tampered-Set-prototype.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-maplike-tampered-Map-prototype-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-maplike-tampered-Map-prototype.html: Added.
  • Source/JavaScriptCore/DerivedSources-output.xcfilelist:
  • Source/JavaScriptCore/DerivedSources.make:
  • Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
  • Source/JavaScriptCore/builtins/BuiltinNames.h:
  • Source/JavaScriptCore/runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):

  • Source/WebCore/bindings/js/JSDOMBindingInternals.js:

(forEachWrapper):

  • Source/WebCore/bindings/js/JSDOMMapLike.cpp:

(WebCore::getBackingMap):
(WebCore::clearBackingMap):
(WebCore::setToBackingMap):
(WebCore::forwardFunctionCallToBackingMap):

  • Source/WebCore/bindings/js/JSDOMMapLike.h:

(WebCore::forwardSizeToMapLike):
(WebCore::forwardEntriesToMapLike):
(WebCore::forwardKeysToMapLike):
(WebCore::forwardValuesToMapLike):
(WebCore::forwardClearToMapLike):
(WebCore::forwardGetToMapLike):
(WebCore::forwardHasToMapLike):
(WebCore::forwardSetToMapLike):
(WebCore::forwardDeleteToMapLike):

  • Source/WebCore/bindings/js/JSDOMSetLike.cpp:

(WebCore::getBackingSet):
(WebCore::clearBackingSet):
(WebCore::addToBackingSet):
(WebCore::forwardFunctionCallToBackingSet):

  • Source/WebCore/bindings/js/JSDOMSetLike.h:

(WebCore::forwardSizeToSetLike):
(WebCore::forwardEntriesToSetLike):
(WebCore::forwardKeysToSetLike):
(WebCore::forwardValuesToSetLike):
(WebCore::forwardClearToSetLike):
(WebCore::forwardHasToSetLike):
(WebCore::forwardAddToSetLike):
(WebCore::forwardDeleteToSetLike):

  • Source/WebCore/bindings/js/WebCoreBuiltinNames.h:

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

11:26 AM Changeset in webkit [295601] by timothy@apple.com
  • 1 edit in trunk/metadata/contributors.json

Add xeenon GitHub account to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=241686

Unreviewed.

  • metadata/contributors.json:

Add xeenon GitHub account under Timothy Hatcher.

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

11:08 AM Changeset in webkit [295600] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

Handle display reconfiguration on main thread
https://bugs.webkit.org/show_bug.cgi?id=241683
<rdar://83417447>

Reviewed by Simon Fraser.

It is not safe to handle this on a non main thread, since we send messages to the WebContent and GPU process.

  • Source/WebKit/UIProcess/WebProcessPool.cpp:

(WebKit::displayReconfigurationCallBack):

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

11:06 AM Changeset in webkit [295599] by Jonathan Bedard
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

[Merge-Queue] Validate reviewers in commit message (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=240718
<rdar://problem/93665771>

Unreviewed infrastructure fix.

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

(ValidateCommitMessage.run): Allow for unreviewed changes.

10:32 AM Changeset in webkit [295598] by commit-queue@webkit.org
  • 1 edit in trunk/Tools/Scripts/build-and-collect-pgo-profiles

Extend build-and-collect-pgo-profiles to support testing a browser path
https://bugs.webkit.org/show_bug.cgi?id=241392
rdar://94581810

Patch by briannafan <briannaf@berkeley.edu> on 2022-06-16
Reviewed by Dewei Zhu.

Extending script to take browser path and skip building.

  • Tools/Scripts/build-and-collect-pgo-profiles:

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

9:39 AM Changeset in webkit [295597] by Tyler Wilcock
  • 7 edits in trunk

AX: Update the isolated tree in response to dynamic placeholder and aria-placeholder changes
https://bugs.webkit.org/show_bug.cgi?id=241675

Reviewed by Chris Fleizach.

  • LayoutTests/accessibility/placeholder-expected.txt:
  • LayoutTests/accessibility/placeholder.html: Add new test cases.
  • LayoutTests/platform/ios/TestExpectations: Enable accessibility/placeholder.html.
  • Source/WebCore/accessibility/AXLogger.cpp:

(WebCore::operator<<):

  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):

  • Source/WebCore/accessibility/AXObjectCache.h:
  • Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp

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

9:30 AM Changeset in webkit [295596] by sihui_liu@apple.com
  • 1 edit in trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp

Regression (r295056): do not delete WebSQL directory until there is no use of it in WebKit clients
https://bugs.webkit.org/show_bug.cgi?id=241671

Reviewed by Youenn Fablet.

We have internal clients that set the custom WebSQL directory do not only use the directory for WebSQL.

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):

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

9:27 AM Changeset in webkit [295595] by Claudio Saavedra
  • 3 edits in trunk/Source/WebCore/platform/graphics/texmap

TextureMapper: remove unused size variable in draw texture methods
https://bugs.webkit.org/show_bug.cgi?id=241679

Reviewed by Darin Adler.

WebCore::TextureMapperGL::drawTexturedQuadWithProgram() doesn't really
use the size parameter, remove it from everwhere where it's passed
forward.

  • Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawTexture):
(WebCore::prepareTransformationMatrixWithFlags):
(WebCore::TextureMapperGL::drawTexturePlanarYUV):
(WebCore::TextureMapperGL::drawTextureSemiPlanarYUV):
(WebCore::TextureMapperGL::drawTexturePackedYUV):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::TextureMapperGL::drawTextureExternalOES):

  • Source/WebCore/platform/graphics/texmap/TextureMapperGL.h:
  • Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

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

8:22 AM Changeset in webkit [295594] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Tab snapshotting should not trigger the WebGL code path when HAVE(LOW_AV_SAMPLE_BUFFER_PRUNING_INTERVAL) is false
https://bugs.webkit.org/show_bug.cgi?id=241628
rdar://94484791

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-16
Reviewed by Jer Noble.

If HAVE(LOW_AV_SAMPLE_BUFFER_PRUNING_INTERVAL) is false, we either render the video or we can grab individual video frames for canvas rendering.
We render video except when WebGL canvas painting is used.
Before the patch, the GPUProcess code path was relying on calling MediaPlayerPrivateMediaSourceAVFObjC::videoFrameForCurrentTime for tab snapshotting.
This then prevented the video to be rendered.

This patch is adding a MediaPlayer::willBeAskedToPaintGL method to ask the player to enter the WebGL code path to grab individual video frames.
This method is called when creating a video texture for WebGL.
MediaPlayerPrivateMediaSourceAVFObjC implements this method to switch to the decompression session to grab individual video frames.
Other players are left unchanged.
We add the necessary IPC handling to send the signal from WebProcess to GPUProcess.
All of this is specific to HAVE(LOW_AV_SAMPLE_BUFFER_PRUNING_INTERVAL) being false.

Manually tested by tabsnapshooting youtube pages as well as loading web page using MSE+WebGL.

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texImageSourceHelper):

  • Source/WebCore/platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::willBeAskedToPaintGL):

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

(WebCore::MediaPlayerPrivateInterface::willBeAskedToPaintGL):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::willBeAskedToPaintGL):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoFrameForCurrentTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::shouldEnsureLayer const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged):

  • Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:
  • Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::willBeAskedToPaintGL):

  • Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::willBeAskedToPaintGL):

  • Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

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

8:05 AM Changeset in webkit [295593] by Andres Gonzalez
  • 1 edit in trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

AX ITM: VoiceOver cannot get contextual menus for links on some pages with ITM enabled.
https://bugs.webkit.org/show_bug.cgi?id=241668

Reviewed by Chris Fleizach.

In isolated tree mode the performSelector method was being called off the main thread, and was not invoking the given selector. This patch fixes the problem by dispatching to the main thread the call to performSelector. Some code cleanup.

  • Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
(-[WebAccessibilityObjectWrapper _accessibilityShowContextMenu]):
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]): Deleted.

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

7:46 AM Changeset in webkit [295592] by Jonathan Bedard
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

[ews-build.webkit.org] Support WebKit/WebKit-security
https://bugs.webkit.org/show_bug.cgi?id=241656
<rdar://problem/95252686>

Reviewed by Ryan Haddad and Aakash Jain.

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

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

7:37 AM Changeset in webkit [295591] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk

A black screen appears in a muted video element outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=241152
rdar://problem/94562636

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

We sometimes remove the invisible autoplay restrictions.
If we remove it while we are suspended due this restriction, we will not unsuspend and will wait for a user interaction.
To prevent this, we do not return early in updateShouldAutoplay if we are interrupted due to the invisible autoplay restriction.

  • LayoutTests/fast/mediastream/video-mediastream-restricted-invisible-autoplay-user-click-expected.txt: Added.
  • LayoutTests/fast/mediastream/video-mediastream-restricted-invisible-autoplay-user-click.html: Added.
  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateShouldAutoplay):

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

4:53 AM Changeset in webkit [295590] by commit-queue@webkit.org
  • 1 edit
    3 adds in trunk

Moving a media element from one document to another should not break autoplay
https://bugs.webkit.org/show_bug.cgi?id=241631
rdar://95060381

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

When pausing a video element when being detached from a document, autoplay might get broken if the element is interrupted due to invisibility.
In that case, the session will store the fact that the element is paused and when the end of invisibility interruption happens, the session state is Paused instead of Autoplay.
To prevent this, we do not pause when being detached if we are alread interrupted due to invisibility.

Covered by added test.

  • LayoutTests/http/tests/webrtc/resources/utility-frame.html: Added.
  • LayoutTests/http/tests/webrtc/video-mediastream-invisible-autoplay-detached-expected.txt: Added.
  • LayoutTests/http/tests/webrtc/video-mediastream-invisible-autoplay-detached.html: Added.
  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pauseAfterDetachedTask):

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

1:07 AM Changeset in webkit [295589] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm

Add WebSocket map size logging
https://bugs.webkit.org/show_bug.cgi?id=241590
rdar://problem/95093425

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

  • Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::addWebSocketTask):
(WebKit::NetworkSessionCocoa::removeWebSocketTask):

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

12:20 AM Changeset in webkit [295588] by achristensen@apple.com
  • 1 edit in trunk/Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp

TestWebKitAPI.WebKit2.SpeechRecognitionErrorWhenStartingAudioCaptureOnDifferentPageE is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=239474

Reviewed by Sihui Liu.

At least when using MockAudioSharedInternalUnit the call to RealtimeMediaSource::start can call code on another thread
that assumes that RealtimeMediaSource::setLogger has already been called. This can be made to crash almost 100% of the time
in the test by adding WTFReportBacktrace at the beginning of RealtimeMediaSource::setLogger which delays when m_logger is set
enough for the "MockAudioSharedInternalUnit Capture Queue" thread to read from m_logger before it is written without this change.

  • Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:

(WebCore::SpeechRecognitionCaptureSourceImpl::SpeechRecognitionCaptureSourceImpl):

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

Jun 15, 2022:

11:04 PM Changeset in webkit [295587] by Fujii Hironori
  • 4 edits in trunk/Source/WebCore/platform/graphics/texmap

Remove unused code for GL_TEXTURE_RECTANGLE_ARB
https://bugs.webkit.org/show_bug.cgi?id=241670

Reviewed by Don Olmstead.

The code for GL_TEXTURE_RECTANGLE_ARB was added by 105925@main (Bug
87738) for Qt-Mac port. But, no longer used.

  • Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawTexture):
(WebCore::prepareTransformationMatrixWithFlags):
(WebCore::TextureMapperGL::drawTexturePlanarYUV):
(WebCore::TextureMapperGL::drawTextureSemiPlanarYUV):
(WebCore::TextureMapperGL::drawTexturePackedYUV):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):

  • Source/WebCore/platform/graphics/texmap/TextureMapperGL.h:
  • Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):

  • Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h:

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

10:49 PM Changeset in webkit [295586] by msaboff@apple.com
  • 2 edits in trunk/Source/WebKit/Configurations

[Regression r295565] iOS Simulator build fails
https://bugs.webkit.org/show_bug.cgi?id=241673

Unreviewed, fix ios simulator build after r295565.

  • Source/WebKit/Configurations/adattributiond.xcconfig:
  • Source/WebKit/Configurations/webpushd.xcconfig:

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

10:31 PM Changeset in webkit [295585] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Don't clear both prototype ICs for LLInt iterator_next
https://bugs.webkit.org/show_bug.cgi?id=241663

Reviewed by Yusuke Suzuki.

If we use BytecodeIndex instead of a bytecode offset, we don't need to
clear both ICs. We can just clear the one that the watchpoint fired for.

  • Source/JavaScriptCore/bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • Source/JavaScriptCore/bytecode/CodeBlock.h:
  • Source/JavaScriptCore/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:

(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::LLIntPrototypeLoadAdaptiveStructureWatchpoint):
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::initialize):
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::fireInternal):

  • Source/JavaScriptCore/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h:
  • Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::performLLIntGetByID):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

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

9:57 PM Changeset in webkit [295584] by Fujii Hironori
  • 1 edit in trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h

Remove unused expandedQuadEdgesInScreenSpace uniform variable
https://bugs.webkit.org/show_bug.cgi?id=241667

Reviewed by Don Olmstead.

expandedQuadEdgesInScreenSpace uniform variable was added by
108289@main (Bug 90308), but unsued since 124039@main (Bug 105377).

  • Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h:

Removed it.

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

9:16 PM Changeset in webkit [295583] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Validate descriptor when creating MTLRenderPipelineState
https://bugs.webkit.org/show_bug.cgi?id=241587
rdar://problem/93820440

Patch by Dan Glastonbury <djg@apple.com> on 2022-06-15
Reviewed by Kimmo Kinnunen.

  • Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_state_cache.mm:

(rx::mtl::ValidateRenderPipelineState):
(rx::mtl::RenderPipelineCache::createRenderPipelineState):
Extend MTlRenderPipelineDescriptor validation to ensure that there is at least
one valid render target set for the the render pipeline. This is required for
certain families of metal devices to avoid a validation failure inside the metal
framework. Moving the failure here will cause the app using ANGLE to return a GL
error instead of crashing the process.

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

7:18 PM Changeset in webkit [295582] by Andres Gonzalez
  • 1 edit in trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

AX ITM: Should not build an isolated tree branch rooted at an object with invalid ID. Should not attempt to remove an object for an invalid ID.
https://bugs.webkit.org/show_bug.cgi?id=241643

Reviewed by Chris Fleizach.

Added check for valid object ID in AXIsolatedTree::collectNodeChangesForSubtree and in updateChildren since in both cases the ID is used as a key for HashMaps which cannot be null.

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::updateChildren):

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

6:02 PM Changeset in webkit [295581] by commit-queue@webkit.org
  • 1 edit in trunk/Source/cmake/WebKitCommon.cmake

[CMake] Check for all required perl modules
https://bugs.webkit.org/show_bug.cgi?id=241648

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-06-15
Reviewed by Adrian Perez de Castro.

  • Source/cmake/WebKitCommon.cmake:

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

4:55 PM Changeset in webkit [295580] by Patrick Angle
  • 3 edits in trunk/LayoutTests

Web Inspector: inspector/page/setShowPaintRects.html is a flakey failure since introduction
https://bugs.webkit.org/show_bug.cgi?id=233047
rdar://85345706

Reviewed by Antoine Quint.

Adding test results to the page causes a paint to be scheduled, which can cause paint rects to be requested at times we
are not expecting them as part of the flow of the test. We expect only our explicit change to an element to cause paints
to occur, but currently those paints end up interleaved with paints for adding results to the test page.

To resolve this, we now defer writing results to the test page until the end of each test case. This allows us to wait
to start each test case until there are no paint rects, and to avoid accidently causing a paint rect to appear at
inopportune times for our testing.

  • LayoutTests/inspector/page/setShowPaintRects-expected.txt:
  • LayoutTests/inspector/page/setShowPaintRects.html:
  • LayoutTests/platform/mac/TestExpectations:

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

4:32 PM Changeset in webkit [295579] by Patrick Angle
  • 1 edit in trunk/.github/CODEOWNERS

Add myself (patrickangle) to GitHub CODEOWNERS for Web Inspector

Reviewed by Jonathan Bedard.

  • .github/CODEOWNERS:

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

4:01 PM Changeset in webkit [295578] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[Cocoa] Add feature flag for WebM Experiment
https://bugs.webkit.org/show_bug.cgi?id=241642
<rdar://95228097>

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-15
Reviewed by Eric Carlson.

Added internal feature and build flag for experimental WebM player.

  • Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml:
  • Source/WTF/wtf/PlatformEnableCocoa.h:

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

3:46 PM Changeset in webkit [295577] by Elliott Williams
  • 1 edit in trunk/Tools/Scripts/build-webkit

[build-webkit] Don't run build-imagediff when cleaning with Xcode
https://bugs.webkit.org/show_bug.cgi?id=241624

Reviewed by Jonathan Bedard.

Fixes "error: Unknown build action ' --clean'" from xcodebuild, as
build-webkit was passing the --clean argument to build-imagediff with an
extra space.

Since the move to XCBuild, cleaning deletes the whole build directory,
so there is nothing left for build-imagediff to clean and we skip this
step altogether.

  • Tools/Scripts/build-webkit:

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

3:46 PM Changeset in webkit [295576] by ysuzuki@apple.com
  • 1 edit in trunk/.github/CODEOWNERS

Add CODEOWNERS file to ping review request automatically to JSC reviewers
https://bugs.webkit.org/show_bug.cgi?id=241058

Reviewed by Jonathan Bedard.

This patch adds JavaScriptCore CODEOWNERS configurations. By using this file, we can request
reviews automatically based on modified files. I added jsc-reviewers group and
this file configures that Source/JavaScriptCore (except for inspector directory)
PR will automatically set jsc-reviewers as a requested reviewer.

  • .github/CODEOWNERS: Added.

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

3:29 PM Changeset in webkit [295575] by Devin Rousso
  • 1 edit in trunk/.github/CODEOWNERS

add myself to GitHub CODEOWNERS

Reviewed by Jonathan Bedard

  • .github/CODEOWNERS:

Specifically for:

  • Web Inspector (frontend and backend)
  • Apple Pay
  • Payment Request
  • media controls

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

3:21 PM Changeset in webkit [295574] by Patrick Angle
  • 3 edits in trunk/Source/WebInspectorUI/UserInterface/Views

Web Inspector: Regression(r293334) fill-available is not a valid dimension, -webkit-fill-available is still prefixed
https://bugs.webkit.org/show_bug.cgi?id=241649
rdar://95240065

Reviewed by Devin Rousso.

fill-available is not a valid CSS dimension, we still need to use -webkit-fill-available for now.

  • Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.css:

(.popover .edit-breakpoint-popover-content .event input):

  • Source/WebInspectorUI/UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ .options-container > .filter-bar):

  • Source/WebInspectorUI/UserInterface/Views/RecordingContentView.css:

(.content-view.recording > .preview-container):

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

2:40 PM Changeset in webkit [295573] by Antti Koivisto
  • 1 edit
    2 adds in trunk

REGRESSION (r287195): Safari fails to correctly render indented numbered lists with custom CSS and hyphenation ON
https://bugs.webkit.org/show_bug.cgi?id=241630
<rdar://91245970>

Reviewed by Darin Adler.

  • LayoutTests/fast/text/list-and-hyphenation-expected.html: Added.
  • LayoutTests/fast/text/list-and-hyphenation.html: Added.
  • Source/WebCore/rendering/RenderText.cpp:

(WebCore::RenderText::maxWordFragmentWidth):

Return entireWordWidth instead of 0 in the bail out cases.
This ends up setting maxWordWidth = w and leaving currMinWidth unchanged in the caller, matching the pre-r287195 behavior.

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

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

Block network extension system calls
https://bugs.webkit.org/show_bug.cgi?id=241633
<rdar://73513138>

Reviewed by Sihui Liu.

After moving content filtering to the Network process and fixing an issue where Safari's injected bundle were
making network calls, network extension system calls can be blocked in the WebContent process.

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

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

1:44 PM Changeset in webkit [295571] by pvollan@apple.com
  • 1 edit
    1 move in trunk/Source/WebKit

Rename file
https://bugs.webkit.org/show_bug.cgi?id=241644

Unreviewed, rename incorrectly named file AuxiliaryProcessProcyCocoa.mm.

  • Source/WebKit/UIProcess/Cocoa/AuxiliaryProcessProxyCocoa.mm: Renamed from Source/WebKit/UIProcess/Cocoa/AuxiliaryProcessProcyCocoa.mm.

(WebKit::AuxiliaryProcessProxy::fetchAudioComponentServerRegistrations):

  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

1:20 PM Changeset in webkit [295570] by Brandon
  • 2 edits in trunk/Source/bmalloc/libpas/src/libpas

[libpas] fix build with pas_assertion_failed and type conversion
https://bugs.webkit.org/show_bug.cgi?id=241640

Reviewed by Mark Lam.

Build fix.

  • Source/bmalloc/libpas/src/libpas/pas_utils.c:

(pas_report_assertion_failed):
(pas_assertion_failed): Deleted.

  • Source/bmalloc/libpas/src/libpas/pas_utils.h:

(pas_assertion_failed):
(pas_assertion_failed_noreturn_silencer1):
(pas_assertion_failed_noreturn_silencer2):
(pas_assertion_failed_noreturn_silencer3):
(pas_assertion_failed_noreturn_silencer4):
(pas_assertion_failed_noreturn_silencer5):
(pas_assertion_failed_noreturn_silencer6):

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

12:59 PM Changeset in webkit [295569] by Antti Koivisto
  • 11 edits in trunk

Invalidate animation keyframes using container units on when container size changes
https://bugs.webkit.org/show_bug.cgi?id=241546

Reviewed by Antoine Quint.

Container size change also changes the interpretation of container units used in keyframes.

  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt:
  • Source/WebCore/dom/Element.cpp:

(WebCore::Element::invalidateForQueryContainerSizeChange):
(WebCore::Element::needsUpdateQueryContainerDependentStyle const):
(WebCore::Element::clearNeedsUpdateQueryContainerDependentStyle):
(WebCore::Element::invalidateForQueryContainerChange): Deleted.

Add a new bit that tells when a container has been resized.

  • Source/WebCore/dom/Element.h:
  • Source/WebCore/dom/Node.h:
  • Source/WebCore/rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::usesContainerUnits const):

Check for container unit use.

  • Source/WebCore/rendering/style/KeyframeList.h:
  • Source/WebCore/style/StyleScope.cpp:

(WebCore::Style::Scope::updateQueryContainerState):

  • Source/WebCore/style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

Invalidate the keyframes if needed when computing the style.

(WebCore::Style::TreeResolver::pushParent):

Track if the subtree is withing a resized container.

  • Source/WebCore/style/StyleTreeResolver.h:
  • Source/WebCore/style/Styleable.cpp:

(WebCore::Styleable::queryContainerDidChange const):

  • Source/WebCore/style/Styleable.h:

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

12:28 PM Changeset in webkit [295568] by eric.carlson@apple.com
  • 1 edit in trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm

[Cocoa] Crash in SourceBufferPrivateAVFObjC::layerDidReceiveError.
https://bugs.webkit.org/show_bug.cgi?id=241599
rdar://92972452

Reviewed by Jer Noble.

Have WebAVSampleBufferErrorListener take a strong reference to parent before calling it.

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

(-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):
(-[WebAVSampleBufferErrorListener layerFailedToDecode:]):
(-[WebAVSampleBufferErrorListener audioRendererWasAutomaticallyFlushed:]):

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

11:01 AM Changeset in webkit [295567] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm

Fix build issue
https://bugs.webkit.org/show_bug.cgi?id=241637

Unreviewed, fix build issue after r295560.

  • Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm:

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

10:58 AM Changeset in webkit [295566] by commit-queue@webkit.org
  • 1 edit in trunk/Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb

Incorrect Github file link in PrettyPatch
https://bugs.webkit.org/show_bug.cgi?id=241638

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-15
Reviewed by Jonathan Bedard.

In the pretty patch view, pressing a filename redirects you to
https://github.com/WebKit/WebKit/blob/%7Bfilename%7D due to a
templating typo.

  • Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:

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

10:51 AM Changeset in webkit [295565] by msaboff@apple.com
  • 7 edits
    1 add in trunk/Source/WebKit

Move webpushd and adattributiond to the secondary content path when configured
https://bugs.webkit.org/show_bug.cgi?id=241539
<rdar://90513797>

Reviewed by Keith Miller.

Moved webpushd and adattributiond and their plist files to the secondary content path when using
the system content path.
As part of this change, webpushd was moved to SYSTEM_SECONDARY_CONTENT_PATH/usr/libexec.
Created symlinks in /System/Library/{LaunchAgents|LaunchDaemons} for the plist files.

  • Source/WebKit/Configurations/Base.xcconfig:
  • Source/WebKit/Configurations/adattributiond.xcconfig:
  • Source/WebKit/Configurations/webpushd.xcconfig:
  • Source/WebKit/Scripts/copy-launchd-plist-and-create-symlink.sh: Added.
  • Source/WebKit/Shared/EntryPointUtilities/Cocoa/Daemon/com.apple.webkit.adattributiond.plist:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/webpushd/com.apple.webkit.webpushd.ios.plist:
  • Source/WebKit/webpushd/com.apple.webkit.webpushd.mac.plist:

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

10:06 AM Changeset in webkit [295564] by Aditya Keerthi
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=239257
rdar://91653542

Reviewed by Wenson Hsieh.

245100@main changed the value parsing and sanitization algorithm for
<input type="datetime-local"> to better match the spec. Following this change,
the output of HTMLInputElement.value uses the shortest possible string,
omitting seconds or milliseconds when 0.

The flaky test tests that choosing a value using the date/time picker does not
unexpectedly add or remove second and millisecond fields. This behavior was
being verified by checking whether the input's value contained seconds or
milliseconds after using the picker. However, following 245100@main, the value
can appear without seconds/milliseconds, even though the editable fields do.

The non-determinism comes from the fact that the current system time is used
to populate the seconds and milliseconds field when using the picker on an
empty input. Consequently, the test will fail when the current time has a 0
second value.

To fix, verify that using the picker does not unexpectedly add or remove second
and millisecond fields by checking the width of the element before and after
date selection. This approach ensures determinism, while fulfilling the goal of
the test.

As an aside, the current behavior to populate the seconds and milliseconds for
empty inputs could be improved. http://webkit.org/b/241620 has been filed, with
the intent of setting the seconds and milliseconds fields to 0 when they are
initially empty.

  • LayoutTests/fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker-expected.txt:
  • LayoutTests/fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker.html:
  • LayoutTests/platform/mac-wk2/TestExpectations:

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

9:59 AM Changeset in webkit [295563] by Aditya Keerthi
  • 3 edits in trunk/Source/WebKit/WebProcess/WebPage

REGRESSION (iOS 16): Find on Page highlights shift after entering Split View
https://bugs.webkit.org/show_bug.cgi?id=241615
rdar://94795621

Reviewed by Wenson Hsieh.

When entering Split View, the find overlay layer and the highlighted range
should be redrawn to reflect changes in layout.

  • Source/WebKit/WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::decorateTextRangeWithStyle):
(WebKit::WebFoundTextRangeController::redraw):
(WebKit::WebFoundTextRangeController::setTextIndicatorWithRange):

Factor out text indicator creation into a common method.

  • Source/WebKit/WebProcess/WebPage/WebFoundTextRangeController.h:
  • Source/WebKit/WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mainFrameDidLayout):

Redraw decorated ranges after layout.

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

9:43 AM Changeset in webkit [295562] by mark.lam@apple.com
  • 4 edits in trunk/Source/bmalloc/libpas/src/libpas

Add variadic PAS_ASSERT support.
https://bugs.webkit.org/show_bug.cgi?id=241626
rdar://95204263

Reviewed by Keith Miller.

This patch adds support for a variadic PAS_ASSERT, and uses it to gather
more debugging info for asserts in pas_local_view_cache_stop and
pas_segregated_heap_ensure_allocator_index.

From manual local disassembly of pas_local_view_cache_stop, I verified that
this patch only changes assertion fail reporting code in an out of line slow
path. The change does perturb code size, and any changes in code may also
cause clang to arbitrarily rearrange the order of some control flow diamonds
(e.g. the cases in a switch statement).

If no extra data is provided to the variadic PAS_ASSERT, it will emit exactly
same code as it does previously when PAS_ASSERT was not variadic. This gives
us confidence that any perturbations in code will only manifest in PAS_ASSERTs
that we choose to add extra info for reporting assertion failures.

Preliminary benchmark results appear to show that performance is neutral.

  • Source/bmalloc/libpas/src/libpas/pas_local_view_cache.c:

(pas_local_view_cache_stop):

  • Source/bmalloc/libpas/src/libpas/pas_segregated_heap.c:

(pas_segregated_heap_ensure_allocator_index):

  • Source/bmalloc/libpas/src/libpas/pas_utils.c:

(pas_crash_with_info_impl1):
(pas_crash_with_info_impl2):
(pas_crash_with_info_impl3):
(pas_crash_with_info_impl4):
(pas_crash_with_info_impl5):
(pas_crash_with_info_impl6):
(pas_report_assertion_failed):

  • Source/bmalloc/libpas/src/libpas/pas_utils.h:

(pas_assertion_failed):
(pas_assertion_failed_noreturn_silencer1):
(pas_assertion_failed_noreturn_silencer2):
(pas_assertion_failed_noreturn_silencer3):
(pas_assertion_failed_noreturn_silencer4):
(pas_assertion_failed_noreturn_silencer5):
(pas_assertion_failed_noreturn_silencer6):

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

8:54 AM Changeset in webkit [295561] by Jonathan Bedard
  • 4 edits in trunk/Tools/Scripts/libraries/resultsdbpy

Add git-webkit squash and refactory mock git (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=237664
rdar://90040109

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Tools/Scripts/libraries/resultsdbpy/setup.py: Ditto.
  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller_unittest.py:

(CommitControllerTest.test_branches): Add new branch.

  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/model/commit_context_unittest.py:

(CommitContextTest.test_branches): Ditto.

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

8:39 AM Changeset in webkit [295560] by pvollan@apple.com
  • 14 edits
    1 add in trunk/Source

[GPUP] Send Audio component registrations from the UI process
https://bugs.webkit.org/show_bug.cgi?id=241339
<rdar://88659991>

Reviewed by Geoffrey Garen.

Currently, Audio component registrations are only sent to the WebContent process. They should be sent to the GPU process as well.
This patch moves the existing registration code from the WebContent process code to the Auxiliary process code.

  • Source/WebKit/GPUProcess/GPUProcess.messages.in:
  • Source/WebKit/Shared/AuxiliaryProcess.h:
  • Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::consumeAudioComponentRegistrations):

  • Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:
  • Source/WebKit/UIProcess/Cocoa/AuxiliaryProcessProcyCocoa.mm: Added.

(WebKit::AuxiliaryProcessProxy::fetchAudioComponentServerRegistrations):

  • Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didFinishLaunching):

  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/WebProcess/WebProcess.h:
  • Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::consumeAudioComponentRegistrations): Deleted.

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

8:34 AM Changeset in webkit [295559] by Razvan Caliman
  • 8 edits in trunk

Web Inspector: Remove setting to toggle fuzzy matching for CSS autocompletion
https://bugs.webkit.org/show_bug.cgi?id=241561

Reviewed by Patrick Angle.

The fuzzy matching CSS autocompletion feature has been enabled by default for a few STP releases already.
No regressions for the autocompletion functionality have been uncovered since.
It's time to remove the setting that allows toggling off the feature.

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

Turns out the test was never exercising the fuzzy matching branch of autocompletion.
Becaue the useFuzzy flag was missing, it was falling back to testing prefix autocompletion.
The difference is that completion results are not plain strings, but QueryResult instances.

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • Source/WebInspectorUI/UserInterface/Base/Setting.js:
  • Source/WebInspectorUI/UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.getCompletionText):

Moved the method to get the string value of a completion from WI.CompletionSuggestionsView
to be a static member of WI.CSSCompletions.

  • Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:

(WI.CSSKeywordCompletions.forPartialPropertyName):

  • Source/WebInspectorUI/UserInterface/Views/CompletionSuggestionsView.js:

(WI.CompletionSuggestionsView.prototype.set selectedIndex):
(WI.CompletionSuggestionsView.prototype.getCompletionText): Deleted.

  • Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js:
  • Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField.prototype._updateCompletions):

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

7:51 AM Changeset in webkit [295558] by Andres Gonzalez
  • 1 edit in trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm

AX: CrashTracer: com.apple.WebKit.WebContent at com.apple.WebCore: WTF::RetainPtr<NSMutableArray> WTF::createNSArray<WTF::Vector<WTF::RefPtr<WebCore::AXCoreObject, WTF::RawPtrTraits<WebCore::AXCoreObject>, WTF::DefaultRefDerefTraits<WebC. web content
https://bugs.webkit.org/show_bug.cgi?id=241619

Reviewed by Chris Fleizach.

Check for nullptr before dereferencing the RefPtrs passed to makeNSArray. In some cases, the given AccessibilityChildrenVector may contain nullptrs.

  • Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(makeNSArray):

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

7:02 AM Changeset in webkit [295557] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk/Source

GPUP CGContexts create unattributed Metal resources
https://bugs.webkit.org/show_bug.cgi?id=241509
rdar://problem/94803367

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-06-15
Reviewed by Dean Jackson.

Re-land the patch after revert with disabling the feature for iOS simulator
since task_identity_t is not available in the simulator.

Unattributed Metal related memory allocations grow GPUP footprint,
causing the process go over its memory limit.

Add a CoreGraphics SPI to mark that the CGContext resources belong to a
particular process.

Integrate this via IOSurface::setOwnershipIdentity(), as that is where
the current CGContext for IOSurfaces are instantiated and held.

  • Source/WTF/wtf/PlatformHave.h:
  • Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h:
  • Source/WebCore/PAL/pal/cg/CoreGraphicsSoftLink.cpp: Added.
  • Source/WebCore/PAL/pal/cg/CoreGraphicsSoftLink.h: Added.
  • Source/WebCore/PAL/pal/PlatformMac.cmake:
  • Source/WebCore/platform/graphics/cocoa/IOSurface.h:
  • Source/WebCore/platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::ensurePlatformContext):
(WebCore::IOSurface::setOwnershipIdentity):

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

6:43 AM Changeset in webkit [295556] by Alan Bujtas
  • 1 edit
    4 adds in trunk

REGRESSION (r289443): Page contents disappear after entering a letter in the username field of bmoharris.com
https://bugs.webkit.org/show_bug.cgi?id=241625
<rdar://93516876>

Reviewed by Simon Fraser.

overflow: clip forbids scrolling entirely, through any mechanism (https://drafts.csswg.org/css-overflow/#propdef-overflow)

  • LayoutTests/fast/scrolling/scrollIntoView-with-overflow-clip-expected.html: Added.
  • LayoutTests/fast/scrolling/scrollIntoView-with-overflow-clip.html: Added.
  • LayoutTests/fast/scrolling/selection-reveal-with-overflow-clip-expected.html: Added.
  • LayoutTests/fast/scrolling/selection-reveal-with-overflow-clip.html: Added.
  • Source/WebCore/rendering/RenderLayer.cpp:

(WebCore::RenderLayer::allowsCurrentScroll const): Make sure the content is not scrollable when overflow: clip is set on the renderer.

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

4:10 AM Changeset in webkit [295555] by commit-queue@webkit.org
  • 9 edits in trunk

[GStreamer][WebRTC] canvas to PeerConnection improvements
https://bugs.webkit.org/show_bug.cgi?id=241330

Patch by Philippe Normand <philn@igalia.com> on 2022-06-15
Reviewed by Miguel Gomez and Xabier Rodriguez-Calvar.

Video frames exported from the WebGL canvas need to be flipped on GStreamer ports and their format
should be RGBA. Frames coming from 2D canvas don't need to be flipped and have BGRA format.

Texture flipping is now handled in the player which is useful when painting canvas to a video
element. And flipping is also now handled in RTC outgoing video sources, which is useful when
exporting a canvas to a WebRTC PeerConnection.

The 30fps framerate is hardcoded, ideally should be inferred from the compositor refresh rate.
Having a framerate > 1 is specially needed for the canvas->WebRTC use-case, otherwise a 1/1
framerate would be set in caps, making the corresponding video stream slower than the actual refresh
rate.

  • LayoutTests/platform/glib/TestExpectations:
  • Source/WebCore/html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toVideoFrame):

  • Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateTextureMapperFlags):

  • Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp:

(WebCore::VideoFrameGStreamer::createFromPixelBuffer):

  • Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.h:
  • Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLTextureMapper::paintCompositedResultsToVideoFrame):

  • Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):

  • Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp:

(WebCore::RealtimeOutgoingVideoSourceGStreamer::RealtimeOutgoingVideoSourceGStreamer):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType):

  • Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h:

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

12:55 AM Changeset in webkit [295554] by Adrian Perez de Castro
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Base/BrowserInspectorFrontendHost.js

[WPE][GTK] REGRESSION(r292084): Browser frontend host is missing recent additions
https://bugs.webkit.org/show_bug.cgi?id=241594

Reviewed by Patrick Angle.

Update BrowserInspectorFrontendHost.js to add missing methods, update
signatures of changed ones, and remove those which are no longer present
in the IDL interface. This makes the Web Inspector work again when
loaded over HTTP.

  • Source/WebInspectorUI/UserInterface/Base/BrowserInspectorFrontendHost.js:

(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.canLoad): Added, always
returns false.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.load): Added stub.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.getPath): Added stub.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.canPickColorFromScreen):
Added, always returns false.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.pickColorFromScreen):
Added stub.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.getCurrentX): Added stub.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.getCurrentY): Added stub.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setPath): Added stub.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get port): Deleted.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.append): Deleted.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.close): Deleted.

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

Jun 14, 2022:

11:38 PM Changeset in webkit [295553] by Tyler Wilcock
  • 4 edits
    2 adds in trunk

AX: AccessibilityObject::insertText does not insert any text into password fields
https://bugs.webkit.org/show_bug.cgi?id=241613

Reviewed by Chris Fleizach and Andres Gonzalez.

Prior to this patch, AccessibilityObject::insertText used to return
early if Element::shouldUseInputMethod returned false. We need to
exclude password fields from this check, which this patch implements.

  • LayoutTests/accessibility/insert-text-into-password-field-expected.txt: Added.
  • LayoutTests/accessibility/insert-text-into-password-field.html: Added.
  • LayoutTests/platform/glib/TestExpectations: Disable new test.
  • LayoutTests/platform/ios/TestExpectations: Enable new test.
  • LayoutTests/platform/win/TestExpectations: Disable new test.
  • Source/WebCore/accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::insertText):

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

10:57 PM Changeset in webkit [295552] by Jean-Yves Avenard
  • 5 edits
    4 adds in trunk

REGRESSION (iOS 16): <img> with video source fails to render—affects iCloud live photos (IOKit blocking)
https://bugs.webkit.org/show_bug.cgi?id=241589

Reviewed by Simon Fraser.

Stop using IOKit in the content process. Instead we create a SharedMemory backed
ShareableBitmap and send it to the content process. The content process takes
ownership of this ShareableBitmap.

Covered by new media/media-hevc-video-as-img.html test

  • LayoutTests/media/content/bipbop-hevc.mp4: Added.
  • LayoutTests/media/content/test-video-as-img.png: Added.
  • LayoutTests/media/media-hevc-video-as-img-expected.html: Added.
  • LayoutTests/media/media-hevc-video-as-img.html: Added.
  • LayoutTests/platform/glib/TestExpectations:
  • Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):

  • Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • Source/WebKit/WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):

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

7:49 PM Changeset in webkit [295551] by Ross Kirsling
  • 2 edits in trunk

Temporal.Instant#round should treat the Big Bang (not the Unix epoch) as zero
https://bugs.webkit.org/show_bug.cgi?id=241622

Reviewed by Yusuke Suzuki.

Implement the spec fix of tc39/proposal-temporal#2210.
This change is quite simple, as we can just update the Int128 version of roundNumberToIncrement.

  • JSTests/test262/expectations.yaml:

Mark four test cases as passing.

  • Source/JavaScriptCore/runtime/TemporalObject.cpp:

(JSC::roundNumberToIncrement):
(JSC::abs): Deleted.

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

7:27 PM Changeset in webkit [295550] by Ross Kirsling
  • 2 edits in trunk

Temporal.PlainTime#since should handle ceil/floor properly
https://bugs.webkit.org/show_bug.cgi?id=241623

Reviewed by Yusuke Suzuki.

This patch adds a spec step that our implementation was missing:

DifferenceTemporalPlainTime ( operation, temporalTime, other, options )

...

  1. If operation is ~since~, then
    1. Set roundingMode to ! NegateTemporalRoundingMode(roundingMode).
  • JSTests/test262/expectations.yaml:

Mark four test cases as passing.

  • Source/JavaScriptCore/runtime/TemporalPlainTime.cpp:

(JSC::TemporalPlainTime::since const):

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

7:21 PM Changeset in webkit [295549] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WTF/wtf/PlatformEnable.h

Wasm LLInt support does not build on arm32-softfp
https://bugs.webkit.org/show_bug.cgi?id=241592

Patch by Joseph Griego <jgriego@igalia.com> on 2022-06-14
Reviewed by Yusuke Suzuki.

Example build failure: https://build.webkit.org/#/builders/61/builds/12719

Additionally, fixing the obvious problem in FPRInfo.h will fix the build
but does not produce working wasm support. So, for now, disable the feature
if are building with the softfp ABI

  • Source/WTF/wtf/PlatformEnable.h:

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

6:49 PM Changeset in webkit [295548] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

[iOS 15+] editing/selection/ios/hide-selection-in-tiny-contenteditable.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=241611
rdar://82183980

Reviewed by Aditya Keerthi.

This test is intended to check whether the text editing caret is visible or hidden on iOS when focusing a 1px by 1px
editable container; in particular, we expect to see the caret show up after making the tiny contenteditable area much
larger. However, the horizontal offset of the caret is sometimes shifted by a small amount to the left during the final
step of the test, likely due to the fact that the web view might still be in an unstable state after the animated zoom
in and out. Unfortunately, I haven't been able to reproduce this locally, so I can't confirm that this theory.

To try and mitigate this with a speculative fix, we:

  1. Update the test so that it just checks whether or not the caret rect is empty during each step.
  2. Use immediateZoomToScale instead of zoomToScale, so that we don't end up in an unstable state after finishing

the second part of the test (which zooms in and out).

  • LayoutTests/editing/selection/ios/hide-selection-in-tiny-contenteditable-expected.txt:
  • LayoutTests/editing/selection/ios/hide-selection-in-tiny-contenteditable.html:
  • LayoutTests/platform/ios-wk2/TestExpectations:

Mark the test as passing.

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

6:13 PM Changeset in webkit [295547] by Jenner@apple.com
  • 5 edits
    1 delete in trunk/Source

Revert [251527@main] GPUP CGContexts create unattributed Metal resources
https://bugs.webkit.org/show_bug.cgi?id=241509
rdar://problem/94803367

Unreviewed build fix/ revert.

  • Source/WTF/wtf/PlatformHave.h:
  • Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
  • Source/WebCore/PAL/pal/PlatformMac.cmake:
  • Source/WebCore/PAL/pal/cg/CoreGraphicsSoftLink.cpp: Removed.
  • Source/WebCore/PAL/pal/cg/CoreGraphicsSoftLink.h: Removed.
  • Source/WebCore/platform/graphics/cocoa/IOSurface.h:
  • Source/WebCore/platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::ensurePlatformContext):
(WebCore::IOSurface::setOwnershipIdentity):

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

5:53 PM Changeset in webkit [295546] by Cameron McCormack
  • 63 edits
    16 deletes in trunk

Revert r295516 and r295373
https://bugs.webkit.org/show_bug.cgi?id=241621

Unreviewed, reverts:

r295516 "Make TextRun::isolatedCopy copy character data in more cases"
r295373 "Add a new DrawDecomposedGlyphs display list item to avoid repeatedly sending glyphs when using the GlyphDisplayListCache"

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

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

Return error when parsing badly encoded std::variant IPC messages.
https://bugs.webkit.org/show_bug.cgi?id=241547
rdar://problem/95016858

Reviewed by Kimmo Kinnunen.

We check the variant's index at the start and insure its validity,
returning early of an invalid type index is found rather than asserting.

Code covered by making PasteboardCustomData::Entry use the std::variant encoder
and covered with ipc/pasteboard-write-custom-data.html

  • Source/WebKit/Platform/IPC/ArgumentCoders.h:
  • Source/WebKit/Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<PasteboardCustomData::Entry>::encode):
(IPC::ArgumentCoder<PasteboardCustomData::Entry>::decode):

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

3:59 PM Changeset in webkit [295544] by don.olmstead@sony.com
  • 1 edit in trunk/Source/cmake/OptionsPlayStation.cmake

[CMake] Specify some PlayStation WebKitRequirements components as optional
https://bugs.webkit.org/show_bug.cgi?id=241585

Reviewed by Ross Kirsling.

Explicitly mark the components of find_package(WebKitRequirements) as optional and required.
Some components can be optionally provided by WebKitRequirements or outside it as its own binary
so do a check for those cases, like libwebp.

  • Source/cmake/OptionsPlayStation.cmake:

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

3:51 PM Changeset in webkit [295543] by Elliott Williams
  • 1 edit in trunk/Tools/CISupport/built-product-archive

Refactor built-product-archive to avoid deleting build products
https://bugs.webkit.org/show_bug.cgi?id=241586

Reviewed by Jonathan Bedard.

Deleting build products interferes with subsequent incremental builds.
Change the script to filter out what gets added to the archive, instead
of deleting from the directory being archived.

On Darwin-based platforms, this is done with mkbom and ditto's --bom
option, and surfaced in createZip via an excludePatterns argument.

Additionally, clean up the top-level logic before calling into
createZip, so that it doesn't need to know about the --minify option.

  • Tools/CISupport/built-product-archive:

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

3:22 PM Changeset in webkit [295542] by Fujii Hironori
  • 2 edits in trunk

TextureMapperLayer - avoiding multiple regions in paintUsingOverlapRegions
https://bugs.webkit.org/show_bug.cgi?id=140101

Reviewed by Don Olmstead.

paintUsingOverlapRegions has a code to merge nonOverlapRegion into
overlapRegion to avoid dividing into multiple small areas if
overlapRegion is bigger than nonOverlapRegion.

However, if the overlap region is just 1 pixel small from all the 4
side, this check would not catch that.

  • LayoutTests/platform/glib/TestExpectations:
  • Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
Compare totalArea of overlapRegion and nonOverlapRegion.

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

3:15 PM Changeset in webkit [295541] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Remove redundant text-align-last BuilderCustom functions
https://bugs.webkit.org/show_bug.cgi?id=241607
<rdar://95131415>

Reviewed by Simon Fraser.

They might have been copy pasted from text-align, which needs them for the hasExplicitlySetTextAlign flag, which text-align-last does not have.

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialTextAlignLast): Deleted.
(WebCore::Style::BuilderCustom::applyValueTextAlignLast): Deleted.

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

3:14 PM Changeset in webkit [295540] by Jonathan Bedard
  • 4 edits in trunk

[git-webkit] Automatically grant team access to private forks
https://bugs.webkit.org/show_bug.cgi?id=240819
<rdar://93780380>

Reviewed by Stephanie Lewis.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker): Share ACCEPT_HEADER string.
(Tracker.credentials.validater): Ditto.

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

(Setup.github): Allow provided team access to forked repository.
(Setup.git): Pass team for repo access from webkitscmpy.access config value.

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

(GitHub): Share ACCEPT_HEADER string.
(GitHub.PRGenerator.create): Ditto.
(GitHub.PRGenerator.update): Ditto.
(GitHub.request): Ditto.

  • metadata/git_config_extension: Define group to have access to apple/WebKit forks.

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

2:59 PM Changeset in webkit [295539] by Cameron McCormack
  • 5 edits in trunk/Source/WebCore

Track SVG renderer updates using a NodeFlag instead of on Style::Update
https://bugs.webkit.org/show_bug.cgi?id=241489
<rdar://problem/94756741>

Reviewed by Antti Koivisto.

SVG renderer updates are currently tracked as a kind of Style::Update change.
When a page is updating attributes on many SVG elements, but is not making
changes that require a restyle on those elements, we can spend a lot of time
hashing to store and look up the Style::Update associated with an element.

This patch moves the "SVG renderer update is needed" state to a Node flag
instead, but continues to use the Style::Update mechanism for root tracking,
to reduce this overhead.

This is a 1% improvement on the MotionMark Suits sub-test.

  • Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRenderTree):
(WebCore::RenderTreeUpdater::updateSVGRendererIfNeeded):
(WebCore::RenderTreeUpdater::updateElementRenderer):

  • Source/WebCore/rendering/updating/RenderTreeUpdater.h:
  • Source/WebCore/style/StyleUpdate.cpp:

(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addSVGRendererUpdate):

  • Source/WebCore/style/StyleUpdate.h:

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

2:46 PM Changeset in webkit [295538] by Matt Woodrow
  • 3 edits in trunk

Treat the composite operator for the bottom mask layer as source-over.
https://bugs.webkit.org/show_bug.cgi?id=241541

Reviewed by Tim Nguyen.

  • LayoutTests/TestExpectations:
  • Source/WebCore/rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • Source/WebCore/rendering/style/FillLayer.h:

(WebCore::FillLayer::compositeForPainting const):

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

2:36 PM Changeset in webkit [295537] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/UIProcess

Update context menu icon for Remove Background
https://bugs.webkit.org/show_bug.cgi?id=241467

Patch by Mike Wyrzykowski <mwyrzykowski@apple.com> on 2022-06-14
Reviewed by Dean Jackson and Wenson Hsieh.

Update the symbol names for Copy Subject and Remove Background.

  • Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction imageForElementActionType:]):
Copy Subject will use circle.dashed.rectangle.

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView removeBackgroundMenu]):
Remove Background should use circle.rectangle.filled.pattern.diagonalline.

(-[WKContentView menuWithInlineAction:image:identifier:handler:]):
Add image parameter for vertical context menu.

(-[WKContentView appHighlightMenu]):
We could use the "quicknote" symbol here but I don't think it's correct.
I left it empty because I don't think app highlights menu can appear in the
larger vertical context menu.

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

2:17 PM Changeset in webkit [295536] by Brandon
  • 1 edit in trunk/Source/bmalloc/libpas/ReadMe.md

[libpas] Add documentation on running specific tests in libpas
https://bugs.webkit.org/show_bug.cgi?id=241610

Reviewed by Mark Lam.

Add documentation on running specific libpas test cases.

  • Source/bmalloc/libpas/ReadMe.md:

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

2:00 PM Changeset in webkit [295535] by ntim@apple.com
  • 1 edit in trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml

Enable CSSTextAlignLast setting by default
https://bugs.webkit.org/show_bug.cgi?id=241241
<rdar://problem/94313487 >

Reviewed by Alan Bujtas.

All the WPT are on parity with Chrome & Firefox, so this should be ready to ship.

  • Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:

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

1:52 PM Changeset in webkit [295534] by Aditya Keerthi
  • 3 edits in trunk

CrashTracer: MobileSafari at UIKitCore: -[UITextSearchingFindSession foundRange:forSearchString:inDocument:]
https://bugs.webkit.org/show_bug.cgi?id=241602
rdar://94622715

Reviewed by Wenson Hsieh.

UIKit retains the search string passed in to
-[UITextSearchingFindSession foundRange:forSearchString:inDocument:]. However,
since WebKit returns search results asynchronously, the string may be released
by the time we inform the aggregator of the results.

To fix, retain the search string in the capture list of the search completion
handler.

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView performTextSearchWithQueryString:usingOptions:resultAggregator:]):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

Updated tests to use find interaction API rather than SPI.

Explicitly declare WKWebView's conformance to UITextSearching, since the
conformance to _UITextSearching in WKWebViewPrivate.h hides it.

_UITextSearching is still kept around for SPI clients, and will be removed
once they have migrated to the API.

(-[TestSearchAggregator foundRange:forSearchString:inDocument:]):
(-[TestSearchAggregator invalidateFoundRange:inDocument:]):
(testPerformTextSearchWithQueryStringInWebView):
(textRangesForQueryString):
(TEST):

Added an API test to verify the crash no longer occurs.

  • Tools/TestWebKitAPI/ios/UIKitSPI.h:

Declared UITextSearchOptions properties as readwrite for use in testing.

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

1:33 PM Changeset in webkit [295533] by eric.carlson@apple.com
  • 1 edit in trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm

[Cocoa] Update camera list when system preferred camera changes
https://bugs.webkit.org/show_bug.cgi?id=241604
rdar://89694851

Reviewed by Youenn Fablet.

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

(WebCore::AVCaptureDeviceManager::~AVCaptureDeviceManager):
(WebCore::AVCaptureDeviceManager::registerForDeviceNotifications):
(-[WebCoreAVCaptureDeviceManagerObserver observeValueForKeyPath:ofObject:change:context:]):

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

1:01 PM Changeset in webkit [295532] by Simon Fraser
  • 2 edits in trunk/Source/WebCore/rendering

Make RenderLayer ISOHeap allocated
https://bugs.webkit.org/show_bug.cgi?id=241606

Reviewed by Alan Bujtas.

Use ISOHeap allocation for RenderLayer. Losing the heap identifier capability is not a big loss;
RenderLayers themselves don't use much memory.

  • Source/WebCore/rendering/RenderLayer.cpp:
  • Source/WebCore/rendering/RenderLayer.h:

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

11:11 AM Changeset in webkit [295531] by Antti Koivisto
  • 1 edit in trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp

Nullptr crash in RenderLayerCompositor::requiresCompositingLayer
https://bugs.webkit.org/show_bug.cgi?id=241595
<rdar://88854150>

Reviewed by Simon Fraser.

  • Source/WebCore/rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingLayer const):

Add a null check. In -webkit-box-reflect case it is not clear renderer.layer() can't be null.

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

11:06 AM Changeset in webkit [295530] by pvollan@apple.com
  • 12 edits
    1 copy in trunk/Source

Create sandbox extension for Power logging service in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=241227
<rdar://82442196>

Reviewed by Geoffrey Garen.

When power logging is enabled, the GPU process on macOS should be granted access to the Power logging service.

  • Source/WTF/wtf/PlatformHave.h:
  • Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
  • Source/WebCore/PAL/pal/spi/mac/PowerLogSPI.h: Copied from Source/WebKit/UIProcess/Cocoa/GPUProcessProxyCocoa.mm.
  • Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):

  • Source/WebKit/Configurations/WebKit.xcconfig:
  • Source/WebKit/GPUProcess/GPUProcess.h:
  • Source/WebKit/GPUProcess/GPUProcess.messages.in:
  • Source/WebKit/GPUProcess/mac/GPUProcessMac.mm:

(WebKit::GPUProcess::openDirectoryCacheInvalidated):
(WebKit::GPUProcess::enablePowerLogging):

  • Source/WebKit/UIProcess/Cocoa/GPUProcessProxyCocoa.mm:

(WebKit::GPUProcessProxy::powerLoggingInTaskMode const):
(WebKit::GPUProcessProxy::enablePowerLogging):

  • Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didFinishLaunching):

  • Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
  • Source/WebKit/UIProcess/WebProcessPool.h:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:

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

11:05 AM Changeset in webkit [295529] by Matteo Flores
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

[Gardening][ iOS ] editing/pasteboard/dom-paste/dom-paste-same-origin.html is a flaky timeout/failure.
https://bugs.webkit.org/show_bug.cgi?id=237174

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

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

Adopt SPI to get default content of Launch Services database
https://bugs.webkit.org/show_bug.cgi?id=241286
<rdar://64528683>

Reviewed by Geoffrey Garen.

Adopt SPI to get system content of Launch Services database. If this SPI is available,
it will replace the SPI we currently use to retrieve the database in the Network process.

  • Source/WTF/wtf/PlatformHave.h:
  • Source/WebKit/NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm:

(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):

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

10:51 AM Changeset in webkit [295527] by Matteo Flores
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]REGRESSION(r289495): [ Monterey arm64 ] model-element/model-element-ready.html is a flaky assertion failure
https://bugs.webkit.org/show_bug.cgi?id=236678

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

10:09 AM Changeset in webkit [295526] by commit-queue@webkit.org
  • 10 edits
    1 add in trunk

[GLib] Support for JS scripts evaluation involving Promises
https://bugs.webkit.org/show_bug.cgi?id=241418

Patch by Philippe Normand <philn@igalia.com> on 2022-06-14
Reviewed by Adrian Perez de Castro and Michael Catanzaro.

The current APIs for webkit_web_view_run_javascript_* do not handle scripts involving Promises.
This new API fills the gap.

  • Source/JavaScriptCore/API/glib/JSCDefines.h:
  • Source/WebKit/Shared/API/APISerializedScriptValue.h:
  • Source/WebKit/SourcesGTK.txt:
  • Source/WebKit/SourcesWPE.txt:
  • Source/WebKit/UIProcess/API/glib/APISerializedScriptValueGLib.cpp: Added.

(API::SharedJSContext::SharedJSContext):
(API::SharedJSContext::ensureContext):
(API::SharedJSContext::releaseContextIfNecessary):
(API::sharedContext):
(API::valueFromGVariant):
(API::coreValueFromGVariant):
(API::SerializedScriptValue::createFromGVariant):

  • Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_run_javascript_in_world):
(webkit_web_view_run_async_javascript_function_in_world):

  • Source/WebKit/UIProcess/API/gtk/WebKitWebView.h:
  • Source/WebKit/UIProcess/API/wpe/WebKitWebView.h:
  • Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewRunAsyncFunctions):
(beforeAll):

  • Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::runJavaScriptInWorldAndWaitUntilFinished):
(WebViewTest::runAsyncJavaScriptFunctionInWorldAndWaitUntilFinished):

  • Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:

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

10:07 AM Changeset in webkit [295525] by clopez@igalia.com
  • 3 edits in trunk/Tools

Port to Python3
https://bugs.webkit.org/show_bug.cgi?id=230098
<rdar://problem/82925374>

Reviewed by Aakash Jain.

Port browserperfdash-benchmark to python3 and invoke it with
the python3 interpreter on the CI.

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

(RunBenchmarkTests):

  • Tools/Scripts/browserperfdash-benchmark:
  • Tools/Scripts/webkitpy/browserperfdash/browserperfdash_runner.py:

(BrowserPerfDashRunner._parse_config_file):
(BrowserPerfDashRunner._upload_result):

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

9:21 AM Changeset in webkit [295524] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebKit

UserMediaCaptureManagerProxy should allow reusing any camera source of the same page
https://bugs.webkit.org/show_bug.cgi?id=241548
rdar://problem/95091899

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

We are trying to reuse an existing camera source but we were only storing one camera source.
This does not work well in case the camera source gets cloned and then ended.
What we need to do is store all sources and if one is reusable, use it.

We use a WeakHashSet to store all camera sources (through getUserMedia or clone)
and iterate on them to either reuse and if not possible stop them.

This also ensures that a page does not have two live AVVideoCaptureSource sources.
If we had that, one source would interrupt the other and vice versa.

Fix a bug in which a cloned track would not have its PageIdentifier.

  • Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createCameraSource):
(WebKit::UserMediaCaptureManagerProxy::clone):

  • Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:

(WebKit::RemoteRealtimeMediaSourceProxy::createRemoteCloneSource):

  • Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
  • Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::clone):

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

9:19 AM Changeset in webkit [295523] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/Tools

[BuildStream] Migrate to commit identifier for version keeping
https://bugs.webkit.org/show_bug.cgi?id=241469

Patch by Philippe Normand <philn@igalia.com> on 2022-06-14
Reviewed by Adrian Perez de Castro and Jonathan Bedard.

  • Tools/buildstream/utils/generate-version:
  • Tools/glib/svn-revision: Deleted.

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

7:53 AM Changeset in webkit [295522] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk/Source

GPUP CGContexts create unattributed Metal resources
https://bugs.webkit.org/show_bug.cgi?id=241509
rdar://problem/94803367

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-06-14
Reviewed by Dean Jackson.

Unattributed Metal related memory allocations grow GPUP footprint,
causing the process go over its memory limit.

Add a CoreGraphics SPI to mark that the CGContext resources belong to a
particular process.

Integrate this via IOSurface::setOwnershipIdentity(), as that is where
the current CGContext for IOSurfaces are instantiated and held.

  • Source/WTF/wtf/PlatformHave.h:
  • Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h:
  • Source/WebCore/PAL/pal/cg/CoreGraphicsSoftLink.cpp: Added.
  • Source/WebCore/PAL/pal/cg/CoreGraphicsSoftLink.h: Added.
  • Source/WebCore/PAL/pal/PlatformMac.cmake:
  • Source/WebCore/platform/graphics/cocoa/IOSurface.h:
  • Source/WebCore/platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::ensurePlatformContext):
(WebCore::IOSurface::setOwnershipIdentity):

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

7:47 AM WebKitGTK/2.36.x edited by clopez@igalia.com
(diff)
7:10 AM Changeset in webkit [295521] by Diego Pino Garcia
  • 4 edits in trunk/Tools

[build.webkit.org] Add WebKitGTK and WPE bots for Ubuntu 22.04
https://bugs.webkit.org/show_bug.cgi?id=241335

Reviewed by Adrian Perez de Castro and Aakash Jain.

  • Tools/CISupport/build-webkit-org/config.json: Add two new entries for building WebKitGTK and WPE on Ubuntu 20.04. The current Ubuntu LTS bots are now building WebKitGTK and WPE on Ubuntu 22.04.
  • Tools/CISupport/build-webkit-org/factories_unittest.py: Add two new entries for testing WebKitGTK and WPE on Ubuntu 20.04.
  • Tools/glib/dependencies/apt: Install package 'python-gi' only if available.
  • Tools/gtk/dependencies/apt: Install packages only if available.

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

3:12 AM Changeset in webkit [295520] by clopez@igalia.com
  • 1 edit in trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py

run-benchmark script fails to find the lsof command on Linux
https://bugs.webkit.org/show_bug.cgi?id=241081

Reviewed by Dewei Zhu.

The lsof command is shipped on Linux typically on /usr/bin meanwhile on
Mac is shipped on /usr/sbin. Check if is on PATH before defaulting to the
Mac path.

  • Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: (SimpleHTTPServerDriver._find_http_server_port):

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

3:01 AM Changeset in webkit [295519] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[RISC-V] Build fixes after 251455@main
https://bugs.webkit.org/show_bug.cgi?id=241591

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-06-14
Unreviewed, adding missing RISCV64 build guards alongside guards for other
64-bit platforms to get the build back up and running.

  • Source/JavaScriptCore/llint/WebAssembly.asm:
  • Source/JavaScriptCore/wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::PinnedRegisterInfo::get):

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

1:28 AM Changeset in webkit [295518] by commit-queue@webkit.org
  • 12 edits in trunk

Implement PerformanceResourceTiming.workerStart in ServiceWorkers
https://bugs.webkit.org/show_bug.cgi?id=179377
rdar://problem/35391187

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-14
Reviewed by Alex Christensen.

Store the time when we are about to either fire the fetch event or run the service worker to fire the fetch event.
To do so, we store it in NetworkResourceLoader and send the value to WebResourceLoader.
In case of process swap, we send it back to the new WebResourceLoader.
WebResourceLoader is then responsible to update the network load metrics when receiving the response/finish load metrics.

Covered by updated tests.

  • LayoutTests/http/wpt/service-workers/navigation-timing.https-expected.txt:
  • LayoutTests/http/wpt/service-workers/navigation-timing.js:

(event.setTimeout):

  • LayoutTests/http/wpt/service-workers/resources/navigation-timing-part-2.html:
  • Source/WebCore/page/PerformanceResourceTiming.cpp:

(WebCore::PerformanceResourceTiming::workerStart const):

  • Source/WebCore/platform/network/NetworkLoadMetrics.cpp:

(WebCore::NetworkLoadMetrics::updateFromFinalMetrics):
(WebCore::NetworkLoadMetrics::isolatedCopy const):

  • Source/WebCore/platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):

  • Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::setWorkerStart):

  • Source/WebKit/NetworkProcess/NetworkResourceLoader.h:
  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):

  • Source/WebKit/WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):
(WebKit::WebResourceLoader::didFinishResourceLoad):

  • Source/WebKit/WebProcess/Network/WebResourceLoader.h:

(WebKit::WebResourceLoader::setWorkerStart):

  • Source/WebKit/WebProcess/Network/WebResourceLoader.messages.in:

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

Jun 13, 2022:

11:33 PM Changeset in webkit [295517] by Said Abou-Hallawa
  • 11 edits
    2 deletes in trunk/Source/WebCore

[GPU Process] [Filters] Remove SVGFilterBuilder
https://bugs.webkit.org/show_bug.cgi?id=241577
<rdar://problem/95074247>

Reviewed by Simon Fraser.

After r295498, all the methods of SVGFilterBuilder became static. So this patch
removes it and moves its methods to SVGFilter.

-- colorInterpolationForElement() will be moved to SVGElement::colorInterpolation().
-- effectGeometryFlagsForElement() will be moved to

SVGFilterPrimitiveStandardAttributes::effectGeometryFlags().

-- FilterData::boundaries is removed. It is set in RenderSVGResourceFilter::

applyResource() and used only in RenderSVGResourceFilter::postApplyResource()
where we check '!isEmpty()'. This check can be replaced by checking if filter
is not nullptr.

-- FilterData::scale is removed since it is not used.
-- FilterData::sourceGraphicBuffer and FilterData::drawingRegion are renamed

sourceImage and sourceImageRect respectively to match the named of the inputs
of GraphicsContext::drawFilteredImageBuffer().

  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/rendering/CSSFilter.cpp:

(WebCore::calculateReferenceFilterOutsets):

  • Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):
(WebCore::RenderSVGResourceFilter::drawingRegion const):

  • Source/WebCore/rendering/svg/RenderSVGResourceFilter.h:
  • Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):

  • Source/WebCore/svg/SVGElement.cpp:

(WebCore::SVGElement::colorInterpolation const):

  • Source/WebCore/svg/SVGElement.h:
  • Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::effectGeometryFlags const):

  • Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h:
  • Source/WebCore/svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):
(WebCore::buildFilterEffectsGraph):
(WebCore::SVGFilter::buildExpression):
(WebCore::buildFilterPrimitivesGraph):
(WebCore::SVGFilter::calculateOutsets):

  • Source/WebCore/svg/graphics/filters/SVGFilter.h:
  • Source/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp: Removed.
  • Source/WebCore/svg/graphics/filters/SVGFilterBuilder.h: Removed.

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

11:30 PM Changeset in webkit [295516] by Cameron McCormack
  • 1 edit in trunk/Source/WebCore/platform/graphics/TextRun.h

Make TextRun::isolatedCopy copy character data in more cases
https://bugs.webkit.org/show_bug.cgi?id=241581

Reviewed by Simon Fraser.

  • Source/WebCore/platform/graphics/TextRun.h:

(WebCore::TextRun::isolatedCopy const):

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

9:46 PM Changeset in webkit [295515] by Jean-Yves Avenard
  • 9 edits in trunk

REGRESSION (251426@main): [ macOS Debug wk2 ] http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=241572
rdar://problem/95059414

Reviewed by Cameron McCormack.

In bug 241455 it was incorrectly assumed that checking that the IPCHandle was null
was a sufficient test to check the validity of the reply. However, this ignore the
fact that the IPC decoder will assert if the size isn't valid.
So rather than returning a Handle directly, we return an optional<Handle> instead.

Covered by the existing test.

  • LayoutTests/platform/mac-wk2/TestExpectations:
  • Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:

(WebKit::RemoteMediaResourceManager::dataReceived):

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

(WebKit::RemoteSourceBufferProxy::append):

  • Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.h:
  • Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:

(WebKit::RemoteMediaResourceProxy::dataReceived):

  • Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::append):

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

8:34 PM Changeset in webkit [295514] by Fujii Hironori
  • 2 edits
    2 adds in trunk

TextureMapper: if an element has both a mask image and reflection, the part of the reflection isn't painted
https://bugs.webkit.org/show_bug.cgi?id=241257

Reviewed by Don Olmstead.

If an element has both a mask image and reflection, the mask should be
applied both for the reflection and the real layers. However,
TextureMapper was using a single intermediate surface for painting the
reflection and the real layers.

  1. Painting the reflection layer
  2. Applying the mask to the reflection layer
  3. Painting the real layer
  4. Applying the mask to the real layer

In the step#4, if the mask layer is larger than the element rect, the
mask was unexpectedly applied to the part of the reflection.

The reflection and the real layers should be painted and masked
separately using intermediate surfaces. If the element has opacity,
they should have another intermediate surface to blend together with
the destination.

  • LayoutTests/compositing/reflections/mask-and-reflection-expected.html: Added.
  • LayoutTests/compositing/reflections/mask-and-reflection.html: Added.
  • Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::shouldBlend const):
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::TextureMapperLayer::paintSelfChildrenFilterAndMask):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithIntermediateSurface):
(WebCore::TextureMapperLayer::paintSelfChildrenReplicaFilterAndMask):
(WebCore::TextureMapperLayer::paintRecursive):
(WebCore::TextureMapperLayer::setMaskLayer):

  • Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h:

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

8:10 PM Changeset in webkit [295513] by don.olmstead@sony.com
  • 1 edit in trunk/Source/WebCore/rendering/RenderThemePlayStation.h

Build fix for PlayStation after r295476
https://bugs.webkit.org/show_bug.cgi?id=241582

Reviewed by Myles C. Maxfield.

In r295476 RenderThemePlayStation::system implementation was removed but the declaration was still
present.

  • Source/WebCore/rendering/RenderThemePlayStation.h:

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

7:30 PM Changeset in webkit [295512] by Matt Woodrow
  • 8 edits
    203 adds in trunk/LayoutTests

Reimport css/css-masking/mask-image WPTs.
https://bugs.webkit.org/show_bug.cgi?id=241567

Reviewed by Tim Nguyen and Simon Fraser.

Import of revision d70634c5f7621f8958c82710c7dd366f5df08f72.

  • LayoutTests/TestExpectations:
  • LayoutTests/imported/w3c/resources/import-expectations.json:
  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-clip-1-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-clip-1-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-clip-1.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-clip-2-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-clip-2-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-clip-2.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1c-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1c.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1d-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-1d.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-2-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-2a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-2a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-2b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-2b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-2c-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-composite-2c.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1c-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1c.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1d-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-1d.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-2-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-2-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-2.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3c-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3c.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3d-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3d.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3e-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3e.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3f-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3f.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3g-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3g.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3h-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3h.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3i-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-3i.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-4a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-4a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-4b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-4b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-5-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-5-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-5.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-6-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-6-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-6.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-clip-exclude-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-data-url-image-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-c-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-c.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-d-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-d.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-to-mask-type-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-to-mask-type-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-mode-to-mask-type.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1c-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1c.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1d-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1d.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1e-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-opacity-1e.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-1-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-1-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-1.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-2-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-2-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-2.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-3-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-3-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-origin-3.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-1-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-1a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-1a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-1b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-1b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-1c-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-1c.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-2-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-2a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-2a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-2b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-2b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-3-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-3a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-3a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-3b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-3b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4a-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4a.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4b-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4b.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4c-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4c.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4d-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-4d.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-5-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-5-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-5.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-6-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-6-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-6.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-7-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-7-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-position-7.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-1-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-1-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-1.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-2-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-2-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-2.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-3-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-3-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-repeat-3.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-auto-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-auto.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-length-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-length-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-length.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-percent-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-percent.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-auto.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-clip-border-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-clip-border-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-clip-border.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-clip-padding-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-clip-padding-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-clip-padding.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-position-fifty-fifty-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-position-fifty-fifty-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-position-fifty-fifty.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-contain.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-cover-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-cover-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-cover.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-auto-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-auto.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-length-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-length-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-length.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-percent-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-percent-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length-percent.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-length.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-auto-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-auto.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-length-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-length.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-percent-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-percent-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-percent-stretch-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-percent-stretch-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-percent-stretch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent-percent.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-size-percent.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/50x100-opaque-blue.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/50x50-opaque-blue.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/blue-100x100.png: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/blue-100x100.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/blue-100x50-transparent-100x50.png: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/blue-100x50-transparent-100x50.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/blue-luminance-100x100.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/green-100x100.png: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/green-100x100.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/green-luminance-100x100.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/mask-half-transparent-100x100.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/red-100x100.png: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/red-100x100.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/red-luminance-100x100.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/transparent-100x50-blue-100x50.png: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/transparent-100x50-blue-100x50.svg: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/support/w3c-import.log:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/w3c-import.log:
  • LayoutTests/platform/gtk/TestExpectations:
  • LayoutTests/platform/ios/TestExpectations:

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

7:24 PM Changeset in webkit [295511] by yurys@chromium.org
  • 6 edits in trunk

[WPE][GTK] REGRESSION (r294381): WPEWebProcess leak after closing browser
https://bugs.webkit.org/show_bug.cgi?id=241353

Reviewed by Alex Christensen.

Do not keep strong reference to WebPageProxy in the async IPC callback, instead
use WeakPtr to let the page be destroyed if necessary, otherwise the page may
keep its process pool alive after the page was closed.

  • Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp: exposed a couple of internal

methods for testing the behavior.
(webkitWebViewForceRepaintForTesting):
(webkitSetCachedProcessSuspensionDelayForTesting):

  • Source/WebKit/UIProcess/API/glib/WebKitWebViewInternal.h:
  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::forceRepaint): replaced strong reference in the callback with
a weak one.

  • Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testNoWebProcessLeakAfterWebKitWebContextDestroy): new test that makes sure that outstanding
async IPC callbacks are run when page and its context are destroyed.
(beforeAll):

  • Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::waitUntilLoadFinished):

  • Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:

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

6:17 PM Changeset in webkit [295510] by pvollan@apple.com
  • 2 edits in trunk/Source

[Catalyst] Fix build
https://bugs.webkit.org/show_bug.cgi?id=241573
<rdar://95038696>

Reviewed by Wenson Hsieh.

The function CGSSetDenyWindowServerConnections has not been declared.

  • Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h:
  • Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm:

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

6:00 PM Changeset in webkit [295509] by Ross Kirsling
  • 1 edit in trunk/Source/JavaScriptCore/jsc.cpp

jsc.exe --module-file should understand Windows paths
https://bugs.webkit.org/show_bug.cgi?id=241518

Reviewed by Yusuke Suzuki.

jsc.cpp's module loader was written without any accommodation for Windows, so:

  1. On Windows, recognize C:\foo as an absolute path and .\foo and ..\foo as dotted relative paths (allowing '/' too).
  2. On all platforms, stop misusing the URL(base, relative) constructor. This isn't the way to add file:/// to an abspath.

This ensures that module tests are able to run well on Windows.

  • Source/JavaScriptCore/jsc.cpp:

(isAbsolutePath): Added.
(isDottedRelativePath): Added.
(absoluteFileURL): Renamed from absolutePath.
(GlobalObject::moduleLoaderImportModule):
(GlobalObject::moduleLoaderResolve):
(JSC_DEFINE_HOST_FUNCTION):
(computeFilePath):
(runWithOptions):

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

5:41 PM Changeset in webkit [295508] by yurys@chromium.org
  • 1 edit in trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h

error: field ‘m_preloadResponse’ has incomplete type ‘WebCore::ResourceResponse’
https://bugs.webkit.org/show_bug.cgi?id=241579

Reviewed by Michael Catanzaro.

Fix WPE compilation.

  • Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h: include missing header.

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

5:37 PM Changeset in webkit [295507] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore/Modules/pictureinpicture

Emit resize event from PiP window
https://bugs.webkit.org/show_bug.cgi?id=241569

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-13
Reviewed by Jer Noble.

When the a PiP window is resized, a resize event should be emitted from
the window object, not just the <video> element.

  • Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:

(WebCore::HTMLVideoElementPictureInPicture::pictureInPictureWindowResized):

  • Source/WebCore/Modules/pictureinpicture/PictureInPictureWindow.cpp:

(WebCore::PictureInPictureWindow::create):
(WebCore::PictureInPictureWindow::PictureInPictureWindow):
(WebCore::PictureInPictureWindow::setSize):

  • Source/WebCore/Modules/pictureinpicture/PictureInPictureWindow.h:
  • Source/WebCore/Modules/pictureinpicture/PictureInPictureWindow.idl:

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

5:21 PM Changeset in webkit [295506] by J Pascoe
  • 3 edits in trunk/Source

[WebAuthn] CTAP2_ERR_USER_ACTION_TIMEOUT isn't handled properly
https://bugs.webkit.org/show_bug.cgi?id=241565
rdar://95040155

Reviewed by Brent Fulgham.

Authenticators will time out operations after so many seconds of
waiting for user interaction, returning an error of
CTAP2_ERR_USER_ACTION_TIMEOUT. This patch handles that error
by reissuing the request, instead of letting it go to U2F fallback
and failing there with "no credentials found."

Tested with a Yubikey 5c.

  • Source/WebCore/Modules/webauthn/fido/FidoConstants.cpp:

(fido::isCtapDeviceResponseCode):

  • Source/WebCore/Modules/webauthn/fido/FidoConstants.h:
  • Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):

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

4:42 PM Changeset in webkit [295505] by clopez@igalia.com
  • 1 edit in trunk/metadata/contributors.json

Add clopez github account to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=241578

Unreviewed.

  • metadata/contributors.json:

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

3:48 PM Changeset in webkit [295504] by Simon Fraser
  • 1 edit in trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm

CrashTracer: MobileSafari at WebKit: -[WKWebView(WKViewInternalIOS) _updateScrollViewForTransaction:]
https://bugs.webkit.org/show_bug.cgi?id=241563
<rdar://94621991>

Reviewed by Wenson Hsieh.

Protect against a null root scrolling node.

  • Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _updateScrollViewForTransaction:]):

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

3:33 PM Changeset in webkit [295503] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: REGRESSION (251426@main): [ macOS Debug wk2 ] http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=241572
<rdar://95059414>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

2:30 PM Changeset in webkit [295502] by Patrick Angle
  • 2 edits in trunk/Source

Web Inspector: [Cocoa] Web Inspector windows open in separate window collection instead of on current stage when using Stage Manager
https://bugs.webkit.org/show_bug.cgi?id=241521
rdar://91964707

Reviewed by Devin Rousso.

For Stage Manager, the Web Inspector window should appear in the same workspace as the active Safari window. Currently
the best way to accomplish this without negatively impacting our fullscreen behavior is to appear as if we are a
preferences window with a toolbar and NSWindowToolbarStylePreference. By hiding the toolbar, there is no visual or
functional change to Web Inspector, and we now get classified as an auxiliary window only in Stage Manager.

  • Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::createFrontendWindow):

  • Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController window]):

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

2:26 PM BuildingGtk edited by Basuke Suzuki
(diff)
1:52 PM Changeset in webkit [295501] by achristensen@apple.com
  • 1 edit in trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp

Lambda in UniqueIDBDatabaseConnection::abortTransactionWithoutCallback should check weakThis before using this
https://bugs.webkit.org/show_bug.cgi?id=241557

Reviewed by Youenn Fablet.

  • Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):

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

1:19 PM Changeset in webkit [295500] by Razvan Caliman
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js

REGRESSION (r251194): Web Inspector: Uncaught exception when inspecting color referenced by CSS variable
https://bugs.webkit.org/show_bug.cgi?id=241558

Reviewed by Devin Rousso.

The patch for https://bugs.webkit.org/show_bug.cgi?id=241055 introduced an option
to prevent changing color formats when interacting with an inline color swatch.

The value of the preventChangingColorFormats option kept as an instance property of WI.InlineSwatch.
This is then referenced in the callback passed to createCodeMirrorColorTextMarkers(). The
callback doesn't share the same scope, so an exception is raied when calling this._preventChangingColorFormats.

This patch ensures the value of the instance property is captured in the scope of the callback passed.

  • Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch.prototype._swatchElementClicked.switch.case.WI.InlineSwatch.Type.Variable.optionsForType):
(WI.InlineSwatch.prototype._swatchElementClicked):

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

1:07 PM Changeset in webkit [295499] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm

Check for null buffers in SharedVideoFrameInfo::writePixelBuffer
https://bugs.webkit.org/show_bug.cgi?id=241544
rdar://94649789

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

  • Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm:

(WebCore::SharedVideoFrameInfo::writePixelBuffer):

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

12:52 PM Changeset in webkit [295498] by Said Abou-Hallawa
  • 53 edits in trunk/Source/WebCore

[GPU Process] [Filters] Simplify the dynamic update of the SVG filter elements
https://bugs.webkit.org/show_bug.cgi?id=232842
rdar://85426197

Reviewed by Simon Fraser.

Consider this SVG as an example:

<svg>

<filter id="blur">

<feGaussianBlur stdDeviation="5"/>

</filter>
<circle ... filter="url(#blur)"/>
<rect ... filter="url(#blur)"/>

</svg>

The renderers of the <circle> and the <rect> elements ask the renderer of the
<filter> element, i.e. RenderSVGResourceFilter to applyResource(). In this
function a new SVGFilter is created for each target renderer. A new entry
{ target_renderer, FilterData } is added to
RenderSVGResourceFilter::m_rendererFilterDataMap.

While building the SVGFilter, a new FilterEffect is created for every target
renderer and an entry { primitive_renderer, effect } is added to
SVGFilterBuilder::m_effectRenderer.

Suppose 'stdDeviation' of <feGaussianBlur> has been changed, this is the
current workflow:

SVGFEGaussianBlurElement::svgAttributeChanged() will call
SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged() which
will call RenderSVGResourceFilterPrimitive::primitiveAttributeChanged().
The last one will call RenderSVGResourceFilter::primitiveAttributeChanged()
and pass itself as an argument.

RenderSVGResourceFilter::primitiveAttributeChanged() will loop through
all the entries in m_rendererFilterDataMap and get the FilterData. And
then it gets the effect given the key primitive renderer from
FilterData::SVGFilterBuilder::m_effectRenderer. Having this effect, its
setFilterEffectAttribute() will be called.

This workflow is cumbersome since it was mainly done this way because the result
FilterImage was stored with the FilterEffect. But since the result FilterImage
was moved out of the FilterEffect, we do not need to create a new FilterEffect
for every target renderer. The same FilterEffect can be shared among all the
target renderers.

This is the new workflow for dynamically updating the FilterEffect attributes:

No need to create a separate FilterEffect for every SVGFilter (or target
renderer). A shared FilterEffect can be used instead. This will be
SVGFilterPrimitiveStandardAttributes::m_effect.

SVGFEGaussianBlurElement::svgAttributeChanged() will call
SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged() which
will call SVGFEGaussianBlurElement::setFilterEffectAttribute() if m_effect
is not null. setFilterEffectAttribute() will return true if it needs to
be repainted. RenderSVGResourceFilterPrimitive::markFilterEffectForRepaint()
will be called then.

RenderSVGResourceFilterPrimitive::markFilterForInvalidation() will call
RenderSVGResourceFilter::markFilterForRepaint() if effect is not null which
will clear the result FilterImage of this effect and all other FilterImages
which takes the result FilterImage of this effect as an input.

If svgAttributeChanged() finds out it needs to rebuild the entire SVGFilter,
it will call SVGFilterPrimitiveStandardAttributes::markFilterEffectForRebuild()
which will call RenderSVGResourceFilterPrimitive::markFilterEffectForRebuild()
and sets SVGFilterPrimitiveStandardAttributes::m_effect to nullptr.
RenderSVGResourceFilterPrimitive::markFilterEffectForRebuild() will call
RenderSVGResourceFilter::markFilterForRebuild() which will clear
RenderSVGResourceFilter::m_rendererFilterDataMap. This will force rebuilding
the SVGFilter for all renderers.

  • Source/WebCore/platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::setStdDeviationX):
(WebCore::FEDropShadow::setStdDeviationY):
(WebCore::FEDropShadow::setDx):
(WebCore::FEDropShadow::setDy):
(WebCore::FEDropShadow::setShadowColor):
(WebCore::FEDropShadow::setShadowOpacity):

  • Source/WebCore/platform/graphics/filters/FEDropShadow.h:

(WebCore::FEDropShadow::setStdDeviationX): Deleted.
(WebCore::FEDropShadow::setStdDeviationY): Deleted.
(WebCore::FEDropShadow::setDx): Deleted.
(WebCore::FEDropShadow::setDy): Deleted.
(WebCore::FEDropShadow::setShadowColor): Deleted.
(WebCore::FEDropShadow::setShadowOpacity): Deleted.

  • Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::setStdDeviationX):
(WebCore::FEGaussianBlur::setStdDeviationY):
(WebCore::FEGaussianBlur::setEdgeMode):

  • Source/WebCore/platform/graphics/filters/FEGaussianBlur.h:
  • Source/WebCore/platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::setDx):
(WebCore::FEOffset::setDy):

  • Source/WebCore/platform/graphics/filters/FEOffset.h:
  • Source/WebCore/rendering/CSSFilter.cpp:

(WebCore::createReferenceFilter):

  • Source/WebCore/rendering/svg/RenderSVGResourceContainer.h:
  • Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::markFilterForRepaint):
(WebCore::RenderSVGResourceFilter::markFilterForRebuild):
(WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Deleted.

  • Source/WebCore/rendering/svg/RenderSVGResourceFilter.h:
  • Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp:

(WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
(WebCore::RenderSVGResourceFilterPrimitive::markFilterEffectForRepaint):
(WebCore::RenderSVGResourceFilterPrimitive::markFilterEffectForRebuild):

  • Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h:
  • Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):

  • Source/WebCore/svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::setFilterEffectAttribute):
(WebCore::SVGFEBlendElement::createFilterEffect const):
(WebCore::SVGFEBlendElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEBlendElement.h:
  • Source/WebCore/svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::isInvalidValuesLength const):
(WebCore::SVGFEColorMatrixElement::setFilterEffectAttribute):
(WebCore::SVGFEColorMatrixElement::svgAttributeChanged):
(WebCore::SVGFEColorMatrixElement::createFilterEffect const):
(WebCore::SVGFEColorMatrixElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEColorMatrixElement.h:
  • Source/WebCore/svg/SVGFEComponentTransferElement.cpp:

(WebCore::SVGFEComponentTransferElement::svgAttributeChanged):
(WebCore::SVGFEComponentTransferElement::createFilterEffect const):
(WebCore::SVGFEComponentTransferElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEComponentTransferElement.h:
  • Source/WebCore/svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::setFilterEffectAttribute):
(WebCore::SVGFECompositeElement::svgAttributeChanged):
(WebCore::SVGFECompositeElement::createFilterEffect const):
(WebCore::SVGFECompositeElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFECompositeElement.h:
  • Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::setFilterEffectAttribute):
(WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):
(WebCore::SVGFEConvolveMatrixElement::createFilterEffect const):
(WebCore::SVGFEConvolveMatrixElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEConvolveMatrixElement.h:
  • Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute):
(WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
(WebCore::SVGFEDiffuseLightingElement::createFilterEffect const):
(WebCore::SVGFEDiffuseLightingElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEDiffuseLightingElement.h:
  • Source/WebCore/svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::setFilterEffectAttribute):
(WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
(WebCore::SVGFEDisplacementMapElement::createFilterEffect const):
(WebCore::SVGFEDisplacementMapElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEDisplacementMapElement.h:
  • Source/WebCore/svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::svgAttributeChanged):
(WebCore::SVGFEDropShadowElement::setFilterEffectAttribute):
(WebCore::SVGFEDropShadowElement::createFilterEffect const):
(WebCore::SVGFEDropShadowElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEDropShadowElement.h:
  • Source/WebCore/svg/SVGFEFloodElement.cpp:

(WebCore::SVGFEFloodElement::setFilterEffectAttribute):
(WebCore::SVGFEFloodElement::createFilterEffect const):
(WebCore::SVGFEFloodElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEFloodElement.h:
  • Source/WebCore/svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
(WebCore::SVGFEGaussianBlurElement::setFilterEffectAttribute):
(WebCore::SVGFEGaussianBlurElement::createFilterEffect const):
(WebCore::SVGFEGaussianBlurElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEGaussianBlurElement.h:
  • Source/WebCore/svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::svgAttributeChanged):
(WebCore::SVGFEImageElement::createFilterEffect const):
(WebCore::SVGFEImageElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEImageElement.h:
  • Source/WebCore/svg/SVGFEMergeElement.cpp:

(WebCore::SVGFEMergeElement::childrenChanged):
(WebCore::SVGFEMergeElement::createFilterEffect const):
(WebCore::SVGFEMergeElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEMergeElement.h:
  • Source/WebCore/svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::setFilterEffectAttribute):
(WebCore::SVGFEMorphologyElement::svgAttributeChanged):
(WebCore::SVGFEMorphologyElement::createFilterEffect const):
(WebCore::SVGFEMorphologyElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEMorphologyElement.h:
  • Source/WebCore/svg/SVGFEOffsetElement.cpp:

(WebCore::SVGFEOffsetElement::svgAttributeChanged):
(WebCore::SVGFEOffsetElement::setFilterEffectAttribute):
(WebCore::SVGFEOffsetElement::createFilterEffect const):
(WebCore::SVGFEOffsetElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFEOffsetElement.h:
  • Source/WebCore/svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::setFilterEffectAttribute):
(WebCore::SVGFESpecularLightingElement::createFilterEffect const):
(WebCore::SVGFESpecularLightingElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFESpecularLightingElement.h:
  • Source/WebCore/svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::createFilterEffect const):
(WebCore::SVGFETileElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFETileElement.h:
  • Source/WebCore/svg/SVGFETurbulenceElement.cpp:

(WebCore::SVGFETurbulenceElement::setFilterEffectAttribute):
(WebCore::SVGFETurbulenceElement::createFilterEffect const):
(WebCore::SVGFETurbulenceElement::filterEffect const): Deleted.

  • Source/WebCore/svg/SVGFETurbulenceElement.h:
  • Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::filterEffect):
(WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::markFilterEffectForRebuild):
(WebCore::SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute): Deleted.

  • Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h:

(WebCore::SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute):
(WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged): Deleted.

  • Source/WebCore/svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):

  • Source/WebCore/svg/graphics/filters/SVGFilter.h:
  • Source/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::buildFilterExpression):

  • Source/WebCore/svg/graphics/filters/SVGFilterBuilder.h:

(WebCore::SVGFilterBuilder::effectByRenderer): Deleted.

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

12:23 PM Changeset in webkit [295497] by achristensen@apple.com
  • 1 edit in trunk/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj

Remove "Symlink WebKitPluginHost" build phase of WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=241553

Reviewed by Alexey Proskuryakov.

  • Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj:

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

12:20 PM Changeset in webkit [295496] by Elliott Williams
  • 14 edits in trunk

[Xcode] Use workspace builds by default in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=241298

Reviewed by Alexey Proskuryakov.

Switch the default value of the --use-workspace flag, and add a warning
message indicating that non-workspace Xcode builds are deprecated.

Add product dependencies and disable SDK metadata parsing in tools
projects, to prevent watchOS/tvOS workspace builds from thinking we are
linking against system WebKit.

Add an aggregate "MiniBrowser (Platform filters)" target, which builds
MiniBrowser.app iff the workspace is building for a Mac destination.

  • Source/ThirdParty/libwebrtc/Configurations/DebugRelease.xcconfig: Fix an sdk xcconfig setting.
  • Tools/DumpRenderTree/mac/Configurations/DumpRenderTreeLibrary.xcconfig: Set DISABLE_SDK_METADATA_PARSING.
  • Tools/DumpRenderTree/mac/Configurations/LayoutTestHelper.xcconfig: Set DISABLE_SDK_METADATA_PARSING.
  • Tools/MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: Create the aggregate target mentioned above.
  • Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj: Link MobileMiniBrowser.framework against WebKit.
  • Tools/Scripts/build-webkit: Switch --use-workspace default.
  • Tools/TestWebKitAPI/Configurations/InjectedBundle.xcconfig: Set DISABLE_SDK_METADATA_PARSING.
  • Tools/TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Set DISABLE_SDK_METADATA_PARSING.
  • Tools/TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Set DISABLE_SDK_METADATA_PARSING.
  • Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add WebKit product dependency.
  • Tools/WebKitTestRunner/Configurations/InjectedBundle.xcconfig: Add DISABLE_SDK_METADATA_PARSING.
  • Tools/WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig: Add DISABLE_SDK_METADATA_PARSING.
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Modules.xcscheme: Replace MiniBrowser.app with the aggregate target.
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Tools.xcscheme: Replace MiniBrowser.app with the aggregate target.

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

11:51 AM Changeset in webkit [295495] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS ] webanimations/accelerated-animation-after-forward-filling-animation.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239794
<rdar://92365628>

Patch by Antoine Quint <Antoine Quint> on 2022-06-13
Reviewed by Dean Jackson.

Typically we wait 3 frames before considering an accelerated animation was committed.
Additionally, locally I could reproduce the issue prior to this patch but not with it.

  • LayoutTests/platform/mac/TestExpectations:
  • LayoutTests/webanimations/accelerated-animation-after-forward-filling-animation.html:

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

11:49 AM Changeset in webkit [295494] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Regression (r268615) : [ macOS ] webanimations/relative-ordering-of-translate-and-rotate-properties-accelerated.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=230863
<rdar://83593809>

Patch by Antoine Quint <Antoine Quint> on 2022-06-13
Reviewed by Dean Jackson.

Use the tried and true technique of waiting for animations to be ready and three animation frames
to ensure all accelerated animations have been committed.

  • LayoutTests/platform/mac-wk1/TestExpectations:
  • LayoutTests/webanimations/resources/wait-until-animations-are-committed.js:

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

11:20 AM Changeset in webkit [295493] by sihui_liu@apple.com
  • 7 edits in trunk/Source/WebKit/UIProcess

Start/stop ProcessStateMonitor with ApplicationStateTracker
https://bugs.webkit.org/show_bug.cgi?id=241427

Reviewed by Geoffrey Garen.

We want ProcessStateMonitor to be started when application is in background and to be stopped when application is in
foreground. In r294405, we start/stop ProcessStateMonitor on receiving UIApplicationDidEnterBackgroundNotification and
UIApplicationWillEnterForegroundNotification notifications. However, UIApplicationWillEnterForegroundNotification can be
sent later than UISceneWillEnterForegroundNotification. In ApplicationStateTracke, we start creating foreground activity
for web process on receiving UISceneWillEnterForegroundNotification. At this time,
UIApplicationWillEnterForegroundNotification may not be received yet and ProcessStateMonitor may still be
working. ProcessStateMonitor may forbid creating new activity after it sets process shouldSuspend (see r294405), so we
need to make sure ProcessStateMonitor is stopped before starting new foreground activity.

To achieve that, we now decide when to start/stop ProcessStateMonitor with ApplicationStateTracker. We start
ProcessStateMonitor when all trackers are in the background, and stop it when at least one tracker is in foreground.

  • Source/WebKit/UIProcess/ApplicationStateTracker.mm:

(WebKit::allApplicationStateTrackers):
(WebKit::updateApplicationBackgroundState):
(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
(WebKit::ApplicationStateTracker::applicationDidEnterBackground):
(WebKit::ApplicationStateTracker::applicationWillEnterForeground):

  • Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::setProcessesShouldSuspend):

  • Source/WebKit/UIProcess/ProcessAssertion.h:
  • Source/WebKit/UIProcess/WebProcessPool.h:
  • Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager setProcessStateMonitorEnabled:]):
(WebKit::ProcessAndUIAssertion::setProcessStateMonitorEnabled):

  • Source/WebKit/UIProcess/ios/ProcessStateMonitor.mm:

(WebKit::ProcessStateMonitor::checkRemainingRunTime):

  • Source/WebKit/UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::platformInitialize):

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

10:16 AM Changeset in webkit [295492] by Tyler Wilcock
  • 11 edits in trunk

AX: Update the isolated tree in response to dynamic aria-orientation changes
https://bugs.webkit.org/show_bug.cgi?id=241543

Reviewed by Chris Fleizach.

This patch also makes aria-orientation work for node-only objects, like
those with display:contents.

  • LayoutTests/accessibility/aria-orientation-expected.txt:
  • LayoutTests/accessibility/aria-orientation.html:
  • Source/WebCore/accessibility/AXLogger.cpp:

(WebCore::operator<<):

  • Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp
  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):

  • Source/WebCore/accessibility/AXObjectCache.h:
  • Source/WebCore/accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::orientation const):

  • Source/WebCore/accessibility/AccessibilityNodeObject.h:
  • Source/WebCore/accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::orientation const): Deleted.

  • Source/WebCore/accessibility/AccessibilityRenderObject.h:
  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):

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

10:15 AM Changeset in webkit [295491] by Andres Gonzalez
  • 6 edits in trunk/Source

AX ITM: Fix for accessibility/Mac/aria-errormessage.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=241398

Test: accessibility/Mac/aria-errormessage.html

Reviewed by Chris Fleizach and Tyler Wilcock.

This test was failing because the elements that are referenced as error messages are <span> elements, which are ignored on the mac platform. Therefore there was no isolated object created for those elements and AXIsolatedTree::objectsForIDs will not return them. This patch solves this problem by creating orphan isolated objects in AXIsolatedTree:objectsForIDs if there is no isolated object for the requested AXID, and the corresponding live objects exists.

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

9:11 AM Changeset in webkit [295490] by commit-queue@webkit.org
  • 5 edits in trunk

WebGL: Fix implicit clears with rasterizer discard enabled
https://bugs.webkit.org/show_bug.cgi?id=223351

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-13
Reviewed by Kimmo Kinnunen.

  • Do not mark context as changed after draw or clear ops with

enabled rasterizer discard.

  • Rename ClearCaller enum to CallerType.
  • LayoutTests/TestExpectations:
  • Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::blitFramebuffer):
(WebCore::WebGL2RenderingContext::copyTexSubImage3D):
(WebCore::WebGL2RenderingContext::drawRangeElements):
(WebCore::WebGL2RenderingContext::readPixels):

  • Source/WebCore/html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::multiDrawArraysWEBGL):
(WebCore::WebGLMultiDraw::multiDrawArraysInstancedWEBGL):
(WebCore::WebGLMultiDraw::multiDrawElementsWEBGL):
(WebCore::WebGLMultiDraw::multiDrawElementsInstancedWEBGL):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::markContextChangedAndNotifyCanvasObserver):
(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToPixelBuffer):
(WebCore::WebGLRenderingContextBase::clear):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.h:

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

9:10 AM Changeset in webkit [295489] by Claudio Saavedra
  • 2 edits in trunk/Tools/WebKitTestRunner

39 bytes leaked in WTR::TestController::platformConfigureViewForTest()
https://bugs.webkit.org/show_bug.cgi?id=241525

Reviewed by Adrian Perez de Castro.

Plug a couple of leaks in the test controller.

  • Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformConfigureViewForTest):

  • Tools/WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformConfigureViewForTest):

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

7:07 AM Changeset in webkit [295488] by commit-queue@webkit.org
  • 27 edits
    4 adds in trunk

Do not route the navigation preload response body to the service worker if we can avoid it
https://bugs.webkit.org/show_bug.cgi?id=241122
rdar://problem/94141714

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-13
Reviewed by Chris Dumez.

To further optimize navigation preload, we always start the preload as soon as possible.
In addition to that, we no longer pipe the body through the service worker in the common case:

  • When the preload receives the response, it sends it to the service worker that will resolve the preload promise.
  • The service worker is then expected to synchronously provide it to the FetchEvent.
  • If the fetch event gets the preload response and the preload response has not been started to load in the service worker, the service worker instructs network process to let the preload directly go to the WebProcess.
  • The preload response body might be loaded in the service worker if the response is cloned or if the service worker does not instruct the fetch event to use the preload fast enough. We schedule one task for the body to actually be loaded in the service worker.
  • Set service worker navigation preload redirection fetchStart based on the navigation preloader start to continue passing LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https.html.

We store the preload response/error in WebServiceWorkerFetchTaskClient as the preload response might be received between the time the fetch event
is received and the time the fetch event is dispatched.

  • LayoutTests/http/wpt/service-workers/navigation-optimization-worker.js: Added.

(async doTest):

  • LayoutTests/http/wpt/service-workers/navigation-optimization.https-expected.txt: Added.
  • LayoutTests/http/wpt/service-workers/navigation-optimization.https.html: Added.
  • LayoutTests/http/wpt/service-workers/resources/navigation-optimization.py: Added.

(main):

  • LayoutTests/http/wpt/service-workers/resources/service-worker-iframe-preload-script.py:

(main):

  • LayoutTests/http/wpt/service-workers/service-worker-iframe-preload.https-expected.txt:
  • LayoutTests/http/wpt/service-workers/service-worker-iframe-preload.https.html:
  • Source/WebCore/Headers.cmake:
  • Source/WebCore/Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::createFetchResponse):
(WebCore::FetchResponse::fetch):
(WebCore::FetchResponse::startLoader):
(WebCore::FetchResponse::setReceivedInternalResponse):
(WebCore::FetchResponse::BodyLoader::didReceiveResponse):
(WebCore::FetchResponse::markAsDisturbed):

  • Source/WebCore/Modules/fetch/FetchResponse.h:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/bindings/js/JSFetchEventCustom.cpp:
  • Source/WebCore/testing/ServiceWorkerInternals.cpp:
  • Source/WebCore/workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::preloadResponse):
(WebCore::FetchEvent::navigationPreloadIsReady):
(WebCore::FetchEvent::navigationPreloadFailed):

  • Source/WebCore/workers/service/FetchEvent.h:
  • Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::processResponse):
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • Source/WebCore/workers/service/context/ServiceWorkerFetch.h:
  • Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::navigationPreloadIsReady):
(WebCore::ServiceWorkerThreadProxy::navigationPreloadFailed):

  • Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h:
  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):
(WebKit::ServiceWorkerFetchTask::startFetch):
(WebKit::ServiceWorkerFetchTask::usePreload):
(WebKit::ServiceWorkerFetchTask::loadResponseFromPreloader):
(WebKit::ServiceWorkerFetchTask::preloadResponseIsReady):

  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:

(WebKit::ServiceWorkerNavigationPreloader::ServiceWorkerNavigationPreloader):
(WebKit::ServiceWorkerNavigationPreloader::didReceiveResponse):
(WebKit::ServiceWorkerNavigationPreloader::waitForResponse):

  • Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::navigationPreloadIsReady):
(WebKit::WebSWContextManagerConnection::navigationPreloadFailed):

  • Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:
  • Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.messages.in:
  • Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::navigationPreloadIsReady):
(WebKit::WebServiceWorkerFetchTaskClient::navigationPreloadFailed):
(WebKit::WebServiceWorkerFetchTaskClient::usePreload):
(WebKit::WebServiceWorkerFetchTaskClient::cleanup):

  • Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:

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

5:12 AM Changeset in webkit [295487] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKit/Shared

SharedBuffer IPC encoders have duplicated and redundant code
https://bugs.webkit.org/show_bug.cgi?id=241407
<rdar://94621576>

Reviewed by Kimmo Kinnunen.

Bug 240160 allowed to greatly simplify the serialisation of SharedBuffer objects,
so make use of it.

  • Source/WebKit/Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DOMCacheEngine::Record>::encode):
(IPC::ArgumentCoder<DOMCacheEngine::Record>::decode):
(IPC::ArgumentCoder<PasteboardCustomData::Entry>::encode):
(IPC::ArgumentCoder<PasteboardCustomData::Entry>::decode):
(IPC::ArgumentCoder<PasteboardWebContent>::encode):
(IPC::ArgumentCoder<PasteboardWebContent>::decode):
(IPC::ArgumentCoder<PasteboardImage>::encode):
(IPC::ArgumentCoder<PasteboardImage>::decode):
(IPC::ArgumentCoder<RawFile>::encode):
(IPC::ArgumentCoder<RawFile>::decode):
(IPC::ArgumentCoder<PromisedAttachmentInfo>::encode):
(IPC::ArgumentCoder<PromisedAttachmentInfo>::decode):
(IPC::ArgumentCoder<WebCore::FragmentedSharedBuffer>::encode):
(IPC::ArgumentCoder<WebCore::FragmentedSharedBuffer>::decode):
(IPC::ArgumentCoder<WebCore::SharedBuffer>::encode):
(IPC::ArgumentCoder<WebCore::SharedBuffer>::decode):
(IPC::ArgumentCoder<WebCore::ScriptBuffer>::encode):
(IPC::ArgumentCoder<WebCore::ScriptBuffer>::decode):
(IPC::ArgumentCoder<WebCore::CDMInstanceSession::Message>::encode):
(IPC::ArgumentCoder<WebCore::CDMInstanceSession::Message>::decode):
(IPC::encodeSharedBuffer): Deleted.
(IPC::decodeSharedBuffer): Deleted.
(IPC::encodeTypesAndData): Deleted.
(IPC::decodeTypesAndData): Deleted.
(IPC::ArgumentCoder<RefPtr<WebCore::FragmentedSharedBuffer>>::encode): Deleted.
(IPC::ArgumentCoder<RefPtr<WebCore::FragmentedSharedBuffer>>::decode): Deleted.
(IPC::ArgumentCoder<Ref<WebCore::FragmentedSharedBuffer>>::encode): Deleted.
(IPC::ArgumentCoder<Ref<WebCore::FragmentedSharedBuffer>>::decode): Deleted.
(IPC::ArgumentCoder<RefPtr<WebCore::SharedBuffer>>::encode): Deleted.
(IPC::ArgumentCoder<RefPtr<WebCore::SharedBuffer>>::decode): Deleted.
(IPC::ArgumentCoder<Ref<WebCore::SharedBuffer>>::encode): Deleted.
(IPC::ArgumentCoder<Ref<WebCore::SharedBuffer>>::decode): Deleted.

  • Source/WebKit/Shared/WebCoreArgumentCoders.h:

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

3:16 AM Changeset in webkit [295486] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore/html/canvas

Align WebGL draw call functions
https://bugs.webkit.org/show_bug.cgi?id=241347

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-13
Reviewed by Kimmo Kinnunen.

Some draw commands did not have implicit clears,
inspector helpers, and post-draw notifications.

  • Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::drawRangeElements):

  • Source/WebCore/html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::multiDrawArraysWEBGL):
(WebCore::WebGLMultiDraw::multiDrawArraysInstancedWEBGL):
(WebCore::WebGLMultiDraw::multiDrawElementsWEBGL):
(WebCore::WebGLMultiDraw::multiDrawElementsInstancedWEBGL):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::InspectorScopedShaderProgramHighlight::InspectorScopedShaderProgramHighlight):
(WebCore::InspectorScopedShaderProgramHighlight::~InspectorScopedShaderProgramHighlight):
(WebCore::InspectorScopedShaderProgramHighlight::showHighlight):
(WebCore::InspectorScopedShaderProgramHighlight::hideHighlight):
(WebCore::InspectorScopedShaderProgramHighlight::saveBlendValue):
(WebCore::InspectorScopedShaderProgramHighlight::hasBufferBinding):
(WebCore::InspectorScopedShaderProgramHighlight::hasFramebufferParameterAttachment):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
(WebCore::InspectorScopedShaderProgramHighlight::showHightlight): Deleted.

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.h:

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

2:55 AM Changeset in webkit [295485] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore/html/canvas

Fix clearIfComposited for indexed color write masks
https://bugs.webkit.org/show_bug.cgi?id=241511

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-13
Reviewed by Kimmo Kinnunen.

Implicit clears must correctly restore color write mask state.

  • Source/WebCore/html/canvas/OESDrawBuffersIndexed.cpp:

(WebCore::OESDrawBuffersIndexed::colorMaskiOES):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::restoreStateAfterClear):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.h:

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

2:17 AM Changeset in webkit [295484] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp

[GBM] Overzealous attaching of GL texture as color attachment to the default framebuffer
https://bugs.webkit.org/show_bug.cgi?id=241462

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-06-13
Reviewed by Alejandro G. Castro.

In GraphicsContextGLGBM::prepareTexture(), there's no need to repeatedly
reattach the texture objec to the default framebuffer. With GraphicsContextGLGBM
this is only done when (re)sizing the framebuffer. The attached texture later
isn't switched out for some other texture, it remains in place. What does change
is the backing DMABuf-based EGLImage, which is updated upon the next
make-context-current request.

This means framebuffer operations here, after any required multisampling is
resolved, are not required. Only thing that remains is the GL_Flush() call.

  • Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLGBM::prepareTexture):

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

1:09 AM Changeset in webkit [295483] by commit-queue@webkit.org
  • 4 edits in trunk/Tools/MiniBrowser

REGRESSION(r265492): Removed ability to pass GStreamer options from MiniBrowser to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=241507

Patch by Philippe Normand <philn@igalia.com> on 2022-06-13
Reviewed by Xabier Rodriguez-Calvar.

When the static gstreamer-full library is disabled at build time we should still have the
possibility to add the GStreamer CLI init group to the UIProcess commandline.

  • Tools/MiniBrowser/gtk/CMakeLists.txt:
  • Tools/MiniBrowser/gtk/main.c:

(main):

  • Tools/MiniBrowser/wpe/CMakeLists.txt:
  • Tools/MiniBrowser/wpe/main.cpp:

(main):

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

12:15 AM Changeset in webkit [295482] by commit-queue@webkit.org
  • 5 edits in trunk

Switch Web Share Permissions Policy to *
https://bugs.webkit.org/show_bug.cgi?id=241363

Patch by Marcos Cáceres <Marcos Caceres> on 2022-06-12
Reviewed by Youenn Fablet and Tim Horton.

  • LayoutTests/http/tests/webshare/webshare-allow-attribute-canShare.https-expected.txt:
  • LayoutTests/http/tests/webshare/webshare-allow-attribute-canShare.https.html:
  • LayoutTests/http/tests/webshare/webshare-allow-attribute-share.https-expected.txt:
  • LayoutTests/http/tests/webshare/webshare-allow-attribute-share.https.html:
  • Source/WebCore/html/FeaturePolicy.cpp:

(WebCore::FeaturePolicy::parse):

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

Note: See TracTimeline for information about the timeline view.