Timeline



May 13, 2022:

11:14 PM Changeset in webkit [294188] by timothy_horton@apple.com
  • 7 edits in trunk/Source

ApplePayLogoSystemImage needlessly loads PassKit in WebKit child processes on iOS
https://bugs.webkit.org/show_bug.cgi?id=240404
<rdar://93070349>

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/applepay/ApplePayLogoSystemImage.mm:

(WebCore::passKitBundle):
Adopt systemDirectoryPath instead of unnecessarily loading PassKit just
to find its bundle path (the previous implementation made use of the fact
that dlopen internally adjusts the search path to look in the simulator
root, but also resulted in wasted time loading and initializing PassKit
and its dependencies).

Source/WebKit:

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess): Adopt the WTF implementation of systemDirectoryPath.
(WebKit::systemDirectoryPath): Moved to WTF.

Source/WTF:

  • wtf/FileSystem.h:
  • wtf/cocoa/FileSystemCocoa.mm:

(WTF::FileSystemImpl::systemDirectoryPath):
Move the implementation of systemDirectoryPath() from WebKit2.

systemDirectoryPath() provides the correct path to /System
in the simulator, for consumption by APIs (like NSURL) that do not
adjust to the simulator-rooted path themselves.

10:29 PM Changeset in webkit [294187] by ntim@apple.com
  • 11 edits
    2 deletes in trunk

[css-ui] Unexpose appearance property values already handled by appearance: auto
https://bugs.webkit.org/show_bug.cgi?id=240384

Reviewed by Aditya Keerthi.

These are only used internally, and are handled by appearance: auto in the UA sheets:

  • caps-lock-indicator
  • color-well
  • list-button
  • searchfield-decoration
  • searchfield-results-decoration
  • searchfield-results-button
  • searchfield-cancel-button

LayoutTests/imported/w3c:

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

Source/WebCore:

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

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • platform/ThemeTypes.h:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • fast/css/appearance-caps-lock-indicator-expected.txt: Removed.
  • fast/css/appearance-caps-lock-indicator.html: Removed.
9:37 PM Changeset in webkit [294186] by Tyler Wilcock
  • 8 edits
    2 adds in trunk

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::currentModalNode):

  • accessibility/AXObjectCache.h:

Add m_isRetrievingCurrentModalNode.
(WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::accessibilityIsIgnored const):
Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.
8:20 PM Changeset in webkit [294185] by Alan Coon
  • 9 edits in branches/safari-7614.1.12-branch/Source

Versioning.

WebKit-7614.1.12.4

6:42 PM Changeset in webkit [294184] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkit-patch] Apply patches commit messages
https://bugs.webkit.org/show_bug.cgi?id=240402
<rdar://93272455>

Reviewed by Dewei Zhu.

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

(Checkout):
(filter_patch_content): Insert reviewer to git patch as we're applying it.
(apply_patch): If a patch has a commit subject, it contains commit messages
and we should apply those commit messages.

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

4:37 PM Changeset in webkit [294183] by Jonathan Bedard
  • 7 edits in trunk/Tools

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

Rubber-stamped by Aakash Jain.

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

(Checkout.commit_message_for_this_commit): If no changelogs are modified, prefer
the commit message.

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

(DiffParser._parse_into_diff_files): Ignore commit message headers.

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

(Git.create_patch): Prefer git format-patch when local commits are available.
(Git.rev_parse): Determine hash for ref.
(Git.format_patch): Deleted.
(Git.request_pull): Deleted.

  • Scripts/webkitpy/tool/steps/abstractstep.py:

(AbstractStep): Keep record of local commit.

  • Scripts/webkitpy/tool/steps/editchangelog.py:

(EditChangeLog.run): Do not edit changelog if no changelog is present.

  • Scripts/webkitpy/tool/steps/preparechangelog.py:

(PrepareChangeLog.run): Do not prepare changelog if local commit is present.

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

4:12 PM Changeset in webkit [294182] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Unreviewed correction based on a comment from Darin.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):

3:56 PM Changeset in webkit [294181] by Ben Nham
  • 2 edits in trunk/Source/WTF

Enforce foreground WebContent memory limit on macOS
https://bugs.webkit.org/show_bug.cgi?id=240397

Reviewed by Chris Dumez.

We removed the foreground memory limit for WebContent on macOS in r272046. But based on some
bug reports that we've seen, it seems like we need to restore some limit to prevent bad user
outcomes when a misbehaving process has runaway memory usage.

This patch adds a foreground memory limit of 8GB or 16GB depending on RAM size. This matches
the limits set by other browsers for their content process.

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillOfActiveProcess):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):

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

3:28 PM Changeset in webkit [294180] by mark.lam@apple.com
  • 28 edits in trunk/Source/JavaScriptCore

Enhance the ARM64Disassembler to print pc indices and better branch target labels.
https://bugs.webkit.org/show_bug.cgi?id=240370

Reviewed by Saam Barati.

Disassemblies used to look like this:

0x10e480ff8: ldurb w17, [x0, #7]
0x10e480ffc: cmp w17, #0
0x10e481000: b.hi 0x10e48103c
0x10e481004: stur x0, [fp, #-72]
...
0x10e481040: movk x3, #0xfffe, lsl #48
0x10e481044: b 0x10e4814f4
0x10e481048: nop

With this patch, it will now look like this:

<748> 0x10e120aec: ldurb w17, [x0, #7]
<752> 0x10e120af0: cmp w17, #0
<756> 0x10e120af4: b.hi 0x10e120b30 -> <816>
<760> 0x10e120af8: stur x0, [fp, #-80]
...
<820> 0x10e120b34: movk x3, #0xfffe, lsl #48
<824> 0x10e120b38: b 0x10e120fc8 -> <1992>
<828> 0x10e120b3c: nop

  1. Each instruction pc is now prefixed with a pc index i.e. the offset of the pc address from the start of the compilation unit e.g. <756>.
  1. Relative branches now show the branch target as a pc index (effectively, an internal label in this compilation unit) in addition to the pc address e.g. the "-> <816>" in:

<756> 0x10e120af4: b.hi 0x10e120b30 -> <816>

Also fixed a formatting bug where the space between relative branch instructions
and their target pc was short 2 spaces.

  1. If the relative branch target is a known thunk, the disassembler will now print the thunk label e.g.

<828> 0x10e12033c: bl 0x10e0f0a00 -> <thunk: get_from_scope thunk>

<1476> 0x10e120dc4: cbnz x16, 0x10e104100 -> <thunk: handleExceptionWithCallFrameRollback>
<2368> 0x10e121140: b 0x10e10c000 -> <thunk: DFG OSR exit generation thunk>

Introduced a FINALIZE_THUNK macro that will be used instead of FINALIZE_CODE in
thunk generators. By doing so, thunk labels will automatically be registered
with the disassembler, and will be used for the above look up.

Thunk label registration is only done if disassembly is enabled.

  1. If the branch target is neither an internal label nor a thunk, then the disassembler will print some useful info about it to the best of its knowledge e.g.

<168> 0x10e1002e8: b 0x10e120b60 -> <JIT PC>
<168> 0x10e1002e8: b 0x10e120b60 -> <LLInt PC>
<168> 0x10e1002e8: b 0x10e120b60 -> <unknown>

  1. The disassemble() function now takes 2 additional arguments: codeStart, and codeEnd. These are needed so that the disassembler can compute the pc index for each instruction, as well as determine if a branch target is internal to this compilation unit, or pointing out of it.

This feature is currently only supported for the ARM64 disassembler.

Printing of JIT operation labels (via movz + movk + indirect branch) is not yet
supported.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::finalizeCodeWithDisassemblyImpl):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::setIsThunk):

  • b3/air/AirDisassembler.cpp:

(JSC::B3::Air::Disassembler::dump):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::dumpDisassembly):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):

  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64DOpcode::appendPCRelativeOffset):
(JSC::ARM64Disassembler::A64DOpcodeConditionalBranchImmediate::format):

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcode::A64DOpcode):
(JSC::ARM64Disassembler::A64DOpcode::appendPCRelativeOffset): Deleted.

  • disassembler/ARM64Disassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/CapstoneDisassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/Disassembler.cpp:

(JSC::disassemble):
(JSC::disassembleAsynchronously):
(JSC::ensureThunkLabelMap):
(JSC::registerThunkLabel):
(JSC::labelForThunk):

  • disassembler/Disassembler.h:

(JSC::tryToDisassemble):

  • disassembler/RISCV64Disassembler.cpp:

(JSC::tryToDisassemble):

  • disassembler/X86Disassembler.cpp:

(JSC::tryToDisassemble):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/JIT.cpp:

(JSC::JIT::consistencyCheckGenerator):

  • jit/JITCall.cpp:

(JSC::JIT::returnFromBaselineGenerator):

  • jit/JITDisassembler.cpp:

(JSC::JITDisassembler::dump):
(JSC::JITDisassembler::dumpDisassembly):

  • jit/JITDisassembler.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::valueIsFalseyGenerator):
(JSC::JIT::valueIsTruthyGenerator):
(JSC::JIT::op_throw_handlerGenerator):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::op_check_traps_handlerGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::slow_op_get_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_with_this_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::generateOpResolveScopeThunk):
(JSC::JIT::slow_op_resolve_scopeGenerator):
(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::slow_op_put_to_scopeGenerator):

  • jit/SlowPathCall.cpp:

(JSC::JITSlowPathCall::generateThunk):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::finalize):

  • jit/ThunkGenerator.h:
  • jit/ThunkGenerators.cpp:

(JSC::handleExceptionGenerator):
(JSC::handleExceptionWithCallFrameRollbackGenerator):
(JSC::popThunkStackPreservesAndHandleExceptionGenerator):
(JSC::checkExceptionGenerator):
(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::unreachableGenerator):
(JSC::stringGetByValGenerator):
(JSC::boundFunctionCallGenerator):
(JSC::remoteFunctionCallGenerator):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):
(JSC::LLInt::generateThunkWithJumpToPrologue):
(JSC::LLInt::generateThunkWithJumpToLLIntReturnPoint):
(JSC::LLInt::createJSGateThunk):
(JSC::LLInt::createWasmGateThunk):
(JSC::LLInt::createTailCallGate):
(JSC::LLInt::tagGateThunk):
(JSC::LLInt::untagGateThunk):

  • yarr/YarrDisassembler.cpp:

(JSC::Yarr::YarrDisassembler::dump):
(JSC::Yarr::YarrDisassembler::dumpDisassembly):

  • yarr/YarrDisassembler.h:
3:20 PM Changeset in webkit [294179] by Wenson Hsieh
  • 9 edits in trunk

ImageAnalysisQueue should reanalyze image elements whose image sources have changed
https://bugs.webkit.org/show_bug.cgi?id=240371
rdar://93175651

Reviewed by Tim Horton.

Currently, ImageAnalysisQueue maintains the set of all image elements that have been queued for analysis, and
avoids re-queueing such image elements. However, on some websites, this leads to stale analysis results being
shown in certain image elements that have changed image sources (and subsequently finished loaded the new image).
To address this, we introduce a mechanism to remember the latest image URL for image elements that have been
analyzed using the analysis queue; we only avoid reanalyzing these same image elements if the source URL is the
same as the source URL when we last analyzed it.

This allows us (for instance) to handle the scenario where a single image element periodically cycles between
different src attribute values.

Test: ImageAnalysisTests.AnalyzeImageAfterChangingSource

  • page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::enqueueIfNeeded):

Also avoid trying to prematurely analyze images whose cached images only contain the null image. This caused
empty results to sometimes be incorrectly cached for some image elements, if analysis is triggered too early.

(WebCore::ImageAnalysisQueue::resumeProcessing):

  • page/ImageAnalysisQueue.h:

To aid with debugging similar issues in the future, plumb the image URL through to
requestImageAnalysisWithIdentifier, which (if an engineering default is specified) will additionally reveal
the URL in system logs.

  • Platform/cocoa/ImageAnalysisUtilities.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::requestTextRecognition):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]):

Add an API test to exercise the scenario by verifying that the same image element is reanalyzed after setting
the src to a different image URL.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::TEST):

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

3:11 PM Changeset in webkit [294178] by Lauro Moura
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Add Breakpad to SDK
https://bugs.webkit.org/show_bug.cgi?id=240367

Reviewed by Philippe Normand.

To be used to generate minidumps of crashes.

Based on original bst file by Adrian Perez de Castro.

  • elements/sdk-platform.bst:
  • elements/sdk/breakpad.bst: Added.
3:02 PM Changeset in webkit [294177] by Adrian Perez de Castro
  • 5 edits in trunk/Source

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

Unreviewed non-unified build fixes.

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

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

Unreviewed non-unified build fixes.

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

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

2:55 PM Changeset in webkit [294176] by Ross Kirsling
  • 6 edits in trunk

TemporalPlainTime::toTemporalTimeRecord shouldn't require all properties to be provided
https://bugs.webkit.org/show_bug.cgi?id=240394

Reviewed by Yusuke Suzuki and Darin Adler.

Following the spec correction of https://github.com/tc39/proposal-temporal/pull/1862, this patch
fixes our Temporal.PlainTime implementation to require that *one* property be provided, not *all* of them.

  • stress/temporal-plaintime.js:
  • test262/expectations.yaml: Mark 32 test cases as passing.
  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::fromDurationLike):

  • runtime/TemporalPlainTime.cpp:

(JSC::toTemporalTimeRecord):

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

2:43 PM Changeset in webkit [294175] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

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

Reviewed by Wenson Hsieh.

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

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

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::clearAllDecoratedFoundText):

2:40 PM Changeset in webkit [294174] by achristensen@apple.com
  • 2 edits in trunk/Tools

Disable MediaLoading.CaptivePortalHLS API test
https://bugs.webkit.org/show_bug.cgi?id=239859

It is always timing out.
Disable it to speed up EWS.

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

2:39 PM Changeset in webkit [294173] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14

Tag WebKit-7614.1.14.

2:36 PM Changeset in webkit [294172] by Chris Dumez
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm

Regression(r293803) ProcessSwap.MediaTypeAfterSwap and ProcessSwap.PageZoomLevelAfterSwap are failing
https://bugs.webkit.org/show_bug.cgi?id=240399

Reviewed by Alex Christensen.

Since r293803, WebKit's default WebContent process crash handler only reloads WebViews that are
visible. However, those 2 API tests were relying on the old behavior. To address the issue, use
a custom process termination handler which reloads the view.

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

(-[PSONNavigationDelegate webViewWebContentProcessDidTerminate:]):

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

2:12 PM Changeset in webkit [294171] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

Use None for architecture when dump-class-layout does not have -a option
https://bugs.webkit.org/show_bug.cgi?id=240395

Reviewed by Saam Barati and Simon Fraser.

We can pass None to architecture, then SBDebugger::CreateTargetWithFileAndArch
will call CreateTarget with nullptr architecture string. Then, TargetList constructs
ArchSpec based on currently selected platform automatically and it covers most of cases.
I tried it, and it worked with watchOS, macOS, iOS so far.
So, we should just pass None to CreateTargetWithFileAndArch by default.

  • Tools/lldb/lldb_dump_class_layout.py:

(LLDBDebuggerInstance.init):
(LLDBDebuggerInstance.del):
(LLDBDebuggerInstance._get_first_file_architecture): Deleted.

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

12:38 PM Changeset in webkit [294170] by ntim@apple.com
  • 14 edits
    1 delete in trunk

[css-ui] Remove caret/progress-bar-value/listitem values from appearance property
https://bugs.webkit.org/show_bug.cgi?id=240390

Reviewed by Aditya Keerthi.

LayoutTests/imported/w3c:

They're basically unimplemented.

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

Source/WebCore:

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

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

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

(WebCore::operator<<):

  • platform/ThemeTypes.h:

LayoutTests:

They're basically unimplemented.

Remove WPE expectations which were very out-of-date.

  • fast/css/appearance-with-pseudo-elements-expected.html:
  • fast/css/appearance-with-pseudo-elements-in-quirks-mode-expected.html:
  • fast/css/appearance-with-pseudo-elements-in-quirks-mode.html:
  • fast/css/appearance-with-pseudo-elements.html:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt: Removed.
12:16 PM Changeset in webkit [294169] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

IPC cannot encode, decode Ref<>, causing duplicate code
https://bugs.webkit.org/show_bug.cgi?id=240160

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

Consider reference counted type T:
Encoding is of signature encode(const T&)
Decoding is of signature std::optional<Ref<T>> decode()
This is usable for both RefPtr and Ref use-cases.

Add Ref<T> encoder that is polymorphic to T.
This way clients do not need to write encoders for
Ref<T>, RefPtr<T>. They just need one encoder, for T.

When clients do not need to write RefPtr<T>, they make less
bugs. These will be corrected in future patches.

Having Ref<T> encoders allows clients to use Vector<Ref<T>> encoding
via Vector<U> encoder, and they would not need to duplicate that
logic, making less bugs. These will be corrected in future patches.

Remove most IPC::ArgumentCoder<Ref<..>> in favor of IPC::ArgumentCoder<..>.
In the cases where removal was done, remove also redundant
IPC::ArgumentCoder<RefPtr<..>>.

  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<RefPtr<T>>::decode):
(IPC::ArgumentCoder<Ref<T>>::encode):
(IPC::ArgumentCoder<Ref<T>>::decode):

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

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

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WebCore::Font>::encode):
(IPC::ArgumentCoder<Font>::decode):
(IPC::ArgumentCoder<SystemImage>::encode):
(IPC::ArgumentCoder<SystemImage>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/playstation/WebCoreArgumentCodersPlayStation.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

  • Shared/win/WebCoreArgumentCodersWin.cpp:

(IPC::ArgumentCoder<Font>::encodePlatformData):
(IPC::ArgumentCoder<Font>::decodePlatformData):

11:25 AM Changeset in webkit [294168] by Russell Epstein
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebCore

Cherry-pick r294135. rdar://problem/93201070

[WebAuthn] Remove document focus requirement for conditional mediation requests
https://bugs.webkit.org/show_bug.cgi?id=240361
rdar://problem/93201070

Reviewed by Brent Fulgham.

This is necessary so conditional mediation requests work when you open a page in
a new tab. Conditional mediation requests do not support security keys and the
request will be aborted if conditional mediation is not available.

  • Modules/credentialmanagement/CredentialsContainer.cpp: (WebCore::CredentialsContainer::get):

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

11:22 AM Changeset in webkit [294167] by Andres Gonzalez
  • 9 edits in trunk/Source/WebCore

Move handling of active descendant changed notifications out of AccessibilityRenderObject.
https://bugs.webkit.org/show_bug.cgi?id=240357
<rdar://problem/93196901>

Reviewed by Chris Fleizach.

No change in functionality.

AXObjectCache::handleActiveDescendantChanged now handles this
notifications as appropriate. This makes the code cleaner and more
straightforward. More importantly this change is necessary for the
refactoring of relationships implementation.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleActiveDescendantChanged):
(WebCore::AXObjectCache::handleAttributeChange):

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::handleActiveDescendantChanged):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::findRelatedObjectInAncestry):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::activeDescendant const):
(WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant const): Deleted.
(WebCore::AccessibilityRenderObject::targetElementForActiveDescendant const): Deleted.
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged): Deleted.

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::handleActiveDescendantChanged): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
11:06 AM Changeset in webkit [294166] by commit-queue@webkit.org
  • 26 edits
    8 adds in trunk

Web Inspector: [Meta] Implement Timelines Film Strip
https://bugs.webkit.org/show_bug.cgi?id=239350

Patch by Anjali Kumar <anjalik_22@apple.com> on 2022-05-13
Reviewed by Devin Rousso and Patrick Angle.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:

Source/WebCore:

Test: inspector/timeline/timeline-event-screenshots.html

  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createScreenshotData):

  • inspector/TimelineRecordFactory.h:
  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::didComposite):
(WebCore::InspectorTimelineAgent::willPaint):
(WebCore::InspectorTimelineAgent::didPaint):
(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::captureScreenshot):
(WebCore::toProtocol):
(WebCore::InspectorTimelineAgent::createRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):

  • inspector/agents/InspectorTimelineAgent.h:

Source/WebInspectorUI:

Add the ability to see screenshots taken of the viewport within the Timelines tab. The purpose of the
screenshots is to provide more context to the other data presented within the Timelines tab, so that
developers can improve the efficiency of their page loading times. They can see what is painting on their
pages in addition to when the paints are occuring.

The screenshots presented are taken immediately after each composite. They are designed to be layered
on top of one another as opposed to being presented in a non-overlapping fashion in order to provide developers
with the exact screenshot that occured during a particular point in time on the timeline. This allows developers
to zoom in and pinpoint the exact moment the page looked like that particularly rendered screenshot.

When a screenshot is clicked on, the details section opens up to an enlarged view of that particular image.
Developers can utilize this to view each screenshot in greater detail.

This feature is named "Screenshots" (one word), as in the UI we currently have existing strings for "Capture
Screenshot" and "Could not capture screenshot".

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

(WI.TimelineManager.defaultTimelineTypes):
(WI.TimelineManager.prototype._processRecord):
(WI.TimelineManager.prototype._updateAutoCaptureInstruments):

  • UserInterface/Images/IdentifierIcons.svg:
  • UserInterface/Main.html:
  • UserInterface/Models/Instrument.js:

(WI.Instrument.createForTimelineType):

  • UserInterface/Models/ScreenshotsInstrument.js: Added.

(WI.ScreenshotsInstrument):
(WI.ScreenshotsInstrument.supported):
(WI.ScreenshotsInstrument.prototype.get timelineRecordType):

  • UserInterface/Models/ScreenshotsTimelineRecord.js: Added.

(WI.ScreenshotsTimelineRecord):
(WI.ScreenshotsTimelineRecord.async fromJSON):
(WI.ScreenshotsTimelineRecord.prototype.toJSON):
(WI.ScreenshotsTimelineRecord.prototype.get imageData):
(WI.ScreenshotsTimelineRecord.prototype.get width):
(WI.ScreenshotsTimelineRecord.prototype.get height):

  • UserInterface/Models/TimelineRecord.js:

(WI.TimelineRecord.async fromJSON):

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.addRecord):

  • UserInterface/Test.html:
  • UserInterface/Views/ContentView.js:

(WI.ContentView.createFromRepresentedObject):

  • UserInterface/Views/ScreenshotsTimelineOverviewGraph.css: Added.

(body .sidebar > .panel.navigation.timeline > .timelines-content li.item.screenshots,):
(.timeline-overview-graph.screenshots > img):
(.timeline-overview-graph.screenshots > img.selected):

  • UserInterface/Views/ScreenshotsTimelineOverviewGraph.js: Added.

(WI.ScreenshotsTimelineOverviewGraph):
(WI.ScreenshotsTimelineOverviewGraph.prototype.get height):
(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):
(WI.ScreenshotsTimelineOverviewGraph.prototype.updateSelectedRecord):
(WI.ScreenshotsTimelineOverviewGraph.prototype._visibleRecords):

  • UserInterface/Views/ScreenshotsTimelineView.css: Added.

(.timeline-view.screenshots):
(.timeline-view.screenshots > img):
(.timeline-view.screenshots > img.selected):

  • UserInterface/Views/ScreenshotsTimelineView.js: Added.

(WI.ScreenshotsTimelineView):
(WI.ScreenshotsTimelineView.prototype.reset):
(WI.ScreenshotsTimelineView.prototype.clear):
(WI.ScreenshotsTimelineView.prototype.get showsFilterBar):
(WI.ScreenshotsTimelineView.prototype.layout):
(WI.ScreenshotsTimelineView.prototype.selectRecord):
(WI.ScreenshotsTimelineView.prototype._selectTimelineRecord):
(WI.ScreenshotsTimelineView.prototype._visibleRecords):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/TimelineIcons.css:

(.screenshots-icon .icon):
(@media (prefers-color-scheme: dark) .screenshots-icon .icon):

  • UserInterface/Views/TimelineOverviewGraph.js:

(WI.TimelineOverviewGraph.createForTimeline):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.displayNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForTimelineType):
(WI.TimelineTabContentView.genericClassNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForRecord):
(WI.TimelineTabContentView.displayNameForRecord):

LayoutTests:

  • inspector/timeline/resources/timeline-event-utilities.js:

(TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithScript):
(TestPage.registerInitializer):

  • inspector/timeline/timeline-event-screenshots-expected.txt: Added.
  • inspector/timeline/timeline-event-screenshots.html: Added.
  • inspector/timeline/timeline-recording-expected.txt:
11:04 AM Changeset in webkit [294165] by commit-queue@webkit.org
  • 2 edits in trunk

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

Patch by Geza Lore <Geza Lore> on 2022-05-13
Reviewed by Jonathan Bedard.

  • metadata/contributors.json:
10:58 AM Changeset in webkit [294164] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

-Wstringop-overflow warning in DocumentWriter.cpp
https://bugs.webkit.org/show_bug.cgi?id=239340

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WebCore/loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::end):

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

10:25 AM Changeset in webkit [294163] by Ziran Sun
  • 4 edits in trunk

input.showPicker() should throw when input is readonly/disabled
https://bugs.webkit.org/show_bug.cgi?id=240302

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html: Added.

Source/WebCore:

When input is readonly or disabled, input.showPicker() should throw InvalidStateError.

Test: imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::showPicker):

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

-Wreturn-type warning in PathOperation.cpp
https://bugs.webkit.org/show_bug.cgi?id=240383

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WebCore/rendering/PathOperation.cpp:

(WebCore::RayPathOperation::lengthForPath const):

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

10:05 AM Changeset in webkit [294161] by Jonathan Bedard
  • 2 edits in trunk/Websites/bugs.webkit.org

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

Rubber-stamped by Aakash Jain.

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

(PrettyPatch.message_header): Match a commit message header.
(PrettyPatch.message_footer): Match a commit message footer.
(PrettyPatch.MESSAGE_HEADER_FORMATS): List of commit message headers.
(PrettyPatch.BUG_URL_RE): Regex to match bug urls in subject.
(PrettyPatch.MESSAGE_FOOTER_FORMATS): List of commit messagae footers.
(PrettyPatch.parse): Treat commit messages a new file named 'COMMIT_MESSAGE'.

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

9:31 AM Changeset in webkit [294160] by timothy_horton@apple.com
  • 17 edits
    2 adds in trunk/Source

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

Reviewed by Dean Jackson.

Source/WebCore:

  • page/DebugPageOverlays.cpp:

(WebCore::pathsForRegion):
Move inline rect inflation into InteractionRegion so that all clients get it.

  • page/Page.cpp:

(WebCore::Page::shouldBuildInteractionRegions const):

  • page/Page.h:
  • page/Frame.cpp:

(WebCore::Frame::invalidateContentEventRegionsIfNeeded):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::maintainsEventRegion const):
(WebCore::RenderLayerBacking::updateEventRegion):
If the ENABLE() and setting are both enabled, update event regions
due to possible interaction region changes. We could make this more
conservative later, but chances are high that most layers include
interaction regions.

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

  • page/InteractionRegion.cpp:

(WebCore::regionForElement):
Move inline rect inflation into InteractionRegion so that all clients get it.
Limit interaction rects to half of the viewport. Ignore regions that are larger.

  • page/InteractionRegion.h:

(WebCore::operator==): Added.
(WebCore::InteractionRegion::encode const):
(WebCore::InteractionRegion::decode):
Remove the isInline bit, since we only used it for rect inflation.

  • rendering/EventRegion.cpp:

(WebCore::EventRegion::operator== const):
(WebCore::EventRegion::translate):
(WebCore::EventRegion::uniteInteractionRegions):
(WebCore::EventRegion::computeInteractionRegions):

  • rendering/EventRegion.h:

(WebCore::EventRegion::interactionRegions const):
(WebCore::EventRegion::encode const):
(WebCore::EventRegion::decode):
Store interaction regions on EventRegion.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
Allow RemoteLayerTreeInteractionRegionLayers to add and maintain layers for interaction regions.

  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.h: Added.
  • UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm: Added.

(configureLayerForInteractionRegion):
(WebKit::interactionRegionForLayer):
(WebKit::isInteractionRegionLayer):
(WebKit::setInteractionRegion):
Box WebCore::InteractionRegion in a Objective-C object and store it on the layer.
Use this as a key to indicate that a given layer is an interaction region.

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

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

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add a preference to toggle interaction region layers.

9:05 AM Changeset in webkit [294159] by Russell Epstein
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.14

9:02 AM Changeset in webkit [294158] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r294113.
https://bugs.webkit.org/show_bug.cgi?id=240381

This bug needs to be addressed using a different approach

Reverted changeset:

"Mail compose: right clicking an image attachment selects it"
https://bugs.webkit.org/show_bug.cgi?id=240315
https://commits.webkit.org/r294113

7:54 AM Changeset in webkit [294157] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

False positive warning when building RefCounter test with GCC 12
https://bugs.webkit.org/show_bug.cgi?id=239338

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-13
Reviewed by Chris Dumez.

  • Source/WTF/wtf/RefCounter.h:

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

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

7:38 AM Changeset in webkit [294156] by ntim@apple.com
  • 3 edits
    1 copy
    11 deletes in trunk/LayoutTests

Clean up some html/semantics/forms/ test expectations
https://bugs.webkit.org/show_bug.cgi?id=240344

Unreviewed test gardening.

Combine multiple files to reduce the number of platform specific expectations.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt.
  • web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Removed.
  • platform/win/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
4:41 AM Changeset in webkit [294155] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Remove leftover for WINDOWS support in GraphicsContextGLGBM
https://bugs.webkit.org/show_bug.cgi?id=240314

GBM is a Linux technology we would need another sharing buffers
technology to add support in Windows. This is leftover from the
code copied originally.

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

No new tests, we are just removing some compilation option.

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLGBM::platformInitializeContext):

4:30 AM Changeset in webkit [294154] by Lauro Moura
  • 5 edits in trunk/Source

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

Source/JavaScriptCore:

  • runtime/DateConversion.cpp:

Source/WebCore:

  • Modules/highlight/HighlightRegister.h:
  • rendering/TextPainter.h:
2:25 AM Changeset in webkit [294153] by Ziran Sun
  • 60 edits
    1 copy
    1 move
    23 adds
    10 deletes in trunk/LayoutTests

Resync web-platform-tests/html/semantics/forms tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=240301

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

Upstream commit: https://github.com/web-platform-tests/wpt/commit/23e7602b7784c758397308183f414bb99e0c622b

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/forms/beforeinput.tentative-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/beforeinput.tentative.html: Added.
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing.html:
  • web-platform-tests/html/semantics/forms/constraints/support/validator.js:

(validator.run_test):
(validator.test_support_type): Deleted.

  • web-platform-tests/html/semantics/forms/form-submission-0/enctypes-helper.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl.html:
  • web-platform-tests/html/semantics/forms/form-submission-0/multipart-formdata.window.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/resources/getactionurl-iframe.html: Added.
  • web-platform-tests/html/semantics/forms/form-submission-0/resources/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window.js:
  • web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window.js:
  • web-platform-tests/html/semantics/forms/textfieldselection/select-event-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/select-event.html: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html: Removed.
  • web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/cloning-steps-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/cloning-steps.html:
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/datetime-local.html:
  • web-platform-tests/html/semantics/forms/the-input-element/input-untrusted-key-event-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-untrusted-key-event.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-whitespace-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/input-whitespace.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/invalid-datalist-options-crash.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/large-step-crash.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html:
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-user-gesture-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/show-picker-user-gesture.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker.html.
  • web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html:
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-label-element/proxy-modifier-click-to-associated-element.tentative.html:
  • web-platform-tests/html/semantics/forms/the-label-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-ask-for-reset.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-form-state-restore.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-form-submission.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-labels.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-many-options.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-many-options.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-nested.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed-ref.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed.tentative-expected.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-displayed.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-arbitrary-content-not-displayed.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-option-focusable.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative-expected.txt:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup-position-with-zoom.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup-position.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-required-attribute.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-shadow-root-replacement.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-value-selectedOption.tentative.html:
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/support/cat.png: Removed.
  • web-platform-tests/html/semantics/forms/the-selectmenu-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/forms/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-trailing-zeros-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/notifications/idlharness.https.any-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • tests-options.json:
2:14 AM Changeset in webkit [294152] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebCore

[GStreamer] Properly handle DMABuf-containing GstBuffers with missing DMABuf GstCaps feature
https://bugs.webkit.org/show_bug.cgi?id=240374

Reviewed by Chris Lord.

To detect DMABuf-backed GstBuffers, for now we relied on the appropriate
feature being present on the related GstCaps object. This doesn't cover
every decoder which for one reason or another isn't specifying their
caps like this.

For those cases, we have to do a weaker but sufficient check on the
base GstMemory object contained in the GstBuffer, namely test that it
comes from a DMABuf-capable allocator, through using the
gst_is_dmabuf_memory() function. When true, we can proceed on handling
the buffer and its contained DMABuf object.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

2:07 AM Changeset in webkit [294151] by zan@falconsigh.net
  • 4 edits
    1 add in trunk/Source/WebCore

[Linux][GBM] Provide utility function for construction of eglCreateImage attributes data
https://bugs.webkit.org/show_bug.cgi?id=240373

Reviewed by Chris Lord.

Provide DMABufEGLUtilities::constructEGLCreateImageAttributes() helper
function that unifies the construction of the EGLImage creation
attributes. For a given DMABufObject and plane index, a Vector of EGLint
attributes for a single-plane EGLImage object is returned, optionally
including the modifier value if requested (when the EGL implementation,
through the necessary extensions, supports modifiers).

The new function replaces duplicated code in GraphicsContextGLGBM and
TextureMapperPlatformLayerProxyDMABuf.

  • platform/TextureMapper.cmake:
  • platform/graphics/gbm/DMABufEGLUtilities.h: Added.

(WebCore::DMABufEGLUtilities::constructEGLCreateImageAttributes):

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):

1:36 AM Changeset in webkit [294150] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Sandbox access to pipewire socket
https://bugs.webkit.org/show_bug.cgi?id=240338

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

Starting from version 0.5 of Bubblewrap bind mounts behavior slightly changed. Without this
patch the pipewire socket wouldn't be available from the default XDG runtime directory.

  • flatpak/webkit-bwrap:

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

1:31 AM Changeset in webkit [294149] by Diego Pino Garcia
  • 1 edit
    5 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening, follow-up to r294148

Add removed baselines in corresponding directory.

  • platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt: Added.
1:22 AM Changeset in webkit [294148] by Diego Pino Garcia
  • 1 edit
    3 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening, follow-up to r294142

Remove wrongly generated baselines. Parent directoy has the same name
as baseline and that ends up in an Exception error while running the
layout-tests.

  • platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt/location_hash-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt/getresponseheader.any-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt/getresponseheader.any.worker-expected.txt: Removed.
1:13 AM Changeset in webkit [294147] by youenn@apple.com
  • 14 edits in trunk/Source/WebCore

Remove WorkerLoaderProxy::postTaskForModeToWorkerOrWorkletGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=240299

Reviewed by Alex Christensen.

WorkerLoaderProxy::postTaskForModeToWorkerOrWorkletGlobalScope is no longer needed given we have
ScriptExecutionContext infrastructure that can be used instead.

Covered by existing tests.

  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::AudioWorkletMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope): Deleted.

  • Modules/webaudio/AudioWorkletMessagingProxy.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpgradeURL):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::postTaskTo):
(WebCore::ScriptExecutionContext::postTaskForModeToWorkerOrWorklet):

  • dom/ScriptExecutionContext.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::m_contextIdentifier):
(WebCore::WorkerThreadableLoader::MainThreadBridge::notifyIsDone):
(WebCore::WorkerThreadableLoader::MainThreadBridge::redirectReceived):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishTiming):

  • loader/WorkerThreadableLoader.h:
  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope): Deleted.

  • workers/WorkerMessagingProxy.h:
  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/shared/context/SharedWorkerThreadProxy.h:
12:54 AM Changeset in webkit [294146] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][WPE] Unreviewed test gardening, move test image failures to GLIB

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:29 AM Changeset in webkit [294145] by Simon Fraser
  • 14 edits in trunk/Source

Simplify the usage of DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=240363

Reviewed by Myles Maxfield.

Move the DeconstructDrawGlyphs switch from inside DrawGlyphsRecorder to
DisplayList::Recorder, so that DrawGlyphsRecorder is only ever used when deconstructing
glyphs.

Also, ensure that the only time that glyph deconstruction is enabled is when
recording display lists via RemoteDisplayListRecorderProxy. There's no reason for
paintAttachmentText() to need glyph deconstruction.
Source/WebCore:

This is a small perf improvement on the MotionMark Design subtest.

  • platform/graphics/DrawGlyphsRecorder.h:

(WebCore::DrawGlyphsRecorder::deconstructDrawGlyphs const): Deleted.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DrawGlyphsRecorder::drawGlyphs):
(WebCore::DrawGlyphsRecorder::drawNativeText):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::drawGlyphs):
(WebCore::DisplayList::Recorder::drawGlyphsAndCacheFont):

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

(WebCore::DisplayList::RecorderImpl::RecorderImpl):

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:
  • platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • platform/graphics/win/DrawGlyphsRecorderWin.cpp:

(WebCore::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • rendering/RenderThemeIOS.mm:

(WebCore::paintAttachmentText):

Source/WebKit:

This is a small perf improvement on the MotionMark Design subtest.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
(WebKit::m_renderingBackend):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
12:26 AM Changeset in webkit [294144] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

Remove unneeded check in HTMLSlotElement::assignedNodes()
https://bugs.webkit.org/show_bug.cgi?id=240340

Reviewed by Ryosuke Niwa.

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::assignedNodes const):

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

12:19 AM Changeset in webkit [294143] by Diego Pino Garcia
  • 31 edits
    3 moves
    1 add
    3 deletes in trunk/LayoutTests

[WPE] Unreviewed test gardening, update baselines

  • platform/glib/TestExpectations:
  • platform/glib/css2.1/t0805-c5520-brdr-b-01-e-expected.txt: Renamed from LayoutTests/platform/gtk/css2.1/t0805-c5520-brdr-b-01-e-expected.txt.
  • platform/glib/fast/text/international/bidi-layout-across-linebreak-expected.txt: Renamed from LayoutTests/platform/gtk/fast/text/international/bidi-layout-across-linebreak-expected.txt.
  • platform/glib/fast/text/international/hindi-spacing-expected.txt: Renamed from LayoutTests/platform/gtk/fast/text/international/hindi-spacing-expected.txt.
  • platform/gtk/TestExpectations:
  • platform/wpe/css2.1/20110323/replaced-elements-001-expected.txt:
  • platform/wpe/css2.1/t0805-c5518-brdr-t-01-e-expected.txt:
  • platform/wpe/css2.1/t0805-c5520-brdr-b-01-e-expected.txt: Removed.
  • platform/wpe/css3/flexbox/button-expected.txt:
  • platform/wpe/fast/block/float/float-avoidance-expected.txt:
  • platform/wpe/fast/block/lineboxcontain/glyphs-expected.txt:
  • platform/wpe/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-basic-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-border-padding-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-raised-expected.txt:
  • platform/wpe/fast/css-generated-content/initial-letter-sunken-expected.txt:
  • platform/wpe/fast/css/continuationCrash-expected.txt:
  • platform/wpe/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/wpe/fast/css/rtl-ordering-expected.txt:
  • platform/wpe/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wpe/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/wpe/fast/html/details-replace-summary-child-expected.txt:
  • platform/wpe/fast/html/details-replace-text-expected.txt:
  • platform/wpe/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/wpe/fast/overflow/scrollRevealButton-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-expected.txt:
  • platform/wpe/fast/replaced/width100percent-button-expected.txt:
  • platform/wpe/fast/table/003-expected.txt:
  • platform/wpe/fast/table/append-cells2-expected.txt:
  • platform/wpe/fast/table/remove-td-display-none-expected.txt:
  • platform/wpe/fast/text/emoji-expected.txt:
  • platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt: Removed.
  • platform/wpe/fast/text/international/bidi-override-expected.txt:
  • platform/wpe/fast/text/international/hindi-spacing-expected.txt: Removed.
  • platform/wpe/fast/text/orientation-sideways-expected.txt:

May 12, 2022:

11:24 PM Changeset in webkit [294142] by Diego Pino Garcia
  • 2 edits
    1 copy
    2 moves
    5 adds
    1 delete in trunk/LayoutTests

[GTK] Unreviewed test gardening, fix missing test results.

  • platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt/location_hash-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt/getresponseheader.any-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt.
  • platform/glib/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt/getresponseheader.any.worker-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt.
  • platform/gtk/TestExpectations:
10:04 PM Changeset in webkit [294141] by Manuel Rego Casasnovas
  • 12 edits in trunk

ARIA reflection for FrozenArray<Element> attributes
https://bugs.webkit.org/show_bug.cgi?id=239853
<rdar://problem/92797836>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update expectations with the new PASS lines.

  • web-platform-tests/dom/nodes/aria-element-reflection.tentative-expected.txt:

Source/WebCore:

Implement ARIA reflection for attributes that refer to a list of Elements:
aria-controls, aria-describedby, aria-details, aria-flowto,
aria-labelledby and aria-owns.
For the properties names this patch uses "Elements" suffix:
ariaControlsElements, ariaDescribedByElements, ariaDescribedByElements,
ariaFlowToElements, ariaLabelledByElements, ariaOwnsElements
this matches Chromium implementation and AOM explainer, but not AOM spec:
https://github.com/w3c/aria/issues/1732

  • accessibility/AriaAttributes.idl: Add the new properties under

AriaReflectionForElementReferencesEnabled runtime flag.

  • bindings/scripts/CodeGenerator.pm:

(GetterExpression): Add function for FrozenArray<Element> properties.
(SetterExpression): Ditto.

  • bindings/scripts/test/JS/JSTestObj.cpp: Add tests.

(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObj_reflectedElementsArrayAttrGetter):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::setJSTestObj_reflectedElementsArrayAttrSetter):
(WebCore::JSC_DEFINE_CUSTOM_SETTER):

  • bindings/scripts/test/TestObj.idl: Add example attribute.
  • dom/Element.cpp:

(WebCore::isElementsArrayReflectionAttribute): New utility method to
identify the attributes that refer to a list of Elements.
(WebCore::Element::attributeChanged): Include check for elements
array.
(WebCore::Element::getElementsArrayAttribute const): Implement getter.
(WebCore::Element::setElementsArrayAttribute): Implement setter.

  • dom/Element.h: Remove FIXME in ExplicitlySetAttrElementsMap as now

it stores more than one element. Add headers for getter and setter.

LayoutTests:

Update test so it identifies the FrozenArray<Element> attributes.

  • accessibility/ARIA-reflection-expected.txt:
  • accessibility/ARIA-reflection.html:
8:38 PM Changeset in webkit [294140] by Diego Pino Garcia
  • 4 edits
    4 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening, update tests expected to fail but passed

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-002-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Removed.
  • platform/wpe/TestExpectations:
7:12 PM Changeset in webkit [294139] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

-Wattributes warnings from AtomString.cpp and WTFString.cpp
https://bugs.webkit.org/show_bug.cgi?id=240358

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

  • Source/WTF/wtf/text/AtomString.cpp:
  • Source/WTF/wtf/text/WTFString.cpp:

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

6:49 PM Changeset in webkit [294138] by Matt Woodrow
  • 14 edits in trunk/Source/WebCore

Quirk Flightaware.com to use the older number serialization path.
https://bugs.webkit.org/show_bug.cgi?id=240320

Reviewed by Simon Fraser.

Ensures that serialization of matrix() CSS properties uses the older serialization (which
matches ECMA script serialization) since this site expects these to be comparable as strings.

No new tests, since this is a site-specific quirk.

  • css/CSSFunctionValue.cpp:

(WebCore::CSSFunctionValue::customCSSText const):

  • css/CSSFunctionValue.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberValue const):
(WebCore::CSSPrimitiveValue::customCSSText const):

  • css/CSSPrimitiveValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::cssText const):

  • css/CSSValue.h:

(WebCore::CSSValue::CSSValue):

  • css/CSSValueList.cpp:

(WebCore::CSSValueList::customCSSText const):

  • css/CSSValueList.h:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

  • css/StyleProperties.h:
  • page/Quirks.cpp:

(WebCore::Quirks::needsFlightAwareSerializationQuirk const):

  • page/Quirks.h:
6:41 PM Changeset in webkit [294137] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

-Wunused-result in WebCoreSupport/WebContextMenuClient.cpp
https://bugs.webkit.org/show_bug.cgi?id=240364

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-12
Reviewed by Chris Dumez.

  • Source/WebKit/WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::searchWithGoogle):

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

6:09 PM Changeset in webkit [294136] by Alan Coon
  • 13 edits in branches/safari-7614.1.13-branch/Source

Cherry-pick r293994. rdar://problem/87157773

[iOS] Adjust some viewport behaviors when multitasking mode is enabled
https://bugs.webkit.org/show_bug.cgi?id=240151
rdar://87157773

Reviewed by Tim Horton.

Add a new ViewportConfiguration flag to prefer horizontal scrolling over shrinking to fit when the view layout
size falls under the current "default desktop webpage" of 980pt. See WebKit changes for more details.

  • page/ViewportConfiguration.cpp: (WebCore::ViewportConfiguration::initialScaleFromSize const): (WebCore::ViewportConfiguration::webpageParameters): (WebCore::ViewportConfiguration::imageDocumentParameters):

Pull the magic value representing the "assumed width of most desktop webpages" (980) out into a named constant,
defaultDesktopViewportWidth, so that we can consult it when computing the initial scale.

(WebCore::ViewportConfiguration::description const):

  • page/ViewportConfiguration.h: (WebCore::ViewportConfiguration::setPrefersHorizontalScrollingBelowDesktopViewportWidths): [iOS] Adjust some viewport behaviors when multitasking mode is enabled https://bugs.webkit.org/show_bug.cgi?id=240151 rdar://87157773

Reviewed by Tim Horton.

Make some adjustments to viewport behaviors when multitasking mode is enabled. See the comments below for more
details. There are no changes in behavior when multitasking mode is disabled; tests for the new behaviors in
multitasking mode will be added in a subsequent patch.

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

Add plumbing to inform the web process when "multitasking mode" state changes; we use this bit in WebPage to
determine whether or not we should use multitasking mode viewport behaviors (see below).

  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _registerForNotifications]): (-[WKWebView didMoveToWindow]): (-[WKWebView _multitaskingModeDidChange:]):

Send IPC to WebPage in these two places, to keep "multitasking mode" state in sync with the native view.

(-[WKWebView _beginAnimatedResizeWithUpdates:]):

Make a minor adjustment here to ignore oldWebViewWidthInContentViewCoordinates when computing a target scale
to zoom to when performing animated resize, in multitasking mode. This is required to prevent us from zooming
in excessively when the width of the view increases, since we'd otherwise attempt to keep the same content in
the page visible by zooming in (for instance, if an image covers most of the visual viewport at a lower view
width, this min() logic would cause us to zoom in, such that the image would still cover most of the viewport
at a larger width). This behavior is undesirable in multitasking mode.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setIsInMultitaskingMode):
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad): (WebKit::WebPage::setIsInMultitaskingMode):

Add plumbing to set the m_isInMultitaskingMode flag on WebPage, and update the viewport configuration flag to
prefer horizontal scrolling below 980pt.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::scaleAfterViewportWidthChange):

Refactor a bit of code here (without changing any behaviors), to make it a bit clearer:

  • Rename userHasChangedPageScaleFactor to scaleToFitContent to better describe how this flag affects the

adjusted target scale during dynamic resize.

  • Make the log messages specific to both branches, and also log the adjusted viewport scale instead of the

(currently unused) given scale in the non-scaleToFitContent codepath.

(WebKit::WebPage::dynamicViewportSizeUpdate):

Make another "multitasking mode viewport behavior" adjustment here by maintaining the initial scale (only if the
viewport was already at initial scale) when performing dynamic viewport size updates. By default, we currently
adjust the scale such that the same content is still visible at the new viewport size; however, when allowing
horizontal scrolling, this causes us to zoom in excessively when making the window width larger. Instead, when
multitasking mode is enabled, we should try to preserve initial scale when changing window size, such that only
the horizontal scroll amount changes.

(WebKit::WebPage::usesMultitaskingModeViewportBehaviors const):

Add a helper method to encapsulate whether or not multitasking mode viewport behaviors should be used; this
should be true only when both desktop-class viewport behaviors are active, *and* multitasking mode is also
active.

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

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

6:02 PM Changeset in webkit [294135] by J Pascoe
  • 2 edits in trunk/Source/WebCore

[WebAuthn] Remove document focus requirement for conditional mediation requests
https://bugs.webkit.org/show_bug.cgi?id=240361
rdar://problem/93201070

Reviewed by Brent Fulgham.

This is necessary so conditional mediation requests work when you open a page in
a new tab. Conditional mediation requests do not support security keys and the
request will be aborted if conditional mediation is not available.

  • Modules/credentialmanagement/CredentialsContainer.cpp:

(WebCore::CredentialsContainer::get):

5:55 PM Changeset in webkit [294134] by Alan Coon
  • 4 edits in branches/safari-7614.1.13-branch/Source

Cherry-pick r294122. rdar://problem/93191958

[WebAuthn] Include backup state in authenticatorData
https://bugs.webkit.org/show_bug.cgi?id=240353
rdar://problem/93191958

Reviewed by Brent Fulgham.

Source/WebCore:

Add flags for credential backup state: https://github.com/w3c/webauthn/pull/1695

  • Modules/webauthn/WebAuthenticationConstants.h:

Source/WebKit:

This patch adds support for backup state flags, which will be added to
the Web Authentication spec soon via https://github.com/w3c/webauthn/pull/1695

These flags are set whenever a credential is "backup eligible" and "backed up"
hinting to RPs that the credential is "durable" and may persist through device
restores. This is useful for RPs that may choose to offer to remove the user
password if a credental is in this state.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: (WebKit::LocalAuthenticatorInternal::authDataFlags): (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification): (WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):

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

5:55 PM Changeset in webkit [294133] by Alan Coon
  • 6 edits in branches/safari-7614.1.13-branch

Cherry-pick r294088. rdar://problem/93134975

ImageAnalysisQueue should extract and analyze images inside of subframes
https://bugs.webkit.org/show_bug.cgi?id=240328
rdar://93134975

Reviewed by Tim Horton.

Teach ImageAnalysisQueue to recursively find all images on the page (including images in of subframe content)
and queue them for analysis. To do this, we refactor enqueueAllImages to call into a new recursive helper
method, enqueueAllImagesRecursive, to look for more candidate image elements that exist inside frame owner
elements (e.g. iframe).

Test: ImageAnalysisTests.AnalyzeImagesInSubframes

  • page/ImageAnalysisQueue.cpp: (WebCore::ImageAnalysisQueue::enqueueAllImages): (WebCore::ImageAnalysisQueue::enqueueAllImagesRecursive):
  • page/ImageAnalysisQueue.h: ImageAnalysisQueue should extract and analyze images inside of subframes https://bugs.webkit.org/show_bug.cgi?id=240328 rdar://93134975

Reviewed by Tim Horton.

Add an API test to verify that we extract and analyze images inside of subframes, in addition to images in the
main frame.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:

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

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

5:55 PM Changeset in webkit [294132] by Alan Coon
  • 14 edits in branches/safari-7614.1.13-branch

Cherry-pick r294084. rdar://problem/93036066

Re-send connection configuration if webpushd dies
https://bugs.webkit.org/show_bug.cgi?id=240286

Reviewed by Geoffrey Garen.

If webpushd dies, all future communication with it from NetworkProcess fails because we
don't re-send the connection configuration to the daemon after the connection is
interrupted. This manifests itself as an "invalid sender" AbortError from various
PushManager methods because webpushd doesn't know the bundle identifier of the UIProcess it
is working on behalf of.

To fix this, I moved the responsibility for sending the configuration from
NetworkNotificationManager to WebPushD::Connection, and WebPushD::Connection re-sends the
configuration every time a new XPC connection is created.

Covered by a new API test.

Source/WebKit:

  • NetworkProcess/NetworkSession.cpp: (WebKit::NetworkSession::NetworkSession):
  • NetworkProcess/NetworkSession.h: (WebKit::NetworkSession::webPushDaemonUsesMockBundlesForTesting const): Deleted.
  • NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm: (WebKit::WebPushD::Connection::newConnectionWasInitialized const):
  • NetworkProcess/Notifications/NetworkNotificationManager.cpp: (WebKit::NetworkNotificationManager::NetworkNotificationManager): (WebKit::NetworkNotificationManager::sendMessage const): (WebKit::NetworkNotificationManager::sendMessageWithReply const): (WebKit::NetworkNotificationManager::maybeSendConnectionConfiguration const): Deleted.
  • NetworkProcess/Notifications/NetworkNotificationManager.h:
  • NetworkProcess/Notifications/WebPushDaemonConnection.cpp: (WebKit::WebPushD::Connection::Connection):
  • NetworkProcess/Notifications/WebPushDaemonConnection.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm: (TestWebKitAPI::testWebPushDaemonPList): (TestWebKitAPI::setUpTestWebPushD): (TestWebKitAPI::restartTestWebPushD): (TestWebKitAPI::WebPushDTest::WebPushDTest):
  • TestWebKitAPI/cocoa/DaemonTestUtilities.h:
  • TestWebKitAPI/cocoa/DaemonTestUtilities.mm: (TestWebKitAPI::restartService):

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

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

5:55 PM Changeset in webkit [294131] by Alan Coon
  • 4 edits in branches/safari-7614.1.13-branch/Source

Cherry-pick r293968. rdar://problem/92892014

[macOS] REGRESSION (r293825): Find highlight snapshots are incorrectly scaled
https://bugs.webkit.org/show_bug.cgi?id=240203
rdar://92892014

Reviewed by Tim Horton.

Source/WebCore:

takeSnapshots() depends on the snapshot ImageBuffer::resolutionScale() to
set the size of the TextIndicatorData image. r293825 scaled the size of
the ImageBuffer before creation and moved the scaling to the GraphicsContext.
So we have correct scaled pixels but the resolutionScale is 1. So we get
enlarged incorrect image.

The fix is to revert r293825 and fix the iOS snapshot without having to
change snapshotFrameRectWithClip().

  • page/FrameSnapshotting.cpp: (WebCore::snapshotFrameRectWithClip):

Source/WebKit:

In getShareableBitmapForImageBufferWithQualifiedIdentifier(), we used to
pass the backendSize as the srcRect and the backendSize as the destRect
to GraphicsContext::drawImageBuffer(). The backendSize is the logicalSize
scaled by the resolutionScale. But in ImageBufferCGBackend::draw() we
scale the srcRect by the resolutionScale one more time. This double-
scaled srcRect draws a srcRect whose size = backendSize * resolutionScale
to a destRect whose size = backendSize. And this results in shrinking the
desired snapshot image by 1 / resolutionScale.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):

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

5:55 PM Changeset in webkit [294130] by Alan Coon
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebKit

Cherry-pick r293954. rdar://problem/92885915

Do WebKitAdditions header replacement only when a specific environment variable is set
https://bugs.webkit.org/show_bug.cgi?id=240210
<rdar://92885915>

Reviewed by Tim Horton.

  • Source/WebKit/Configurations/WebKit.xcconfig:
  • Source/WebKit/mac/replace-webkit-additions-includes.py: (check_should_do_replacement): (main): (is_supported_os): Deleted.

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

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

5:55 PM Changeset in webkit [294129] by Alan Coon
  • 13 edits
    2 adds in branches/safari-7614.1.13-branch

Cherry-pick r293951. rdar://problem/92635604

Don't propagate GraphicsContextState change bits into TextPainter's glyph display list recorder
https://bugs.webkit.org/show_bug.cgi?id=239952
<rdar://problem/92635604>

Source/WebCore:

Reviewed by Said Abou-Hallawa and Antti Koivisto.

In FontCascade::displayListForTextRun, we create a
DisplayList::Recorder, then call drawGlyphBuffer. We initialize the
DisplayList::Recorder with the GraphicsContextState of the
GraphicsContext we're drawing to. Just before this, we will have set the
current fill color on that GraphicsContext.

When GPUP DOM rendering is disabled, GraphicsContextCG responds to
setFillColor etc. by updating GraphicsContextState, including setting
the Change flag, then immediately updating the CGContext, and clearing
the Change flag.

But when GPUP DOM rendering is enabled, the GraphicsContext is a
DisplayList::Recorder for the layer we're painting in to. Because
DisplayList::Recorder applies its state changes lazily, it can be in the
situation where its GraphicsContextState has had the fill brush changed,
and the Change flag is still set. So DisplayList::Recorder starts off
with a GraphicsContextState with unapplied changes in it. We end up in
DisplayList::Recorder::drawGlyphsAndCacheFont, which calls
appendStateChangeItemIfNecessary, which sees that the Change bit is set,
and generates a SetInlineFillColor display list item, which is
recorded and then replayed the next time the same text is painted.
This recorded fill color then may be wrong for the next TextPainter
that wants to reuse the cached glyph display list.

Display list recorders should never be initialized with a
GraphicsContextState that has change flags set on it. We can assert
this, then make FontCascade explicitly clear those flags on the state
object it passes in to the DisplayList::Recorder.

Test: fast/text/glyph-display-list-color.html

  • platform/graphics/FontCascade.cpp: (WebCore::FontCascade::displayListForTextRun const):
  • platform/graphics/GraphicsContextState.cpp: (WebCore::GraphicsContextState::cloneForRecording const):
  • platform/graphics/GraphicsContextState.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp: (WebCore::DisplayList::Recorder::Recorder):

Add setForceUseGlyphDisplayListForTesting and
cachedGlyphDisplayListsForTextNode functions on Internal for the
test to use:

  • rendering/GlyphDisplayListCache.h: (WebCore::GlyphDisplayListCache::getIfExists):
  • rendering/TextPainter.cpp: (WebCore::TextPainter::shouldUseGlyphDisplayList): (WebCore::TextPainter::setForceUseGlyphDisplayListForTesting): (WebCore::TextPainter::cachedGlyphDisplayListsForTextNodeAsText):
  • rendering/TextPainter.h: (WebCore::TextPainter::glyphDisplayListIfExists):
  • testing/Internals.cpp: (WebCore::Internals::setForceUseGlyphDisplayListForTesting): (WebCore::Internals::cachedGlyphDisplayListsForTextNode):
  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Reviewed by Antti Koivisto.

  • fast/text/glyph-display-list-color-expected.txt: Added.
  • fast/text/glyph-display-list-color.html: Added.

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

5:31 PM Changeset in webkit [294128] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

TextBoxPainter::paintForeground: painting text with no marking/decoration should be simple
https://bugs.webkit.org/show_bug.cgi?id=240319

Reviewed by Simon Fraser.

Let's have a fast codepath for regular, simple text painting.

  • rendering/StyledMarkedText.cpp:

(WebCore::StyledMarkedText::computeStyleForUnmarkedMarkedText):
(WebCore::computeStyleForUnmarkedMarkedText): Deleted.

  • rendering/StyledMarkedText.h:

(WebCore::StyledMarkedText::StyledMarkedText):
(WebCore::StyledMarkedText::style):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintBackground):
(WebCore::TextBoxPainter::paintForegroundAndDecorations):

5:05 PM Changeset in webkit [294127] by Alan Coon
  • 3 edits in branches/safari-7614.1.13-branch/Source/WebKit

Cherry-pick r294126. rdar://problem/93208265

Revert r293861
https://bugs.webkit.org/show_bug.cgi?id=239977
<rdar://93208265>

Apparently it is still needed on trunk

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::createWebSocketTask):

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

4:43 PM Changeset in webkit [294126] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Revert r293861
https://bugs.webkit.org/show_bug.cgi?id=239977
<rdar://93208265>

Apparently it is still needed on trunk

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::createWebSocketTask):

3:32 PM Changeset in webkit [294125] by Chris Dumez
  • 2 edits in trunk

Unreviewed, revert r284894 as it caused issues with printing and reader mode
https://bugs.webkit.org/show_bug.cgi?id=240355
<rdar://92538667>

Revert r284894 as it caused issues with printing and reader mode.

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

2:57 PM Changeset in webkit [294124] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

StorageMap::removeItem may fail to remove item from map
https://bugs.webkit.org/show_bug.cgi?id=239982
rdar://80891555

  • storage/StorageMap.cpp:

(WebCore::StorageMap::removeItem):
Address post-landing review comment from Darin.

2:56 PM Changeset in webkit [294123] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore

Merge r293971 - [Nicosia] Canvas animations don't work with threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=227760
<rdar://problem/80588913>

Reviewed by Adrian Perez de Castro.

Implement Nicosia::CairoOperationRecorder::draImageBuffer(), which is required in order to paint
canvas contents into a GraphicsContext.

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

(Nicosia::CairoOperationRecorder::drawImageBuffer):

2:54 PM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
2:51 PM Changeset in webkit [294122] by J Pascoe
  • 4 edits in trunk/Source

[WebAuthn] Include backup state in authenticatorData
https://bugs.webkit.org/show_bug.cgi?id=240353
rdar://problem/93191958

Reviewed by Brent Fulgham.

Source/WebCore:

Add flags for credential backup state: https://github.com/w3c/webauthn/pull/1695

  • Modules/webauthn/WebAuthenticationConstants.h:

Source/WebKit:

This patch adds support for backup state flags, which will be added to
the Web Authentication spec soon via https://github.com/w3c/webauthn/pull/1695

These flags are set whenever a credential is "backup eligible" and "backed up"
hinting to RPs that the credential is "durable" and may persist through device
restores. This is useful for RPs that may choose to offer to remove the user
password if a credental is in this state.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::authDataFlags):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):

2:30 PM Changeset in webkit [294121] by jfernandez@igalia.com
  • 2 edits in trunk

Add GitHub account to contributors.json and update expertise field
https://bugs.webkit.org/show_bug.cgi?id=240360

Unreviewed.

  • metadata/contributors.json:
2:14 PM Changeset in webkit [294120] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.12.3

Tag WebKit-7614.1.12.3.

2:06 PM Changeset in webkit [294119] by Alan Coon
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.13.5

1:58 PM Changeset in webkit [294118] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Reviewed by Geoffrey Garen.

The refactoring in Bug 229414 did not retain the old behavior on iOS where local
files (which do not get a MIME type assigned by CFNetwork) passed through the
same 'preferredMIMETypeForFileExtensionFromUTType' logic we use on macOS.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):

1:15 PM Changeset in webkit [294117] by commit-queue@webkit.org
  • 4 edits in trunk

Make if-domain and unless-domain regexes only look at URL hosts
https://bugs.webkit.org/show_bug.cgi?id=240199

Patch by Alex Christensen <achristensen@webkit.org> on 2022-05-12
Reviewed by John Wilander.

Source/WebCore:

In bug 234126 I moved how if-domain and unless-domain are done by translating them into a regex.
I overlooked that a domain can be in the path. If we get to '/' then we are at the end of the host.
Covered by an API test.

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getDomainList):

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

1:08 PM Changeset in webkit [294116] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/build-webkit-org/steps.py

[build.webkit.org] Upload minified archives while building custom revision
https://bugs.webkit.org/show_bug.cgi?id=240354

Reviewed by Ryan Haddad.

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

(CompileWebKit.evaluateCommand):
(TransferToS3.init):
(TransferToS3.finished):

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

1:03 PM Changeset in webkit [294115] by aakash_jain@apple.com
  • 2 edits in trunk/Tools/CISupport/build-webkit-org

[build.webkit.org] Upload steps should be properly named
https://bugs.webkit.org/show_bug.cgi?id=240351

Reviewed by Ryan Haddad.

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

(TestExpectedBuildSteps):

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

(ArchiveMinifiedBuiltProduct):
(UploadBuiltProduct):
(UploadMinifiedBuiltProduct):

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

11:51 AM Changeset in webkit [294114] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Don't install WebKit feature flags plist on macOS
https://bugs.webkit.org/show_bug.cgi?id=240350
<rdar://problem/93183882>

Reviewed by Wenson Hsieh.

  • WebKit.xcodeproj/project.pbxproj:

We don't need it on macOS (and won't need it at all soon), and
the script is currently installing to the wrong place for some kinds
of macOS builds. So, just skip it.

11:22 AM Changeset in webkit [294113] by Kate Cheney
  • 6 edits in trunk

Mail compose: right clicking an image attachment selects it
https://bugs.webkit.org/show_bug.cgi?id=240315
rdar://45454933

Reviewed by Wenson Hsieh.

  • wtf/cocoa/RuntimeApplicationChecksCocoa.h:

Mail compose: right clicking an image attachment selects it
https://bugs.webkit.org/show_bug.cgi?id=240315
rdar://45454933

Reviewed by Wenson Hsieh.

If the page is editable, don't select if the element is an image.

  • page/EventHandler.cpp:

(WebCore::EventHandler::sendContextMenuEvent):
Mail compose: right clicking an image attachment selects it
https://bugs.webkit.org/show_bug.cgi?id=240315
rdar://45454933

Reviewed by Wenson Hsieh.

API test coverage.

  • TestWebKitAPI/Tests/mac/ContextMenuTests.mm:

(TestWebKitAPI::rightClick):
(TestWebKitAPI::TEST):

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

11:14 AM Changeset in webkit [294112] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.13.4

Tag WebKit-7614.1.13.4.

11:05 AM Changeset in webkit [294111] by Russell Epstein
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebKit

Apply patch. rdar://problem/92617943

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

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

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

10:43 AM Changeset in webkit [294109] by yurys@chromium.org
  • 4 edits in trunk/Source/WebKit

[GTK][WPE] Do not return pointer to disposed timezone string
https://bugs.webkit.org/show_bug.cgi?id=240327

Reviewed by Michael Catanzaro.

Store time zone name in CString to avoid returning pointer to a temp string which was
disposed before returning from webkit_web_context_get_time_zone_override.

No new tests. Covered by existing unit tests.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextSetProperty):
(webkitWebContextConstructed):
(webkit_web_context_get_time_zone_override):
(webkit_web_context_set_time_zone_override): Deleted this function as the time zone can
only be overridden during context construction.

  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/wpe/WebKitWebContext.h:
10:43 AM Changeset in webkit [294108] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[macOS] Remove support for deprecated ScreenCaptureKit API
https://bugs.webkit.org/show_bug.cgi?id=239511
<rdar://problem/91973817>

Reviewed by Youenn Fablet.

Source/WebCore:

Tested manually.

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

(-[WebCoreScreenCaptureKitHelper stream:didOutputSampleBuffer:ofType:]):
(WebCore::ScreenCaptureKitCaptureSource::ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::stop):
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
(WebCore::ScreenCaptureKitCaptureSource::updateStreamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::streamDidOutputSampleBuffer):

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm:

(-[WebDisplayMediaPromptHelper sessionDidEnd:]):
(WebCore::ScreenCaptureKitSharingSessionManager::sessionDidEnd):
(WebCore::ScreenCaptureKitSharingSessionManager::takeSharingSessionForFilter):

Source/WebCore/PAL:

  • pal/spi/mac/ScreenCaptureKitSPI.h:
10:39 AM Changeset in webkit [294107] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Unskip no longer failing test
https://bugs.webkit.org/show_bug.cgi?id=240346

Unreviewed gardening.

Test no longer fails on ARM. No good explanation for why it was only
failing in bytecode-cache mode. Also not sure which subsequent commit
fixed it.

  • stress/exception-in-to-property-key-should-be-handled-early.js:
10:37 AM Changeset in webkit [294106] by Russell Epstein
  • 3 edits in branches/safari-7614.1.13-branch/Source/WebKit

Cherry-pick r294072. rdar://problem/93058432

Need to add DYLD_LIBRARY_PATH for XPC services
https://bugs.webkit.org/show_bug.cgi?id=240289

Reviewed by Alexey Proskuryakov.

Set DYLD_LIBRARY_PATH / DYLD_VERSIONED_LIBRARY_PATH for XPC services depending on the value of USE_STAGING_INSTALL_PATH.
Also added DYLD_LIBRARY_PATH to the XPC environment for webpushd.

  • Configurations/BaseTarget.xcconfig:
  • webpushd/webpushtool/WebPushToolMain.mm: (registerDaemonWithLaunchD):

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

10:31 AM Changeset in webkit [294105] by Russell Epstein
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.13.4

9:24 AM Changeset in webkit [294104] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GStreamer][VideoCapture] Add support for capturing encoded video streams from a webcam
https://bugs.webkit.org/show_bug.cgi?id=240229

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

Takes into account encoded video streams produced by a webcam for
video capture.

Manually tested (requires a webcam with encoded video streams).

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::generatePresets):

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:

(WebCore::GStreamerVideoCapturer::createConverter):
(WebCore::GStreamerVideoCapturer::setSize):
(WebCore::GStreamerVideoCapturer::setFrameRate):
(WebCore::GStreamerVideoCapturer::adjustVideoSrcMIMEType):

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.h:
7:27 AM Changeset in webkit [294103] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

REGRESSION(r291038) [GTK][WPE] Fix build without remote inspector
https://bugs.webkit.org/show_bug.cgi?id=240305

Patch by Olivier Blin <Olivier Blin> on 2022-05-12
Reviewed by Michael Catanzaro.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

6:56 AM Changeset in webkit [294102] by youenn@apple.com
  • 9 edits
    1 copy
    3 adds in trunk

Add a better mock for audio units used by CoreAudioSharedUnit
https://bugs.webkit.org/show_bug.cgi?id=240231

Reviewed by Eric Carlson.

Source/WebCore:

Move CoreAudioSharedUnit to its own file, CoreAudioSharedUnit.h/CoreAudioSharedUnit.cpp.
Introduce an internal unit to abstract out CoreAudioSharedUnit from actual CoreAudio units.
Implement a CoreAudio based internal unit in CoreAudioSharedUnit.cpp.
Implement a Mock based internal unit in MockAudioSharedUnit.h/MockAudioSharedUnit.mm.
Add inputput/ouput sample rate validation (debug assert and release error returned).
Add a test that uses this validation.

Test: fast/mediastream/audio-unit-reconfigure.html

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:
  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
  • platform/mediastream/mac/CoreAudioSharedUnit.cpp: Added.
  • platform/mediastream/mac/CoreAudioSharedUnit.h: Added.
  • platform/mediastream/mac/MockAudioSharedUnit.h:
  • platform/mediastream/mac/MockAudioSharedUnit.mm:

LayoutTests:

  • fast/mediastream/audio-unit-reconfigure-expected.txt: Added.
  • fast/mediastream/audio-unit-reconfigure.html: Added.
6:49 AM Changeset in webkit [294101] by Oriol Brufau
  • 4 edits in trunk

[cssom] Serialize computed '-webkit-text-combine: none'
https://bugs.webkit.org/show_bug.cgi?id=239989

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

Update some test expectations.

  • web-platform-tests/css/cssom/serialize-all-longhands-expected.txt:

Source/WebCore:

The computed value of '-webkit-text-combine' was only serialized for
'-webkit-text-combine: horizontal' or 'text-combine-upright: all'.

But the initial value 'none' just produced an empty string.

Test: imported/w3c/web-platform-tests/css/cssom/serialize-all-longhands.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

6:30 AM Changeset in webkit [294100] by zan@falconsigh.net
  • 7 edits in trunk/Source/WebCore

[GTK][WPE] Respect and use the DMABuf modifier values
https://bugs.webkit.org/show_bug.cgi?id=240276

Reviewed by Chris Lord.

When wrapping DMABuf objects in EGLImages, the modifier values should be
respected and used to properly and completely describe the DMABuf.

This should be applied in two places. First one is GraphicsContextGLGBM
where the DMABuf is used to back the ANGLE-handled EGLImage. Second one
is TextureMapperPlatformLayerProxyDMABuf, during construction of the
DMABufLayer object used to present the DMABuf inside the composition
engine.

In both cases this primarily relies on the presence of the
EGL_EXT_image_dma_buf_import_modifiers extension. For the first case
detection of this extension is done through ANGLE and its state stored
on the GraphicsContextGLGBM object during context initialization. For
the second case this state is stored on the PlatformDisplay object
after it's retrieved during the EGLDisplay initialization.

If detected, the DMABuf modifier value is included in the attributes
array used for the EGLImage creation call. The actual modifier value is
retrieved from the gbm_bo object, leaving it to libgbm to assess the
best possible formatting of the DMAbuf resource.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::initializeEGLDisplay):

  • platform/graphics/PlatformDisplay.h:

(WebCore::PlatformDisplay::eglExtensions const):

  • platform/graphics/gbm/GBMBufferSwapchain.cpp:

(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):

  • platform/graphics/gbm/GraphicsContextGLGBM.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
(WebCore::GraphicsContextGLGBM::platformInitializeContext):

  • platform/graphics/gbm/GraphicsContextGLGBM.h:

(WebCore::GraphicsContextGLGBM::eglExtensions):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):

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

TextBoxPainter::paintBackground should bail out early when nothing to paint
https://bugs.webkit.org/show_bug.cgi?id=240317

Reviewed by Simon Fraser.

Collecting markers and highlights is a somewhat expensive operation while most
of the time the text has neither markers nor highlights. Let's just bail out early when applicable.

  • dom/Document.h:

(WebCore::Document::hasHighlightRegister const):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintBackground):

5:40 AM Changeset in webkit [294098] by ntim@apple.com
  • 5 edits in trunk

[:has() pseudo-class] Support invalidation for :target pseudo-class
https://bugs.webkit.org/show_bug.cgi?id=240329

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Extend current test to cover more cases, and mark it as passing.

  • web-platform-tests/css/selectors/invalidation/target-pseudo-in-has-expected.txt:
  • web-platform-tests/css/selectors/invalidation/target-pseudo-in-has.html:

Source/WebCore:

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

  • dom/Document.cpp:

(WebCore::Document::setCSSTarget):

1:44 AM Changeset in webkit [294097] by ntim@apple.com
  • 11 edits
    12 adds in trunk/LayoutTests/imported/w3c

Re-import css/selectors WPT from revision 4653e9128742e2c2609e76f04f4084cdc10ffead
https://bugs.webkit.org/show_bug.cgi?id=240332

Reviewed by Antti Koivisto.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/4653e9128742e2c2609e76f04f4084cdc10ffead

  • web-platform-tests/css/selectors/first-child-expected.txt: Added.
  • web-platform-tests/css/selectors/first-child.html: Added.
  • web-platform-tests/css/selectors/first-of-type-expected.txt: Added.
  • web-platform-tests/css/selectors/first-of-type.html: Added.
  • web-platform-tests/css/selectors/invalidation/has-in-adjacent-position-expected.txt:
  • web-platform-tests/css/selectors/invalidation/has-in-adjacent-position.html:
  • web-platform-tests/css/selectors/invalidation/has-in-ancestor-position-expected.txt:
  • web-platform-tests/css/selectors/invalidation/has-in-ancestor-position.html:
  • web-platform-tests/css/selectors/invalidation/has-in-parent-position-expected.txt:
  • web-platform-tests/css/selectors/invalidation/has-in-parent-position.html:
  • web-platform-tests/css/selectors/invalidation/has-in-sibling-position-expected.txt:
  • web-platform-tests/css/selectors/invalidation/has-in-sibling-position.html:
  • web-platform-tests/css/selectors/invalidation/target-pseudo-in-has-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/target-pseudo-in-has.html: Added.
  • web-platform-tests/css/selectors/invalidation/w3c-import.log:
  • web-platform-tests/css/selectors/last-child-expected.txt: Added.
  • web-platform-tests/css/selectors/last-child.html: Added.
  • web-platform-tests/css/selectors/last-of-type-expected.txt: Added.
  • web-platform-tests/css/selectors/last-of-type.html: Added.
  • web-platform-tests/css/selectors/only-child-expected.txt: Added.
  • web-platform-tests/css/selectors/only-child.html: Added.
  • web-platform-tests/css/selectors/w3c-import.log:

May 11, 2022:

11:39 PM Changeset in webkit [294096] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GPU Process] webrtc/vp8-then-h264-gpu-process-crash.html flaky fails after turning DOM in GPUP on by default
https://bugs.webkit.org/show_bug.cgi?id=236926

Patch by John Cunningham <johncunningham@apple.com> on 2022-05-11
Reviewed by Youenn Fablet.

  • platform/wpe/TestExpectations:
10:41 PM Changeset in webkit [294095] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[WPE] Unreviewed, build fix after r293816
https://bugs.webkit.org/show_bug.cgi?id=240330

Build was broken when ENABLE_ORIENTATION_EVENTS=ON

  • dom/DeviceOrientationEvent.idl:
10:14 PM Changeset in webkit [294094] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Some RenderStyle::diff() optimizations
https://bugs.webkit.org/show_bug.cgi?id=240323

Reviewed by Alan Bujtas.

Some LengthBox operator== stuff was showing up on profiles, which we can avoid by
first testing m_surroundData pointer equality.

scrollPadding and scrollSnapType live in rareNonInheritedData, so we can move their
comparisons into rareNonInheritedDataChangeRequiresLayout().

changeRequiresRepaint() can check for m_backgroundData and m_surroundData pointer
equality before doing more expensive tests.

These changes reduce the time in RenderStyle::diff() in the MotionMark Design
subtest by ~40%.

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):
(WebCore::RenderStyle::changeRequiresLayout const):
(WebCore::RenderStyle::changeRequiresLayerRepaint const):
(WebCore::RenderStyle::changeRequiresRepaint const):

9:49 PM Changeset in webkit [294093] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.13.3

Tag WebKit-7614.1.13.3.

9:46 PM Changeset in webkit [294092] by Russell Epstein
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebKit

Cherry-pick r293945. rdar://problem/92859012

Fix another internal build
https://bugs.webkit.org/show_bug.cgi?id=240201
<rdar://92859012>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-05-06
Reviewed by Alexey Proskuryakov.

Bug 240184 introduced a classic "but I have spaces in my path" bug.

  • Configurations/adattributiond.xcconfig:

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

9:46 PM Changeset in webkit [294091] by Russell Epstein
  • 2 edits in branches/safari-7614.1.13-branch/Source/WebKit

Cherry-pick r293936. rdar://problem/92859012

Fix adattributiond build in internal build on older macOS
https://bugs.webkit.org/show_bug.cgi?id=240184
<rdar://92859012>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-05-06
Reviewed by Alexey Proskuryakov.

We need to search for WK_OVERRIDE_FRAMEWORKS_DIR to find the right frameworks

  • Configurations/adattributiond.xcconfig:

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

9:33 PM Changeset in webkit [294090] by Russell Epstein
  • 4 edits
    1 add in branches/safari-7614.1.13-branch/Source/WebGPU

Cherry-pick r293937. rdar://problem/92524485

[WebGPU] Fix build on downlevel OSes in Apple's build system
https://bugs.webkit.org/show_bug.cgi?id=240159
<rdar://problem/92524485>

Reviewed by Alexey Proskuryakov.

Some variables from WebKitTargetConditionals.xcconfig and
PlatformSupport.xcconfig are used, so we have to make sure
we include them. Also refactor the INSTALL_PATH variable a
bit.

  • Configurations/Base.xcconfig:
  • Configurations/WebGPU.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig: Added.
  • WebGPU.xcodeproj/project.pbxproj:

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

9:27 PM Changeset in webkit [294089] by Russell Epstein
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.13.3

9:05 PM Changeset in webkit [294088] by Wenson Hsieh
  • 6 edits in trunk

ImageAnalysisQueue should extract and analyze images inside of subframes
https://bugs.webkit.org/show_bug.cgi?id=240328
rdar://93134975

Reviewed by Tim Horton.

Teach ImageAnalysisQueue to recursively find all images on the page (including images in of subframe content)
and queue them for analysis. To do this, we refactor enqueueAllImages to call into a new recursive helper
method, enqueueAllImagesRecursive, to look for more candidate image elements that exist inside frame owner
elements (e.g. iframe).

Test: ImageAnalysisTests.AnalyzeImagesInSubframes

  • page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::enqueueAllImages):
(WebCore::ImageAnalysisQueue::enqueueAllImagesRecursive):

  • page/ImageAnalysisQueue.h:

ImageAnalysisQueue should extract and analyze images inside of subframes
https://bugs.webkit.org/show_bug.cgi?id=240328
rdar://93134975

Reviewed by Tim Horton.

Add an API test to verify that we extract and analyze images inside of subframes, in addition to images in the
main frame.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:

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

7:06 PM Changeset in webkit [294087] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Better handle clobbered registers in O0 register allocation
https://bugs.webkit.org/show_bug.cgi?id=240205
<rdar://87220688>

Reviewed by Yusuke Suzuki.

This patch makes Air's O0 register allocator better handle clobbered
registers. We now model both early and late clobber directly, and use
this to perform a basic interference analysis when allocating a register
to a Tmp. An early clobber interferes with any Use in an instruction, and
any early Defs. A late clobber interferes with any Defs in an instruction,
and any late Uses. What this enables is an early Use can be allocated
to a register that is only late clobbered. And a result can be allocated
to a register that is only early clobbered.

Prior to this, the algorithm had a bug where a Use may be allocated to
a register that is early clobbered.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::buildLiveRanges):
(JSC::B3::Air::GenerateAndAllocateRegisters::alloc):
(JSC::B3::Air::GenerateAndAllocateRegisters::freeDeadTmpsIfNeeded):
(JSC::B3::Air::GenerateAndAllocateRegisters::assignTmp):
(JSC::B3::Air::GenerateAndAllocateRegisters::prepareForGeneration):
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.h:
  • b3/air/testair.cpp:
  • jit/RegisterSet.h:

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

6:44 PM Changeset in webkit [294086] by yousuke.kimoto@sony.com
  • 2 edits in trunk/Source/WebKit

[WinCairo] Fix a compile error due to InspectorResourceURLSchemeHandler
https://bugs.webkit.org/show_bug.cgi?id=239490

Reviewed by Yusuke Suzuki.

  • UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

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

6:36 PM Changeset in webkit [294085] by Alan Coon
  • 9 edits in branches/safari-7614.1.12-branch/Source

Versioning.

WebKit-7614.1.12.3

5:56 PM Changeset in webkit [294084] by Ben Nham
  • 14 edits in trunk

Re-send connection configuration if webpushd dies
https://bugs.webkit.org/show_bug.cgi?id=240286

Reviewed by Geoffrey Garen.

If webpushd dies, all future communication with it from NetworkProcess fails because we
don't re-send the connection configuration to the daemon after the connection is
interrupted. This manifests itself as an "invalid sender" AbortError from various
PushManager methods because webpushd doesn't know the bundle identifier of the UIProcess it
is working on behalf of.

To fix this, I moved the responsibility for sending the configuration from
NetworkNotificationManager to WebPushD::Connection, and WebPushD::Connection re-sends the
configuration every time a new XPC connection is created.

Covered by a new API test.

Source/WebKit:

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::webPushDaemonUsesMockBundlesForTesting const): Deleted.

  • NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm:

(WebKit::WebPushD::Connection::newConnectionWasInitialized const):

  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::NetworkNotificationManager):
(WebKit::NetworkNotificationManager::sendMessage const):
(WebKit::NetworkNotificationManager::sendMessageWithReply const):
(WebKit::NetworkNotificationManager::maybeSendConnectionConfiguration const): Deleted.

  • NetworkProcess/Notifications/NetworkNotificationManager.h:
  • NetworkProcess/Notifications/WebPushDaemonConnection.cpp:

(WebKit::WebPushD::Connection::Connection):

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

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

(TestWebKitAPI::testWebPushDaemonPList):
(TestWebKitAPI::setUpTestWebPushD):
(TestWebKitAPI::restartTestWebPushD):
(TestWebKitAPI::WebPushDTest::WebPushDTest):

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

(TestWebKitAPI::restartService):

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

5:54 PM Changeset in webkit [294083] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.1.2

Tag WebKit-7613.3.1.1.2.

5:31 PM Changeset in webkit [294082] by Patrick Angle
  • 44 edits in trunk

Web Inspector: Parse InjectedScriptSource as a built-in to get guaranteed non-user-overriden JSC built-ins
https://bugs.webkit.org/show_bug.cgi?id=152294

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Covered by existing tests, and new test cases in LayoutTests/inspector/injected-script/observable.html

  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Build InjectedScriptSource.js as a builtin, not as a plain header file containing its source code.
  • Scripts/wkbuiltins/builtins_model.py:

(BuiltinFunction.fromString):
(BuiltinsCollection._parse_functions):

  • InspectorInjectedScript contains unbalanced curly brackets inside quotes. The generation of builtins is now

hardened against this. Previously all curly brackets were counted, which meant that the source code would be cut
off earlier than the actual end of the function.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutable):

  • CommandLineAPIModuleSource.js uses destructuring to get the RemoteObject and CommandLineAPI classes at

instantiation. We need to treat this destructure as a single parameter, otherwise debug assertions will catch
the discrepancy between parameter counts.

  • builtins/BuiltinNames.h:
  • bytecode/LinkTimeConstant.h:
  • Add symbols that we need to have a private version of, and for some of those symbols make them link-time constants.
  • builtins/IteratorHelpers.js:

(globalPrivate.builtinSetIterable):
(globalPrivate.builtinMapIterable):

  • Add reusable helpers for getting builtin iterators for Maps and Sets. This is done with private symbols that

represent the same function that the iterator would have returned. We create a new wrapper object to allow usage
to follow the same pattern at dealing with an unwrapped iterable object.

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):
(Inspector::InjectedScriptManager::injectedScriptFor):
(Inspector::InjectedScriptManager::injectedScriptSource): Deleted.

  • inspector/InjectedScriptManager.h:
  • Use the new link-time constant for the Injected Script creation function.
  • inspector/InjectedScriptModule.cpp:

(Inspector::InjectedScriptModule::ensureInjected):

  • inspector/InjectedScriptModule.h:
  • Injected modules are now provided as a JSFunction, not raw source code.
  • inspector/InjectedScriptSource.js:
  • Use private symbols throughout to ensure we get non-observable, non-overridden versions of functions and values.
  • In many cases, this is a 1:1 mapping where the new symbol is just prefixed with an @.
  • For pushing values to arrays, use @arrayPush, the builtin way of pushing a value into an array.
  • For the Symbol constructor, just use the existing @createPrivateSymbol instead of exposing a private

version of the Symbol constructor..

  • Symbol.toStringTag is converted to @@toStringTag, the private version of that symbol.
  • Math.max in RemoteObject.prototype._generatePreview now uses a helper function that performs a comparison

instead of exposing both Math and Math.max as private builtins.

  • Create objects as prototype-less using the new builtin helper @createPrototypelessObject, which can also take

arguments that are key value pairs for near-parity with normal Object creation via {}.

  • Create arrays as prototype-less using the new builtin helper @createPrototypelessArray, which can also take

arguments which are entries to put into the array.

  • For spreading arguments (for the console commandline functions) we should create a new prototypeless array to

spread instead of spreading the raw arguments to avoid interacting with a potentially modified iterator.

  • parser/Parser.h:

(JSC::parse):

  • Add the line number to builtin compilation logging to help identify where sometimes ambiguous errors occurred.
  • runtime/ArrayConstructor.cpp:
  • runtime/ArrayPrototype.cpp:
  • runtime/MapPrototype.cpp:
  • runtime/ObjectConstructor.cpp:
  • runtime/SetPrototype.cpp:
  • runtime/StringPrototype.cpp:
  • Expose necessary functions/constructors via their private name for use in InjectedScriptSource.js and

CommandLineAPIModuleSource.js

  • runtime/JSGlobalObject.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:
  • Add a link-time constant for the String constructor.
  • Add helpers for JSON parsing/serialization.

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • Build CommandLineAPIModuleSource.js as a builtin, not as a plain header file containing its source code.
  • inspector/CommandLineAPIModule.cpp:

(WebCore::CommandLineAPIModule::injectModuleFunction const):
(WebCore::CommandLineAPIModule::source const): Deleted.

  • inspector/CommandLineAPIModule.h:
  • Provide a JSFunction for module injection instead of raw source code.
  • inspector/CommandLineAPIModuleSource.js:
  • Similar to JavaScriptCore/inspector/InjectedScriptSource.js, use private names for properties and functions

throughout to get non-user-overridden builtins.

  • In normalizeEventTypes use a Set instead of an array, since we are processing user-provided types that may

be repeated. This means that we need to iterate over all the types to insert them in the set, but since
@arrayPush doesn't support pushing multiple values at the same time this is no more work than using an Array.

LayoutTests:

  • inspector/injected-script/observable-expected.txt:
  • inspector/injected-script/observable.html:
  • Add several more test cases for overriding functions and entire objects.
  • inspector/debugger/pause-for-internal-scripts-expected.txt:
  • inspector/debugger/pause-for-internal-scripts.html:
  • Changed to test a custom internal script snippet since the inspector injected script is now a builtin.
  • inspector/debugger/scriptParsed-expected.txt:
  • inspector/debugger/scriptParsed.html:
  • The inspector injected script (and modules) will no longer appear as scripts in Web Inspector.
  • inspector/model/remote-object/error-expected.txt:
  • inspector/timeline/line-column.html:
  • inspector/timeline/line-column-expected.txt:
  • platform/gtk/inspector/timeline/line-column-expected.txt:
  • Inspector injected script line numbers are different between release and debug builds, so filter those out.
5:02 PM Changeset in webkit [294081] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.0.2

Tag WebKit-7613.3.1.0.2.

4:58 PM Changeset in webkit [294080] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.13.2

Tag WebKit-7614.1.13.2.

4:52 PM Changeset in webkit [294079] by Chris Dumez
  • 11 edits
    2 adds in trunk

fast/text/international/system-language/navigator-language/navigator-language-fr.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240104
<rdar://problem/92765233>

Reviewed by Per Arne Vollan and Myles Maxfield.

The test was flaky and navigator.language would sometimes return "fr" and sometimes "fr-FR".
The reason for this is that Cocoa ports used 2 separate mechanisms to override the system
language:

  1. The override languages were used to set the AppleLanguages NSUserDefaults, causing APIs such as CFLocaleCopyPreferredLanguages() to return the overriden languages.
  2. During process initialization we would also call WTF::overrideUserPreferredLanguages() which would add the override languages to an override Vector in WTF.

The test was setting the override language to "fr". When method 2 would succeed,
navigator.language would return "fr", from preferredLanguagesOverride().

However, Internals::resetToConsistentState() would reset WTF::preferredLanguagesOverride()
shortly after the test starts running. As a result, the override Vector in WTF would often
end up being empty and we would end up calling CFLocaleCopyPreferredLanguages().
However, CFLocaleCopyPreferredLanguages() return "fr-FR", which is equivalent but not
exactly the same.

To address the issue, I made the following changes:

  1. Use a single method for overriding languages for Cocoa ports. We are now using the AppleLanguages user default exclusively and not the WTF::preferredLanguagesOverride() Vector.
  2. We now call Internals::resetToConsistentState() only after running the test in WebKitTestRunner, not at the beginning of the test. This is consistent to what we were already doing in DumpRenderTree. Because Internals::resetToConsistentState() resets the languages, we don't want it to run at the beginning of the test. This is because some tests specify their languages in their header and WKTR ends up setting those languages via TestOptions, before actually running the test. We don't want those to get cleared.
  • Tools/WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
Only ask the injected bundle to reset after running the test and not before. This is
consistent with what DumpRenderTree was already doing. The injected bundle would call
Internals::resetToConsistentState() when receiving this reset message.

  • Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::setAppleLanguagesPreference):
Move the logic to set the AppleLanguages user default from the WebKit2 layer to WTF,
inside LanguageCocoa.mm and use it inside WTF::overrideUserPreferredLanguages().

  • Source/WTF/wtf/Language.cpp:

(WTF::overrideUserPreferredLanguages):

  • Source/WTF/wtf/cocoa/LanguageCocoa.mm:

(WTF::overrideUserPreferredLanguages):
Stop using the WTF::preferredLanguagesOverride() Vector on Cocoa and set the AppleLanguages
user default instead. WebKit2 was using both AppleLanguages and this Vector, which would give
inconsistent results, especially when resetting the Vector but not the user default. Using
the user default is also more realistic then the fake override Vector as we end up calling
into the usual CF APIs to retrieve the languages.

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

(WebCore::computeSpecializedChineseLocale):

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

(WebCore::computeUserPrefersSimplified):
Add some FIXME comments. These functions do locale matching but use minimized locales which
may cause the matching to fail. This is causing fast/text/international/generic-font-family-language-traditional.html
to fail. We didn't notice before because our test infrastructure storing language overrides in
a vector in WTF, which doesn't get minimized, unlike locales we get from the system.

  • Source/WebCore/testing/Internals.cpp:

(WebCore::Internals::userPreferredLanguages const):
Stop minimizing the locales returned by internals.userPreferredLanguages(). It used to not matter because
locales set by the test would be set in the WTF::overrideUserPreferredLanguages() Vector and locales from
that vector would get returned un-minimized, even when requesting minimized locales. However, now that we
are no longer using this vector and using the regular code path instead, locales would get minimized and
this would cause a test to fail. The test was checking that the values returned by
internals.userPreferredLanguages() are exactly the same as the ones set via internals.setUserPreferredLanguages().

  • LayoutTests/fast/harness/user-preferred-language.html:

Tweak test to use call internals.setUserPreferredLanguages() with proper locales instead of using
non-locales. This used to not matter because we were storing them in the WTF::overrideUserPreferredLanguages()
Vector and internals.userPreferredLanguages() would return then as-is from the vector.
However, now that we actually set the AppleLanguages user default and actually call the CF APIs to retrieve
the locales, having properly formatted locales is required.

  • LayoutTests/platform/gtk/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Added.

We used to clear the language override shortly after starting the test so the test was actually getting the system language
instead of "en" which is the override that the test sets.

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

Mark fast/text/international/generic-font-family-language-traditional.html as failing since language minimization
is causing it to fail. This is not a regression from this patch. This is an issue in shipping code that is now
exposed because our test infrastructure for locale overriding is now closer to real life.

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

3:32 PM Changeset in webkit [294078] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 145

Added a tag for Safari Technology Preview release 145.

2:57 PM Changeset in webkit [294077] by yurys@chromium.org
  • 9 edits in trunk

[WinCairo] Support file downloads
https://bugs.webkit.org/show_bug.cgi?id=240293

Reviewed by Fujii Hironori.

.:

  • Source/cmake/OptionsWin.cmake: enable DOWNLOAD_ATTRIBUTE by default in WinCairo.

Source/WebCore:

Properly convert suggested file name to utf8.

Coverred by LayoutTests/http/tests/download/literal-utf-8.html.

  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::platformSuggestedFilename const):

Source/WebKit:

Hooked up Curl calls to Download callbacks. Added basic support for
file downloads in Curl.

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::cancel):
(WebKit::NetworkDataTaskCurl::curlDidReceiveData):
(WebKit::NetworkDataTaskCurl::curlDidComplete):
(WebKit::NetworkDataTaskCurl::deleteDownloadFile):
(WebKit::NetworkDataTaskCurl::curlDidFailWithError):
(WebKit::NetworkDataTaskCurl::invokeDidReceiveResponse):

  • NetworkProcess/curl/NetworkDataTaskCurl.h:

LayoutTests:

  • platform/wincairo/TestExpectations: enable downloads tests.
2:57 PM Changeset in webkit [294076] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.1-branch/Source

Versioning.

WebKit-7613.3.1.1.2

2:56 PM Changeset in webkit [294075] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.0-branch/Source

Versioning.

WebKit-7613.3.1.0.2

2:47 PM Changeset in webkit [294074] by Jonathan Bedard
  • 2 edits in trunk

Remove Subversion references from ReadMe
https://bugs.webkit.org/show_bug.cgi?id=240316
<rdar://problem/93127701>

Reviewed by Geoffrey Garen.

  • ReadMe.md:

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

2:43 PM Changeset in webkit [294073] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.1.1

Tag WebKit-7613.3.1.1.1.

2:41 PM Changeset in webkit [294072] by msaboff@apple.com
  • 3 edits in trunk/Source/WebKit

Need to add DYLD_LIBRARY_PATH for XPC services
https://bugs.webkit.org/show_bug.cgi?id=240289

Reviewed by Alexey Proskuryakov.

Set DYLD_LIBRARY_PATH / DYLD_VERSIONED_LIBRARY_PATH for XPC services depending on the value of USE_STAGING_INSTALL_PATH.
Also added DYLD_LIBRARY_PATH to the XPC environment for webpushd.

  • Configurations/BaseTarget.xcconfig:
  • webpushd/webpushtool/WebPushToolMain.mm:

(registerDaemonWithLaunchD):

2:37 PM Changeset in webkit [294071] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.1.0.1

Tag WebKit-7613.3.1.0.1.

1:40 PM Changeset in webkit [294070] by Alan Coon
  • 12 edits
    1 add in branches/safari-613-branch/Source

Cherry-pick r293804. rdar://92717726

Crash under WebCore: WebCore::CachedResourceClientWalker<WebCore::CachedImageClient>::next()
https://bugs.webkit.org/show_bug.cgi?id=240072
<rdar://92717726>

Reviewed by Geoff Garen.

Have CachedResource and CachedResourceClientWalker hold the clients via WeakPtrs instead of
raw pointers and null check them before usage. This is a lot safer.

  • Source/WTF/WTF.xcodeproj/project.pbxproj:
  • Source/WTF/wtf/WeakHashCountedSet.h: Added.

(WTF::WeakHashCountedSet::begin):
(WTF::WeakHashCountedSet::end):
(WTF::WeakHashCountedSet::begin const):
(WTF::WeakHashCountedSet::end const):
(WTF::WeakHashCountedSet::find):
(WTF::WeakHashCountedSet::find const):
(WTF::WeakHashCountedSet::contains const):
(WTF::WeakHashCountedSet::computeSize const):
(WTF::WeakHashCountedSet::clear):
(WTF::Counter>::add):
(WTF::Counter>::remove):

  • Source/WebCore/html/HTMLLinkElement.h:
  • Source/WebCore/loader/DocumentThreadableLoader.h:
  • Source/WebCore/loader/ImageLoader.h:
  • Source/WebCore/loader/LinkLoader.h:
  • Source/WebCore/loader/cache/CachedImage.cpp:

(WebCore::CachedImage::addClientWaitingForAsyncDecoding):

  • Source/WebCore/loader/cache/CachedResource.cpp:

(WebCore::CachedResource::didAddClient):
(WebCore::CachedResource::addClientToSet):
(WebCore::CachedResource::removeClient):
(WebCore::CachedResource::switchClientsToRevalidatedResource):

  • Source/WebCore/loader/cache/CachedResource.h:

(WebCore::CachedResource::hasClients const):
(WebCore::CachedResource::hasClient):
(WebCore::CachedResource::numberOfClients const):

  • Source/WebCore/loader/cache/CachedResourceClient.h:
  • Source/WebCore/loader/cache/CachedResourceClientWalker.h:

(WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
(WebCore::CachedResourceClientWalker::next):

  • Source/WebCore/rendering/RenderObject.h:

Canonical link: https://commits.webkit.org/245886.562@safari-7613.3.1.0-branch

1:40 PM Changeset in webkit [294069] by Alan Coon
  • 3 edits
    3 adds in branches/safari-613-branch

Cherry-pick r293736. rdar://80891555

StorageMap::removeItem may fail to remove item from map
https://bugs.webkit.org/show_bug.cgi?id=239982
rdar://80891555

Reviewed by Chris Dumez.

Source/WebCore:

We may have updated m_impl, but we don't update iterator for removal. In this case, item is not removed from
map, but currentSize is updated. The mismatch between currentSize and actual size of the map may lead to
underflow and overflow in currentSize when item is added or removed later.

Test: storage/domstorage/sessionstorage/window-open-remove-item.html

  • storage/StorageMap.cpp:

(WebCore::StorageMap::removeItem):

LayoutTests:

  • storage/domstorage/sessionstorage/resources/window-open-remove-item.html: Added.
  • storage/domstorage/sessionstorage/window-open-remove-item-expected.txt: Added.
  • storage/domstorage/sessionstorage/window-open-remove-item.html: Added.

Canonical link: https://commits.webkit.org/245886.561@safari-7613.3.1.0-branch

1:40 PM Changeset in webkit [294068] by Alan Coon
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.3.1.0.1

Canonical link: https://commits.webkit.org/245886.560@safari-7613.3.1.0-branch

1:35 PM Changeset in webkit [294067] by Antti Koivisto
  • 50 edits in trunk

REGRESSION (r291788): MotionMark Suits subtest is 9% regressed
https://bugs.webkit.org/show_bug.cgi?id=240112
rdar://92409900

Reviewed by Alan Bujtas.

Source/WebCore:

Add mechanism to safely update SVG renderer from element without triggering an unnecessary style resolution.

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):
(WebCore::Document::resolveStyle):
(WebCore::Document::updateTextRenderer):
(WebCore::Document::updateSVGRenderer):

Use the same mechanism as text updates to schedule SVG rendering updates.

(WebCore::Document::ensurePendingRenderTreeUpdate):
(WebCore::Document::needsStyleRecalc const):
(WebCore::Document::destroyRenderTree):

Ensure any remaining style update get deleted along with the render tree.

  • dom/Document.h:
  • dom/ElementData.h:

(WebCore::ElementData::svgResourcesInAncestorChainAreDirty const): Deleted.
(WebCore::ElementData::setSVGResourcesInAncestorChainAreDirty const): Deleted.

Not needed anymore, Style::Update remembers what needs updating.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRenderTree):
(WebCore::RenderTreeUpdater::updateElementRenderer):

Schedule an update. Currently this really just schedules a layout which pulls in the changes from the element.

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addSVGRendererUpdate):

Add a bit to ElementUpdate to indicate that SVG update is needed.

  • style/StyleUpdate.h:
  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::applyResultsToTarget):

  • svg/SVGClipPathElement.cpp:

(WebCore::SVGClipPathElement::svgAttributeChanged):
(WebCore::SVGClipPathElement::childrenChanged):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::updateSVGRendererForElementChange):
(WebCore::SVGElement::setSVGResourcesInAncestorChainAreDirty): Deleted.
(WebCore::SVGElement::invalidateSVGResourcesInAncestorChainIfNeeded): Deleted.

Replace setSVGResourcesInAncestorChainAreDirty with the new mechanism. Don't invalidate style.

  • svg/SVGElement.h:
  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::svgAttributeChanged):

  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::svgAttributeChanged):

  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::svgAttributeChanged):

  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::setOrder):
(WebCore::SVGFEConvolveMatrixElement::setKernelUnitLength):
(WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):

  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):

  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::setStdDeviation):
(WebCore::SVGFEDropShadowElement::svgAttributeChanged):

  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::setStdDeviation):
(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::buildPendingResource):
(WebCore::SVGFEImageElement::svgAttributeChanged):

  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::setRadius):
(WebCore::SVGFEMorphologyElement::svgAttributeChanged):

  • svg/SVGFEOffsetElement.cpp:

(WebCore::SVGFEOffsetElement::svgAttributeChanged):

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::svgAttributeChanged):

  • svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::svgAttributeChanged):

  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::svgAttributeChanged):
(WebCore::SVGFilterElement::childrenChanged):

  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::invalidateFilterPrimitiveParent):

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::svgAttributeChanged):

  • svg/SVGGeometryElement.cpp:

(WebCore::SVGGeometryElement::svgAttributeChanged):

  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::svgAttributeChanged):
(WebCore::SVGGradientElement::childrenChanged):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::svgAttributeChanged):

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::svgAttributeChanged):

  • svg/SVGLineElement.cpp:

(WebCore::SVGLineElement::svgAttributeChanged):

  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::svgAttributeChanged):

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::svgAttributeChanged):
(WebCore::SVGMarkerElement::childrenChanged):

  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::childrenChanged):

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::svgAttributeChanged):

  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::svgAttributeChanged):
(WebCore::SVGPatternElement::childrenChanged):

  • svg/SVGPolyElement.cpp:

(WebCore::SVGPolyElement::svgAttributeChanged):

  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::svgAttributeChanged):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::updateCurrentTranslate):
(WebCore::SVGSVGElement::svgAttributeChanged):

  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::svgAttributeChanged):

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::svgAttributeChanged):

  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::svgAttributeChanged):

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::svgAttributeChanged):

  • svg/SVGTextPositioningElement.cpp:

(WebCore::SVGTextPositioningElement::svgAttributeChanged):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::svgAttributeChanged):

  • svg/SVGViewElement.cpp:

(WebCore::SVGViewElement::svgAttributeChanged):

LayoutTests:

  • svg/animations/animation-leak-list-property-instances.html:

Do a rendering update before checking for leaks.

1:25 PM Changeset in webkit [294066] by Alan Coon
  • 7 edits in branches/safari-613-branch

Revert r292888. rdar://problem/80059355

This reverts commit 8c9dcc208cc2be524c3b836f02e4fadc7df788f9/r293995.

1:20 PM Changeset in webkit [294065] by Russell Epstein
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.13.2

11:47 AM Changeset in webkit [294064] by Jonathan Bedard
  • 1 edit in trunk/metadata/contributors.json

Add my GitHub account name to contributors.json.

Reviewed by Jonathan Bedard.

  • metadata/contributors.json:

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

11:35 AM Changeset in webkit [294063] by Wenson Hsieh
  • 4 edits in trunk

[Webpage Translation] Avoid removing elements with no children during text manipulation
https://bugs.webkit.org/show_bug.cgi?id=240287
rdar://91882797

Reviewed by Tim Horton.

After invoking webpage translation on a particular website, the entire page becomes blank and unusable when
scrolling. This happens because of an uncaught JavaScript exception that's thrown when this page's script
attempts to remove an element from its parent using p.removeChild(c), where the node p is not a parent of
the given node c; this, in turn, happens because TextManipulationController has already unparented c from
p while performing text replacement during translation.

In this particular case, the former child node c is an empty div element with no text or children. As such,
it's unnecessary to flag this element for removal in the first place, since doing so isn't necessary to fill in
translated text.

We can avoid this issue by simply skipping over such nodes (i.e. containers that contain no text, no child
elements, and also are not replaced elements) to avoid this and similar compatibility issues that arise when
the DOM is mutated underneath the page, during translation.

Test: TextManipulation.CompleteTextManipulationSkipsEmptyContainers

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):
[Webpage Translation] Avoid removing elements with no children during text manipulation
https://bugs.webkit.org/show_bug.cgi?id=240287
rdar://91882797

Reviewed by Tim Horton.

Add a new API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

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

11:18 AM Changeset in webkit [294062] by sihui_liu@apple.com
  • 2 edits in trunk

Unreviewed, add github info to contributors.json.

  • metadata/contributors.json:
10:58 AM Changeset in webkit [294061] by Ben Nham
  • 2 edits in trunk/LayoutTests

Rebaseline WK1 notifications test expectations after r293921
https://bugs.webkit.org/show_bug.cgi?id=240153

Unreviewed test gardening.

  • platform/mac-wk1/imported/w3c/web-platform-tests/notifications/idlharness.https.any-expected.txt:
10:51 AM Changeset in webkit [294060] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[WP] Remove obsolete message filters
https://bugs.webkit.org/show_bug.cgi?id=240242

Reviewed by Chris Dumez.

Remove obsolete message filters in the WebContent process' sandbox. This filtering is now done in other parts of the system.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:46 AM Changeset in webkit [294059] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Add a webshare quirk for youtube
https://bugs.webkit.org/show_bug.cgi?id=240303
<rdar://93042649>

Reviewed by Tim Horton.

Manually tested.

  • page/Quirks.cpp:

(WebCore::isYouTubeDocument):
(WebCore::Quirks::shouldDisableWebSharePolicy const):

10:44 AM Changeset in webkit [294058] by youenn@apple.com
  • 19 edits in trunk/Source

MediaPlayerPrivateRemote::nativeImageForCurrentTime should not use IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=240226
<rdar://problem/92969905>

Reviewed by Eric Carlson.

Source/WebCore:

Add a way for MediaPlayer to pass the VideoFrame related to the given frame metadata.

Covered by existing tests, in particular:

  • LayoutTests/media/video-canvas-createPattern.html
  • LayoutTests/media/video-canvas-drawing.html
  • LayoutTests/media/video-canvas-drawing-output.html
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/mediastream/libwebrtc/VideoFrameLibWebRTC.h:

Source/WebKit:

On GPUProcess side, when receiving notification of a new frame, create a remote frame
in RemoteMediaPlayerProxy::mediaPlayerOnNewVideoFrameMetadata
and send it to MediaPlayerPrivateRemote::pushVideoFrameMetadata on WebProcess side.
When being asked to create a NativeImage, MediaPlayerPrivateRemote can use that remote image
to get a NativeImage using its videoFrameObjectHeapProxy.
If the remote video frame is not available, get it through videoFrameForCurrentTime and convert it in the same way.
This creates in that case a double IPC. We should probably remove these two IPCs and use VideoFrame as much as we can in follow-up patches.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
  • WebProcess/GPU/webrtc/SharedVideoFrame.h:
10:20 AM Changeset in webkit [294057] by youenn@apple.com
  • 9 edits in trunk/Source

Introduce a canvas-drawImage specific method to get a NativeImage from a video element
https://bugs.webkit.org/show_bug.cgi?id=240275

Reviewed by Eric Carlson.

Source/WebCore:

Introduce shouldGetNativeImageForCanvasDrawing in HTMLVideoElement/MediaPlayer/MediaPlayerPrivate.
If returning true, we call videoFrameForCurrentTime when drawing a video to canvas.
Otherwise, we directly use video.paintCurrentFrameInContext code path.
This allows skipping a code path where videoFrameForCurrentTime is less efficient than video.paintCurrentFrameInContext.

Covered by existing canvas tests.

  • html/HTMLVideoElement.cpp:
  • html/HTMLVideoElement.h:
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

Source/WebKit:

Implement shouldGetNativeImageForCanvasDrawing in MediaPlayerPrivateRemote to return false.
This allows to not do sync IPC in the code path where everything can be done in GPUProcess.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:
10:13 AM Changeset in webkit [294056] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.11.9

Tag WebKit-7614.1.11.9.

10:09 AM Changeset in webkit [294055] by Alan Coon
  • 1 edit in branches/safari-7613.3.1.1-branch/Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm

Apply patch. rdar://problem/92780272

8:54 AM Changeset in webkit [294054] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[Gardening][ macOS Debug wk2 ] fast/css/variables/test-suite/168.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239822

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

8:16 AM Changeset in webkit [294053] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[Gardening][ macOS Debug wk2 ] fast/css/variables/test-suite/168.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239822

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

7:56 AM Changeset in webkit [294052] by Karl Rackler
  • 3 edits in trunk/LayoutTests

[Gardening][ iOS ][ macOS Debug wk1 ] webaudio/AudioBuffer/huge-buffer.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240081

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:
  • LayoutTests/platform/mac-wk1/TestExpectations:

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

7:27 AM Changeset in webkit [294051] by aakash_jain@apple.com
  • 4 edits in trunk/Tools/CISupport/build-webkit-org

[build.webkit.org] Allow users to specify custom revision to checkout
https://bugs.webkit.org/show_bug.cgi?id=240307

Reviewed by Ryan Haddad.

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

(Factory.init):

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

(loadBuilderConfig):

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

(CheckOutSpecificRevision):
(CheckOutSpecificRevision.init):
(CheckOutSpecificRevision.doStepIf):
(CheckOutSpecificRevision.hideStepIf):
(CheckOutSpecificRevision.start):
(ShowIdentifier.start):
(ShowIdentifier.evaluateCommand):

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

May 10, 2022:

9:27 PM Changeset in webkit [294050] by Ross Kirsling
  • 4 edits in trunk

[Temporal] Years 0-999 should be canonically represented with 4 digits, not 6
https://bugs.webkit.org/show_bug.cgi?id=240294

Reviewed by Yusuke Suzuki.

This patch implements the spec change of https://github.com/tc39/proposal-temporal/issues/2082:
The range for 4-digit years in ISO8601 date strings should be 0-9999, not 1000-9999.

  • test262/expectations.yaml:

Mark four test cases as passing.

  • runtime/TemporalInstant.cpp:

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

6:07 PM Changeset in webkit [294049] by Alan Coon
  • 3 edits
    3 adds in branches/safari-7613.3.1.1-branch

Cherry-pick r293736. rdar://problem/80891555

StorageMap::removeItem may fail to remove item from map
https://bugs.webkit.org/show_bug.cgi?id=239982
rdar://80891555

Reviewed by Chris Dumez.

Source/WebCore:

We may have updated m_impl, but we don't update iterator for removal. In this case, item is not removed from
map, but currentSize is updated. The mismatch between currentSize and actual size of the map may lead to
underflow and overflow in currentSize when item is added or removed later.

Test: storage/domstorage/sessionstorage/window-open-remove-item.html

  • storage/StorageMap.cpp: (WebCore::StorageMap::removeItem):

LayoutTests:

  • storage/domstorage/sessionstorage/resources/window-open-remove-item.html: Added.
  • storage/domstorage/sessionstorage/window-open-remove-item-expected.txt: Added.
  • storage/domstorage/sessionstorage/window-open-remove-item.html: Added.

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

6:07 PM Changeset in webkit [294048] by Alan Coon
  • 3 edits in branches/safari-7613.3.1.1-branch/Source/ThirdParty/libwebrtc

Cherry-pick r293643. rdar://problem/92445366

[Mac] VTVideoDecoderClass object pointers can become unaligned on x86
https://bugs.webkit.org/show_bug.cgi?id=239916
<rdar://92445366>

Reviewed by Eric Carlson.

Both the base class and the derived class must be 4-byte aligned on x86, or there
is a chance that a pointer member of that struct will cross a page boundary, and
dereferencing that pointer will fail.

  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:
  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

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

6:00 PM Changeset in webkit [294047] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

Upstream TypedArray.prototype.fill speedup from bun
https://bugs.webkit.org/show_bug.cgi?id=239891

Reviewed by Saam Barati.

This patch imports bun's improvement in TypedArray#fill[1], bun is MIT licensed.
We use memset and its variant to fill TypedArray if possible.
Microbenchmarks show 5x improvement.

ToT Patched

typed-array-fill 1092.0348+-6.2496 221.3430+-9.1261 definitely 4.9337x faster

[1]: https://github.com/Jarred-Sumner/WebKit/commit/b06577c1f1de19d2ef3d4a87d14ea41909ddf5fc

  • JSTests/microbenchmarks/typed-array-fill.js: Added.
  • JSTests/stress/typed-array-fill-complicated.js: Added.

(shouldBe):
(throw.new.Error):

  • Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::speciesConstruct):
(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncFill):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewProtoFuncReverse):
(JSC::genericTypedArrayViewPrivateFuncSort):
(JSC::genericTypedArrayViewProtoFuncSlice):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

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

5:53 PM Changeset in webkit [294046] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.13.1

Tag WebKit-7614.1.13.1.

5:42 PM Changeset in webkit [294045] by Alan Coon
  • 9 edits in branches/safari-7614.1.13-branch/Source

Versioning.

WebKit-7614.1.13.1

5:35 PM Changeset in webkit [294044] by Alan Coon
  • 9 edits in branches/safari-614.1.11-branch/Source

Versioning.

WebKit-7614.1.11.9

5:26 PM Changeset in webkit [294043] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.1-branch/Source

Versioning.

WebKit-7613.3.1.1.1

5:09 PM Changeset in webkit [294042] by Alan Coon
  • 12 edits
    1 add in branches/safari-7613.3.1.0-branch/Source

Cherry-pick r293804. rdar://92717726

Crash under WebCore: WebCore::CachedResourceClientWalker<WebCore::CachedImageClient>::next()
https://bugs.webkit.org/show_bug.cgi?id=240072
<rdar://92717726>

Reviewed by Geoff Garen.

Have CachedResource and CachedResourceClientWalker hold the clients via WeakPtrs instead of
raw pointers and null check them before usage. This is a lot safer.

  • Source/WTF/WTF.xcodeproj/project.pbxproj:
  • Source/WTF/wtf/WeakHashCountedSet.h: Added.

(WTF::WeakHashCountedSet::begin):
(WTF::WeakHashCountedSet::end):
(WTF::WeakHashCountedSet::begin const):
(WTF::WeakHashCountedSet::end const):
(WTF::WeakHashCountedSet::find):
(WTF::WeakHashCountedSet::find const):
(WTF::WeakHashCountedSet::contains const):
(WTF::WeakHashCountedSet::computeSize const):
(WTF::WeakHashCountedSet::clear):
(WTF::Counter>::add):
(WTF::Counter>::remove):

  • Source/WebCore/html/HTMLLinkElement.h:
  • Source/WebCore/loader/DocumentThreadableLoader.h:
  • Source/WebCore/loader/ImageLoader.h:
  • Source/WebCore/loader/LinkLoader.h:
  • Source/WebCore/loader/cache/CachedImage.cpp:

(WebCore::CachedImage::addClientWaitingForAsyncDecoding):

  • Source/WebCore/loader/cache/CachedResource.cpp:

(WebCore::CachedResource::didAddClient):
(WebCore::CachedResource::addClientToSet):
(WebCore::CachedResource::removeClient):
(WebCore::CachedResource::switchClientsToRevalidatedResource):

  • Source/WebCore/loader/cache/CachedResource.h:

(WebCore::CachedResource::hasClients const):
(WebCore::CachedResource::hasClient):
(WebCore::CachedResource::numberOfClients const):

  • Source/WebCore/loader/cache/CachedResourceClient.h:
  • Source/WebCore/loader/cache/CachedResourceClientWalker.h:

(WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
(WebCore::CachedResourceClientWalker::next):

  • Source/WebCore/rendering/RenderObject.h:

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

5:09 PM Changeset in webkit [294041] by Alan Coon
  • 3 edits
    3 adds in branches/safari-7613.3.1.0-branch

Cherry-pick r293736. rdar://80891555

StorageMap::removeItem may fail to remove item from map
https://bugs.webkit.org/show_bug.cgi?id=239982
rdar://80891555

Reviewed by Chris Dumez.

Source/WebCore:

We may have updated m_impl, but we don't update iterator for removal. In this case, item is not removed from
map, but currentSize is updated. The mismatch between currentSize and actual size of the map may lead to
underflow and overflow in currentSize when item is added or removed later.

Test: storage/domstorage/sessionstorage/window-open-remove-item.html

  • storage/StorageMap.cpp:

(WebCore::StorageMap::removeItem):

LayoutTests:

  • storage/domstorage/sessionstorage/resources/window-open-remove-item.html: Added.
  • storage/domstorage/sessionstorage/window-open-remove-item-expected.txt: Added.
  • storage/domstorage/sessionstorage/window-open-remove-item.html: Added.

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

4:56 PM Changeset in webkit [294040] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.13

Tag WebKit-7614.1.13.

4:45 PM Changeset in webkit [294039] by Alan Coon
  • 9 edits in branches/safari-7613.3.1.0-branch/Source

Versioning.

WebKit-7613.3.1.0.1

4:31 PM Changeset in webkit [294038] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Fail quickly for invalid bugzilla credentials
https://bugs.webkit.org/show_bug.cgi?id=240182
<rdar://problem/92879251>

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/branch.py:

(Branch.main): Check credentials before creating an issue, exit
program if issue creation fails.

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

4:26 PM Changeset in webkit [294037] by Alan Coon
  • 1 delete in branches/safari-613.3.1.0-branch

Delete branch.

4:26 PM Changeset in webkit [294036] by Alan Coon
  • 1 delete in branches/safari-613.3.1.1-branch

Delete branch.

4:26 PM Changeset in webkit [294035] by Alan Coon
  • 1 copy in branches/safari-7613.3.1.1-branch

New branch.

4:25 PM Changeset in webkit [294034] by Alan Coon
  • 1 copy in branches/safari-7613.3.1.0-branch

New branch.

4:13 PM Changeset in webkit [294033] by Alan Coon
  • 1 copy in branches/safari-613.3.1.1-branch

New branch.

4:13 PM Changeset in webkit [294032] by Alan Coon
  • 1 copy in branches/safari-613.3.1.0-branch

New branch.

4:10 PM Changeset in webkit [294031] by Alan Coon
  • 1 delete in branches/safari-613.3.1.1-branch

Delete branch.

4:10 PM Changeset in webkit [294030] by Alan Coon
  • 1 delete in branches/safari-613.3.1.0-branch

Delete branch.

3:53 PM Changeset in webkit [294029] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebase inspector/timeline/line-column.html for Mac
https://bugs.webkit.org/show_bug.cgi?id=240291

Unreviewed test gardening.

  • LayoutTests/inspector/timeline/line-column-expected.txt:

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

3:30 PM Changeset in webkit [294028] by Alan Coon
  • 1 copy in branches/safari-613.3.1.1-branch

New branch.

3:30 PM Changeset in webkit [294027] by Alan Coon
  • 1 copy in branches/safari-613.3.1.0-branch

New branch.

3:30 PM Changeset in webkit [294026] by Alan Coon
  • 1 delete in branches/safari-613.3.1.1-branch

Delete branch.

3:29 PM Changeset in webkit [294025] by Alan Coon
  • 1 delete in branches/safari-613.3.1.0-branch

Delete branch.

3:28 PM Changeset in webkit [294024] by Alan Coon
  • 1 copy in branches/safari-613.3.1.1-branch

New branch.

3:28 PM Changeset in webkit [294023] by Alan Coon
  • 1 copy in branches/safari-613.3.1.0-branch

New branch.

3:28 PM Changeset in webkit [294022] by Alan Coon
  • 1 delete in branches/safari-613.3.0-branch

Delete branch.

3:28 PM Changeset in webkit [294021] by Alan Coon
  • 1 delete in branches/safari-613.3.1-branch

Delete branch.

3:26 PM Changeset in webkit [294020] by Alan Coon
  • 1 copy in branches/safari-613.3.1-branch

New branch.

3:26 PM Changeset in webkit [294019] by Alan Coon
  • 1 copy in branches/safari-613.3.0-branch

New branch.

3:19 PM Changeset in webkit [294018] by Chris Dumez
  • 56 edits
    1 add
    25 deletes in trunk

Unreviewed, revert r288307 as it caused correctness issues
https://bugs.webkit.org/show_bug.cgi?id=240280
<rdar://92641509>

Revert r288307 again since it introduced some bad regressions, identified
on the radar.

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

2:55 PM Changeset in webkit [294017] by mark.lam@apple.com
  • 24 edits in trunk/Source/JavaScriptCore

Add optional Integrity checks at JSC API boundaries.
https://bugs.webkit.org/show_bug.cgi?id=240264

Reviewed by Yusuke Suzuki.

  1. Defined ENABLE_EXTRA_INTEGRITY_CHECKS in Integrity.h. JSC developers can enable this for their local build if they want to enable more prolific Integrity audits. This is disabled by default.

This feature is currently only supported for USE(JSVALUE64) targets.

The following changes only take effect if ENABLE(EXTRA_INTEGRITY_CHECKS) is enabled.
Otherwise, these are no-ops.

  1. Added Integrity audits to all toJS and toRef conversion functions in APICast.h. This will help us detect if bad values are passed across the API boundary.
  1. Added some Integrity audits in JSValue.mm where the APICast ones were insufficient.

The following changes are in effect even when ENABLE(EXTRA_INTEGRITY_CHECKS) is
disabled. Some of these were made to support ENABLE(EXTRA_INTEGRITY_CHECKS), and
some are just clean up in related code that I had to touch along the way.

  1. Moved isSanePointer() to Integrity.h so that it can be used in more places.
  1. Changed VM registration with the VMInspector so that it's registered earlier and removed later. Integrity audits may need to audit VM pointers while the VM is being constructed and destructed.
  1. Added VM::m_isInService to track when the VM is fully constructed or about to be destructed since the VM is now registered with the VMInspector differently (see (4) above). Applied this check in places that need it.
  1. Fixed VMInspector::isValidExecutableMemory() to check the ExecutableAllocator directly without iterating VMs (which is completely unnecessary).
  1. Fixed VMInspector::isValidExecutableMemory() and VMInspector::codeBlockForMachinePC() to use AdoptLock. This fixes a race condition where the lock can be contended after ensureIsSafeToLock() succeeds.
  1. Added VMInspector::isValidVM() to check if a VM pointer is registered or not. VMInspector caches the most recently added or found VM so that isValidVM() can just check the cache for its fast path.
  1. Moved the implementation of VMInspector::verifyCell() to Integrity::analyzeCell()

and add more checks to it. VMInspector::verifyCell() now calls Integrity::verifyCell()
which uses Integrity::analyzeCell() to do the real cell analysis.

  1. Also strengten Integrity::auditStructureID() so that it will check if a

Structure's memory has been released. This change is enabled on Debug builds
by default as well as when ENABLE(EXTRA_INTEGRITY_CHECKS). It is disabled
on Release builds.

  • API/APICast.h:

(toJS):
(toJSForGC):
(uncheckedToJS):
(toRef):
(toGlobalRef):

  • API/JSContext.mm:
  • API/JSContextRef.cpp:
  • API/JSScript.mm:
  • API/JSValue.mm:

(ObjcContainerConvertor::convert):
(objectToValueWithoutCopy):
(objectToValue):

  • API/JSVirtualMachine.mm:
  • API/JSWeakPrivate.cpp:
  • API/glib/JSCContext.cpp:
  • API/glib/JSCWrapperMap.cpp:
  • API/tests/JSObjectGetProxyTargetTest.cpp:
  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromCell):
(JSC::isSanePointer): Deleted.

  • heap/HeapFinalizerCallback.cpp:
  • heap/WeakSet.h:
  • runtime/Structure.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h:

(JSC::VM::isInService const):

  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::checkIfRecorded):

  • tools/Integrity.cpp:

(JSC::Integrity::Random::reloadAndCheckShouldAuditSlow):
(JSC::Integrity::auditCellMinimallySlow):
(JSC::Integrity::doAudit):
(JSC::Integrity::Analyzer::analyzeVM):
(JSC::Integrity::Analyzer::analyzeCell):
(JSC::Integrity::doAuditSlow):
(JSC::Integrity::verifyCell):
(): Deleted.
(JSC::Integrity::auditCellFully): Deleted.

  • tools/Integrity.h:

(JSC::isSanePointer):
(JSC::Integrity::auditCell):
(JSC::Integrity::audit):

  • tools/IntegrityInlines.h:

(JSC::Integrity::auditCell):
(JSC::Integrity::auditCellFully):
(JSC::Integrity::auditStructureID):
(JSC::Integrity::doAudit):

  • tools/VMInspector.cpp:

(JSC::VMInspector::add):
(JSC::VMInspector::remove):
(JSC::VMInspector::isValidVMSlow):
(JSC::VMInspector::dumpVMs):
(JSC::VMInspector::isValidExecutableMemory):
(JSC::VMInspector::codeBlockForMachinePC):
(JSC::ensureIsSafeToLock): Deleted.

  • tools/VMInspector.h:

(JSC::VMInspector::isValidVM):
(): Deleted.
(JSC::VMInspector::unusedVerifier): Deleted.

  • tools/VMInspectorInlines.h:

(JSC::VMInspector::verifyCell):
(JSC::VMInspector::verifyCellSize): Deleted.

2:15 PM Changeset in webkit [294016] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Remove the unneeded StylePropertiesBase after Bug 240244
https://bugs.webkit.org/show_bug.cgi?id=240282

Reviewed by Antti Koivisto.

Now that we have removed the abandoned CSSDeferredParser, we no longer need the
StylePropertiesBase class. This patch removes this layer to simplify the code.

  • css/StyleProperties.h:

(WebCore::StyleProperties::type const):
(WebCore::StyleProperties::cssParserMode const):
(WebCore::StyleProperties::StyleProperties):
(WebCore::StyleProperties::deref const):
(isType):
(WebCore::StylePropertiesBase::type const): Deleted.
(WebCore::StylePropertiesBase::cssParserMode const): Deleted.
(WebCore::StylePropertiesBase::StylePropertiesBase): Deleted.
(WebCore::StylePropertiesBase::deref const): Deleted.

  • css/StyleRule.cpp:

(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::create):
(WebCore::StyleRule::properties const): Deleted.

  • css/StyleRule.h:
1:52 PM Changeset in webkit [294015] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

[GPU Process] [Filters] FilterImages can be leaked
https://bugs.webkit.org/show_bug.cgi?id=240274

Reviewed by Simon Fraser.

When a FilterEffect is dynamically updated we clear its result FilterImage.
We also need to clear all the result FilterImages of all the FilterEffects
recursively which takes this changing FilterEffect as an input.

Clearing the result FilterImage of the changing FilterEffect happens by
removing the entry from FilterResults::m_results.

Clearing the FilterImages of the dependent FilterEffects happens by using
FilterResults::m_resultReferences.

What is missing is removing the FilterImage entry itself from
FilterResults::m_resultReferences.

  • platform/graphics/filters/FilterResults.h:

(WebCore::FilterResults::clearEffectResult):

1:22 PM Changeset in webkit [294014] by Jonathan Bedard
  • 2 edits in trunk/Tools

Patch is merged via merge-queue, but bugzilla is not closed
https://bugs.webkit.org/show_bug.cgi?id=240155
<rdar://problem/93045114>

Reviewed by Aakash Jain.

  • CISupport/ews-build/steps.py:

(UpdatePullRequest): Allow subsequent steps to run if we fail to update a PR.

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

12:58 PM Changeset in webkit [294013] by Jonathan Bedard
  • 4 edits in trunk/Websites/webkit.org

[webkit.org] Replace svn.webkit.org with GitHub
https://bugs.webkit.org/show_bug.cgi?id=240093
<rdar://problem/92760014>

Reviewed by Ryan Haddad, Aakash Jain and Dewei Zhu.

  • wp-content/themes/webkit/css-status.php: Replace svn.webkit.org with raw.githubusercontent.com.
  • wp-content/themes/webkit/status.php: Ditto.
  • wp-content/themes/webkit/team.php: Ditto.

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

11:42 AM Changeset in webkit [294012] by ntim@apple.com
  • 4 edits
    3 adds in trunk

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

Reviewed by Antti Koivisto.

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

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

LayoutTests/imported/w3c:

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

Source/WebCore:

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

  • style/StyleAdjuster.cpp:

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

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-pseudo-element-hittest-expected.txt: Added.
11:04 AM Changeset in webkit [294011] by Jonathan Bedard
  • 7 edits
    1 add in trunk/Tools

[GitHub] git commit generates a nicely formatted commit log but is missing bug information
https://bugs.webkit.org/show_bug.cgi?id=240254
<rdar://93033766 >

Reviewed by Chris Dumez.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py: Add "commit" program.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:

(Branch.main): Invoke Commit.bug_urls.

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

(FilteredCommand.parser): Typo fix in log message.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/commit.py: Added.

(Commit.parser):
(Commit.bug_urls): Extract a list of bug URLs from an issue.
(Commit.main): Extract commit message information from issue.

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

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

10:28 AM Changeset in webkit [294010] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Optimize Replayer::applyItem() slightly
https://bugs.webkit.org/show_bug.cgi?id=240258

Reviewed by Wenson Hsieh.

Convert a series of if statements into a switch.

De-templatize applyFontItem<> since DrawGlyphs is the only instantiation, and the
name was confusing.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applyDrawGlyphs):
(WebCore::DisplayList::Replayer::applyItem):
(WebCore::DisplayList::applyFontItem): Deleted.

10:00 AM Changeset in webkit [294009] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.12.2

Tag WebKit-7614.1.12.2.

9:53 AM Changeset in webkit [294008] by Alan Coon
  • 9 edits in branches/safari-7614.1.12-branch/Source

Versioning.

WebKit-7614.1.12.2

9:48 AM Changeset in webkit [294007] by Brent Fulgham
  • 29 edits
    3 deletes in trunk

Remove abandoned CSSDeferredParser implementation and feature flag
https://bugs.webkit.org/show_bug.cgi?id=240244

Reviewed by Antti Koivisto.

This patch rolls out the abandoned CSSDeferredParser implementation added in Bug 165743.

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSKeyframesRule.cpp:

(WebCore::StyleRuleKeyframes::keyframes const):
(WebCore::StyleRuleKeyframes::wrapperAppendKeyframe):
(WebCore::StyleRuleKeyframes::wrapperRemoveKeyframe):
(WebCore::StyleRuleKeyframes::findKeyframeIndex const):
(WebCore::StyleRuleKeyframes::parseDeferredRulesIfNeeded const): Deleted.

  • css/CSSKeyframesRule.h:
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::MutableStyleProperties):
(WebCore::StyleProperties::PropertyReference::cssText const):
(WebCore::DeferredStyleProperties::create): Deleted.
(WebCore::DeferredStyleProperties::DeferredStyleProperties): Deleted.
(WebCore::DeferredStyleProperties::parseDeferredProperties): Deleted.

  • css/StyleProperties.h:

(WebCore::StylePropertiesBase::deref const):
(isType):

  • css/StyleRule.cpp:

(WebCore::StyleRule::properties const):
(WebCore::StyleRuleGroup::childRules const):
(WebCore::StyleRuleGroup::wrapperInsertRule):
(WebCore::StyleRuleGroup::wrapperRemoveRule):
(WebCore::DeferredStyleGroupRuleList::DeferredStyleGroupRuleList): Deleted.
(WebCore::DeferredStyleGroupRuleList::parseDeferredRules): Deleted.
(WebCore::DeferredStyleGroupRuleList::parseDeferredKeyframes): Deleted.
(WebCore::StyleRuleGroup::parseDeferredRulesIfNeeded const): Deleted.

  • css/StyleRule.h:

(WebCore::StyleRule::propertiesWithoutDeferredParsing const): Deleted.
(WebCore::StyleRuleGroup::childRulesWithoutDeferredParsing const): Deleted.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parseAuthorStyleSheet):
(WebCore::StyleSheetContents::parseString):
(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseSubresources const):

  • css/parser/CSSDeferredParser.cpp: Removed.
  • css/parser/CSSDeferredParser.h: Removed.
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSheet):

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

(WebCore::operator==):
(WebCore::add):

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

(WebCore::CSSParserImpl::CSSParserImpl):
(WebCore::CSSParserImpl::parseStyleSheet):
(WebCore::CSSParserImpl::consumeMediaRule):
(WebCore::CSSParserImpl::consumeSupportsRule):
(WebCore::CSSParserImpl::consumeKeyframesRule):
(WebCore::CSSParserImpl::consumeLayerRule):
(WebCore::CSSParserImpl::consumeContainerRule):
(WebCore::CSSParserImpl::consumeStyleRule):
(WebCore::CSSParserImpl::createDeferredStyleProperties): Deleted.
(WebCore::CSSParserImpl::parseDeferredDeclaration): Deleted.
(WebCore::CSSParserImpl::parseDeferredRuleList): Deleted.
(WebCore::CSSParserImpl::parseDeferredKeyframeList): Deleted.
(WebCore::CSSParserImpl::adoptTokenizerEscapedStrings): Deleted.

  • css/parser/CSSParserImpl.h:

(WebCore::CSSParserImpl::tokenizer const):
(WebCore::CSSParserImpl::deferredParser const): Deleted.

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):

  • style/StyleInvalidator.cpp:

(WebCore::Style::shouldDirtyAllStyle):

  • testing/Internals.cpp:

(WebCore::deferredStyleRulesCountForList): Deleted.
(WebCore::Internals::deferredStyleRulesCount): Deleted.
(WebCore::deferredGroupRulesCountForList): Deleted.
(WebCore::Internals::deferredGroupRulesCount): Deleted.
(WebCore::deferredKeyframesRulesCountForList): Deleted.
(WebCore::Internals::deferredKeyframesRulesCount): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetDeferredCSSParserEnabled): Deleted.
(WKPreferencesGetDeferredCSSParserEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

LayoutTests:

  • fast/css/deferred-parsing/dynamic-external-style-expected.txt: Removed.
  • fast/css/deferred-parsing/dynamic-external-style.html: Removed.
  • fast/css/deferred-parsing/dynamic-style-in-document-expected.txt: Removed.
  • fast/css/deferred-parsing/dynamic-style-in-document.html: Removed.
  • fast/css/deferred-parsing/hover-test-expected.txt: Removed.
  • fast/css/deferred-parsing/hover-test.html: Removed.
  • fast/css/deferred-parsing/keyframes-rule-expected.txt: Removed.
  • fast/css/deferred-parsing/keyframes-rule.html: Removed.
  • fast/css/deferred-parsing/media-print-expected.txt: Removed.
  • fast/css/deferred-parsing/media-print.html: Removed.
  • fast/css/deferred-parsing/nth-of-type-expected.txt: Removed.
  • fast/css/deferred-parsing/nth-of-type.html: Removed.
  • fast/css/deferred-parsing/resources/basic-sheet.css: Removed.
  • fast/css/deferred-parsing/simple-external-style-expected.txt: Removed.
  • fast/css/deferred-parsing/simple-external-style.html: Removed.
  • fast/css/deferred-parsing/simple-style-in-document-expected.txt: Removed.
  • fast/css/deferred-parsing/simple-style-in-document.html: Removed.
  • fast/css/deferred-parsing/supports-rule-expected.txt: Removed.
  • fast/css/deferred-parsing/supports-rule.html: Removed.
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
3:13 AM Changeset in webkit [294006] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Create a stopped CacheStorageConnection for workers in case of detached documents
https://bugs.webkit.org/show_bug.cgi?id=240224
<rdar://problem/92853663>

Reviewed by Chris Dumez.

A worker might not always have a main thread connection as its document may be detached.
In that case, we now create a StoppedCacheStorageConnection that will always return Error::Stopped to any callback.

Covered by existing tests.

  • Modules/cache/WorkerCacheStorageConnection.cpp:

(WebCore::StoppedCacheStorageConnection::create):
(WebCore::createMainThreadConnection):
(WebCore::WorkerCacheStorageConnection::WorkerCacheStorageConnection):
(WebCore::WorkerCacheStorageConnection::~WorkerCacheStorageConnection):
(WebCore::WorkerCacheStorageConnection::create): Deleted.

  • Modules/cache/WorkerCacheStorageConnection.h:
1:52 AM Changeset in webkit [294005] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

RemoteVideoFrameObjectHeapProxyProcessor binary semaphore usage might trigger deadlocks in case of GPUProcess crash
https://bugs.webkit.org/show_bug.cgi?id=240161
<rdar://problem/92849827>

Reviewed by Eric Carlson.

In case of GPUProcess crash when waiting for a converted buffer, we would never call the semaphore signal method.
This would hang the main thread since this code path is main thread only.
To prevent this, we use synchronous IPC to send the buffer conversion order.
Once it is done, we use the binary semaphore to synchronize the main thread with the work queue on which we are receiving the converted buffer.
It is ok to use a binary semaphore at that point since we know the web process has or is processing the converted buffer IPC messages.
We also make sure to recreate the SharedVideoFrameWriter in case it was disabled due the GPUProcess connection being closed.

Covered by existing tests, in particular LayoutTests/webrtc/captureCanvas-webrtc.html.

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::convertBuffer):

  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in:
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:

(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::getNativeImage):

  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.h:
  • WebProcess/GPU/webrtc/SharedVideoFrame.h:

(WebKit::SharedVideoFrameWriter::isDisabled const):

12:45 AM Changeset in webkit [294004] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

com.apple.WebKit.GPU leaks CMBlockBuffer
https://bugs.webkit.org/show_bug.cgi?id=240267
rdar://92655222

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

  • platform/graphics/cocoa/CMUtilities.mm:

(WebCore::toCMSampleBuffer): adopt newly created CMBlockBuffer rather than increase the refcount.

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

# com.apple.WebKit.GPU leaks CMBlockBuffer
# https://bugs.webkit.org/show_bug.cgi?id=240267
# rdar://92655222
#
# Reviewed by Jer Noble.
#
# * platform/graphics/cocoa/CMUtilities.mm:
# (WebCore::toCMSampleBuffer): adopt newly created CMBlockBuffer rather than increase the refcount.

# On branch bz/240267
# Your branch is ahead of 'origin/main' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git restore --staged <file>..." to unstage)
# modified: Source/WebCore/ChangeLog
#

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

# On branch bz/240267
# Your branch is ahead of 'origin/main' by 1 commit.
# (use "git push" to publish your local commits)
#
# nothing to commit, working tree clean

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

May 9, 2022:

11:53 PM Changeset in webkit [294003] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Check if node is connected after calling mergeWithNeighboringLists
https://bugs.webkit.org/show_bug.cgi?id=240234

Patch by Rob Buis <rbuis@igalia.com> on 2022-05-09
Reviewed by Wenson Hsieh.

Check if node is connected after calling mergeWithNeighboringLists since
DOM mutations can change the DOM tree.

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApplyForSingleParagraph):

11:52 PM Changeset in webkit [294002] by Oriol Brufau
  • 19 edits
    2 adds in trunk

[cssom] Don't index perspective/transform-origin-* in computed styles
https://bugs.webkit.org/show_bug.cgi?id=239670

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update some test expectations.

Add serialize-all-longhands.html, it still fails due to
https://webkit.org/b/239965 and https://webkit.org/b/239989.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • web-platform-tests/css/cssom/serialize-all-longhands-expected.txt: Added.
  • web-platform-tests/css/cssom/serialize-all-longhands.html: Added.

Source/WebCore:

'perspective-origin' and 'transform-origin' are shorthands in WebKit.
The longhands are 'perspective-origin-x/y' and 'transform-origin-x/y/z'.
But these aren't standard properties, so they serialize to empty string
in computed styles. However, they were still indexed.

This patch stops indexing these longhands, so they won't appear when
iterating a computed style. Also, the shorthands will now be indexed.

Test: fast/css/getComputedStyle/computed-style.html

fast/css/getComputedStyle/computed-style-without-renderer.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html
imported/w3c/web-platform-tests/css/cssom/serialize-all-longhands.html
svg/css/getComputedStyle-basic.xhtml

  • css/CSSProperties.json:

Add "computable" flag.

  • css/makeprop.pl:

(skippedFromComputedStyle):
(addProperty):
Let "computable" flag override default logic for indexing or not in
computed styles.

Tools:

Add checker for new "computable" flag.

  • Scripts/webkitpy/style/checkers/jsonchecker.py:

(JSONCSSPropertiesChecker.check_codegen_properties):

LayoutTests:

Update test expectations.

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
11:48 PM Changeset in webkit [294001] by Nikos Mouchtaris
  • 13 edits in trunk

Support ray() shape in offset-path
https://bugs.webkit.org/show_bug.cgi?id=233344

Reviewed by Simon Fraser.

Source/WebCore:

Add support for rendering ray path. Involves getting containing block and offset
of the element from the containing block. Using the size of the containing block
and offset, calculate the length of the ray and create a Line path using the length
and angle. Calculating closest/farthest-side and closest/farthest-corner are simple
but calculating side requires some explanation. First, we get the two possible sides of
the containing block the ray could be intersecting with, based on the angle. To calculate
which side is being intersected, if tan(theta) * top/bottom is outside of the containing
block, this means that the ray is intersecting with the other side. Finally, we calculate
the acute angle based on which side we intersected with. Using the length and angle, we
calculate the length of the hypotenuse, which corresponds with the length of the start point
of the ray to its intersection with a side of the containing block. Test 7 is still failing
due to getting incorrect width of containing block (doesn't happen when animating the path
for some reason). Will implement contain in another patch.

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/PathOperation.cpp:

(WebCore::toPositiveAngle):
(WebCore::RayPathOperation::getLengthForPath const):
(WebCore::RayPathOperation::pathForReferenceRect const):

  • rendering/PathOperation.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setReferenceBoxForPathOperations):
(WebCore::RenderLayer::updateTransform):

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

(WebCore::getPathFromPathOperation):

LayoutTests:

10:20 PM Changeset in webkit [294000] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, address Darin's feedback on r250361.

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toIntegerWithoutRounding const):
Normalize away -0 by unconditionally adding positive 0 (instead of making a separate zero check).

10:08 PM Changeset in webkit [293999] by rniwa@webkit.org
  • 2 edits in trunk

Introduction.md: Explain active DOM objects
https://bugs.webkit.org/show_bug.cgi?id=240212

Reviewed by Chris Dumez.

Added an elementary description of active DOM objects to Introduction.md.

  • Introduction.md:
9:41 PM Changeset in webkit [293998] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Do not use the cached renderer's parent in handleFragmentedFlowStateChange lambda
https://bugs.webkit.org/show_bug.cgi?id=240266

Reviewed by Simon Fraser.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

8:49 PM Changeset in webkit [293997] by Ross Kirsling
  • 9 edits in trunk

Temporal round and total methods should accept string param
https://bugs.webkit.org/show_bug.cgi?id=240249

Reviewed by Yusuke Suzuki.

This patch implements https://github.com/tc39/proposal-temporal/pull/1875,
which allows certain required string options to be passed directly instead of as part of an options object.

Namely:

  • {Duration, Instant, PlainTime}::round now accept smallestUnit as a string param
  • Duration::total now accepts unit as a string param
  • stress/temporal-duration.js:
  • stress/temporal-instant.js:
  • stress/temporal-plaintime.js:

Add test cases.

  • test262/expectations.yaml:

Mark 24 test cases passing.
(This number should be 26, but two still fail as the harness expects PlainDateTime and ZonedDateTime to exist.)

  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::round const):
(JSC::TemporalDuration::total const):

  • runtime/TemporalInstant.cpp:
  • runtime/TemporalPlainTime.cpp:

(JSC::TemporalPlainTime::round const):

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

7:52 PM Changeset in webkit [293996] by Ross Kirsling
  • 6 edits in trunk

Temporal and Date must reject expanded year -000000
https://bugs.webkit.org/show_bug.cgi?id=240263

Reviewed by Yusuke Suzuki.

As of the following two PRs, -000000 is officially disallowed as a representation of the year zero in ISO date strings.
https://github.com/tc39/ecma262/pull/2550
https://github.com/tc39/proposal-temporal/pull/1992

This patch implements the change for Temporal and Date alike.

  • test262/expectations.yaml:

Mark 24 test cases as passing.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::parseDate):

  • wtf/DateMath.cpp:

(WTF::parseES5DatePortion):

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

5:16 PM Changeset in webkit [293995] by Alan Coon
  • 7 edits in branches/safari-613-branch

Cherry-pick r292888. rdar://problem/80059355

[iOS] [WK2] Managed pasteboard should function for all managed domains
https://bugs.webkit.org/show_bug.cgi?id=239319
rdar://80059355

Reviewed by Kate Cheney.

Source/WebCore/PAL:

Add an SPI method on MCProfileConnection.

  • pal/spi/ios/ManagedConfigurationSPI.h:

Source/WebKit:

Unless a WebKit client has specified a data owner for the web view that is not _UIDataOwnerUndefined, fall back
to _UIDataOwnerEnterprise when the current domain of the WKWebView is managed (that is, `-[MCProfileConnection
isURLManaged:]` returns YES for the web view's current URL). This allows managed pasteboard to work for all
WebKit clients, if the current URL is managed.

Test: UIPasteboardTests.PerformAsDataOwnerWithManagedURL

  • Platform/spi/ios/UIKitSPI.h:

Drive-by fix: move the staged declarations of -_dataOwnerForCopy and -_dataOwnerForPaste out of the IPI
section, and into the non-internal SDK section.

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

Tools:

Add a new API test to verify that we fall back to consulting -[MCProfileConnection isURLManaged:] when
determining the data owner for copy and paste, unless a data owner is already explicitly set on a view in the
responder chain (specifically, the WKWebView).

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: (+[TestUIPasteboard _performAsDataOwner:block:]): (-[TestMCProfileConnection isURLManaged:]): (TestWebKitAPI::TEST):

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

5:06 PM Changeset in webkit [293994] by Wenson Hsieh
  • 13 edits in trunk/Source

[iOS] Adjust some viewport behaviors when multitasking mode is enabled
https://bugs.webkit.org/show_bug.cgi?id=240151
rdar://87157773

Reviewed by Tim Horton.

Add a new ViewportConfiguration flag to prefer horizontal scrolling over shrinking to fit when the view layout
size falls under the current "default desktop webpage" of 980pt. See WebKit changes for more details.

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::initialScaleFromSize const):
(WebCore::ViewportConfiguration::webpageParameters):
(WebCore::ViewportConfiguration::imageDocumentParameters):

Pull the magic value representing the "assumed width of most desktop webpages" (980) out into a named constant,
defaultDesktopViewportWidth, so that we can consult it when computing the initial scale.

(WebCore::ViewportConfiguration::description const):

  • page/ViewportConfiguration.h:

(WebCore::ViewportConfiguration::setPrefersHorizontalScrollingBelowDesktopViewportWidths):
[iOS] Adjust some viewport behaviors when multitasking mode is enabled
https://bugs.webkit.org/show_bug.cgi?id=240151
rdar://87157773

Reviewed by Tim Horton.

Make some adjustments to viewport behaviors when multitasking mode is enabled. See the comments below for more
details. There are no changes in behavior when multitasking mode is disabled; tests for the new behaviors in
multitasking mode will be added in a subsequent patch.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:

Add plumbing to inform the web process when "multitasking mode" state changes; we use this bit in WebPage to
determine whether or not we should use multitasking mode viewport behaviors (see below).

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _registerForNotifications]):
(-[WKWebView didMoveToWindow]):
(-[WKWebView _multitaskingModeDidChange:]):

Send IPC to WebPage in these two places, to keep "multitasking mode" state in sync with the native view.

(-[WKWebView _beginAnimatedResizeWithUpdates:]):

Make a minor adjustment here to ignore oldWebViewWidthInContentViewCoordinates when computing a target scale
to zoom to when performing animated resize, in multitasking mode. This is required to prevent us from zooming
in excessively when the width of the view increases, since we'd otherwise attempt to keep the same content in
the page visible by zooming in (for instance, if an image covers most of the visual viewport at a lower view
width, this min() logic would cause us to zoom in, such that the image would still cover most of the viewport
at a larger width). This behavior is undesirable in multitasking mode.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setIsInMultitaskingMode):

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

(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::setIsInMultitaskingMode):

Add plumbing to set the m_isInMultitaskingMode flag on WebPage, and update the viewport configuration flag to
prefer horizontal scrolling below 980pt.

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

(WebKit::scaleAfterViewportWidthChange):

Refactor a bit of code here (without changing any behaviors), to make it a bit clearer:

  • Rename userHasChangedPageScaleFactor to scaleToFitContent to better describe how this flag affects the

adjusted target scale during dynamic resize.

  • Make the log messages specific to both branches, and also log the adjusted viewport scale instead of the

(currently unused) given scale in the non-scaleToFitContent codepath.

(WebKit::WebPage::dynamicViewportSizeUpdate):

Make another "multitasking mode viewport behavior" adjustment here by maintaining the initial scale (only if the
viewport was already at initial scale) when performing dynamic viewport size updates. By default, we currently
adjust the scale such that the same content is still visible at the new viewport size; however, when allowing
horizontal scrolling, this causes us to zoom in excessively when making the window width larger. Instead, when
multitasking mode is enabled, we should try to preserve initial scale when changing window size, such that only
the horizontal scroll amount changes.

(WebKit::WebPage::usesMultitaskingModeViewportBehaviors const):

Add a helper method to encapsulate whether or not multitasking mode viewport behaviors should be used; this
should be true only when both desktop-class viewport behaviors are active, *and* multitasking mode is also
active.

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

4:50 PM Changeset in webkit [293993] by timothy_horton@apple.com
  • 42 edits in trunk/Source/WebCore

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

Reviewed by Wenson Hsieh.

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

  • dom/EventNames.h:

(WebCore::EventNames::isTouchRelatedEventType const):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::eventTypes const):

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

(WebCore::Node::willRespondToMouseMoveEvents const):
(WebCore::Node::willRespondToTouchEvents const):
(WebCore::Node::willRespondToMouseClickEvents const):
(WebCore::Node::willRespondToMouseWheelEvents const):

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

(WebCore::HTMLAnchorElement::willRespondToMouseClickEvents const):

  • html/HTMLAnchorElement.h:
  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::willRespondToMouseClickEvents const):

  • html/HTMLButtonElement.h:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::willRespondToMouseMoveEvents const):
(WebCore::HTMLElement::willRespondToMouseWheelEvents const):
(WebCore::HTMLElement::willRespondToMouseClickEvents const):

  • html/HTMLElement.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::willRespondToMouseClickEvents const):

  • html/HTMLImageElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::willRespondToMouseClickEvents const):

  • html/HTMLInputElement.h:
  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::willRespondToMouseClickEvents const):

  • html/HTMLLabelElement.h:
  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::willRespondToMouseClickEvents const):

  • html/HTMLPlugInElement.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::willRespondToMouseClickEvents const):

  • html/HTMLSelectElement.h:
  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::willRespondToMouseClickEvents const):

  • html/HTMLSummaryElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::willRespondToMouseClickEvents const):

  • html/HTMLTextAreaElement.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents const):
(WebCore::TextFieldInputType::shouldSpinButtonRespondToWheelEvents const):

  • html/TextFieldInputType.h:
  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::willRespondToMouseMoveEvents const):
(WebCore::SliderThumbElement::willRespondToMouseClickEvents const):

  • html/shadow/SliderThumbElement.h:
  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::willRespondToMouseMoveEvents const):
(WebCore::SpinButtonElement::willRespondToMouseClickEvents const):
(WebCore::SpinButtonElement::shouldRespondToMouseEvents const):

  • html/shadow/SpinButtonElement.h:
  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::willRespondToMouseClickEvents const):
(WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents const):

  • html/shadow/TextControlInnerElements.h:
  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::willRespondToMouseClickEvents const):

  • mathml/MathMLElement.h:
  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::willRespondToMouseClickEvents const):

  • mathml/MathMLSelectElement.h:
  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::willRespondToMouseClickEvents const):

  • svg/SVGAElement.h:
4:03 PM Changeset in webkit [293992] by Jonathan Bedard
  • 4 edits in trunk/Websites/bugs.webkit.org

[bugs.webkit.org] Use GitHub as baseline when diffing
https://bugs.webkit.org/show_bug.cgi?id=240073
<rdar://problem/92741303>

Reviewed by Ryan Haddad and Dewei Zhu.

  • Websites/bugs.webkit.org/code-review.js: Use GitHub instead of

Subversion for tip-of-tree baseline, blame and log links.

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

Use GitHub instead of Subversion for tip-of-tree baseline.

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

4:02 PM Changeset in webkit [293991] by timothy_horton@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Unreviewed build fix; disable -Wimplicit-fallthrough in libwebrtc

  • Configurations/Base.xcconfig:
2:17 PM Changeset in webkit [293990] by pvollan@apple.com
  • 4 edits in trunk/Source

[macOS] HTTP traffic is not filtered in the parental controls filter
https://bugs.webkit.org/show_bug.cgi?id=240180
<rdar://problem/92875540>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Traditionally, we have not filtered HTTP in the parental controls filter on macOS, since other parts of the system
has taken care of this. This has changed in the most recent macOS version, and WebKit should also filter HTTP in
addition to HTTPS.

  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::canHandleResponse):

Source/WTF:

Add HAVE macro which tells us which OS versions are filtering HTTP traffic on behalf of WebKit.

  • wtf/PlatformHave.h:
1:56 PM Changeset in webkit [293989] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Cache the viewport size inside SVGLengthContext
https://bugs.webkit.org/show_bug.cgi?id=240157

Reviewed by Alan Bujtas.

Each call to SVGLengthContext::determineViewport() did an ancestor element walk
looking for a viewport element, and some call sites hit this two or more times
(e.g. for width, then height). So cache m_viewportSize in the class, modernizing
the code to use optionals.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::referenceBoxRect const):

  • rendering/svg/LegacyRenderSVGRoot.cpp:

(WebCore::LegacyRenderSVGRoot::computeFloatVisibleRectInContainer const):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::clipPathReferenceBox):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::valueForLength):
(WebCore::SVGLengthContext::convertValueToUserUnits const):
(WebCore::SVGLengthContext::convertValueFromUserUnitsToPercentage const):
(WebCore::SVGLengthContext::convertValueFromPercentageToUserUnits const):
(WebCore::SVGLengthContext::viewportSize const):
(WebCore::SVGLengthContext::computeViewportSize const):
(WebCore::SVGLengthContext::determineViewport const): Deleted.

  • svg/SVGLengthContext.h:
1:43 PM Changeset in webkit [293988] by Ben Nham
  • 2 edits in trunk/Source/WebKit

Allow log streaming from webpushd
https://bugs.webkit.org/show_bug.cgi?id=240238

Reviewed by Per Arne Vollan.

log stream outputs nothing from webpushd because we blocked the diagnosticd service in its
sandbox. We should allow that and also block awdd since it's unlikely that webpushd needs
access to the wireless diagnostics daemon.

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

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

1:37 PM Changeset in webkit [293987] by ntim@apple.com
  • 16 edits
    2 adds in trunk

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

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Add and extend tests for :modal pseudo-class.

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

Source/WebCore:

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

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

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesModalPseudoClass):
(WebCore::matchesModalDialogPseudoClass): Deleted.

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • css/dialog.css:

(dialog:modal):
(dialog:-internal-modal-dialog): Deleted.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::showModal):
(WebCore::HTMLDialogElement::close):
(WebCore::HTMLDialogElement::removedFromAncestor):
(WebCore::HTMLDialogElement::setIsModal):

  • html/HTMLDialogElement.h:

LayoutTests:

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

  • fast/css/pseudo-class-internal-expected.txt:
  • fast/css/pseudo-class-internal.html:
1:04 PM Changeset in webkit [293986] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Verify forks after creation
https://bugs.webkit.org/show_bug.cgi?id=240085
<rdar://problem/92978491>

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): Check parent of fork, wait until fork is created before continuing.

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

12:40 PM Changeset in webkit [293985] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, build fix for Internal iOS build
https://bugs.webkit.org/show_bug.cgi?id=240206

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateTouchEventTracking):

12:10 PM Changeset in webkit [293984] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/WebKit

WebKit has a broken module in Mac Catalyst
https://bugs.webkit.org/show_bug.cgi?id=240175
rdar://92703419

Patch by Ian Anderson <iana@apple.com> on 2022-05-09
Reviewed by Tim Horton.

Add a module map for Mac Catalyst that excludes WebKit/WebKitLegacy.h,
matching the exclusion from WebKit/WebKit.h.

  • Configurations/WebKit.xcconfig:
  • Modules/MacCatalyst.modulemap: Added.
  • WebKit.xcodeproj/project.pbxproj:
11:48 AM Changeset in webkit [293983] by Russell Epstein
  • 1 copy in branches/safari-7614.1.13-branch

New branch.

11:27 AM Changeset in webkit [293982] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Update some test expectations for known failures
https://bugs.webkit.org/show_bug.cgi?id=240240

Unreviewed test garderning.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-05-09

  • platform/glib/TestExpectations:
10:44 AM Changeset in webkit [293981] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebCore

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

Reviewed by Antti Koivisto.

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

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

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

  • rendering/updating/RenderTreeUpdater.cpp:
10:32 AM Changeset in webkit [293980] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

[iOS] Double tapping on YouTube video causes playback to pause instead of seek
https://bugs.webkit.org/show_bug.cgi?id=240222
rdar://92637636

Reviewed by Aditya Keerthi and Kate Cheney.

Add a new layout test. See WebKit/ChangeLog for more details.

  • fast/events/touch/ios/touch-events-when-double-tapping-after-selecting-text-expected.txt: Added.
  • fast/events/touch/ios/touch-events-when-double-tapping-after-selecting-text.html: Added.

[iOS] Double tapping on YouTube video causes playback to pause instead of seek
https://bugs.webkit.org/show_bug.cgi?id=240222
rdar://92637636

Reviewed by Aditya Keerthi and Kate Cheney.

Add a new compile-time flag to guard the presence of -[UITextInteractionAssistant contextMenuInteraction]. See
WebKit/ChangeLog for more details.

  • wtf/PlatformHave.h:

[iOS] Double tapping on YouTube video causes playback to pause instead of seek
https://bugs.webkit.org/show_bug.cgi?id=240222
rdar://92637636

Reviewed by Aditya Keerthi and Kate Cheney.

On some recent versions of iOS, UITextInteractionAssistant installs its own context menu interaction by
default. This makes UIKit introduce a _UIRelationshipGestureRecognizer to the gesture recognizer graph when
using WKWebView when the text interaction assistant has been activated in order to implement the asynchronous
context menu configuration API.

Currently, we add a direct failure requirement from the immediately resettable deferring gesture to this new
UIKit relationship gesture. This is problematic, since the context menu interaction will automatically add
failure requirements to other long press gestures on the web view, such as the image analysis gestures that
trigger Live Text analysis when long pressing on images with text. As a result, the set of immediately
resettable gestures is now connected to the set of delayed resettable gestures after the first tap when
performing a double tap gesture. Since the UIWebTouchEventsGestureRecognizer is a part of this immediate reset
subgraph, this means that the touch event gesture recognizer doesn't get reset until about 320 ms after a tap
when the text interaction assistant has been activated, due to this new context menu interaction.

On YouTube.com, this manifests in a double-tap on the main video player being broken since a double tap gesture
only dispatches touchstart and touchend on the first tap, and YouTube's script only seeks forwards or
backwards if it observes two touchstart events that are close to each other within 350 ms.

To fix this, we simply teach the deferring gesture subgraph partitioning logic in
-deferringGestureRecognizer:shouldDeferOtherGestureRecognizer: to funnel the relationship gesture (i.e.
-gestureRecognizerForFailureRelationships) of the text interaction assistant's context menu interaction into
the delayed reset subgraph instead of the immediate reset subgraph.

Test: fast/events/touch/ios/touch-events-when-double-tapping-after-selecting-text.html

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

  • UIProcess/ios/WKDeferringGestureRecognizer.mm:

(-[WKDeferringGestureRecognizer shouldDeferGestureRecognizer:]):

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

9:52 AM Changeset in webkit [293979] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Create reports for long process launch times
https://bugs.webkit.org/show_bug.cgi?id=240127

Unreviewed, fix typo.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::connect):
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):

  • UIProcess/AuxiliaryProcessProxy.h:
9:41 AM Changeset in webkit [293978] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AXLogger::streamAXCoreObject is missing a null check for AccessibilityObject dynamicDowncast
https://bugs.webkit.org/show_bug.cgi?id=240228

Reviewed by Andres Gonzalez.

When checking if an object has display:contents, we do:

if (auto* axObject = dynamicDowncast<AccessibilityObject>(&object); axObject->hasDisplayContents())

Which does not have a nullcheck for when the dynamicDowncast fails (i.e. because
the object is not an AccessibilityObject).

  • accessibility/AXLogger.cpp:

(WebCore::streamAXCoreObject):

9:22 AM Changeset in webkit [293977] by Kate Cheney
  • 25 edits
    2 adds in trunk

Image controls menu button is not appearing for multi-page PDFs
https://bugs.webkit.org/show_bug.cgi?id=240120
rdar://86425721

Reviewed by Megan Gardner.

Source/WebCore:

Test: fast/attachment/attachment-image-controls-basic.html

Refactor image controls button code so it can also be used for PDF
attachments.

  • dom/mac/ImageControlsMac.cpp:

(WebCore::ImageControlsMac::handleEvent):
(WebCore::ImageControlsMac::isImageMenuEnabled):
(WebCore::ImageControlsMac::updateImageControls):
(WebCore::ImageControlsMac::tryCreateImageControls):
(WebCore::ImageControlsMac::destroyImageControls):
(WebCore::ImageControlsMac::hasImageControls):

  • dom/mac/ImageControlsMac.h:

Handle the PDF case when a click on the image controls button happens.
Move all image controls code to ImageControlsMac where it can be
shared by image and attachment elements.

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::parseAttribute):
(WebCore::HTMLAttachmentElement::childShouldCreateRenderer const):

  • html/HTMLAttachmentElement.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::didAttachRenderers):
(WebCore::HTMLImageElement::setAttachmentElement):
(WebCore::HTMLImageElement::updateImageControls): Deleted.
(WebCore::HTMLImageElement::tryCreateImageControls): Deleted.
(WebCore::HTMLImageElement::destroyImageControls): Deleted.
(WebCore::HTMLImageElement::hasImageControls const): Deleted.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::isImageMenuEnabled const):
(WebCore::HTMLImageElement::setImageMenuEnabled):
(WebCore::HTMLImageElement::imageMenuEnabled const): Deleted.

  • html/shadow/mac/imageControlsMac.css:

The image controls button was originally offset by 20px from the top
and the right. This causes the image controls button to appear in the
middle of a PDF attachment and be difficult to see. This change makes
it flush against the top right corner for both images and PDFs.

(button#image-controls-button):

  • page/ChromeClient.h:

(WebCore::ChromeClient::handlePDFServiceClick):

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::RenderAttachment):
(WebCore::RenderAttachment::layout):
(WebCore::RenderAttachment::layoutShadowContent):

  • rendering/RenderAttachment.h:

Add canHaveGeneratedChildren() and canHaveChildren() so that
we render the image controls button in the shadow tree.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::RenderImage):

  • testing/Internals.cpp:

(WebCore::Internals::hasImageControls const):

Source/WebKit:

Refactor image controls button code so it can also be used for PDF
attachments.

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::controlledDataIsEditable const):
We need to make sure PDF attachments are marked as editable so the
context menu gets properly populated.

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::ContextMenuContextData):

  • UIProcess/API/Cocoa/APIAttachmentCocoa.mm:

(API::Attachment::enclosingImageNSData const):
Remove the image check so we return the PDF NSData in the attachment
case.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::handlePDFServiceClick):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handlePDFServiceClick):
Plumbing for handling a click on the image controls button for PDFs.

LayoutTests:

  • TestExpectations:
  • fast/attachment/attachment-image-controls-basic.html: Added.
  • platform/mac-wk2/TestExpectations:
  • platform/mac/fast/attachment/attachment-image-controls-basic-expected.txt: Added.
8:48 AM Changeset in webkit [293976] by Ziran Sun
  • 4 edits in trunk

Make input placeholder line-height declaration !important
https://bugs.webkit.org/show_bug.cgi?id=240225

Reviewed by Tim Nguyen.

Source/WebCore:

This is the same the changes made in chromium at
https://chromium-review.googlesource.com/c/chromium/src/+/3594234
and Firefox change at
https://phabricator.services.mozilla.com/D116907

  • css/html.css:

(input::placeholder):

LayoutTests:

Unskip the test that passes.

8:17 AM Changeset in webkit [293975] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r291817): NativeImage passed to RemoteResourceCacheProxy::recordNativeImageUse may be null
https://bugs.webkit.org/show_bug.cgi?id=239649
rdar://92018859

Reviewed by Dean Jackson.

Test: system-preview/svg-image.html

In the case of an <img> pointing to an SVG resource, the nativeImage() is null. We need to handle this case
properly (filed bug 239673), but for now we can at least not crash.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

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

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

7:57 AM Changeset in webkit [293974] by keith_miller@apple.com
  • 2 edits in trunk/JSTests

Unreviewed test gardening.

  • test262/expectations.yaml:
7:46 AM Changeset in webkit [293973] by keith_miller@apple.com
  • 2 edits in trunk/Tools

Test262 runner should show progress
https://bugs.webkit.org/show_bug.cgi?id=240181

Reviewed by Yusuke Suzuki.

The progress will appear as something like [42/245669].

  • Scripts/test262/Runner.pm:

(processCLI):
(main):

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

7:18 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
7:05 AM Changeset in webkit [293972] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

CoreAudioCaptureSource::settingsDidChange should not reconfigure the audio unit if CoreAudioCaptureSource is not started
https://bugs.webkit.org/show_bug.cgi?id=240059

Reviewed by Eric Carlson.

We should only ask to reconfigure when source settings change if the source is actually started.
Otherwise, we can wait for the source to start to actually set the unit values and reconfigure if needed.
To make sure to correctly expose settings, we reset them in CoreAudioCaptureSource::settingsDidChange and in
CoreAudioCaptureSource::initializeToStartProducingData.
We also only use the audio unit sample rate if it is rendering audio, otherwise we can change the sample rate at will.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
3:54 AM Changeset in webkit [293971] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[Nicosia] Canvas animations don't work with threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=227760
<rdar://problem/80588913>

Reviewed by Adrian Perez de Castro.

Implement Nicosia::CairoOperationRecorder::draImageBuffer(), which is required in order to paint
canvas contents into a GraphicsContext.

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

(Nicosia::CairoOperationRecorder::drawImageBuffer):

3:47 AM Changeset in webkit [293970] by Manuel Rego Casasnovas
  • 4 edits in trunk

[WinCairo][WK1] accessibility/aria-combobox-control-owns-elements.html is crashing after 250325@main
https://bugs.webkit.org/show_bug.cgi?id=240218
<rdar://problem/92929718>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Fix a wrong ASSERT for AriaReflectionForElementReferencesEnabled.
If AriaReflectionForElementReferencesEnabled is disabled, and you set
one of the attributes that have reflection under that flag,
we'll hit an ASSERT in Element::attributeChanged().

The fact that we set such attribute doesn't mean that the flag
has to be enabled.

Removed the ASSERT and added an if to check if the flag is enabled,
otherwise we don't need to do anything with the map.

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

LayoutTests:

  • platform/wincairo-wk1/TestExpectations: Mark test as timeout as it

was before r293958.

1:41 AM Changeset in webkit [293969] by Diego Pino Garcia
  • 8 edits in trunk/Source

Unreviewed, non-unified build fixes after r293562

Source/WebCore:

  • workers/shared/context/SharedWorkerThread.cpp:
  • workers/shared/context/SharedWorkerThreadProxy.cpp:

Source/WebKit:

  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h:
  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:

(WebKit::WebSharedWorkerContextManagerConnection::launchSharedWorker):

Source/WTF:

  • wtf/text/StringCommon.h:
Note: See TracTimeline for information about the timeline view.