Skip to content

Upgrade to upstream WebKit bbc000ae4f3d - #404

Closed
robobun wants to merge 475 commits into
mainfrom
bun/upgrade-to-bbc000ae4f3d
Closed

Upgrade to upstream WebKit bbc000ae4f3d#404
robobun wants to merge 475 commits into
mainfrom
bun/upgrade-to-bbc000ae4f3d

Conversation

@robobun

@robobun robobun commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Merges upstream WebKit main at bbc000ae4f3d (474 commits since the previous merge-base 3722912ff800, 2026-08-02 to 2026-08-10; 134 of them touch JSC/WTF/bmalloc).

Conflict resolutions (15 files)

Most conflicts were the fork's quoted-include style vs upstream include churn; resolved keeping the fork style while adopting upstream's include sets. The substantive ones:

  • heap/HandleSet.h, assembler/ARMv7Assembler.h: deleted upstream (StrongBlock refactor ff64aee116d4, ARMv7 removal 6010a9ea6ce6). The fork only had include-style changes in them, so the deletions are accepted. Heap.h/Strong.h/CMakeLists.txt updated for StrongSet.h.
  • wtf/PlatformUse.h + interpreter/CallFrame.h: upstream removed USE_BUILTIN_FRAME_ADDRESS entirely (2a8926009f45), deleting all the fallback paths (prepareCallOperation topCallFrame stores, temporaryCallFrame, etc.). The fork kept the flag OFF on Windows ARM64 ("__builtin_frame_address(1) causes crashes in DFG operations", from the Windows ARM64 bring-up in January). Since the supporting fallback code no longer exists upstream, this merge takes upstream's unconditional __builtin_frame_address(1) on Windows ARM64 as well. If DFG crashes reappear on windows-aarch64, this is the first place to look; a targeted fallback would need the removed pieces restored.
  • runtime/PageCount.h: upstream raised MAX_ARRAY_BUFFER_SIZE from 1ull << 32 to 1ull << 34; kept with the fork's commented BUN_JSC_ADDITIONS note preserved.
  • runtime/TemporalObject.h / TemporalZonedDateTime.cpp: kept the fork's TemporalType classifier and TemporalZonedDateTime::toString (from [JSC] Expose TemporalZonedDateTime::toString and a temporalType(JSValue) classifier #393) alongside upstream's new declarations; timeZoneFromRecord now takes upstream's renamed ISO8601::ISOStringTimeZoneParseRecord.
  • runtime/JSGlobalObject.cpp: kept upstream's new cachedLocaleCompareCollator while preserving the fork's relocation of exposeDollarVM to tools/JSDollarVM.cpp.
  • builtins/BuiltinExecutables.cpp: the fork's async-function visibility patch now reads scanned.isAsyncFunction (upstream 81d660ceeb2e moved builtin metadata computation into the generator script).
  • cmake/WebKitMacros.cmake: took upstream's (framework STREQUAL _linked_into) form, which fixes the same empty-operand problem the fork's quoting patch addressed.
  • cmake/OptionsJSCOnly.cmake: kept ENABLE_BUN_SKIP_FAILING_ASSERTIONS; dropped the ARM32/MIPS capstone block upstream removed.

Verification

  • bun run jsc:build:debug (linux x64, ASAN): builds, jsc shell runs, Temporal ZonedDateTime stringification works.
  • bun run build:local: full Bun debug build against this WebKit links and runs (-p '42', URL test suite passes). Bun side needs two one-line compat fixes (HandleSet include, StackBounds accessor) which go in the Bun-side PR.
  • JSType.h, BytecodeList.rb, OptionsList.h: no upstream changes (verified empty diffs), so Bun's JSType mirror stays valid.
  • Release workflow files unchanged by the merge.

dcrousso and others added 30 commits August 5, 2026 08:11
https://bugs.webkit.org/show_bug.cgi?id=320699

Reviewed by Mike Wyrzykowski.

* Source/JavaScriptCore/inspector/protocol/Canvas.json:
* Source/WebCore/inspector/agents/InspectorCanvasAgent.h:
* Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::updateShader):
Make `Canvas.updateShader` asynchronous so pipeline compilation can finish before replying.

* Source/WebCore/Modules/WebGPU/GPUShaderModule.h:
(WebCore::GPUShaderModule::create):
(WebCore::GPUShaderModule::source const): Deleted.
(WebCore::GPUShaderModule::descriptor const): Added.
* Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp:
(WebCore::GPUShaderModule::GPUShaderModule):
(WebCore::GPUShaderModule::setLabel):
* Source/WebCore/Modules/WebGPU/GPUDevice.cpp:
(WebCore::GPUDevice::createShaderModule):
(WebCore::GPUDevice::createComputePipeline):
(WebCore::GPUDevice::createRenderPipeline):
(WebCore::GPUDevice::createComputePipelineAsync):
(WebCore::GPUDevice::createRenderPipelineAsync):
* Source/WebCore/Modules/WebGPU/GPUComputePipeline.h:
(WebCore::GPUComputePipeline::shaderSource const):
* Source/WebCore/Modules/WebGPU/GPUComputePipeline.cpp:
(WebCore::GPUComputePipeline::create):
(WebCore::GPUComputePipeline::GPUComputePipeline):
(WebCore::GPUComputePipeline::setLabel):
(WebCore::GPUComputePipeline::getBindGroupLayout):
(WebCore::GPUComputePipeline::updateShader): Added.
* Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.cpp:
(WebCore::GPUComputePassEncoder::setPipeline):
* Source/WebCore/Modules/WebGPU/GPURenderPipeline.h:
(WebCore::GPURenderPipeline::vertexShaderSource const):
(WebCore::GPURenderPipeline::fragmentShaderSource const):
* Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp:
(WebCore::GPURenderPipeline::create):
(WebCore::GPURenderPipeline::GPURenderPipeline):
(WebCore::GPURenderPipeline::setLabel):
(WebCore::GPURenderPipeline::getBindGroupLayout):
(WebCore::GPURenderPipeline::updateVertexShader): Added.
(WebCore::GPURenderPipeline::updateFragmentShader): Added.
(WebCore::GPURenderPipeline::updateShader): Added.
* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.cpp:
(WebCore::GPURenderBundleEncoder::setPipeline):
* Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.cpp:
(WebCore::GPURenderPassEncoder::setPipeline):
* Source/WebCore/inspector/InspectorShaderProgram.h:
* Source/WebCore/inspector/InspectorShaderProgram.cpp:
(WebCore::InspectorShaderProgram::updateShader):
Retain the descriptors needed to recreate pipelines with their original layouts.
Preserve invalid editor source while continuing to use the last valid pipeline.
Clear compilation hints whose weak layouts may expire, and use weak captures while replacement is pending.
Use `pauseAllErrorReporting` while compiling replacement shader modules.
Protect pipeline arguments before passing their backings to encoder implementations.

* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUDevice.h:
(WebCore::WebGPU::Device::createComputePipelineWithPipelineLayoutFromPipelineAsync): Added.
(WebCore::WebGPU::Device::createRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.
* Source/WebCore/Modules/WebGPU/Implementation/WebGPUDeviceImpl.h:
* Source/WebCore/Modules/WebGPU/Implementation/WebGPUDeviceImpl.cpp:
(WebCore::WebGPU::DeviceImpl::createComputePipelineWithPipelineLayoutFromPipelineAsync): Added.
(WebCore::WebGPU::DeviceImpl::createRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.
* Source/WebGPU/WebGPU/WebGPUExt.h:
* Source/WebGPU/WebGPU/Device.h:
* Source/WebGPU/WebGPU/Device.mm:
(WebGPU::Device::pauseErrorReporting):
(WebGPU::wgpuDeviceCreateComputePipelineWithPipelineLayoutFromPipelineAsync): Added.
(WebGPU::wgpuDeviceCreateRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.
* Source/WebGPU/WebGPU/ComputePipeline.mm:
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineWithPipelineLayoutFromPipelineAsync): Added.
* Source/WebGPU/WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.
Add inspector-only pipeline creation that reuses the replaced pipeline's layout and suppresses page-visible validation errors.

* Source/WebKit/Shared/WebGPU/WebGPUConvertFromBackingContext.h:
* Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp:
* Source/WebKit/Shared/WebGPU/WebGPUComputePipelineDescriptor.cpp:
* Source/WebKit/Shared/WebGPU/WebGPURenderPipelineDescriptor.cpp:
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp:
(WebKit::RemoteDevice::createComputePipelineWithPipelineLayoutFromPipeline): Added.
(WebKit::RemoteDevice::createRenderPipelineWithPipelineLayoutFromPipeline): Added.
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:
(WebKit::RemoteDeviceProxy::createComputePipelineWithPipelineLayoutFromPipelineAsync): Added.
(WebKit::RemoteDeviceProxy::createRenderPipelineWithPipelineLayoutFromPipelineAsync): Added.
Allow layoutless replacement descriptors across IPC and wait for GPU-process compilation before creating replacement proxies.

* Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js:
(WI.ShaderProgramContentView.prototype.constructor):
Make WebGPU shader editors writable and debounce WGSL edits.

* LayoutTests/inspector/canvas/resources/shaderProgram-utilities-webgpu.js:
* LayoutTests/inspector/canvas/updateShader-webgpu.html: Added.
* LayoutTests/inspector/canvas/updateShader-webgpu-expected.txt: Added.
* LayoutTests/inspector/canvas/worker-webgpu.html:
* LayoutTests/inspector/canvas/worker-webgpu-expected.txt:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/win/TestExpectations:

Canonical link: https://commits.webkit.org/318633@main
…ffscreen-canvas-2d.html fails

https://bugs.webkit.org/show_bug.cgi?id=321073

Unreviewed, test fix.

* LayoutTests/inspector/canvas/console-record-offscreen-canvas-2d.html:
* LayoutTests/inspector/canvas/console-record-offscreen-canvas-2d-expected.txt:

* LayoutTests/platform/gtk/TestExpectations:

Canonical link: https://commits.webkit.org/318634@main
…y CreateTemporalX helpers

https://bugs.webkit.org/show_bug.cgi?id=321041
rdar://184072358

Reviewed by Yusuke Suzuki.

Every CreateTemporalX AO validates its slots before OrdinaryCreateFromConstructor,
whose Get(NewTarget, "prototype") is observable. All eight Temporal constructors
derived their Structure on entry, so Reflect.construct with a throwing `prototype`
accessor got that error instead of the mandated RangeError.

The helpers now take a TemporalNewTarget rather than a Structure*, making the wrong
order unrepresentable, and are renamed after their AOs as free functions —
createTemporalDate, createTemporalZonedDateTime and so on. `try*` in WebKit means
"returns null without throwing", the opposite of these.

Two bugs found on the way: ZonedDateTime.prototype.with open-coded
InterpretISODateTimeOffset without its CheckISODaysRange and IsValidEpochNanoseconds
steps, so an offset at the epoch boundary produced an out-of-range ZonedDateTime; and
isValidPlainDateOrThrow threw through its own ThrowScope, leaving the caller's
unchecked under --validateExceptionChecks.

Also folds CalendarID into CreateTemporalYearMonth/MonthDay, adds the missing
CreateTemporalInstant, and corrects the step annotations in all eight.

Test: JSTests/stress/temporal-construct-newtarget-prototype-order.js
Canonical link: https://commits.webkit.org/318635@main
… background is obscured

https://bugs.webkit.org/show_bug.cgi?id=320829
rdar://183841775

Reviewed by Antti Koivisto.

This patch aligns WebKit with Gecko / Firefox and Blink / Chromium.

Merge: https://chromium.googlesource.com/chromium/src.git/+/f3d25d319c4feb8ad68c6fde2b3ef3972384f1fe

RenderBox::foregroundIsKnownToBeOpaqueInRect() computes whether a box's
background is obscured by recursively checking if any descendant fully
covers it, letting BackgroundPainter skip painting the background. The
recursion did not account for descendants with CSS clip, so an ancestor
could be treated as obscured even though the covering descendant only
painted part of its border box.

RenderBox::backgroundIsKnownToBeOpaqueInRect() already bails out on
hasClip(), so a directly clipped child was handled. The gap was one level
down: a clipped child with no background of its own was still recursed
into, and an opaque grandchild filling that child was taken as covering
the ancestor. The clip on the intermediate child was never consulted.

Reject clipped boxes in isCandidateForOpaquenessTest() instead of in
backgroundIsKnownToBeOpaqueInRect(), since CSS clip applies to a box's
foreground as well as its background. hasClip() is
isOutOfFlowPositioned() && !style().clip().isAuto(), so it already
encodes that clip only applies to out-of-flow boxes.

This makes the obscuration optimization fire less often and so paints
some backgrounds that were previously skipped. The compositing path is
unaffected: RenderLayerBacking::setContentsOpaque() reaches
RenderBox::backgroundIsKnownToBeOpaqueInRect(), which already checked
hasClip().

Tests: fast/backgrounds/obscured-background-css-clipped-child.html
       fast/backgrounds/obscured-background-css-clipped-grandchild.html

* LayoutTests/fast/backgrounds/obscured-background-css-clipped-child-expected.html: Added.
* LayoutTests/fast/backgrounds/obscured-background-css-clipped-child.html: Added.
* LayoutTests/fast/backgrounds/obscured-background-css-clipped-grandchild-expected.html: Added.
* LayoutTests/fast/backgrounds/obscured-background-css-clipped-grandchild.html: Added.
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::isCandidateForOpaquenessTest):

Canonical link: https://commits.webkit.org/318636@main
https://bugs.webkit.org/show_bug.cgi?id=321026
rdar://184061275

Reviewed by Simon Fraser.

Hit testing required support to work with corner-shape

Passes existing tests

* Source/WebCore/rendering/BorderShape.cpp:
(WebCore::BorderShape::outerShapeContainsPoint const):
(WebCore::BorderShape::shapeContainsPoint const):
(WebCore::BorderShape::shapeIntersectsHitTestLocation const):
* Source/WebCore/rendering/BorderShape.h:
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::hitTestBorderRadius const):
* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-hittest-expected.txt:

Canonical link: https://commits.webkit.org/318637@main
…m operations

https://bugs.webkit.org/show_bug.cgi?id=321032
rdar://183455247

Reviewed by Sosuke Suzuki.

ref.func, table.get, and array.init_elem can all materialize wrapper functions,
which can GC and update ShadowChicken, and therefore need a FrameTracer.

Tests: JSTests/wasm/stress/array-init-elem-wrapper-alloc-frame-tracer.js
       JSTests/wasm/stress/ref-func-wrapper-alloc-frame-tracer.js
       JSTests/wasm/stress/table-get-wrapper-alloc-frame-tracer.js

* JSTests/wasm/stress/array-init-elem-wrapper-alloc-frame-tracer.js: Added.
(const.imports.m.f):
* JSTests/wasm/stress/ref-func-wrapper-alloc-frame-tracer.js: Added.
(let.wat.module.import.string_appeared_here.string_appeared_here.func.import):
(func):
(const.imports.m.f):
* JSTests/wasm/stress/table-get-wrapper-alloc-frame-tracer.js: Added.
(funcref.elem):
(func):
(const.imports.m.f):
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):

Canonical link: https://commits.webkit.org/318638@main
https://bugs.webkit.org/show_bug.cgi?id=321018

Reviewed by Adrian Perez de Castro.

* Source/ThirdParty/pdfjs/PdfJSFiles.cmake:
* Source/ThirdParty/pdfjs/build/pdf.mjs:
* Source/ThirdParty/pdfjs/build/pdf.sandbox.mjs:
* Source/ThirdParty/pdfjs/build/pdf.worker.mjs:
* Source/ThirdParty/pdfjs/web/debugger.mjs:
* Source/ThirdParty/pdfjs/web/images/signature-properties-row-check.svg: Added.
* Source/ThirdParty/pdfjs/web/images/toolbarButton-signaturePropertiesError.svg: Added.
* Source/ThirdParty/pdfjs/web/images/toolbarButton-signaturePropertiesVerified.svg: Added.
* Source/ThirdParty/pdfjs/web/locale/ar/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/be/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/bg/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/bqi/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/cs/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/cy/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/de/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/dsb/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/el/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/en-GB/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/en-US/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/eo/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/es-AR/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/es-CL/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/es-MX/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/eu/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/fi/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/fr/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/fy-NL/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/gn/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/he/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/hsb/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/hu/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/hy-AM/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/ia/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/it/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/ja/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/ka/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/kab/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/kk/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/ko/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/nb-NO/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/nl/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/nn-NO/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/pl/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/pt-BR/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/ro/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/ru/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/sc/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/sk/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/sl/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/sr/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/sv-SE/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/tr/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/vi/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/zh-CN/viewer.ftl:
* Source/ThirdParty/pdfjs/web/locale/zh-TW/viewer.ftl:
* Source/ThirdParty/pdfjs/web/viewer.css:
(:root):
(#signaturePropertiesButton):
(&.state-verified::before,):
(&.state-verified::before):
(&.state-warn::before):
(&.state-error::before):
(&.state-loading):
(.loadingDot):
(&:nth-child(3)):
(@Keyframes signaturePropertiesDot):
(40%):
(#signaturePropertiesPanel):
(.signaturePropertiesContainer):
(.sigBanner):
(&.warn):
(&.error):
(.signaturePropertiesList):
(.sigCard):
(.row):
(&::before):
(&.status--verified::before,):
(&.cert--untrusted::before,):
(&.cert--revoked::before,):
(&.sigCard--top-allfine > .row.status--verified::before,):
(.detail):
(.viewCert):
(&:focus-visible):
(.subSignatures):
(&::-webkit-details-marker):
(&[open] > summary::before):
(.nested,):
(.nested):
(.subSignatures .sigCard,):
(.subSignatures .signer,):
* Source/ThirdParty/pdfjs/web/viewer.html:
* Source/ThirdParty/pdfjs/web/viewer.mjs:

Canonical link: https://commits.webkit.org/318639@main
https://bugs.webkit.org/show_bug.cgi?id=321072
rdar://184103404

Reviewed by Yijia Huang.

As ARMv7 JIT is removed, now this is unconditionally enabled. Remove enableInt52.

* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
* Source/JavaScriptCore/dfg/DFGCommon.h:
(JSC::DFG::enableInt52): Deleted.
* Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* Source/JavaScriptCore/dfg/DFGGraph.h:
* Source/JavaScriptCore/dfg/DFGNode.h:
(JSC::DFG::Node::shouldSpeculateInt52):
(JSC::DFG::Node::shouldSpeculateInt52OrOther):
* Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileUInt32ToNumber):
(JSC::DFG::SpeculativeJIT::setIntTypedArrayLoadResult):
* Source/JavaScriptCore/dfg/DFGVariableAccessData.cpp:
(JSC::DFG::VariableAccessData::couldRepresentInt52Impl):

Canonical link: https://commits.webkit.org/318640@main
https://bugs.webkit.org/show_bug.cgi?id=321070
rdar://184102859

Reviewed by Yijia Huang.

LLInt ARM64E needs to be enabled specifically.

* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:

Canonical link: https://commits.webkit.org/318641@main
https://bugs.webkit.org/show_bug.cgi?id=321027
rdar://184062042

Reviewed by Mike Wyrzykowski.

The IPC code generator emits a C++ message forwarder for receivers marked
SwiftReceiver or SwiftReceiverBuildEnabledBy, and that forwarder, rather than the
receiver itself, becomes the IPC::MessageReceiver. When such a receiver is also
annotated with EnabledBy, the generated enablement check calls
sharedPreferencesForWebProcess() unqualified. That method is declared by
individual receivers rather than by the IPC machinery, and is absent from both IPC
base classes, so it is not visible on the forwarder and the generated code fails
to compile. Both shipping Swift receivers use ExceptionForEnabledBy, which is why
this has gone unnoticed. It blocks moving stream receivers such as RemoteMesh,
annotated EnabledBy=ModelElementEnabled, to Swift.

Have the forwarder ask its target for the preferences, and look the target up
before the enablement check so that it is available. The receiver-level gate and
the per-message gates read the same local, so this repairs both. The two
statement generators are merged into one function so that the ordering is
structural rather than a convention repeated at each of the three call sites.
Generated output for non-Swift receivers is unchanged.

A Swift receiver annotated with EnabledBy must now expose
sharedPreferencesForWebProcess() to C++. Since Swift cannot name an
un-specialized class template, std::optional<SharedPreferencesForWebProcess>
will need a named typedef, in the same way std::span<const char> already does for
WebBackForwardList.

Covered by two new fixtures in the IPC message-generator test,
TestWithStreamSwiftEnabledBy (Stream with a receiver-level EnabledBy) and
TestWithSwiftConditionallyAndEnabledBy (SwiftReceiverBuildEnabledBy with
per-message EnabledBy).

* Source/WebKit/Scripts/webkit/messages.py:
(generate_target_and_enabled_by_statements):
(generate_target_and_enabled_by_statements.append_swift_statements):
(generate_target_and_enabled_by_statements.append_cpp_statements):
(generate_message_handler):
(generate_enabled_by_for_receiver): Deleted.
(generate_get_target_statements): Deleted.
* Source/WebKit/Scripts/webkit/messages_unittest.py:
* Source/WebKit/Scripts/webkit/tests/Makefile:
* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
* Source/WebKit/Scripts/webkit/tests/MessageNames.cpp:
* Source/WebKit/Scripts/webkit/tests/MessageNames.h:
* Source/WebKit/Scripts/webkit/tests/TestWithStreamSwiftEnabledBy.messages.in: Added.
* Source/WebKit/Scripts/webkit/tests/TestWithStreamSwiftEnabledByMessageReceiver.cpp: Added.
* Source/WebKit/Scripts/webkit/tests/TestWithStreamSwiftEnabledByMessageReceiver.swift: Added.
* Source/WebKit/Scripts/webkit/tests/TestWithStreamSwiftEnabledByMessages.h: Added.
* Source/WebKit/Scripts/webkit/tests/TestWithSwiftConditionallyAndEnabledBy.messages.in: Added.
* Source/WebKit/Scripts/webkit/tests/TestWithSwiftConditionallyAndEnabledByMessageReceiver.cpp: Added.
* Source/WebKit/Scripts/webkit/tests/TestWithSwiftConditionallyAndEnabledByMessageReceiver.swift: Added.
* Source/WebKit/Scripts/webkit/tests/TestWithSwiftConditionallyAndEnabledByMessages.h: Added.

Canonical link: https://commits.webkit.org/318642@main
https://bugs.webkit.org/show_bug.cgi?id=321020

Caused a PLT regression

Reverted change:

    Site-isolated iframe processes keep a page load assertion after a cross-site navigation
    https://bugs.webkit.org/show_bug.cgi?id=320790
    318458@main (7d0d43f)

Canonical link: https://commits.webkit.org/318643@main
…platform-tests/uievents/textInput/enter-textarea-contenteditable.html is flaky failure

https://bugs.webkit.org/show_bug.cgi?id=321103
rdar://184140276

Unreviewed test gardening

* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/318644@main
https://bugs.webkit.org/show_bug.cgi?id=321006
<rdar://184041568>

Reviewed by Tim Nguyen.

Upstream commit: web-platform-tests/wpt@8c0f2de

* LayoutTests/imported/w3c/resources/resource-files.json:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-highlightsFromPoint-ranges.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/HighlightRegistry-highlightsFromPoint.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/WEB_FEATURES.yml:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/crashtests/WEB_FEATURES.yml:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/crashtests/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-fallback-not-tinted-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-fallback-not-tinted-ref.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-fallback-not-tinted.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-currentcolor-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-currentcolor-ref.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-currentcolor.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-stacked-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-stacked-ref.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-image-stacked.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/highlight-priority-painting.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/WEB_FEATURES.yml:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-font-metrics-003-expected.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-font-metrics-003-ref.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-font-metrics-004.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-painting-user-select-none-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-painting-user-select-none-ref.html: ded.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/custom-highlight-painting-user-select-none.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/invalidation/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/resources/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/painting/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/css/css-highlight-api/w3c-import.log:
* LayoutTests/TestExpectations:

Canonical link: https://commits.webkit.org/318645@main
… its margin when the root has a border

https://bugs.webkit.org/show_bug.cgi?id=321087

Reviewed by Antti Koivisto.

LineBuilder::initialize() skips a pending margin when the margin state is still at the before side of the
block, on the grounds that it can collapse out through that edge. That is only half the condition.
RenderBlockFlow::MarginInfo says:

    bool canCollapseWithMarginBefore() const { return m_atBeforeSideOfBlock && m_canCollapseMarginBeforeWithChildren; }

When the root has a border or padding the margin cannot collapse through its before edge, so a self
collapsing block on a previous line has already committed it and the line has to move down by it. Skipping
it dropped the margin outright: the block painted below while the content following it stayed at the
container's top.

* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-self-collapsing-margin-001-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-self-collapsing-margin-001.html: Added.

Canonical link: https://commits.webkit.org/318646@main
https://bugs.webkit.org/show_bug.cgi?id=321053
<rdar://184082252>

Reviewed by Alan Baradlay.

This PR distributes space to non-affected tracks per CSS Grid §11.5.1, step 2.3.

https://drafts.csswg.org/css-grid-1/#extra-space

Step 2.1 subtracts the affected size of spanned tracks from the item's contribution.
Step 2.2 distributes extra space into affected tracks up to their limits.
Step 2.3 subtracts the extra space non-affected tracks can contribute when sized to their limit.

The increases it computes are discarded, as the step's only purpose is to decrease
spaceToDistribute for step 2.4. This is because only affected tracks receive
a planned increase in step 2.5.

* Source/WebCore/layout/formattingContexts/grid/TrackSizingAlgorithm.cpp:
(WebCore::Layout::distributeExtraSpace):

Canonical link: https://commits.webkit.org/318647@main
…their anonymous block wrappers

https://bugs.webkit.org/show_bug.cgi?id=321085

Reviewed by Antti Koivisto.

Skipping anonymous block generation puts a container's block level children into an inline formatting
context. That only works where the container is a block formatting context laying its children out as
lines. Several box types instead lay their children out themselves, or take them out of the flow, and
need them wrapped.

The test covers the MathML case, where four of the five token elements laid out at width 0 without this
patch. The fieldset and multicol cases are covered by existing tests.

* Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::attach):
* LayoutTests/mathml/token-element-with-text-content.html: Added.
* LayoutTests/mathml/token-element-with-text-content-expected.txt: Added.

Canonical link: https://commits.webkit.org/318648@main
https://bugs.webkit.org/show_bug.cgi?id=321109
rdar://184136743

Unreviewed build fix.

* Source/WebKit/UIProcess/mac/SpatialShim.swift: Added.
(Angle2D.radians):
(Angle2D.degrees):
(Angle2D.degrees(_:)):
(Angle2D.radians(_:)):
(Angle2D.atan(_:)):
(Angle2D.zero):
* Source/WebKit/UIProcess/mac/WKDirectionalScrollLockTracker.swift:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/318649@main
…CG switch

https://bugs.webkit.org/show_bug.cgi?id=321021
rdar://182280016

Reviewed by Ryosuke Niwa.

When Site Isolation is off, we sometimes don't consider the WebProcess that hosts the webpage as a
candidate for running same-origin shared and service workers. This is unintended.

This occurs because we only record the process => site association at provisional load time, not
commit time. In the case of a forced process swap due to a COOP response header:

1. Process A performs the provisional load, and records the process => site mapping.
2. We handle the COOP response header and force a BCG and process switch.
3. Process B continues the load and commits, but we never record a process => site mapping for this
new process.

To fix this, record the process => site mapping at commit time.

This only needs to occur when Site Isolation is off; when Site Isolation is on, we were already
recording the process => site mapping via a different path (in
didStartUsingProcessForSiteIsolation).

Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ServiceWorkerBasic.mm

* Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _webContentProcessInfo]):
(+[WKProcessPool _webContentProcessInfoForTesting]):
* Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):
(WebKit::WebProcessProxy::didCommitMainFrameLoadWithoutSiteIsolation):
(WebKit::WebProcessProxy::updateSiteForMainFrameNavigation):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ServiceWorkerBasic.mm:
((ServiceWorkers, SharedWorkerReusesProcessAfterCOOPProcessSwap)):

Canonical link: https://commits.webkit.org/318650@main
…nction warnings

https://bugs.webkit.org/show_bug.cgi?id=321111

Unreviewed build fix.

The EWS WPE Build queue is having a hard time since we switched the
bots to use Clang due to new unused-function warnings.

Fix that by making layersLogEnabled() and compositingLogEnabledRenderLayer()
only defined when ENABLE(TREE_DEBUGGING) because all the callers of that
functions are guarded behind this.

* Source/WebCore/rendering/RenderLayer.cpp:
* Source/WebCore/rendering/RenderLayerCompositor.cpp:

Canonical link: https://commits.webkit.org/318651@main
…eInfo`

https://bugs.webkit.org/show_bug.cgi?id=321096
rdar://184135720

Reviewed by Richard Robinson.

Add a way for text extractions to grab a `WKFrameInfo`, corresponding to a node `uid` string. If the
`uid` corresponds to an `iframe`, this finds the frame info corresponding to the content frame of
the `iframe` element; otherwise, it falls back to returning the content frame containing the given
target node.

This allows agents to (for instance) evaluate script in the context of the content frame underneath
an `iframe`, without requiring the agent to first extract content within the target subframe.

Test: TextExtractionTests.RequestFrameInfoForNodeIdentifier

* Source/WebCore/page/text-extraction/TextExtraction.cpp:
(WebCore::TextExtraction::contentFrameIdentifierForNode):
* Source/WebCore/page/text-extraction/TextExtraction.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView+TextExtraction.mm:
(-[WKWebView _requestFrameInfoForNodeIdentifier:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.mm:
(-[_WKTextExtractionResult requestFrameInfoForNodeIdentifier:completionHandler:]):
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::requestContentFrameIdentifierForNode):
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::requestContentFrameIdentifierForNode):
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
* Source/WebKit/WebProcess/WebPage/WebFrame.messages.in:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextExtractionTests.mm:
(-[_WKTextExtractionResult frameInfoForNodeIdentifier:]):
(TestWebKitAPI::(TextExtractionTests, RequestFrameInfoForNodeIdentifier)):

Add an API test to exercise this new method.

Canonical link: https://commits.webkit.org/318652@main
… nested in an inline box

https://bugs.webkit.org/show_bug.cgi?id=321088

Reviewed by Antti Koivisto.

isLastLineWithInlineContent() looks past the line's own content for more inline items to decide whether
this is the last line with inline content. A block level box is not "contentful" per
isContentfulOrHasDecoration(), which only accepts atomic inline level boxes and line breaks, so the scan
stepped straight over it, found the content after the block and concluded the line was not last.

* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::isLastLineWithInlineContent):
(WebCore::Layout::LineBuilder::isLastLineWithInlineContent const):
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-block-in-inline-001-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-before-block-in-inline-001.html: Added.

Canonical link: https://commits.webkit.org/318653@main
https://bugs.webkit.org/show_bug.cgi?id=321093

Reviewed by Antti Koivisto.
The CSSWG resolved that margin-trim applies to block and multi-column
containers only (w3c/csswg-drafts#13731), reverting
the 2019 resolution that had extended it to flex and grid. That one predates
gaps, and row-gap/column-gap covers the spacing its author was asking for.

RenderFlexibleBox::isChildEligibleForMarginTrim is what made the shared
RenderBox/RenderBlock trimming paths fire for flex items, so dropping the
override turns them all off at once. This also removes the main- and cross-axis
trim passes in FlexFormattingContext, FlexLayoutState's margin-trim item sets,
and what they leave unreferenced. The two stray comments above the deleted
override, about hasIntrinsicAspectRatio and template instantiations, described
neither it nor its neighbor and go with it.

Grid and block keep margin-trim, so all four values still parse. Removing grid,
and with it the inline-* values that then have no applicable layout mode, is a
follow-up, as is dropping these tests from WPT upstream.

* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-end-trimmed-only-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-end-trimmed-only.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-start-trimmed-only-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-start-trimmed-only.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-trimmed-only-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-block-trimmed-only.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-block-multiline-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-block-multiline.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-grow-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-grow.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-inline-multiline-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-inline-multiline.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-orthogonal-item-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-orthogonal-item.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-shrink-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-shrink.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end-ref.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-ref.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start-ref.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-end-trimmed-only-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-end-trimmed-only.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-trimmed-only-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-trimmed-only.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-with-order-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-with-order-ref.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-start-with-order.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-trimmed-only-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-inline-trimmed-only.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-min-content-trims-every-line-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-min-content-trims-every-line.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-block-multiline-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-block-multiline.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-grow-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-grow.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-inline-multiline-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-inline-multiline.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-orthogonal-item-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-orthogonal-item.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-shrink-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-shrink.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end-ref.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-ref.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start-ref.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-trim-all-margins-expected.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-trim-all-margins.html: Removed.
* LayoutTests/platform/mac/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-template-expected.txt: Removed.
* LayoutTests/platform/mac-site-isolation/TestExpectations:
* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:
(WebCore::FlexFormattingContext::layout):
(WebCore::FlexFormattingContext::computeFlexLines):
(WebCore::FlexFormattingContext::trimCrossAxisMarginsForFlexItems): Deleted.
(WebCore::FlexFormattingContext::canFitItemWithTrimmedMarginEnd): Deleted.
(WebCore::FlexFormattingContext::removeMarginEndFromFlexSizes): Deleted.
(WebCore::FlexLayoutItem::flexBaseMarginBoxSize): Deleted.
* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:
* Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.cpp:
(WebCore::FlexFormattingUtils::mainAxisMarginEndForFlexItem): Deleted.
(WebCore::FlexFormattingUtils::shouldTrimMainAxisMarginStart): Deleted.
(WebCore::FlexFormattingUtils::shouldTrimMainAxisMarginEnd): Deleted.
(WebCore::FlexFormattingUtils::shouldTrimCrossAxisMarginStart): Deleted.
(WebCore::FlexFormattingUtils::shouldTrimCrossAxisMarginEnd): Deleted.
* Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.h:
* Source/WebCore/layout/formattingContexts/flex/FlexLayoutState.h:
(WebCore::FlexLayoutState::FlexLayoutState):
* Source/WebCore/layout/integration/flex/FlexIntegrationUtils.cpp:
(WebCore::LayoutIntegration::FlexIntegrationUtils::setTrimmedMarginForChild): Deleted.
(WebCore::LayoutIntegration::FlexIntegrationUtils::trimMainAxisMarginStart): Deleted.
(WebCore::LayoutIntegration::FlexIntegrationUtils::trimMainAxisMarginEnd): Deleted.
(WebCore::LayoutIntegration::FlexIntegrationUtils::trimCrossAxisMarginStart): Deleted.
(WebCore::LayoutIntegration::FlexIntegrationUtils::trimCrossAxisMarginEnd): Deleted.
* Source/WebCore/layout/integration/flex/FlexIntegrationUtils.h:
* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp:
(WebCore::LayoutIntegration::FlexLayout::buildFlexLayoutItems):
(WebCore::LayoutIntegration::FlexLayout::marginTrimItemsBeforeFlexLayout): Deleted.
(WebCore::LayoutIntegration::FlexLayout::isFlexItemEligibleForMarginTrim): Deleted.
(WebCore::LayoutIntegration::FlexLayout::layout):
* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.h:
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::setTrimmedMarginForChild):
* Source/WebCore/rendering/RenderBlock.h:
(WebCore::RenderBlock::setMarginStartForChild): Deleted.
(WebCore::RenderBlock::setMarginEndForChild): Deleted.
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::clearTrimmedMarginsMarkings): Deleted.
(WebCore::RenderBox::hasTrimmedMargin const):
* Source/WebCore/rendering/RenderBox.h:
* Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths const):
(WebCore::RenderFlexibleBox::isChildEligibleForMarginTrim const): Deleted.
* Source/WebCore/rendering/RenderFlexibleBox.h:
* Source/WebCore/style/StyleExtractorCustom.h:

Canonical link: https://commits.webkit.org/318654@main
…c/web-platform-tests/webtransport/idlharness are constant failure

https://bugs.webkit.org/show_bug.cgi?id=321110
rdar://184147135

Unreviewed test gardening

* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/318655@main
…vel box nested in an inline box

https://bugs.webkit.org/show_bug.cgi?id=321083

Reviewed by Antti Koivisto.

LineLayout::firstLineBaseline() returns a block-in-inline's own baseline, but callers expect a baseline measured from the container's border box.
RenderBlock's equivalents add the child's logicalTop() for exactly this reason:

    if (auto baseline = child->firstLineBaseline())
        return LayoutUnit { (child->logicalTop() + baseline.value()).toInt() };

So anything above the block level box - the container's padding-before, or a preceding line - is dropped
from the exported baseline.

* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):
* LayoutTests/imported/w3c/web-platform-tests/css/css-align/baseline-rules/first-baseline-block-in-inline-001.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-align/baseline-rules/first-baseline-block-in-inline-001-expected.txt: Added.

Canonical link: https://commits.webkit.org/318656@main
…eaded animations after a progress-based timeline changes source

<https://bugs.webkit.org/show_bug.cgi?id=320837>
<rdar://183856184>

Reviewed by Antoine Quint.

Every entry in `processTimelines` is expected to hold at least one
timeline, since an entry with an empty set describes a scrolling node
that no longer sources anything.  Taking a timeline out of its former
source and moving it to a new one empties that set, so the invariant
must be restored on every update.  Restoring it only while iterating
`timelinesUpdate.destroyed` fails to remove empty source entries from
`processTimelines` whenever an update does not destroy a timeline, so
they survive until some later update for that process destroys one.

Sweep empty entries unconditionally so the invariant no longer depends
on what an update happens to contain.  Erasing them in a single pass
also removes the need to collect their keys in a temporary `HashSet`.

No new tests since an empty entry is indistinguishable from an absent
one through the existing testing interfaces.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimelineRegistry.cpp:
(WebKit::RemoteProgressBasedTimelineRegistry::update):

Canonical link: https://commits.webkit.org/318657@main
…equests

rdar://184133528
https://bugs.webkit.org/show_bug.cgi?id=321112

Reviewed by Ryan Reno.

In 315856@main we added what was meant to be restrictions on which properties an application
could override in an NSURLRequest they pass in to the WebKit API. That patch included logging
of "violations" to help diagnose breakage that might later occur.

The restrictions and logging were implemented in the CoreIPCNSURLRequest IPC wrapper, with
the intention of catching app-supplied properties in the UIProcess before being sending to
other processes. But this had the side effect of catching NSURLRequests created from within
WebKit itself, such as the requests that come from CoreMedia for <audio>/<video> playback.

There is a specific set of properties that ResourceRequest handles directly that we explicitly
serialize out of the property set, but also passed into the "app provided property" santizing
path. For those properties behavior was correct, but we errantly logged a fault.

There's cleanup that can be done here to make sure we only do the sanitization on properties
that originate from the app inside the UIProcess instead of applying to all IPC passes, but
for now we can just remove that errant logging.

All existing tests verify no behavior change, but "lack of logging" is not explicitly testable.

* Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.mm:
(WebKit::populateAppProperties):

Canonical link: https://commits.webkit.org/318658@main
…tches the line

https://bugs.webkit.org/show_bug.cgi?id=321089

Reviewed by Antti Koivisto.

RenderBox::logicalTop() is

    writingMode().isHorizontal() ? y() : x()

resolved in the *child's* writing mode. For a vertical-rl child in a horizontal-tb container it therefore
returns the child's physical x, which in an rtl container is its right edge. That value was returned as the
block's logical top, became borderBoxTop in layoutWithFormattingContextForBlockInInline, was stored as the
block's vertical margin and the line inherited it as its height:

    renderer x=769 y=0  ->  childLogicalTop=769  ->  marginBefore=769  ->  line height 769

RenderBlock::logicalTopForChild() is `isHorizontalWritingMode() ? child.y() : child.x()`, i.e. resolved
against the container, which is what the caller means. Needs all three of rtl, an orthogonal writing mode
and an empty block - with content in the block a different path computes the size.

* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlockChildFromInlineLayout):
* LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/orthogonal-block-in-inline-line-height-001.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/orthogonal-block-in-inline-line-height-001-expected.txt: Added.

Canonical link: https://commits.webkit.org/318659@main
… relayout

https://bugs.webkit.org/show_bug.cgi?id=321091

Reviewed by Antti Koivisto.

Laying the block level box out is what produces the margin it hands to the lines after it. A partial layout
that resumes at a later line never re-runs the block, so the rest of the content runs with an empty margin
state and the margin is simply dropped. partialContentTop compounds it: it is derived from the previous
line's lineBoxLogicalRect().maxY(), which excludes the margin.

Bail to a full layout when any line before the damaged one holds a block level box. This is conservative
but the alternative is replaying the margin contribution of every preceding block level line without
laying those blocks out.

* Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:
(WebCore::Layout::InlineInvalidation::updateInlineDamage):
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margin-after-relayout-001.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margin-after-relayout-001-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margin-after-relayout-002.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margin-after-relayout-002-expected.txt: Added.

Canonical link: https://commits.webkit.org/318660@main
… <details> element has `display: contents` and its ::details-content establishes a scrollable area

https://bugs.webkit.org/show_bug.cgi?id=320447
rdar://183445758

Reviewed by Simon Fraser.

rendererForScrollbar() maps a renderer inside a user agent shadow root to its
shadow host's renderer, so that scrollbar pseudo element styles are resolved
against the host. It returned the host's renderer unconditionally, but a host
with `display: contents` has no renderer. Its user agent shadow content can
still establish a scrollable area, so all three callers dereferenced null.

A <details> is exactly that case: its ::details-content is a slot in the user
agent shadow root, so giving the <details> `display: contents` and the
::details-content non-visible overflow crashed the WebContent process while
resolving the scroll corner style during render tree construction. This is the
standard way to build an animated disclosure widget whose summary participates
in a parent grid, so it is reachable from ordinary content.

Null check the host's renderer and fall back to the renderer establishing the
scrollable area, which is the pre-existing behavior for content outside a user
agent shadow root. Only the null case changes behavior.

* Source/WebCore/rendering/RenderLayerScrollableArea.cpp:
(WebCore::rendererForScrollbar): The host is not guaranteed to have a renderer.
It has none when it is `display: contents`, even though its user agent shadow
content may still establish a scrollable area. Fall back to the renderer
establishing the scrollable area rather than returning null, since the callers
all dereference the result to resolve the scrollbar pseudo element styles
against it: updateScrollCornerStyle(), updateResizerStyle() and
createScrollbar().

* LayoutTests/fast/html/details-display-contents-scrollable-content-crash.html: Added.
* LayoutTests/fast/html/details-display-contents-scrollable-content-crash-expected.txt: Added.
Covers all three call sites: a scroll corner, a resizer (`resize: both`) and
scrollbar creation (`overflow: scroll` with overflowing content). Crashes
without the fix, passes with it.

Canonical link: https://commits.webkit.org/318661@main
…r-move of lvalue arguments

<https://bugs.webkit.org/show_bug.cgi?id=321098>
<rdar://184137472>

Reviewed by Mike Wyrzykowski.

The `T&&` parameter of `allocateAbstractType()` is a forwarding
reference, so a non-const lvalue binds to it in preference to the
`const T&` overload, and the unconditional move then moves the lvalue.
The generated overloads in `TypeOverloads.h` pass the same
`TypeVariable` lvalue to `allocateAbstractType()` more than once per
candidate (e.g. `(T, T) => T`), so the Clang static analyzer reports a
use-after-move.  This never crashed only because `TypeVariable` is
trivially copyable, so the move is really a copy; it would be a genuine
use-after-free if a non-trivial member were ever added.

Forward the argument instead so an lvalue is copied and only an rvalue
is moved.  Because the generated candidates always pass an lvalue, no
move happens, so the fix stays correct regardless of whether
`TypeVariable` remains trivially copyable.  A single forwarding overload
handles every value category, making the separate `const T&` overload
redundant.

No new tests since no change in behavior.

* Source/WebGPU/WGSL/Overload.h:
(WGSL::allocateAbstractType):

Canonical link: https://commits.webkit.org/318662@main
Ahmad-S792 and others added 25 commits August 9, 2026 05:33
https://bugs.webkit.org/show_bug.cgi?id=298000
rdar://159808285

Reviewed by Alan Baradlay.

This patch removes non-standard percentage value from `-webkit-line-clamp`,
which is not present in new standard for `line-clamp` plus this was also
dropped from Blink in 2018 [1] due to lack of usage and it also has quirky
undefined behavior different from web developer expectations in percentage
distribution between lines.

[1] https://chromium.googlesource.com/chromium/src.git/+/7dc2379d58e26905dd77c56617d0baf9972581eb

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::hasClampingAndNoFlexing const):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::lineCountFor): Deleted.
* Source/WebCore/style/values/non-standard/StyleWebKitLineClamp.cpp: Removed.
* Source/WebCore/style/values/non-standard/StyleWebKitLineClamp.h:
(WebCore::Style::WebkitLineClamp::WebkitLineClamp): Deleted.
(WebCore::Style::WebkitLineClamp::isNone const): Deleted.
(WebCore::Style::WebkitLineClamp::isPercentage const): Deleted.
(WebCore::Style::WebkitLineClamp::isInteger const): Deleted.
(WebCore::Style::WebkitLineClamp::tryPercentage const): Deleted.
(WebCore::Style::WebkitLineClamp::tryInteger const): Deleted.
(WebCore::Style::WebkitLineClamp::holdsAlternative const): Deleted.
(WebCore::Style::WebkitLineClamp::switchOn const): Deleted.
(WebCore::Style::WebkitLineClamp::valueForTextAutosizingHash const): Deleted.

> Tests:
* LayoutTests/fast/css/webkit-line-clamp-calculated-value-expected.txt:
* LayoutTests/fast/css/webkit-line-clamp-calculated-value.html:
* LayoutTests/fast/overflow/line-clamp.html:
* LayoutTests/platform/mac/fast/overflow/line-clamp-expected.txt:
* LayoutTests/platform/ios/fast/overflow/line-clamp-expected.txt:
* LayoutTests/platform/glib/fast/overflow/line-clamp-expected.txt:

Canonical link: https://commits.webkit.org/318858@main
https://bugs.webkit.org/show_bug.cgi?id=320981

Reviewed by Xabier Rodriguez-Calvar.

On a device where a GStreamer seek operation leads to a pipeline async
state change, we may enter a flow of internal calls that cause a second
seek to zero to be executed before the first call has returned. This was
detected with Spotify when performing a seek to the asset end (duration)
right after playback has started from the beginning (position zero).
This issue does not happen if the GStreamer seek operation does not
cause a async pipeline state change.

See: WebPlatformForEmbedded/WPEWebKit#1645

This patch avoids automatic playback when the video has ended
(effectively helping to avoid currentTime accidentally going beyond the
duration) or when a seek is still happening (avoiding currentTime to
progress and change the conditions of the video). ReadyState is
propagated to the player when seek has completed, helping the
HTMLMediaElement algorithms to take the right decisions when seek
completes. Finally, code has been added to avoid the position to ever go
beyond the duration in order to avoid a degradation of the ReadyState to
HaveMetadata, except when the duration is zero. This is a special case
used by MediaPlayerPrivateGStreamer::duration() and
MediaPlayerPrivateGStreamerMSE::duration() when the duration is
unknown/unavailable, and we don't want to mess up with that and cause a
stream that is just being loaded to trigger unexpected effects.

Co-authored-by: Enrique Ocaña González <eocanha@igalia.com>

Test: media/media-source/media-source-seek-to-end-doesnt-loop.html

* LayoutTests/media/media-source/media-source-seek-to-end-doesnt-loop-expected.txt: Added.
* LayoutTests/media/media-source/media-source-seek-to-end-doesnt-loop.html: Added.
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerPlaybackStateChanged): Avoid automatic playback on seek or video end.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const): Never allow the position to go beyond duration, except in the special case when duration is zero.
* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek): Propagate readyState to player on seek completion.
(WebCore::MediaPlayerPrivateGStreamerMSE::propagateReadyStateToPlayer): Relaxed the assert so also admit m_isSeeking as a condition to not halt execution.

Canonical link: https://commits.webkit.org/318859@main
https://bugs.webkit.org/show_bug.cgi?id=321392
rdar://184446435

Reviewed by Taher Ali.

Upstream commit: web-platform-tests/wpt@54f8f93

* LayoutTests/imported/w3c/web-platform-tests/css/css-link-params/inheritance.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-link-params/link-parameters-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-link-params/link-parameters-computed.html:

Canonical link: https://commits.webkit.org/318860@main
https://bugs.webkit.org/show_bug.cgi?id=321276

Reviewed by Patrick Griffis.

Upstream commit: web-platform-tests/wpt@8011b28

* LayoutTests/TestExpectations: Skip new test waiting for a dictionary.
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/WEB_FEATURES.yml:
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/compressed-large-resources-002.tentative.https.html:
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/compressed-large-resources-dictionary-hashes.tentative.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/dictionary-fetch-with-link-connect-src-nonce.tentative.https.html.headers:
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/dictionary-fetch-with-link-connect-src.tentative.https.html.headers:
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/resources/static/Makefile:
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/resources/static/dcb-header: Removed.
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/resources/static/dcz-header: Removed.
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/resources/static/dictionary-hashes.js: Added.
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/resources/static/self-compressed-image-001.png.dcb:
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/resources/static/self-compressed-subframe-001.html.dcb:
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/resources/static/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/fetch/compression-dictionary/w3c-import.log:
* LayoutTests/tests-options.json:

Canonical link: https://commits.webkit.org/318861@main
https://bugs.webkit.org/show_bug.cgi?id=319869

Reviewed by Carlos Garcia Campos and Patrick Griffis.

Creates a new WebKitWebExtensionContext GObject for WebKitGtk with
support for getting the correct Options Page URI for the WebExtension.
Intended to provide a basis to add more Context code while having a
WebKitGTK API available to append to.

* Source/WebKit/PlatformGTK.cmake:
* Source/WebKit/PlatformWPE.cmake:
* Source/WebKit/Shared/Extensions/WebExtensionRegisteredScriptsSQLiteStore.cpp:
(WebKit::WebExtensionRegisteredScriptsSQLiteStore::migrateToCurrentSchemaVersionIfNeeded):
* Source/WebKit/Shared/Extensions/WebExtensionRegisteredScriptsSQLiteStore.h:
* Source/WebKit/SourcesGTK.txt:
* Source/WebKit/SourcesWPE.txt:
* Source/WebKit/UIProcess/API/glib/WebKitError.cpp:
(webkit_web_extension_context_error_quark):
* Source/WebKit/UIProcess/API/glib/WebKitError.h.in:
* Source/WebKit/UIProcess/API/glib/WebKitPrivate.cpp:
(toWebKitWebExtensionContextError):
* Source/WebKit/UIProcess/API/glib/WebKitPrivate.h:
* Source/WebKit/UIProcess/API/glib/WebKitWebExtension.cpp:
(webkitWebExtensionToImpl):
* Source/WebKit/UIProcess/API/glib/WebKitWebExtensionContext.cpp: Added.
(webkitWebExtensionContextGetProperty):
(webkitWebExtensionContextSetProperty):
(webkit_web_extension_context_class_init):
(webkitWebExtensionContextInitableInit):
(gInitableInterfaceInit):
(webkitWebExtensionContextSetWebExtension):
(webkit_web_extension_context_new_for_extension):
(webkit_web_extension_context_get_web_extension):
(webkit_web_extension_context_get_base_uri):
(webkit_web_extension_context_set_base_uri):
(webkit_web_extension_context_get_options_page_uri):
* Source/WebKit/UIProcess/API/glib/WebKitWebExtensionContext.h.in: Added.
* Source/WebKit/UIProcess/API/glib/WebKitWebExtensionPrivate.h: Added.
* Source/WebKit/UIProcess/API/glib/webkit.h.in:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
* Source/WebKit/UIProcess/Extensions/glib/WebExtensionContextGLib.cpp: Added.
(WebKit::WebExtensionContext::WebExtensionContext):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIAlarms.cpp:
(WebKit::WebExtensionAPIAlarms::createAlarm):
(WebKit::WebExtensionAPIAlarms::get):
(WebKit::WebExtensionAPIAlarms::getAll):
(WebKit::WebExtensionAPIAlarms::clear):
(WebKit::WebExtensionAPIAlarms::clearAll):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebExtensionContext.cpp: Added.
(createGBytes):
(testOptionsPageURIParsing):
(beforeAll):
(afterAll):
* Tools/TestWebKitAPI/glib/CMakeLists.txt:

Canonical link: https://commits.webkit.org/318862@main
https://bugs.webkit.org/show_bug.cgi?id=321402

Unreviewed gardening.

Update a changed pixel test result in both legacy + LBSE
and remove an unused pixel test result (test is a reftest).

* LayoutTests/platform/mac-tahoe-wk2-lbse-text/svg/text/selection-background-color-expected.png:
* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/custom/external-paintserver-reference-expected.png: Removed.
* LayoutTests/platform/mac-tahoe-wk2-pixel/svg/text/selection-background-color-expected.png:

Canonical link: https://commits.webkit.org/318863@main
https://bugs.webkit.org/show_bug.cgi?id=321163
rdar://184199283

Reviewed by Mike Wyrzykowski.

When a canvas is using a ColorType like float16 that allows for extended
dynamic range, and the system supports the corresponding PixelFormat
natively, attempt to use an extended DestinationColorSpace if
available.

No new tests, as existing tests should fail if there is any visible
impact.

* Source/WebCore/html/ImageData.cpp:
(WebCore::ImageData::float16ArrayPixelBuffer const):
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::getImageData const):
(WebCore::allowExtendedColorSpace):
(WebCore::CanvasRenderingContext2DBase::colorSpace const):
* Source/WebCore/html/canvas/PredefinedColorSpace.cpp:
(WebCore::toExtendedDestinationColorSpace):
(WebCore::toDestinationColorSpace):
(WebCore::toPredefinedColorSpace):
* Source/WebCore/html/canvas/PredefinedColorSpace.h:
* Source/WebCore/platform/graphics/PixelFormat.h:
(WebCore::convertToContentsFormat):
(WebCore::allowExtendedColorSpace):

Canonical link: https://commits.webkit.org/318864@main
…s a permanent failure

https://bugs.webkit.org/show_bug.cgi?id=321275
rdar://184323410

Reviewed by Eric Carlson.

navigator.audioSession.type had no effect once the audio session category was recomputed:
media/audioSession/audioSessionType-web-audio.html read "AmbientSound" where it expected
"PlayAndRecord" after starting an AudioContext. The category is computed in the UI process, whose
RemoteMediaSessionManagerProxy read the override out of a configuration built in the GPU process
from the GPU's own audio session, which never carries one. navigator.audioSession.type set the
override on the WebContent process's AudioSession, and nothing forwarded it, so the UI process kept
CategoryType::None and fell through to the WebAudio branch. 100% failure with site isolation
enabled; without it the category is computed in the process that set the override, and the test
passed.

The override now travels in the UpdateMediaSessionStates message, so the UI process has it before
the reply computes a category. The proxy keeps one override per page, so that a page which never
set one does not clear the override belonging to another page, and it drops a page's entry when
that page's process goes away.

* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp:
(WebKit::RemoteMediaSessionManagerProxy::webProcessWillShutDown): Drop the overrides of the
departing process.
(WebKit::RemoteMediaSessionManagerProxy::updateMediaSessionStates): Record the sending page's
override.
(WebKit::RemoteMediaSessionManagerProxy::categoryOverride): Added; returns the override of any page
that set one.
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.h:
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.messages.in: Carry the category
override in UpdateMediaSessionStates.
* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp:
(WebKit::RemoteMediaSessionManager::updateSessionState): Send this process's category override.

Canonical link: https://commits.webkit.org/318865@main
https://bugs.webkit.org/show_bug.cgi?id=321306
rdar://184345417

Reviewed by Tim Nguyen.

Upstream commit: web-platform-tests/wpt@a9ba87f

* LayoutTests/TestExpectations:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/imported/w3c/resources/resource-files.json:
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/WEB_FEATURES.yml: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margins-005-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margins-005.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/crashtests/block-in-inline-remove-crash.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/crashtests/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/inline-box-border-line-break.html:
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/inline-box-padding-line-break.html:
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/margin-collapse-through-percentage-height-block-inside-table-cell-expected.html:
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/support/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/video-controls-hit-test-order-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/video-controls-hit-test-order.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/video-controls-paint-order-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/video-controls-paint-order.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/w3c-import.log:

Canonical link: https://commits.webkit.org/318866@main
… uninitialize()

https://bugs.webkit.org/show_bug.cgi?id=321367
rdar://184421456

Reviewed by Chris Dumez.

clear() assigned m_nodesMarkedForDeletion over m_nodesToDelete instead of appending
to it. m_nodesToDelete is not necessarily empty on entry: uninitialize() sets
m_isAudioThreadFinished before calling handleDeferredDecrementConnectionCounts() and
handleDeferredDerefs(), and those reach markForDeletion(), which appends straight to
m_nodesToDelete once the audio thread is finished, without the deleteMarkedNodes()
call that the public deref() / decrementConnectionCount() wrappers make. Those nodes
were dropped by the assignment. They are deleted by hand, and each holds a Ref to its
context, so a single dropped node leaks the whole BaseAudioContext and its graph.

The loop was dead too: deleteMarkedNodes() drains m_nodesToDelete, so the condition
was always false and nodes marked while deleting other nodes were never collected.

Append instead of assign and loop on m_nodesMarkedForDeletion, restoring the behavior
from before 6eceb6d, which drained before moving.

No test: the deferred lists are only populated when the audio thread failed a
tryLock() on the graph lock, so this cannot be triggered deterministically.

* Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::clear):

Canonical link: https://commits.webkit.org/318867@main
…ime renders NaN

https://bugs.webkit.org/show_bug.cgi?id=321383
rdar://184434164

Reviewed by Chris Dumez.

This patch aligns WebKit with Gecko / Firefox and Blink / Chromium.

Coincident automation event times are legal, so an exponential ramp can have zero
duration. processExponentialRamp() had no guard for that, unlike processLinearRamp().

With deltaTime == 0 the per-sample multiplier is infinite and the starting value's
exponent is 0 / 0. When the event time is not frame-aligned the write cursor is already
at fillToFrame, so the sample loop runs zero times -- but the trailing restore step keys
off writeIndex rather than off whether the loop ran, and computes inf / inf. isEventCurrent()
then skips the ramp, so the branch that would reset the value never runs; a following
setTargetAtTime() writes the NaN to the output until it force-converges after 10 time
constants.

Guard deltaTime the way processLinearRamp() does. A zero-duration ramp has no frames left
to interpolate, so the value is value2 -- which is also what WebKit already produces when
the same events are frame-aligned.

Test: imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-zero-duration-ramp.html

* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-zero-duration-ramp-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-zero-duration-ramp.html: Added.
* Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::processExponentialRamp):

Canonical link: https://commits.webkit.org/318868@main
…ide the source samples

https://bugs.webkit.org/show_bug.cgi?id=321386
rdar://184439324

Reviewed by Chris Dumez.

This patch aligns WebKit with Gecko / Firefox and Blink / Chromium.

renderFromBuffer() keeps its playback position in double precision, but the
reverse branch rounded that position down through floorf(), narrowing the
double to float. Above 2^23 the spacing of float is 1.0, so floorf() rounds to
nearest rather than down and can return a value greater than its argument:
floorf(8388609.5) is 8388610. The interpolation factor derived from it on the
next line is then negative, and computeSampleUsingLinearInterpolation()
extrapolates past the pair of frames it is meant to be mixing between rather
than interpolating between them. A read index rounded up to bufferLength also
trips the bounds check at the top of the loop, breaking out and leaving the
rest of the render quantum unwritten.

The threshold is 2^23 frames, roughly 190 seconds at 44.1kHz. Only the reverse
branch is affected; the forward branch truncates the double directly. The
surrounding code already uses the double overload of floor() when computing
needsInterpolation, so use std::floor() at both sites.

The test renders the same content from a short buffer and from a buffer longer
than 2^23 frames and requires the two to match, since playback depends only on
position relative to the grain. Comparing the two rather than checking absolute
sample values keeps the test independent of the interpolation or resampling
filter an implementation chooses. The pattern deliberately is not a linear
ramp: linearly extrapolating a linear signal happens to land on the correct
value, which is why the existing negative-playbackRate tests do not catch this.

Test: imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-reverse-long-buffer.html

* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-reverse-long-buffer-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-reverse-long-buffer.html: Added.
* Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderFromBuffer):

Canonical link: https://commits.webkit.org/318869@main
…ponse

https://bugs.webkit.org/show_bug.cgi?id=321384
rdar://184434803

Reviewed by Chris Dumez.

This patch aligns WebKit with Gecko / Firefox and Blink / Chromium.

setBufferForBindings() returned early on a null buffer without touching m_reverb
or m_buffer, so assigning null left the node fully configured with the previous
impulse response. Two consequences: the attribute stopped round-tripping, since
bufferForBindings() returns m_buffer and ConvolverNode.idl declares a plain
nullable attribute with no custom setter, so conv.buffer = ir followed by
conv.buffer = null still returned ir; and process() only zeroes its output when
m_reverb is null, so the stale response kept convolving indefinitely. tailTime()
and latencyTime() likewise kept reporting the old response length, holding the
node in tail processing.

The early return predates 2012; 103415@main only removed the adjacent
ASSERT(buffer) that fired on it, leaving the clearing unimplemented. Clear
m_reverb and m_buffer under m_processLock instead, which is the lock both are
guarded by. The graph lock the non-null path takes is not needed here, since
nothing propagates a channel count on this path.

The output channel count is deliberately left alone. It was propagated
downstream when the response was set, and checkNumberOfChannelsForInput()
already leaves it untouched while m_buffer is null, so resetting it would
reconfigure downstream nodes with no basis in the specification.

Also remove the null check guarding the channel-count propagation in the
non-null path, which the early return above made unreachable as false.

The existing webaudio/convolver-setBuffer-null.html only set null on a fresh
convolver, where m_buffer is already null, so it passed throughout. Convert it
from js-test-pre.js to testharness.js so it runs in other engines, and extend it
to cover the round-trip after a response is set and an offline render that must
be silent afterwards. The render assertion is exact rather than thresholded,
because the fixed path zeroes the bus without running the FFT. A companion
assertion checks that a convolver with a response renders non-silent, so the
silence check cannot pass for the wrong reason.

* LayoutTests/webaudio/convolver-setBuffer-null-expected.txt:
* LayoutTests/webaudio/convolver-setBuffer-null.html:
* Source/WebCore/Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::setBufferForBindings):

Canonical link: https://commits.webkit.org/318870@main
https://bugs.webkit.org/show_bug.cgi?id=320946
rdar://183976752

Reviewed by Andres Gonzalez and Tyler Wilcock.

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

This caught a previously unknown crash in getOrCreateIsolatedTree when trying to create an isolated tree
for a document that's been detached from its frame. This was actually easier to hit in testing because
AXObjectCache::transitionToAXThreadModeIfNeeded() iterates over every live AXObjectCache, making it
more likely to randomly catch one in that state.

* LayoutTests/accessibility-isolated-tree/TestExpectations:
* LayoutTests/accessibility/isolated-tree/accessibility-crash-with-dynamic-inline-content-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/accessibility-crash-with-dynamic-inline-content.html: Added.
* LayoutTests/accessibility/isolated-tree/accessibility-node-memory-management-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/accessibility-node-memory-management.html: Added.
* LayoutTests/accessibility/isolated-tree/accessibility-node-reparent-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/accessibility-node-reparent.html: Added.
* LayoutTests/accessibility/isolated-tree/accessibility-object-detached-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/accessibility-object-detached.html: Added.
* LayoutTests/accessibility/isolated-tree/activation-of-input-field-inside-other-element-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/activation-of-input-field-inside-other-element.html: Added.
* LayoutTests/accessibility/isolated-tree/active-descendant-changes-result-in-focus-changes-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/active-descendant-changes-result-in-focus-changes.html: Added.
* LayoutTests/accessibility/isolated-tree/add-children-pseudo-element-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/add-children-pseudo-element.html: Added.
* LayoutTests/accessibility/isolated-tree/adjacent-continuations-cause-assertion-failure-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/adjacent-continuations-cause-assertion-failure.html: Added.
* LayoutTests/accessibility/isolated-tree/alt-tag-on-image-with-nonimage-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/alt-tag-on-image-with-nonimage-role.html: Added.
* LayoutTests/accessibility/isolated-tree/anchor-linked-anonymous-block-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/anchor-linked-anonymous-block-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/anchor-with-click-handler-is-link-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/anchor-with-click-handler-is-link.html: Added.
* LayoutTests/accessibility/isolated-tree/animated-dropdown-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/animated-dropdown.html: Added.
* LayoutTests/accessibility/isolated-tree/announcement-notification-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/announcement-notification.html: Added.
* LayoutTests/accessibility/isolated-tree/anonymous-render-block-in-continuation-causes-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/anonymous-render-block-in-continuation-causes-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/appearance-none-meter-and-progress-elements-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/appearance-none-meter-and-progress-elements.html: Added.
* LayoutTests/accessibility/isolated-tree/area-element-bounding-box-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/area-element-bounding-box.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-focus-author-override-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-focus-author-override.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-focus-in-other-frame-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-focus-in-other-frame.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-focus-no-origin-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-focus-no-origin.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-focus-restore-fallback-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-focus-restore-fallback.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-ignored-target-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-ignored-target.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-preserves-focus-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions-preserves-focus.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-actions.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-activedescendant-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-activedescendant-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-braillelabel-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-braillelabel.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-brailleroledescription-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-brailleroledescription.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-busy-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-busy.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-cellspans-with-native-cellspans-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-cellspans-with-native-cellspans.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-checkbox-checked-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-checkbox-checked.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-checkbox-sends-notification.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-checkbox-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-checkbox-text.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-checked-mixed-value-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-checked-mixed-value.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-controlled-table-row-visibility-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-controlled-table-row-visibility.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-controls-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-controls-with-tabs-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-controls-with-tabs.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-controls.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-current-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-current-global-attribute-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-current-global-attribute.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-current-state-changed-notification-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-current-state-changed-notification.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-current.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-describedby-on-input-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-describedby-on-input.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-description-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-description.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-disabled-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-disabled-propagated-to-children-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-disabled-propagated-to-children.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-disabled.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-expanded-links-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-expanded-links.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-expanded-supported-roles.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-flowto-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-flowto.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-grid-column-span-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-grid-column-span.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-grid-with-aria-owns-rows-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-grid-with-aria-owns-rows.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-grid-with-presentational-sections-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-grid-with-presentational-sections.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-help-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-help.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-deep-dom-no-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-deep-dom-no-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-false-ignored-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-false-ignored.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-focus-not-overridden-when-caught-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-focus-not-overridden-when-caught.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-focus-override-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-focus-override.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-hides-all-elements-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-hides-all-elements.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-modal-override-when-page-empty-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-modal-override-when-page-empty.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-subtree-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-subtree.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-text-stitching-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-text-stitching.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-update-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-update.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-updates-alldescendants-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-updates-alldescendants.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-with-elements-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden-with-elements.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-hidden.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-inherits-presentational.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-invalid-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-invalid.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-keyshortcuts-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-keyshortcuts.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-label-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-label-on-label-element-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-label-on-label-element.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-label.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-added-via-innerHTML-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-added-via-innerHTML.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-cycle-multi-element-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-cycle-multi-element.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-display-contents-shadow-root-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-display-contents-shadow-root.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-hidden-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-hidden-text.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-checkbox-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-checkbox.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-input-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-input.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-password-input-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-password-input.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-aria-label-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-aria-label.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-aria-labeledby-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-aria-labeledby.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-label-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-label.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-stay-within-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-stay-within.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-target-added-via-innerHTML-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-target-added-via-innerHTML.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-targeting-slot-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-targeting-slot.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-text.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-updates-when-aria-label-changes-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-updates-when-aria-label-changes.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-with-descendants-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-labelledby-with-descendants.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-link-supports-press-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-link-supports-press.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-list-and-listitem-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-list-and-listitem.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-listbox-clear-selection-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-listbox-clear-selection-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-listbox-no-selection-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-listbox-no-selection.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-liveregion-marquee-default-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-liveregion-marquee-default.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-liveregions-attributes-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-liveregions-attributes.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-mappings-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-mappings.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-menubar-menuitems.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-modal-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-modal-in-aria-hidden-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-modal-in-aria-hidden.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-modal-multiple-dialogs-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-modal-multiple-dialogs.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-modal-with-text-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-modal-with-text-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-modal.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-multiline-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-multiline.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-multiselectable-grid-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-multiselectable-grid.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-namefrom-author-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-namefrom-author.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-none-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-none-role.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-option-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-option-role.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-orientation-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-orientation.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-crash-after-subtree-update-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-crash-after-subtree-update.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-cycles-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-cycles.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-grid-parts-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-grid-parts.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-hierarchy-remap-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-hierarchy-remap.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-id-change-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-id-change.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-text-stitching-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns-text-stitching.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-owns.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-presentational-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-presentational-role.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-readonly-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-readonly-updates-after-dynamic-change-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-readonly-updates-after-dynamic-change.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-readonly.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-relations-disconnected-subtree-no-timeout-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-relations-disconnected-subtree-no-timeout.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-required-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-required-updates-after-dynamic-change-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-required-updates-after-dynamic-change.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-required.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-role-on-label.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-roledescription-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-roledescription.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-roles-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-roles-unignored-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-roles-unignored.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-roles.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-scrollbar-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-scrollbar-role.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-selected-menu-items.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-selected.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-setsize-posinset-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-setsize-posinset.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-slider-value-change-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-slider-value-change.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-slider-value-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-slider-value.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-sort-changed-notification-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-sort-changed-notification.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-sort-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-sort.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-switch-checked-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-switch-checked.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-switch-sends-notification-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-switch-sends-notification.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-switch-text.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-tab-role-on-buttons-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-tab-role-on-buttons.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-tab-roles-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-tab-roles.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-attributes-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-attributes.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-content-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-content.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-hierarchy.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-indextext-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-indextext.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-selection-support-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-selection-support.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-with-presentational-elements-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-table-with-presentational-elements.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-tables-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-tables.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-text-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-text-role.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-toggle-button-with-title-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-toggle-button-with-title.html: Added.
* LayoutTests/accessibility/isolated-tree/aria-used-on-image-maps-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/aria-used-on-image-maps.html: Added.
* LayoutTests/accessibility/isolated-tree/attachment-element-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/attachment-element.html: Added.
* LayoutTests/accessibility/isolated-tree/attributed-string-for-line-in-table-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/attributed-string-for-line-in-table.html: Added.
* LayoutTests/accessibility/isolated-tree/attributed-string-text-stitching-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/attributed-string-text-stitching.html: Added.
* LayoutTests/accessibility/isolated-tree/auto-fill-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/auto-fill-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/auto-fill-types-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/auto-fill-types.html: Added.
* LayoutTests/accessibility/isolated-tree/ax-object-destroyed-on-reload-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/ax-object-destroyed-on-reload.html: Added.
* LayoutTests/accessibility/isolated-tree/ax-value-with-search-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/ax-value-with-search.html: Added.
* LayoutTests/accessibility/isolated-tree/axpress-on-aria-button-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/axpress-on-aria-button.html: Added.
* LayoutTests/accessibility/isolated-tree/base-select-basic-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/base-select-basic.html: Added.
* LayoutTests/accessibility/isolated-tree/base-select-complex-options-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/base-select-complex-options.html: Added.
* LayoutTests/accessibility/isolated-tree/base-select-focus-on-open-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/base-select-focus-on-open.html: Added.
* LayoutTests/accessibility/isolated-tree/base-select-notifications-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/base-select-notifications.html: Added.
* LayoutTests/accessibility/isolated-tree/base-select-option-border-radius-path-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/base-select-option-border-radius-path.html: Added.
* LayoutTests/accessibility/isolated-tree/base-select-option-press-closes-popover-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/base-select-search-predicate-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/base-select-search-predicate.html: Added.
* LayoutTests/accessibility/isolated-tree/basic-focusability-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/basic-focusability.html: Added.
* LayoutTests/accessibility/isolated-tree/body-element-aria-hidden-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/body-element-aria-hidden.html: Added.
* LayoutTests/accessibility/isolated-tree/box-styled-lists-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/box-styled-lists.html: Added.
* LayoutTests/accessibility/isolated-tree/braille-label-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/braille-label-role.html: Added.
* LayoutTests/accessibility/isolated-tree/button-hidden-and-unhidden-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/button-hidden-and-unhidden-text.html: Added.
* LayoutTests/accessibility/isolated-tree/button-hit-test-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/button-hit-test.html: Added.
* LayoutTests/accessibility/isolated-tree/button-in-deep-dom-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/button-in-deep-dom.html: Added.
* LayoutTests/accessibility/isolated-tree/button-inside-label-ax-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/button-inside-label-ax-text.html: Added.
* LayoutTests/accessibility/isolated-tree/button-press-action-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/button-press-action.html: Added.
* LayoutTests/accessibility/isolated-tree/button-title-change-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/button-title-change.html: Added.
* LayoutTests/accessibility/isolated-tree/button-title-uses-inner-img-alt-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/button-title-uses-inner-img-alt.html: Added.
* LayoutTests/accessibility/isolated-tree/button-with-aria-haspopup-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/button-with-aria-haspopup-role.html: Added.
* LayoutTests/accessibility/isolated-tree/canvas-accessibilitynodeobject-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/canvas-accessibilitynodeobject.html: Added.
* LayoutTests/accessibility/isolated-tree/canvas-description-and-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/canvas-description-and-role.html: Added.
* LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-with-object-fit-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-with-transform-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/canvas-fallback-content-2-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/canvas-fallback-content-2.html: Added.
* LayoutTests/accessibility/isolated-tree/canvas-fallback-content-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/canvas-fallback-content.html: Added.
* LayoutTests/accessibility/isolated-tree/cells-inside-contenteditable-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/cells-inside-contenteditable.html: Added.
* LayoutTests/accessibility/isolated-tree/changing-aria-hidden-with-display-none-parent-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/changing-aria-hidden-with-display-none-parent.html: Added.
* LayoutTests/accessibility/isolated-tree/checkbox-mixed-value-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/checkbox-mixed-value.html: Added.
* LayoutTests/accessibility/isolated-tree/checkbox-radio-element-rect-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/checkbox-radio-element-rect.html: Added.
* LayoutTests/accessibility/isolated-tree/clickable-text-stitching-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/clickable-text-stitching.html: Added.
* LayoutTests/accessibility/isolated-tree/clip-path-bounding-box-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/clip-path-bounding-box.html: Added.
* LayoutTests/accessibility/isolated-tree/color-input-value-changes-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/color-input-value-changes.html: Added.
* LayoutTests/accessibility/isolated-tree/color-picker-press-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/color-picker-press.html: Added.
* LayoutTests/accessibility/isolated-tree/color-well-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/color-well-legacy-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/color-well-legacy.html: Added.
* LayoutTests/accessibility/isolated-tree/color-well.html: Added.
* LayoutTests/accessibility/isolated-tree/column-header-scope-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/column-header-scope.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-control-owns-elements-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-control-owns-elements.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-hierarchy-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-hierarchy.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-no-owns-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-no-owns.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/combobox-active-element-selected-children-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/combobox-active-element-selected-children.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/combobox-linked-listbox-destroyed-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/combobox-linked-listbox-destroyed.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/mac/aria-combobox-activedescendant-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/mac/aria-combobox-activedescendant.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-activedescendant-notifications-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-activedescendant-notifications.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-inherited-role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-inherited-role.html: Added.
* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-value-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-value.html: Added.
* LayoutTests/accessibility/isolated-tree/container-node-delete-causes-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/container-node-delete-causes-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/content-changed-notification-causes-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/content-changed-notification-causes-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/content-editable-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/content-editable-set-inner-text-generates-axvalue-notification-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/content-editable-set-inner-text-generates-axvalue-notification.html: Added.
* LayoutTests/accessibility/isolated-tree/content-editable.html: Added.
* LayoutTests/accessibility/isolated-tree/contenteditable-hidden-div-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/contenteditable-hidden-div.html: Added.
* LayoutTests/accessibility/isolated-tree/contenteditable-spinbutton-uses-arrow-keys-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/contenteditable-spinbutton-uses-arrow-keys.html: Added.
* LayoutTests/accessibility/isolated-tree/contenteditable-table-check-causes-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/contenteditable-table-check-causes-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/contenteditable-values-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/contenteditable-values.html: Added.
* LayoutTests/accessibility/isolated-tree/crash-deleting-dynamically-updated-text-input-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crash-deleting-dynamically-updated-text-input.html: Added.
* LayoutTests/accessibility/isolated-tree/crash-determining-aria-role-when-label-present-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crash-determining-aria-role-when-label-present.html: Added.
* LayoutTests/accessibility/isolated-tree/crash-table-recursive-layout-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crash-table-recursive-layout.html: Added.
* LayoutTests/accessibility/isolated-tree/crash-when-deleting-hidden-element-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crash-when-deleting-hidden-element.html: Added.
* LayoutTests/accessibility/isolated-tree/crash-when-render-tree-is-not-clean-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crash-when-render-tree-is-not-clean.html: Added.
* LayoutTests/accessibility/isolated-tree/crash-when-renderers-are-added-back-to-deferred-list-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crash-when-renderers-are-added-back-to-deferred-list.html: Added.
* LayoutTests/accessibility/isolated-tree/crash-while-adding-text-child-with-transform-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crash-while-adding-text-child-with-transform.html: Added.
* LayoutTests/accessibility/isolated-tree/crash-with-noelement-selectbox-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crash-with-noelement-selectbox.html: Added.
* LayoutTests/accessibility/isolated-tree/crashing-a-tag-in-map-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/crashing-a-tag-in-map.html: Added.
* LayoutTests/accessibility/isolated-tree/create-unconnected-node-during-layout-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/create-unconnected-node-during-layout-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/css-content-alt-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/css-content-alt-text.html: Added.
* LayoutTests/accessibility/isolated-tree/css-content-attribute.html: Added.
* LayoutTests/accessibility/isolated-tree/css-table-ignored-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/css-table-ignored.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/autocomplete-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/autocomplete.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/controls-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/controls-shadow-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/controls-shadow.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/controls.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/current-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/current.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/describedby-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/describedby-shadow-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/describedby-shadow.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/describedby.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/flowto-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/flowto-shadow-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/flowto-shadow.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/flowto.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/heading-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/heading.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/hidden-button-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/hidden-button.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/liveregions-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/liveregions.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-shadow-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-shadow.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/modal-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/modal.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/multiselectable-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/multiselectable.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/orientation-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/orientation.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/posinset-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/posinset.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/pressed-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/pressed.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/role-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/role.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/shadow-element-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/shadow-element-text.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/slider-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/slider.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/table-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/table.html: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/textbox-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/custom-elements/textbox.html: Added.
* LayoutTests/accessibility/isolated-tree/datalist-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/datalist.html: Added.
* LayoutTests/accessibility/isolated-tree/datetime-attribute.html: Added.
* LayoutTests/accessibility/isolated-tree/datetime/input-date-field-labels-and-value-changes-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/datetime/input-datetime-local-label-value-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/datetime/input-datetime-local-label-value.html: Added.
* LayoutTests/accessibility/isolated-tree/datetime/input-time-field-labels-and-value-changes-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/datetime/input-time-field-labels-and-value-changes.html: Added.
* LayoutTests/accessibility/isolated-tree/datetime/input-time-label-value-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/datetime/input-time-label-value.html: Added.
* LayoutTests/accessibility/isolated-tree/datetime/time-input-meridiem-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/datetime/time-input-meridiem.html: Added.
* LayoutTests/accessibility/isolated-tree/deep-tree-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/deep-tree.html: Added.
* LayoutTests/accessibility/isolated-tree/deleting-iframe-destroys-axcache.html: Added.
* LayoutTests/accessibility/isolated-tree/details-summary-content-hidden-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/details-summary-content-hidden.html: Added.
* LayoutTests/accessibility/isolated-tree/dialog-focus-on-open-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dialog-focus-on-open.html: Added.
* LayoutTests/accessibility/isolated-tree/dialog-properties-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dialog-properties.html: Added.
* LayoutTests/accessibility/isolated-tree/dialog-showModal-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dialog-showModal.html: Added.
* LayoutTests/accessibility/isolated-tree/dialog-slotted-content-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dialog-slotted-content.html: Added.
* LayoutTests/accessibility/isolated-tree/dimensions-include-descendants-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dimensions-include-descendants.html: Added.
* LayoutTests/accessibility/isolated-tree/dirty-relations-and-modal-tree-update-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dirty-relations-and-modal-tree-update-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/dirty-style-and-relations-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dirty-style-and-relations-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/disabled-controls-not-focusable-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/disabled-controls-not-focusable.html: Added.
* LayoutTests/accessibility/isolated-tree/dismiss-action-returns-whether-keyevent-handled-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dismiss-action-returns-whether-keyevent-handled.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/aria-grid-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/aria-grid.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/aria-hidden-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/aria-hidden.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/aria-owns-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/aria-owns.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/descendant-menu-item-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/descendant-menu-item.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/dynamically-added-children-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/dynamically-added-children.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/element-roles-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/element-roles.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/end-text-marker-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/end-text-marker.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/list-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/list.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/listbox-item-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/listbox-item.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/object-ordering-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/object-ordering.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/role-row-headers-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/role-row-headers.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/search-traversal-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/search-traversal.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/table-dynamic-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/table-dynamic.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/table-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/table-section-elements-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/table-section-elements.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/table.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/text-under-element-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/text-under-element.html: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/tree-and-treeitems-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-contents/tree-and-treeitems.html: Added.
* LayoutTests/accessibility/isolated-tree/display-flex-shadow-dom-accname-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-flex-shadow-dom-accname.html: Added.
* LayoutTests/accessibility/isolated-tree/display-none-descendant-of-relation-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-none-descendant-of-relation.html: Added.
* LayoutTests/accessibility/isolated-tree/display-table-cell-causes-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/display-table-cell-causes-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/div-within-anchors-causes-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/div-within-anchors-causes-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/double-nested-inline-element-missing-from-tree-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/double-nested-inline-element-missing-from-tree.html: Added.
* LayoutTests/accessibility/isolated-tree/dropdown-value-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dropdown-value.html: Added.
* LayoutTests/accessibility/isolated-tree/duplicate-axrenderobject-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/duplicate-axrenderobject-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/duplicate-child-nodes-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/duplicate-child-nodes.html: Added.
* LayoutTests/accessibility/isolated-tree/duplicate-hidden-label-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/duplicate-hidden-label-text.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-aria-describedby-subtree-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-aria-describedby-subtree.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-aria-describedby-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-aria-describedby-text.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-aria-hidden-cell-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-aria-hidden-cell.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-aria-hidden-inside-button-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-aria-hidden-inside-button.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-attribute-changes-should-update-isenabled-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-attribute-changes-should-update-isenabled.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-changes-update-position-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-changes-update-position.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-colspan-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-colspan.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-content-visibility-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-content-visibility.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-datetime-attribute-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-datetime-attribute.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-expanded-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-expanded-text.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-font-change-dirty-style-and-relations-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-font-change-dirty-style-and-relations.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-frame-prepend-crash-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-frame-prepend-crash.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-table-caption-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-table-caption.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-table-descendants-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-table-descendants.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-table-row-column-indices-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-table-row-column-indices.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-text-color-change-dirty-style-and-relations-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-text-color-change-dirty-style-and-relations.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-text-stitching-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-text-stitching.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamic-text.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamically-changing-iframe-remains-accessible-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamically-changing-iframe-remains-accessible.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamically-ignored-canvas-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamically-ignored-canvas.html: Added.
* LayoutTests/accessibility/isolated-tree/dynamically-unignored-contenteditable-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/dynamically-unignored-contenteditable.html: Added.
* LayoutTests/accessibility/isolated-tree/editable-ancestor-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/editable-ancestor.html: Added.
* LayoutTests/accessibility/isolated-tree/editable-svg-arrow-movement-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/editable-svg-arrow-movement.html: Added.
* LayoutTests/accessibility/isolated-tree/editable-webpage-focused-ui-element-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/editable-webpage-focused-ui-element.html: Added.
* LayoutTests/accessibility/isolated-tree/element-haspopup-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-haspopup.html: Added.
* LayoutTests/accessibility/isolated-tree/element-outside-modal-with-zindex-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-outside-modal-with-zindex.html: Added.
* LayoutTests/accessibility/isolated-tree/element-path-with-css-transforms-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-path-with-css-transforms.html: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariaactivedescendant-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariaactivedescendant.html: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariacontrols-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariacontrols.html: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariadescribedby-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariadescribedby.html: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariadetails-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariadetails.html: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariaerrormessage-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariaerrormessage.html: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariaflowto-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariaflowto.html: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-arialabelledby-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-arialabelledby.html: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariaowns-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/element-reflection-ariaowns.html: Added.
* LayoutTests/accessibility/isolated-tree/ellipsis-text-expected.txt: Added.
* LayoutTests/accessibility/isolated-tree/ellipsis-text.html: Added.
* LayoutTests/platform/mac-sequoia/accessibility/isolated-tree/checkbox-radio-element-rect-expected.txt: Added.
* LayoutTests/platform/mac-sequoia/accessibility/isolated-tree/content-editable-as-textarea-expected.txt: Added.
* LayoutTests/platform/mac-sequoia/accessibility/isolated-tree/element-line-rects-and-text-expected.txt: Added.
* LayoutTests/platform/mac-wk2/TestExpectations:
* LayoutTests/platform/mac-wk2/accessibility/isolated-tree/deleting-iframe-destroys-axcache-expected.txt: Added.
* LayoutTests/platform/mac/TestExpectations:
* LayoutTests/platform/mac/accessibility/isolated-tree/adjacent-continuations-cause-assertion-failure-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-controls-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-describedby-on-input-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-description-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-expanded-supported-roles-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-inherits-presentational-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-labelledby-overrides-aria-label-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-list-and-listitem-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-mappings-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-menubar-menuitems-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-option-role-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-role-on-label-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-selected-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-selected-menu-items-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-switch-text-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-tab-role-on-buttons-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-tab-roles-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-table-hierarchy-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/aria-tables-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/box-styled-lists-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/canvas-description-and-role-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/canvas-fallback-content-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/checkbox-radio-element-rect-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/content-editable-as-textarea-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/css-content-attribute-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/custom-elements/describedby-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/custom-elements/describedby-shadow-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/datetime-attribute-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/div-within-anchors-causes-crash-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/element-line-rects-and-text-expected.txt: Added.
* LayoutTests/platform/mac/accessibility/isolated-tree/element-reflection-ariadescribedby-expected.txt: Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreateIsolatedTree):
(WebCore::AXObjectCache::buildIsolatedTree):

Canonical link: https://commits.webkit.org/318871@main
…dvancing the start position

https://bugs.webkit.org/show_bug.cgi?id=321253

Reviewed by Yusuke Suzuki.

optimizeBOL() marks the body alternatives as once-through and appends copies of
the non-`^` ones as the looping set, so once-through alternatives must only be
tried at the initial start position.

When advancing the start position, the interpreter skipped only the first
once-through alternative and resumed at the second one, so a later alternative
could win over the first, e.g. /a|^x|aa/.exec("caa") returned "aa" instead of
"a". The JIT emits the two sets separately and is not affected.

Skip all once-through alternatives after advancing, and return NoMatch when
there is no looping alternative (e.g. /^a|^b/), matching the JIT.

Tests: JSTests/stress/regexp-once-through-advance-edge-cases.js
       JSTests/stress/regexp-once-through-advance-tries-loop-alternatives-first.js
       JSTests/stress/regexp-once-through-without-loop-alternatives.js

* JSTests/stress/regexp-once-through-advance-edge-cases.js: Added.
(shouldBe):
(check):
* JSTests/stress/regexp-once-through-advance-tries-loop-alternatives-first.js: Added.
(shouldBe):
(check):
* JSTests/stress/regexp-once-through-without-loop-alternatives.js: Added.
(shouldBe):
(check):
* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::matchDisjunction):

Canonical link: https://commits.webkit.org/318872@main
https://bugs.webkit.org/show_bug.cgi?id=321375

Reviewed by Simon Fraser.

On a layout size change, SVGContainerLayout invalidated any gradient using
relative lengths via invalidateGradient(), which nulls both m_gradient and
m_attributes. The next paint then re-runs collectGradientAttributesIfNeeded()
(SVGElement::synchronizeAllAttributes, serializing _every_ animated property\
to a string including the gradientTransform) and createGradient().

For an objectBoundingBox gradient this is wasted: its coordinates resolve
against the object bounding box, and buildGradientIfNeeded already recomputes
that userspace transform on every paint regardless of m_gradient. Only the
object bounding box changed, not the gradient's own resolved data, so the cached
gradient and attributes stay valid. userSpaceOnUse gradients resolve against
the viewport and genuinely change with the layout size.

Introduce invalidateGradientOnLayoutSizeChange(), which only repaints the
gradient clients when objectBoundingBox units are used, keeping the cached
gradient.

* Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::invalidateGradientOnLayoutSizeChange):
* Source/WebCore/rendering/svg/RenderSVGResourceGradient.h:
* Source/WebCore/rendering/svg/SVGContainerLayout.cpp:
(WebCore::SVGContainerLayout::layoutChildren):

Canonical link: https://commits.webkit.org/318873@main
…ng, and should reject creation at runtime

https://bugs.webkit.org/show_bug.cgi?id=321372
rdar://184424841

Reviewed by Sosuke Suzuki.

We should do the same to table64. Module parsing should accept very large
number of memory size limits. But we should reject creation / growth at
runtime.

* JSTests/wasm/js-api/memory64-js-api-errors.js:
(assert.throws):
* JSTests/wasm/js-api/memory64-js-api.js:
(assert.throws):
* JSTests/wasm/stress/memory64-maximum-limits.js:
(Math.min):
* JSTests/wasm/stress/memory64-oversized-limits.js:
* JSTests/wasm/v8/memory64.js:
* LayoutTests/imported/w3c/web-platform-tests/wasm/core/memory64/memory64.wast.js-expected.txt:
* Source/JavaScriptCore/runtime/PageCount.h:
(JSC::PageCount::bytes const):
* Source/JavaScriptCore/wasm/WasmLimits.h:
(JSC::Wasm::maxBufferByteLength):
(JSC::Wasm::static_assert):

Canonical link: https://commits.webkit.org/318874@main
https://bugs.webkit.org/show_bug.cgi?id=321369
rdar://184423667

Reviewed by Sosuke Suzuki.

After 313139@main implemented import-defer, the proposal fixed several
bugs. This patch applies these fixes.

1. tc39/proposal-defer-import-eval#85
   Consider SCC status when deciding to short circuit on ReadyForSyncExecution
   and GatherAsynchronousTransitiveDependencies
2. tc39/proposal-defer-import-eval#87
   (1) introduced an assertion inconsistency, and the PR fixes it.

Tests: JSTests/modules/import-defer-async-cycle-sync-access.js
       JSTests/modules/import-defer/async-cycle-deferred.js
       JSTests/modules/import-defer/async-cycle-member.js
       JSTests/modules/import-defer/async-cycle-setup.js
       JSTests/modules/import-defer/async-cycle-tla.js
       JSTests/modules/import-defer/async-cycle-toucher.js

* JSTests/modules/import-defer-async-cycle-sync-access.js: Added.
* JSTests/modules/import-defer/async-cycle-deferred.js: Added.
* JSTests/modules/import-defer/async-cycle-member.js: Added.
* JSTests/modules/import-defer/async-cycle-setup.js: Added.
* JSTests/modules/import-defer/async-cycle-tla.js: Added.
* JSTests/modules/import-defer/async-cycle-toucher.js: Added.
* JSTests/test262/expectations.yaml:
* Source/JavaScriptCore/runtime/AbstractModuleRecord.cpp:
(JSC::AbstractModuleRecord::gatherAsynchronousTransitiveDependencies):
(JSC::AbstractModuleRecord::readyForSyncExecution):
* Source/JavaScriptCore/runtime/CyclicModuleRecord.h:
(JSC::CyclicModuleRecord::isSCCEvaluated const):

Canonical link: https://commits.webkit.org/318875@main
https://bugs.webkit.org/show_bug.cgi?id=321366
rdar://184418597

Reviewed by Sosuke Suzuki.

This patch fixes wasm memory related operations.

1. Remove parseMemoryIndexForBulkOp and just use parseMemoryIndex. The
   spec test is already fixed, so we no longer need this hack.
2. IPInt popMemoryIndex is renamed to popMemoryAddress as what it is
   actually popping is memory address, not memory index.
3. memory.size and memory.grow should record length in the metadata.

Test: JSTests/wasm/stress/memory-size-grow-non-minimal-memory-index.js

* JSTests/wasm/stress/memory-size-grow-non-minimal-memory-index.js: Added.
(leb):
(build):
* Source/JavaScriptCore/llint/InPlaceInterpreter64.asm:
* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.cpp:
(JSC::Wasm::FunctionIPIntMetadataGenerator::addMemorySize):
(JSC::Wasm::FunctionIPIntMetadataGenerator::addMemoryGrow):
* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h:
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):
(JSC::Wasm::FunctionParser<Context>::parseMemoryIndexForBulkOp): Deleted.
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
(JSC::Wasm::IPIntGenerator::addGrowMemory):
(JSC::Wasm::IPIntGenerator::addCurrentMemory):
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.h:
* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseMemoryHelper):

Canonical link: https://commits.webkit.org/318876@main
Unreviewed.

* LayoutTests/TestExpectations:
* LayoutTests/platform/gtk/TestExpectations:
* LayoutTests/platform/wpe/TestExpectations:

Canonical link: https://commits.webkit.org/318877@main
https://bugs.webkit.org/show_bug.cgi?id=321376

Reviewed by Simon Fraser.

GraphicsContextCG::didUpdateState() converted the brush color to a CGColor on
every FillBrush/StrokeBrush state change, even when the brush is a gradient or
pattern. Those paint directly and never consume the stored fill/stroke color, so
the conversion is wasted.

Guard both cases with SourceBrush::hasPatternOrGradient(). Switching back to a
solid color re-flags the brush change and sets the color again, so state stays
correct.

Covered by existing tests.

* Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::didUpdateState):

Canonical link: https://commits.webkit.org/318878@main
…er changes

https://bugs.webkit.org/show_bug.cgi?id=251424
rdar://105118256

Reviewed by Nikolas Zimmermann.

The memory cache strips the fragment identifier from HTTP URLs, so two background
images differing only by fragment share one CachedResource. Style::CachedImage::equals()
returned true whenever the CachedResource pointers matched, ignoring the fragment.

The fragment is not cosmetic: SVGImage::drawForContainer() applies it to select the
view to draw, so those two images paint differently. Comparing them equal propagated
to changeRequiresRepaint(), which then skipped the repaint, leaving the old image on
screen until something else invalidated the element.

Only take the shared-CachedResource shortcut when the fragments also match.

The test is under http/tests/ because fragments are only stripped for HTTP-family
URLs; a file:// test cannot reproduce this.

* LayoutTests/http/tests/svg/svg-fragment-background-repaint-expected.html: Added.
* LayoutTests/http/tests/svg/svg-fragment-background-repaint.html: Added.
* Source/WebCore/style/values/images/kinds/StyleCachedImage.cpp:
(WebCore::Style::CachedImage::equals const):

Canonical link: https://commits.webkit.org/318879@main
https://bugs.webkit.org/show_bug.cgi?id=320823
rdar://183833913

Reviewed by Nikolas Zimmermann.

buildTransformForProgress() called Path::length() and
Path::traversalStateAtLength() to get the position, then its only caller
immediately recomputed both with identical arguments just to read
normalAngle(). Both are full applyElements() walks, O(segments) with
per-curve subdivision, and Path caches neither. The accumulation loop
added 2 more walks per repeat for a loop-invariant result.

Inline the helper so the position and angle come from one traversal
state, hoist Path::length(), and compute the end-of-path position once
before the accumulation loop. That is 4 + 2 * repeatCount walks per
frame down to 1, or 2 when accumulating.

No behavior change. The angle now comes from a state with the same input
as the one it replaces, including on failure, which the old code also
read from. The loop still composes repeatCount separate translations
rather than one scaled translation, since AffineTransform accumulates
through tx * a + ty * c.

* Source/WebCore/svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
(WebCore::SVGAnimateMotionElement::buildTransformForProgress): Deleted.
* Source/WebCore/svg/SVGAnimateMotionElement.h:

Canonical link: https://commits.webkit.org/318880@main
…n unicode mode

https://bugs.webkit.org/show_bug.cgi?id=320903

Reviewed by Yusuke Suzuki.

With the /u and /v flags, YARR JIT decodes surrogate pairs for every character read.
For a non-inverted character class holding only non-surrogate BMP code points, the
decode is unnecessary: a surrogate code unit, a decoded non-BMP code point and
errorCodePoint all lie outside of such a class, so testing the raw code unit is
equivalent to testing the decoded code point.

This patch reads the raw code unit for such character class terms (\w, \d, \s, [a-z],
BMP-only property escapes ...) in unicode mode and lets them use the class's 64K
m_table, which was disabled whenever surrogate pairs were being decoded.

                                             Base                     Patch

    regexp-u-flag-class-astral-subject     43.2756+-0.5243     ^     35.8856+-1.3000        ^ definitely 1.2059x faster
    regexp-u-flag-character-class-greedy   88.1351+-4.7293     ^     39.2828+-0.2972        ^ definitely 2.2436x faster

Tests: JSTests/microbenchmarks/regexp-u-flag-character-class-greedy.js
       JSTests/microbenchmarks/regexp-u-flag-class-astral-subject.js
       JSTests/stress/regexp-unicode-code-unit-read-for-bmp-terms.js

* JSTests/microbenchmarks/regexp-u-flag-character-class-greedy.js: Added.
(splitmix32):
* JSTests/microbenchmarks/regexp-u-flag-class-astral-subject.js: Added.
* JSTests/stress/regexp-unicode-code-unit-read-for-bmp-terms.js: Added.
(shouldBe):
* Source/JavaScriptCore/yarr/YarrJIT.cpp:
* Source/JavaScriptCore/yarr/YarrPattern.cpp:
(JSC::Yarr::CharacterClass::hasOnlyNonSurrogateBMPCharacters const):
* Source/JavaScriptCore/yarr/YarrPattern.h:
(JSC::Yarr::CharacterClass::hasOnlyBMPCharacters const):

Canonical link: https://commits.webkit.org/318881@main
…00ae4f3d

# Conflicts:
#	Source/JavaScriptCore/CMakeLists.txt
#	Source/JavaScriptCore/assembler/ARMv7Assembler.h
#	Source/JavaScriptCore/assembler/RegisterInfo.h
#	Source/JavaScriptCore/heap/HandleSet.h
#	Source/JavaScriptCore/heap/Heap.h
#	Source/JavaScriptCore/heap/Strong.h
#	Source/JavaScriptCore/interpreter/CallFrame.h
#	Source/JavaScriptCore/runtime/JSGlobalObject.cpp
#	Source/JavaScriptCore/runtime/PageCount.h
#	Source/JavaScriptCore/runtime/TemporalObject.h
#	Source/JavaScriptCore/runtime/TemporalZonedDateTime.cpp
#	Source/JavaScriptCore/wasm/WasmModuleInformation.h
#	Source/WTF/wtf/PlatformUse.h
#	Source/cmake/OptionsJSCOnly.cmake
#	Source/cmake/WebKitMacros.cmake
Comment thread JSTests/README.md
@@ -0,0 +1,23 @@
# JSTests

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 The conflict resolution in Source/JavaScriptCore/builtins/BuiltinExecutables.cpp:227 (outside GitHub's 300-file diff window) references bare isAsyncFunction, which is not in scope in the new createExecutable(..., const BuiltinSourceMetadata& scanned, ...) overload — this is an undeclared-identifier compile error on every platform. Line 223 was correctly updated to scanned.isAsyncFunction per the PR description, but line 227 was missed; change it to if (scanned.isAsyncFunction).

Extended reasoning...

What the bug is

Upstream commit 81d660ceeb2e refactored BuiltinExecutables::createExecutable() so that the source-scanning locals (hasRestParam, isAsyncFunction, parametersStart, etc.) are now computed in a separate static helper computeBuiltinSourceMetadata() and returned as a BuiltinSourceMetadata struct. The results are then passed into a new overload:

UnlinkedFunctionExecutable* BuiltinExecutables::createExecutable(VM& vm, const SourceCode& source, const BuiltinSourceMetadata& scanned, ...)

The fork carries a downstream patch (from bug 304740) that bumps implementationVisibility to Private for async builtins. When re-applying that patch on top of the refactor, the merge produced this at lines 223–228:

SourceParseMode parseMode = scanned.isAsyncFunction ? SourceParseMode::AsyncFunctionMode : SourceParseMode::NormalFunctionMode;

// Async functions should have Private visibility for correct stack traces.
// See https://bugs.webkit.org/show_bug.cgi?id=304740
if (isAsyncFunction)
    implementationVisibility = std::max(implementationVisibility, ImplementationVisibility::Private);

Line 223 correctly reads scanned.isAsyncFunction, but line 227 was left as the bare identifier isAsyncFunction.

Why nothing brings it into scope

Verified against the source at HEAD (merge commit 6c4096e6f5):

  • The only local named isAsyncFunction is declared at line 96 inside computeBuiltinSourceMetadata(), which is a separate function that returns at line 192.
  • BuiltinExecutables.h:63 defines isAsyncFunction only as a field of BuiltinSourceMetadata, not as a member of BuiltinExecutables.
  • The parameter list of the overload starting at line 203 does not contain it, and no local declaration between lines 203 and 227 introduces it.
  • No preprocessor guard wraps line 227 — the only #if in the file is at line 293.

So at line 227 there is no isAsyncFunction in scope: not a local, not a parameter, not a member.

Step-by-step proof

  1. Compiler enters createExecutable(VM&, const SourceCode&, const BuiltinSourceMetadata& scanned, ...) at line 203.
  2. At line 223 it resolves scanned.isAsyncFunction — OK, that's the struct field.
  3. At line 227 it looks up unqualified isAsyncFunction. Local scope: none. Parameter scope: none. Class scope (BuiltinExecutables): no such member. Namespace/global: none.
  4. Result: error: use of undeclared identifier 'isAsyncFunction' (Clang) / error: 'isAsyncFunction' was not declared in this scope (GCC) / C2065: 'isAsyncFunction': undeclared identifier (MSVC).

Impact

This is a hard compile error that will break every build target (jsc, static libs, Bun link) on every platform (macOS, Linux glibc/musl, Windows). The PR description says the debug build succeeded and that this hunk "now reads scanned.isAsyncFunction", but the committed code at 6c4096e6f5 contradicts that — the verification build was almost certainly done before the final push, or against a working tree where line 227 had already been fixed but the fix was not staged.

Fix

Change line 227 from if (isAsyncFunction) to if (scanned.isAsyncFunction), matching line 223.

@robobun

robobun commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #455, which merges a newer upstream state (47f7250) on top of the Yarr and module loader work that landed on main since this was opened.

@robobun robobun closed this Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.