Timeline



Nov 19, 2021:

11:52 PM Changeset in webkit [286093] by Carlos Garcia Campos
  • 6 edits
    1 add in trunk

[GTK][a11y] Add implementation of image interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232782

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectImageAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::imageDescription const):

Tools:

Add unit tests for the image interface.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testImageBasic):
(beforeAll):

10:57 PM Changeset in webkit [286092] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

Fix WebAssembly memory.fill out of bounds error message
https://bugs.webkit.org/show_bug.cgi?id=233392

Patch by Asumu Takikawa <asumu@igalia.com> on 2021-11-19
Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/references/memory_fill_out_of_bounds.js: Added.

(async test):

Source/JavaScriptCore:

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addMemoryFill):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addMemoryFill):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::WASM_SLOW_PATH_DECL):

10:40 PM Changeset in webkit [286091] by commit-queue@webkit.org
  • 11 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, reverting r286058.
https://bugs.webkit.org/show_bug.cgi?id=233394

Speedometer2 is crashing

Reverted changeset:

"Factor child change invalidation into class"
https://bugs.webkit.org/show_bug.cgi?id=233311
https://commits.webkit.org/r286058

8:50 PM Changeset in webkit [286090] by Alan Bujtas
  • 1 edit
    1 add in trunk/PerformanceTests

Add layout performance test for simple bidi content
(this is not about inline axis direction, just mixed, bidirectional content)

Unreviewed.

  • Layout/line-layout-simple-bidi.html: Added.
7:19 PM Changeset in webkit [286089] by commit-queue@webkit.org
  • 7 edits
    4 adds in trunk/LayoutTests

[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=233385

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-19

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings-expected.txt:

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/html/interaction/focus/chrome-object-tab-focus-bug-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.tentative-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • transitions/clip-path-path-transitions-expected.txt:
7:05 PM Changeset in webkit [286088] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[GLIB][WebDriver] Gardening COOP-related timeouts

Unreviewed test gardening.

6:33 PM Changeset in webkit [286087] by mmaxfield@apple.com
  • 54 edits
    1 copy
    1 add in trunk/Source

[WebGPU] Implement GPU process's message receivers
https://bugs.webkit.org/show_bug.cgi?id=233358

Reviewed by Dean Jackson.

The message receivers have two helper objects:

  1. ObjectHeap, which owns all the message receivers. There is intended to be only one of them per document.
  2. ObjectRegistry, which doesn't own anything, but maintains a mapping from WebGPUIdentifiers to objects. This

registry is necessary because when an object needs to be destroyed, we have to look up which object it
is by ID.

Beyond that, this patch just hooks up those two message receivers, and then forwards all received messages to
the virtual interface that implements WebGPU.

No new tests because there is no behavior change.

  • GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:

(WebKit::RemoteAdapter::RemoteAdapter):
(WebKit::RemoteAdapter::~RemoteAdapter):
(WebKit::RemoteAdapter::requestDevice):

  • GPUProcess/graphics/WebGPU/RemoteAdapter.h:
  • GPUProcess/graphics/WebGPU/RemoteBindGroup.cpp:

(WebKit::RemoteBindGroup::RemoteBindGroup):
(WebKit::RemoteBindGroup::~RemoteBindGroup):
(WebKit::RemoteBindGroup::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
  • GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.cpp:

(WebKit::RemoteBindGroupLayout::RemoteBindGroupLayout):
(WebKit::RemoteBindGroupLayout::~RemoteBindGroupLayout):
(WebKit::RemoteBindGroupLayout::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
  • GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:

(WebKit::RemoteBuffer::RemoteBuffer):
(WebKit::RemoteBuffer::~RemoteBuffer):
(WebKit::RemoteBuffer::mapAsync):
(WebKit::RemoteBuffer::unmap):
(WebKit::RemoteBuffer::destroy):
(WebKit::RemoteBuffer::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBuffer.h:
  • GPUProcess/graphics/WebGPU/RemoteCommandBuffer.cpp:

(WebKit::RemoteCommandBuffer::RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::~RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.cpp:

(WebKit::RemoteCommandEncoder::RemoteCommandEncoder):
(WebKit::RemoteCommandEncoder::~RemoteCommandEncoder):
(WebKit::RemoteCommandEncoder::beginRenderPass):
(WebKit::RemoteCommandEncoder::beginComputePass):
(WebKit::RemoteCommandEncoder::copyBufferToBuffer):
(WebKit::RemoteCommandEncoder::copyBufferToTexture):
(WebKit::RemoteCommandEncoder::copyTextureToBuffer):
(WebKit::RemoteCommandEncoder::copyTextureToTexture):
(WebKit::RemoteCommandEncoder::fillBuffer):
(WebKit::RemoteCommandEncoder::pushDebugGroup):
(WebKit::RemoteCommandEncoder::popDebugGroup):
(WebKit::RemoteCommandEncoder::insertDebugMarker):
(WebKit::RemoteCommandEncoder::writeTimestamp):
(WebKit::RemoteCommandEncoder::resolveQuerySet):
(WebKit::RemoteCommandEncoder::finish):
(WebKit::RemoteCommandEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.cpp:

(WebKit::RemoteComputePassEncoder::RemoteComputePassEncoder):
(WebKit::RemoteComputePassEncoder::~RemoteComputePassEncoder):
(WebKit::RemoteComputePassEncoder::setPipeline):
(WebKit::RemoteComputePassEncoder::dispatch):
(WebKit::RemoteComputePassEncoder::dispatchIndirect):
(WebKit::RemoteComputePassEncoder::beginPipelineStatisticsQuery):
(WebKit::RemoteComputePassEncoder::endPipelineStatisticsQuery):
(WebKit::RemoteComputePassEncoder::endPass):
(WebKit::RemoteComputePassEncoder::setBindGroup):
(WebKit::RemoteComputePassEncoder::pushDebugGroup):
(WebKit::RemoteComputePassEncoder::popDebugGroup):
(WebKit::RemoteComputePassEncoder::insertDebugMarker):
(WebKit::RemoteComputePassEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteComputePipeline.cpp:

(WebKit::RemoteComputePipeline::RemoteComputePipeline):
(WebKit::RemoteComputePipeline::~RemoteComputePipeline):
(WebKit::RemoteComputePipeline::getBindGroupLayout):
(WebKit::RemoteComputePipeline::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
  • GPUProcess/graphics/WebGPU/RemoteDevice.cpp:

(WebKit::RemoteDevice::RemoteDevice):
(WebKit::RemoteDevice::~RemoteDevice):
(WebKit::RemoteDevice::destroy):
(WebKit::RemoteDevice::createBuffer):
(WebKit::RemoteDevice::createTexture):
(WebKit::RemoteDevice::createSampler):
(WebKit::RemoteDevice::importExternalTexture):
(WebKit::RemoteDevice::createBindGroupLayout):
(WebKit::RemoteDevice::createPipelineLayout):
(WebKit::RemoteDevice::createBindGroup):
(WebKit::RemoteDevice::createShaderModule):
(WebKit::RemoteDevice::createComputePipeline):
(WebKit::RemoteDevice::createRenderPipeline):
(WebKit::RemoteDevice::createComputePipelineAsync):
(WebKit::RemoteDevice::createRenderPipelineAsync):
(WebKit::RemoteDevice::createCommandEncoder):
(WebKit::RemoteDevice::createRenderBundleEncoder):
(WebKit::RemoteDevice::createQuerySet):
(WebKit::RemoteDevice::pushErrorScope):
(WebKit::RemoteDevice::popErrorScope):
(WebKit::RemoteDevice::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteDevice.h:
  • GPUProcess/graphics/WebGPU/RemoteExternalTexture.cpp:

(WebKit::RemoteExternalTexture::RemoteExternalTexture):
(WebKit::RemoteExternalTexture::~RemoteExternalTexture):
(WebKit::RemoteExternalTexture::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp:

(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::~RemoteGPU):
(WebKit::RemoteGPU::requestAdapter):

  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.messages.in:
  • GPUProcess/graphics/WebGPU/RemotePipelineLayout.cpp:

(WebKit::RemotePipelineLayout::RemotePipelineLayout):
(WebKit::RemotePipelineLayout::~RemotePipelineLayout):
(WebKit::RemotePipelineLayout::setLabel):

  • GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
  • GPUProcess/graphics/WebGPU/RemoteQuerySet.cpp:

(WebKit::RemoteQuerySet::RemoteQuerySet):
(WebKit::RemoteQuerySet::~RemoteQuerySet):
(WebKit::RemoteQuerySet::destroy):
(WebKit::RemoteQuerySet::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
  • GPUProcess/graphics/WebGPU/RemoteQueue.cpp:

(WebKit::RemoteQueue::RemoteQueue):
(WebKit::RemoteQueue::~RemoteQueue):
(WebKit::RemoteQueue::submit):
(WebKit::RemoteQueue::onSubmittedWorkDone):
(WebKit::RemoteQueue::writeBuffer):
(WebKit::RemoteQueue::writeTexture):
(WebKit::RemoteQueue::copyExternalImageToTexture):
(WebKit::RemoteQueue::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteQueue.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderBundle.cpp:

(WebKit::RemoteRenderBundle::RemoteRenderBundle):
(WebKit::RemoteRenderBundle::~RemoteRenderBundle):
(WebKit::RemoteRenderBundle::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp:

(WebKit::RemoteRenderBundleEncoder::RemoteRenderBundleEncoder):
(WebKit::RemoteRenderBundleEncoder::~RemoteRenderBundleEncoder):
(WebKit::RemoteRenderBundleEncoder::setPipeline):
(WebKit::RemoteRenderBundleEncoder::setIndexBuffer):
(WebKit::RemoteRenderBundleEncoder::setVertexBuffer):
(WebKit::RemoteRenderBundleEncoder::draw):
(WebKit::RemoteRenderBundleEncoder::drawIndexed):
(WebKit::RemoteRenderBundleEncoder::drawIndirect):
(WebKit::RemoteRenderBundleEncoder::drawIndexedIndirect):
(WebKit::RemoteRenderBundleEncoder::setBindGroup):
(WebKit::RemoteRenderBundleEncoder::pushDebugGroup):
(WebKit::RemoteRenderBundleEncoder::popDebugGroup):
(WebKit::RemoteRenderBundleEncoder::insertDebugMarker):
(WebKit::RemoteRenderBundleEncoder::finish):
(WebKit::RemoteRenderBundleEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp:

(WebKit::RemoteRenderPassEncoder::RemoteRenderPassEncoder):
(WebKit::RemoteRenderPassEncoder::~RemoteRenderPassEncoder):
(WebKit::RemoteRenderPassEncoder::setPipeline):
(WebKit::RemoteRenderPassEncoder::setIndexBuffer):
(WebKit::RemoteRenderPassEncoder::setVertexBuffer):
(WebKit::RemoteRenderPassEncoder::draw):
(WebKit::RemoteRenderPassEncoder::drawIndexed):
(WebKit::RemoteRenderPassEncoder::drawIndirect):
(WebKit::RemoteRenderPassEncoder::drawIndexedIndirect):
(WebKit::RemoteRenderPassEncoder::setBindGroup):
(WebKit::RemoteRenderPassEncoder::pushDebugGroup):
(WebKit::RemoteRenderPassEncoder::popDebugGroup):
(WebKit::RemoteRenderPassEncoder::insertDebugMarker):
(WebKit::RemoteRenderPassEncoder::setViewport):
(WebKit::RemoteRenderPassEncoder::setScissorRect):
(WebKit::RemoteRenderPassEncoder::setBlendConstant):
(WebKit::RemoteRenderPassEncoder::setStencilReference):
(WebKit::RemoteRenderPassEncoder::beginOcclusionQuery):
(WebKit::RemoteRenderPassEncoder::endOcclusionQuery):
(WebKit::RemoteRenderPassEncoder::beginPipelineStatisticsQuery):
(WebKit::RemoteRenderPassEncoder::endPipelineStatisticsQuery):
(WebKit::RemoteRenderPassEncoder::executeBundles):
(WebKit::RemoteRenderPassEncoder::endPass):
(WebKit::RemoteRenderPassEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderPipeline.cpp:

(WebKit::RemoteRenderPipeline::RemoteRenderPipeline):
(WebKit::RemoteRenderPipeline::~RemoteRenderPipeline):
(WebKit::RemoteRenderPipeline::getBindGroupLayout):
(WebKit::RemoteRenderPipeline::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
  • GPUProcess/graphics/WebGPU/RemoteSampler.cpp:

(WebKit::RemoteSampler::RemoteSampler):
(WebKit::RemoteSampler::~RemoteSampler):
(WebKit::RemoteSampler::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteSampler.h:
  • GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp:

(WebKit::RemoteShaderModule::RemoteShaderModule):
(WebKit::RemoteShaderModule::~RemoteShaderModule):
(WebKit::RemoteShaderModule::compilationInfo):
(WebKit::RemoteShaderModule::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
  • GPUProcess/graphics/WebGPU/RemoteTexture.cpp:

(WebKit::RemoteTexture::RemoteTexture):
(WebKit::RemoteTexture::~RemoteTexture):
(WebKit::RemoteTexture::createView):
(WebKit::RemoteTexture::destroy):
(WebKit::RemoteTexture::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteTexture.h:
  • GPUProcess/graphics/WebGPU/RemoteTextureView.cpp:

(WebKit::RemoteTextureView::RemoteTextureView):
(WebKit::RemoteTextureView::~RemoteTextureView):
(WebKit::RemoteTextureView::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteTextureView.h:
  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:

(WebKit::WebGPU::ObjectHeap::addObject):
(WebKit::WebGPU::ObjectHeap::removeObject):
(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertGPUFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking): Deleted.
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking): Deleted.

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
  • GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.cpp: Added.

(WebKit::WebGPU::ObjectRegistry::ObjectRegistry):
(WebKit::WebGPU::ObjectRegistry::~ObjectRegistry):
(WebKit::WebGPU::ObjectRegistry::addObject):
(WebKit::WebGPU::ObjectRegistry::removeObject):
(WebKit::WebGPU::ObjectRegistry::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertBufferFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertGPUFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertQueueFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertTextureFromBacking):
(WebKit::WebGPU::ObjectRegistry::convertTextureViewFromBacking):

  • GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h: Copied from Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h.
  • Shared/WebGPU/WebGPUConvertFromBackingContext.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebKit.xcodeproj/xcshareddata/xcschemes/WebKit.xcscheme:
4:56 PM Changeset in webkit [286086] by commit-queue@webkit.org
  • 19 edits
    2 adds in trunk

Implement parsing and animation support for ray() shape accepted by offset-path
https://bugs.webkit.org/show_bug.cgi?id=233153

Patch by Kiet Ho <Kiet Ho> on 2021-11-19
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Rebaselined tests that now should pass.

  • web-platform-tests/css/motion/animation/offset-path-composition-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-005-expected.txt:
  • web-platform-tests/css/motion/offset-supports-calc-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-path-computed-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-path-computed.html:
  • web-platform-tests/css/motion/parsing/offset-path-parsing-valid-expected.txt:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/motion/animation/offset-path-composition.html

imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-005.html
imported/w3c/web-platform-tests/css/motion/offset-supports-calc.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-invalid.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-valid.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): Added support for blending between ray()s.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueIDForRaySize):
(WebCore::valueForPathOperation): Added support for getting the computed value of ray().

  • css/CSSRayValue.cpp: Added.

(WebCore::CSSRayValue::customCSSText const):
(WebCore::CSSRayValue::equals const):

  • css/CSSRayValue.h: Added.
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isRayValue const):

  • css/CSSValueKeywords.in: Added new keywords used by ray().
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRayShape): Added method to consume ray().
(WebCore::consumePathOperation): Added a switch to control whether to accept
ray() or not. Both clip-path and offset-path uses this function, however clip-path
doesn't support the ray shape, while offset-path does, hence the switch.
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/PathOperation.h: Added a new subclass of PathOperation called RayPathOperation

to represent ray().

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hitTestClipPath const):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertPathOperation): Added support for converting CSSRayValue
to RayPathOperation.

4:49 PM Changeset in webkit [286085] by commit-queue@webkit.org
  • 9 edits in trunk

Integrate motion path transforms in transformation pipeline
https://bugs.webkit.org/show_bug.cgi?id=233144

Patch by Kiet Ho <Kiet Ho> on 2021-11-19
Reviewed by Dean Jackson.

Source/WebCore:

This patch ties everything together and renders CSS Motion Path out onto the screen.
Motion path properties are desugared into two transformations: one translate to move
the element to the specified location on the path, and one rotate to rotate the element
to the correct orientation specified by offset-rotate. The two transformations are applied
after scale() and before the individual transform functions, as specified in the CSS
Transforms spec.

Tests: imported/w3c/web-platform-tests/css/motion/animation/reftests/offset-path-with-transforms-001.html

imported/w3c/web-platform-tests/css/motion/offset-distance-001.html
imported/w3c/web-platform-tests/css/motion/offset-distance-002.html
imported/w3c/web-platform-tests/css/motion/offset-distance-003.html
imported/w3c/web-platform-tests/css/motion/offset-distance-004.html
imported/w3c/web-platform-tests/css/motion/offset-distance-005.html
imported/w3c/web-platform-tests/css/motion/offset-distance-006.html
imported/w3c/web-platform-tests/css/motion/offset-distance-007.html
imported/w3c/web-platform-tests/css/motion/offset-distance-008.html
imported/w3c/web-platform-tests/css/motion/offset-distance-009.html
imported/w3c/web-platform-tests/css/motion/offset-path-string-001.html
imported/w3c/web-platform-tests/css/motion/offset-path-string-002.html
imported/w3c/web-platform-tests/css/motion/offset-rotate-003.html
imported/w3c/web-platform-tests/css/motion/offset-rotate-004.html
imported/w3c/web-platform-tests/css/motion/offset-rotate-005.html

  • platform/graphics/Path.cpp:

(WebCore::Path::isClosed const): Added method to determine if a Path is closed (i.e,
the last draw command is CloseSubpath). This is required because offset-distance is
handled differently depending on if the Path is closed or not.

  • platform/graphics/Path.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::recompositeChangeRequiresGeometryUpdate): Account in changes in motion path properties.

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasTransform const): Account in motion path properties.

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):
(WebCore::RenderStyle::applyTransform const): Add an additional step to apply motion path transforms.
(WebCore::getPathFromPathOperation):
(WebCore::getTraversalStateAtDistance):
(WebCore::RenderStyle::applyMotionPathTransform const): Added method to apply motion path transforms.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasTransform const): Account for motion path properties.

LayoutTests:

Removed ImageOnlyFailure expectations for tests that should now pass.

3:52 PM Changeset in webkit [286084] by achristensen@apple.com
  • 33 edits in trunk

Implement extension-path variant of redirect action in WKContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=233351

Reviewed by Tim Hatcher.

Source/WebCore:

Because the extension path changes each time you relaunch Safari but the compiled bytecode does not,
we need a way to pass in the extension base URL when adding the looked-up or compiled WKContentRuleList
to the WKUserContentController.

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::create):
(WebCore::ContentExtensions::ContentExtension::ContentExtension):

  • contentextensions/ContentExtension.h:

(WebCore::ContentExtensions::ContentExtension::extensionBaseURL const):

  • contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::RedirectAction::applyToRequest):

  • contentextensions/ContentExtensionActions.h:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::applyResultsToRequest):

  • contentextensions/ContentExtensionsBackend.h:
  • contentextensions/ContentRuleListResults.h:

Source/WebKit:

  • NetworkProcess/NetworkContentRuleListManager.cpp:

(WebKit::NetworkContentRuleListManager::addContentRuleLists):

  • NetworkProcess/NetworkContentRuleListManager.h:
  • NetworkProcess/NetworkContentRuleListManager.messages.in:
  • Shared/ServiceWorkerInitializationData.cpp:

(WebKit::ServiceWorkerInitializationData::decode):

  • Shared/ServiceWorkerInitializationData.h:
  • Shared/UserContentControllerParameters.cpp:

(WebKit::UserContentControllerParameters::decode):

  • Shared/UserContentControllerParameters.h:
  • Shared/WebCompiledContentRuleListData.cpp:

(WebKit::WebCompiledContentRuleListData::encode const):
(WebKit::WebCompiledContentRuleListData::decode):

  • Shared/WebCompiledContentRuleListData.h:

(WebKit::WebCompiledContentRuleListData::WebCompiledContentRuleListData):

  • UIProcess/API/APIContentRuleList.cpp:

(API::ContentRuleList::ContentRuleList):
(API::ContentRuleList::name const):

  • UIProcess/API/APIContentRuleList.h:
  • UIProcess/API/APIContentRuleListStore.cpp:

(API::createExtension):

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController _addContentRuleList:extensionBaseURL:]):

  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::contentExtensionRules):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::contentRuleListData const):
(WebKit::WebUserContentControllerProxy::addContentRuleList):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:

(WebKit::WebUserContentControllerProxy::addContentRuleList):
(WebKit::WebUserContentControllerProxy::contentExtensionRules):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::contentRuleListsFromIdentifier):

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addContentRuleLists):

  • WebProcess/UserContent/WebUserContentController.h:
  • WebProcess/UserContent/WebUserContentController.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::makeBackend):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:

(TEST_F):

3:19 PM Changeset in webkit [286083] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r286030.
https://bugs.webkit.org/show_bug.cgi?id=233387

5% JetStream2 regression

Reverted changeset:

"DFGByteCodeParser.cpp should avoid resizing the Operands<> of
every BasicBlock on every inlining"
https://bugs.webkit.org/show_bug.cgi?id=228053
https://commits.webkit.org/r286030

3:14 PM Changeset in webkit [286082] by graouts@webkit.org
  • 4 edits in trunk/Source/WebKit

[Model] Use RefPtr across ARKitInlinePreviewModelPlayer when creating strong pointers
https://bugs.webkit.org/show_bug.cgi?id=233375

Reviewed by Wenson Hsieh.

  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::getCamera):
(WebKit::ARKitInlinePreviewModelPlayer::setCamera):
(WebKit::ARKitInlinePreviewModelPlayer::isPlayingAnimation):
(WebKit::ARKitInlinePreviewModelPlayer::setAnimationIsPlaying):

  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::enterFullscreen):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::load):

2:41 PM Changeset in webkit [286081] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

[Model] Reduce use of callOnMainRunLoop in ModelElementControllerCocoa
https://bugs.webkit.org/show_bug.cgi?id=233376

Reviewed by Wenson Hsieh.

We only need to use callOnMainRunLoop inside of blocks.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::getCameraForModelElement):
(WebKit::ModelElementController::setCameraForModelElement):
(WebKit::ModelElementController::isPlayingAnimationForModelElement):
(WebKit::ModelElementController::setAnimationIsPlayingForModelElement):

2:38 PM Changeset in webkit [286080] by Chris Dumez
  • 2 edits
    1 add in trunk/Source/WebKit

Revert r282446 to bring back support for WebKitAdditions in Framework headers
https://bugs.webkit.org/show_bug.cgi?id=233374

Reviewed by Wenson Hsieh.

  • WebKit.xcodeproj/project.pbxproj:
  • mac/replace-webkit-additions-includes.py: Added.

(read_content_from_webkit_additions):
(main):

2:20 PM Changeset in webkit [286079] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ] TestWebKitAPI.WebSocket.PageWithAttributedBundleIdentifierDestroyed (API-test) is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=233224

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:

(TestWebKitAPI::TEST):

2:19 PM Changeset in webkit [286078] by J Pascoe
  • 4 edits in trunk

[WebAuthn] Add headers for [_WKWebAuthenticationPanel makeCredentialWithClientDataHash] and [_WKWebAuthenticationPanel getAssertionWithClientDataHash]
https://bugs.webkit.org/show_bug.cgi?id=233371
<rdar://problem/85607248>
Source/WebKit:

Reviewed by Brent Fulgham.

These SPIs were added in https://bugs.webkit.org/show_bug.cgi?id=233216, but were not added to the header
file _WKWebAuthenticationPanel.h, this change adds them.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:

Tools:

Reviewed by Brent Fulgham.

Add tests for [_WKWebAuthenticationPanel makeCredentialWithClientDataHash] and
[_WKWebAuthenticationPanel getAssertionWithClientDataHash].

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

2:05 PM Changeset in webkit [286077] by mmaxfield@apple.com
  • 99 edits
    58 copies
    5 adds in trunk/Source

[WebGPU] Add converters from serializable descriptors to interface descriptors
https://bugs.webkit.org/show_bug.cgi?id=233310

Reviewed by Dean Jackson.

Source/WebCore:

The WebGPU abstract interface (in PAL/graphics/WebGPU) has a set of structs for descriptors. These descriptors hold references to
objects, so these interfaces can't be serialized directly. Instead, we have a parallel set of structs (in WebKit/Shared/WebGPU)
which replace the object references with WebGPUIdentifiers. The web process side will convert the abstract interface structs
to the serializable ones, and the GPU process side will convert back. This patch implements the converters back, from the serializable
structs to the abstract interface structs.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUBindGroupDescriptor.h:

(WebCore::GPUBindGroupDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUBindGroupLayoutDescriptor.h:

(WebCore::GPUBindGroupLayoutDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUCompilationInfo.cpp:

(WebCore::GPUCompilationInfo::messages const):

  • Modules/WebGPU/GPUCompilationMessage.h:

(WebCore::GPUCompilationMessage::create):
(WebCore::GPUCompilationMessage::GPUCompilationMessage):

  • Modules/WebGPU/GPUComputePassTimestampWrite.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUDeviceDescriptor.h:

(WebCore::GPUDeviceDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUFragmentState.h:

(WebCore::GPUFragmentState::convertToBacking const):

  • Modules/WebGPU/GPUPipelineLayoutDescriptor.h:

(WebCore::GPUPipelineLayoutDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUProgrammableStage.h:

(WebCore::GPUProgrammableStage::convertToBacking const):

  • Modules/WebGPU/GPUQuerySetDescriptor.h:

(WebCore::GPUQuerySetDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderBundleEncoderDescriptor.h:

(WebCore::GPURenderBundleEncoderDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderPassDescriptor.h:

(WebCore::GPURenderPassDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderPassLayout.h:

(WebCore::GPURenderPassLayout::convertToBacking const):

  • Modules/WebGPU/GPURenderPassTimestampWrite.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUVertexBufferLayout.h:

(WebCore::GPUVertexBufferLayout::convertToBacking const):

  • Modules/WebGPU/GPUVertexState.h:

(WebCore::GPUVertexState::convertToBacking const):

Source/WebCore/PAL:

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:

(PAL::WebGPU::AdapterImpl::requestDevice):

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::DeviceImpl::createBindGroupLayout):
(PAL::WebGPU::DeviceImpl::createPipelineLayout):
(PAL::WebGPU::DeviceImpl::createBindGroup):
(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
(PAL::WebGPU::DeviceImpl::createQuerySet):

  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:

(PAL::WebGPU::QueueImpl::submit):

  • pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp:

(PAL::WebGPU::RenderPassEncoderImpl::executeBundles):

  • pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp:

(PAL::WebGPU::TextureImpl::createView):
(PAL::WebGPU::TextureImpl::createView const): Deleted.

  • pal/graphics/WebGPU/WebGPUCompilationMessage.h:
  • pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
  • pal/graphics/WebGPU/WebGPUSupportedLimits.h:
  • pal/graphics/WebGPU/WebGPUValidationError.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:

(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertGPUFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking):

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
  • Scripts/generate-unified-sources.sh:
  • Shared/WebGPU/WebGPUBindGroupDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUFragmentState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupDescriptor.h:
  • Shared/WebGPU/WebGPUBindGroupEntry.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupEntry.h:
  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h:
  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.h:
  • Shared/WebGPU/WebGPUBlendComponent.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBlendComponent.h:
  • Shared/WebGPU/WebGPUBlendState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBlendState.h:
  • Shared/WebGPU/WebGPUBufferBinding.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferBinding.h:
  • Shared/WebGPU/WebGPUBufferBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferBindingLayout.h:
  • Shared/WebGPU/WebGPUBufferDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferDescriptor.h:
  • Shared/WebGPU/WebGPUCanvasConfiguration.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUFragmentState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCanvasConfiguration.h:
  • Shared/WebGPU/WebGPUColor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUColor.h:
  • Shared/WebGPU/WebGPUColorTargetState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUColorTargetState.h:
  • Shared/WebGPU/WebGPUCommandBufferDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCommandBufferDescriptor.h:
  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.h:
  • Shared/WebGPU/WebGPUCompilationMessage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCompilationMessage.h:
  • Shared/WebGPU/WebGPUComputePassDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePassDescriptor.h:
  • Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePassDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePassTimestampWrites.h:
  • Shared/WebGPU/WebGPUComputePipelineDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePipelineDescriptor.h:
  • Shared/WebGPU/WebGPUConvertFromBackingContext.h:
  • Shared/WebGPU/WebGPUDepthStencilState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUDepthStencilState.h:
  • Shared/WebGPU/WebGPUDeviceDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUDeviceDescriptor.h:
  • Shared/WebGPU/WebGPUError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUOrigin2D.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUError.h:
  • Shared/WebGPU/WebGPUExtent3D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExtent3D.h:
  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUExternalTextureDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExternalTextureDescriptor.h:
  • Shared/WebGPU/WebGPUFragmentState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUFragmentState.h:
  • Shared/WebGPU/WebGPUImageCopyBuffer.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyBuffer.h:
  • Shared/WebGPU/WebGPUImageCopyExternalImage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyExternalImage.h:
  • Shared/WebGPU/WebGPUImageCopyTexture.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTexture.h:
  • Shared/WebGPU/WebGPUImageCopyTextureTagged.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTextureTagged.h:
  • Shared/WebGPU/WebGPUImageDataLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageDataLayout.h:
  • Shared/WebGPU/WebGPUMultisampleState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUMultisampleState.h:
  • Shared/WebGPU/WebGPUObjectDescriptorBase.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUObjectDescriptorBase.h:
  • Shared/WebGPU/WebGPUOrigin2D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOrigin2D.h:
  • Shared/WebGPU/WebGPUOrigin3D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOrigin3D.h:
  • Shared/WebGPU/WebGPUOutOfMemoryError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOutOfMemoryError.h:
  • Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPipelineDescriptorBase.h:
  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUPipelineLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h:
  • Shared/WebGPU/WebGPUPrimitiveState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPrimitiveState.h:
  • Shared/WebGPU/WebGPUProgrammableStage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUProgrammableStage.h:
  • Shared/WebGPU/WebGPUQuerySetDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUQuerySetDescriptor.h:
  • Shared/WebGPU/WebGPURenderBundleDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderBundleDescriptor.h:
  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
  • Shared/WebGPU/WebGPURenderPassColorAttachment.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassColorAttachment.h:
  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
  • Shared/WebGPU/WebGPURenderPassDescriptor.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDescriptor.h:
  • Shared/WebGPU/WebGPURenderPassLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassLayout.h:
  • Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp: Copied from Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrite.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassTimestampWrites.h:
  • Shared/WebGPU/WebGPURenderPipelineDescriptor.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPipelineDescriptor.h:
  • Shared/WebGPU/WebGPURequestAdapterOptions.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURequestAdapterOptions.h:
  • Shared/WebGPU/WebGPUSamplerBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSamplerBindingLayout.h:
  • Shared/WebGPU/WebGPUSamplerDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSamplerDescriptor.h:
  • Shared/WebGPU/WebGPUShaderModuleDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUShaderModuleDescriptor.h:
  • Shared/WebGPU/WebGPUStencilFaceState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUStencilFaceState.h:
  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSupportedFeatures.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUSupportedFeatures.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSupportedFeatures.h:
  • Shared/WebGPU/WebGPUSupportedLimits.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSupportedLimits.h:
  • Shared/WebGPU/WebGPUTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUValidationError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUTextureDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureDescriptor.h:
  • Shared/WebGPU/WebGPUTextureViewDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureViewDescriptor.h:
  • Shared/WebGPU/WebGPUValidationError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUValidationError.h:
  • Shared/WebGPU/WebGPUVertexAttribute.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexAttribute.h:
  • Shared/WebGPU/WebGPUVertexBufferLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexBufferLayout.h:
  • Shared/WebGPU/WebGPUVertexState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexState.h:
  • Sources.txt:
  • UnifiedSources-output.xcfilelist:
  • WebKit.xcodeproj/project.pbxproj:
2:00 PM Changeset in webkit [286076] by Jonathan Bedard
  • 10 edits in trunk/Tools

[webkitcorepy] Indicate to user the default option
https://bugs.webkit.org/show_bug.cgi?id=233342
<rdar://problem/85573383>

Reviewed by Ryan Haddad.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py:

(Terminal.choose): Surround the default option with square brackets.

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/terminal_unittest.py:

(TerminalTests.test_choose_triple):

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

(Setup.github): We should construct a user owned mirror by default.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:

(TestLand.test_default):
(TestLand.test_canonicalize):
(TestLand.test_svn):
(TestLandGitHub):

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

(TestSetup.test_github):

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

1:43 PM Changeset in webkit [286075] by beidson@apple.com
  • 17 edits
    1 copy
    1 add in trunk

More webpushd architecture work
https://bugs.webkit.org/show_bug.cgi?id=233295

Reviewed by Alex Christensen.

Source/WebKit:

Covered by API tests.

This patch:

  • Adds entitlement checks for connections to webpushd
  • Adds a "ClientConnection" object to the daemon to manage per-connection state
  • Adds a debug enabled setting
  • Adds the ability for the connecting app (com.apple.WebKit.Networking) to pass the host app's audit_token
  • Tests some of the above
  • Adds the beginnings of other future infrastructure
  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::NetworkNotificationManager):

  • Resources/ios/XPCService-embedded-simulator.entitlements:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/CodeSigning.h:
  • Shared/Cocoa/CodeSigning.mm:

(WebKit::codeSigningIdentifierAndPlatformBinaryStatus):
(WebKit::codeSigningIdentifier):

  • Shared/WebPushDaemonConstants.h:

(WebKit::WebPushD::messageTypeSendsReply):

  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/PushClientConnection.h: Copied from Source/WebKit/Shared/Cocoa/CodeSigning.h.

(WebPushD::ClientConnection::hasAuditToken const):
(WebPushD::ClientConnection::debugModeIsEnabled const):

  • webpushd/PushClientConnection.mm: Added.

(WebPushD::ClientConnection::ClientConnection):
(WebPushD::ClientConnection::setAuditTokenData):
(WebPushD::ClientConnection::hostCodeSigningIdentifier):
(WebPushD::ClientConnection::hostHasPushEntitlement):
(WebPushD::ClientConnection::setDebugModeIsEnabled):

  • webpushd/WebPushDaemon.h:
  • webpushd/WebPushDaemon.mm:

(WebPushD::handleWebPushDMessageWithReply):
(WebPushD::handleWebPushDMessage):
(WebPushD::Daemon::broadcastDebugMessage):
(WebPushD::Daemon::connectionEventHandler):
(WebPushD::Daemon::connectionAdded):
(WebPushD::Daemon::connectionRemoved):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::echoTwice):
(WebPushD::Daemon::canRegisterForNotifications):
(WebPushD::Daemon::requestSystemNotificationPermission):
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions):
(WebPushD::Daemon::deletePushAndNotificationRegistration):
(WebPushD::Daemon::setHostAppAuditToken):
(WebPushD::Daemon::setDebugModeIsEnabled):
(WebPushD::Daemon::toClientConnection):

  • webpushd/WebPushDaemonMain.mm:

(main):

Tools:

  • TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:
  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

(TestWebKitAPI::TEST):

1:35 PM Changeset in webkit [286074] by Jonathan Bedard
  • 7 edits
    1 move in trunk/Tools

[resultsdbpy] Move AuthedBlueprint to webkitflaskpy
https://bugs.webkit.org/show_bug.cgi?id=233339
<rdar://problem/85571604>

Reviewed by Ryan Haddad.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/api_routes.py: Import

AuthedBlueprint from webkitflaskpy.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/view_routes.py: Ditto.
  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
  • Scripts/libraries/webkitflaskpy/setup.py: Ditto.
  • Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py: Bump Export object.
  • Scripts/libraries/webkitflaskpy/webkitflaskpy/authed_blueprint.py: Renamed from

Tools/Scripts/libraries/resultsdbpy/resultsdbpy/flask_support/authed_blueprint.py.

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

1:20 PM Changeset in webkit [286073] by Brent Fulgham
  • 9 edits in trunk

Add support for web app manifest icons in WebKit/UI Process layer
https://bugs.webkit.org/show_bug.cgi?id=233350
<rdar://problem/84311569>

Reviewed by Chris Dumez.

Source/WebCore:

This patch builds on the work in Bug 231339 and threads the new icons
feature through the WebKit layer.

This change modifies the parser to represent the 'sizes' member of the
icon as an array of strings, rather than a single string containing the
sizes as a set of space-separated items. This more closesly matches the
behavior of the WebKit API layer.

Tested by TestWebKitAPI.

  • Modules/applicationmanifest/ApplicationManifest.h:
  • Modules/applicationmanifest/ApplicationManifestParser.cpp:

(WebCore::ApplicationManifestParser::parseIcons):

Source/WebKit:

This patch builds on the work in Bug 231339 and threads the new icons
feature through the WebKit layer.

Note: This change also moves the implementation of _WKApplicationManifestIcon
earlier in the file since the implementation is needed for proper serialization
of the _WKApplicationManifest.

Tested by TestWebKitAPI (ApplicationManifest.Icons) test.

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

(fromPurposes): New helper function.
(makeVectorElement): Ditto.
(-[_WKApplicationManifestIcon initWithCoder:]): Updated to call proper
serialization methods.
(-[_WKApplicationManifestIcon initWithCoreIcon:]): Added.
(-[_WKApplicationManifest initWithCoder:]): Updated to properly handle
serializing the object.
(-[_WKApplicationManifest icons]): Added.

Tools:

Add a new API test to exercise the _WKApplicationManifestIcon API.

  • TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:

(ApplicationManifestParserTest::testIconsSizes):
(TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:

(TestWebKitAPI::TEST):

12:12 PM Changeset in webkit [286072] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ]TestWebKitAPI.PrivateClickMeasurement.EphemeralWithAttributedBundleIdentifier (API-test) is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=233345

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

11:47 AM Changeset in webkit [286071] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Enable message filtering for all WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=233334
<rdar://problem/85568306>

Reviewed by Brent Fulgham.

The sandbox parameter enabling message filtering should be set in all WebKit processes.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::AuxiliaryProcess::initializeSandbox):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeSandbox):

11:36 AM Changeset in webkit [286070] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Fix assertion added in r285592
https://bugs.webkit.org/show_bug.cgi?id=233373
JSTests:

Reviewed by Keith Miller.

  • stress/validate-assert-uid-is-not-index-or-it-is-symbol.js: Added.

(main.v11):
(main.v29):
(main):

Source/JavaScriptCore:

rdar://85451012

Reviewed by Keith Miller.

The assertion added in r285592 should not apply to Symbols. This patch
fixes that error. We don't care if a Symbol can be parsed as an index
since the string value in a Symbol is just its description, not the
actual property.

  • dfg/DFGValidate.cpp:
11:17 AM Changeset in webkit [286069] by commit-queue@webkit.org
  • 10 edits in trunk

[JSC] Shadow realms: set correct Function prototype on wrapped functions
https://bugs.webkit.org/show_bug.cgi?id=233143

Patch by Joseph Griego <jgriego@igalia.com> on 2021-11-19
Reviewed by Yusuke Suzuki.

At present, the Function prototype set on each of the returned wrapped
functions will be the Function object from the realm the shadow realm
builtin is from--to comply with the latest draft of the shadow realms
spec [1], wrapped function objects should have the Function prototype
from the realm the wrapper object is destined for, instead.

At present, this requires tracking both the calling (destination) and
target (source) realm and switching between the two as function
arguments are wrapped (when the notion of source and destination realm
also flips)

Adds a simple builtin (moveFunctionToRealm) that can switch the Function
prototype given only the Shadow Realm object corresponding to the
correct global object.

Also marks the corresponding part of test262 as passing.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

[1] https://tc39.es/proposal-shadowrealm/ sections 2.1, 2.2

  • builtins/BuiltinNames.h:
  • builtins/ShadowRealmPrototype.js:

(wrapped):
(globalPrivate.wrap):
(evaluate):
(importValue):
(globalPrivate.wrap.wrapped): Deleted.

  • bytecode/LinkTimeConstant.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ShadowRealmPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ShadowRealmPrototype.h:
11:05 AM Changeset in webkit [286068] by graouts@webkit.org
  • 20 edits in trunk/Source

[Model] add support for seeking animations
https://bugs.webkit.org/show_bug.cgi?id=233362
<rdar://problem/85428812>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add three new promise-based methods to the HTMLModelElement IDL to allow seeking the animation
built into the USDZ asset: animationDuration(), animationCurrentTime() and setAnimationCurrentTime().
All these methods are promise-based.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::animationDuration):
(WebCore::HTMLModelElement::animationCurrentTime):
(WebCore::HTMLModelElement::setAnimationCurrentTime):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::animationDuration):
(WebCore::DummyModelPlayer::animationCurrentTime):
(WebCore::DummyModelPlayer::setAnimationCurrentTime):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::animationDuration):
(WebCore::SceneKitModelPlayer::animationCurrentTime):
(WebCore::SceneKitModelPlayer::setAnimationCurrentTime):

Source/WebCore/PAL:

Add the new ARQL SPIs we are using to query the animation duration, the current and time
as well as allowing to set the latter.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Expose new WebPageProxy messages to let the WebProcess message the UIProcess
to call into ASVInlinePreview methods to get and set the animation's current
time as well as getting its duration.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::animationDurationForModelElement):
(WebKit::ModelElementController::animationCurrentTimeForModelElement):
(WebKit::ModelElementController::setAnimationCurrentTimeForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementAnimationDuration):
(WebKit::WebPageProxy::modelElementAnimationCurrentTime):
(WebKit::WebPageProxy::modelElementSetAnimationCurrentTime):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::animationDuration):
(WebKit::ARKitInlinePreviewModelPlayer::animationCurrentTime):
(WebKit::ARKitInlinePreviewModelPlayer::setAnimationCurrentTime):

10:52 AM Changeset in webkit [286067] by Ryan Haddad
  • 99 edits
    63 deletes in trunk/Source

Unreviewed, reverting r286047.

Breaks internal builds

Reverted changeset:

"[WebGPU] Add converters from serializable descriptors to
interface descriptors"
https://bugs.webkit.org/show_bug.cgi?id=233310
https://commits.webkit.org/r286047

10:21 AM Changeset in webkit [286066] by graouts@webkit.org
  • 20 edits in trunk/Source

[Model] add support for controlling looping animations
https://bugs.webkit.org/show_bug.cgi?id=233356
<rdar://problem/85428884>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add two new promise-based methods to the HTMLModelElement IDL to control the looping state
of the animation built into the USDZ asset: isLoopingAnimation() and setIsLoopingAnimation().
All these methods are promise-based.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::isLoopingAnimation):
(WebCore::HTMLModelElement::setIsLoopingAnimation):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::isLoopingAnimation):
(WebCore::DummyModelPlayer::setIsLoopingAnimation):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::isLoopingAnimation):
(WebCore::SceneKitModelPlayer::setIsLoopingAnimation):

Source/WebCore/PAL:

Add the new ARQL SPIs we are using to control animation looping.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Expose new WebPageProxy messages to let the WebProcess message the UIProcess
to call into ASVInlinePreview methods to get and set the animation's looping
state.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::isLoopingAnimationForModelElement):
(WebKit::ModelElementController::setIsLoopingAnimationForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementIsLoopingAnimation):
(WebKit::WebPageProxy::modelElementSetIsLoopingAnimation):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::isLoopingAnimation):
(WebKit::ARKitInlinePreviewModelPlayer::setIsLoopingAnimation):

9:42 AM Changeset in webkit [286065] by graouts@webkit.org
  • 22 edits in trunk/Source

[Model] add audio support
https://bugs.webkit.org/show_bug.cgi?id=233365
<rdar://problem/85428982>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add three new promise-based methods to the HTMLModelElement IDL to control the audio state
of the animation built into the USDZ asset: hasAudio(), isMuted() and setIsMuted().
All these methods are promise-based.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::hasAudio):
(WebCore::HTMLModelElement::isMuted):
(WebCore::HTMLModelElement::setIsMuted):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::hasAudio):
(WebCore::DummyModelPlayer::isMuted):
(WebCore::DummyModelPlayer::setIsMuted):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::hasAudio):
(WebCore::SceneKitModelPlayer::isMuted):
(WebCore::SceneKitModelPlayer::setIsMuted):

Source/WebCore/PAL:

Add the new ARQL SPIs we are using for audio control.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Expose new WebPageProxy messages to let the WebProcess message the UIProcess
to call into ASVInlinePreview methods to get and set the muted state and get
whehter the model contains audio.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::previewHasAudioSupport):
(WebKit::ModelElementController::hasAudioForModelElement):
(WebKit::ModelElementController::isMutedForModelElement):
(WebKit::ModelElementController::setIsMutedForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementHasAudio):
(WebKit::WebPageProxy::modelElementIsMuted):
(WebKit::WebPageProxy::modelElementSetIsMuted):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::hasAudio):
(WebKit::ARKitInlinePreviewModelPlayer::isMuted):
(WebKit::ARKitInlinePreviewModelPlayer::setIsMuted):

Source/WTF:

Add a new compile-time flag for the new autio-related ARQL SPIs we are using.

  • wtf/PlatformEnableCocoa.h:
9:09 AM Changeset in webkit [286064] by Antti Koivisto
  • 3 edits
    2 adds in trunk

[CSS Cascade Layers] [Debug] ASSERTION FAILED: m_childRules.isEmpty() when using @import with layer name
https://bugs.webkit.org/show_bug.cgi?id=233283
<rdar://problem/85520733>

Reviewed by Antoine Quint.

Source/WebCore:

CSS parser is allowing rules in illegal order (@import rule following @layer block)

Test: fast/css/layer-illegal-import.html

  • css/parser/CSSParserImpl.cpp:

(WebCore::computeNewAllowedRules):

Only stay in AllowLayerStatementRules state if the new layer is a statement, not a block.

LayoutTests:

  • fast/css/layer-illegal-import-expected.html: Added.
  • fast/css/layer-illegal-import.html: Added.
8:53 AM Changeset in webkit [286063] by Antti Koivisto
  • 4 edits
    2 adds in trunk

:hover with descendant selector not invalidated correctly in shadow tree
https://bugs.webkit.org/show_bug.cgi?id=233354

Reviewed by Antoine Quint.

Source/WebCore:

We optimize :hover and :active by only invalidating for descendant selectors with a single tree walk.
This doesn't work correctly for shadow trees as their scoped style may differ and the invalidation
is limited to a single scope anyway.

Fix by doing descendant invalidation for each affected scope.

Test: fast/selectors/hover-descendant-shadow-tree.html

  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

We need to perform scoped descendant invalidation for elements that are parented to ShadowRoot.

LayoutTests:

  • fast/selectors/hover-descendant-shadow-tree-expected.html: Added.
  • fast/selectors/hover-descendant-shadow-tree.html: Added.
  • platform/ios/TestExpectations:
7:57 AM Changeset in webkit [286062] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Remove allocation in JSON::Value::parseJSON
https://bugs.webkit.org/show_bug.cgi?id=233346

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-19
Reviewed by Yusuke Suzuki.

Parse the characters as Latin1 characters if we have an 8 bit string rather than converting them to UTF-16 just to be parsed.

  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::parseJSON):

7:37 AM Changeset in webkit [286061] by commit-queue@webkit.org
  • 13 edits
    8 adds in trunk

LayoutTests/imported/w3c:
Import css/css-values/urls web-platform-tests
Don't modify fragment-only or empty image URLs
https://bugs.webkit.org/show_bug.cgi?id=229917

Patch by Matt Woodrow <matt.woodrow@gmail.com> on 2021-11-19
Reviewed by Darin Adler.

Change handling of empty and fragment url()s for images to not convert to a fully resolved
path, and instead preserve them as-is, to match css-values4 requirements.

Import new tests in css/css-values/urls from 5e3187856a311f583124735cad5a03baa61951b3 and
add expectations for the new tests.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-values/urls/empty-expected.txt:
  • web-platform-tests/css/css-values/urls/empty.html:
  • web-platform-tests/css/css-values/urls/fragment-only-expected.txt: Added.
  • web-platform-tests/css/css-values/urls/fragment-only.html: Added.
  • web-platform-tests/css/css-values/urls/resolve-relative-to-base-expected.txt: Added.
  • web-platform-tests/css/css-values/urls/resolve-relative-to-base.html: Added.
  • web-platform-tests/css/css-values/urls/resolve-relative-to-stylesheet-expected.txt: Added.
  • web-platform-tests/css/css-values/urls/resolve-relative-to-stylesheet.html: Added.
  • web-platform-tests/css/css-values/urls/support/fragment-only-urls.css: Added.

(:root):
(#external-unquoted):
(#external-quoted):
(#external-variable):

  • web-platform-tests/css/css-values/urls/support/relative-urls.css: Added.

(:root):
(#stylesheet-relative-image):
(#stylesheet-relative-variable-image):
(#stylesheet-relative-document-variable-image):

  • web-platform-tests/css/css-values/urls/support/w3c-import.log:
  • web-platform-tests/css/css-values/urls/w3c-import.log:

Source/WebCore:
Don't modify fragment-only or empty image URLs
https://bugs.webkit.org/show_bug.cgi?id=229917

Patch by Matt Woodrow <matt.woodrow@gmail.com> on 2021-11-19
Reviewed by Darin Adler.

Don't modify fragment-only or empty image URLs, as-per css-values-4

Existing web-platform-tests are marked as passing.

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::reresolvedURL const):

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::completeURL const):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeImage):

  • dom/Document.cpp:

(WebCore::Document::completeURL const):

7:01 AM Changeset in webkit [286060] by Angelos Oikonomopoulos
  • 11 edits in trunk

[JSC] Workaround for failing mips tests
https://bugs.webkit.org/show_bug.cgi?id=233359

Reviewed by Adrian Perez de Castro.

.:

Add a compiler flag on GCC+mips to work around a code generation bug
resulting in SIGBUS. This only manifests when running 32-bit mips code
on mips64 hardware (which the buildbots do).

  • Source/cmake/WebKitCompilerFlags.cmake:

JSTests:

Re-enable tests skipped on mips after adding workaround.

  • stress/call-varargs-double-new-array-buffer.js:
  • stress/callee-save-fpr.js:
  • stress/forward-varargs-double-new-array-buffer.js:
  • stress/new-array-with-spread-cow-double.js:
  • stress/new-array-with-spread-double-new-array-buffer.js:
  • stress/spread-escapes-but-new-array-buffer-does-not-double.js:

PerformanceTests:

Re-enable tests skipped on mips after adding workaround.

  • ARES-6/Basic/basic-tests.yaml:
6:51 AM Changeset in webkit [286059] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

[GTK][a11y] Add implementation of document interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232755

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::locale const):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::documentAttribute const):
(WebCore::AccessibilityObjectAtspi::documentAttributes const):
(WebCore::AccessibilityObjectAtspi::documentLocale const):

Tools:

Add unit test for the document interface and WTR implementation.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testDocumentBasic):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):

6:48 AM Changeset in webkit [286058] by Antti Koivisto
  • 11 edits
    2 adds in trunk/Source/WebCore

Factor child change invalidation into class
https://bugs.webkit.org/show_bug.cgi?id=233311

Reviewed by Alan Bujtas.

Use similar pattern as ClassChangeInvalidation and others where we create a stack object scoped
over a DOM mutation. This will allow more sophisticated ruleset based invalidation in
future.

This patch moves the invalidation code from childrenChanged() to the new ChildChangeInvalidation class.
ChildChangeInvalidation is instantiated in ContainerNode and CharacterData mutation functions
that call childrenChanged(). It uses the same ChildChange argument type as childrenChanged().

There are no changes to invalidation functionality in this patch.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/CharacterData.cpp:

(WebCore::makeChildChange):
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):
(WebCore::CharacterData::notifyParentAfterChange):

  • dom/CharacterData.h:
  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::makeChildChangeForRemoval):
(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::makeChildChangeForInsertion):
(WebCore::executeNodeInsertionWithScriptAssertion):
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::replaceAll):
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::affectsElements):

  • dom/ContainerNode.h:

(WebCore::ContainerNode::ChildChange::isInsertion const):

Add a new FinishedParsingChildren change type, only used when invalidating from Element::finishParsingChildren.

  • dom/Element.cpp:

(WebCore::invalidateForSiblingCombinators):
(WebCore::Element::childTypeAllowed const):
(WebCore::Element::childrenChanged):
(WebCore::Element::finishParsingChildren):
(WebCore::checkForEmptyStyleChange): Deleted.
(WebCore::invalidateForForwardPositionalRules): Deleted.
(WebCore::invalidateForBackwardPositionalRules): Deleted.
(WebCore::checkForSiblingStyleChanges): Deleted.

  • dom/Element.h:
  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::childrenChanged):

  • style/ChildChangeInvalidation.cpp: Added.

(WebCore::Style::ChildChangeInvalidation::ChildChangeInvalidation):
(WebCore::Style::ChildChangeInvalidation::~ChildChangeInvalidation):
(WebCore::Style::ChildChangeInvalidation::invalidateAfterChange):
(WebCore::Style::ChildChangeInvalidation::checkForEmptyStyleChange):
(WebCore::Style::invalidateForForwardPositionalRules):
(WebCore::Style::invalidateForBackwardPositionalRules):
(WebCore::Style::ChildChangeInvalidation::checkForSiblingStyleChanges):

  • style/ChildChangeInvalidation.h: Added.

(WebCore::Style::ChildChangeInvalidation::parentElement):

  • style/StyleAdjuster.h:
6:39 AM Changeset in webkit [286057] by Adrian Perez de Castro
  • 2 edits
    2 adds in trunk/Tools/buildstream

[Flatpak SDK] Add build recipe for libjxl
https://bugs.webkit.org/show_bug.cgi?id=233326

Reviewed by Philippe Normand.

Add the build recipe for libjxl, which in turns needs highway (libhwy), which gets imported
as well. Highway is always built as a static library, and therefore only needed at build
time. As for libjxl, the recipe tries to disable as much as possible of bundled sources from
its third_party/ subdirectory, but LodePNG gets always needed, and the same goes for either
SkCMS or LCMS2; and in both cases they get built and linked statically into the resulting
libjxl library. Ideally we would prefer that libjxl could use a system-installed copy of
LCMS2 because that is already available in the SDK, but that not being an option SkCMS is
preferred as it is smaller.

  • elements/sdk-platform.bst: List libjxl for installation in the SDK.
  • elements/sdk/highway.bst: Added.
  • elements/sdk/libjxl.bst: Added.
6:30 AM Changeset in webkit [286056] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

[GTK][a11y] Add implementation of action interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232749

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityObjectActionAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::actionName const):
(WebCore::AccessibilityObjectAtspi::localizedActionName const):
(WebCore::AccessibilityObjectAtspi::actionKeyBinding const):
(WebCore::AccessibilityObjectAtspi::doAction const):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:

Tools:

Add a unit test for the action interface and WTR implementation.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testActionBasic):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::isPressActionSupported):
(WTR::AccessibilityUIElement::press):

5:35 AM Changeset in webkit [286055] by Carlos Garcia Campos
  • 9 edits
    1 add in trunk

[GTK][a11y] Add implementation of hypertext interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232708

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::unregisterObject):
(WebCore::AccessibilityAtspi::registerHyperlink):

  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::hyperlinkReference):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::hyperlinkCount const):
(WebCore::AccessibilityObjectAtspi::hyperlink const):
(WebCore::AccessibilityObjectAtspi::hyperlinkIndex const):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::characterIndex const):

Tools:

Add unit tests to check hypertext interface.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testHypertextBasic):
(beforeAll):

1:52 AM Changeset in webkit [286054] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. [GLIB] Add new test case to /jsc/class

Add a test case to check using JSC_TYPE_VALUE for a JSCClass property.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(setFooValue):
(getFooValue):
(testJSCClass):

1:38 AM Changeset in webkit [286053] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

AirFixObviousSpills should be optimized
https://bugs.webkit.org/show_bug.cgi?id=228052

Reviewed by Yusuke Suzuki.

There were two problems with AirFixObviousSpills:

  • merge() had a quadratic blow-up, as for each element in a vector, it was searching it in a different vector.
  • it would visit blocks even when their state at head had not changed.

I fixed the first problem by making sure that the vectors are sorted before calling merge, and making use of that invariant in the search of the vectors
(see filterVectorAgainst)
This reduced the total time spent in that phase from 390ms to 230ms, and the worst case time spent in that phase for one function from 100ms to 30ms (all of the results in this Changelog are for JetStream2 on a M1 MBP).

I fixed the second problem even more easily by adding a m_shouldVisit BitVector. I also moved the m_wasVisited boolean that was in State to a m_notBottom BitVector for simplicity and symmetry.
That change further reduced the total/max time from 230ms/30ms to 140ms/16ms.

  • b3/air/AirFixObviousSpills.cpp:
1:01 AM Changeset in webkit [286052] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

REGRESSION(r285859) [GTK][WPE] a number of accessibility/* tests crash on GTK and WPE
https://bugs.webkit.org/show_bug.cgi?id=233221

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-19
Reviewed by Carlos Garcia Campos.

Tools:

Add null checks in the ATK code to ensure AccessibilityUIElement::create()
is not passed a NULL pointer.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:

(WTR::AccessibilityController::focusedElement):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::getChildrenWithRange):

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/glib/accessibility/add-children-pseudo-element-expected.txt:
  • platform/glib/accessibility/aria-modal-text-descendants-expected.txt: Added.
  • platform/glib/accessibility/table-cell-display-block-expected.txt: Added.
12:54 AM Changeset in webkit [286051] by ysuzuki@apple.com
  • 3 edits in trunk/Source/bmalloc

[libpas] Unreviewed, build fix for relatively old clang on oss-fuzz
https://bugs.webkit.org/show_bug.cgi?id=233097

  • libpas/src/libpas/pas_utils.h:
  • libpas/src/libpas/pas_utils_prefix.h:

(pas_depend_impl):
(
pas_depend):
(pas_depend_cpu_only):

12:51 AM Changeset in webkit [286050] by Carlos Garcia Campos
  • 9 edits
    1 add in trunk

[GTK][a11y] Add implementation of hyperlink interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232707

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add hyperlink implementation and make links be handled as replaced objects too, to ensure all hyperlinks are
handled the same way. That's consistent with chromium.

  • SourcesGTK.txt:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::url const):
(WebCore::AccessibilityObjectAtspi::offsetInParent const):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::characterOffset const):

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):
(WebCore::TextIterator::handleReplacedElement):

Tools:

Add unit tests to check hyperlink interface and implement AccessibilityUIElement::url() in WTR.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTextReplacedObjects):
(testHyperlinkBasic):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::url):

Nov 18, 2021:

11:30 PM Changeset in webkit [286049] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in SimplifiedBackwardsTextIterator::range() via previousSentencePosition
https://bugs.webkit.org/show_bug.cgi?id=229282

Patch by Frédéric Wang <fwang@igalia.com> on 2021-11-18
Reviewed by Darin Adler.

Source/WebCore:

Constructors of TextIterator and SimplifiedBackwardsTextIterator update layout, which may
make HTMLObjectElement switch to fallback content and invalidate their renderer. As a
consequence their advance() method may incorrectly treat them as replaced elements. This
patch updates the layout at the beginning of FrameSelection::modify and disable post
resolution callbacks in order to prevent this kind of unaverted tree changes while browsing
the tree for selection update.

Test: editing/text-iterator/backward-textiterator-object-crash.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::modify): Update layout and disable post resolution callback, so that
all iterators used during the execution of the function handle <object>s consistently.

LayoutTests:

Add regression test.

  • editing/text-iterator/backward-textiterator-object-crash-expected.txt: Added.
  • editing/text-iterator/backward-textiterator-object-crash.html: Added.
11:27 PM Changeset in webkit [286048] by graouts@webkit.org
  • 22 edits in trunk/Source

[Model] add support for pausing and resuming animations
https://bugs.webkit.org/show_bug.cgi?id=233319
<rdar://problem/85428464>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add three new promise-based methods to the HTMLModelElement IDL to control the playback state
of the animation built into the USDZ asset: isPlayingAnimation(), playAnimation() and pauseAnimation().
All these methods are promise-based.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::isPlayingAnimation):
(WebCore::HTMLModelElement::setAnimationIsPlaying):
(WebCore::HTMLModelElement::playAnimation):
(WebCore::HTMLModelElement::pauseAnimation):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::isPlayingAnimation):
(WebCore::DummyModelPlayer::setAnimationIsPlaying):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::isPlayingAnimation):
(WebCore::SceneKitModelPlayer::setAnimationIsPlaying):

Source/WebCore/PAL:

Add the new ARQL SPIs we are using.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Expose new WebPageProxy messages to let the WebProcess message the UIProcess
to call into ASVInlinePreview methods to get and set the animation's playback
state.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::previewHasAnimationSupport):
(WebKit::ModelElementController::isPlayingAnimationForModelElement):
(WebKit::ModelElementController::setAnimationIsPlayingForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementIsPlayingAnimation):
(WebKit::WebPageProxy::modelElementSetAnimationIsPlaying):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::isPlayingAnimation):
(WebKit::ARKitInlinePreviewModelPlayer::setAnimationIsPlaying):

Source/WTF:

Add a new compile-time flag for the new ARQL SPIs we are using.

  • wtf/PlatformEnableCocoa.h:
10:30 PM Changeset in webkit [286047] by mmaxfield@apple.com
  • 97 edits
    58 copies
    5 adds in trunk/Source

[WebGPU] Add converters from serializable descriptors to interface descriptors
https://bugs.webkit.org/show_bug.cgi?id=233310

Reviewed by Dean Jackson.

The WebGPU abstract interface (in PAL/graphics/WebGPU) has a set of structs for descriptors. These descriptors hold references to
objects, so these interfaces can't be serialized directly. Instead, we have a parallel set of structs (in WebKit/Shared/WebGPU)
which replace the object references with WebGPUIdentifiers. The web process side will convert the abstract interface structs
to the serializable ones, and the GPU process side will convert back. This patch implements the converters back, from the serializable
structs to the abstract interface structs.

No new tests because there is no behavior change.

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:

(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertGPUFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking):

  • Shared/WebGPU/WebGPUBindGroupDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUFragmentState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupDescriptor.h:
  • Shared/WebGPU/WebGPUBindGroupEntry.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBindGroupDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupEntry.h:
  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h:
  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.h:
  • Shared/WebGPU/WebGPUBlendComponent.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUOutOfMemoryError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBlendComponent.h:
  • Shared/WebGPU/WebGPUBlendState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBlendState.h:
  • Shared/WebGPU/WebGPUBufferBinding.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferBinding.h:
  • Shared/WebGPU/WebGPUBufferBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferBindingLayout.h:
  • Shared/WebGPU/WebGPUBufferDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUBufferDescriptor.h:
  • Shared/WebGPU/WebGPUCanvasConfiguration.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCanvasConfiguration.h:
  • Shared/WebGPU/WebGPUColor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUColor.h:
  • Shared/WebGPU/WebGPUColorTargetState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUColorTargetState.h:
  • Shared/WebGPU/WebGPUCommandBufferDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCommandBufferDescriptor.h:
  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.h:
  • Shared/WebGPU/WebGPUCompilationMessage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCompilationMessage.h:
  • Shared/WebGPU/WebGPUComputePassDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePassDescriptor.h:
  • Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePassDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePassTimestampWrites.h:
  • Shared/WebGPU/WebGPUComputePipelineDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUComputePipelineDescriptor.h:
  • Shared/WebGPU/WebGPUConvertFromBackingContext.h:
  • Shared/WebGPU/WebGPUDepthStencilState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePassDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUDepthStencilState.h:
  • Shared/WebGPU/WebGPUDeviceDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUDeviceDescriptor.h:
  • Shared/WebGPU/WebGPUError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUCommandBufferDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUError.h:
  • Shared/WebGPU/WebGPUExtent3D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePassDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExtent3D.h:
  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUExternalTextureDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUExternalTextureDescriptor.h:
  • Shared/WebGPU/WebGPUFragmentState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUFragmentState.h:
  • Shared/WebGPU/WebGPUImageCopyBuffer.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyBuffer.h:
  • Shared/WebGPU/WebGPUImageCopyExternalImage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyExternalImage.h:
  • Shared/WebGPU/WebGPUImageCopyTexture.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTexture.h:
  • Shared/WebGPU/WebGPUImageCopyTextureTagged.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyTextureTagged.h:
  • Shared/WebGPU/WebGPUImageDataLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageDataLayout.h:
  • Shared/WebGPU/WebGPUMultisampleState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUMultisampleState.h:
  • Shared/WebGPU/WebGPUObjectDescriptorBase.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUOutOfMemoryError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUObjectDescriptorBase.h:
  • Shared/WebGPU/WebGPUOrigin2D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOrigin2D.h:
  • Shared/WebGPU/WebGPUOrigin3D.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePipelineDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOrigin3D.h:
  • Shared/WebGPU/WebGPUOutOfMemoryError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUOutOfMemoryError.h:
  • Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPipelineDescriptorBase.h:
  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBufferBinding.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h:
  • Shared/WebGPU/WebGPUPrimitiveState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUPrimitiveState.h:
  • Shared/WebGPU/WebGPUProgrammableStage.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUProgrammableStage.h:
  • Shared/WebGPU/WebGPUQuerySetDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUQuerySetDescriptor.h:
  • Shared/WebGPU/WebGPURenderBundleDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderBundleDescriptor.h:
  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
  • Shared/WebGPU/WebGPURenderPassColorAttachment.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassColorAttachment.h:
  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
  • Shared/WebGPU/WebGPURenderPassDescriptor.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDescriptor.h:
  • Shared/WebGPU/WebGPURenderPassLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUSamplerBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassLayout.h:
  • Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUProgrammableStage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassTimestampWrites.h:
  • Shared/WebGPU/WebGPURenderPipelineDescriptor.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPipelineDescriptor.h:
  • Shared/WebGPU/WebGPURequestAdapterOptions.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURequestAdapterOptions.h:
  • Shared/WebGPU/WebGPUSamplerBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSamplerBindingLayout.h:
  • Shared/WebGPU/WebGPUSamplerDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSamplerDescriptor.h:
  • Shared/WebGPU/WebGPUShaderModuleDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUShaderModuleDescriptor.h:
  • Shared/WebGPU/WebGPUStencilFaceState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUStencilFaceState.h:
  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUSupportedFeatures.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSupportedFeatures.h:
  • Shared/WebGPU/WebGPUSupportedLimits.cpp: Added.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUSupportedLimits.h:
  • Shared/WebGPU/WebGPUTextureBindingLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureBindingLayout.h:
  • Shared/WebGPU/WebGPUTextureDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUBlendState.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureDescriptor.h:
  • Shared/WebGPU/WebGPUTextureViewDescriptor.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUObjectDescriptorBase.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureViewDescriptor.h:
  • Shared/WebGPU/WebGPUValidationError.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUError.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUValidationError.h:
  • Shared/WebGPU/WebGPUVertexAttribute.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexAttribute.h:
  • Shared/WebGPU/WebGPUVertexBufferLayout.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexBufferLayout.h:
  • Shared/WebGPU/WebGPUVertexState.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUComputePipelineDescriptor.h.

(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUVertexState.h:
10:26 PM Changeset in webkit [286046] by Fujii Hironori
  • 11 edits
    1 add in trunk/Source

[TextureMapper][GraphicsLayerTextureMapper][GraphicsLayerWC] setBackgroundColor support
https://bugs.webkit.org/show_bug.cgi?id=233244

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapper, GraphicsLayerTextureMapper and GraphicsLayerWC
didn't support setBackgroundColor. setBackgroundColor is used for
"painting flush" feature of Web Inspector Elements tab.

Added a new class TextureMapperSolidColorLayer to draw a solid
layer for the primary layer and contents layer.

  • platform/TextureMapper.cmake:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::setBackgroundColor): Added.
(WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::setBackgroundColor):
(WebCore::blendWithOpacity): Deleted.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/TextureMapperSolidColorLayer.h: Added.

(WebCore::TextureMapperSolidColorLayer::setColor):

Source/WebKit:

  • GPUProcess/graphics/wc/WCScene.cpp:

(WebKit::WCScene::update):

  • WebProcess/WebPage/wc/GraphicsLayerWC.cpp:

(WebKit::GraphicsLayerWC::setBackgroundColor):
(WebKit::GraphicsLayerWC::flushCompositingStateForThisLayerOnly):

  • WebProcess/WebPage/wc/GraphicsLayerWC.h:
  • WebProcess/WebPage/wc/WCUpateInfo.h:

(WebKit::WCLayerUpateInfo::encode const):
(WebKit::WCLayerUpateInfo::decode):

10:06 PM Changeset in webkit [286045] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC/Air] Optimize enableMovesOnValueAndAdjacents in IRC
https://bugs.webkit.org/show_bug.cgi?id=228615

Reviewed by Saam Barati.

The Iterated Register Coalescing (IRC) register allocator spends a very significant fraction of its time in JS2 in enableMovesOnValueAndAdjacents (816ms out of 2.07s spent in register allocation for Wasm code in one run I looked at with Instruments).
The reason is that if this function is called on N nodes that are neighbors of each other, then enableMovesOnValue (which is kinda expensive as it iterates a SmallSet which is not always small) will be called N times on each of the N nodes. This can trivially be fixed by keeping track of which nodes need enableMovesOnValue called on them and only calling it on them once.

It is a bit tricky to measure the performance impact of this, as it heavily depends on whether some very large functions reach Air or not, so there is a lot of noise.
Here are the numbers out of 4 runs of JS2 (cli version) on an M1 MBP with --airForceIRCAllocator=1:
Baseline : total time in allocateRegistersByGraphColoring ranges from 2090ms to 3018ms, most time for a single function ranges from 631ms to 849ms
With this patch: total time in allocateRegistersByGraphColoring ranges from 1580ms to 2333ms, most time for a single function ranges from 337ms to 560ms
So despite the noise it seems quite clearly a win.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
8:18 PM Changeset in webkit [286044] by Ben Nham
  • 26 edits
    4 adds in trunk

Add support for onpushsubscriptionchange event handler
https://bugs.webkit.org/show_bug.cgi?id=233088

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline test results since we now support onpushsubscriptionchange.

  • web-platform-tests/push-api/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

This adds the ability to send a pushsubscriptionchange event to the appropriate handler on
ServiceWorkerGlobalScope. I didn't implement a completion handler for the event (as we do
for the push event) since it's not required by the standard and I don't think we'd use it.
We only plan on firing this event the first time you visit an origin after we deregister a
PushSubscription for receiving too many silent pushes.

Tests: http/wpt/service-workers/service-worker-spinning-push.https.html

http/wpt/service-workers/service-worker-spinning-pushsubscriptionchange.https.html

  • Modules/push-api/PushSubscription.cpp:

(WebCore::PushSubscription::PushSubscription):
(WebCore::PushSubscription::data const):
(WebCore::PushSubscription::endpoint const):
(WebCore::PushSubscription::expirationTime const):
(WebCore::PushSubscription::options const):
(WebCore::PushSubscription::clientECDHPublicKey const):
(WebCore::PushSubscription::sharedAuthenticationSecret const):
(WebCore::PushSubscription::getKey const):
(WebCore::PushSubscription::toJSON const):

  • Modules/push-api/PushSubscription.h:
  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.h:
  • testing/Internals.cpp:

(WebCore::Internals::createPushSubscription):

  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::schedulePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerInternals::createPushSubscription):

  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::subscribeToPushService):
(WebCore::ServiceWorkerContainer::getPushSubscription):
(WebCore::createPushSubscriptionFromData): Deleted.

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::firePushSubscriptionChangeEvent):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::queueTaskToFirePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerThread::heartBeatTimerFired):
(WebCore::ServiceWorkerThread::willPostTaskToFirePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerThread::finishedFiringPushSubscriptionChangeEvent):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::firePushSubscriptionChangeEvent):

  • workers/service/context/ServiceWorkerThreadProxy.h:

LayoutTests:

  • Modified the pushsubscriptionchange test to send a real event to the service worker.
  • Modified the service worker spinning tests to test for guarding against infinite loops in the push and pushsubscriptionchange event handlers.

Note that the existing spinning tests are marked as flaky on ios-wk2. We do the same here
since the test passes locally but is flaky in EWS.

  • http/wpt/push-api/pushSubscriptionChangeEvent.any.js:

(promise_test):
(assertSubscriptionsAreEqual):
(test): Deleted.
(promise_test.async newSubscription): Deleted.
(promise_test.async return): Deleted.

  • http/wpt/push-api/pushSubscriptionChangeEvent.any.serviceworker-expected.txt:
  • http/wpt/service-workers/resources/routines.js:

(async sendSyncMessage):

  • http/wpt/service-workers/service-worker-spinning-push.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker-spinning-push.https.html: Added.
  • http/wpt/service-workers/service-worker-spinning-pushsubscriptionchange.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker-spinning-pushsubscriptionchange.https.html: Added.
  • http/wpt/service-workers/service-worker-spinning-worker.js:

(respondToPendingEvent):
(pushTest):

  • platform/ios-simulator-wk2/TestExpectations:
7:12 PM Changeset in webkit [286043] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.3.6.1.5

Tag Safari-612.3.6.1.5.

7:03 PM Changeset in webkit [286042] by mark.lam@apple.com
  • 109 edits in trunk/Source

SubSpace constructors should take a const HeapCellType& instead of a HeapCellType*.
https://bugs.webkit.org/show_bug.cgi?id=233341
rdar://85573277

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

This helps document that HeapCellTypes are immutable once they are instantiated,
and that SubSpaces won't be modifying them.

Also remove the const on CellAttributes return values since it is not needed nor
meaningful.

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::attributes const):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::CompleteSubspace):

  • heap/CompleteSubspace.h:
  • heap/HeapCellType.cpp:

(JSC::HeapCellType::finishSweep const):
(JSC::HeapCellType::destroy const):
(JSC::HeapCellType::finishSweep): Deleted.
(JSC::HeapCellType::destroy): Deleted.

  • heap/HeapCellType.h:

(JSC::HeapCellType::attributes const):

  • heap/IsoHeapCellType.cpp:

(JSC::IsoHeapCellType::finishSweep const):
(JSC::IsoHeapCellType::destroy const):
(JSC::IsoHeapCellType::finishSweep): Deleted.
(JSC::IsoHeapCellType::destroy): Deleted.

  • heap/IsoHeapCellType.h:
  • heap/IsoInlinedHeapCellType.h:
  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):

  • heap/IsoSubspace.h:
  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::forVM):

  • heap/IsoSubspacePerVM.h:
  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::attributes const):
(JSC::MarkedBlock::attributes const):

  • heap/PreciseAllocation.h:

(JSC::PreciseAllocation::attributes const):

  • heap/Subspace.cpp:

(JSC::Subspace::initialize):

  • heap/Subspace.h:

(JSC::Subspace::heapCellType const):

  • heap/SubspaceInlines.h:

(JSC::Subspace::attributes const):

  • runtime/JSDestructibleObjectHeapCellType.cpp:

(JSC::JSDestructibleObjectHeapCellType::finishSweep const):
(JSC::JSDestructibleObjectHeapCellType::destroy const):
(JSC::JSDestructibleObjectHeapCellType::finishSweep): Deleted.
(JSC::JSDestructibleObjectHeapCellType::destroy): Deleted.

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

(JSC::VM::VM):

Source/WebCore:

  • bindings/js/JSFileSystemDirectoryHandleIterator.cpp:

(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateIterableDefinition):

  • bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::JSExposedStar::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp:

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::JSTestCEReactions::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracer::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludes::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJIT::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSON::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:

(WebCore::JSTestDomainSecurity::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContext::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLike.cpp:

(WebCore::JSTestMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamespaceObject.cpp:

(WebCore::JSTestNamespaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:

(WebCore::JSTestOperationConditional::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLike.cpp:

(WebCore::JSTestSetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::JSTestStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefs::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcFallbackObjectImp::subspaceForImpl):

5:35 PM Changeset in webkit [286041] by achristensen@apple.com
  • 18 edits in trunk

Allow all redirect schemes when compiling a content rule list
https://bugs.webkit.org/show_bug.cgi?id=233338

Reviewed by Tim Hatcher.

Source/WebCore:

What was I thinking? I made an SPI that gives you a set of allowed redirect schemes
from the same source as the JSON which contains those redirect schemes. This allows
all redirect schemes. If you want to prevent redirecting to a certain scheme, then
don't compile JSON that redirects to that scheme. We may want a helper function that
uses the same parser to get the set of schemes being redirected to, but right now that
is not necessary because the JSON is being assembled by a program that has the ability
to check the schemes.

  • contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::parse):

  • contentextensions/ContentExtensionActions.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):
(WebCore::ContentExtensions::loadEncodedRules):
(WebCore::ContentExtensions::parseRuleList):

  • contentextensions/ContentExtensionParser.h:

Source/WebKit:

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::compileContentRuleList):

  • UIProcess/API/APIContentRuleListStore.h:
  • UIProcess/API/C/WKUserContentExtensionStoreRef.cpp:

(WKUserContentExtensionStoreCompile):

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(-[WKContentRuleListStore compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]):
(-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:allowedRedirectSchemes:completionHandler:]): Deleted.

  • UIProcess/API/Cocoa/WKContentRuleListStorePrivate.h:
  • UIProcess/API/glib/WebKitUserContentFilterStore.cpp:

(webkitUserContentFilterStoreSaveBytes):

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::InMemoryCompiledContentExtension::create):
(TestWebKitAPI::checkCompilerError):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:

(compileContentRuleList):

4:51 PM Changeset in webkit [286040] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ] TestWebKitAPI.WebpagePreferences.WebsitePoliciesDuringRedirect is a constant timeout
<rdar://80476146>

Uneviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(TEST):

4:47 PM Changeset in webkit [286039] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • Modules/webxr/XRHandJoint.h:
4:12 PM Changeset in webkit [286038] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ] 2 TestWebKitAPI.WebKit.DisplayName (api-tests) are constantly failing
<rdar://80353834>

Uneviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::TEST):

3:54 PM Changeset in webkit [286037] by pvollan@apple.com
  • 11 edits
    2 adds in trunk/Source/WebKit

[macOS][GPUP] Remove access in sandbox to com.apple.audio.AudioComponentRegistrar
https://bugs.webkit.org/show_bug.cgi?id=231694
<rdar://75225923>

Reviewed by Brent Fulgham.

After https://trac.webkit.org/changeset/274435/webkit, there is no need to allow access to this service. This patch also implements sending
the Audio component registrations to the GPU process, which is a requirement before blocking the service in the GPU process.

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/cocoa/GPUProcessCocoa.mm:

(WebKit::GPUProcess::consumeAudioComponentRegistrations):

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Shared/Cocoa/AudioComponentRegistration.cpp: Added.

(WebKit::consumeAudioComponentRegistrations):

  • Shared/Cocoa/AudioComponentRegistration.h: Added.

(WebKit::sendAudioComponentRegistrations):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations): Deleted.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didFinishLaunching):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::revokeAudioCaptureExtension):

  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::consumeAudioComponentRegistrations):

3:51 PM Changeset in webkit [286036] by Robert Jenner
  • 2 edits in trunk/Tools

[ Monterey ] 2 TestWebKitAPI.WebKit.DisplayName (api-tests) are constantly failing
<rdar://80353834>

Uneviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::TEST):

3:20 PM Changeset in webkit [286035] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Teach WheelEventTestMonitor about scroll animations
https://bugs.webkit.org/show_bug.cgi?id=233296

Reviewed by Tim Horton.

There was no way for a test to wait for a scroll animation to finish, so enhance
WheelEventTestMonitor to know about scroll animations.

ScrollAnimationInProgress should probably subsume the RubberbandInProgress and
ScrollSnapInProgress reasons, but those are left alone for now.

  • page/WheelEventTestMonitor.cpp:

(WebCore::operator<<):

  • page/WheelEventTestMonitor.h:
  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::startScrollSnapAnimation):
(WebCore::ScrollingEffectsController::stopScrollSnapAnimation):
(WebCore::ScrollingEffectsController::scrollAnimationWillStart):
(WebCore::ScrollingEffectsController::scrollAnimationDidEnd):
(WebCore::ScrollingEffectsController::startDeferringWheelEventTestCompletion):
(WebCore::ScrollingEffectsController::stopDeferringWheelEventTestCompletion):

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::scheduleStatelessScrollSnap):
(WebCore::ScrollingEffectsController::startDeferringWheelEventTestCompletionDueToScrollSnapping): Deleted.
(WebCore::ScrollingEffectsController::stopDeferringWheelEventTestCompletionDueToScrollSnapping): Deleted.

3:19 PM Changeset in webkit [286034] by mark.lam@apple.com
  • 7 edits
    1 move in trunk/Source/JavaScriptCore

Rename PropertyMapHashTable.h to PropertyTable.h to match the class.
https://bugs.webkit.org/show_bug.cgi?id=233333
rdar://85565760

Reviewed by Yusuke Suzuki.

Also renamed some supporting data structures to match. This is just a refactoring
patch. There are no behavior changes.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/PropertyMapHashTable.h: Removed.
  • runtime/PropertyTable.cpp:
  • runtime/PropertyTable.h: Copied from Source/JavaScriptCore/runtime/PropertyMapHashTable.h.

(JSC::PropertyTable::find):
(JSC::PropertyTable::get):
(JSC::PropertyTable::add):
(JSC::PropertyTable::remove):
(JSC::PropertyTable::reinsert):
(JSC::PropertyTable::rehash):

  • runtime/Structure.cpp:

(JSC::PropertyTableStatisticsExitLogger::PropertyTableStatisticsExitLogger):
(JSC::PropertyTableStatisticsExitLogger::~PropertyTableStatisticsExitLogger):
(JSC::PropertyMapStatisticsExitLogger::PropertyMapStatisticsExitLogger): Deleted.
(JSC::PropertyMapStatisticsExitLogger::~PropertyMapStatisticsExitLogger): Deleted.

  • runtime/StructureInlines.h:
  • runtime/VM.cpp:
3:09 PM Changeset in webkit [286033] by mark.lam@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

CellAttributes should be returned by value.
https://bugs.webkit.org/show_bug.cgi?id=233335
rdar://85568435

Reviewed by Yusuke Suzuki.

CellAttributes fits in 16 bits, and client code never modifies returned CellAttributes
values. Hence, there is no reason to return them by reference.

Also fixed a bit-rotted comment in SubSpace.h.

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::attributes const):

  • heap/HeapCellType.h:

(JSC::HeapCellType::attributes const):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::attributes const):
(JSC::MarkedBlock::attributes const):

  • heap/PreciseAllocation.h:

(JSC::PreciseAllocation::attributes const):

  • heap/Subspace.h:
  • heap/SubspaceInlines.h:

(JSC::Subspace::attributes const):

3:01 PM Changeset in webkit [286032] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

Add syscall telemetry in the Networking process
https://bugs.webkit.org/show_bug.cgi?id=233203
<rdar://problem/85504351>

Reviewed by Brent Fulgham.

Add syscall telemetry in the Networking process on macOS and iOS.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Scripts/process-entitlements.sh:
3:01 PM Changeset in webkit [286031] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][GPUP] Remove access to mach services in sandbox
https://bugs.webkit.org/show_bug.cgi?id=232208
<rdar://problem/84584565>

Unreviewed, revert minor part of initial patch.

Add back Mach service which is potentially still needed, although telemetry shows no usage.
We will reevaluate the need for this service when more telemetry is available.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
2:56 PM Changeset in webkit [286030] by rmorisset@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

DFGByteCodeParser.cpp should avoid resizing the Operands<> of every BasicBlock on every inlining
https://bugs.webkit.org/show_bug.cgi?id=228053

Reviewed by Saam Barati.

The dfg bytecode parser only makes use of block->variablesAtTail.
But currently it updates the size of variablesAtHead, valuesAtHead, valuesAtTail and intersectionOfPastValuesAtHead every single time it changes the number of Tmps and/or Locals.
This happens notably whenever it inlines a function.

It is not nearly as cheap as it looks, as each resizing may reallocate a Vector, requires filling the new slots with zeros, and requires moving the existing values (which are all 0) to the new Vector.
This was obvious when looking at profiling of JS2: bzero + memmove are the two hottest C++ functions, and the manipulation of Operands is partly responsible.

This patch fixes this by only resizing block->variablesAtTail during the execution of the bytecode parser, and initializing all of the other operands at the very end of it.
It also merges the adjustment of numLocals and of numTmps for variablesAtTail during inlining, to avoid accidentally moving data twice.

On JetStream2 on an M1 MBP, it changes the total time spent in the DFGByteCodeParser from 1240-1260ms to 1155-1170ms.

  • bytecode/Operands.h:

(JSC::Operands::ensureLocalsAndTmps):

  • dfg/DFGBasicBlock.cpp:
  • dfg/DFGBasicBlock.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::ensureLocalsForVariablesAtTail):
(JSC::DFG::ByteCodeParser::ensureLocalsAndTmpsForVariablesAtTail):
(JSC::DFG::ByteCodeParser::allocateBlock):
(JSC::DFG::ByteCodeParser::allocateTargetableBlock):
(JSC::DFG::ByteCodeParser::allocateUntargetableBlock):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::handleVarargsInlining):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parse):

2:21 PM Changeset in webkit [286029] by basuke.suzuki@sony.com
  • 3 edits in trunk/Source/bmalloc

[bmalloc] freeableMemory and footprint of Heap are completely broken
https://bugs.webkit.org/show_bug.cgi?id=230245
<rdar://problem/83339024>

Reviewed by Geoffrey Garen.

This introduced in r279922. The physical size of the newly allocated range was changed from zero
to the size of the range on that commit and that causes the numbers wrong. That change itself is
correct fix because the range has physical pages attached. That simply activated the bug which was
there for a long time.

I've added the correction to adjust both numbers with newly allocated region. Also added an optional
assertion to check the overflow of those values and the option to log those value change to the console.

Fortunately those numbers are used for debugging purpose. Scavenger will dump out those to stderr
with its verbose mode. There's no practical cases affected by this bug.

Here is the example of footprint logging before fixing the bug:

footprint: 18446744073709535232 (-16384) scavenge

footprint: 18446744073709518848 (-16384) scavenge
footprint: 18446744073709502464 (-16384) scavenge
footprint: 18446744073709486080 (-16384) scavenge
footprint: 18446744073709469696 (-16384) scavenge
footprint: 18446744073709453312 (-16384) scavenge
...

It just began with negative number which overflows on unsigned. And following is the one with fix:

footprint: 1048576 (1048576) allocateLarge
footprint: 2097152 (1048576) allocateLarge
footprint: 3145728 (1048576) allocateLarge
footprint: 4194304 (1048576) allocateLarge
footprint: 5242880 (1048576) allocateLarge
footprint: 6291456 (1048576) allocateLarge

footprint: 6275072 (-16384) scavenge

footprint: 6258688 (-16384) scavenge
footprint: 6242304 (-16384) scavenge
footprint: 6225920 (-16384) scavenge
footprint: 6209536 (-16384) scavenge
footprint: 6193152 (-16384) scavenge
...

  • bmalloc/Heap.cpp:

(bmalloc::Heap::adjustStat):
(bmalloc::Heap::logStat):
(bmalloc::Heap::adjustFreeableMemory):
(bmalloc::Heap::adjustFootprint):
(bmalloc::Heap::decommitLargeRange):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::deallocateLarge):
(bmalloc::Heap::externalCommit):
(bmalloc::Heap::externalDecommit):

  • bmalloc/Heap.h:
2:10 PM Changeset in webkit [286028] by Jonathan Bedard
  • 9 edits in trunk/Tools

Link Python packages to GitHub
https://bugs.webkit.org/show_bug.cgi?id=233318
<rdar://problem/85551201>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/setup.py: Bump version, link to GitHub.
  • Scripts/libraries/webkitcorepy/setup.py: Bump version, link to GitHub.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
  • Scripts/libraries/webkitflaskpy/setup.py: Bump version, link to GitHub.
  • Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/setup.py: Bump version, link to GitHub.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.

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

1:57 PM Changeset in webkit [286027] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix Linux build after r286025.

  • page/linux/ResourceUsageThreadLinux.cpp:

(WebCore::ResourceUsageThread::platformCollectCPUData):

1:47 PM Changeset in webkit [286026] by Alan Coon
  • 1 copy in tags/Safari-613.1.9

Tag Safari-613.1.9.

1:28 PM Changeset in webkit [286025] by Chris Dumez
  • 23 edits in trunk/Source/WebCore

Port call sites to ScriptExecutionContext::identifier() and drop ScriptExecutionContext::contextIdentifier()
https://bugs.webkit.org/show_bug.cgi?id=233323

Reviewed by Geoffrey Garen.

Port call sites to ScriptExecutionContext::identifier() and drop ScriptExecutionContext::contextIdentifier() alias.

  • Modules/mediacapabilities/MediaCapabilities.cpp:

(WebCore::MediaCapabilities::decodingInfo):
(WebCore::MediaCapabilities::encodingInfo):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):
(WebCore::m_contextIdentifier):

  • Modules/mediastream/RTCRtpSFrameTransform.cpp:

(WebCore::RTCRtpSFrameTransform::initializeTransformer):
(WebCore::RTCRtpSFrameTransform::createStreams):

  • crypto/CryptoAlgorithm.cpp:

(WebCore::dispatchAlgorithmOperation):

  • crypto/algorithms/CryptoAlgorithmECDH.cpp:

(WebCore::CryptoAlgorithmECDH::deriveBits):

  • crypto/algorithms/CryptoAlgorithmSHA1.cpp:

(WebCore::CryptoAlgorithmSHA1::digest):

  • crypto/algorithms/CryptoAlgorithmSHA224.cpp:

(WebCore::CryptoAlgorithmSHA224::digest):

  • crypto/algorithms/CryptoAlgorithmSHA256.cpp:

(WebCore::CryptoAlgorithmSHA256::digest):

  • crypto/algorithms/CryptoAlgorithmSHA384.cpp:

(WebCore::CryptoAlgorithmSHA384::digest):

  • crypto/algorithms/CryptoAlgorithmSHA512.cpp:

(WebCore::CryptoAlgorithmSHA512::digest):

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::generatePair):

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::MainThreadBridge::registerChannel):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ScriptExecutionContext):
(WebCore::ScriptExecutionContext::removeFromContextsMap):
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::identifier const):
(WebCore::ScriptExecutionContext::contextIdentifier const): Deleted.

  • workers/WorkerGlobalScope.cpp:

(WebCore::m_credentials):
(WebCore::WorkerGlobalScope::~WorkerGlobalScope):

1:14 PM Changeset in webkit [286024] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Switching line layout path should invalidate preferred width
https://bugs.webkit.org/show_bug.cgi?id=233324

Reviewed by Antti Koivisto.

Since we don't propagate intrinsic width values between the line layout codepaths, switching
should invalidate these dirty bits.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::invalidateLineLayoutPath):

12:58 PM Changeset in webkit [286023] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

[Model] add support for getting and setting the camera
https://bugs.webkit.org/show_bug.cgi?id=233265
<rdar://problem/85426290>

Unreviewed build fix.

Fix the Montery build, making sure we guard calls to the new ARQL SPIs.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::getCameraForModelElement):
(WebKit::ModelElementController::setCameraForModelElement):

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

[iOS] Block access to unused resources in the Networking process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233129
<rdar://problem/85411927>

Unreviewed, fix sandbox syntax errors.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
12:48 PM Changeset in webkit [286021] by Wenson Hsieh
  • 7 edits
    2 adds in trunk

[macOS] [Live Text] Avoid analyzing images in editable content
https://bugs.webkit.org/show_bug.cgi?id=233317

Reviewed by Megan Gardner.

Source/WebCore:

Make macOS Live Text behavior consistent with iOS, and avoid automatically triggering text recognition (Live
Text) when hovering over images in editable content. In addition to platform consistency, this also allows us to
avoid handling both image service controls and image overlay content inside editable image elements in Mail
compose.

Test: fast/images/text-recognition/mac/text-recognition-candidates.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::textRecognitionCandidateElement const):

Add the editability check here and return null.

  • page/EventHandler.h:

Drive-by code cleanup -- move textRecognitionCandidateElement behind the ENABLE(IMAGE_ANALYSIS) compile-time
flag, since it's only used from image analysis code.

  • testing/Internals.cpp:

(WebCore::Internals::textRecognitionCandidate const):

Add an internal testing hook to query the current text recognition candidate element (i.e. a suitable image that
is being hovered, or otherwise null).

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Add a layout test to exercise the change.

  • fast/images/text-recognition/mac/text-recognition-candidates-expected.txt: Added.
  • fast/images/text-recognition/mac/text-recognition-candidates.html: Added.
12:04 PM Changeset in webkit [286020] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Add branchTest16 operation
https://bugs.webkit.org/show_bug.cgi?id=233275

Reviewed by Mark Lam.

This patch adds branchTest16 to all macro assemblers. And it also fixes the existing bug of
edge case of branchTest8: when we cannot represent the imm as ARM logical value, then we are
failing to emit the right instructions. Probably this bug does not appear since we are not using
such a value as an imm for branchTest8. We added tests to testmasm so that these code is stressed
now.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::branchTest16):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::branchTest32):
(JSC::MacroAssemblerARM64::branchTest8):
(JSC::MacroAssemblerARM64::branchTest16):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchTest16):
(JSC::MacroAssemblerARMv7::test32):
(JSC::MacroAssemblerARMv7::test8):

  • assembler/MacroAssemblerHelpers.h:

(JSC::MacroAssemblerHelpers::mask16OnCondition):
(JSC::MacroAssemblerHelpers::load16OnCondition):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::load16SignedExtendTo32):
(JSC::MacroAssemblerMIPS::mask16OnTest):
(JSC::MacroAssemblerMIPS::branchTest16):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchTest16):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::branchTest16):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::cmpw_im):
(JSC::X86Assembler::testw_im):

  • assembler/testmasm.cpp:

(JSC::testBranchTest8):
(JSC::testBranchTest16):

11:38 AM Changeset in webkit [286019] by graouts@webkit.org
  • 41 edits
    3 copies in trunk/Source

[Model] add support for getting and setting the camera
https://bugs.webkit.org/show_bug.cgi?id=233265
<rdar://problem/85426290>

Reviewed by Darin Adler.

Source/WebCore:

We add two new promise-based methods to the HTMLModelElement IDL to access and set the camera:
getCamera() and setCamera(). The camera is represented by a new HTMLModelElementCamera dictionary
which has yaw, pitch and scale members.

  • CMakeLists.txt:
  • Headers.cmake:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::getCamera):
(WebCore::HTMLModelElement::setCamera):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/HTMLModelElementCamera.h: Copied from Source/WebCore/Modules/model-element/HTMLModelElement.idl.

(WebCore::HTMLModelElementCamera::encode const):
(WebCore::HTMLModelElementCamera::decode):

  • Modules/model-element/HTMLModelElementCamera.idl: Copied from Source/WebCore/Modules/model-element/HTMLModelElement.idl.
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::getCamera):
(WebCore::DummyModelPlayer::setCamera):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::getCamera):
(WebCore::SceneKitModelPlayer::setCamera):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::takeModelElementFullscreen const): Deleted.

  • loader/EmptyClients.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::takeModelElementFullscreen const): Deleted.

Source/WebCore/PAL:

Add the new ARQL SPIs we are using.

  • pal/spi/ios/SystemPreviewSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

The ARQL APIs we'd adopted so far were specific to either macOS or iOS. The new camera
methods are different since they exist on both platforms.

In order to expose a single message for both platforms, we introduce a new ModelIdentifier
struct which wraps the UUID string for macOS and the layer identifier for iOS. Then on
ModelElementController, we have the previewForModelIdentifier() method to get the matching
ASVInlinePreview for the provided ModelIdentifier.

This allows getCameraForModelElement() and setCameraForModelElement to be specified for both
iOS and macOS with a single implementation.

We also modify takeModelElementFullscreen() to take advantage of ModelIdentifier which showed
that we had some lingering code in ChromeClient related to this method that was no longer
necessary following r285922.

  • Shared/ModelIdentifier.h: Copied from Source/WebCore/Modules/model-element/scenekit/SceneKitModelPlayer.h.

(WebKit::ModelIdentifier::encode const):
(WebKit::ModelIdentifier::decode):

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::modelViewForModelIdentifier):
(WebKit::ModelElementController::previewForModelIdentifier):
(WebKit::ModelElementController::takeModelElementFullscreen):
(WebKit::previewHasCameraSupport):
(WebKit::ModelElementController::getCameraForModelElement):
(WebKit::ModelElementController::setCameraForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementGetCamera):
(WebKit::WebPageProxy::modelElementSetCamera):
(WebKit::WebPageProxy::takeModelElementFullscreen):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::getCamera):
(WebKit::ARKitInlinePreviewModelPlayer::setCamera):

  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::modelIdentifier):
(WebKit::ARKitInlinePreviewModelPlayerIOS::enterFullscreen):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::modelIdentifier):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::takeModelElementFullscreen const): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::takeModelElementFullscreen): Deleted.

  • WebProcess/WebPage/WebPage.h:

Source/WTF:

Add a new compile-time flag for the new ARQL SPIs we are using.

  • wtf/PlatformEnableCocoa.h:
11:30 AM Changeset in webkit [286018] by ddkilzer@apple.com
  • 8 edits in trunk/Source

Add missing dependencies for <wtf/Platform.h> when generating derived sources
<https://webkit.org/b/233304>
<rdar://problem/85533245>

Reviewed by Darin Adler.

Source/JavaScriptCore:

(Derived Sources : Generate Derived Sources):

  • Add an input dependency on the script run from the build phase script.
  • DerivedSources-input.xcfilelist:
  • Update after changes to DerivedSoures.make. WebKit headers included by <wtf/Platform.h> are now listed.
  • DerivedSources.make:

(platform_h_compiler_command): Add.
(FEATURE_AND_PLATFORM_DEFINES):

  • Extract compiler command into a call routine for reuse.

(PLATFORM_HEADER_DIR): Add.
(PLATFORM_HEADER_DEPENDENCIES): Add.
(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES):

  • Generate a makefile dependency list for <wtf/Platform.h>, then filter it to list only WebKit project headers.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

(Derived Sources : Generate Derived Sources):

  • Add an input dependency on the script run from the build phase script.
  • DerivedSources-input.xcfilelist:
  • Update after changes to DerivedSoures.make. WebKit headers included by <wtf/Platform.h> are now listed.
  • DerivedSources.make:

(platform_h_compiler_command): Add.
(FEATURE_AND_PLATFORM_DEFINES):

  • Extract compiler command into a call routine for reuse.

(PLATFORM_HEADER_DIR): Add.
(PLATFORM_HEADER_DEPENDENCIES): Add.
(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES):

  • Generate a makefile dependency list for <wtf/Platform.h>, then filter it to list only WebKit project headers.
11:19 AM Changeset in webkit [286017] by Alan Coon
  • 4 edits in branches/safari-612.3.6.1-branch/Source

Cherry-pick r285130. rdar://problem/85166839

[macOS] Opening local html files is failing
https://bugs.webkit.org/show_bug.cgi?id=232572
<rdar://81330442>

Reviewed by Brent Fulgham.

Source/WebKit:

On some macOS versions, opening local html files is failing. In order for the WebContent process
to successfully issue the file extension to the Networking process, the flags for the extension
in the WebContent process must include the user intent flag when the extension is issued with an
audit token.

  • Shared/Cocoa/SandboxExtensionCocoa.mm: (WebKit::SandboxExtensionImpl::sandboxExtensionForType):

Source/WTF:

Declare sandbox flag.

  • wtf/spi/darwin/SandboxSPI.h:

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

11:17 AM Changeset in webkit [286016] by Alan Coon
  • 8 edits in branches/safari-612.3.6.1-branch/Source

Versioning.

WebKit-7612.3.6.1.5

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

[Win] Build fix after r285991
https://bugs.webkit.org/show_bug.cgi?id=233321

Unreviewed build fix.

Patch by Christopher Reid <c29reid@uwaterloo.ca> on 2021-11-18

  • accessibility/win/AXObjectCacheWin.cpp:
10:42 AM Changeset in webkit [286014] by Russell Epstein
  • 1 copy in tags/Safari-613.1.8.3

Tag Safari-613.1.8.3.

10:37 AM Changeset in webkit [286013] by Russell Epstein
  • 2 edits in branches/safari-613.1.9-branch/Source/WebKit

Cherry-pick r285977. rdar://problem/85529760

[macOS][GPUP] Add access to logging service for root
https://bugs.webkit.org/show_bug.cgi?id=233300
<rdar://85529760>

Reviewed by Brent Fulgham.

Access to logging service is required for root in the GPU process on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

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

10:27 AM Changeset in webkit [286012] by Chris Dumez
  • 101 edits
    3 deletes in trunk/Source

Drop ServiceWorkerClientIdentifier / DocumentIdentifier and use ScriptExecutionContextIdentifier instead
https://bugs.webkit.org/show_bug.cgi?id=233288

Reviewed by Darin Adler.

Drop ServiceWorkerClientIdentifier / DocumentIdentifier and use ScriptExecutionContextIdentifier instead.

We need to generic identifier type to identify script execution contexts globally. This patch augments
ScriptExecutionContextIdentifier with a process identifier to make it app-global, and then gets rid of
ServiceWorkerClientIdentifier & DocumentIdentifier (which become obsolete).

This is useful for Web Lock API support as we need a clientId that is consistent between the Web Lock
API and the service worker API (tested by imported/w3c/web-platform-tests/web-locksclientids.tentative.https.html).
The clientId in service workers was using the ServiceWorkerClientIdentifier type, which made little
sense to use for the Web Lock API given its name.

Source/WebCore:

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::addToDocumentsMap):
(WebCore::Document::removeFromDocumentsMap):
(WebCore::Document::setServiceWorkerConnection):

  • dom/Document.h:

(WebCore::Document::identifier const): Deleted.

  • dom/ElementContext.h:

(WebCore::ElementContext::decode):

  • dom/ScriptElement.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ScriptExecutionContext):
(WebCore::ScriptExecutionContext::removeFromContextsMap):
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::contextIdentifier const): Deleted.

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::contextIdentifier const):
(WebCore::ScriptExecutionContext::identifier const):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::fromTemporaryDocumentIdentifier):
(WebCore::DocumentLoader::loadMainResource):

  • loader/DocumentLoader.h:
  • loader/FetchOptions.h:

(WebCore::FetchOptions::encode const):
(WebCore::FetchOptions::decode):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::prepareFetch):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setClientIdentifierIfNeeded):

  • loader/cache/CachedResourceRequest.h:
  • page/mac/PageMac.mm:

(WebCore::Page::platformInitialize):

  • platform/DocumentIdentifier.h: Removed.

(): Deleted.

  • platform/ProcessQualified.h:

(WebCore::ProcessQualified::generateThreadSafe):
(WebCore::ProcessQualified::generate):
(WebCore::ProcessQualified::toString const):
(WebCore::ProcessQualified<T>::encode const):
(WebCore::ProcessQualified<T>::decode):

  • platform/ScriptExecutionContextIdentifier.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • testing/Internals.cpp:

(WebCore::Internals::documentIdentifier const):
(WebCore::Internals::isDocumentAlive const):
(WebCore::Internals::serviceWorkerClientIdentifier const):

  • workers/service/SWClientConnection.cpp:

(WebCore::dispatchToContextThreadIfNecessary):
(WebCore::SWClientConnection::scheduleJob):
(WebCore::SWClientConnection::postMessageToServiceWorkerClient):
(WebCore::SWClientConnection::notifyClientsOfControllerChange):
(WebCore::SWClientConnection::registerServiceWorkerClients):

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorkerClient.h:
  • workers/service/ServiceWorkerClientData.cpp:

(WebCore::ServiceWorkerClientData::from):

  • workers/service/ServiceWorkerClientData.h:

(WebCore::ServiceWorkerClientData::decode):

  • workers/service/ServiceWorkerClientIdentifier.cpp: Removed.

(WebCore::ServiceWorkerClientIdentifier::fromString): Deleted.

  • workers/service/ServiceWorkerClientIdentifier.h: Removed.

(WebCore::ServiceWorkerClientIdentifier::toString const): Deleted.
(WebCore::operator==): Deleted.
(WebCore::ServiceWorkerClientIdentifier::encode const): Deleted.
(WebCore::ServiceWorkerClientIdentifier::decode): Deleted.
(WebCore::ServiceWorkerClientIdentifier::hash const): Deleted.
(WebCore::ServiceWorkerClientIdentifierHash::hash): Deleted.
(WebCore::ServiceWorkerClientIdentifierHash::equal): Deleted.
(WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::emptyValue): Deleted.
(WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::isDeletedValue): Deleted.

  • workers/service/ServiceWorkerClients.cpp:

(WebCore::scriptExecutionContextIdentifierFromString):
(WebCore::ServiceWorkerClients::get):

  • workers/service/ServiceWorkerClients.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::contextIdentifier):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::decode):

  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::serviceWorkerPage):
(WebCore::ServiceWorkerGlobalScope::serviceWorkerClient):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerJob.h:

(WebCore::ServiceWorkerJob::contextIdentifier):

  • workers/service/ServiceWorkerJobClient.h:
  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::serviceWorkerOrClientIdentifier):
(WebCore::ServiceWorkerJobData::ServiceWorkerJobData):
(WebCore::ServiceWorkerJobData::serviceWorkerPageIdentifier const):

  • workers/service/ServiceWorkerJobData.h:
  • workers/service/ServiceWorkerTypes.h:
  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::unregisterServiceWorkerClient):
(WebCore::WorkerSWClientConnection::scheduleJob):
(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):

  • workers/service/WorkerSWClientConnection.h:
  • workers/service/context/SWContextManager.cpp:
  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • workers/service/context/ServiceWorkerFetch.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::queueTaskToFireFetchEvent):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::startFetch):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::serviceWorkerClientWithOriginByID const):
(WebCore::SWServer::scheduleUnregisterJob):
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::registerServiceWorkerClient):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::createContextConnection):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::SWServerRegistration):
(WebCore::SWServerRegistration::addClientUsingRegistration):
(WebCore::SWServerRegistration::removeClientUsingRegistration):
(WebCore::SWServerRegistration::controlClient):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::findClientByIdentifier):

  • workers/service/server/SWServerToContextConnection.h:

(WebCore::SWServerToContextConnection::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::findClientByIdentifier const):
(WebCore::SWServerWorker::serviceWorkerPageIdentifier const):

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::swServerForSession):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::notifyClientsOfControllerChange):
(WebKit::WebSWServerConnection::controlClient):
(WebKit::WebSWServerConnection::createFetchTask):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::clientURLFromIdentifier):
(WebKit::WebSWServerConnection::scheduleUnregisterJobInServer):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::unregisterMDNSNames):
(WebKit::NetworkMDNSRegister::registerMDNSName):

  • NetworkProcess/webrtc/NetworkMDNSRegister.h:
  • NetworkProcess/webrtc/NetworkMDNSRegister.messages.in:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/WebCoreArgumentCoders.cpp:

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

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::establishServiceWorkerContext):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::liveDocumentURLs):

  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp:

(WebKit::LibWebRTCNetworkManager::getOrCreate):
(WebKit::LibWebRTCNetworkManager::LibWebRTCNetworkManager):

  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.h:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createPeerConnection):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/WebMDNSRegister.cpp:

(WebKit::WebMDNSRegister::unregisterMDNSNames):
(WebKit::WebMDNSRegister::registerMDNSName):

  • WebProcess/Network/webrtc/WebMDNSRegister.h:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleUnregisterJobInServer):
(WebKit::WebSWClientConnection::unregisterServiceWorkerClient):
(WebKit::WebSWClientConnection::setDocumentIsControlled):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::startFetch):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWContextManagerConnection::findClientByIdentifier):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
10:05 AM Changeset in webkit [286011] by yoshiaki.jitsukawa@sony.com
  • 10 edits
    9 adds in trunk

Implement JPEG XL image decoder using libjxl
https://bugs.webkit.org/show_bug.cgi?id=233113

Reviewed by Michael Catanzaro.

This patch introduces the initial version of JPEG XL image decoder.
JPEG XL is a royalty-free raster-graphics file format that supports
both lossy and lossless compression and is experimentally supported by
Chrome, FireFox, and Edge.
The image decoder implemented by this patch uses libjxl, a reference
implementation of JPEG XL decoder (and encoder). JPEG XL animations
will be supported later.

.:

  • Source/cmake/FindJPEGXL.cmake: Added.
  • Source/cmake/OptionsWinCairo.cmake: Enable JPEG XL support if

libjxl is available.

Source/WebCore:

Tests: LayoutTests\fast\images\jpegxl-as-image.html

LayoutTests\fast\images\jpegxl-image-decoding.html

  • platform/ImageDecoders.cmake: Add JPEGXLImageDecoder.cpp if

USE(JPEGXL) is turned on.

  • platform/MIMETypeRegistry.cpp: JPEG XL mime type added.
  • platform/image-decoders/ScalableImageDecoder.cpp: JPEG XL signature

added.

  • platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp: Added.
  • platform/image-decoders/jpegxl/JPEGXLImageDecoder.h: Added.
  • platform/win/MIMETypeRegistryWin.cpp: The .jxl file extension added.

LayoutTests:

  • TestExpectations: Skip JPEG XL tests by default.
  • fast/images/jpegxl-as-image-expected.html: Added.
  • fast/images/jpegxl-as-image.html: Added.
  • fast/images/jpegxl-image-decoding-expected.txt: Added.
  • fast/images/jpegxl-image-decoding.html: Added.
  • fast/images/resources/green-313x313.jxl: Added.
  • platform/wincairo/TestExpectations: Skip JPEG XL tests until

WebKitReqirements release with libjxl.

9:58 AM Changeset in webkit [286010] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Block access to unused resources in the Networking process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233086
<rdar://problem/85376544>

Reviewed by Brent Fulgham.

Follow-up patch, allow access to logging service for root.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
9:45 AM Changeset in webkit [286009] by Russell Epstein
  • 3 edits in branches/safari-613.1.8-branch/Source/WebKit

Cherry-pick r285886. rdar://problem/85473581

[iOS] Limit graphics related IOKit method filtering
https://bugs.webkit.org/show_bug.cgi?id=233209
<rdar://problem/85473581>

Reviewed by Brent Fulgham.

Limit graphics related IOKit method filtering based on OS version. This patch also adds an entitlement which
will enable a replacement for the disabled filtering.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Scripts/process-entitlements.sh:

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

9:33 AM Changeset in webkit [286008] by Russell Epstein
  • 2 edits in branches/safari-613.1.8-branch/Source/WebKit

Cherry-pick r285889. rdar://problem/85430575

Adjust graphics related message filter
https://bugs.webkit.org/show_bug.cgi?id=233151
<rdar://problem/85430575>

Reviewed by Brent Fulgham.

Adjust graphics related message filter in the WebContent process' sandbox on iOS. This patch unifies
the filter for different OS versions.

  • WebProcess/com.apple.WebProcess.sb.in:

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

9:33 AM Changeset in webkit [286007] by Russell Epstein
  • 3 edits in branches/safari-613.1.8-branch/Source/WebKit

Cherry-pick r285878. rdar://problem/85430575

Adjust graphics related message filter
https://bugs.webkit.org/show_bug.cgi?id=233151
<rdar://problem/85430575>

Reviewed by Brent Fulgham.

Adjust graphics related message filter in the WebContent process' sandbox on iOS. This patch unifies
the filter for different OS versions.

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

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

9:27 AM Changeset in webkit [286006] by Russell Epstein
  • 8 edits in branches/safari-613.1.8-branch/Source

Versioning.

WebKit-7613.1.8.3

9:21 AM Changeset in webkit [286005] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

MediaPlayerAVFoundation should support rvfc
https://bugs.webkit.org/show_bug.cgi?id=231945
<rdar://problem/84657372>

Reviewed by Chris Dumez.

Unreviewed, rebasing generator tests.

  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
  • Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:
  • Scripts/webkit/tests/TestWithCVPixelBufferMessages.h:
7:56 AM Changeset in webkit [286004] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Block access to unused resources in the Networking process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233129
<rdar://problem/85411927>

Reviewed by Brent Fulgham.

Based on telemetry, block access to unused resources in the Networking process' sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
7:52 AM Changeset in webkit [286003] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Block access to unused resources in the Networking process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233086
<rdar://problem/85376544>

Reviewed by Brent Fulgham.

Based on telemetry, block access to unused resources in the Networking process' sandbox on macOS.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
7:13 AM Changeset in webkit [286002] by Martin Robinson
  • 36 edits
    1 copy
    11 moves
    18 adds
    7 deletes in trunk/LayoutTests

Update css-transforms WPT tests
https://bugs.webkit.org/show_bug.cgi?id=233188

Reviewed by Sergio Villar Senin.

Update WPT transform tests and expectations.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/css-transforms/2d-rotate-001.html:
  • web-platform-tests/css/css-transforms/2d-rotate-notref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/2d-rotate-notref-expected.html.
  • web-platform-tests/css/css-transforms/2d-rotate-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/2d-rotate-ref-expected.html.
  • web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/rotate-composition.html:
  • web-platform-tests/css/css-transforms/animation/support/transform-interpolation-reftests.js:

(async createTests):
(async createRefs):

  • web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-matrix-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-matrix-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-perspective-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-perspective.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-rotate-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-rotate-slerp-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-rotate-slerp-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-scale-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-scale-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-skew-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-skew-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-translate-em-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-translate-em-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-translate-expected.html: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-translate-expected.txt: Removed.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt: Added.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests.html: Added.
  • web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-interpolation.html:
  • web-platform-tests/css/css-transforms/animation/w3c-import.log:
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-child-translate-expected.xht: Added.
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-child-translate.html: Added.
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-child-will-change-transform-expected.xht: Added.
  • web-platform-tests/css/css-transforms/backface-visibility-hidden-child-will-change-transform.html: Added.
  • web-platform-tests/css/css-transforms/css-skew-002.html:
  • web-platform-tests/css/css-transforms/inheritance-expected.txt:
  • web-platform-tests/css/css-transforms/inheritance.html:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/transform-computed-expected.txt: Added.
  • web-platform-tests/css/css-transforms/parsing/transform-computed.html: Added.
  • web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/w3c-import.log:
  • web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html:
  • web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties.html:
  • web-platform-tests/css/css-transforms/preserve3d-overflow-percent-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/preserve3d-overflow-percent-expected.html.
  • web-platform-tests/css/css-transforms/transform-abspos-005-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-abspos-005-expected.html.
  • web-platform-tests/css/css-transforms/transform-and-individual-transform-properties-computed-style.html:
  • web-platform-tests/css/css-transforms/transform-background-007.html:
  • web-platform-tests/css/css-transforms/transform-background-008.html:
  • web-platform-tests/css/css-transforms/transform-input-015.html:
  • web-platform-tests/css/css-transforms/transform-input-016.html:
  • web-platform-tests/css/css-transforms/transform-input-017.html:
  • web-platform-tests/css/css-transforms/transform-origin-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-origin-001-expected.html.
  • web-platform-tests/css/css-transforms/transform-origin-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-origin-002-expected.html.
  • web-platform-tests/css/css-transforms/transform-scale-hittest-expected.txt:
  • web-platform-tests/css/css-transforms/transform-scale-hittest.html:
  • web-platform-tests/css/css-transforms/transform3d-perspective-origin-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-perspective-origin-ref-expected.html.
  • web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-001-expected.html.
  • web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-rotatex-perspective-002-expected.html.
  • web-platform-tests/css/css-transforms/transform3d-rotatex-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform3d-rotatex-ref-expected.html.
  • web-platform-tests/css/css-transforms/transform3d-sorting-006.html:
  • web-platform-tests/css/css-transforms/transforms-rotate-degree-45.html:
  • web-platform-tests/css/css-transforms/ttwf-css-3d-polygon-cycle-mismatch-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/ttwf-css-3d-polygon-cycle-mismatch-expected.html.
  • web-platform-tests/css/css-transforms/ttwf-css-3d-polygon-cycle.html:
  • web-platform-tests/css/css-transforms/w3c-import.log:

LayoutTests:

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

[LFC][IFC] Should not always keep the entire continuous content when the line is empty
https://bugs.webkit.org/show_bug.cgi?id=233303

Reviewed by Antti Koivisto.

The rule of "let's keep the first glyph on the line" should take into account when
the continuous content has a series of runs e.g [X][X][X] where each 'X' represents an individual inline text item.
In such cases we should just return the first text run as the trailing inline item with 'break' action.
(This patch is in preparation for enabling IFC's preferred width computation.)

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):

  • rendering/RenderBlockFlow.cpp:
6:43 AM Changeset in webkit [286000] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Inline boxes with unbreakable decoration can produce a breaking position with no trailing run
https://bugs.webkit.org/show_bug.cgi?id=233302

Reviewed by Antti Koivisto.

Source/WebCore:

This is a rare case when the overflowing run is the first inline box start with unbreakable decoration while its content is breakable.
e.g.
<div style="width: 0xp"><span style="border: solid; word-break: break-word;">breakable</span></div>

While the overflowing run (inline box start) is unbreakable (border), we find the first breaking position right between
the <span> (inline box start) and its content (inline text item).
However we also don't want to separate the content from its parent inline box (i.e. should not be breaking between these 2 inline items)
so we start searching for a trailing run candidate by looking at the previous set of runs.
Now if this <span> is the first run in this set we won't find a trailing run and we should just return the breaking position with no trailing content.

Test: fast/inline/inline-box-with-unbreakable-decoration-and-word-break.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::tryBreakingNextOverflowingRuns const):

LayoutTests:

  • fast/inline/inline-box-with-unbreakable-decoration-and-word-break-expected.html: Added.
  • fast/inline/inline-box-with-unbreakable-decoration-and-word-break.html: Added.
6:20 AM Changeset in webkit [285999] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Glyphs that conditionally hang are taken into account for max-content only
https://bugs.webkit.org/show_bug.cgi?id=233287

Reviewed by Antti Koivisto.

Remove hanging glyphs for min-content only. It simply means that content followed by (pre-wrap) whitespace may make shrink wrapped lines wider.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

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

  • rendering/RenderBlockFlow.cpp:
5:12 AM Changeset in webkit [285998] by Ziran Sun
  • 12 edits in trunk

Images as grid items should use the overridingLogicalWidth when defined to compute the logical Height
https://bugs.webkit.org/show_bug.cgi?id=228022

LayoutTests/imported/w3c:

Reviewed by Javier Fernandez.

  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036-expected.txt:

Source/WebCore:

This is a re-land of r280078 and r282008. r280078 has caused a crash. Details on the crash test case is
at https://bugs.webkit.org/show_bug.cgi?id=232922. The reason for the crash is that, when recomputing the
intrinsic width we need to recompute the intrinsic width of the caller, which is the grid item, rather than
the grid in this case.

This patch addresses the original issue and the cause for the crash.

When computing the logical height using an intrinsic aspect ratio, RenderReplaced should use the
overridingLogicalWidth whenever defined just as how it does for flex items. This change is to
replace the use of intrinsic (non-stretched) logical width in current code with the overridingLogicalWidth.

The current code doesn't set overringLogicalWidth while the width changes while stretches along Row Axis.
This change adds the logic in.

Reviewed by Javier Fernandez.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalHeight const):

LayoutTests:

Reviewed by Javier Fernandez.

4:34 AM Changeset in webkit [285997] by Carlos Garcia Campos
  • 11 edits
    1 add in trunk

[GTK][a11y] Add implementation of value interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232300

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • SourcesGTK.txt:
  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::valueChanged):

  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp: Added.

(WebCore::AccessibilityObjectAtspi::currentValue const):
(WebCore::AccessibilityObjectAtspi::setCurrentValue):
(WebCore::AccessibilityObjectAtspi::minimumValue const):
(WebCore::AccessibilityObjectAtspi::maximumValue const):
(WebCore::AccessibilityObjectAtspi::minimumIncrement const):
(WebCore::AccessibilityObjectAtspi::valueChanged):

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

Tools:

Add new unit test for the value interface and implement WTR value support.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testValueBasic):
(beforeAll):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):

3:46 AM Changeset in webkit [285996] by Carlos Garcia Campos
  • 14 edits in trunk

[GTK][a11y] Add initial WTR accessibility support when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=230259

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Export symbols required by WTR.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::runLoop const):

  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::focusedObject const):

  • accessibility/atspi/AccessibilityRootAtspi.h:

Source/WebKit:

In case of ATSPI we need the web page accessibility object to get the root and focused object wrappers.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKAccessibilityRootObject):
(WKAccessibilityFocusedObject):

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::accessibleElementById):
(WTR::AccessibilityController::platformName):
(WTR::AccessibilityController::axRunLoop):
(WTR::AccessibilityController::executeOnAXThreadAndWait):
(WTR::AccessibilityController::executeOnAXThread):
(WTR::AccessibilityController::executeOnMainThread):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::AccessibilityUIElement::isEqual):
(WTR::AccessibilityUIElement::childrenCount):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::childAtIndex):
(WTR::elementForRelationAtIndex):
(WTR::AccessibilityUIElement::ariaOwnsElementAtIndex):
(WTR::AccessibilityUIElement::ariaFlowToElementAtIndex):
(WTR::AccessibilityUIElement::ariaControlsElementAtIndex):
(WTR::AccessibilityUIElement::titleUIElement):
(WTR::AccessibilityUIElement::parentElement):
(WTR::attributesOfElement):
(WTR::attributesOfElements):
(WTR::AccessibilityUIElement::attributesOfChildren):
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::checkElementState):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::roleValueToString):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation const):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isSelectedOptionActive const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::isChecked const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::lineForIndex):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::stringForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::setSelectedTextRange):
(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isVisible const):
(WTR::AccessibilityUIElement::isOffScreen const):
(WTR::AccessibilityUIElement::isCollapsed const):
(WTR::AccessibilityUIElement::isSingleLine const):
(WTR::AccessibilityUIElement::isMultiLine const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::scrollToGlobalPoint):
(WTR::stringAtOffset):
(WTR::AccessibilityUIElement::characterAtOffset):
(WTR::AccessibilityUIElement::wordAtOffset):
(WTR::AccessibilityUIElement::lineAtOffset):
(WTR::AccessibilityUIElement::sentenceAtOffset):

  • WebKitTestRunner/gtk/main.cpp:

(main):

3:19 AM Changeset in webkit [285995] by commit-queue@webkit.org
  • 20 edits in trunk/LayoutTests/imported/w3c

Update test expectations after r285346
https://bugs.webkit.org/show_bug.cgi?id=233290

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-18

  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.blur.exceptions-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.blur.exceptions.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.colorMatrix-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.colorMatrix.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.convolveMatrix.exceptions-expected.txt:
  • web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.convolveMatrix.exceptions.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker-expected.txt:
2:43 AM Changeset in webkit [285994] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix GTK build with ATSPI enaled after r285904

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textAttributes const):

2:34 AM Changeset in webkit [285993] by youenn@apple.com
  • 37 edits in trunk

MediaPlayerAVFoundation should support rvfc
https://bugs.webkit.org/show_bug.cgi?id=231945
LayoutTests/imported/w3c:

<rdar://problem/84657372>

Reviewed by Eric Carlson.

Transforming tests from async to promise based so that there is only one video playing at a time, to make it work smoothly in iOS.

  • web-platform-tests/video-rvfc/request-video-frame-callback-dom-expected.txt:
  • web-platform-tests/video-rvfc/request-video-frame-callback-dom.html:
  • web-platform-tests/video-rvfc/request-video-frame-callback-parallel-expected.txt:
  • web-platform-tests/video-rvfc/request-video-frame-callback-parallel.html:
  • web-platform-tests/video-rvfc/request-video-frame-callback-repeating-expected.txt:
  • web-platform-tests/video-rvfc/request-video-frame-callback-repeating.html:
  • web-platform-tests/video-rvfc/request-video-frame-callback-expected.txt:
  • web-platform-tests/video-rvfc/request-video-frame-callback.html:

Source/WebCore:

<rdar://problem/84657372>

Reviewed by Eric Carlson.

Add API to start/stop gathering metadata.
This goes from video element down to media player private.
Conversely, add a callback to get the metadata, including the pixel buffer.

Implement support in MediaPlayerPrivateAVFoundationObjC by adding a specific timeline observer.
We reuse the same video output and the same pixel buffer as when painting the video element in the canvas.
To make sure painting in a canvas does not have side effects with gathering video metadata, we do not update the pixel buffer
when painting on a canvas in case video metadata is gathered.
Instead, we consider that pixel buffer is as up to date as possible in that case.
To make it work in WK1, we implement the synchronous video frame callback getter.

Round the millisecond now time given to the callback, like done for RAF.

Covered by enabled tests.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.h:
  • html/HTMLVideoElement.cpp:
  • html/HTMLVideoElement.h:
  • platform/VideoFrameMetadata.h:
  • platform/cocoa/CVPixelBufferRef.h: Added.
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/cv/PixelBufferConformerCV.h:

Source/WebKit:

<rdar://problem/84657372>

Reviewed by Eric Carlson.

Add IPC messaging to start/stop metadata gathering from WebProcess to GPUProcess.
Add IPC messaging to push metadata to WebProcess, including sending the corresponding CVPixelBuffer for the current metadata.
MediaPlayerPrivateRemote will then serve that buffer when being requested the current image.
This ensures that painting on a canvas does not mark the current buffer as acquired, which would then skip the video frame metadata gathering.
This also ensures the same buffer is used if a video element is painted several times during the same rvfc callback.
This has the side benefit of removing the synchronous IPC to paint the video element in a canvas.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
  • Scripts/webkit/messages.py:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

Tools:

Reviewed by Eric Carlson.

Enable rvfc by default in test runner.

  • DumpRenderTree/mac/DumpRenderTree.mm:
  • WebKitTestRunner/TestController.cpp:

LayoutTests:

Reviewed by Eric Carlson.

Unskipped some tests.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:06 AM Changeset in webkit [285992] by Chris Lord
  • 8 edits in trunk/Source

[GLIB] twitch.tv forces synchronous scrolling
https://bugs.webkit.org/show_bug.cgi?id=232376
<rdar://problem/85247010>

Reviewed by Simon Fraser.

Source/WebCore:

Make sure to keep the userScrollInProgress flag in sync for scrolling
nodes in the nicosia backend and add a utility function to determine
if user scroll is in progress for a given wheel event. This lets
EventDispatcher dispatch events asynchronously in that case.

No new tests, exercised by existing tests.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::isUserScrollInProgressAtEventLocation):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::isUserScrollInProgress const):
(WebCore::ScrollingTreeScrollingNode::isUserScrollProgress const): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:

(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::handleWheelEvent):

Source/WebKit:

Don't force synchronous wheel event delivery for scroll events when
a user scroll is in progress.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

1:51 AM Changeset in webkit [285991] by Carlos Garcia Campos
  • 15 edits in trunk/Source

AX: Use ObjectIdentifier for AXID
https://bugs.webkit.org/show_bug.cgi?id=233248
<rdar://problem/85497145>

Reviewed by Andres Gonzalez.

Source/WebCore:

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::setIsolatedTreeFocusedObject):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::cacheAndInitializeWrapper):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::platformGenerateAXID const):
(WebCore::AXObjectCache::objectsForIDs const):
(WebCore::AXObjectCache::updateIsolatedTree):

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

(WebCore::AXCoreObject::detach):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::associatedAXObject const):
(WebCore::AXIsolatedObject::detachFromParent):
(WebCore::AXIsolatedObject::isDetachedFromParent):
(WebCore::AXIsolatedObject::cellForColumnAndRow):
(WebCore::AXIsolatedObject::accessibilityHitTest const):
(WebCore::AXIsolatedObject::objectAttributeValue const):

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

(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::idsForObjects const):
(WebCore::AXIsolatedTree::updateChildrenIDs):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::focusedNode):
(WebCore::AXIsolatedTree::setFocusedNodeID):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::WTF_GUARDED_BY_LOCK): Deleted.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase attachAXObject:]):
(-[WebAccessibilityObjectWrapperBase attachIsolatedObject:]):
(-[WebAccessibilityObjectWrapperBase detach]):
(-[WebAccessibilityObjectWrapperBase detachIsolatedObject:]):

  • accessibility/win/AXObjectCacheWin.cpp:

(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::platformGenerateAXID const):

Source/WebKitLegacy/win:

  • AccessibleBase.cpp:

(AccessibleBase::get_uniqueID):
(AccessibleBase::getAccessibilityObjectForChild const):

1:49 AM Changeset in webkit [285990] by commit-queue@webkit.org
  • 13 edits
    1 add
    2 deletes in trunk/Source

RemoteGraphicsContextGLProxyBase should not have platform-specific implementations
https://bugs.webkit.org/show_bug.cgi?id=233175

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-18
Reviewed by Antti Koivisto.

Move platform-specific code from RemoteGraphicsContextGLProxyBase to
WebKit::RemoteGraphicsContextGLProxyCocoa and WebKit::RemoteGraphicsContextGLProxyWC.
The platform-specific code is trivial and anyway used by the WebKit side concrete classes.

Source/WebCore:

No new tests, refactor.

  • PlatformWinCairo.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:

(WebCore::RemoteGraphicsContextGLProxyBase::RemoteGraphicsContextGLProxyBase):
(WebCore::RemoteGraphicsContextGLProxyBase::platformInitialize): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::platformLayer const): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample): Deleted.

  • platform/graphics/RemoteGraphicsContextGLProxyBase.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
  • platform/graphics/cocoa/RemoteGraphicsContextGLProxyBaseCocoa.mm: Removed.

(WebCore::RemoteGraphicsContextGLProxyBase::platformInitialize): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::platformLayer const): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::asCV): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::paintCompositedResultsToMediaSample): Deleted.

  • platform/graphics/wc/RemoteGraphicsContextGLProxyBaseWC.cpp: Removed.

(WebCore::RemoteGraphicsContextGLProxyBase::platformInitialize): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::platformLayer const): Deleted.
(WebCore::RemoteGraphicsContextGLProxyBase::setPlatformLayer): Deleted.

Source/WebKit:

  • PlatformWin.cmake:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::create): Deleted.
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay): Deleted.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:

(WebKit::RemoteGraphicsContextGLProxy::create):
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay): Deleted.

  • WebProcess/GPU/graphics/wc/RemoteGraphicsContextGLProxyWC.cpp: Added.

(WebKit::RemoteGraphicsContextGLProxy::create):

1:41 AM Changeset in webkit [285989] by svillar@igalia.com
  • 12 edits
    20 adds in trunk/LayoutTests

[css-flexbox] Import WPT tests. November 2021 edition.
https://bugs.webkit.org/show_bug.cgi?id=233197

Reviewed by Martin Robinson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/baseline-synthesis-001-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/baseline-synthesis-001.html: Added.
  • web-platform-tests/css/css-flexbox/baseline-synthesis-002-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/baseline-synthesis-002.html: Added.
  • web-platform-tests/css/css-flexbox/column-intrinsic-size-aspect-ratio-crash.html: Added.
  • web-platform-tests/css/css-flexbox/column-intrinsic-size-aspect-ratio-crash-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt:
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011.html:
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-016-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-016.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-023.html:
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001-expected.xhtml:
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001.xhtml:
  • web-platform-tests/css/css-flexbox/percentage-heights-016-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-016.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-017-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-017.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-018-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-018.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-019-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/percentage-heights-019.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-large-intrinsic-size-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-large-intrinsic-size.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

1:26 AM Changeset in webkit [285988] by Carlos Garcia Campos
  • 6 edits in trunk

[GLIB] jsc_value_object_define_property_accessor() throws an exception when called on a value without a wrapper instance
https://bugs.webkit.org/show_bug.cgi?id=233253

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

We assumed that getter and setter were always methods, so we always try to set the initial parameter as the
instance. When called with a value not having an instance we get an exception because the expected instance is
nullptr. This patch changes the behavior of jsc_value_object_define_property_accessor() to call the getter and
setter as functions, but keeping the behavior of jsc_class_add_property() in which case they are still called as
methods.

  • API/glib/JSCClass.cpp:

(jsc_class_add_property): Use jscValueAddPropertyAccessor().

  • API/glib/JSCValue.cpp:

(jsObjectCall): Remove useless break after return.
(jscValueObjectDefinePropertyAccessor): Helper to define the property accessor using the given function type for
the getter and setter.
(jsc_value_object_define_property_accessor): Call jscValueObjectDefinePropertyAccessor() with function as
function type.
(jscValueAddPropertyAccessor): Call jscValueObjectDefinePropertyAccessor() with method as function type.

  • API/glib/JSCValuePrivate.h:

Tools:

Add unit tests to check jsc_value_object_define_property_accessor().

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(getIntProperty):
(setIntProperty):
(testJSCObject):

1:12 AM Changeset in webkit [285987] by Ziran Sun
  • 6 edits in trunk

[css-grid] Transfer size for grid item with an aspect-ratio and stretch alignment against the definite row
https://bugs.webkit.org/show_bug.cgi?id=232987

Reviewed by Javier Fernandez.

Source/WebCore:

For a grid item with an aspect-ratio, if it has stretch alignment against the definite row, it should
try and resolve it if possible and transfer this size into the inline direction for the min/max content
size. For the case that the grid width is content sized, we need to update the width before laying out
the grid items. Since the min-content contribution of the grid item has changed based on the row sizes
calculated in step 2 of sizing algorithm, we also need to repeat the sizing algorithm steps to update
the width of the track sizes.

  • rendering/GridLayoutFunctions.cpp:

(WebCore::GridLayoutFunctions::isAspectRatioBlockSizeDependentChild):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::updateGridAreaForAspectRatioItems):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::needsPreferredWidthsRecalculation const):

LayoutTests:

Nov 17, 2021:

11:58 PM Changeset in webkit [285986] by graouts@webkit.org
  • 21 edits in trunk/Source

[Model] [macOS] Add support for interaction on macOS
https://bugs.webkit.org/show_bug.cgi?id=233105
<rdar://problem/80079386>

Reviewed by Wenson Hsieh.

Source/WebCore:

Capture mouse events after the mouse button is pressed over a <model> element,
unless preventDefault() is called, and forward those events through ModelPlayer
to the UI process.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::defaultEventHandler):
(WebCore::HTMLModelElement::dragDidStart):
(WebCore::HTMLModelElement::dragDidChange):
(WebCore::HTMLModelElement::dragDidEnd):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/ModelPlayer.cpp:

(WebCore::ModelPlayer::supportsMouseInteraction):

  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::handleMouseDown):
(WebCore::DummyModelPlayer::handleMouseMove):
(WebCore::DummyModelPlayer::handleMouseUp):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::handleMouseDown):
(WebCore::SceneKitModelPlayer::handleMouseMove):
(WebCore::SceneKitModelPlayer::handleMouseUp):

Source/WebCore/PAL:

Add new ARQL SPIs.

  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

Forward mouse events captured in the Web process to the matching ASVInlinePreview.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::previewForUUID):
(WebKit::ModelElementController::handleMouseDownForModelElement):
(WebKit::ModelElementController::handleMouseMoveForModelElement):
(WebKit::ModelElementController::handleMouseUpForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMouseDownForModelElement):
(WebKit::WebPageProxy::handleMouseMoveForModelElement):
(WebKit::WebPageProxy::handleMouseUpForModelElement):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::handleMouseDown):
(WebKit::ARKitInlinePreviewModelPlayerIOS::handleMouseMove):
(WebKit::ARKitInlinePreviewModelPlayerIOS::handleMouseUp):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::supportsMouseInteraction):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseDown):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseMove):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseUp):

11:53 PM Changeset in webkit [285985] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Audio Rate Gets Messed up With Safari WebRTC and Bluetooth Switching
https://bugs.webkit.org/show_bug.cgi?id=232822
<rdar://problem/85418545>

Reviewed by Eric Carlson.

We usually create the unit, start the unit and stop the unit.
After that cycle, if we restart the unit, we expect the configuration to stay the same in WebProcess.
But, in LocalAudioMediaStreamTrackRendererInternalUnit::stop, we were disposing the audio unit and recreating it if necesary in LocalAudioMediaStreamTrackRendererInternalUnit::start.
If the sample rate changed, the new audio unit would use the new sample rate while WebProcess will use the old sample rate.
To prevent this, we now always reuse the same description to initialize the audio unit.

Manually tested.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:

(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::createAudioUnitIfNeeded):

11:46 PM Changeset in webkit [285984] by youenn@apple.com
  • 49 edits
    1 add in trunk

Add support for more rvfc metadata
https://bugs.webkit.org/show_bug.cgi?id=233185

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/video-rvfc/request-video-frame-callback-webrtc.https-expected.txt:

Source/WebCore:

Introduce VideoSampleMetadata that allows a RealtimeMediaSource to provide metadata for each video frame.
Fill VideoSampleMetadata for each source (capture and WebRTC)
Make use of VideoSampleMetadata in MediaPlayerPrivateMediaStreamAVFObjC to fill VideoFrameMetadata.
Enhance MediaPlayerPrivateAVFoundationObjC to fill in the newly exposed metadata in VideoFrameMetadata.
Update HTMLVideoElement to process the timestamp values as needed.

Covered by existing tests.

  • Headers.cmake:
  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLVideoElement.cpp:
  • html/VideoFrameMetadata.idl:
  • platform/VideoSampleMetadata.h: Added.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:
  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediastream/RealtimeIncomingVideoSource.cpp:
  • platform/mediastream/RealtimeIncomingVideoSource.h:
  • platform/mediastream/RealtimeMediaSource.cpp:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/RealtimeVideoCaptureSource.cpp:
  • platform/mediastream/RealtimeVideoCaptureSource.h:
  • platform/mediastream/RealtimeVideoSource.cpp:
  • platform/mediastream/RealtimeVideoSource.h:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
  • platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:
  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
  • testing/Internals.cpp:
  • testing/Internals.h:

Source/WebKit:

Make sure to receive frame metadats, send it through IPC to WebProcess and pipe it to media source observers.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
  • WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:18 PM Changeset in webkit [285983] by Nikita Vasilyev
  • 5 edits
    10 adds in trunk/Source/WebInspectorUI

Web Inspector: Add a swatch for align-content
https://bugs.webkit.org/show_bug.cgi?id=230065
<rdar://problem/82891361>

Reviewed by Devin Rousso.

Introduce an inline swatch for align-content, that shows icons for common align-content values:
start, center, end, space-between, space-around, space-evenly, and stretch.

  • UserInterface/Images/AlignmentCenter.svg: Added.
  • UserInterface/Images/AlignmentEnd.svg: Added.
  • UserInterface/Images/AlignmentSpaceAround.svg: Added.
  • UserInterface/Images/AlignmentSpaceBetween.svg: Added.
  • UserInterface/Images/AlignmentSpaceEvenly.svg: Added.
  • UserInterface/Images/AlignmentStart.svg: Added.
  • UserInterface/Images/AlignmentStretch.svg: Added.
  • UserInterface/Images/AlignmentUnknown.svg: Added.
  • UserInterface/Main.html:
  • UserInterface/Views/AlignmentEditor.css: Added.

(.alignment-editor .glyph):
(.alignment-editor .glyph:not(:last-child)):
(.alignment-editor .glyph:active):
(.alignment-editor .glyph.selected):
(.alignment-editor .glyph.selected + .glyph):
(.alignment-editor .glyph.selected:active):

  • UserInterface/Views/AlignmentEditor.js: Added.

(WI.AlignmentEditor):
(WI.AlignmentEditor.isAlignContentValue):
(WI.AlignmentEditor.prototype.get element):
(WI.AlignmentEditor.prototype.get value):
(WI.AlignmentEditor.prototype.set value):
(WI.AlignmentEditor.prototype._updateSelected):

  • UserInterface/Views/InlineSwatch.css:

(.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable, .alignment):hover):
(.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable, .alignment):active):
(.inline-swatch:is(.image, .alignment) > span):
(@media (prefers-color-scheme: dark) .inline-swatch.box-shadow > svg,):

  • UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch):
(WI.InlineSwatch.prototype.didDismissPopover):
(WI.InlineSwatch.prototype._updateSwatch):
(WI.InlineSwatch.prototype._valueEditorValueDidChange):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._replaceSpecialTokens):
(WI.SpreadsheetStyleProperty.prototype._addAlignmentTokens):

10:26 PM Changeset in webkit [285982] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

When an "autofilled and viewable" field becomes empty, turn "autofilled and viewable" off
https://bugs.webkit.org/show_bug.cgi?id=233239

Patch by Ricky Mondello <Ricky Mondello> on 2021-11-17
Reviewed by Darin Adler.

Source/WebCore:

Test: fast/forms/input-autofilled-and-viewable.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setValueFromRenderer): Implement the fix.

  • testing/Internals.cpp:

(WebCore::Internals::setValueFromRenderer): Added.

  • testing/Internals.h: Declare a member function.

LayoutTests:

  • fast/forms/input-autofilled-and-viewable-expected.txt: Added.
  • fast/forms/input-autofilled-and-viewable.html: Added.
10:05 PM Changeset in webkit [285981] by mmaxfield@apple.com
  • 123 edits
    37 copies
    38 adds in trunk/Source

[WebGPU] Add IPC message handlers for WebGPU
https://bugs.webkit.org/show_bug.cgi?id=233247

Reviewed by Dean Jackson.

Source/WebCore/PAL:

Add EnumTraits to the enum classes, so they can be serialized.

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:

(PAL::WebGPU::AdapterImpl::requestDevice):

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
  • pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h:
  • pal/graphics/WebGPU/WebGPUAdapter.h:
  • pal/graphics/WebGPU/WebGPUAddressMode.h:
  • pal/graphics/WebGPU/WebGPUBlendFactor.h:
  • pal/graphics/WebGPU/WebGPUBlendOperation.h:
  • pal/graphics/WebGPU/WebGPUBufferBindingType.h:
  • pal/graphics/WebGPU/WebGPUBufferUsage.h:
  • pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h:
  • pal/graphics/WebGPU/WebGPUCompareFunction.h:
  • pal/graphics/WebGPU/WebGPUCompilationMessageType.h:
  • pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h:
  • pal/graphics/WebGPU/WebGPUCullMode.h:
  • pal/graphics/WebGPU/WebGPUDeviceLostReason.h:
  • pal/graphics/WebGPU/WebGPUErrorFilter.h:
  • pal/graphics/WebGPU/WebGPUFeatureName.h:
  • pal/graphics/WebGPU/WebGPUFilterMode.h:
  • pal/graphics/WebGPU/WebGPUFrontFace.h:
  • pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
  • pal/graphics/WebGPU/WebGPUIndexFormat.h:
  • pal/graphics/WebGPU/WebGPULoadOp.h:
  • pal/graphics/WebGPU/WebGPUMapMode.h:
  • pal/graphics/WebGPU/WebGPUPipelineStatisticName.h:
  • pal/graphics/WebGPU/WebGPUPowerPreference.h:
  • pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h:
  • pal/graphics/WebGPU/WebGPUPrimitiveTopology.h:
  • pal/graphics/WebGPU/WebGPUQueryType.h:
  • pal/graphics/WebGPU/WebGPUQueue.h:
  • pal/graphics/WebGPU/WebGPURenderBundleEncoder.h:
  • pal/graphics/WebGPU/WebGPURenderPassEncoder.h:
  • pal/graphics/WebGPU/WebGPURenderPassTimestampLocation.h:
  • pal/graphics/WebGPU/WebGPUSamplerBindingType.h:
  • pal/graphics/WebGPU/WebGPUStencilOperation.h:
  • pal/graphics/WebGPU/WebGPUStorageTextureAccess.h:
  • pal/graphics/WebGPU/WebGPUStoreOp.h:
  • pal/graphics/WebGPU/WebGPUTexture.h:
  • pal/graphics/WebGPU/WebGPUTextureAspect.h:
  • pal/graphics/WebGPU/WebGPUTextureDimension.h:
  • pal/graphics/WebGPU/WebGPUTextureFormat.h:
  • pal/graphics/WebGPU/WebGPUTextureSampleType.h:
  • pal/graphics/WebGPU/WebGPUTextureViewDimension.h:
  • pal/graphics/WebGPU/WebGPUVertexFormat.h:
  • pal/graphics/WebGPU/WebGPUVertexStepMode.h:

Source/WebKit:

Add classes in GPUProcess/graphics/WebGPU to receive WebGPU's IPC messages.
Each one of these classes has an associated messages.in file. Each of these objects
holds a backing PAL::WebGPU object which is the actual implementation. The methods
that receive the IPC messages are currently unimplemented, but in a subsequent patch
they'll just forward on the calls to their backing PAL::WebGPU object.

This also adds serialization routines for all the structs in Shared/WebGPU.

No new tests because there is no behavior change (yet). We're very close, though!!!!

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/graphics/WebGPU/RemoteAdapter.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp.

(WebKit::RemoteAdapter::RemoteAdapter):
(WebKit::RemoteAdapter::~RemoteAdapter):
(WebKit::RemoteAdapter::requestDevice):

  • GPUProcess/graphics/WebGPU/RemoteAdapter.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteAdapter.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteBindGroup.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemoteBindGroup::RemoteBindGroup):
(WebKit::RemoteBindGroup::~RemoteBindGroup):
(WebKit::RemoteBindGroup::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBindGroup.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteBindGroup.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemoteBindGroupLayout::RemoteBindGroupLayout):
(WebKit::RemoteBindGroupLayout::~RemoteBindGroupLayout):
(WebKit::RemoteBindGroupLayout::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteBuffer.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp.

(WebKit::RemoteBuffer::RemoteBuffer):
(WebKit::RemoteBuffer::~RemoteBuffer):
(WebKit::RemoteBuffer::mapAsync):
(WebKit::RemoteBuffer::unmap):
(WebKit::RemoteBuffer::destroy):
(WebKit::RemoteBuffer::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteBuffer.h: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h.
  • GPUProcess/graphics/WebGPU/RemoteBuffer.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteCommandBuffer.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemoteCommandBuffer::RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::~RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteCommandBuffer.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.cpp: Added.

(WebKit::RemoteCommandEncoder::RemoteCommandEncoder):
(WebKit::RemoteCommandEncoder::~RemoteCommandEncoder):
(WebKit::RemoteCommandEncoder::beginRenderPass):
(WebKit::RemoteCommandEncoder::beginComputePass):
(WebKit::RemoteCommandEncoder::copyBufferToBuffer):
(WebKit::RemoteCommandEncoder::copyBufferToTexture):
(WebKit::RemoteCommandEncoder::copyTextureToBuffer):
(WebKit::RemoteCommandEncoder::copyTextureToTexture):
(WebKit::RemoteCommandEncoder::fillBuffer):
(WebKit::RemoteCommandEncoder::pushDebugGroup):
(WebKit::RemoteCommandEncoder::popDebugGroup):
(WebKit::RemoteCommandEncoder::insertDebugMarker):
(WebKit::RemoteCommandEncoder::writeTimestamp):
(WebKit::RemoteCommandEncoder::resolveQuerySet):
(WebKit::RemoteCommandEncoder::finish):
(WebKit::RemoteCommandEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h: Added.
  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.cpp: Added.

(WebKit::RemoteComputePassEncoder::RemoteComputePassEncoder):
(WebKit::RemoteComputePassEncoder::~RemoteComputePassEncoder):
(WebKit::RemoteComputePassEncoder::setPipeline):
(WebKit::RemoteComputePassEncoder::dispatch):
(WebKit::RemoteComputePassEncoder::dispatchIndirect):
(WebKit::RemoteComputePassEncoder::beginPipelineStatisticsQuery):
(WebKit::RemoteComputePassEncoder::endPipelineStatisticsQuery):
(WebKit::RemoteComputePassEncoder::endPass):
(WebKit::RemoteComputePassEncoder::setBindGroup):
(WebKit::RemoteComputePassEncoder::pushDebugGroup):
(WebKit::RemoteComputePassEncoder::popDebugGroup):
(WebKit::RemoteComputePassEncoder::insertDebugMarker):
(WebKit::RemoteComputePassEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h: Added.
  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteComputePipeline.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp.

(WebKit::RemoteComputePipeline::RemoteComputePipeline):
(WebKit::RemoteComputePipeline::~RemoteComputePipeline):
(WebKit::RemoteComputePipeline::getBindGroupLayout):
(WebKit::RemoteComputePipeline::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteComputePipeline.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteComputePipeline.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteDevice.cpp: Added.

(WebKit::RemoteDevice::RemoteDevice):
(WebKit::RemoteDevice::~RemoteDevice):
(WebKit::RemoteDevice::destroy):
(WebKit::RemoteDevice::createBuffer):
(WebKit::RemoteDevice::createTexture):
(WebKit::RemoteDevice::createSampler):
(WebKit::RemoteDevice::importExternalTexture):
(WebKit::RemoteDevice::createBindGroupLayout):
(WebKit::RemoteDevice::createPipelineLayout):
(WebKit::RemoteDevice::createBindGroup):
(WebKit::RemoteDevice::createShaderModule):
(WebKit::RemoteDevice::createComputePipeline):
(WebKit::RemoteDevice::createRenderPipeline):
(WebKit::RemoteDevice::createComputePipelineAsync):
(WebKit::RemoteDevice::createRenderPipelineAsync):
(WebKit::RemoteDevice::createCommandEncoder):
(WebKit::RemoteDevice::createRenderBundleEncoder):
(WebKit::RemoteDevice::createQuerySet):
(WebKit::RemoteDevice::pushErrorScope):
(WebKit::RemoteDevice::popErrorScope):
(WebKit::RemoteDevice::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteDevice.h: Added.
  • GPUProcess/graphics/WebGPU/RemoteDevice.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteExternalTexture.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemoteExternalTexture::RemoteExternalTexture):
(WebKit::RemoteExternalTexture::~RemoteExternalTexture):
(WebKit::RemoteExternalTexture::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteExternalTexture.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteExternalTexture.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPURenderPipelineDescriptor.h.

(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::~RemoteGPU):
(WebKit::RemoteGPU::requestAdapter):

  • GPUProcess/graphics/WebGPU/RemoteGPU.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUAdapter.h.
  • GPUProcess/graphics/WebGPU/RemoteGPU.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemotePipelineLayout.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemotePipelineLayout::RemotePipelineLayout):
(WebKit::RemotePipelineLayout::~RemotePipelineLayout):
(WebKit::RemotePipelineLayout::setLabel):

  • GPUProcess/graphics/WebGPU/RemotePipelineLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemotePipelineLayout.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteQuerySet.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemoteQuerySet::RemoteQuerySet):
(WebKit::RemoteQuerySet::~RemoteQuerySet):
(WebKit::RemoteQuerySet::destroy):
(WebKit::RemoteQuerySet::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteQuerySet.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteQuerySet.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteQueue.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp.

(WebKit::RemoteQueue::RemoteQueue):
(WebKit::RemoteQueue::~RemoteQueue):
(WebKit::RemoteQueue::submit):
(WebKit::RemoteQueue::onSubmittedWorkDone):
(WebKit::RemoteQueue::writeBuffer):
(WebKit::RemoteQueue::writeTexture):
(WebKit::RemoteQueue::copyExternalImageToTexture):
(WebKit::RemoteQueue::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteQueue.h: Added.
  • GPUProcess/graphics/WebGPU/RemoteQueue.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteRenderBundle.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemoteRenderBundle::RemoteRenderBundle):
(WebKit::RemoteRenderBundle::~RemoteRenderBundle):
(WebKit::RemoteRenderBundle::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderBundle.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteRenderBundle.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp: Added.

(WebKit::RemoteRenderBundleEncoder::RemoteRenderBundleEncoder):
(WebKit::RemoteRenderBundleEncoder::~RemoteRenderBundleEncoder):
(WebKit::RemoteRenderBundleEncoder::setPipeline):
(WebKit::RemoteRenderBundleEncoder::setIndexBuffer):
(WebKit::RemoteRenderBundleEncoder::setVertexBuffer):
(WebKit::RemoteRenderBundleEncoder::draw):
(WebKit::RemoteRenderBundleEncoder::drawIndexed):
(WebKit::RemoteRenderBundleEncoder::drawIndirect):
(WebKit::RemoteRenderBundleEncoder::drawIndexedIndirect):
(WebKit::RemoteRenderBundleEncoder::setBindGroup):
(WebKit::RemoteRenderBundleEncoder::pushDebugGroup):
(WebKit::RemoteRenderBundleEncoder::popDebugGroup):
(WebKit::RemoteRenderBundleEncoder::insertDebugMarker):
(WebKit::RemoteRenderBundleEncoder::finish):
(WebKit::RemoteRenderBundleEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h: Added.
  • GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp: Added.

(WebKit::RemoteRenderPassEncoder::RemoteRenderPassEncoder):
(WebKit::RemoteRenderPassEncoder::~RemoteRenderPassEncoder):
(WebKit::RemoteRenderPassEncoder::setPipeline):
(WebKit::RemoteRenderPassEncoder::setIndexBuffer):
(WebKit::RemoteRenderPassEncoder::setVertexBuffer):
(WebKit::RemoteRenderPassEncoder::draw):
(WebKit::RemoteRenderPassEncoder::drawIndexed):
(WebKit::RemoteRenderPassEncoder::drawIndirect):
(WebKit::RemoteRenderPassEncoder::drawIndexedIndirect):
(WebKit::RemoteRenderPassEncoder::setBindGroup):
(WebKit::RemoteRenderPassEncoder::pushDebugGroup):
(WebKit::RemoteRenderPassEncoder::popDebugGroup):
(WebKit::RemoteRenderPassEncoder::insertDebugMarker):
(WebKit::RemoteRenderPassEncoder::setViewport):
(WebKit::RemoteRenderPassEncoder::setScissorRect):
(WebKit::RemoteRenderPassEncoder::setBlendConstant):
(WebKit::RemoteRenderPassEncoder::setStencilReference):
(WebKit::RemoteRenderPassEncoder::beginOcclusionQuery):
(WebKit::RemoteRenderPassEncoder::endOcclusionQuery):
(WebKit::RemoteRenderPassEncoder::beginPipelineStatisticsQuery):
(WebKit::RemoteRenderPassEncoder::endPipelineStatisticsQuery):
(WebKit::RemoteRenderPassEncoder::executeBundles):
(WebKit::RemoteRenderPassEncoder::endPass):
(WebKit::RemoteRenderPassEncoder::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h: Added.
  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteRenderPipeline.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp.

(WebKit::RemoteRenderPipeline::RemoteRenderPipeline):
(WebKit::RemoteRenderPipeline::~RemoteRenderPipeline):
(WebKit::RemoteRenderPipeline::getBindGroupLayout):
(WebKit::RemoteRenderPipeline::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteRenderPipeline.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteSampler.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemoteSampler::RemoteSampler):
(WebKit::RemoteSampler::~RemoteSampler):
(WebKit::RemoteSampler::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteSampler.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteSampler.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp.

(WebKit::RemoteShaderModule::RemoteShaderModule):
(WebKit::RemoteShaderModule::~RemoteShaderModule):
(WebKit::RemoteShaderModule::compilationInfo):
(WebKit::RemoteShaderModule::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteShaderModule.h: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h.
  • GPUProcess/graphics/WebGPU/RemoteShaderModule.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteTexture.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp.

(WebKit::RemoteTexture::RemoteTexture):
(WebKit::RemoteTexture::~RemoteTexture):
(WebKit::RemoteTexture::createView):
(WebKit::RemoteTexture::destroy):
(WebKit::RemoteTexture::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteTexture.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteTexture.messages.in: Added.
  • GPUProcess/graphics/WebGPU/RemoteTextureView.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUMapMode.h.

(WebKit::RemoteTextureView::RemoteTextureView):
(WebKit::RemoteTextureView::~RemoteTextureView):
(WebKit::RemoteTextureView::setLabel):

  • GPUProcess/graphics/WebGPU/RemoteTextureView.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUTexture.h.
  • GPUProcess/graphics/WebGPU/RemoteTextureView.messages.in: Added.
  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp: Added.

(WebKit::WebGPU::ObjectHeap::ObjectHeap):
(WebKit::WebGPU::ObjectHeap::~ObjectHeap):
(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectHeap::convertGPUFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking):

  • GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h: Added.
  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/WebGPU/WebGPUBindGroupDescriptor.h:

(WebKit::WebGPU::BindGroupDescriptor::encode const):
(WebKit::WebGPU::BindGroupDescriptor::decode):

  • Shared/WebGPU/WebGPUBindGroupEntry.h:

(WebKit::WebGPU::BindGroupEntry::encode const):
(WebKit::WebGPU::BindGroupEntry::decode):

  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h:

(WebKit::WebGPU::BindGroupLayoutDescriptor::encode const):
(WebKit::WebGPU::BindGroupLayoutDescriptor::decode):

  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.h:

(WebKit::WebGPU::BindGroupLayoutEntry::encode const):
(WebKit::WebGPU::BindGroupLayoutEntry::decode):

  • Shared/WebGPU/WebGPUBlendComponent.h:

(WebKit::WebGPU::BlendComponent::encode const):
(WebKit::WebGPU::BlendComponent::decode):

  • Shared/WebGPU/WebGPUBlendState.h:

(WebKit::WebGPU::BlendState::encode const):
(WebKit::WebGPU::BlendState::decode):

  • Shared/WebGPU/WebGPUBufferBinding.h:

(WebKit::WebGPU::BufferBinding::encode const):
(WebKit::WebGPU::BufferBinding::decode):

  • Shared/WebGPU/WebGPUBufferBindingLayout.h:

(WebKit::WebGPU::BufferBindingLayout::encode const):
(WebKit::WebGPU::BufferBindingLayout::decode):

  • Shared/WebGPU/WebGPUBufferDescriptor.h:

(WebKit::WebGPU::BufferDescriptor::encode const):
(WebKit::WebGPU::BufferDescriptor::decode):

  • Shared/WebGPU/WebGPUCanvasConfiguration.h:

(WebKit::WebGPU::CanvasConfiguration::encode const):
(WebKit::WebGPU::CanvasConfiguration::decode):

  • Shared/WebGPU/WebGPUColor.h:

(WebKit::WebGPU::ColorDict::encode const):
(WebKit::WebGPU::ColorDict::decode):

  • Shared/WebGPU/WebGPUColorTargetState.h:

(WebKit::WebGPU::ColorTargetState::encode const):
(WebKit::WebGPU::ColorTargetState::decode):

  • Shared/WebGPU/WebGPUCommandBufferDescriptor.h:

(WebKit::WebGPU::CommandBufferDescriptor::encode const):
(WebKit::WebGPU::CommandBufferDescriptor::decode):

  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.h:

(WebKit::WebGPU::CommandEncoderDescriptor::encode const):
(WebKit::WebGPU::CommandEncoderDescriptor::decode):

  • Shared/WebGPU/WebGPUCompilationMessage.h: Added.

(WebKit::WebGPU::CompilationMessage::encode const):
(WebKit::WebGPU::CompilationMessage::decode):

  • Shared/WebGPU/WebGPUComputePassDescriptor.h:

(WebKit::WebGPU::ComputePassDescriptor::encode const):
(WebKit::WebGPU::ComputePassDescriptor::decode):

  • Shared/WebGPU/WebGPUComputePassTimestampWrites.h:

(WebKit::WebGPU::ComputePassTimestampWrite::encode const):
(WebKit::WebGPU::ComputePassTimestampWrite::decode):

  • Shared/WebGPU/WebGPUComputePipelineDescriptor.h:

(WebKit::WebGPU::ComputePipelineDescriptor::encode const):
(WebKit::WebGPU::ComputePipelineDescriptor::decode):

  • Shared/WebGPU/WebGPUConvertFromBackingContext.h:
  • Shared/WebGPU/WebGPUDepthStencilState.h:

(WebKit::WebGPU::DepthStencilState::encode const):
(WebKit::WebGPU::DepthStencilState::decode):

  • Shared/WebGPU/WebGPUDeviceDescriptor.h:

(WebKit::WebGPU::DeviceDescriptor::encode const):
(WebKit::WebGPU::DeviceDescriptor::decode):

  • Shared/WebGPU/WebGPUError.h: Copied from Source/WebKit/Shared/WebGPU/WebGPUCommandEncoderDescriptor.h.
  • Shared/WebGPU/WebGPUExtent3D.h:

(WebKit::WebGPU::Extent3DDict::encode const):
(WebKit::WebGPU::Extent3DDict::decode):

  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.h:

(WebKit::WebGPU::ExternalTextureBindingLayout::encode const):
(WebKit::WebGPU::ExternalTextureBindingLayout::decode):

  • Shared/WebGPU/WebGPUExternalTextureDescriptor.h:

(WebKit::WebGPU::ExternalTextureDescriptor::encode const):
(WebKit::WebGPU::ExternalTextureDescriptor::decode):

  • Shared/WebGPU/WebGPUFragmentState.h:

(WebKit::WebGPU::FragmentState::encode const):
(WebKit::WebGPU::FragmentState::decode):

  • Shared/WebGPU/WebGPUImageCopyBuffer.h:

(WebKit::WebGPU::ImageCopyBuffer::encode const):
(WebKit::WebGPU::ImageCopyBuffer::decode):

  • Shared/WebGPU/WebGPUImageCopyExternalImage.h:

(WebKit::WebGPU::ImageCopyExternalImage::encode const):
(WebKit::WebGPU::ImageCopyExternalImage::decode):

  • Shared/WebGPU/WebGPUImageCopyTexture.h:

(WebKit::WebGPU::ImageCopyTexture::encode const):
(WebKit::WebGPU::ImageCopyTexture::decode):

  • Shared/WebGPU/WebGPUImageCopyTextureTagged.h:

(WebKit::WebGPU::ImageCopyTextureTagged::encode const):
(WebKit::WebGPU::ImageCopyTextureTagged::decode):

  • Shared/WebGPU/WebGPUImageDataLayout.h:

(WebKit::WebGPU::ImageDataLayout::encode const):
(WebKit::WebGPU::ImageDataLayout::decode):

  • Shared/WebGPU/WebGPUMultisampleState.h:

(WebKit::WebGPU::MultisampleState::encode const):
(WebKit::WebGPU::MultisampleState::decode):

  • Shared/WebGPU/WebGPUObjectDescriptorBase.h:

(WebKit::WebGPU::ObjectDescriptorBase::encode const):
(WebKit::WebGPU::ObjectDescriptorBase::decode):

  • Shared/WebGPU/WebGPUOrigin2D.h:

(WebKit::WebGPU::Origin2DDict::encode const):
(WebKit::WebGPU::Origin2DDict::decode):

  • Shared/WebGPU/WebGPUOrigin3D.h:

(WebKit::WebGPU::Origin3DDict::encode const):
(WebKit::WebGPU::Origin3DDict::decode):

  • Shared/WebGPU/WebGPUOutOfMemoryError.h: Copied from Source/WebKit/Shared/WebGPU/WebGPUCommandBufferDescriptor.h.

(WebKit::WebGPU::OutOfMemoryError::encode const):
(WebKit::WebGPU::OutOfMemoryError::decode):

  • Shared/WebGPU/WebGPUPipelineDescriptorBase.h:

(WebKit::WebGPU::PipelineDescriptorBase::encode const):
(WebKit::WebGPU::PipelineDescriptorBase::decode):

  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h:

(WebKit::WebGPU::PipelineLayoutDescriptor::encode const):
(WebKit::WebGPU::PipelineLayoutDescriptor::decode):

  • Shared/WebGPU/WebGPUPrimitiveState.h:

(WebKit::WebGPU::PrimitiveState::encode const):
(WebKit::WebGPU::PrimitiveState::decode):

  • Shared/WebGPU/WebGPUProgrammableStage.h:

(WebKit::WebGPU::ProgrammableStage::encode const):
(WebKit::WebGPU::ProgrammableStage::decode):

  • Shared/WebGPU/WebGPUQuerySetDescriptor.h:

(WebKit::WebGPU::QuerySetDescriptor::encode const):
(WebKit::WebGPU::QuerySetDescriptor::decode):

  • Shared/WebGPU/WebGPURenderBundleDescriptor.h:

(WebKit::WebGPU::RenderBundleDescriptor::encode const):
(WebKit::WebGPU::RenderBundleDescriptor::decode):

  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.h:

(WebKit::WebGPU::RenderBundleEncoderDescriptor::encode const):
(WebKit::WebGPU::RenderBundleEncoderDescriptor::decode):

  • Shared/WebGPU/WebGPURenderPassColorAttachment.h:

(WebKit::WebGPU::RenderPassColorAttachment::encode const):
(WebKit::WebGPU::RenderPassColorAttachment::decode):

  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.h:

(WebKit::WebGPU::RenderPassDepthStencilAttachment::encode const):
(WebKit::WebGPU::RenderPassDepthStencilAttachment::decode):

  • Shared/WebGPU/WebGPURenderPassDescriptor.h:

(WebKit::WebGPU::RenderPassDescriptor::encode const):
(WebKit::WebGPU::RenderPassDescriptor::decode):

  • Shared/WebGPU/WebGPURenderPassLayout.h:

(WebKit::WebGPU::RenderPassLayout::encode const):
(WebKit::WebGPU::RenderPassLayout::decode):

  • Shared/WebGPU/WebGPURenderPassTimestampWrites.h:

(WebKit::WebGPU::RenderPassTimestampWrite::encode const):
(WebKit::WebGPU::RenderPassTimestampWrite::decode):

  • Shared/WebGPU/WebGPURenderPipelineDescriptor.h:

(WebKit::WebGPU::RenderPipelineDescriptor::encode const):
(WebKit::WebGPU::RenderPipelineDescriptor::decode):

  • Shared/WebGPU/WebGPURequestAdapterOptions.h:

(WebKit::WebGPU::RequestAdapterOptions::encode const):
(WebKit::WebGPU::RequestAdapterOptions::decode):

  • Shared/WebGPU/WebGPUSamplerBindingLayout.h:

(WebKit::WebGPU::SamplerBindingLayout::encode const):
(WebKit::WebGPU::SamplerBindingLayout::decode):

  • Shared/WebGPU/WebGPUSamplerDescriptor.h:

(WebKit::WebGPU::SamplerDescriptor::encode const):
(WebKit::WebGPU::SamplerDescriptor::decode):

  • Shared/WebGPU/WebGPUShaderModuleDescriptor.h:

(WebKit::WebGPU::ShaderModuleDescriptor::encode const):
(WebKit::WebGPU::ShaderModuleDescriptor::decode):

  • Shared/WebGPU/WebGPUStencilFaceState.h:

(WebKit::WebGPU::StencilFaceState::encode const):
(WebKit::WebGPU::StencilFaceState::decode):

  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.h:

(WebKit::WebGPU::StorageTextureBindingLayout::encode const):
(WebKit::WebGPU::StorageTextureBindingLayout::decode):

  • Shared/WebGPU/WebGPUSupportedFeatures.h: Copied from Source/WebKit/Shared/WebGPU/WebGPUColor.h.

(WebKit::WebGPU::SupportedFeatures::encode const):
(WebKit::WebGPU::SupportedFeatures::decode):

  • Shared/WebGPU/WebGPUSupportedLimits.h: Added.

(WebKit::WebGPU::SupportedLimits::encode const):
(WebKit::WebGPU::SupportedLimits::decode):

  • Shared/WebGPU/WebGPUTextureBindingLayout.h:

(WebKit::WebGPU::TextureBindingLayout::encode const):
(WebKit::WebGPU::TextureBindingLayout::decode):

  • Shared/WebGPU/WebGPUTextureDescriptor.h:

(WebKit::WebGPU::TextureDescriptor::encode const):
(WebKit::WebGPU::TextureDescriptor::decode):

  • Shared/WebGPU/WebGPUTextureViewDescriptor.h:

(WebKit::WebGPU::TextureViewDescriptor::encode const):
(WebKit::WebGPU::TextureViewDescriptor::decode):

  • Shared/WebGPU/WebGPUValidationError.h: Copied from Source/WebKit/Shared/WebGPU/WebGPUColor.h.

(WebKit::WebGPU::ValidationError::encode const):
(WebKit::WebGPU::ValidationError::decode):

  • Shared/WebGPU/WebGPUVertexAttribute.h:

(WebKit::WebGPU::VertexAttribute::encode const):
(WebKit::WebGPU::VertexAttribute::decode):

  • Shared/WebGPU/WebGPUVertexBufferLayout.h:

(WebKit::WebGPU::VertexBufferLayout::encode const):
(WebKit::WebGPU::VertexBufferLayout::decode):

  • Shared/WebGPU/WebGPUVertexState.h:

(WebKit::WebGPU::VertexState::encode const):
(WebKit::WebGPU::VertexState::decode):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:

(WebKit::WebGPU::RemoteAdapterProxy::requestDevice):

  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp:

(WebKit::WebGPU::RemoteTextureProxy::createView):
(WebKit::WebGPU::RemoteTextureProxy::createView const): Deleted.

  • WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h:
9:38 PM Changeset in webkit [285980] by achristensen@apple.com
  • 50 edits in trunk

Implement most of redirect and modify-headers action types
https://bugs.webkit.org/show_bug.cgi?id=233268

Reviewed by Tim Hatcher.

Source/WebCore:

This implements modify-headers and redirect actions except for extension-path and regex-substitution variants of redirecting,
which are big enough to be implemented in their own patch. In order to enable these actions, the WKContentRuleList needs to
be compiled with new SPI where you specify which schemes are allowed to be redirected to, and SPI in WKWebpagePreferences allows
addition of a set of patterns to specify which URLs are allowed to be modified. An empty set means no active actions are allowed,
which is the default, whereas a null set means all active actions are allowed.

I also made the parser a little bit stricter, such as only allowing valid ports, queries, and fragments.

  • Modules/websockets/WebSocketChannel.cpp:
  • contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::ModifyHeadersAction::operator== const):
(WebCore::ContentExtensions::ModifyHeadersAction::applyToRequest):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::applyToRequest):
(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::operator== const):
(WebCore::ContentExtensions::RedirectAction::applyToRequest):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::deserialize):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::applyToURL const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::applyToURL const):

  • contentextensions/ContentExtensionActions.h:

(WebCore::ContentExtensions::VariantHasher::hash):
(WebCore::ContentExtensions::VectorHasher::hash):
(WTF::DefaultHash<WebCore::ContentExtensions::RedirectAction>::hash):
(WTF::DefaultHash<WebCore::ContentExtensions::RedirectAction>::equal):
(WTF::DefaultHash<WebCore::ContentExtensions::ModifyHeadersAction>::hash):
(WTF::DefaultHash<WebCore::ContentExtensions::ModifyHeadersAction>::equal):

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::serializeActions):
(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):
(WebCore::ContentExtensions::loadEncodedRules):
(WebCore::ContentExtensions::parseRuleList):

  • contentextensions/ContentExtensionParser.h:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForPingLoad):
(WebCore::ContentExtensions::applyResultsToRequest):

  • contentextensions/ContentRuleListResults.h:

(WebCore::ContentRuleListResults::Summary::decode):

  • css/StyleSheetContents.cpp:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setActiveContentRuleListActionsPatterns):
(WebCore::DocumentLoader::allowsActiveContentRuleListActionsForURL const):

  • loader/DocumentLoader.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::removeHTTPHeaderField):

  • platform/network/ResourceRequestBase.h:

Source/WebKit:

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):

  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::compileContentRuleList):

  • UIProcess/API/APIContentRuleListStore.h:
  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):
(API::WebsitePolicies::data):
(API::WebsitePolicies::~WebsitePolicies): Deleted.

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/C/WKUserContentExtensionStoreRef.cpp:

(WKUserContentExtensionStoreCompile):

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(-[WKContentRuleListStore compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]):
(-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:allowedRedirectSchemes:completionHandler:]):
(-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]): Deleted.

  • UIProcess/API/Cocoa/WKContentRuleListStorePrivate.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences _setActiveContentRuleListActionsPatterns:]):
(-[WKWebpagePreferences _activeContentRuleListActionsPatterns]):

  • UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:

(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::remove):
Fix a regression from https://trac.webkit.org/changeset/276193/webkit
When fetching a resource with a forbidden port and a custom scheme and {mode:"no-cors"},
WebLoaderStrategy::remove is called with a resource that doesn't have an identifier.
My test hit this, so I moved the check to before the identifier is used.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::InMemoryCompiledContentExtension::create):
(TestWebKitAPI::checkCompilerError):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:

(compileContentRuleList):
(navigationDelegateAllowingActiveActionsOnTestHost):
(TEST_F):

9:29 PM Changeset in webkit [285979] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Unified source build fix

  • Shared/GPUProcessConnectionParameters.h:
9:01 PM Changeset in webkit [285978] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] TypedArray GetArrayLength should not use Reuse
https://bugs.webkit.org/show_bug.cgi?id=233299
rdar://85502079

Reviewed by Robin Morisset.

JSTests:

  • stress/get-array-length-reuse.js: Added.

(foo):

Source/JavaScriptCore:

We should not perform OSR exit after assigning a value to a reused register, otherwise,
OSR exit cannot recover the proper value. Now TypedArray GetArrayLength can perform
OSR exit after loading a length, so we should not use reused register for length.

  • dfg/DFGSpeculativeJIT.cpp:
8:04 PM Changeset in webkit [285977] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][GPUP] Add access to logging service for root
https://bugs.webkit.org/show_bug.cgi?id=233300
<rdar://85529760>

Reviewed by Brent Fulgham.

Access to logging service is required for root in the GPU process on macOS.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
7:54 PM Changeset in webkit [285976] by Cameron McCormack
  • 2 edits in trunk/Source/WebKit

Protect against null SharedBitmaps when starting a drag
https://bugs.webkit.org/show_bug.cgi?id=233217
<rdar://problem/85478309>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::startDrag):

7:46 PM Changeset in webkit [285975] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: assertion failures in WI.GridOverlayConfigurationDiagnosticEventRecorder
https://bugs.webkit.org/show_bug.cgi?id=233298

Reviewed by Patrick Angle.

  • UserInterface/Controllers/GridOverlayConfigurationDiagnosticEventRecorder.js:

(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.teardown):

7:28 PM Changeset in webkit [285974] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: allow left docking when in LTR and right docking when in RTL
https://bugs.webkit.org/show_bug.cgi?id=233294

Reviewed by Patrick Angle.

Some developers prefer docking to the left even when in LTR and/or docking to the right when
in RTL. There's no technical reason to disallow this, so let's make it possible.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
(WI.contentLoaded.addDockButton): Added.
(WI.contentLoaded.addDockLeftButton): Added.
(WI.contentLoaded.addDockRightButton): Added.
(WI._updateDockNavigationItems):
(WI._updateTabBarDividers):
(WI.setLayoutDirection):
Instead of having a single _dockToSideTabBarButton that looks at the layout direction to
decide its image, tooltip, and action, split it into two distinct _dockLeftTabBarButton
and _dockRightTabBarButton buttons that are both always visible (unless Web Inspector is
already in the corresponding docking state).

  • UserInterface/Images/DockBottom.svg:
  • UserInterface/Images/DockLeft.svg:
  • UserInterface/Images/DockRight.svg:

Fill in the area representing Web Inspector and make it a bit smaller so it's not as heavy.

  • Localizations/en.lproj/localizedStrings.js:
7:13 PM Changeset in webkit [285973] by Wenson Hsieh
  • 26 edits in trunk/Source

[Live Text] Plumb an identifier string through ChromeClient::requestTextRecognition()
https://bugs.webkit.org/show_bug.cgi?id=233210

Reviewed by Dean Jackson.

Source/WebCore:

See WebKit/ChangeLog for more details.

  • accessibility/AXImage.cpp:

(WebCore::AXImage::imageOverlayElements):

  • page/ChromeClient.h:

(WebCore::ChromeClient::requestTextRecognition):

  • page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::resumeProcessing):

  • testing/Internals.cpp:

(WebCore::Internals::requestTextRecognition):

Source/WebCore/PAL:

Add another WebKitAdditions extension point.

  • pal/spi/cocoa/VisionKitCoreSPI.h:

Source/WebKit:

Add an optional (i.e. null-by-default) identifier string to the requestTextRecognition() WebKit client hook,
and call into a new helper function in TextRecognitionUtilities.h, that's implemented in WebKitAdditions (with
an empty stub in open source code).

See corresponding radar for more information.

  • Platform/cocoa/TextRecognitionUtilities.h:
  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::requestImageAnalysisWithIdentifier):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::requestTextRecognition):

  • UIProcess/PageClient.h:

(WebKit::PageClient::requestTextRecognition):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestTextRecognition):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::requestTextRecognition):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

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

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::requestTextRecognition):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::requestTextRecognition):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestTextRecognition):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::requestTextRecognition):

7:05 PM Changeset in webkit [285972] by Takashi.Komori@sony.com
  • 2 edits in trunk/Source/WebCore

[Curl] Remove unnecessary option setting
https://bugs.webkit.org/show_bug.cgi?id=233249

Reviewed by Fujii Hironori.

Remove setting CURLPIPE_MULTIPLEX option.
The option is enabled by default since curl 7.62.0 [1].

[1] https://curl.se/libcurl/c/curl_multi_setopt.html

No new tests, covered by existing tests.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlMultiHandle::CurlMultiHandle):

6:47 PM Changeset in webkit [285971] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Run the memmove fast path in JSGenericTypedArrayView<Adaptor>::set when using a combination of Uint8 and Uint8Clamped
https://bugs.webkit.org/show_bug.cgi?id=233271
<rdar://85259288>

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/typed-array-set-uint8-and-uint8clamped.js: Added.

Source/JavaScriptCore:

We have a fast path for running memmove when both the thing being
copied from and the thing being copied to have the same typed array
type. However, when copying from a Uint8Array into a Uint8ClampedArray,
or vice versa, we were going down the slow path. In this case,
we can still take the fast path, since we're guaranteed that storing
into a Uint8ClampedArray from a Uint8Array will never actually need
to clamp values. And when storing from a Uint8ClampedArray into a
Uint8Array, the values can trivially be copied over.

This patch is a 100x speedup on the attached microbenchmark.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):

6:29 PM Changeset in webkit [285970] by Alan Coon
  • 2 edits in branches/safari-613.1.9-branch/Source/WebKit

Cherry-pick r285959. rdar://problem/85529891

[macOS] Add message filter guard in the GPU process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233282
<rdar://85514428>

Reviewed by Brent Fulgham.

Add message filter guard in the GPU process' sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

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

6:29 PM Changeset in webkit [285969] by Alan Coon
  • 3 edits in branches/safari-613.1.9-branch/Source/WebKit

Cherry-pick r285869. rdar://problem/85529891

[macOS][GPUP] Add telemetry for syscalls
https://bugs.webkit.org/show_bug.cgi?id=232888
<rdar://problem/85207011>

Reviewed by Brent Fulgham.

Add more telemetry for syscalls in the GPU process' sandbox on macOS. Also add entitlement for the GPU
process to use message filtering.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Scripts/process-entitlements.sh:

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

6:29 PM Changeset in webkit [285968] by Alan Coon
  • 3 edits in branches/safari-613.1.9-branch/Source/WebKit

Cherry-pick r285809. rdar://problem/85529891

Unreviewed, reverting r285774.
https://bugs.webkit.org/show_bug.cgi?id=233136

Introduced GPUP crash on some configurations

Reverted changeset:

"[macOS][GPUP] Add telemetry for syscalls"
https://bugs.webkit.org/show_bug.cgi?id=232888
https://commits.webkit.org/r285774

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

5:08 PM Changeset in webkit [285967] by wilander@apple.com
  • 17 edits
    3 adds in trunk

PCM: Add capability for click destination to fire triggering event without cross-site requests to the click source
https://bugs.webkit.org/show_bug.cgi?id=233173
<rdar://79426605>

Reviewed by Alex Christensen.

Source/WebCore:

This patch enables click destination sites a non-JavaScript way to fire triggering
events without a requirement to make cross-site requests to source sites. This is
referred to as a "same-site pixel API" and has been discussed in W3C Privacy CG:
https://github.com/privacycg/private-click-measurement/issues/71

The reason why some merchants want such an "API" is reluctance to deploy new
JavaScript on their sites. In some industries it's even a compliance issue. Legacy
"pixels" are however accepted and so a same-site "pixel" can work for them.

Test: http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

This change is because of clarification in naming:

  • attributionReportSourceURL to attributionReportClickSourceURL
  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::parseAttributionRequestQuery):

New function that parses out query string parameters.

(WebCore::PrivateClickMeasurement::parseAttributionRequest):

Now calls the new PrivateClickMeasurement::parseAttributionRequestQuery()
which handles data coming in in query parameters, in this case
the new parameter "attributionSource."

(WebCore::PrivateClickMeasurement::attributionReportClickSourceURL const):

New name.

(WebCore::PrivateClickMeasurement::attributionReportClickDestinationURL const):

New name.

(WebCore::PrivateClickMeasurement::attributionReportJSON const):

Now uses the constant privateClickMeasurementVersion.

(WebCore::PrivateClickMeasurement::tokenSignatureJSON const):

Now uses the constant privateClickMeasurementVersion.

(WebCore::PrivateClickMeasurement::attributionReportSourceURL const): Deleted.

Renamed attributionReportClickSourceURL.

(WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL const): Deleted.

Renamed attributionReportClickDestinationURL.

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::sourceSecretToken const):

New name.

(WebCore::PrivateClickMeasurement::AttributionTriggerData::encode const):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::decode):

Encoding and decoding of the new field sourceRegistrableDomain.

(WebCore::PrivateClickMeasurement::sourceUnlinkableToken const): Deleted.

Renamed sourceSecretToken.
Note that it was always the secret token used, just bad renaming earlier.

Source/WebKit:

This patch enables click destination sites a non-JavaScript way to fire triggering
events without a requirement to make cross-site requests to source sites. This is
referred to as a "same-site pixel API" and has been discussed in W3C Privacy CG:
https://github.com/privacycg/private-click-measurement/issues/71

The reason why some merchants want such an "API" is reluctance to deploy new
JavaScript on their sites. In some industries it's even a compliance issue. Legacy
"pixels" are however accepted and so a same-site "pixel" can work for them.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:

(WebKit::PCM::Database::insertPrivateClickMeasurement):

These changes are just a correction of a function name:

  • sourceUnlinkableToken() to sourceSecretToken() Note that it was always the secret token used, just bad renaming earlier.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::handleAttribution):

Now checks if the incoming WebCore::PrivateClickMeasurement::AttributionTriggerData
carries a sourceRegistrableDomain. If so, it accepts that domain as the source site
for attribution if the triggering event was same-site as the first-party.

(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):

These changes are just a correction of a function name:

  • sourceUnlinkableToken() to sourceSecretToken() Note that it was always the secret token used, just bad renaming earlier.

(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):

These changes are because of clarification in naming:

  • attributionReportSourceURL to attributionReportClickSourceURL
  • attributionReportAttributeOnURL to attributionReportClickDestinationURL
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp:

(WebKit::PCM::Store::attributePrivateClickMeasurement):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h:

Source/WTF:

  • wtf/URL.cpp:

(WTF::queryParameters):

New convenience getter.

  • wtf/URL.h:

Tools:

These changes are just a correction of a function name:
sourceUnlinkableToken() to sourceSecretToken()

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:

(TestWebKitAPI::TEST):

LayoutTests:

  • http/tests/privateClickMeasurement/resources/redirectToConversionWithAttributionSource.py: Added.
  • http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-expected.txt: Added.
  • http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive.html: Added.
4:38 PM Changeset in webkit [285966] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Add a Translation WebKit2 logging category
https://bugs.webkit.org/show_bug.cgi?id=233286

Reviewed by Tim Horton.

Add the new category.

  • Platform/Logging.h:
4:10 PM Changeset in webkit [285965] by J Pascoe
  • 3 edits in trunk/Source/WebKit

[WebAuthn] Add SPI for makeCredential / getAssertion using clientDataHash
https://bugs.webkit.org/show_bug.cgi?id=233216
<rdar://problem/85476386>

Reviewed by Brent Fulgham.

In order to avoid needing to make and coordinate changes to ASC to support new fields or changes
within ClientDataJSON and to maintain a single source of truth, calls to ASC from WebKit
will contain a precomputed ClientDataHash. This change creates new SPIs that will be called
from ASC using the ClientDataHash.

  • UIProcess/API/Cocoa/_WKAuthenticatorResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(-[_WKWebAuthenticationPanel makeCredentialWithClientDataHash:options:completionHandler:]):
(-[_WKWebAuthenticationPanel getAssertionWithClientDataHash:options:completionHandler:]):
New functions to take in ClientDataHash instead of the data needed to construct it.

3:55 PM Changeset in webkit [285964] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Momentum animator: Short scrolls are too far, medium scrolls aren't far enough
https://bugs.webkit.org/show_bug.cgi?id=233272
<rdar://problem/85472653>

Reviewed by Simon Fraser.

  • platform/mac/ScrollingEffectsController.mm:

(WebCore::adjustedVelocity):
(WebCore::ScrollingEffectsController::handleWheelEvent):
Attempt to apply a empirically-derived curve to the initial velocity
to fit the distance of a normal momentum scroll.

3:53 PM Changeset in webkit [285963] by Ryan Haddad
  • 2 edits in trunk/Tools

ASSERT NOT REACHED under WebKit::Daemon::ConnectionToMachService seen with TestWebKitAPI.WebPushD.BasicCommunication and PermissionManagement
https://bugs.webkit.org/show_bug.cgi?id=232857

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm: Fix number in version check.
3:46 PM Changeset in webkit [285962] by Ryan Haddad
  • 2 edits in trunk/Tools

[Monterey] TestWebKitAPI.PrivateClickMeasurement.Daemon* tests timing out: Failed to connect to mach service org.webkit.pcmtestdaemon.service
https://bugs.webkit.org/show_bug.cgi?id=232890

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST): Disable tests for Monterey.

3:43 PM Changeset in webkit [285961] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Enable adattributiond testing on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=233285

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-17
Reviewed by Brady Eidson.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::testDaemonPList):
(TestWebKitAPI::cleanUpDaemon):
(TestWebKitAPI::TEST):

3:35 PM Changeset in webkit [285960] by Ryan Haddad
  • 2 edits in trunk/Tools

ASSERT NOT REACHED under WebKit::Daemon::ConnectionToMachService seen with TestWebKitAPI.WebPushD.BasicCommunication and PermissionManagement
https://bugs.webkit.org/show_bug.cgi?id=232857

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

(TestWebKitAPI::TEST): Disable the tests for Monterey.

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

[macOS] Add message filter guard in the GPU process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=233282
<rdar://85514428>

Reviewed by Brent Fulgham.

Add message filter guard in the GPU process' sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
3:07 PM Changeset in webkit [285958] by Russell Epstein
  • 1 copy in tags/Safari-612.3.6.1.4

Tag Safari-612.3.6.1.4.

3:04 PM Changeset in webkit [285957] by Ryan Haddad
  • 2 edits in trunk/Tools

[macOS Debug] TestWebKitAPI.WKInspectorExtensionDelegate.InspectedPageNavigatedCallbacks is timing out
https://bugs.webkit.org/show_bug.cgi?id=231847

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm: Disable test in the debug configuration.
2:55 PM Changeset in webkit [285956] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Introduce enum class IntrinsicWidthMode
https://bugs.webkit.org/show_bug.cgi?id=233277

Reviewed by Antti Koivisto.

This is in preparation for being able to apply different glyph hanging behavior for min and max intrinsic width computation.

  • layout/formattingContexts/FormattingConstraints.h:
  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::InlineContentBreaker):

  • layout/formattingContexts/inline/InlineContentBreaker.h:

(WebCore::Layout::InlineContentBreaker::isInIntrinsicWidthMode const):

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::placeInlineContent):

  • layout/formattingContexts/inline/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::intrinsicWidthMode const):
(WebCore::Layout::LineBuilder::isInIntrinsicWidthMode const):

2:51 PM Changeset in webkit [285955] by ysuzuki@apple.com
  • 7 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Revise JSON.parse atomize policy
https://bugs.webkit.org/show_bug.cgi?id=233231

Reviewed by Mark Lam.

This patch improves JSON.parse performance by the following two changes.

  1. Introduce JSONAtomStringCache. It is inspired from HTMLAtomStringCache. It offers cheap fixed-sized cache stored in VM. Since it is in VM, we do not need to clear it every time we call JSON.parse. We clear this cache when full GC happens. It contributes to flight-todomvc-json-parse by 5%.
  2. Do not atomize long string. Profiling of JSON.parse said that most of time is used for atomizing of Strings. There is a tradeoff that, atomizing strings can reduce duplicate string allocations, but it has a performance penalty. V8 limits atomizing for <= 10 length strings, and SpiderMonkey does not atomize strings. In this patch, we aligned our atomizing policy to V8, so we do not atomize strings if the length is longer than 10. It contributes to flight-todomvc-json-parse by 50%.

Many microbenchmarks show the improvement.

ToT Patched

json-parse-object-reviver-same-value 78.2683+-0.9598 77.7784+-0.9488
vanilla-es2015-babel-webpack-todomvc-json-parse

99.9129+-0.5508 85.8160+-0.8721 definitely 1.1643x faster

json-parse-array-reviver-same-value 63.5891+-0.8066 63.2895+-0.7336
flight-todomvc-json-parse 52.4230+-0.4474 34.1159+-0.2378 definitely 1.5366x faster
json-parse-object-reviver 80.8417+-0.5042 80.6393+-0.8087
json-parse-leaf-object 51.6836+-0.6754 46.8983+-0.1578 definitely 1.1020x faster
vanilla-es2015-todomvc-json-parse 100.5916+-0.9399 85.9522+-0.8470 definitely 1.1703x faster
vanilla-todomvc-json-parse 76.4518+-0.4341 64.2318+-0.7621 definitely 1.1902x faster
json-parse-array-reviver 76.1276+-0.8529 75.9747+-0.9002

And Speedometer2 shows 0.8% improvement.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |109.046667 |108.546667 |0.995415 | 0.197186 |
| VueJS-TodoMVC |21.813333 |21.566667 |0.988692 | 0.313141 |
| EmberJS-TodoMVC |117.796667 |118.086667 |1.002462 | 0.558244 |
| Flight-TodoMVC |64.273333 |62.260000 |0.968675 | 0.000000 (significant) |
| BackboneJS-TodoMVC |42.856667 |42.863333 |1.000156 | 0.975025 |
| Preact-TodoMVC |16.326667 |16.673333 |1.021233 | 0.298674 |
| AngularJS-TodoMVC |123.146667 |122.413333 |0.994045 | 0.160282 |
| Inferno-TodoMVC |57.510000 |57.533333 |1.000406 | 0.947767 |
| Vanilla-ES2015-TodoMVC |61.133333 |59.200000 |0.968375 | 0.000000 (significant) |
| Angular2-TypeScript-TodoMVC |38.863333 |38.963333 |1.002573 | 0.860359 |
| VanillaJS-TodoMVC |51.296667 |49.423333 |0.963480 | 0.000000 (significant) |
| jQuery-TodoMVC |210.933333 |210.596667 |0.998404 | 0.590132 |
| EmberJS-Debug-TodoMVC |326.093333 |324.890000 |0.996310 | 0.156955 |
| React-TodoMVC |81.113333 |81.360000 |1.003041 | 0.335615 |
| React-Redux-TodoMVC |132.560000 |132.256667 |0.997712 | 0.306072 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |60.073333 |59.026667 |0.982577 | 0.000883 (significant) |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 280.29390
b mean = 282.51413
pValue = 0.0000083325
(Bigger means are better.)
1.008 times better
Results ARE significant

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/Heap.cpp:

(JSC::Heap::finalize):

  • runtime/JSONAtomStringCache.h: Added.

(JSC::JSONAtomStringCache::makeIdentifier):
(JSC::JSONAtomStringCache::clear):
(JSC::JSONAtomStringCache::cacheSlot):
(JSC::JSONAtomStringCache::cache):

  • runtime/JSONAtomStringCacheInlines.h: Added.

(JSC::JSONAtomStringCache::make):
(JSC::JSONAtomStringCache::vm const):

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::makeIdentifier):
(JSC::LiteralParser<CharType>::makeJSString):
(JSC::LiteralParser<CharType>::parsePrimitiveValue):
(JSC::LiteralParser<CharType>::parse):

  • runtime/LiteralParser.h:
  • runtime/VM.h:
2:28 PM Changeset in webkit [285954] by Chris Dumez
  • 22 edits in trunk

Web Locks API does get enabled in Service Workers when running layout tests
https://bugs.webkit.org/show_bug.cgi?id=233273

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing in service workers.

  • web-platform-tests/web-locks/acquire.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/clientids.tentative.https-expected.txt:
  • web-platform-tests/web-locks/held.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/idlharness.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/ifAvailable.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/lock-attributes.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/mode-exclusive.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/mode-mixed.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/mode-shared.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/query-empty.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/resource-names.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/secure-context.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/signal.tentative.https.any.serviceworker-expected.txt:
  • web-platform-tests/web-locks/steal.tentative.https.any.serviceworker-expected.txt:

Source/WebCore:

Use RuntimeEnabledFeatures to back the Web Lock API since regular settings do not get
properly propagated to service workers at the moment.

No new tests, rebaselined existing ones.

  • Modules/web-locks/NavigatorLocks.idl:
  • Modules/web-locks/WebLock.idl:
  • Modules/web-locks/WebLockManager.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebLocksAPIEnabled):
(WebCore::RuntimeEnabledFeatures::webLocksAPIEnabled const):

Source/WTF:

Use RuntimeEnabledFeatures to back the Web Lock API since regular settings do not get
properly propagated to service workers at the moment.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
2:21 PM Changeset in webkit [285953] by timothy_horton@apple.com
  • 10 edits in trunk/Source

Momentum animator sometimes starts the animation at a very high velocity
https://bugs.webkit.org/show_bug.cgi?id=233245
<rdar://problem/85307115>

Reviewed by Simon Fraser.

Source/WebCore:

  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::eventCopyWithVelocity const):

  • page/WheelEventDeltaFilter.h:
  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::copyWithVelocity const):
Make it possible to ask the delta filter to only add velocity data without filtering deltas.
We should later make ScrollingEffectsController talk directly to the
WheelEventDeltaFilter to get the velocity, but that requires a great
deal of scrolling thread plumbing.

  • page/mac/WheelEventDeltaFilterMac.h:
  • page/mac/WheelEventDeltaFilterMac.mm:

(WebCore::WheelEventDeltaFilterMac::updateFromEvent):
Factor updateCurrentVelocityFromEvent out.
Update the current velocity for momentum begin phase events as well.

(WebCore::WheelEventDeltaFilterMac::updateCurrentVelocityFromEvent):

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::handleWheelEvent):
Start the momentum animation with the velocity provided by the momentum
begin phase, instead of a potentially incorrect delta from an earlier change phase.

Source/WebKit:

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):
Ensure that wheel events always have velocities attached, even for
events that don't go through the delta filter.

1:35 PM Changeset in webkit [285952] by dino@apple.com
  • 4 edits in trunk/Source/ThirdParty/ANGLE

ANGLE build failure - sprintf is deprecated
https://bugs.webkit.org/show_bug.cgi?id=233279

Reviewed by Wenson Hsieh.

Replace sprintf with snprintf.

  • src/compiler/translator/TranslatorMetalDirect/IdGen.cpp:

(IdGen::createNewName):

  • src/compiler/translator/TranslatorMetalDirect/ModifyStruct.cpp:
  • src/compiler/translator/TranslatorMetalDirect/SymbolEnv.cpp:

(SymbolEnv::TemplateName::fullName const):

1:03 PM Changeset in webkit [285951] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7613.4.1

12:33 PM Changeset in webkit [285950] by Patrick Angle
  • 2 edits in trunk

Update my (Patrick Angle's) status to reviewer
https://bugs.webkit.org/show_bug.cgi?id=233270

Unreviewed.

Update my status to reviewer, as well as drive-by updates to set my github name and update the area of
expertise.

  • metadata/contributors.json:
12:22 PM Changeset in webkit [285949] by Wenson Hsieh
  • 14 edits
    2 adds in trunk/Source

Add a helper class to coordinate batch analysis of images
https://bugs.webkit.org/show_bug.cgi?id=233075

Reviewed by Dean Jackson.

Source/WebCore:

Introduce ImageAnalysisQueue, which will collect suitable image elements in the main document and coordinate
image analysis tasks for up to some (fixed, but easily configurable) maximum number of simultaneous pending
tasks. See below for more details.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/ImageAnalysisQueue.cpp: Added.

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

Iterate through all image elements on the page with cached images, and add them as image analysis tasks to the
task queue as long as they are not tiny. Automatically start processing queued tasks afterwards (see below).

(WebCore::ImageAnalysisQueue::resumeProcessing):

Run the main processing loop of the task queue; while there are tasks remaining, push up to 5 images to the
client layer for image analysis at the same time, until there are no more queued tasks.

(WebCore::ImageAnalysisQueue::clear):

  • page/ImageAnalysisQueue.h: Added.

Introduce the new class.

  • page/Page.cpp:

(WebCore::Page::imageOverlayController):

Drive-by fix: m_imageOverlayController was being eagerly initialized here, despite the existence of both
imageOverlayControllerIfExists() and imageOverlayController(). Fix this by lazily creating the
ImageOverlayController instead.

(WebCore::Page::imageAnalysisQueue):

  • page/Page.h:

(WebCore::Page::imageAnalysisQueueIfExists):
(WebCore::Page::imageOverlayController): Deleted.

Source/WebKit:

Add a couple of WKWebView SPI methods to kick off (and cancel) batch image analysis for mainframe content.
See WebCore ChangeLog for more details.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _startImageAnalysis:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::startImageAnalysis):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::startImageAnalysis):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
12:16 PM Changeset in webkit [285948] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Do not apply the "do not trim whitespace followed by br" legacy line layout quirk when computing the intrinsic widths
https://bugs.webkit.org/show_bug.cgi?id=233262

Reviewed by Antti Koivisto.

While legacy line layout applies this quirk at line layout, the preferred width computation (totally different) codepath omits this quirk.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::removeTrailingTrimmableContent):

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

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

12:15 PM Changeset in webkit [285947] by Alan Coon
  • 8 edits in branches/safari-612.3.6.1-branch/Source

Versioning.

WebKit-7612.3.6.1.4

11:48 AM Changeset in webkit [285946] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Address post review comment after r285925.

Reviewed by Darin Adler.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::tryComputePreferredWidthsUsingModernPath):

11:45 AM Changeset in webkit [285945] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_block_downloads.tentative.html is frequently failing
https://bugs.webkit.org/show_bug.cgi?id=233267

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
11:21 AM Changeset in webkit [285944] by Alan Coon
  • 1 copy in tags/Safari-613.1.9.0.1

Tag Safari-613.1.9.0.1.

11:14 AM Changeset in webkit [285943] by Alan Coon
  • 4 edits in branches/safari-613.1.9.0-branch/Source/WebCore

Cherry-pick r285883. rdar://problem/85512520

Use IOHIDEvent timestamps for momentum velocity computation
https://bugs.webkit.org/show_bug.cgi?id=233168

Reviewed by Tim Horton.

NSEvent timetamps can have some jitter on some devices (rdar://85309639) so drop
down to IOHIDEvent timestamps when computing the initial velocity for a momentum
scroll animation, for improved accuracy.

  • page/mac/WheelEventDeltaFilterMac.h:
  • page/mac/WheelEventDeltaFilterMac.mm: (WebCore::WheelEventDeltaFilterMac::updateFromEvent): (WebCore::WheelEventDeltaFilterMac::reset):
  • page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::willStartRenderingUpdate):

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

11:14 AM Changeset in webkit [285942] by Alan Coon
  • 5 edits
    2 adds in branches/safari-613.1.9.0-branch

Cherry-pick r285797. rdar://problem/85512520

Fingers down on the trackpad should stop an animated scroll
https://bugs.webkit.org/show_bug.cgi?id=233114

Reviewed by Wenson Hsieh.
Source/WebCore:

Fingers down on the trackpad sends a "MayBegin" event; this needs to stop any in-progress
animated momentum scroll.

This failed because ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent() early-returned
on the MayBegin event before it got to ScrollingEffectsController. Fix that, and have
ScrollingEffectsController::handleWheelEvent() return true to say it was handled.

This triggered an assertion in ScrollingTreeGestureState, but for "post-main-thread"
handling for which the assertion was wrong.

Test: fast/scrolling/mac/momentum-animator-maybegin-stops.html

  • page/scrolling/ScrollingTreeGestureState.cpp: (WebCore::ScrollingTreeGestureState::nodeDidHandleEvent):
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
  • platform/mac/ScrollingEffectsController.mm: (WebCore::ScrollingEffectsController::handleWheelEvent):

LayoutTests:

  • fast/scrolling/mac/momentum-animator-maybegin-stops-expected.txt: Added.
  • fast/scrolling/mac/momentum-animator-maybegin-stops.html: Added.

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

11:14 AM Changeset in webkit [285941] by Alan Coon
  • 16 edits in branches/safari-613.1.9.0-branch/Source

Cherry-pick r285790. rdar://problem/85512520

Attach IOHIDEvent timestamps to wheel events
https://bugs.webkit.org/show_bug.cgi?id=233051

Reviewed by Wenson Hsieh.
Source/WebCore:

On some macOS devices, there can be significant deltas between NSEvent timestamps,
and the timestamps on underlying IOHIDEvents (rdar://85309639). This makes momentum
velocity computation unpredictable; we can get better results by using IOHIDEvent
timestamps.

  • platform/PlatformWheelEvent.cpp: (WebCore::PlatformWheelEvent::createFromGesture):
  • platform/PlatformWheelEvent.h: (WebCore::PlatformWheelEvent::ioHIDEventTimestamp const):
  • platform/mac/PlatformEventFactoryMac.h:
  • platform/mac/PlatformEventFactoryMac.mm: (WebCore::eventTimeStampSince1970): (WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder): (WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder): (WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):

Source/WebCore/PAL:

Expose a few bits of SPI needed.

  • pal/spi/cg/CoreGraphicsSPI.h:
  • pal/spi/cocoa/IOKitSPI.h:

Source/WebKit:

On some macOS devices, there can be significant deltas between NSEvent timestamps,
and the timestamps on underlying IOHIDEvents (rdar://85309639). This makes momentum
velocity computation unpredictable; we can get better results by using IOHIDEvent
timestamps.

  • Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
  • Shared/WebWheelEvent.cpp: (WebKit::WebWheelEvent::WebWheelEvent): (WebKit::WebWheelEvent::encode const): (WebKit::WebWheelEvent::decode):
  • Shared/WebWheelEvent.h: (WebKit::WebWheelEvent::ioHIDEventTimestamp const):
  • Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::coalesce):
  • Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
  • Shared/mac/NativeWebGestureEventMac.mm:
  • Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebMouseEvent): (WebKit::WebEventFactory::createWebWheelEvent): (WebKit::WebEventFactory::createWebKeyboardEvent):

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

11:06 AM Changeset in webkit [285940] by Alan Coon
  • 9 edits in branches/safari-613.1.9.0-branch/Source

Versioning.

WebKit-7613.1.9.0.1

11:01 AM Changeset in webkit [285939] by Alan Coon
  • 1 copy in branches/safari-613.1.9.0-branch

New branch.

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

InlineIterator::TextBox::offsetForPosition and positionForOffset should be layout path independent
https://bugs.webkit.org/show_bug.cgi?id=233259

Reviewed by Alan Bujtas.

Remove imperfectly duplicated code.

This also fixes editing/mac/input/caret-primary-bidi.html with IFC BiDi.

  • layout/integration/InlineIteratorBoxLegacyPath.h:

(WebCore::InlineIterator::BoxLegacyPath::createTextRun const):
(WebCore::InlineIterator::BoxLegacyPath::offsetForPosition const): Deleted.
(WebCore::InlineIterator::BoxLegacyPath::positionForOffset const): Deleted.

  • layout/integration/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::createTextRun const):
(WebCore::InlineIterator::BoxModernPath::offsetForPosition const): Deleted.
(WebCore::InlineIterator::BoxModernPath::positionForOffset const): Deleted.

  • layout/integration/InlineIteratorTextBox.cpp:

(WebCore::InlineIterator::TextBox::offsetForPosition const):
(WebCore::InlineIterator::TextBox::positionForOffset const):

  • layout/integration/InlineIteratorTextBox.h:

(WebCore::InlineIterator::TextBox::createTextRun const):
(WebCore::InlineIterator::TextBox::offsetForPosition const): Deleted.
(WebCore::InlineIterator::TextBox::positionForOffset const): Deleted.

  • rendering/LegacyInlineTextBox.cpp:

(WebCore::LegacyInlineTextBox::placeEllipsisBox):
(WebCore::LegacyInlineTextBox::offsetForPosition const): Deleted.
(WebCore::LegacyInlineTextBox::positionForOffset const): Deleted.

  • rendering/LegacyInlineTextBox.h:
  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::offsetForPosition const): Deleted.
(WebCore::SVGInlineTextBox::positionForOffset const): Deleted.

  • rendering/svg/SVGInlineTextBox.h:
10:50 AM Changeset in webkit [285937] by commit-queue@webkit.org
  • 10 edits in trunk/LayoutTests

AX: Fix 5 tests in --release --accessibility-isolated-tree mode
https://bugs.webkit.org/show_bug.cgi?id=233232

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-17
Reviewed by Chris Fleizach.

Fix all of these tests in --release --accessibility-isolated-tree
mode by asynchronously waiting for document changes (when necessary).
Some tests are changed to use accessibleElementById instead of
element.focus() + accessibilityController.focusedElement for selecting
elements in JS, as the former doesn't require asynchronous waiting for static elements.

  • accessibility/add-children-pseudo-element-expected.txt:
  • accessibility/add-children-pseudo-element.html:
  • accessibility/aria-checkbox-checked.html:
  • accessibility/aria-checkbox-text.html:
  • accessibility/aria-toggle-button-with-title.html:
  • accessibility/auto-fill-types-expected.txt:
  • accessibility/auto-fill-types.html:
  • accessibility/ax-value-with-search-expected.txt:
  • accessibility/ax-value-with-search.html:
10:46 AM Changeset in webkit [285936] by dino@apple.com
  • 17 edits
    6 adds in trunk

Add ModelDocument for directly showing content that can be handled by <model>
https://bugs.webkit.org/show_bug.cgi?id=233057
rdar://85265880

Reviewed by Darin Adler.

Source/WebCore:

Add a new ModelDocument class that is created when we encounter a MIME-type that
can be handled by the <model> element.

Test: http/tests/model/model-document.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument): Create a ModelDocument when we
see a MIME-type that <model> can support.

  • dom/Document.h: Add a new ModelDocumentClass which meant I also had to

increase the sizeof DocumentClassFlags.
(WebCore::Document::isModelDocument const):

  • html/ModelDocument.cpp: Added.

(WebCore::ModelDocumentParser::createDocumentStructure):
(WebCore::ModelDocumentParser::appendBytes):
(WebCore::ModelDocumentParser::finish):
(WebCore::ModelDocument::ModelDocument):
(WebCore::ModelDocument::createParser):

  • html/ModelDocument.h: Added.

(isType):

  • platform/MIMETypeRegistry.cpp: Add isSupportedModelMIMEType and test for it

in canShowMIMEType.
(WebCore::MIMETypeRegistry::canShowMIMEType):
(WebCore::MIMETypeRegistry::isSupportedModelMIMEType):

  • platform/MIMETypeRegistry.h:

Source/WebKit:

We don't need to use WKUSDPreviewView if we have ModelDocument.

  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:

(-[WKWebViewContentProviderRegistry initWithConfiguration:]):

Source/WTF:

Add a experimental feature: ModelDocumentEnabled
for loading content that can be handled by <model>.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

New test for ModelDocument.

  • http/conf/mime.types: Configure the testing Apache server to serve USDZ files

with the correct MIME type.

  • http/tests/model/UnitBox.usdz: Sample file.
  • http/tests/model/model-document-expected.txt: Added.
  • http/tests/model/model-document.html: New test for a ModelDocument.
10:44 AM Changeset in webkit [285935] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

Unreviewed, reverting r285934.
https://bugs.webkit.org/show_bug.cgi?id=233260

Broke Windows build

Reverted changeset:

"AX: Use ObjectIdentifier for AXID"
https://bugs.webkit.org/show_bug.cgi?id=233248
https://commits.webkit.org/r285934

10:14 AM Changeset in webkit [285934] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

AX: Use ObjectIdentifier for AXID
https://bugs.webkit.org/show_bug.cgi?id=233248

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-17
Reviewed by Andres Gonzalez.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::setIsolatedTreeFocusedObject):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::cacheAndInitializeWrapper):
(WebCore::AXObjectCache::platformGenerateAXID const):
(WebCore::AXObjectCache::objectsForIDs const):
(WebCore::AXObjectCache::updateIsolatedTree):

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

(WebCore::AXCoreObject::detach):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::associatedAXObject const):
(WebCore::AXIsolatedObject::detachFromParent):
(WebCore::AXIsolatedObject::isDetachedFromParent):
(WebCore::AXIsolatedObject::cellForColumnAndRow):
(WebCore::AXIsolatedObject::accessibilityHitTest const):
(WebCore::AXIsolatedObject::objectAttributeValue const):

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

(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::idsForObjects const):
(WebCore::AXIsolatedTree::updateChildrenIDs):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::WTF_GUARDED_BY_LOCK):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase attachAXObject:]):
(-[WebAccessibilityObjectWrapperBase attachIsolatedObject:]):
(-[WebAccessibilityObjectWrapperBase detach]):
(-[WebAccessibilityObjectWrapperBase detachIsolatedObject:]):

  • accessibility/win/AXObjectCacheWin.cpp:

(WebCore::AXObjectCache::platformGenerateAXID const):

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

[LFC][IFC] Incorrect use of BreakWord with preferred width computation (it's a valid value for both WordBreak and OverflowWrap)
https://bugs.webkit.org/show_bug.cgi?id=233258

Reviewed by Antti Koivisto.

This was caught by fast/text/word-break.html (note that this codepath is not yet enabled).

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):

9:27 AM Changeset in webkit [285932] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix formatting and string literals in FileInputType.cpp
https://bugs.webkit.org/show_bug.cgi?id=233229

Patch by Andreu Botella <andreu@andreubotella.com> on 2021-11-17
Reviewed by Darin Adler.

This change uses the emptyString() and defaultMIMEType() functions rather than using string
literals, fixes the coding style, and reverts an unnecessary change in the comments.

This fixes code review suggestions from https://bugs.webkit.org/show_bug.cgi?id=185416 and
https://bugs.webkit.org/show_bug.cgi?id=221549

  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):

8:30 AM Changeset in webkit [285931] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Fix imported/w3c/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-013.html
https://bugs.webkit.org/show_bug.cgi?id=233237

Reviewed by Antti Koivisto.

Do not take hanging glyphs into account when measuring content for preferred width.
(Note that this patch is in preparation for enabling IFC preferred width computation)

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::removeHangingGlyphs):

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

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

7:10 AM Changeset in webkit [285930] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] break-word is not considered when calculating min-content intrinsic sizes.
https://bugs.webkit.org/show_bug.cgi?id=233222

Reviewed by Antti Koivisto.

See https://drafts.csswg.org/css-text/#overflow-wrap-property

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::InlineContentBreaker):
(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):

  • layout/formattingContexts/inline/InlineContentBreaker.h:

(WebCore::Layout::InlineContentBreaker::isIntrinsicWidthMode const):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::initialConstraintsForLine const):

  • layout/formattingContexts/inline/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::isIntrinsicWidthMode const):

7:08 AM Changeset in webkit [285929] by Chris Lord
  • 2 edits in trunk

Add Chris Lord's GitHub username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=233254

Unreviewed

  • metadata/contributors.json:
6:52 AM Changeset in webkit [285928] by youenn@apple.com
  • 5 edits in trunk

Safari 15.1 H264 FullHD video encode/decode fails
https://bugs.webkit.org/show_bug.cgi?id=233036
<rdar://80345048>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

H264 encoder now checks the profile and fails if frame is too big.
To get back to the past behavior, we are now using auto level for both ARM64 devices as well as devices with Monterey OS.

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

LayoutTests:

  • platform/mac-wk2/TestExpectations:
6:50 AM Changeset in webkit [285927] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Increase CoreAudioCaptureSource capture verify timer to handle the case of device change
https://bugs.webkit.org/show_bug.cgi?id=233250

Reviewed by Eric Carlson.

Previously, our capture verify timer was starting with 10 seconds to handle slow start up times, and decreasing to 2 seconds to be snappy.
We are now sticking to 10 seconds to handle the case of changing of capture device while capturing.
This happens on iOS for instance when going from builtin microphone to BT headset microphone.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
6:23 AM Changeset in webkit [285926] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] LineBuilder should drive the trailing whitespace collapsing/trimming
https://bugs.webkit.org/show_bug.cgi?id=233233

Reviewed by Antti Koivisto.

This is in preparation for adding min/max intrinsic handling to trailing whitespace content.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::visuallyCollapseHangingOverflowingWhitespace): Use spec term.
(WebCore::Layout::Line::removeTrimmableContent): Deleted.
(WebCore::Layout::Line::visuallyCollapseHangingOverflow): Deleted.

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

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

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

[IFC][Integration] Clear the preferredLogicalWidths dirty bits after calling LineLayout::computeIntrinsicWidthConstraints
https://bugs.webkit.org/show_bug.cgi?id=233201

Reviewed by Antti Koivisto.

This is in preparation for enabling preferred width computation through IFC.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::tryComputePreferredWidthsUsingModernPath):

4:50 AM Changeset in webkit [285924] by Andres Gonzalez
  • 3 edits in trunk/LayoutTests

Fix for accessibility/notification-listeners.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=233228
<rdar://problem/85484341>

Reviewed by Chris Fleizach.

Made this test async in order to pass in isolated tree mode.
The first accessible element needs to be retrieved with waitForElementById,
otherwise if we use accessibilityController.accessibleElementById, the
test would fail randomly (~10 out of 1000 flakiness). It requires
further investigation to determine if this is an issue with the <select>
element or with the first accessible element the test retrieves.

  • accessibility/notification-listeners.html:
  • platform/mac/accessibility/notification-listeners-expected.txt:
4:31 AM Changeset in webkit [285923] by commit-queue@webkit.org
  • 5 edits in trunk

Limit logical width over-constrained direction check
https://bugs.webkit.org/show_bug.cgi?id=233189

Patch by Rob Buis <rbuis@igalia.com> on 2021-11-17
Reviewed by Sergio Villar Senin.

Source/WebCore:

In computePositionedLogicalWidthUsing the over-constrained case always checks for RTL
direction, but this should not be done if we are not dealing with left and right properties,
i.e. only when we are not orthogonal with the container.
Finally computeLogicalLeftPositionedOffset should not do the flipping logic in the over-constrained case.

  • rendering/RenderBox.cpp:

(WebCore::computeLogicalLeftPositionedOffset):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced const):

LayoutTests:

  • TestExpectations: Removed 4 tests that are now passing.
  • platform/ios/TestExpectations: Skipped several tests that show 1px diff in the result.
2:38 AM Changeset in webkit [285922] by graouts@webkit.org
  • 14 edits
    4 copies
    2 moves
    1 add in trunk/Source

[Model] Create iOS ModelPlayer implementation
https://bugs.webkit.org/show_bug.cgi?id=233192

Reviewed by Dean Jackson.

Bug 232848 factored platform-specific code out of HTMLModelElement with the use of a new ModelPlayer
abstraction with a concrete ARKitInlinePreviewModelPlayer implementation. This first patch moved the
macOS code, and this patch moves the remaining iOS code.

To do so we make ARKitInlinePreviewModelPlayer a parent class of two platform-specific subclasses:
ARKitInlinePreviewModelPlayerMac and ARKitInlinePreviewModelPlayerIOS. We add a new enterFullscreen()
method to ModelPlayer, with an implementation in the iOS subclass. To support this new method, we
add a new platformLayerID() on ModelPlayerClient.

Source/WebCore:

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::modelDidChange):
(WebCore::HTMLModelElement::usesPlatformLayer const):
(WebCore::HTMLModelElement::platformLayerID):
(WebCore::HTMLModelElement::enterFullscreen):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/ModelPlayerClient.h:
  • Modules/model-element/ModelPlayerProvider.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::enterFullscreen):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::enterFullscreen):

Source/WebKit:

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h: Added.

(WebKit::ARKitInlinePreviewModelPlayer::page):
(WebKit::ARKitInlinePreviewModelPlayer::client):

  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm: Added.

(WebKit::ARKitInlinePreviewModelPlayer::ARKitInlinePreviewModelPlayer):
(WebKit::ARKitInlinePreviewModelPlayer::~ARKitInlinePreviewModelPlayer):
(WebKit::ARKitInlinePreviewModelPlayer::load):
(WebKit::ARKitInlinePreviewModelPlayer::layer):
(WebKit::ARKitInlinePreviewModelPlayer::enterFullscreen):

  • WebProcess/Model/WebModelPlayerProvider.cpp:

(WebKit::WebModelPlayerProvider::createModelPlayer):

  • WebProcess/Model/WebModelPlayerProvider.h:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h: Added.
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm: Added.

(WebKit::ARKitInlinePreviewModelPlayerIOS::create):
(WebKit::ARKitInlinePreviewModelPlayerIOS::ARKitInlinePreviewModelPlayerIOS):
(WebKit::ARKitInlinePreviewModelPlayerIOS::~ARKitInlinePreviewModelPlayerIOS):
(WebKit::ARKitInlinePreviewModelPlayerIOS::enterFullscreen):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h: Renamed from Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayer.h.
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm: Renamed from Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayer.mm.

(WebKit::ARKitInlinePreviewModelPlayerMac::create):
(WebKit::ARKitInlinePreviewModelPlayerMac::ARKitInlinePreviewModelPlayerMac):
(WebKit::ARKitInlinePreviewModelPlayerMac::~ARKitInlinePreviewModelPlayerMac):
(WebKit::ARKitInlinePreviewModelPlayerMac::setModelElementCacheDirectory):
(WebKit::ARKitInlinePreviewModelPlayerMac::createFile):
(WebKit::ARKitInlinePreviewModelPlayerMac::clearFile):
(WebKit::ARKitInlinePreviewModelPlayerMac::load):
(WebKit::ARKitInlinePreviewModelPlayerMac::layer):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):

2:29 AM Changeset in webkit [285921] by Antti Koivisto
  • 13 edits
    2 moves
    14 adds in trunk/LayoutTests

Update web-platform-tests/css/selectors
https://bugs.webkit.org/show_bug.cgi?id=233246

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

WPT updates.

  • resources/import-expectations.json:
  • web-platform-tests/css/selectors/first-letter-flag-001-expected.html: Added.
  • web-platform-tests/css/selectors/first-letter-flag-001.html: Added.
  • web-platform-tests/css/selectors/focus-visible-004.html:
  • web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt: Added.
  • web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative.html: Added.
  • web-platform-tests/css/selectors/has-basic-expected.txt:
  • web-platform-tests/css/selectors/has-basic.html:
  • web-platform-tests/css/selectors/has-matches-to-uninserted-elements-expected.txt: Added.
  • web-platform-tests/css/selectors/has-matches-to-uninserted-elements.html: Added.
  • web-platform-tests/css/selectors/has-relative-argument-expected.txt:
  • web-platform-tests/css/selectors/has-relative-argument.html:
  • web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html: Added.
  • web-platform-tests/css/selectors/invalidation/w3c-import.log:
  • web-platform-tests/css/selectors/nesting-expected.html: Added.
  • web-platform-tests/css/selectors/nesting-parsing-expected.txt: Added.
  • web-platform-tests/css/selectors/nesting-parsing.html: Added.
  • web-platform-tests/css/selectors/nesting.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has.html:
  • web-platform-tests/css/selectors/selection-image-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-001-expected.html.
  • web-platform-tests/css/selectors/selection-image-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-002-expected.html.
  • web-platform-tests/css/selectors/w3c-import.log:
  • web-platform-tests/css/selectors/xml-class-selector-expected.xml: Added.
  • web-platform-tests/css/selectors/xml-class-selector.xml: Added.

LayoutTests:

1:18 AM Changeset in webkit [285920] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check clonedParent
https://bugs.webkit.org/show_bug.cgi?id=230713

Patch by Rob Buis <rbuis@igalia.com> on 2021-11-17
Reviewed by Wenson Hsieh.

Source/WebCore:

Null check clonedParent.

Test: editing/execCommand/insert-newline-in-quoted-content-crash.html

  • editing/BreakBlockquoteCommand.cpp:

(WebCore::BreakBlockquoteCommand::doApply):

LayoutTests:

  • editing/execCommand/insert-newline-in-quoted-content-crash-expected.txt: Added.
  • editing/execCommand/insert-newline-in-quoted-content-crash.html: Added.
12:53 AM Changeset in webkit [285919] by commit-queue@webkit.org
  • 12 edits in trunk

[GTK][WPE] Support getting and setting HTTP headers in custom URI scheme handlers
https://bugs.webkit.org/show_bug.cgi?id=203273

Patch by Zixing Liu <liushuyu011@gmail.com> on 2021-11-17
Reviewed by Carlos Garcia Campos.

Source/WebKit:

  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkit_uri_scheme_request_get_http_headers): Added new API function
(webkitURISchemeRequestReadCallback): Include user-specified headers

  • UIProcess/API/glib/WebKitURISchemeResponse.cpp:

(WebKitURISchemeResponseGetHeaders): Added a new private getter
(webkit_uri_scheme_response_set_http_headers): Added new API function

  • UIProcess/API/glib/WebKitURISchemeResponsePrivate.h:
  • UIProcess/API/gtk/WebKitURISchemeRequest.h: Added function prototype for

webkit_uri_scheme_request_get_http_headers

  • UIProcess/API/gtk/WebKitURISchemeResponse.h: Added function prototype for

webkit_uri_scheme_request_set_http_headers

  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Added new symbols
  • UIProcess/API/wpe/WebKitURISchemeRequest.h: Added function prototype for

webkit_uri_scheme_request_get_http_headers

  • UIProcess/API/wpe/WebKitURISchemeResponse.h: Added function prototype for

webkit_uri_scheme_request_set_http_headers

  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt: Added new symbols

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextURIScheme): Added a new test to test getting and setting HTTP headers in custom URI scheme handlers

Nov 16, 2021:

11:54 PM Changeset in webkit [285918] by commit-queue@webkit.org
  • 6 edits in trunk

Re-add 'style' to contain:strict and contain:content CSS properties
https://bugs.webkit.org/show_bug.cgi?id=233193

Patch by Rob Buis <rbuis@igalia.com> on 2021-11-16
Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

Now contain-computed-expected.txt is all PASS.

  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:

Source/WebCore:

After being removed for a while, style containment is part again of contain:strict and contain: content [1, 2].
The change was done in chromium and Firefox has verbally agreed to make the change as well [3].

[1] https://github.com/w3c/csswg-drafts/issues/6287#issuecomment-862525199
[2] https://github.com/w3c/csswg-drafts/commit/7948feb03a9aaceb3a8ee423b07c6e526024cdc2
[3] https://groups.google.com/a/chromium.org/g/blink-dev/c/oMVBKemrTDQ?pli=1

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::strictContainment):
(WebCore::RenderStyle::contentContainment):

LayoutTests:

10:25 PM Changeset in webkit [285917] by Simon Fraser
  • 5 edits
    2 adds in trunk

Stop a momentum scroll animation when receiving a momentum end event
https://bugs.webkit.org/show_bug.cgi?id=233236

Reviewed by Tim Horton.

Source/WebCore:

The stream of momentum events is terminated by an "end" event under two circumstances:

  1. The gesture finished naturally without interruption.
  2. The user tapped the trackpad with two fingers.

Unfortunately we can't tell these apart, so we always have to stop the animation.

Sadly this reveals a hole in the testing infrastructure. All the "changed" momentum
events in the sequence handed to UIHelper.mouseWheelSequence() are ignored while the
animation is running, but the "ended" event stops the animation. So any test without
a reasonable number of "changed" events will terminate its animation prematurely.
We can't fix this without new testing infrastructure (webkit.org/b/233234).

Test: fast/scrolling/mac/momentum-animator-end-event-stops.html

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::handleWheelEvent):

LayoutTests:

New test, and skip one that breaks now because we need a fix for webkit.org/b/233234.

  • fast/scrolling/mac/momentum-animator-end-event-stops-expected.txt: Added.
  • fast/scrolling/mac/momentum-animator-end-event-stops.html: Added.
  • platform/mac-wk2/TestExpectations:
10:24 PM Changeset in webkit [285916] by Said Abou-Hallawa
  • 49 edits
    1 add in trunk/Source/WebCore

[GPU Process] Build a postfix expression for applying the FilterEffects of the SVGFilter
https://bugs.webkit.org/show_bug.cgi?id=233214

Reviewed by Cameron McCormack.

The goal of building this expression is to have all inputs of each
FilterEffect be applied before applying it. This will eliminate the need
to do recursive applying in FilterEffect::apply(). And it will also
eliminate the need to store the rectangle of the result of FilterEffect.
Once the absolutePaintRect is calculated, the result image can be created.

Filter::apply() and FilterEffect::apply() should return a boolean so the
caller knows that applying the filter function was not successful.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cpu/arm/filters/FEBlendNEON.h:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEBlend.h:
  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::platformApplySoftware):

  • platform/graphics/filters/FEColorMatrix.h:
  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::platformApplySoftware):

  • platform/graphics/filters/FEComponentTransfer.h:
  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/filters/FEComposite.h:
  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::platformApplySoftware):

  • platform/graphics/filters/FEConvolveMatrix.h:
  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::platformApplySoftware):

  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):

  • platform/graphics/filters/FEDropShadow.h:
  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFlood::platformApplySoftware):

  • platform/graphics/filters/FEFlood.h:
  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::platformApplySoftware):

  • platform/graphics/filters/FEGaussianBlur.h:
  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::platformApplySoftware):

  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FEMerge.cpp:

(WebCore::FEMerge::platformApplySoftware):

  • platform/graphics/filters/FEMerge.h:
  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::platformApplySoftware):

  • platform/graphics/filters/FEMorphology.h:
  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::platformApplySoftware):

  • platform/graphics/filters/FEOffset.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/FETile.h:
  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::platformApplySoftware):

  • platform/graphics/filters/FETurbulence.h:
  • platform/graphics/filters/Filter.h:
  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::apply):

  • platform/graphics/filters/FilterEffect.h:
  • platform/graphics/filters/FilterEffectVector.h: Added.
  • platform/graphics/filters/FilterFunction.h:

(WebCore::FilterFunction::apply):

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::platformApplySoftware):

  • platform/graphics/filters/SourceAlpha.h:
  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::platformApplySoftware):

  • platform/graphics/filters/SourceGraphic.h:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::apply):

  • rendering/CSSFilter.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::platformApplySoftware):

  • svg/graphics/filters/SVGFEImage.h:
  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):
(WebCore::SVGFilter::apply):
(WebCore::SVGFilter::outsets const):
(WebCore::SVGFilter::clearResult):

  • svg/graphics/filters/SVGFilter.h:
  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::buildEffectExpression):
(WebCore::SVGFilterBuilder::buildExpression const):

  • svg/graphics/filters/SVGFilterBuilder.h:
9:53 PM Changeset in webkit [285915] by jh718.park@samsung.com
  • 6 edits in trunk

border-radius inline style should serialize with valid syntax
https://bugs.webkit.org/show_bug.cgi?id=183994

This patch have border-radius property serializes in canonical order
as specified in https://drafts.csswg.org/css-backgrounds/#border-radius.

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/parsing/border-radius-valid-expected.txt: Add css wide keywords test case results.
  • web-platform-tests/css/css-backgrounds/parsing/border-radius-valid.html: Add css wide keywords test cases.

Source/WebCore:

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::borderRadiusValue const):

  • css/StyleProperties.h:
8:27 PM Changeset in webkit [285914] by Ross Kirsling
  • 4 edits in trunk/Source/WebKit

Unreviewed, fix WinCairo build following r285881.

  • CMakeLists.txt:
  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h:
7:14 PM Changeset in webkit [285913] by mmaxfield@apple.com
  • 3 edits
    1 copy
    3 adds in trunk/Source/WebGPU

[WebGPU] Add WGSLUnitTests XCTest target for WebGPU
https://bugs.webkit.org/show_bug.cgi?id=233227

Reviewed by Robin Morisset.

For now, this new target isn't hooked up to any automated testing - it's just a local target which developers can run.

  • Configurations/WGSLUnitTests.xcconfig: Added.
  • WGSLUnitTests/WGSLUnitTests.mm: Added.

(-[WGSLUnitTests testExample]):

  • WebGPU.xcodeproj/project.pbxproj:
  • WebGPU.xcodeproj/xcshareddata/xcschemes/WGSL.xcscheme:
  • WebGPU.xcodeproj/xcshareddata/xcschemes/WGSLUnitTests.xcscheme: Copied from Source/WebGPU/WebGPU.xcodeproj/xcshareddata/xcschemes/WGSL.xcscheme.
6:55 PM Changeset in webkit [285912] by sihui_liu@apple.com
  • 45 edits
    5 adds in trunk

Implement FileSystemFileHandle.getFile()
https://bugs.webkit.org/show_bug.cgi?id=232716
<rdar://problem/85022453>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaselined existing tests as some tests are passed and the others can run further due to the new support.

  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt:

Source/WebCore:

Spec: https://wicg.github.io/file-system-access/#api-filesystemfilehandle-getfile

Tests: storage/filesystemaccess/file-handle-getfile-worker.html

storage/filesystemaccess/file-handle-getfile.html

  • Modules/filesystemaccess/FileSystemFileHandle.cpp:

(WebCore::FileSystemFileHandle::getFile):

  • Modules/filesystemaccess/FileSystemStorageConnection.h:
  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:

(WebCore::WorkerFileSystemStorageConnection::scopeClosed):
(WebCore::WorkerFileSystemStorageConnection::didResolve):
(WebCore::WorkerFileSystemStorageConnection::getFile):
(WebCore::WorkerFileSystemStorageConnection::completeStringCallback):

  • Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:

Source/WebKit:

Let web process send message to network process for file path.

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::getFile):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:

(WebKit::WebFileSystemStorageConnection::getFile):

  • WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:

LayoutTests:

  • storage/filesystemaccess/file-handle-getfile-expected.txt: Added.
  • storage/filesystemaccess/file-handle-getfile-worker-expected.txt: Added.
  • storage/filesystemaccess/file-handle-getfile-worker.html: Added.
  • storage/filesystemaccess/file-handle-getfile.html: Added.
  • storage/filesystemaccess/resources/file-handle-getfile.js: Added.

(finishTest):
(async read):
(async test):

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

[macOS] Add sandbox telemetry for preference access
https://bugs.webkit.org/show_bug.cgi?id=233194

Reviewed by Brent Fulgham.

Add sandbox telemetry for preference access on macOS.

  • Shared/Sandbox/preferences.sb:
6:39 PM Changeset in webkit [285910] by Devin Rousso
  • 5 edits in trunk/Source

[iOS] use PhotosUIPrivate instead of PhotosUI
https://bugs.webkit.org/show_bug.cgi?id=233213
<rdar://problem/85300427>

Reviewed by Aditya Keerthi.

Source/WebKit:

  • Platform/spi/ios/PhotosUISPI.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

Source/WTF:

  • wtf/PlatformHave.h:
6:13 PM Changeset in webkit [285909] by Russell Epstein
  • 1 copy in tags/Safari-612.3.6.3.1

Tag Safari-612.3.6.3.1.

6:12 PM Changeset in webkit [285908] by Russell Epstein
  • 1 copy in tags/Safari-612.3.6.2.2

Tag Safari-612.3.6.2.2.

6:07 PM Changeset in webkit [285907] by Russell Epstein
  • 1 copy in tags/Safari-612.3.6.0.3

Tag Safari-612.3.6.0.3.

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

[iOS] Reduce telemetry
https://bugs.webkit.org/show_bug.cgi?id=233218

Reviewed by Brent Fulgham.

Reduce telemetry with backtrace for the system calls we have information about.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
5:57 PM Changeset in webkit [285905] by Russell Epstein
  • 1 copy in tags/Safari-612.3.6.1.3

Tag Safari-612.3.6.1.3.

5:26 PM Changeset in webkit [285904] by Nikos Mouchtaris
  • 22 edits in trunk/Source

Rename TextDecoration to TextDecorationLine
https://bugs.webkit.org/show_bug.cgi?id=232729

Reviewed by Myles C. Maxfield.

Source/WebCore:

Split up patch by Tim Nguyen: https://bugs.webkit.org/show_bug.cgi?id=230083. This patch
renames enum TextDecoration to TextDecorationLine, to be more in line with the current spec.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::hasUnderline const):

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(AXAttributeStringSetStyle):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(AXAttributeStringSetStyle):

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::renderTextDecorationLineFlagsToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::renderTextDecorationFlagsToCSSValue): Deleted.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator OptionSet<TextDecorationLine> const):
(WebCore::CSSPrimitiveValue::operator OptionSet<TextDecoration> const): Deleted.

  • editing/Editor.cpp:

(WebCore::Editor::fontAttributesAtSelectionStart):

  • editing/cocoa/HTMLConverter.mm:

(WebCore::editingAttributedString):

  • rendering/StyledMarkedText.cpp:

(WebCore::resolveStyleForMarkedText):

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::TextDecorationPainter):
(WebCore::TextDecorationPainter::paintTextDecoration):
(WebCore::collectStylesForRenderer):
(WebCore::TextDecorationPainter::textDecorationsInEffectForStyle):
(WebCore::TextDecorationPainter::stylesForRenderer):

  • rendering/TextDecorationPainter.h:
  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::textDecorationsInEffect const):
(WebCore::RenderStyle::textDecoration const):
(WebCore::RenderStyle::addToTextDecorationsInEffect):
(WebCore::RenderStyle::setTextDecorationsInEffect):
(WebCore::RenderStyle::setTextDecoration):
(WebCore::RenderStyle::initialTextDecoration):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paint):
(WebCore::positionOffsetForDecoration):
(WebCore::thicknessForDecoration):
(WebCore::SVGInlineTextBox::paintDecoration):
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):

  • rendering/svg/SVGInlineTextBox.h:
  • style/InlineTextBoxStyle.cpp:

(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):
(WebCore::enclosingRendererWithTextDecoration):
(WebCore::computeUnderlineOffset):
(WebCore::visualOverflowForDecorations):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTextDecoration):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView updateTextTouchBar]):

5:08 PM Changeset in webkit [285903] by Russell Epstein
  • 3 edits in branches/safari-613.1.9-branch/Source/WebKit

Cherry-pick r285886. rdar://problem/85473581

[iOS] Limit graphics related IOKit method filtering
https://bugs.webkit.org/show_bug.cgi?id=233209
<rdar://problem/85473581>

Reviewed by Brent Fulgham.

Limit graphics related IOKit method filtering based on OS version. This patch also adds an entitlement which
will enable a replacement for the disabled filtering.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Scripts/process-entitlements.sh:

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

5:03 PM Changeset in webkit [285902] by Russell Epstein
  • 2 edits in branches/safari-612.3.6.3-branch/Source/WebKit

Cherry-pick r283386. rdar://problem/83953959

Protect WebFrame during invalidatePolicyListener()
https://bugs.webkit.org/show_bug.cgi?id=229981
<rdar://problem/82807413>

Reviewed by Alex Christensen.

  • WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::invalidatePolicyListeners): Protect the WebFrame while policy handlers are run.

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

4:59 PM Changeset in webkit [285901] by Russell Epstein
  • 8 edits in branches/safari-612.3.6.3-branch/Source

Versioning.

WebKit-7612.3.6.3.1

4:56 PM Changeset in webkit [285900] by Jonathan Bedard
  • 4 edits
    2 adds in trunk/Tools

[webkitscmpy] Load secrets in kubernetes
https://bugs.webkit.org/show_bug.cgi?id=233158
<rdar://problem/85433499>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, export Environment.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:

(credentials): Use Environment instead of os.environ.

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/environment.py: Added.

(Environment):
(Environment.instance): Construct a shared Environmant intance.
(Environment.init):
(Environment.load): Load secrets in file directory.
(Environment.get): Check environment variable and then secret store.
(Environment.getitem):
(Environment.setitem):
(Environment.keys): Iterate through secret store and environment variables.
(Environment.values): Ditto.
(Environment.items): Ditto.

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/environment_unittest.py: Added.

(TestEnvironment):
(TestEnvironment.test_basic):
(TestEnvironment.test_scoped):
(TestEnvironment.test_list):

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

4:31 PM Changeset in webkit [285899] by Russell Epstein
  • 2 edits in branches/safari-612.3.6.2-branch/Source/WebKit

Cherry-pick r283386. rdar://problem/83953959

Protect WebFrame during invalidatePolicyListener()
https://bugs.webkit.org/show_bug.cgi?id=229981
<rdar://problem/82807413>

Reviewed by Alex Christensen.

  • WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::invalidatePolicyListeners): Protect the WebFrame while policy handlers are run.

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

4:30 PM Changeset in webkit [285898] by Devin Rousso
  • 8 edits in trunk/Source

[Apple Pay] handle unknown setup features
https://bugs.webkit.org/show_bug.cgi?id=233212

Reviewed by Wenson Hsieh.

Source/WebCore:

  • Modules/applepay/ApplePaySetupFeatureWebCore.h:
  • Modules/applepay/ApplePaySetupFeature.mm:

(WebCore::ApplePaySetupFeature::supportsFeature): Added.
(WebCore::ApplePaySetupFeature::type const):

  • Modules/applepay/PaymentInstallmentConfiguration.mm:

(WebCore::applePaySetupFeatureType):
(WebCore::platformFeatureType):
(WebCore::PaymentInstallmentConfiguration::applePayInstallmentConfiguration const):
If the PKPaymentSetupFeatureType is unknown/unsupported, return an empty ApplePayInstallmentConfiguration.
Drive-by: Replace all PKPaymentSetupFeatureTypeApplePay_X with PKPaymentSetupFeatureTypeAppleCard.

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h:

Drive-by: Replace all PKPaymentSetupFeatureTypeApplePay_X with PKPaymentSetupFeatureTypeAppleCard.

Source/WebKit:

  • Shared/ApplePay/ApplePayPaymentSetupFeatures.mm:

(WebKit::PaymentSetupFeatures::operator Vector<Ref<WebCore::ApplePaySetupFeature>> const):
Skip PKPaymentSetupFeature that have an unknown PKPaymentSetupFeatureType. This ensures
that WebCore::ApplePaySetupFeature will only ever be created with known/supported PKPaymentSetupFeatureType.

4:29 PM Changeset in webkit [285897] by Russell Epstein
  • 8 edits in branches/safari-612.3.6.2-branch/Source

Versioning.

WebKit-7612.3.6.2.2

4:23 PM Changeset in webkit [285896] by Nikita Vasilyev
  • 9 edits in trunk

Web Inspector: Remove unused dontCreateIfMissing argument from CSSStyleDeclaration.prototype.propertyForName
https://bugs.webkit.org/show_bug.cgi?id=233198

Reviewed by Devin Rousso.

Source/WebInspectorUI:

dontCreateIfMissing was always set to true.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WI.CSSStyleDeclaration.prototype.propertyForName):
Drive-by: inline findMatch function, which was only used once.

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype._parseStylePropertyPayload):

  • UserInterface/Models/Font.js:

(WI.Font):

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WI.BoxModelDetailsSectionRow.prototype._getPropertyValue):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._addVariableTokens):

LayoutTests:

  • inspector/css/overridden-property.html:
  • inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
4:14 PM Changeset in webkit [285895] by Russell Epstein
  • 2 edits in branches/safari-613.1.9-branch/Source/WebKit

Cherry-pick r285889. rdar://problem/85430575

Adjust graphics related message filter
https://bugs.webkit.org/show_bug.cgi?id=233151
<rdar://problem/85430575>

Reviewed by Brent Fulgham.

Adjust graphics related message filter in the WebContent process' sandbox on iOS. This patch unifies
the filter for different OS versions.

  • WebProcess/com.apple.WebProcess.sb.in:

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

4:14 PM Changeset in webkit [285894] by Russell Epstein
  • 3 edits in branches/safari-613.1.9-branch/Source/WebKit

Cherry-pick r285878. rdar://problem/85430575

Adjust graphics related message filter
https://bugs.webkit.org/show_bug.cgi?id=233151
<rdar://problem/85430575>

Reviewed by Brent Fulgham.

Adjust graphics related message filter in the WebContent process' sandbox on iOS. This patch unifies
the filter for different OS versions.

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

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

3:53 PM Changeset in webkit [285893] by Nikos Mouchtaris
  • 11 edits in trunk/Source

Add overscroll behavior to ScrollableAreaParameters
https://bugs.webkit.org/show_bug.cgi?id=233159

Reviewed by Simon Fraser.

Source/WebCore:

Split patch by Cathie Chen and Frederic Wang. This patch lands the addition of
horizontalOverscrollBehavior and verticalOverscrollBehavior to ScrollableAreaParameters
to track value of over scroll behavior for particular scroll node. Patches for synchronous/
asynchronous scrolling on Mac and on iOS to come.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):

  • page/scrolling/ScrollingCoordinatorTypes.h:

(WebCore::ScrollableAreaParameters::operator== const):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalOverscrollBehavior const):
(WebCore::ScrollableArea::verticalOverscrollBehavior const):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::horizontalOverscrollBehavior const):
(WebCore::RenderLayerScrollableArea::verticalOverscrollBehavior const):

  • rendering/RenderLayerScrollableArea.h:

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

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

  • Shared/WebCoreArgumentCoders.h:
2:58 PM Changeset in webkit [285892] by Russell Epstein
  • 3 edits
    3 adds in branches/safari-612.3.6.1-branch

Cherry-pick r285823. rdar://problem/85236459

Cross-Origin-Embedder-Policy: require-corp prevents loading of data URL images
https://bugs.webkit.org/show_bug.cgi?id=233131
<rdar://85236459>

Reviewed by Geoffrey Garen.

Source/WebCore:

When doing an initial data URL <img> load, we properly wouldn't perform a cross-origin resource policy check.
This is per the Fetch specification that says to use a scheme fetch [1] when the request URL is a data URL.
When the protocol is data, the scheme fetch algorithm would return a response without performing an HTTP
Fetch. The HTTP check [2] is the algorithm that actually performs a cross-origin resource policy check, at
step 7.

The issue with our implementation was that data URL <img> loads would perform a cross-origin resource policy
check in the case where the image is loaded from our memory cache, due to a check we had in
CachedResourceLoader::requestResource(). As a result, data URL <img> loads would fail when served from the
memory cache, when CORP is enforced. To address the issue and match the specification, we now disable this
CORP check when the request URL is a data URL.

[1] https://fetch.spec.whatwg.org/#scheme-fetch
[2] https://fetch.spec.whatwg.org/#concept-http-fetch

Test: http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html

  • loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::requestResource):

LayoutTests:

Add layout test coverage. This test is based on a reduce test case from Cameron McCormack.

  • http/wpt/html/cross-origin-embedder-policy/require-corp-data-url-expected.txt: Added.
  • http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html: Added.
  • http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html.headers: Added.

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

2:57 PM Changeset in webkit [285891] by Russell Epstein
  • 2 edits in branches/safari-612.3.6.1-branch/Source/WebKit

Cherry-pick r283386. rdar://problem/83953959

Protect WebFrame during invalidatePolicyListener()
https://bugs.webkit.org/show_bug.cgi?id=229981
<rdar://problem/82807413>

Reviewed by Alex Christensen.

  • WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::invalidatePolicyListeners): Protect the WebFrame while policy handlers are run.

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

2:55 PM Changeset in webkit [285890] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Mark landed changes as merged
https://bugs.webkit.org/show_bug.cgi?id=233056
<rdar://problem/85351564>

Reviewed by Dewei Zhu.

For BitBucket and GitHub to recognize a pull-request as merged, the target
branch must be updated with the exact commit to be merged as the merge occurs.

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

(Land.main): Update source branch when merging commits to target branch.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.PRGenerator.update): Only delete values if they exist.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:

(TestLand):
(TestLandGitHub):
(TestLandBitBucket):

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

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

Adjust graphics related message filter
https://bugs.webkit.org/show_bug.cgi?id=233151
<rdar://problem/85430575>

Reviewed by Brent Fulgham.

Adjust graphics related message filter in the WebContent process' sandbox on iOS. This patch unifies
the filter for different OS versions.

  • WebProcess/com.apple.WebProcess.sb.in:
2:53 PM Changeset in webkit [285888] by Russell Epstein
  • 8 edits in branches/safari-612.3.6.1-branch/Source

Versioning.

WebKit-7612.3.6.1.3

2:47 PM Changeset in webkit [285887] by Russell Epstein
  • 1 edit in branches/safari-612.3.6.0-branch/Source/WebKit/WebProcess/WebPage/WebFrame.cpp

Unreviewed integration fix. rdar://83953959

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

[iOS] Limit graphics related IOKit method filtering
https://bugs.webkit.org/show_bug.cgi?id=233209
<rdar://problem/85473581>

Reviewed by Brent Fulgham.

Limit graphics related IOKit method filtering based on OS version. This patch also adds an entitlement which
will enable a replacement for the disabled filtering.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Scripts/process-entitlements.sh:
2:32 PM Changeset in webkit [285885] by commit-queue@webkit.org
  • 19 edits in trunk

[css-contain] Support contain:paint
https://bugs.webkit.org/show_bug.cgi?id=224742

Patch by Rob Buis <rbuis@igalia.com> on 2021-11-16
Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Adjust test expectation now that contain: strict is supported.

  • web-platform-tests/css/css-flexbox/flex-item-contains-strict-expected.txt:

Source/WebCore:

This patch implements paint containment as specified[1].

It adds shouldApplyPaintContainment to check whether the element applies for paint containment. Is so, then:

  • an independent formatting context is established.
  • an absolute positioning and fixed positioning containing block is established.
  • a stacking context is created.
  • implements clipping on the overflow clip edge.

This patch also adds effectiveOverflowX/effectiveOverflowY on RenderElement to take
the effect of paint containment on overflow-x/y into account.

[1] https://drafts.csswg.org/css-contain-2/#paint-containment

  • page/FrameView.cpp:

(WebCore::FrameView::applyOverflowToViewport):
(WebCore::FrameView::applyPaginationToViewport):
(WebCore::FrameView::calculateScrollbarModesForLayout):

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateFromStyle):
(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):
(WebCore::RenderBox::createsNewFormattingContext const):
(WebCore::RenderBox::addOverflowFromChild):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::updateFromStyle):

  • rendering/RenderElement.cpp:

(WebCore::includeNonFixedHeight):
(WebCore::RenderElement::effectiveOverflowX const):
(WebCore::RenderElement::effectiveOverflowY const):

  • rendering/RenderElement.h:

(WebCore::RenderElement::effectiveOverflowInlineDirection const):
(WebCore::RenderElement::effectiveOverflowBlockDirection const):
(WebCore::RenderElement::canContainFixedPositionObjects const):
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::mainAxisOverflowForChild const):
(WebCore::RenderFlexibleBox::crossAxisOverflowForChild const):

  • rendering/RenderFragmentContainer.cpp:

(WebCore::RenderFragmentContainer::overflowRectForFragmentedFlowPortion):

  • rendering/RenderInline.h:
  • rendering/RenderLayer.cpp:

(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::shouldBeCSSStackingContext const):
(WebCore::RenderLayer::setAncestorChainHasSelfPaintingLayerDescendant):
(WebCore::RenderLayer::setAncestorChainHasVisibleDescendant):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setPaintContainmentApplies):
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):
(WebCore::shouldApplyPaintContainment):

  • rendering/RenderObject.h:

(WebCore::RenderObject::paintContainmentApplies const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::overflowY const):
(WebCore::RenderStyle::containsPaint const):
(WebCore::RenderStyle::overflowInlineDirection const): Deleted.
(WebCore::RenderStyle::overflowBlockDirection const): Deleted.

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::shouldApplyViewportClip const):

LayoutTests:

Unskip tests that pass now.

2:19 PM Changeset in webkit [285884] by Russell Epstein
  • 2 edits in branches/safari-612.3.6.0-branch/Source/WebKit

Cherry-pick r283386. rdar://problem/83953959

Protect WebFrame during invalidatePolicyListener()
https://bugs.webkit.org/show_bug.cgi?id=229981
<rdar://problem/82807413>

Reviewed by Alex Christensen.

  • WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::invalidatePolicyListeners): Protect the WebFrame while policy handlers are run.

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

2:05 PM Changeset in webkit [285883] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Use IOHIDEvent timestamps for momentum velocity computation
https://bugs.webkit.org/show_bug.cgi?id=233168

Reviewed by Tim Horton.

NSEvent timetamps can have some jitter on some devices (rdar://85309639) so drop
down to IOHIDEvent timestamps when computing the initial velocity for a momentum
scroll animation, for improved accuracy.

  • page/mac/WheelEventDeltaFilterMac.h:
  • page/mac/WheelEventDeltaFilterMac.mm:

(WebCore::WheelEventDeltaFilterMac::updateFromEvent):
(WebCore::WheelEventDeltaFilterMac::reset):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::willStartRenderingUpdate):

1:53 PM Changeset in webkit [285882] by Russell Epstein
  • 8 edits in branches/safari-612.3.6.0-branch/Source

Versioning.

WebKit-7612.3.6.0.3

1:19 PM Changeset in webkit [285881] by mmaxfield@apple.com
  • 37 edits
    91 copies
    17 adds in trunk/Source

[WebGPU] Start preparing for serializing commands to the GPU process
https://bugs.webkit.org/show_bug.cgi?id=233179

Reviewed by Alex Christensen.

Source/WebCore/PAL:

Tiny cleanups. Forward-declare things that can be forward declared.

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
  • pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h:
  • pal/graphics/WebGPU/WebGPUBufferBinding.h:
  • pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h:
  • pal/graphics/WebGPU/WebGPUImageCopyBuffer.h:
  • pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
  • pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
  • pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h:
  • pal/graphics/WebGPU/WebGPUProgrammableStage.h:
  • pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
  • pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
  • pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h:

Source/WebKit:

The interaction between WebGPU and the GPU process will work as such:

  1. We have a virtual interface in PAL which holds 3 things:

a) Refcounted objects (command buffer, queue, device, etc.).
b) Structs holding descriptors for commands. E.g. device.createRenderPipeline(RenderPipelineDescriptor)
c) Enums

The virtual interface holds all 3 of these things. For refcounted objects, it holds virtual interfaces with no
implementations. (There is one implementation of these interfaces which connects them to WebGPU.framework.)

  1. This patch adds a new implementation of these virtual interfaces, called Remote*Proxy, in WebKit/WebProcess/GPU/graphics/WebGPU. The implementation of all the methods in this implementation will simply send messages to the GPU process. In this patch, these methods are still stubs - they'll be filled in in a subsequent patch.
  2. The arguments to the commands consist of the structs and enums from PAL. However, we can't use the structs directly, because the structs hold references to the refcounted objects. E.g. a BindGroupDescriptor holds a reference to the Buffer which should be part of the bind group. We can't send refcounted objects across IPC, so instead of sending the objects, we send a WebGPUIdentifier instead. Every refcounted object gets a unique WebGPU identifier. However, because these references to RefCounted objects are buried deep inside nested structs, we can't simply use the structs out of the box. Instead, we have to have a parallel set of structs, where the references are replaced with WebGPUIdentifiers. These structs will be the ones actually sent across the wire.
  3. The enums don't have this problem, so those are untouched. A subsequent patch will be adding the EnumTraits directly in PAL to make them serializable.
  4. Upon receiving a struct from the wire, we're going to have to convert it back into its corresponding PAL type, which means we have to find the object associated with the WebGPUIdentifier. The serializers themselves can't do this, because they lack the context necessary for performing the lookup. This patch adds two new context objects which we'll use ourselves when implementing our own conversions - ConvertToBackingContext and ConvertFromBackingContext. Only the first one is implemented in this patch; the second will be implemented in a subsequent patch.
  5. The GPU process side won't actually implement the virtual interface - only the web process side will implement it. Instead, the GPU process has to manage lifetime of the objects. Just like how 2D canvas in the GPU process has a RemoteResourceCache, the WebGPU objects will be owned by a high-level object in the GPU process. The ownership will be top-down in the GPU process, where Devices have strong references to Textures, and Textures have strong references to TextureViews. On the other hand, in the Web process, ownership will be bottom-up: JavaScript will have strong references to TextureViews, TextureViews will have strong references to Textures, and Textures will have strong references to Devices. This works out quite nicely - it means that, when GC runs and a TextureView gets deleted, the TextureView tells its owner that it's getting destroyed, its owner sends a message to the GPU process, and the corresponding owner in the GPU process looks up its relevant child in its children list, and delete it. Easy peasy.

No new tests because there is no behavior change (yet). We're getting close, though!

  • Shared/WebGPU/WebGPUBindGroupDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h.
  • Shared/WebGPU/WebGPUBindGroupEntry.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h.
  • Shared/WebGPU/WebGPUBindGroupLayoutDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUBindGroupLayoutEntry.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPUBlendComponent.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUBlendState.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUBufferBinding.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPUBufferBindingLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUBufferDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUCanvasConfiguration.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyTexture.h.
  • Shared/WebGPU/WebGPUColor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUColorTargetState.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPUCommandBufferDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUCommandEncoderDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUComputePassDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUComputePassTimestampWrites.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h.
  • Shared/WebGPU/WebGPUComputePipelineDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUConvertFromBackingContext.h: Added.
  • Shared/WebGPU/WebGPUConvertToBackingContext.h: Added.
  • Shared/WebGPU/WebGPUDepthStencilState.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPUDeviceDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h.
  • Shared/WebGPU/WebGPUExtent3D.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h.
  • Shared/WebGPU/WebGPUExternalTextureBindingLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUExternalTextureDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUFragmentState.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUIdentifier.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUImageCopyBuffer.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUImageCopyExternalImage.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPUImageCopyTexture.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyTexture.h.
  • Shared/WebGPU/WebGPUImageCopyTextureTagged.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUImageDataLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPUMultisampleState.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUObjectDescriptorBase.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUOrigin2D.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h.
  • Shared/WebGPU/WebGPUOrigin3D.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h.
  • Shared/WebGPU/WebGPUPipelineDescriptorBase.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUPipelineLayoutDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h.
  • Shared/WebGPU/WebGPUPrimitiveState.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPUProgrammableStage.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUProgrammableStage.h.
  • Shared/WebGPU/WebGPUQuerySetDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h.
  • Shared/WebGPU/WebGPURenderBundleDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPURenderPassColorAttachment.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h.
  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.
  • Shared/WebGPU/WebGPURenderPassDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h.
  • Shared/WebGPU/WebGPURenderPassLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h.
  • Shared/WebGPU/WebGPURenderPassTimestampWrites.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h.
  • Shared/WebGPU/WebGPURenderPipelineDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPURequestAdapterOptions.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Shared/WebGPU/WebGPUSamplerBindingLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUSamplerDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUShaderModuleDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUStencilFaceState.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUStorageTextureBindingLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUTextureBindingLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUTextureDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUTextureViewDescriptor.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h.
  • Shared/WebGPU/WebGPUVertexAttribute.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyBuffer.h.
  • Shared/WebGPU/WebGPUVertexBufferLayout.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h.
  • Shared/WebGPU/WebGPUVertexState.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUBufferBinding.h.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteAdapterProxy::RemoteAdapterProxy):
(WebKit::WebGPU::RemoteAdapterProxy::~RemoteAdapterProxy):
(WebKit::WebGPU::RemoteAdapterProxy::requestDevice):

  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteBindGroupLayoutProxy::RemoteBindGroupLayoutProxy):
(WebKit::WebGPU::RemoteBindGroupLayoutProxy::~RemoteBindGroupLayoutProxy):
(WebKit::WebGPU::RemoteBindGroupLayoutProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteBindGroupProxy::RemoteBindGroupProxy):
(WebKit::WebGPU::RemoteBindGroupProxy::~RemoteBindGroupProxy):
(WebKit::WebGPU::RemoteBindGroupProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteBufferProxy::RemoteBufferProxy):
(WebKit::WebGPU::RemoteBufferProxy::~RemoteBufferProxy):
(WebKit::WebGPU::RemoteBufferProxy::mapAsync):
(WebKit::WebGPU::RemoteBufferProxy::getMappedRange):
(WebKit::WebGPU::RemoteBufferProxy::unmap):
(WebKit::WebGPU::RemoteBufferProxy::destroy):
(WebKit::WebGPU::RemoteBufferProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteCommandBufferProxy::RemoteCommandBufferProxy):
(WebKit::WebGPU::RemoteCommandBufferProxy::~RemoteCommandBufferProxy):
(WebKit::WebGPU::RemoteCommandBufferProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.cpp: Added.

(WebKit::WebGPU::RemoteCommandEncoderProxy::RemoteCommandEncoderProxy):
(WebKit::WebGPU::RemoteCommandEncoderProxy::~RemoteCommandEncoderProxy):
(WebKit::WebGPU::RemoteCommandEncoderProxy::beginRenderPass):
(WebKit::WebGPU::RemoteCommandEncoderProxy::beginComputePass):
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyBufferToBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyBufferToTexture):
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyTextureToBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyTextureToTexture):
(WebKit::WebGPU::RemoteCommandEncoderProxy::fillBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::pushDebugGroup):
(WebKit::WebGPU::RemoteCommandEncoderProxy::popDebugGroup):
(WebKit::WebGPU::RemoteCommandEncoderProxy::insertDebugMarker):
(WebKit::WebGPU::RemoteCommandEncoderProxy::writeTimestamp):
(WebKit::WebGPU::RemoteCommandEncoderProxy::resolveQuerySet):
(WebKit::WebGPU::RemoteCommandEncoderProxy::finish):
(WebKit::WebGPU::RemoteCommandEncoderProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h: Added.
  • WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.cpp: Added.

(WebKit::WebGPU::RemoteComputePassEncoderProxy::RemoteComputePassEncoderProxy):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::~RemoteComputePassEncoderProxy):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::dispatch):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::dispatchIndirect):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::beginPipelineStatisticsQuery):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::endPipelineStatisticsQuery):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::endPass):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::setBindGroup):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::pushDebugGroup):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::popDebugGroup):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::insertDebugMarker):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h: Added.
  • WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteComputePipelineProxy::RemoteComputePipelineProxy):
(WebKit::WebGPU::RemoteComputePipelineProxy::~RemoteComputePipelineProxy):
(WebKit::WebGPU::RemoteComputePipelineProxy::getBindGroupLayout):
(WebKit::WebGPU::RemoteComputePipelineProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp: Added.

(WebKit::WebGPU::RemoteDeviceProxy::RemoteDeviceProxy):
(WebKit::WebGPU::RemoteDeviceProxy::~RemoteDeviceProxy):
(WebKit::WebGPU::RemoteDeviceProxy::destroy):
(WebKit::WebGPU::RemoteDeviceProxy::createBuffer):
(WebKit::WebGPU::RemoteDeviceProxy::createTexture):
(WebKit::WebGPU::RemoteDeviceProxy::createSampler):
(WebKit::WebGPU::RemoteDeviceProxy::importExternalTexture):
(WebKit::WebGPU::RemoteDeviceProxy::createBindGroupLayout):
(WebKit::WebGPU::RemoteDeviceProxy::createPipelineLayout):
(WebKit::WebGPU::RemoteDeviceProxy::createBindGroup):
(WebKit::WebGPU::RemoteDeviceProxy::createShaderModule):
(WebKit::WebGPU::RemoteDeviceProxy::createComputePipeline):
(WebKit::WebGPU::RemoteDeviceProxy::createRenderPipeline):
(WebKit::WebGPU::RemoteDeviceProxy::createComputePipelineAsync):
(WebKit::WebGPU::RemoteDeviceProxy::createRenderPipelineAsync):
(WebKit::WebGPU::RemoteDeviceProxy::createCommandEncoder):
(WebKit::WebGPU::RemoteDeviceProxy::createRenderBundleEncoder):
(WebKit::WebGPU::RemoteDeviceProxy::createQuerySet):
(WebKit::WebGPU::RemoteDeviceProxy::pushErrorScope):
(WebKit::WebGPU::RemoteDeviceProxy::popErrorScope):
(WebKit::WebGPU::RemoteDeviceProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h: Added.
  • WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteExternalTextureProxy::RemoteExternalTextureProxy):
(WebKit::WebGPU::RemoteExternalTextureProxy::~RemoteExternalTextureProxy):
(WebKit::WebGPU::RemoteExternalTextureProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteGPUProxy::RemoteGPUProxy):
(WebKit::WebGPU::RemoteGPUProxy::~RemoteGPUProxy):
(WebKit::WebGPU::RemoteGPUProxy::requestAdapter):

  • WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemotePipelineLayoutProxy::RemotePipelineLayoutProxy):
(WebKit::WebGPU::RemotePipelineLayoutProxy::~RemotePipelineLayoutProxy):
(WebKit::WebGPU::RemotePipelineLayoutProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteQuerySetProxy::RemoteQuerySetProxy):
(WebKit::WebGPU::RemoteQuerySetProxy::~RemoteQuerySetProxy):
(WebKit::WebGPU::RemoteQuerySetProxy::destroy):
(WebKit::WebGPU::RemoteQuerySetProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.cpp: Added.

(WebKit::WebGPU::RemoteQueueProxy::RemoteQueueProxy):
(WebKit::WebGPU::RemoteQueueProxy::~RemoteQueueProxy):
(WebKit::WebGPU::RemoteQueueProxy::submit):
(WebKit::WebGPU::RemoteQueueProxy::onSubmittedWorkDone):
(WebKit::WebGPU::RemoteQueueProxy::writeBuffer):
(WebKit::WebGPU::RemoteQueueProxy::writeTexture):
(WebKit::WebGPU::RemoteQueueProxy::copyExternalImageToTexture):
(WebKit::WebGPU::RemoteQueueProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h: Added.
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.cpp: Added.

(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::RemoteRenderBundleEncoderProxy):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::~RemoteRenderBundleEncoderProxy):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setIndexBuffer):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setVertexBuffer):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::draw):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::drawIndexed):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::drawIndirect):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::drawIndexedIndirect):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setBindGroup):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::pushDebugGroup):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::popDebugGroup):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::insertDebugMarker):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::finish):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h: Added.
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteRenderBundleProxy::RemoteRenderBundleProxy):
(WebKit::WebGPU::RemoteRenderBundleProxy::~RemoteRenderBundleProxy):
(WebKit::WebGPU::RemoteRenderBundleProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.cpp: Added.

(WebKit::WebGPU::RemoteRenderPassEncoderProxy::RemoteRenderPassEncoderProxy):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::~RemoteRenderPassEncoderProxy):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setIndexBuffer):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setVertexBuffer):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::draw):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::drawIndexed):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::drawIndirect):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::drawIndexedIndirect):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setBindGroup):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::pushDebugGroup):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::popDebugGroup):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::insertDebugMarker):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setViewport):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setScissorRect):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setBlendConstant):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setStencilReference):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::beginOcclusionQuery):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::endOcclusionQuery):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::beginPipelineStatisticsQuery):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::endPipelineStatisticsQuery):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::executeBundles):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::endPass):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h: Added.
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteRenderPipelineProxy::RemoteRenderPipelineProxy):
(WebKit::WebGPU::RemoteRenderPipelineProxy::~RemoteRenderPipelineProxy):
(WebKit::WebGPU::RemoteRenderPipelineProxy::getBindGroupLayout):
(WebKit::WebGPU::RemoteRenderPipelineProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUProgrammableStage.h.

(WebKit::WebGPU::RemoteSamplerProxy::RemoteSamplerProxy):
(WebKit::WebGPU::RemoteSamplerProxy::~RemoteSamplerProxy):
(WebKit::WebGPU::RemoteSamplerProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteShaderModuleProxy::RemoteShaderModuleProxy):
(WebKit::WebGPU::RemoteShaderModuleProxy::~RemoteShaderModuleProxy):
(WebKit::WebGPU::RemoteShaderModuleProxy::compilationInfo):
(WebKit::WebGPU::RemoteShaderModuleProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteTextureProxy::RemoteTextureProxy):
(WebKit::WebGPU::RemoteTextureProxy::~RemoteTextureProxy):
(WebKit::WebGPU::RemoteTextureProxy::createView const):
(WebKit::WebGPU::RemoteTextureProxy::destroy):
(WebKit::WebGPU::RemoteTextureProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h.

(WebKit::WebGPU::RemoteTextureViewProxy::RemoteTextureViewProxy):
(WebKit::WebGPU::RemoteTextureViewProxy::~RemoteTextureViewProxy):
(WebKit::WebGPU::RemoteTextureViewProxy::setLabelInternal):

  • WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h.
  • WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.cpp: Added.

(WebKit::WebGPU::DowncastConvertToBackingContext::convertToBacking):

  • WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.h: Added.
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:
12:55 PM Changeset in webkit [285880] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, -latomic is only available for GCC
https://bugs.webkit.org/show_bug.cgi?id=233097

  • CMakeLists.txt:
12:24 PM Changeset in webkit [285879] by mmaxfield@apple.com
  • 177 edits in trunk/Source/WebCore/PAL

[WebGPU] Fix namespace comments
https://bugs.webkit.org/show_bug.cgi?id=233169

Reviewed by Alex Christensen.

Purely mechanical.

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h:
  • pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.cpp:
  • pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h:
  • pal/graphics/WebGPU/WebGPU.h:
  • pal/graphics/WebGPU/WebGPUAdapter.h:
  • pal/graphics/WebGPU/WebGPUAddressMode.h:
  • pal/graphics/WebGPU/WebGPUBindGroup.h:
  • pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h:
  • pal/graphics/WebGPU/WebGPUBindGroupEntry.h:
  • pal/graphics/WebGPU/WebGPUBindGroupLayout.h:
  • pal/graphics/WebGPU/WebGPUBindGroupLayoutDescriptor.h:
  • pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h:
  • pal/graphics/WebGPU/WebGPUBlendComponent.h:
  • pal/graphics/WebGPU/WebGPUBlendFactor.h:
  • pal/graphics/WebGPU/WebGPUBlendOperation.h:
  • pal/graphics/WebGPU/WebGPUBlendState.h:
  • pal/graphics/WebGPU/WebGPUBuffer.h:
  • pal/graphics/WebGPU/WebGPUBufferBinding.h:
  • pal/graphics/WebGPU/WebGPUBufferBindingLayout.h:
  • pal/graphics/WebGPU/WebGPUBufferBindingType.h:
  • pal/graphics/WebGPU/WebGPUBufferDescriptor.h:
  • pal/graphics/WebGPU/WebGPUBufferUsage.h:
  • pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h:
  • pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
  • pal/graphics/WebGPU/WebGPUColor.h:
  • pal/graphics/WebGPU/WebGPUColorTargetState.h:
  • pal/graphics/WebGPU/WebGPUColorWrite.h:
  • pal/graphics/WebGPU/WebGPUCommandBuffer.h:
  • pal/graphics/WebGPU/WebGPUCommandBufferDescriptor.h:
  • pal/graphics/WebGPU/WebGPUCommandEncoder.h:
  • pal/graphics/WebGPU/WebGPUCommandEncoderDescriptor.h:
  • pal/graphics/WebGPU/WebGPUCompareFunction.h:
  • pal/graphics/WebGPU/WebGPUCompilationInfo.h:
  • pal/graphics/WebGPU/WebGPUCompilationMessage.h:
  • pal/graphics/WebGPU/WebGPUCompilationMessageType.h:
  • pal/graphics/WebGPU/WebGPUComputePassDescriptor.h:
  • pal/graphics/WebGPU/WebGPUComputePassEncoder.h:
  • pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h:
  • pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h:
  • pal/graphics/WebGPU/WebGPUComputePipeline.h:
  • pal/graphics/WebGPU/WebGPUComputePipelineDescriptor.h:
  • pal/graphics/WebGPU/WebGPUCullMode.h:
  • pal/graphics/WebGPU/WebGPUDepthStencilState.h:
  • pal/graphics/WebGPU/WebGPUDevice.h:
  • pal/graphics/WebGPU/WebGPUDeviceDescriptor.h:
  • pal/graphics/WebGPU/WebGPUDeviceLostInfo.h:
  • pal/graphics/WebGPU/WebGPUDeviceLostReason.h:
  • pal/graphics/WebGPU/WebGPUError.h:
  • pal/graphics/WebGPU/WebGPUErrorFilter.h:
  • pal/graphics/WebGPU/WebGPUExtent3D.h:
  • pal/graphics/WebGPU/WebGPUExternalTexture.h:
  • pal/graphics/WebGPU/WebGPUExternalTextureBindingLayout.h:
  • pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h:
  • pal/graphics/WebGPU/WebGPUFeatureName.h:
  • pal/graphics/WebGPU/WebGPUFilterMode.h:
  • pal/graphics/WebGPU/WebGPUFragmentState.h:
  • pal/graphics/WebGPU/WebGPUFrontFace.h:
  • pal/graphics/WebGPU/WebGPUImageCopyBuffer.h:
  • pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
  • pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
  • pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h:
  • pal/graphics/WebGPU/WebGPUImageDataLayout.h:
  • pal/graphics/WebGPU/WebGPUIndexFormat.h:
  • pal/graphics/WebGPU/WebGPUIntegralTypes.h:
  • pal/graphics/WebGPU/WebGPULoadOp.h:
  • pal/graphics/WebGPU/WebGPUMapMode.h:
  • pal/graphics/WebGPU/WebGPUMultisampleState.h:
  • pal/graphics/WebGPU/WebGPUObjectDescriptorBase.h:
  • pal/graphics/WebGPU/WebGPUOrigin2D.h:
  • pal/graphics/WebGPU/WebGPUOrigin3D.h:
  • pal/graphics/WebGPU/WebGPUOutOfMemoryError.h:
  • pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
  • pal/graphics/WebGPU/WebGPUPipelineLayout.h:
  • pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h:
  • pal/graphics/WebGPU/WebGPUPipelineStatisticName.h:
  • pal/graphics/WebGPU/WebGPUPowerPreference.h:
  • pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h:
  • pal/graphics/WebGPU/WebGPUPrimitiveState.h:
  • pal/graphics/WebGPU/WebGPUPrimitiveTopology.h:
  • pal/graphics/WebGPU/WebGPUProgrammableStage.h:
  • pal/graphics/WebGPU/WebGPUQuerySet.h:
  • pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
  • pal/graphics/WebGPU/WebGPUQueryType.h:
  • pal/graphics/WebGPU/WebGPUQueue.h:
  • pal/graphics/WebGPU/WebGPURenderBundle.h:
  • pal/graphics/WebGPU/WebGPURenderBundleDescriptor.h:
  • pal/graphics/WebGPU/WebGPURenderBundleEncoder.h:
  • pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
  • pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
  • pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
  • pal/graphics/WebGPU/WebGPURenderPassDescriptor.h:
  • pal/graphics/WebGPU/WebGPURenderPassEncoder.h:
  • pal/graphics/WebGPU/WebGPURenderPassLayout.h:
  • pal/graphics/WebGPU/WebGPURenderPassTimestampLocation.h:
  • pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h:
  • pal/graphics/WebGPU/WebGPURenderPipeline.h:
  • pal/graphics/WebGPU/WebGPURenderPipelineDescriptor.h:
  • pal/graphics/WebGPU/WebGPURequestAdapterOptions.h:
  • pal/graphics/WebGPU/WebGPUSampler.h:
  • pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h:
  • pal/graphics/WebGPU/WebGPUSamplerBindingType.h:
  • pal/graphics/WebGPU/WebGPUSamplerDescriptor.h:
  • pal/graphics/WebGPU/WebGPUShaderModule.h:
  • pal/graphics/WebGPU/WebGPUShaderModuleDescriptor.h:
  • pal/graphics/WebGPU/WebGPUShaderStage.h:
  • pal/graphics/WebGPU/WebGPUStencilFaceState.h:
  • pal/graphics/WebGPU/WebGPUStencilOperation.h:
  • pal/graphics/WebGPU/WebGPUStorageTextureAccess.h:
  • pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h:
  • pal/graphics/WebGPU/WebGPUStoreOp.h:
  • pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
  • pal/graphics/WebGPU/WebGPUSupportedLimits.h:
  • pal/graphics/WebGPU/WebGPUTexture.h:
  • pal/graphics/WebGPU/WebGPUTextureAspect.h:
  • pal/graphics/WebGPU/WebGPUTextureBindingLayout.h:
  • pal/graphics/WebGPU/WebGPUTextureDescriptor.h:
  • pal/graphics/WebGPU/WebGPUTextureDimension.h:
  • pal/graphics/WebGPU/WebGPUTextureFormat.h:
  • pal/graphics/WebGPU/WebGPUTextureSampleType.h:
  • pal/graphics/WebGPU/WebGPUTextureUsage.h:
  • pal/graphics/WebGPU/WebGPUTextureView.h:
  • pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h:
  • pal/graphics/WebGPU/WebGPUTextureViewDimension.h:
  • pal/graphics/WebGPU/WebGPUUncapturedErrorEvent.h:
  • pal/graphics/WebGPU/WebGPUUncapturedErrorEventInit.h:
  • pal/graphics/WebGPU/WebGPUValidationError.h:
  • pal/graphics/WebGPU/WebGPUVertexAttribute.h:
  • pal/graphics/WebGPU/WebGPUVertexBufferLayout.h:
  • pal/graphics/WebGPU/WebGPUVertexFormat.h:
  • pal/graphics/WebGPU/WebGPUVertexState.h:
  • pal/graphics/WebGPU/WebGPUVertexStepMode.h:
12:20 PM Changeset in webkit [285878] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Adjust graphics related message filter
https://bugs.webkit.org/show_bug.cgi?id=233151
<rdar://problem/85430575>

Reviewed by Brent Fulgham.

Adjust graphics related message filter in the WebContent process' sandbox on iOS. This patch unifies
the filter for different OS versions.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
11:55 AM Changeset in webkit [285877] by Chris Dumez
  • 4 edits in trunk

Crash under WebKit::WebPageProxy::commitProvisionalPage()
https://bugs.webkit.org/show_bug.cgi?id=233199
<rdar://57659921>

Reviewed by Youenn Fablet.

Source/WebKit:

In the event where the committed WebProcess would crash while a cross-site provisional load
is going on in a provisional page / WebProcess, we would do a null dereference of the page's
drawing area when trying to commit the provisional page later on. We would also hit various
assertions in debug since the page's state gets completely reset when its WebProcess crashes.

To address the issue, we now clear the provisional page if the page's WebProcess crashes.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetStateAfterProcessExited):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:49 AM Changeset in webkit [285876] by Fujii Hironori
  • 3 edits in trunk/Tools

[Win][MiniBrowser][WK2] Show a message box for a provisional navigation failure
https://bugs.webkit.org/show_bug.cgi?id=233170

Reviewed by Don Olmstead.

Show a MessageBox if a provisional navigation failed.

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::didFailProvisionalNavigation):

  • MiniBrowser/win/WebKitBrowserWindow.h:
11:31 AM Changeset in webkit [285875] by zhifei_fang@apple.com
  • 4 edits in trunk/Tools

Make run-javascript-core-test and run-jsc-stress-tests support a customized identity file
https://bugs.webkit.org/show_bug.cgi?id=232453

Reviewed by Ryan Haddad.

  • Scripts/run-javascriptcore-tests: Add idFilePath field for remote config.
  • Scripts/run-jsc-stress-tests: Add idFilePath field for remote config.
  • Scripts/webkitdirs.pm:

(determineNativeArchitecture): Provide -i option to ssh

11:26 AM Changeset in webkit [285874] by commit-queue@webkit.org
  • 14 edits in trunk/LayoutTests

AX: Simplify tests changed in https://bugs.webkit.org/show_bug.cgi?id=233085
https://bugs.webkit.org/show_bug.cgi?id=233167

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-16
Reviewed by Andres Gonzalez.

In https://bugs.webkit.org/show_bug.cgi?id=233085 and https://bugs.webkit.org/show_bug.cgi?id=233017,
we made some tests async so that they passed in --release --accessibility-isolated-tree mode. However,
we can make these tests simpler and still pass — i.e., only wait for elements and expressions asynchronously
when it's absolutely necessary.

  • accessibility/color-well.html:
  • accessibility/mac/header-expected.txt:
  • accessibility/mac/header.html:
  • accessibility/mac/scrollbars.html:
  • accessibility/placeholder.html:
  • accessibility/progressbar.html:
  • accessibility/range-alter-by-percent-expected.txt:
  • accessibility/range-alter-by-percent.html:
  • accessibility/range-alter-by-step-expected.txt:
  • accessibility/range-alter-by-step.html:
  • accessibility/spinbutton-value-expected.txt:
  • accessibility/spinbutton-value.html:

Simplify these tests by only use async waiting when
necessary (i.e. dynamic mutation via JS)

  • resources/accessibility-helper.js:

(async expectAsyncExpression):
(async waitForExpression): Renamed to expectAsyncExpression.

10:27 AM Changeset in webkit [285873] by Chris Dumez
  • 4 edits in trunk

[iOS] Do not require the web browser entitlement to opt into captive portal mode
https://bugs.webkit.org/show_bug.cgi?id=233191

Reviewed by Brent Fulgham.

Source/WebKit:

Do not require the web browser entitlement to opt into captive portal mode on iOS, only require
it to opt out.

  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences _setCaptivePortalModeEnabled:]):

Tools:

Update API test coverage accordingly.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:14 AM Changeset in webkit [285872] by Andres Gonzalez
  • 5 edits in trunk

Fix for accessibility/mac/replace-text-with-range-on-webarea-element.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=233160
<rdar://problem/85436385>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/replace-text-with-range-on-webarea-element.html

The replacement and insertion text string is now properly isolatedCopied
in the AXIsolatedObject method instead of in the wrapper.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::replaceTextInRange):
(WebCore::AXIsolatedObject::insertText):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityReplaceRange:withText:]):
(-[WebAccessibilityObjectWrapper accessibilityInsertText:]):

Tools:

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::replaceTextInRange):
Dispatches to the AX thread the call to the wrapper's
[accessibilityReplaceRange withText:] method.

9:47 AM Changeset in webkit [285871] by Jonathan Bedard
  • 2 edits in trunk

Add my GitHub username to contributors.json

Reviewed by Jonathan Bedard

  • metadata/contributors.json:

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

9:39 AM Changeset in webkit [285870] by beidson@apple.com
  • 2 edits in trunk/Tools

Enable webpushd tests in the iOS simulator.
https://bugs.webkit.org/show_bug.cgi?id=233149

Reviewed by Alex Christensen.

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

(TestWebKitAPI::testWebPushDaemonPList): Add a key to allow an OSLaunchdJob executable to break out of the simulator runtime root.

9:11 AM Changeset in webkit [285869] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS][GPUP] Add telemetry for syscalls
https://bugs.webkit.org/show_bug.cgi?id=232888
<rdar://problem/85207011>

Reviewed by Brent Fulgham.

Add more telemetry for syscalls in the GPU process' sandbox on macOS. Also add entitlement for the GPU
process to use message filtering.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Scripts/process-entitlements.sh:
9:11 AM Changeset in webkit [285868] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebCore/PAL

[WebGPU] Vertex and fragment shaders are not hooked up to pipeline creation
https://bugs.webkit.org/show_bug.cgi?id=233166

Reviewed by Dean Jackson.

I simply forgot to implement them in r285831.

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:

(PAL::WebGPU::supportedLimits):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::convertToBacking):

9:11 AM Changeset in webkit [285867] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Remove unused Xcode references to ServiceWorkerGlobalScopePushAPI files
https://bugs.webkit.org/show_bug.cgi?id=233177

Reviewed by Alex Christensen.

No change of behavior.

  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:
  • WebCore.xcodeproj/project.pbxproj:
8:57 AM Changeset in webkit [285866] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Decoder::unwrapForTesting() is unnecessarily inefficient
https://bugs.webkit.org/show_bug.cgi?id=233145

Reviewed by Darin Adler.

Decoder::unwrapForTesting() is unnecessarily inefficient. It can take the whole
m_attachments data members from the decoder instead of calling removeAttachment()
repeatedly on the Decoder.

Also rename removeAttachment() to takeAttachment() since it returns the Attachment.
Update it to return a std::optional<Attachment> instead of using an out-parameter.

  • Platform/IPC/Attachment.cpp:

(IPC::Attachment::decode):

  • Platform/IPC/Attachment.h:
  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::unwrapForTesting):
(IPC::Decoder::takeAttachment):
(IPC::Decoder::removeAttachment): Deleted.

  • Platform/IPC/Decoder.h:
  • Platform/IPC/win/AttachmentWin.cpp:

(IPC::Attachment::decode):

8:51 AM Changeset in webkit [285865] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Do some hardening in IPC::createMessageDecoder()
https://bugs.webkit.org/show_bug.cgi?id=233148
<rdar://75139294>

Reviewed by Darin Adler.

Do more bound validation insde createMessageDecoder() to make sure we stay within
the bounds of our ReceiveBuffer.

Also, when the body is out of line, set out_of_line.deallocate to false since
we are taking ownership of the memory and will vm_deallocate() it ourselves.
Normally the sender (Connection::sendOutgoingMessage) sets that flag to false but
it is better not to rely on the sender setting a particular flag.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::createMessageDecoder):
(IPC::Connection::receiveSourceEventHandler):

8:47 AM Changeset in webkit [285864] by J Pascoe
  • 4 edits in trunk/Source/WebKit

[WebAuthn] WebKitTestRunner/TWAPI lacks an entitlement and bundle identifier to use required [ASCAgent performAuthorizationRequestsForContext]
https://bugs.webkit.org/show_bug.cgi?id=232846
rdar://problem/85170633

Reviewed by Brent Fulgham.

Covered by existing tests.

Calling to ASC requires converting WebAuthenticationRequestData to ASCCredentialRequestContext and then making
a call to _WKAuthenticatorAssertionResponse, while also requiring entitlements currently unavailable in OpenSource.
This change avoids calling out to ASC in tests using mock / virtual authenticators to avoid this problem, the
serialization to and from ASCAgent can be tested seperately.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

Refactor creation of ASCCredentialRequestContext.
(WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):
Refactor use of ASC and add clarifying comment about flow.

8:38 AM Changeset in webkit [285863] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/basic/005.html
https://bugs.webkit.org/show_bug.cgi?id=233150

Reviewed by Antti Koivisto.

Negative word-spacing acts as negative margin, pulling the content to the left. In this patch we account for such negative values when
computing the overall content width.

Note that this patch is in preparation for enabling IFC preferred width computation.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):

8:37 AM Changeset in webkit [285862] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Add support for injecting and rendering text recognition blocks
https://bugs.webkit.org/show_bug.cgi?id=233044

Reviewed by Aditya Keerthi.

Adds support for rendering text recognition blocks, which appear as opaque div elements over images. See below
for more details; no change in behavior, since nothing currently generates TextRecognitionBlockData yet.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::imageOverlayDataDetectorClass):
(WebCore::ImageOverlay::imageOverlayBlockClass):
(WebCore::ImageOverlay::isDataDetectorResult):
(WebCore::ImageOverlay::updateSubtree):

Add support for creating text recognition block containers in the UA shadow root, if needed.

(WebCore::ImageOverlay::fitElementToQuad):

Factor out logic to adjust the width, height and transforms on a given element to fit the given quad, and return
rotated bounding rect info; we use this in three places below.

(WebCore::ImageOverlay::updateWithTextRecognitionResult):

Add support for adjusting the size and transforms on each of the block containers created above.

(WebCore::ImageOverlay::imageOverlayDataDetectorClassName): Deleted.

Rename this to just imageOverlayDataDetectorClass() to match the other static helper functions.

  • html/shadow/imageOverlay.css:

(div#image-overlay):
(div.image-overlay-line):
(div.image-overlay-line, div.image-overlay-block):
(div.image-overlay-block):
(div.image-overlay-line, .image-overlay-text):

7:24 AM Changeset in webkit [285861] by commit-queue@webkit.org
  • 4 edits in trunk

Empty <input type=file> is represented incorrectly in FormData
https://bugs.webkit.org/show_bug.cgi?id=185416

Patch by Andreu Botella <andreu@andreubotella.com> on 2021-11-16
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-empty-file.window-expected.txt:

Source/WebCore:

When a FormData object is constructed from a form, an empty <input type="file"> control will
be represented as an empty file with an empty filename. According to the HTML spec, this
file must have "application/octet-stream" as its content type. WebKit has the empty string
instead. This change brings WebKit into alignment with the standard and with Firefox and
Chrome in this area.

Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-empty-file.window.html

  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):

7:07 AM Changeset in webkit [285860] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/text-indent-inside-float.html
https://bugs.webkit.org/show_bug.cgi?id=233163

Reviewed by Antti Koivisto.

Percentages must be treated as 0 for the purpose of calculating intrinsic size contributions.
https://drafts.csswg.org/css-text/#text-indent-property

Note that this patch is in preparation for enabling IFC preferred width computation.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::initialConstraintsForLine const):

  • layout/formattingContexts/inline/InlineLineBuilder.h: Add an "intrinsic mode" which will also be used

for other, preferred width computation specific properties and values.

6:38 AM Changeset in webkit [285859] by commit-queue@webkit.org
  • 9 edits in trunk/Tools

AX: Stop returning AccessibilityUIElements backed by a null pointer
https://bugs.webkit.org/show_bug.cgi?id=233138

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-16
Reviewed by Andres Gonzalez.

Prior to this patch, some callers of AccessibilityUIElement::create
passed null ids, resulting in a seemingly valid AccessibilityUIElement
that is actually backed by a null pointer. This makes writing tests harder,
since you can't rely on common operations like !myElement to do the right thing.

With this patch, we add a RELEASE_ASSERT to
AccessibilityUIElement::create requiring the passed pointer to be
valid. This patch also fixes up some callsites where we could (and did) pass null pointers.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:

(WTR::AccessibilityController::focusedElement):

  • WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp:

(WTR::AccessibilityController::focusedElement):

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::focusedElement):
Return RefPtr instead of Ref, since it's possible that no element is
focused.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::create):
Add RELEASE_ASSERT() to verify passed pointer is valid.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::focusedElement const):
(WTR::AccessibilityUIElement::uiElementForSearchPredicate):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler _notificationReceived:]):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::uiElementAttributeValue const):
(WTR::AccessibilityUIElement::uiElementForSearchPredicate):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::horizontalScrollbar const):
(WTR::AccessibilityUIElement::verticalScrollbar const):
Don't call AccessibilityUIElement::create with null pointers.

5:40 AM Changeset in webkit [285858] by Chris Lord
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] displayDidRefresh can shortcut waking up the scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=233187

Reviewed by Alejandro G. Castro.

Allow scrolling thread wake-up shortcut on GTK and WPE (matching
behaviour on every other platform).

No new tests, covered by existing tests.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::displayDidRefresh):

3:41 AM Changeset in webkit [285857] by commit-queue@webkit.org
  • 12 edits in trunk

Unreviewed, reverting r280078, r280290 and r282008.
https://bugs.webkit.org/show_bug.cgi?id=233184

Caused a crash in grid

Reverted changesets:

"Images as grid items should use the overridingLogicalWidth
when defined to compute the logical Height"
https://bugs.webkit.org/show_bug.cgi?id=228022
https://commits.webkit.org/r280078

"[css-grid] svg image as grid items should use the overriding
logical width/height when defined to compute the logical
height/width"
https://bugs.webkit.org/show_bug.cgi?id=228105
https://commits.webkit.org/r280290

"REGRESSION(r280078): broke fast/images/exif-orientation-
composited.html on windows"
https://bugs.webkit.org/show_bug.cgi?id=228325
https://commits.webkit.org/r282008

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

RemoteGraphicsContextGLCocoa::m_swapChain is unused
https://bugs.webkit.org/show_bug.cgi?id=233176

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-16
Reviewed by Antti Koivisto.

Remove the unused variable.

  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
1:48 AM Changeset in webkit [285855] by commit-queue@webkit.org
  • 6 edits
    8 adds in trunk/LayoutTests

[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=233156

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-16

  • platform/glib/TestExpectations:
  • platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/glib/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Added.
  • platform/glib/http/wpt/push-api/pushManager.any-expected.txt: Added.
  • platform/glib/http/wpt/push-api/pushManager.any.serviceworker-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-allowed.sub-expected.txt: Added.
  • platform/gtk/accessibility/color-well-expected.txt:
  • platform/gtk/ietestcenter/css3/bordersbackgrounds/border-radius-different-width-001-expected.txt:
  • platform/wpe/accessibility/color-well-expected.txt:
1:46 AM Changeset in webkit [285854] by cathiechen
  • 4 edits in trunk

[CSS contain] The size should be updated if layout containment is inside a fit-content parent
https://bugs.webkit.org/show_bug.cgi?id=233046

Reviewed by Rob Buis.

Source/WebCore:

When the object is a layout containment, we also need to add size containment as the constraint of
being a relayout boundary. Otherwise when the layout size depends on the content, the layout size
might not be updated correctly.

Test: imported/w3c/web-platform-tests/css/css-contain/contain-layout-019.html

  • rendering/RenderObject.cpp:

(WebCore::objectIsRelayoutBoundary):

LayoutTests:

Nov 15, 2021:

11:02 PM Changeset in webkit [285853] by ysuzuki@apple.com
  • 77 edits
    1 add in trunk

[libpas] Build and enable libpas on 64bit JSCOnly
https://bugs.webkit.org/show_bug.cgi?id=233097

Reviewed by Filip Pizlo.

This patch makes libpas built on 64bit Linux. And now enabling it on JSCOnly port.
libpas is built in C and tailored to the current clang. It made building libpas on
GCC hard since GCC is stricter on C languages.

  1. C does not handle const variables as constants. So libpas's config is not strictly constant in the C spec, and GCC actually rejects it. To make it built correctly, we need to build them in C++. In this patch, when building libpas via CMake, we build some libpas C files as C++.
  2. GCC C++ does not allow designated initializer for array. We work-around this problem by adding cpp_initialization_t constexpr constructors only when building these headers in C++ compiler.
  3. Atomic operations are using clang extension, so they cannot be built with GCC. This patch adds GCC version of these implementations.
  4. Add PAS_OS(DARWIN) ifdefs for Darwin specific code (e.g. malloc handling).
  5. Add explicit cast / PAS_UNUSED_PARAM since GCC emits warnings
  6. Use (unsigned long long) explicit cast for printing uint64_t via %llx / %llu since uint64_t definition is unsigned long int in GCC (while clang's one is unsigned long long).
  7. Reorder designated initializer for structures since not following to the definition ordering becomes compile error in GCC.
  8. Use uint128_t for pas_pair in GCC to avoid compile error.
  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BCompiler.h:
  • bmalloc/BPlatform.h:
  • bmalloc/Heap.cpp:
  • bmalloc/IsoHeapImplInlines.h:

(bmalloc::IsoHeapImpl<Config>::IsoHeapImpl):

  • libpas/src/libpas/bmalloc_heap.c:
  • libpas/src/libpas/bmalloc_heap_config.c:

(bmalloc_heap_config_activate):

  • libpas/src/libpas/bmalloc_heap_inlines.h:
  • libpas/src/libpas/jit_heap.c:
  • libpas/src/libpas/jit_heap_config.c:

(jit_page_header_for_boundary_remote):
(jit_prepare_to_enumerate):

  • libpas/src/libpas/jit_heap_config.h:
  • libpas/src/libpas/pas_basic_heap_config_enumerator_data.c:

(pas_basic_heap_config_enumerator_data_add_page_header_table):

  • libpas/src/libpas/pas_bitfit_page.c:

(pas_bitfit_page_deallocation_did_fail):

  • libpas/src/libpas/pas_bitfit_page_config_kind.c:
  • libpas/src/libpas/pas_bitfit_page_inlines.h:

(pas_bitfit_page_finish_allocation):
(pas_bitfit_page_allocate):
(pas_bitfit_page_deallocate_with_page_impl):

  • libpas/src/libpas/pas_cartesian_tree.h:

(pas_cartesian_tree_construct):

  • libpas/src/libpas/pas_compact_ptr.h:
  • libpas/src/libpas/pas_debug_spectrum.c:

(pas_debug_spectrum_dump):

  • libpas/src/libpas/pas_dyld_state.c:

(pas_dyld_is_libsystem_initialized):

  • libpas/src/libpas/pas_enumerator.c:

(pas_enumerator_record_page_payload_and_meta):

  • libpas/src/libpas/pas_epoch.c:

(pas_get_epoch):

  • libpas/src/libpas/pas_fast_large_free_heap.c:

(get_x_key_callback):
(insert_node):
(dump_heap):
(fast_write_cursor):
(fast_merge):

  • libpas/src/libpas/pas_fast_megapage_cache.c:

(table_set_by_index):

  • libpas/src/libpas/pas_fast_megapage_table.c:

(pas_fast_megapage_table_set_by_index):

  • libpas/src/libpas/pas_fast_megapage_table.h:

(pas_fast_megapage_table::pas_fast_megapage_table):

  • libpas/src/libpas/pas_generic_large_free_heap.h:

(pas_generic_large_free_heap_try_allocate):

  • libpas/src/libpas/pas_heap_config.h:
  • libpas/src/libpas/pas_heap_config_inlines.h:
  • libpas/src/libpas/pas_heap_config_kind.c:
  • libpas/src/libpas/pas_heap_config_kind.def:
  • libpas/src/libpas/pas_heap_config_kind.h:

(pas_heap_config_kind_get_config):
(pas_heap_config_kind_is_active):

  • libpas/src/libpas/pas_heap_config_utils.h:
  • libpas/src/libpas/pas_internal_config.h:
  • libpas/src/libpas/pas_intrinsic_heap_support.h:

(pas_intrinsic_heap_support::pas_intrinsic_heap_support):

  • libpas/src/libpas/pas_large_expendable_memory.h:
  • libpas/src/libpas/pas_large_free_inlines.h:

(pas_large_free_create_merged):

  • libpas/src/libpas/pas_large_sharing_pool.c:

(validate_min_heap):
(create_node):
(try_splat_impl):
(pas_large_sharing_pool_decommit_least_recently_used):
(pas_large_sharing_pool_validate):
(pas_large_sharing_pool_compute_summary):

  • libpas/src/libpas/pas_local_allocator_inlines.h:

(pas_local_allocator_scan_bits_to_set_up_free_bits):
(pas_local_allocator_try_allocate_with_free_bits):

  • libpas/src/libpas/pas_lock.h:

(pas_lock_unlock):

  • libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.c:

(pas_lock_free_read_ptr_ptr_hashtable_set):

  • libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.h:

(pas_lock_free_read_ptr_ptr_hashtable_find):

  • libpas/src/libpas/pas_min_heap.h:
  • libpas/src/libpas/pas_monotonic_time.c:

(pas_get_current_monotonic_time_nanoseconds):

  • libpas/src/libpas/pas_page_base_config_utils_inlines.h:
  • libpas/src/libpas/pas_page_malloc.c:

(pas_page_malloc_commit):
(decommit_impl):

  • libpas/src/libpas/pas_page_sharing_participant.c:

(pas_page_sharing_participant_get_parent_pool):

  • libpas/src/libpas/pas_page_sharing_pool.c:

(verify_participants):
(dump_min_heap):
(get_current_participant):
(pas_page_sharing_pool_take_least_recently_used):
(pas_physical_page_sharing_pool_scavenge):

  • libpas/src/libpas/pas_platform.h: Added.
  • libpas/src/libpas/pas_root.c:
  • libpas/src/libpas/pas_root.h:
  • libpas/src/libpas/pas_scavenger.c:

(scavenger_thread_main):

  • libpas/src/libpas/pas_scavenger.h:
  • libpas/src/libpas/pas_segregated_directory.c:

(pas_segregated_directory_get_use_epoch):

  • libpas/src/libpas/pas_segregated_directory.h:
  • libpas/src/libpas/pas_segregated_exclusive_view_inlines.h:

(pas_segregated_exclusive_view_did_start_allocating):

  • libpas/src/libpas/pas_segregated_page.c:

(pas_segregated_page_construct):
(pas_segregated_page_take_empty_granules):

  • libpas/src/libpas/pas_segregated_page.h:

(pas_segregated_page_offset_from_page_boundary_to_first_object_for_hugging_mode):
(pas_segregated_page_offset_from_page_boundary_to_end_of_last_object_for_hugging_mode):

  • libpas/src/libpas/pas_segregated_page_config_kind.c:
  • libpas/src/libpas/pas_segregated_page_config_kind.h:
  • libpas/src/libpas/pas_segregated_page_inlines.h:

(pas_segregated_page_deallocate_with_page):

  • libpas/src/libpas/pas_segregated_partial_view.c:

(pas_segregated_partial_view_set_is_in_use_for_allocation):

  • libpas/src/libpas/pas_segregated_shared_handle.c:

(pas_segregated_shared_handle_create):

  • libpas/src/libpas/pas_segregated_shared_page_directory.c:

(take_last_empty_consider_view):

  • libpas/src/libpas/pas_segregated_shared_view.c:

(compute_summary):

  • libpas/src/libpas/pas_segregated_size_directory.c:

(pas_segregated_size_directory_select_allocator_slow):
(take_last_empty_should_consider_view_parallel):
(take_last_empty_consider_view):

  • libpas/src/libpas/pas_segregated_size_directory.h:
  • libpas/src/libpas/pas_segregated_view_allocator_inlines.h:

(pas_segregated_view_will_start_allocating):

  • libpas/src/libpas/pas_simple_large_free_heap.c:

(dump_free_list):
(append):
(merge):
(simple_write_cursor):

  • libpas/src/libpas/pas_status_reporter.c:

(report_segregated_directory_contents):
(dump_large_sharing_pool_node_callback):

  • libpas/src/libpas/pas_thread_local_cache.c:

(destructor):
(allocate_cache):
(dump_thread_diagnostics):
(pas_thread_local_cache_create):
(pas_thread_local_cache_get_local_allocator_slow):
(stop_local_allocators_if_necessary_set_bit_source):
(stop_local_allocators_if_necessary_set_bit_callback):
(pas_thread_local_cache_for_all):

  • libpas/src/libpas/pas_try_allocate_intrinsic.h:
  • libpas/src/libpas/pas_utility_heap_config.c:
  • libpas/src/libpas/pas_utility_heap_config.h:
  • libpas/src/libpas/pas_utils.h:

(pas_compare_and_swap_uintptr_weak):
(pas_compare_and_swap_uintptr_strong):
(pas_compare_and_swap_bool_weak):
(pas_compare_and_swap_bool_strong):
(pas_compare_and_swap_uint8_weak):
(pas_compare_and_swap_uint16_weak):
(pas_compare_and_swap_uint32_weak):
(pas_compare_and_swap_uint32_strong):
(pas_compare_and_swap_uint64_weak):
(pas_compare_and_swap_uint64_strong):
(pas_compare_and_swap_ptr_weak):
(pas_compare_and_swap_ptr_strong):
(pas_pair_create):
(pas_compare_and_swap_pair_weak):
(pas_compare_and_swap_pair_strong):
(pas_atomic_load_pair):
(pas_atomic_store_pair):

  • libpas/src/libpas/pas_utils_prefix.h:
10:12 PM Changeset in webkit [285852] by ntim@apple.com
  • 29 edits
    1 copy
    24 moves
    6 adds
    6 deletes in trunk/LayoutTests

Re-import css/css-text-decor WPT
https://bugs.webkit.org/show_bug.cgi?id=233154

Reviewed by Cameron McCormack.

Since mismatches are now properly renamed to -expected-mismatch.html on import since bug 207175,
re-import this directory to reduce numbers of false negatives/positives.

Some tests have also been added/updated/removed since.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text-decor/text-decoration-propagation-display-contents-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-propagation-display-contents.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-001-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-004-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-004-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-005-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-005-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-subelements-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-subelements-001-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-thickness-001-expected.html.
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-single-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-thickness-single-expected.html.
  • web-platform-tests/css/css-text-decor/text-emphasis-color-001-expected.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-color-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-002-expected.xht: Removed.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-002-expected.xht: Removed.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-002-expected.xht: Removed.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-002-expected.xht: Removed.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-over-left-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-001-expected.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-over-left-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-001.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-over-left-002-expected.xht: Added.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-over-left-002.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-002.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-over-right-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-001-expected.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-over-right-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-001.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-over-right-002-expected.xht: Added.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-over-right-002.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-002.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-under-left-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-001-expected.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-under-left-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-001.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-under-left-002-expected.xht: Added.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-under-left-002.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-002.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-under-right-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-001-expected.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-under-right-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-001.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-under-right-002-expected.xht: Added.
  • web-platform-tests/css/css-text-decor/text-emphasis-position-under-right-002.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-002.xht.
  • web-platform-tests/css/css-text-decor/text-emphasis-style-002-expected.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-002.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-006-expected.html: Removed.
  • web-platform-tests/css/css-text-decor/text-emphasis-style-006.html: Removed.
  • web-platform-tests/css/css-text-decor/text-emphasis-style-007-expected.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-007.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-008-expected.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-008.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-010-expected.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-010.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-012-expected.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-012.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-016-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-style-002-expected.html.
  • web-platform-tests/css/css-text-decor/text-emphasis-style-016.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-021-expected.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-021.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-filled-001-expected.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-filled-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-none-001-expected.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-none-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-open-001-expected.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-open-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-shape-001-expected.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-shape-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-string-001-expected.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-style-string-001.xht:
  • web-platform-tests/css/css-text-decor/text-underline-offset-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-underline-offset-001-expected.html.
  • web-platform-tests/css/css-text-decor/text-underline-offset-negative-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-underline-offset-negative-expected.html.
  • web-platform-tests/css/css-text-decor/w3c-import.log:

LayoutTests:

10:01 PM Changeset in webkit [285851] by Patrick Angle
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: Autocomplete should support mid-line completions
https://bugs.webkit.org/show_bug.cgi?id=227411

Reviewed by Devin Rousso.

Autocompletion for CSS property values was lacking in the ability to perform mid-line completions, including
within functions, and a lack of support for multi-line CSS property values. This resolves those pain points by
making SpreadsheetTextField multi-line aware and allowing mid-line autocompletion.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider):
(WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype.valueWithoutSuggestion):
Because suggestions can occur anywhere within the value, we need to iterate through each of the nodes and
collect the text of any of them that are not the completion suggestion.

(WI.SpreadsheetTextField.prototype.set suggestionHint):
When removing the suggestion hint element, we should recombine the text nodes we may have split upon insertion
to prevent the text content from becoming endlessly fragmented into multiple text nodes unnecessarily.

(WI.SpreadsheetTextField.prototype.startEditing):
Reset the last known caret position when editing starts so that we don't mistake keys that are already down as
having moved the cursor to its initial position.

(WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion):
We should only attempt to reattach the suggestion hint element if we have a suggestion hint to show, otherwise
we could end up with a phantom empty suggestion hint that isn't properly placed later.

(WI.SpreadsheetTextField.prototype.completionSuggestionsClickedCompletion):
Updated to use existing completion committing path to reduce duplicated logic.

(WI.SpreadsheetTextField.prototype._handleMouseDown):
When the user clicks inside the text field while suggestions are visible treat that as intent to stop
autocompletion similar to the escape key, since the new cursor location could be anywhere in the text field.
This behavior also matches other code editors like Xcode, where clicking outside a completion popup will dismiss
the completions list.

(WI.SpreadsheetTextField.prototype._handleKeyDown):
Keep track of where the caret was as well as if the the key event was handled by the suggestion view at the time
a key is pressed so that we can later compare the position to that of when the key is released to determine if
completions should be discarded.

(WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
We can no longer assume that the current selection's offset will match the value's length, as the offset could
be on any line, or the suggestion could be in middle of a line. Because a suggestionHint only contains text when
we are in middle of autocompletion, it alone is an indicator that pressing the right arrow key should commit the
completion. document.execCommand is deprecated, so instead we now use the existing completion committing path
to reduce duplicated logic here.

Note that the left arrow key is still explicitly handled for dismissing autocompletion, as the new mechanism for
dismissing autocompletion won't trigger unless the caret has moved, and the caret will not move if you press the
left arrow key at the start of the text field.

(WI.SpreadsheetTextField.prototype._handleKeyUp):
When a key is released, we should check to see if the caret has moved as a result of the keystroke that we have
not already explicitly handled. If it has moved and was not handled, we dismiss the autocompletion suggestions.

(WI.SpreadsheetTextField.prototype._handleInput):

(WI.SpreadsheetTextField.prototype._updateCompletions):
Provide the current caret position to the completion provided.

(WI.SpreadsheetTextField.prototype._showSuggestionsView):
In order to correctly align the completion list with the current text content, it must be offset from the caret
position excluding the current prefix.

(WI.SpreadsheetTextField.prototype._getCaretPosition):
Added to get the index of the caret in the complete text value, accounting for multi-line values and mid-line
suggestions.

(WI.SpreadsheetTextField.prototype._getCaretRect):

(WI.SpreadsheetTextField.prototype._rangeAtCaretPosition):
Find the range for a caret at the given position. This compliments _getCaretPosition, and allows us to count
back some number of characters and create a range of which we later get the client rectangle.

(WI.SpreadsheetTextField.prototype._applyCompletionHint):
Add optional support for updating the caret position to be at the end of the newly inserted text.

(WI.SpreadsheetTextField.prototype._combineEditorElementChildren):
Added to handle combining the fragmented text nodes (and possibly a suggestion hint element) back into a single
text node while maintaining the current cursor position or optionally moving the cursor to a new location (e.g.
the end of a completion).

(WI.SpreadsheetTextField.prototype._reAttachSuggestionHint):
Now that completions are not guaranteed to be at the end of the value, we may need to split the text node to
insert the suggestion hint node.

7:48 PM Changeset in webkit [285850] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Use operation path when PutByVal child1 is not speculated as a Cell
https://bugs.webkit.org/show_bug.cgi?id=233147
rdar://85344310

Reviewed by Mark Lam.

JSTests:

  • stress/put-by-val-slow-dfg.js: Added.

(foo):

Source/JavaScriptCore:

r285530 removed non CellUse / non KnownCellUse case incorrectly (when we do not have Cell edge,
then we should use the slow operation path). This patch recovers it.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutByVal):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):

7:20 PM Changeset in webkit [285849] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r285812.
https://bugs.webkit.org/show_bug.cgi?id=233162

Introduced test failures

Reverted changeset:

"[macOS][GPUP] Add telemetry for syscalls"
https://bugs.webkit.org/show_bug.cgi?id=232888
https://commits.webkit.org/r285812

7:13 PM Changeset in webkit [285848] by Russell Epstein
  • 1 copy in tags/Safari-612.3.6.0.2

Tag Safari-612.3.6.0.2.

6:44 PM Changeset in webkit [285847] by Russell Epstein
  • 1 copy in tags/Safari-612.3.6.1.2

Tag Safari-612.3.6.1.2.

6:11 PM Changeset in webkit [285846] by weinig@apple.com
  • 13 edits
    1 copy
    11 adds in trunk/Source

Add another <model> backend backed by SceneKit to prove out ModelPlayer infrastructure a bit more
https://bugs.webkit.org/show_bug.cgi?id=233112

Reviewed by Dean Jackson.

Source/WebCore:

Adds basic SceneKit based ModelPlayer implementation. Like the ARKit player, this one
also requires writing the USD file to a temporary file as SceneKit does not support
loading USD files from NSData, and therefore is not actually something that can be used
for production yet.

The player is backed by a SceneKitModel class, which is created via a SceneKitModelLoader.
Both SceneKitModel and SceneKitModelLoader are abstract so that different types of models
can be supported. Currently, there is only a USD loader implemented for parity with the
ARKit based implementation.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • Modules/model-element/scenekit: Added.
  • Modules/model-element/scenekit/SceneKitModel.h: Added.
  • Modules/model-element/scenekit/SceneKitModel.mm: Added.

Abstract base class for loader specific implementations.

  • Modules/model-element/scenekit/SceneKitModelLoader.h: Added.
  • Modules/model-element/scenekit/SceneKitModelLoader.mm: Added.

(WebCore::loadSceneKitModel):
Entry point where different loaders can be referenced for different
file types. As noted above, currenly only a USD loader is implementend.

  • Modules/model-element/scenekit/SceneKitModelLoaderClient.h: Added.
  • Modules/model-element/scenekit/SceneKitModelLoaderClient.mm: Added.

Interface to pass state back to whatever requested the load.

  • Modules/model-element/scenekit/SceneKitModelLoaderUSD.h: Added.
  • Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm: Added.

Loads USD file into a SCNScene which the client can attach to a
renderer (e.g. the SCNMetalLayer).

  • Modules/model-element/scenekit/SceneKitModelPlayer.h: Added.
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm: Added.

The SceneKitModelPlayer uses loadSceneKitModel() to load and build
a SCNScene asynchonously that it then attaches to its SCNMetalLayer.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/SceneKitSPI.h: Added.

Adds forward declaration of SCNMetalLayer SPI so SceneKit can be used
without an NSView/UIView.

Source/WebKit:

Add support for instantiating the new SceneKit backed ModelPlayer.

If both ARKit based ModelPlayer and SceneKit based ModelPlayer are enabled,
the ARKit one wins.

  • WebProcess/Model/WebModelPlayerProvider.cpp:

(WebKit::WebModelPlayerProvider::createModelPlayer):
Add support for creating a SceneKit based ModelPlayer and add checks
for whether the backend is enabled.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::useARKitForModel const):
(WebKit::WebPage::useSceneKitForModel const):
Add bits to store which <model> backends are enabled.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add some internal settings to enable/disable the ARKit and SceneKit based
<model> backends.

  • wtf/PlatformHave.h:

Add HAVE macro for SceneKit. Only enabled for macOS at the moment, but could
probably be enabled for iOS if it is useful.

5:42 PM Changeset in webkit [285845] by Russell Epstein
  • 4 edits in branches/safari-613.1.9-branch/Source

Cherry-pick r285828. rdar://problem/85341122

Unreviewed, fix the internal iOS 15 build

Source/WebCore/PAL:

In the internal iOS 15 SDK, <UIKit/NSTextList.h> does not define NSTextListMarkerFormat. Add a separate SDK
version check instead and only attempt to soft-link these constants if we're compiling against an SDK that we
know exports these symbols.

  • pal/spi/cocoa/NSAttributedStringSPI.h:

Source/WTF:

Add a new compile-time flag.

  • wtf/PlatformHave.h:

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

5:42 PM Changeset in webkit [285844] by Russell Epstein
  • 2 edits in branches/safari-613.1.9-branch/Source/WebCore/PAL

Cherry-pick r285811. rdar://problem/85341122

Declare NSTextListMarker* as type NSTextListMarkerFormat when soft-linking
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122

Reviewed by Tim Horton.

Followup to r285744. Avoid build errors due to defining these constants as a different type of symbol
(NSString * vs. NSTextListMarkerFormat). To address this, we directly import NSTextList.h if it's available in
the SDK; otherwise, fall back to defining NSTextListMarkerFormat. In both cases, we need to keep soft linking
each of these constants, since WebCore cannot explicitly link against UIKit.

  • pal/spi/cocoa/NSAttributedStringSPI.h:

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

5:20 PM Changeset in webkit [285843] by ntim@apple.com
  • 2 edits in trunk/LayoutTests

Remove redundant [ Pass ] from TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=233157

Reviewed by Cameron McCormack.

5:07 PM Changeset in webkit [285842] by Russell Epstein
  • 1 copy in tags/Safari-613.1.8.2

Tag Safari-613.1.8.2.

5:03 PM Changeset in webkit [285841] by commit-queue@webkit.org
  • 5 edits in trunk/Source

_AXSCopyPathForAccessibilityBundle is going to be deprecated.
https://bugs.webkit.org/show_bug.cgi?id=233081

Patch by Eric Liang <ericliang@apple.com> on 2021-11-15
Reviewed by Andres Gonzalez.

To support macOS Accessibility v2 runtime, on macOS there are two places where bundles can live. By doing so, _AXSCopyPathForAccessibilityBundle will going to be deprecated because it won’t always return the correct path you would expect.

Source/WebKit:

  • Platform/spi/Cocoa/AccessibilitySupportSPI.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::webProcessLoaderAccessibilityBundlePath):

Source/WTF:

  • wtf/PlatformHave.h:
4:25 PM Changeset in webkit [285840] by Russell Epstein
  • 5 edits in branches/safari-613.1.9-branch

Cherry-pick r285827. rdar://problem/85391118

Revert r285235
https://bugs.webkit.org/show_bug.cgi?id=233142

Unreviewed.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/parsing/border-radius-valid-expected.txt:

Source/WebCore:

Causes crash with simple repro

<div id=t style="border-radius: unset"></div>
<script>
t.style.borderRadius;
</script>

  • css/StyleProperties.cpp: (WebCore::StyleProperties::getPropertyValue const): (WebCore::StyleProperties::borderRadiusValue const): Deleted.
  • css/StyleProperties.h:

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

4:07 PM Changeset in webkit [285839] by Fujii Hironori
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Layers Tab: the position of composited layer with box-shadow is wrong
https://bugs.webkit.org/show_bug.cgi?id=233026

Reviewed by Devin Rousso.

If an element has box-shadow, Layers Tab showed the composited
layer positioned wrongly. It assumed the composited layer position
was same with its element position. This isn't true. If an element
has box-shadow, its composited layer includes the surrounding
box-shadow.

  • UserInterface/Models/Layer.js:

(WI.Layer):

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView.prototype._updateLayers):
(WI.Layers3DContentView.prototype._createLayerMesh):

2:44 PM Changeset in webkit [285838] by Takashi.Komori@sony.com
  • 6 edits in trunk/Source/WebCore

[Curl] Security information sometimes do not appear in inspector network tab
https://bugs.webkit.org/show_bug.cgi?id=232971

Reviewed by Fujii Hironori.

Get certificate information from SSL context when CurlSSLVerifier is empty.

No tests yet.

  • platform/network/curl/CertificateInfo.h:
  • platform/network/curl/CurlContext.cpp:

(WebCore:: const):
(WebCore::CurlHandle::addExtraNetworkLoadMetrics):
(WebCore::CurlHandle::certificateInfo const):

  • platform/network/curl/CurlContext.h:
  • platform/network/curl/OpenSSLHelper.cpp:

(OpenSSL::StackOfX509::StackOfX509):
(OpenSSL::StackOfX509::~StackOfX509):
(OpenSSL::pemDataFromCtx):
(OpenSSL::createCertificateInfo):

  • platform/network/curl/OpenSSLHelper.h:
2:41 PM Changeset in webkit [285837] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Add helper to add CSS property with implicit default
https://bugs.webkit.org/show_bug.cgi?id=233108

Patch by Kiet Ho <Kiet Ho> on 2021-11-15
Reviewed by Myles C. Maxfield.

Add a helper in CSSPropertyParser to add a property with implicit default. This helper
accepts a RefPtr<> value and a Ref<> default. If the value is a null pointer, the
default is added, and the implicit flag is set. Otherwise, the value is added. This is
useful for parsing shorthands, because the CSS spec requires that missing value be
set to its default value, and WebCore additionally requires the implicit flag to be set.
This helper handles both of them.

No functional changes; no tests needed.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::addPropertyWithImplicitDefault):
(WebCore::CSSPropertyParser::consumeTransformOrigin):
(WebCore::CSSPropertyParser::consumeFont):
(WebCore::CSSPropertyParser::consumeFontVariantShorthand):
(WebCore::CSSPropertyParser::consumeColumns):
(WebCore::CSSPropertyParser::consumeShorthandGreedily):
(WebCore::CSSPropertyParser::consumeBorderImage):

  • css/parser/CSSPropertyParser.h:
2:25 PM Changeset in webkit [285836] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[iOS] Adopt -[AVAudioSession setAuditTokensForProcessAssertion:]
https://bugs.webkit.org/show_bug.cgi?id=232909
<rdar://68184444>

Reviewed by Eric Carlson.

Re-declare -setAuditTokensForProcessAssertion in APPLE_INTERNAL_SDK section.

  • pal/spi/cocoa/AVFoundationSPI.h:
2:16 PM Changeset in webkit [285835] by Russell Epstein
  • 4 edits in branches/safari-612.3.6.1-branch/Source/WebCore

Apply patch. rdar://problem/83971417

2:16 PM Changeset in webkit [285834] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612.3.6.1-branch

Cherry-pick r285728. rdar://problem/85236241

[Web Animations] Accelerated animations with a single keyframe don't account for prior forward-filling animations
https://bugs.webkit.org/show_bug.cgi?id=233041
<rdar://problem/85236241>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/accelerated-animation-after-forward-filling-animation.html

When starting an accelerated animation, we would fill any implicit keyframes based on the unanimated style.
We now also apply all animations below this animation in the target's effect stack such that a previous
forward-filling animation is accounted for.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

Add a new test that runs a forward-filling animation for transform, waits for its completion,
then runs another transform animation with an implicit initial keyframe, ensuring that the
result of the first forward-filling animation is accounted for when computing the initial
keyframe.

This test would fail prior to this patch.

  • webanimations/accelerated-animation-after-forward-filling-animation-expected.html: Added.
  • webanimations/accelerated-animation-after-forward-filling-animation.html: Added.

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

2:16 PM Changeset in webkit [285833] by Russell Epstein
  • 8 edits in branches/safari-612.3.6.1-branch/Source

Versioning.

WebKit-7612.3.6.1.2

2:07 PM Changeset in webkit [285832] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612.3.6.0-branch

Cherry-pick r285728. rdar://problem/85236241

[Web Animations] Accelerated animations with a single keyframe don't account for prior forward-filling animations
https://bugs.webkit.org/show_bug.cgi?id=233041
<rdar://problem/85236241>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/accelerated-animation-after-forward-filling-animation.html

When starting an accelerated animation, we would fill any implicit keyframes based on the unanimated style.
We now also apply all animations below this animation in the target's effect stack such that a previous
forward-filling animation is accounted for.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

Add a new test that runs a forward-filling animation for transform, waits for its completion,
then runs another transform animation with an implicit initial keyframe, ensuring that the
result of the first forward-filling animation is accounted for when computing the initial
keyframe.

This test would fail prior to this patch.

  • webanimations/accelerated-animation-after-forward-filling-animation-expected.html: Added.
  • webanimations/accelerated-animation-after-forward-filling-animation.html: Added.

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

2:06 PM Changeset in webkit [285831] by mmaxfield@apple.com
  • 2 edits
    49 adds in trunk/Source/WebCore/PAL

[WebGPU] [Cocoa] Connect WebCore & PAL to WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=233106

Reviewed by Dean Jackson.

This adds an implementation of WebGPU's virtual interfaces on top of WebGPU.framework.
That framework's headers almost exactly match the WebGPU API, so the connections are
mostly mechanical. There's just a bunch of marshalling code to convert between
descriptor and structs from WebCore's interface to WebGPU.framework's
descriptors/structs.

This uses the same "convertToBacking" convention, where functions that convert from the
higher-level WebCore types to the lower-level WebGPU.framework types are named
"convertToBacking()". Unfortunately, the WebGPU API takes many of these structs by
non-const reference, and the structs are nested by non-const reference, which means I
can't just have simple 1-in-1-out converter functions for every struct, since the
inner structs have to be referenced by-reference and therefore have to be in-scope. This
means that the simple enum and flags types use convertToBacking(), but most of the
structs have to be converted at their use site. Luckily, almost all of these structs
only have a single use site, so there isn't much duplication.

For now, this implementation is Cocoa-only, because in order for these calls to
WebGPU.framework to be legal, WebCore has to link with an implementation of those
functions. The Cocoa ports are the only ones which actually have an implementation of
those functions, so those are the only ports which can actually compile this code. If
the other ports want to link with Dawn or WGPU, this code should be (mostly) usable
out-of-the-box for them. I say "mostly" because the header that's shared between Dawn,
WGPU, and WebGPU.framework isn't finalized yet. As such, this implementation relies on
functions from WebGPUExt.h, which is an additional header (that only exists in
WebGPU.framework) that adds the missing pieces.

  • PAL.xcodeproj/project.pbxproj:
  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp: Added.

(PAL::WebGPU::adapterName):
(PAL::WebGPU::supportedFeatures):
(PAL::WebGPU::supportedLimits):
(PAL::WebGPU::isFallbackAdapter):
(PAL::WebGPU::AdapterImpl::AdapterImpl):
(PAL::WebGPU::AdapterImpl::~AdapterImpl):
(PAL::WebGPU::requestDeviceCallback):
(PAL::WebGPU::AdapterImpl::requestDevice):
(PAL::WebGPU::AdapterImpl::requestDeviceCallback):

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.cpp: Added.

(PAL::WebGPU::BindGroupImpl::BindGroupImpl):
(PAL::WebGPU::BindGroupImpl::~BindGroupImpl):
(PAL::WebGPU::BindGroupImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.cpp: Added.

(PAL::WebGPU::BindGroupLayoutImpl::BindGroupLayoutImpl):
(PAL::WebGPU::BindGroupLayoutImpl::~BindGroupLayoutImpl):
(PAL::WebGPU::BindGroupLayoutImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp: Added.

(PAL::WebGPU::BufferImpl::BufferImpl):
(PAL::WebGPU::BufferImpl::~BufferImpl):
(PAL::WebGPU::mapCallback):
(PAL::WebGPU::BufferImpl::mapAsync):
(PAL::WebGPU::BufferImpl::mapCallback):
(PAL::WebGPU::BufferImpl::getMappedRange):
(PAL::WebGPU::BufferImpl::unmap):
(PAL::WebGPU::BufferImpl::destroy):
(PAL::WebGPU::BufferImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.cpp: Added.

(PAL::WebGPU::CommandBufferImpl::CommandBufferImpl):
(PAL::WebGPU::CommandBufferImpl::~CommandBufferImpl):
(PAL::WebGPU::CommandBufferImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.cpp: Added.

(PAL::WebGPU::CommandEncoderImpl::CommandEncoderImpl):
(PAL::WebGPU::CommandEncoderImpl::~CommandEncoderImpl):
(PAL::WebGPU::CommandEncoderImpl::beginRenderPass):
(PAL::WebGPU::CommandEncoderImpl::beginComputePass):
(PAL::WebGPU::CommandEncoderImpl::copyBufferToBuffer):
(PAL::WebGPU::CommandEncoderImpl::copyBufferToTexture):
(PAL::WebGPU::CommandEncoderImpl::copyTextureToBuffer):
(PAL::WebGPU::CommandEncoderImpl::copyTextureToTexture):
(PAL::WebGPU::CommandEncoderImpl::fillBuffer):
(PAL::WebGPU::CommandEncoderImpl::pushDebugGroup):
(PAL::WebGPU::CommandEncoderImpl::popDebugGroup):
(PAL::WebGPU::CommandEncoderImpl::insertDebugMarker):
(PAL::WebGPU::CommandEncoderImpl::writeTimestamp):
(PAL::WebGPU::CommandEncoderImpl::resolveQuerySet):
(PAL::WebGPU::CommandEncoderImpl::finish):
(PAL::WebGPU::CommandEncoderImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp: Added.

(PAL::WebGPU::ComputePassEncoderImpl::ComputePassEncoderImpl):
(PAL::WebGPU::ComputePassEncoderImpl::~ComputePassEncoderImpl):
(PAL::WebGPU::ComputePassEncoderImpl::setPipeline):
(PAL::WebGPU::ComputePassEncoderImpl::dispatch):
(PAL::WebGPU::ComputePassEncoderImpl::dispatchIndirect):
(PAL::WebGPU::ComputePassEncoderImpl::beginPipelineStatisticsQuery):
(PAL::WebGPU::ComputePassEncoderImpl::endPipelineStatisticsQuery):
(PAL::WebGPU::ComputePassEncoderImpl::endPass):
(PAL::WebGPU::ComputePassEncoderImpl::setBindGroup):
(PAL::WebGPU::ComputePassEncoderImpl::pushDebugGroup):
(PAL::WebGPU::ComputePassEncoderImpl::popDebugGroup):
(PAL::WebGPU::ComputePassEncoderImpl::insertDebugMarker):
(PAL::WebGPU::ComputePassEncoderImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.cpp: Added.

(PAL::WebGPU::ComputePipelineImpl::ComputePipelineImpl):
(PAL::WebGPU::ComputePipelineImpl::~ComputePipelineImpl):
(PAL::WebGPU::ComputePipelineImpl::getBindGroupLayout):
(PAL::WebGPU::ComputePipelineImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUConvertToBacking.cpp: Added.

(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::convertBufferUsageFlagsToBacking):
(PAL::WebGPU::convertColorWriteFlagsToBacking):
(PAL::WebGPU::convertMapModeFlagsToBacking):
(PAL::WebGPU::convertShaderStageFlagsToBacking):
(PAL::WebGPU::convertTextureUsageFlagsToBacking):

  • pal/graphics/WebGPU/Impl/WebGPUConvertToBacking.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp: Added.

(PAL::WebGPU::DeviceImpl::DeviceImpl):
(PAL::WebGPU::DeviceImpl::~DeviceImpl):
(PAL::WebGPU::DeviceImpl::destroy):
(PAL::WebGPU::DeviceImpl::createBuffer):
(PAL::WebGPU::DeviceImpl::createTexture):
(PAL::WebGPU::DeviceImpl::createSampler):
(PAL::WebGPU::DeviceImpl::importExternalTexture):
(PAL::WebGPU::DeviceImpl::createBindGroupLayout):
(PAL::WebGPU::DeviceImpl::createPipelineLayout):
(PAL::WebGPU::DeviceImpl::createBindGroup):
(PAL::WebGPU::DeviceImpl::createShaderModule):
(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::DeviceImpl::createComputePipeline):
(PAL::WebGPU::DeviceImpl::createRenderPipeline):
(PAL::WebGPU::createComputePipelineAsyncCallback):
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createComputePipelineAsyncCallback):
(PAL::WebGPU::createRenderPipelineAsyncCallback):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsyncCallback):
(PAL::WebGPU::DeviceImpl::createCommandEncoder):
(PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
(PAL::WebGPU::DeviceImpl::createQuerySet):
(PAL::WebGPU::DeviceImpl::pushErrorScope):
(PAL::WebGPU::popErrorScopeCallback):
(PAL::WebGPU::DeviceImpl::popErrorScope):
(PAL::WebGPU::DeviceImpl::popErrorScopeCallback):
(PAL::WebGPU::DeviceImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.cpp: Added.

(PAL::WebGPU::ExternalTextureImpl::ExternalTextureImpl):
(PAL::WebGPU::ExternalTextureImpl::~ExternalTextureImpl):
(PAL::WebGPU::ExternalTextureImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUImpl.cpp: Added.

(PAL::WebGPU::GPUImpl::GPUImpl):
(PAL::WebGPU::GPUImpl::~GPUImpl):
(PAL::WebGPU::requestAdapterCallback):
(PAL::WebGPU::GPUImpl::requestAdapter):
(PAL::WebGPU::GPUImpl::requestAdapterCallback):

  • pal/graphics/WebGPU/Impl/WebGPUImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.cpp: Added.

(PAL::WebGPU::PipelineLayoutImpl::PipelineLayoutImpl):
(PAL::WebGPU::PipelineLayoutImpl::~PipelineLayoutImpl):
(PAL::WebGPU::PipelineLayoutImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.cpp: Added.

(PAL::WebGPU::QuerySetImpl::QuerySetImpl):
(PAL::WebGPU::QuerySetImpl::~QuerySetImpl):
(PAL::WebGPU::QuerySetImpl::destroy):
(PAL::WebGPU::QuerySetImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp: Added.

(PAL::WebGPU::QueueImpl::QueueImpl):
(PAL::WebGPU::QueueImpl::~QueueImpl):
(PAL::WebGPU::QueueImpl::submit):
(PAL::WebGPU::onSubmittedWorkDoneCallback):
(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
(PAL::WebGPU::QueueImpl::onSubmittedWorkDoneCallback):
(PAL::WebGPU::QueueImpl::writeBuffer):
(PAL::WebGPU::QueueImpl::writeTexture):
(PAL::WebGPU::QueueImpl::copyExternalImageToTexture):
(PAL::WebGPU::QueueImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.cpp: Added.

(PAL::WebGPU::RenderBundleEncoderImpl::RenderBundleEncoderImpl):
(PAL::WebGPU::RenderBundleEncoderImpl::~RenderBundleEncoderImpl):
(PAL::WebGPU::RenderBundleEncoderImpl::setPipeline):
(PAL::WebGPU::RenderBundleEncoderImpl::setIndexBuffer):
(PAL::WebGPU::RenderBundleEncoderImpl::setVertexBuffer):
(PAL::WebGPU::RenderBundleEncoderImpl::draw):
(PAL::WebGPU::RenderBundleEncoderImpl::drawIndexed):
(PAL::WebGPU::RenderBundleEncoderImpl::drawIndirect):
(PAL::WebGPU::RenderBundleEncoderImpl::drawIndexedIndirect):
(PAL::WebGPU::RenderBundleEncoderImpl::setBindGroup):
(PAL::WebGPU::RenderBundleEncoderImpl::pushDebugGroup):
(PAL::WebGPU::RenderBundleEncoderImpl::popDebugGroup):
(PAL::WebGPU::RenderBundleEncoderImpl::insertDebugMarker):
(PAL::WebGPU::RenderBundleEncoderImpl::finish):
(PAL::WebGPU::RenderBundleEncoderImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.cpp: Added.

(PAL::WebGPU::RenderBundleImpl::RenderBundleImpl):
(PAL::WebGPU::RenderBundleImpl::~RenderBundleImpl):
(PAL::WebGPU::RenderBundleImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp: Added.

(PAL::WebGPU::RenderPassEncoderImpl::RenderPassEncoderImpl):
(PAL::WebGPU::RenderPassEncoderImpl::~RenderPassEncoderImpl):
(PAL::WebGPU::RenderPassEncoderImpl::setPipeline):
(PAL::WebGPU::RenderPassEncoderImpl::setIndexBuffer):
(PAL::WebGPU::RenderPassEncoderImpl::setVertexBuffer):
(PAL::WebGPU::RenderPassEncoderImpl::draw):
(PAL::WebGPU::RenderPassEncoderImpl::drawIndexed):
(PAL::WebGPU::RenderPassEncoderImpl::drawIndirect):
(PAL::WebGPU::RenderPassEncoderImpl::drawIndexedIndirect):
(PAL::WebGPU::RenderPassEncoderImpl::setBindGroup):
(PAL::WebGPU::RenderPassEncoderImpl::pushDebugGroup):
(PAL::WebGPU::RenderPassEncoderImpl::popDebugGroup):
(PAL::WebGPU::RenderPassEncoderImpl::insertDebugMarker):
(PAL::WebGPU::RenderPassEncoderImpl::setViewport):
(PAL::WebGPU::RenderPassEncoderImpl::setScissorRect):
(PAL::WebGPU::RenderPassEncoderImpl::setBlendConstant):
(PAL::WebGPU::RenderPassEncoderImpl::setStencilReference):
(PAL::WebGPU::RenderPassEncoderImpl::beginOcclusionQuery):
(PAL::WebGPU::RenderPassEncoderImpl::endOcclusionQuery):
(PAL::WebGPU::RenderPassEncoderImpl::beginPipelineStatisticsQuery):
(PAL::WebGPU::RenderPassEncoderImpl::endPipelineStatisticsQuery):
(PAL::WebGPU::RenderPassEncoderImpl::executeBundles):
(PAL::WebGPU::RenderPassEncoderImpl::endPass):
(PAL::WebGPU::RenderPassEncoderImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.cpp: Added.

(PAL::WebGPU::RenderPipelineImpl::RenderPipelineImpl):
(PAL::WebGPU::RenderPipelineImpl::~RenderPipelineImpl):
(PAL::WebGPU::RenderPipelineImpl::getBindGroupLayout):
(PAL::WebGPU::RenderPipelineImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.cpp: Added.

(PAL::WebGPU::SamplerImpl::SamplerImpl):
(PAL::WebGPU::SamplerImpl::~SamplerImpl):
(PAL::WebGPU::SamplerImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp: Added.

(PAL::WebGPU::ShaderModuleImpl::ShaderModuleImpl):
(PAL::WebGPU::ShaderModuleImpl::~ShaderModuleImpl):
(PAL::WebGPU::ShaderModuleImpl::compilationInfo):
(PAL::WebGPU::ShaderModuleImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp: Added.

(PAL::WebGPU::TextureImpl::TextureImpl):
(PAL::WebGPU::TextureImpl::~TextureImpl):
(PAL::WebGPU::TextureImpl::createView const):
(PAL::WebGPU::TextureImpl::destroy):
(PAL::WebGPU::TextureImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h: Added.
  • pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.cpp: Added.

(PAL::WebGPU::TextureViewImpl::TextureViewImpl):
(PAL::WebGPU::TextureViewImpl::~TextureViewImpl):
(PAL::WebGPU::TextureViewImpl::setLabelInternal):

  • pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h: Added.
2:02 PM Changeset in webkit [285830] by Russell Epstein
  • 8 edits in branches/safari-612.3.6.0-branch/Source

Versioning.

WebKit-7612.3.6.0.2

1:46 PM Changeset in webkit [285829] by Russell Epstein
  • 4 edits in branches/safari-613.1.8-branch/Source

Cherry-pick r285828. rdar://problem/85427036

Unreviewed, fix the internal iOS 15 build

Source/WebCore/PAL:

In the internal iOS 15 SDK, <UIKit/NSTextList.h> does not define NSTextListMarkerFormat. Add a separate SDK
version check instead and only attempt to soft-link these constants if we're compiling against an SDK that we
know exports these symbols.

  • pal/spi/cocoa/NSAttributedStringSPI.h:

Source/WTF:

Add a new compile-time flag.

  • wtf/PlatformHave.h:

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

1:40 PM Changeset in webkit [285828] by Wenson Hsieh
  • 4 edits in trunk/Source

Unreviewed, fix the internal iOS 15 build

Source/WebCore/PAL:

In the internal iOS 15 SDK, <UIKit/NSTextList.h> does not define NSTextListMarkerFormat. Add a separate SDK
version check instead and only attempt to soft-link these constants if we're compiling against an SDK that we
know exports these symbols.

  • pal/spi/cocoa/NSAttributedStringSPI.h:

Source/WTF:

Add a new compile-time flag.

  • wtf/PlatformHave.h:
1:18 PM Changeset in webkit [285827] by Antti Koivisto
  • 5 edits in trunk

Revert r285235
https://bugs.webkit.org/show_bug.cgi?id=233142

Unreviewed.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/parsing/border-radius-valid-expected.txt:

Source/WebCore:

Causes crash with simple repro

<div id=t style="border-radius: unset"></div>
<script>
t.style.borderRadius;
</script>

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::borderRadiusValue const): Deleted.

  • css/StyleProperties.h:
12:47 PM Changeset in webkit [285826] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/letter-spacing-negative-opacity.html
https://bugs.webkit.org/show_bug.cgi?id=233132

Reviewed by Antti Koivisto.

Special case the negative letter spacing content when computing the content logical width.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):

  1. Negative letter space value could produce negative content width
  2. Subsequent text content (e.g. "this text has whitepspace content") may go from positive to negative content width as parts of the content may produce positive width even with negative letter spacing.
12:39 PM Changeset in webkit [285825] by Russell Epstein
  • 8 edits in branches/safari-613.1.8-branch/Source

Versioning.

WebKit-7613.1.8.2

12:30 PM Changeset in webkit [285824] by Russell Epstein
  • 1 copy in tags/Safari-613.1.8.1

Tag Safari-613.1.8.1.

12:21 PM Changeset in webkit [285823] by Chris Dumez
  • 3 edits
    3 adds in trunk

Cross-Origin-Embedder-Policy: require-corp prevents loading of data URL images
https://bugs.webkit.org/show_bug.cgi?id=233131
<rdar://85236459>

Reviewed by Geoffrey Garen.

Source/WebCore:

When doing an initial data URL <img> load, we properly wouldn't perform a cross-origin resource policy check.
This is per the Fetch specification that says to use a scheme fetch [1] when the request URL is a data URL.
When the protocol is data, the scheme fetch algorithm would return a response without performing an HTTP
Fetch. The HTTP check [2] is the algorithm that actually performs a cross-origin resource policy check, at
step 7.

The issue with our implementation was that data URL <img> loads would perform a cross-origin resource policy
check in the case where the image is loaded from our memory cache, due to a check we had in
CachedResourceLoader::requestResource(). As a result, data URL <img> loads would fail when served from the
memory cache, when CORP is enforced. To address the issue and match the specification, we now disable this
CORP check when the request URL is a data URL.

[1] https://fetch.spec.whatwg.org/#scheme-fetch
[2] https://fetch.spec.whatwg.org/#concept-http-fetch

Test: http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

LayoutTests:

Add layout test coverage. This test is based on a reduce test case from Cameron McCormack.

  • http/wpt/html/cross-origin-embedder-policy/require-corp-data-url-expected.txt: Added.
  • http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html: Added.
  • http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html.headers: Added.
12:18 PM Changeset in webkit [285822] by commit-queue@webkit.org
  • 26 edits
    4 adds in trunk

Implement parsing and animation support for offset-rotate
https://bugs.webkit.org/show_bug.cgi?id=232752

Patch by Kiet Ho <Kiet Ho> on 2021-11-15
Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

Rebaselined tests that now should pass.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • web-platform-tests/css/motion/animation/offset-rotate-composition-expected.txt:
  • web-platform-tests/css/motion/animation/offset-rotate-interpolation-expected.txt:
  • web-platform-tests/css/motion/inheritance-expected.txt:
  • web-platform-tests/css/motion/offset-supports-calc-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-rotate-computed-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-rotate-parsing-valid-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-shorthand-expected.txt:

Source/WebCore:

Implement parsing and animation support for offset-rotate as specified in the CSS
motion path specification. 'auto' and 'reverse' modifiers are supported.

Tests: imported/w3c/web-platform-tests/css/motion/inheritance.html

imported/w3c/web-platform-tests/css/motion/offset-supports-calc.html
imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-composition.html
imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-rotate-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-rotate-parsing-invalid.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-rotate-parsing-valid.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): Added blendFunc override for blending OffsetRotation.
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
Added animation support for offset-rotate.

  • css/CSSComputedStyleDeclaration.cpp: Added computed style support for offset-rotate.

(WebCore::valueForOffsetRotate):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSOffsetRotateValue.cpp: Added.

(WebCore::CSSOffsetRotateValue::customCSSText const):
(WebCore::CSSOffsetRotateValue::equals const):

  • css/CSSOffsetRotateValue.h: Added.
  • css/CSSProperties.json: Added entry for offset-rotate.
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isOffsetRotateValue const):

  • css/parser/CSSPropertyParser.cpp: Added parsing support for offset-rotate.

(WebCore::consumeOffsetRotate):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/OffsetRotation.cpp: Added.

(WebCore::OffsetRotation::OffsetRotation):
(WebCore::OffsetRotation::operator== const):
(WebCore::operator<<):

  • rendering/style/OffsetRotation.h: Added.

(WebCore::OffsetRotation::hasAuto const):
(WebCore::OffsetRotation::angle const):
(WebCore::OffsetRotation::operator!= const):

  • rendering/style/RenderStyle.h: Added support for offset-rotate.

(WebCore::RenderStyle::offsetRotate const):
(WebCore::RenderStyle::setOffsetRotate):
(WebCore::RenderStyle::initialOffsetRotate):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h: Added storage space for offset-path.
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertOffsetRotate):

LayoutTests:

Rebaselined test to account for new CSS property.

  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
12:15 PM Changeset in webkit [285821] by Russell Epstein
  • 2 edits in branches/safari-613.1.8-branch/Source/WebCore/PAL

Cherry-pick r285811. rdar://problem/85422144

Declare NSTextListMarker* as type NSTextListMarkerFormat when soft-linking
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122

Reviewed by Tim Horton.

Followup to r285744. Avoid build errors due to defining these constants as a different type of symbol
(NSString * vs. NSTextListMarkerFormat). To address this, we directly import NSTextList.h if it's available in
the SDK; otherwise, fall back to defining NSTextListMarkerFormat. In both cases, we need to keep soft linking
each of these constants, since WebCore cannot explicitly link against UIKit.

  • pal/spi/cocoa/NSAttributedStringSPI.h:

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

12:15 PM Changeset in webkit [285820] by Russell Epstein
  • 2 edits in branches/safari-613.1.8-branch/Source/WebCore/PAL

Cherry-pick r285744. rdar://problem/85422144

Stop statically declaring various UIFoundation constants in NSAttributedStringSPI.h
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122

Reviewed by Tim Horton.

Replace these static NSString definitions with soft-linked constants instead.

  • pal/spi/cocoa/NSAttributedStringSPI.h:

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

11:46 AM Changeset in webkit [285819] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk

Make valgrind work properly without extra environment variables
https://bugs.webkit.org/show_bug.cgi?id=230460

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-11-15
Reviewed by Carlos Garcia Campos.

Source/bmalloc:

Currently to run WebKit under valgrind, we have to manually disable bmalloc with Malloc=1,
or else the Gigacage breaks everything, because valgrind shadows the entire address space in
resident memory, and it just can't handle that much address space. Even with
GIGACAGE_ENABLED=0, diagnostics are worse because bmalloc does not use valgrind's
annotations.

Using valgrind.h, we can automatically disable bmalloc when running under valgrind to avoid
needing to use the environment variable.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Environment.cpp:

(bmalloc::isRunningOnValgrind):
(bmalloc::Environment::computeIsDebugHeapEnabled):

  • bmalloc/valgrind.h: Added.

(valgrind_do_client_request_expr):
(VALGRIND_PRINTF):
(VALGRIND_PRINTF_BACKTRACE):

Source/WebKit:

WebKitGTK and WPE WebKit users also have to set the WEBKIT_FORCE_SANDBOX=0 environment
variable, because the web process sandbox breaks valgrind for some reason I never attempted
to understand. If we have bmalloc expose valgrind.h as a public header, then we can check
for valgrind in higher layers and make this work automatically too.

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

Tools:

Exempt valgrind.h from the style checker.

  • Scripts/webkitpy/style/checker.py:
11:19 AM Changeset in webkit [285818] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Remove some dead code from IPC::Encoder / IPC::Decoder
https://bugs.webkit.org/show_bug.cgi?id=233134

Reviewed by Sam Weinig.

Remove some dead code from IPC::Encoder / IPC::Decoder and make sure both
types are non-copyable / non-movable.

  • Platform/IPC/Decoder.cpp:
  • Platform/IPC/Decoder.h:

(IPC::Decoder::decodeSingleObject): Deleted.
(): Deleted.

  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::Encoder):

  • Platform/IPC/Encoder.h:
11:15 AM Changeset in webkit [285817] by Angelos Oikonomopoulos
  • 9 edits in trunk

Skip tests newly-failing on mips
https://bugs.webkit.org/show_bug.cgi?id=233124

Unreviewed gardening.

After 3f59d2aa489ec843e055fc3104c275851d7fbd35, these tests started
failing with a SIGBUS on MIPS (on fuloong hardware, they pass on the
ci20 boards). Temporarily skip them on this arch until we can track
down the issue.

JSTests:

  • stress/call-varargs-double-new-array-buffer.js:
  • stress/callee-save-fpr.js:
  • stress/forward-varargs-double-new-array-buffer.js:
  • stress/new-array-with-spread-cow-double.js:
  • stress/new-array-with-spread-double-new-array-buffer.js:
  • stress/spread-escapes-but-new-array-buffer-does-not-double.js:

PerformanceTests:

  • ARES-6/Basic/basic-tests.yaml:
11:00 AM Changeset in webkit [285816] by Russell Epstein
  • 9 edits in branches/safari-613.1.9-branch/Source

Versioning.

WebKit-7613.1.9

10:58 AM Changeset in webkit [285815] by Russell Epstein
  • 1 copy in branches/safari-613.1.9-branch

New branch.

10:57 AM Changeset in webkit [285814] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7613.1.10

10:56 AM Changeset in webkit [285813] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

nullptr deref in CompositeEditCommand::insertNodeAt
https://bugs.webkit.org/show_bug.cgi?id=232837

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-11-15
Reviewed by Wenson Hsieh and Darin Adler.

Source/WebCore:

Check endingSelection is not orphan before inserting nodes at
the start position.

Test: fast/editing/editing-position-crash.html

  • editing/CreateLinkCommand.cpp:

(WebCore::CreateLinkCommand::doApply):

LayoutTests:

  • fast/editing/editing-position-crash-expected.txt: Added.
  • fast/editing/editing-position-crash.html: Added.
10:49 AM Changeset in webkit [285812] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS][GPUP] Add telemetry for syscalls
https://bugs.webkit.org/show_bug.cgi?id=232888
<rdar://problem/85207011>

Reviewed by Brent Fulgham.

Add more telemetry for syscalls in the GPU process' sandbox on macOS. Also add entitlement for the GPU
process to use message filtering.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Scripts/process-entitlements.sh:
10:36 AM Changeset in webkit [285811] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore/PAL

Declare NSTextListMarker* as type NSTextListMarkerFormat when soft-linking
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122

Reviewed by Tim Horton.

Followup to r285744. Avoid build errors due to defining these constants as a different type of symbol
(NSString * vs. NSTextListMarkerFormat). To address this, we directly import NSTextList.h if it's available in
the SDK; otherwise, fall back to defining NSTextListMarkerFormat. In both cases, we need to keep soft linking
each of these constants, since WebCore cannot explicitly link against UIKit.

  • pal/spi/cocoa/NSAttributedStringSPI.h:
10:36 AM Changeset in webkit [285810] by commit-queue@webkit.org
  • 4 edits in trunk

Null bytes aren't percent-encoded on urlencoded over POST
https://bugs.webkit.org/show_bug.cgi?id=220780

Patch by Andreu Botella <andreu@andreubotella.com> on 2021-11-15
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window-expected.txt:

Source/WebCore:

This change fixes a bug where strchr was being used to match a character against a set
character list, without checking whether the character was NUL. This resulted in NUL bytes
being passed through in the urlencoded enctype over POST, rather than being percent-escaped.

Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window.html

  • platform/network/FormDataBuilder.cpp:

(WebCore::FormDataBuilder::appendFormURLEncoded):

10:07 AM Changeset in webkit [285809] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r285774.
https://bugs.webkit.org/show_bug.cgi?id=233136

Introduced GPUP crash on some configurations

Reverted changeset:

"[macOS][GPUP] Add telemetry for syscalls"
https://bugs.webkit.org/show_bug.cgi?id=232888
https://commits.webkit.org/r285774

9:32 AM Changeset in webkit [285808] by commit-queue@webkit.org
  • 4 edits in trunk

Empty <input type=file> controls don't show up in the urlencoded and text/plain enctypes
https://bugs.webkit.org/show_bug.cgi?id=221549

Patch by Andreu Botella <andreu@andreubotella.com> on 2021-11-15
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-empty-file.window-expected.txt:

Source/WebCore:

In the HTML spec, and in Firefox and Chrome's implementations, an empty <input type="file">
control is represented in form submission as if it were an empty file with an empty
filename. WebKit, however, does not include a form entry corresponding to the file input at
all in the application/x-www-form-urlencoded and text/plain enctypes. This change fixes it.

Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-empty-file.window.html

  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):

7:51 AM Changeset in webkit [285807] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

[LFC][Integration] fast/text/international/bidi-innertext.html fails with BiDi enabled
https://bugs.webkit.org/show_bug.cgi?id=233125

Reviewed by Alan Bujtas.

TextIterator needs to know that RenderText contains bidi text.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::handleTextContent):

Use the InlineTextBox bit.

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::containsBidiText):

Add a helper.

  • layout/formattingContexts/inline/text/TextUtil.h:
  • layout/integration/InlineIteratorLogicalOrderTraversal.cpp:

(WebCore::InlineIterator::makeTextLogicalOrderCacheIfNeeded):

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/layouttree/LayoutInlineTextBox.cpp:

(WebCore::Layout::InlineTextBox::InlineTextBox):
(WebCore::Layout::m_containsBidiText):

Add a bit to the InlineTextBox.

(WebCore::Layout::m_canUseSimplifiedContentMeasuring): Deleted.

  • layout/layouttree/LayoutInlineTextBox.h:

(WebCore::Layout::InlineTextBox::containsBidiText const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createTextBox):

  • rendering/RenderText.cpp:

(WebCore::RenderText::RenderText):
(WebCore::RenderText::positionLineBox):

  • rendering/RenderText.h:

(WebCore::RenderText::containsBidiText const):
(WebCore::RenderText::setContainsBidiText):
(WebCore::RenderText::containsReversedText const): Deleted.

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

[LFC][IFC] Take text-indent into account when computing preferred width
https://bugs.webkit.org/show_bug.cgi?id=233115

Reviewed by Antti Koivisto.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::computedIntrinsicWidth):

  • layout/formattingContexts/inline/InlineLineBuilder.h:
6:46 AM Changeset in webkit [285805] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

AX: Un-skip accessibility/mac/search-predicate-for-adhoc-radio-groups.html for Mac WK1
https://bugs.webkit.org/show_bug.cgi?id=233116

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-15
Reviewed by Andres Gonzalez.

https://bugs.webkit.org/show_bug.cgi?id=233017 implemented
AccessibilityUIElement::domIdentifier for WK1, so we don't
need to skip accessibility/mac/search-predicate-for-adhoc-radio-groups.html anymore.

  • platform/mac-wk1/TestExpectations:

Un-skip because AccessibilityUIElement::domIdentifier is now
implemented.

6:06 AM Changeset in webkit [285804] by commit-queue@webkit.org
  • 2 edits in trunk

Add my GitHub username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=233122

Unreviewed.

Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2021-11-15

  • metadata/contributors.json:
5:08 AM Changeset in webkit [285803] by cathiechen
  • 16 edits
    2 copies
    89 adds in trunk/LayoutTests

[CSS contain] Update css-contain tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=233121

Reviewed by Rob Buis.

Update css/css-contain/ tests to commit 625a2df832.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/contain-body-bg-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-bg-001.html: Added.
  • web-platform-tests/css/css-contain/contain-body-bg-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-bg-002.html: Added.
  • web-platform-tests/css/css-contain/contain-body-bg-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-bg-003.html: Added.
  • web-platform-tests/css/css-contain/contain-body-bg-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-bg-004.html: Added.
  • web-platform-tests/css/css-contain/contain-body-dir-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-dir-001.html: Added.
  • web-platform-tests/css/css-contain/contain-body-dir-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-dir-002.html: Added.
  • web-platform-tests/css/css-contain/contain-body-dir-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-dir-003.html: Added.
  • web-platform-tests/css/css-contain/contain-body-dir-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-dir-004.html: Added.
  • web-platform-tests/css/css-contain/contain-body-overflow-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-overflow-001.html: Added.
  • web-platform-tests/css/css-contain/contain-body-overflow-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-overflow-002.html: Added.
  • web-platform-tests/css/css-contain/contain-body-overflow-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-overflow-003.html: Added.
  • web-platform-tests/css/css-contain/contain-body-overflow-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-overflow-004.html: Added.
  • web-platform-tests/css/css-contain/contain-body-t-o-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-t-o-001.html: Added.
  • web-platform-tests/css/css-contain/contain-body-t-o-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-t-o-002.html: Added.
  • web-platform-tests/css/css-contain/contain-body-t-o-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-t-o-003.html: Added.
  • web-platform-tests/css/css-contain/contain-body-t-o-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-t-o-004.html: Added.
  • web-platform-tests/css/css-contain/contain-body-w-m-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-w-m-001.html: Added.
  • web-platform-tests/css/css-contain/contain-body-w-m-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-w-m-002.html: Added.
  • web-platform-tests/css/css-contain/contain-body-w-m-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-w-m-003.html: Added.
  • web-platform-tests/css/css-contain/contain-body-w-m-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-body-w-m-004.html: Added.
  • web-platform-tests/css/css-contain/contain-content-011-expected.html:
  • web-platform-tests/css/css-contain/contain-content-011.html:
  • web-platform-tests/css/css-contain/contain-html-bg-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-bg-001.html: Added.
  • web-platform-tests/css/css-contain/contain-html-bg-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-bg-002.html: Added.
  • web-platform-tests/css/css-contain/contain-html-bg-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-bg-003.html: Added.
  • web-platform-tests/css/css-contain/contain-html-bg-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-bg-004.html: Added.
  • web-platform-tests/css/css-contain/contain-html-dir-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-dir-001.html: Added.
  • web-platform-tests/css/css-contain/contain-html-dir-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-dir-002.html: Added.
  • web-platform-tests/css/css-contain/contain-html-dir-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-dir-003.html: Added.
  • web-platform-tests/css/css-contain/contain-html-dir-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-dir-004.html: Added.
  • web-platform-tests/css/css-contain/contain-html-overflow-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-overflow-001.html: Added.
  • web-platform-tests/css/css-contain/contain-html-overflow-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-overflow-002.html: Added.
  • web-platform-tests/css/css-contain/contain-html-overflow-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-overflow-003.html: Added.
  • web-platform-tests/css/css-contain/contain-html-overflow-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-overflow-004.html: Added.
  • web-platform-tests/css/css-contain/contain-html-t-o-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-t-o-001.html: Added.
  • web-platform-tests/css/css-contain/contain-html-t-o-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-t-o-002.html: Added.
  • web-platform-tests/css/css-contain/contain-html-t-o-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-t-o-003.html: Added.
  • web-platform-tests/css/css-contain/contain-html-t-o-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-t-o-004.html: Added.
  • web-platform-tests/css/css-contain/contain-html-w-m-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-w-m-001.html: Added.
  • web-platform-tests/css/css-contain/contain-html-w-m-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-w-m-002.html: Added.
  • web-platform-tests/css/css-contain/contain-html-w-m-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-w-m-003.html: Added.
  • web-platform-tests/css/css-contain/contain-html-w-m-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-html-w-m-004.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-019-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-019.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-010.html:
  • web-platform-tests/css/css-contain/contain-paint-026-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-026.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-paint-010.html.
  • web-platform-tests/css/css-contain/contain-paint-change-opacity-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-change-opacity.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-005.html:
  • web-platform-tests/css/css-contain/contain-strict-011-expected.html:
  • web-platform-tests/css/css-contain/contain-strict-011.html:
  • web-platform-tests/css/css-contain/crashtests/contain-nested-crash-001.html: Added.
  • web-platform-tests/css/css-contain/crashtests/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/parsing/w3c-import.log.
  • web-platform-tests/css/css-contain/parsing/contain-computed-children-expected.txt: Added.
  • web-platform-tests/css/css-contain/parsing/contain-computed-children.html: Added.
  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-computed.html:
  • web-platform-tests/css/css-contain/parsing/contain-invalid-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-invalid.html:
  • web-platform-tests/css/css-contain/parsing/w3c-import.log:
  • web-platform-tests/css/css-contain/w3c-import.log:

LayoutTests:

4:57 AM Changeset in webkit [285802] by eocanha@igalia.com
  • 5 edits in trunk

[GTK] webaudio/silent-audio-interrupted-in-background.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229964

Reviewed by Carlos Garcia Campos.

Source/WebCore:

I can't reproduce the timeout locally anymore, but I'm getting a crash sometimes. This fix is for the crash.
Unregister dbus objects on MediaSessionGLib destruction to prevent the dbus connection to keep processing requests.

  • platform/audio/glib/MediaSessionGLib.cpp:

(WebCore::MediaSessionGLib::MediaSessionGLib()): Don't register a GBusNameLostCallback, as unregistration is now going to be handled in the destructor.
(WebCore::MediaSessionGLib::~MediaSessionGLib()): Unregister dbus objects.
(WebCore::MediaSessionGLib::nameLost()): Refactored into the destructor.

  • platform/audio/glib/MediaSessionGLib.h:

(WebCore::MediaSessionGLib::nameLost()): Deleted.

LayoutTests:

Removed failing test from TestExpectations.

  • platform/gtk/TestExpectations:
3:12 AM Changeset in webkit [285801] by Antti Koivisto
  • 4 edits
    2 adds in trunk

Stack overflow with revert-layer
https://bugs.webkit.org/show_bug.cgi?id=233119
rdar://85342210

Reviewed by Antoine Quint.

Source/WebCore:

We would decrement the cascade layer priority by one after finding 'revert-layer' value and then try
to apply again. If both the default layer and a cascade layer contained 'revert-layer' we would
enter a very deep recursion as the default layer priority is 64k and the cascade layer priorities
start from zero.

Test: fast/css/revert-layer-stack-overflow-2.html

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyRollbackCascadeProperty):

Fix by getting the new cascade layer priority from the actual property rather than the cascade
minimum value.

Factor into a function.

(WebCore::Style::Builder::applyProperty):

  • style/StyleBuilder.h:

LayoutTests:

  • fast/css/revert-layer-stack-overflow-2-expected.txt: Added.
  • fast/css/revert-layer-stack-overflow-2.html: Added.
12:42 AM Changeset in webkit [285800] by Patrick Griffis
  • 4 edits in trunk

CSP: Fix missing lineNumber and columnNumber in inline violation reports
https://bugs.webkit.org/show_bug.cgi?id=233102

Reviewed by Carlos Garcia Campos.

LayoutTests/imported/w3c:

Update expectations as passing.

  • web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-inline-expected.txt:

Source/WebCore:

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation const):

Note: See TracTimeline for information about the timeline view.