Upgrade to upstream WebKit bbc000ae4f3d - #404
Conversation
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
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
| @@ -0,0 +1,23 @@ | |||
| # JSTests | |||
There was a problem hiding this comment.
🔴 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
isAsyncFunctionis declared at line 96 insidecomputeBuiltinSourceMetadata(), which is a separate function that returns at line 192. BuiltinExecutables.h:63definesisAsyncFunctiononly as a field ofBuiltinSourceMetadata, not as a member ofBuiltinExecutables.- 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
#ifin 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
- Compiler enters
createExecutable(VM&, const SourceCode&, const BuiltinSourceMetadata& scanned, ...)at line 203. - At line 223 it resolves
scanned.isAsyncFunction— OK, that's the struct field. - At line 227 it looks up unqualified
isAsyncFunction. Local scope: none. Parameter scope: none. Class scope (BuiltinExecutables): no such member. Namespace/global: none. - 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.
Merges upstream WebKit main at
bbc000ae4f3d(474 commits since the previous merge-base3722912ff800, 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 refactorff64aee116d4, ARMv7 removal6010a9ea6ce6). The fork only had include-style changes in them, so the deletions are accepted.Heap.h/Strong.h/CMakeLists.txtupdated forStrongSet.h.wtf/PlatformUse.h+interpreter/CallFrame.h: upstream removedUSE_BUILTIN_FRAME_ADDRESSentirely (2a8926009f45), deleting all the fallback paths (prepareCallOperationtopCallFrame 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 raisedMAX_ARRAY_BUFFER_SIZEfrom1ull << 32to1ull << 34; kept with the fork's commented BUN_JSC_ADDITIONS note preserved.runtime/TemporalObject.h/TemporalZonedDateTime.cpp: kept the fork'sTemporalTypeclassifier andTemporalZonedDateTime::toString(from [JSC] Expose TemporalZonedDateTime::toString and a temporalType(JSValue) classifier #393) alongside upstream's new declarations;timeZoneFromRecordnow takes upstream's renamedISO8601::ISOStringTimeZoneParseRecord.runtime/JSGlobalObject.cpp: kept upstream's newcachedLocaleCompareCollatorwhile preserving the fork's relocation ofexposeDollarVMtotools/JSDollarVM.cpp.builtins/BuiltinExecutables.cpp: the fork's async-function visibility patch now readsscanned.isAsyncFunction(upstream81d660ceeb2emoved 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: keptENABLE_BUN_SKIP_FAILING_ASSERTIONS; dropped the ARM32/MIPS capstone block upstream removed.Verification
bun run jsc:build:debug(linux x64, ASAN): builds,jscshell 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.