Timeline



Apr 11, 2022:

11:49 PM Changeset in webkit [292766] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Make fast/text/otsvg-canvas.html more robust
https://bugs.webkit.org/show_bug.cgi?id=239109
<rdar://problem/88838078>

Unreviewed test gardening.

Turns out loading fonts is asynchronous.

  • fast/text/otsvg-canvas.html:
  • platform/mac-wk1/TestExpectations:
11:34 PM Changeset in webkit [292765] by zan@falconsigh.net
  • 3 edits in trunk/Source/ThirdParty/ANGLE

[GTK][WPE] Build ANGLE with the EGL_NO_PLATFORM_SPECIFIC_TYPES define
https://bugs.webkit.org/show_bug.cgi?id=239039

Reviewed by Adrian Perez de Castro.

Specify the EGL_NO_PLATFORM_SPECIFIC_TYPES define when building ANGLE
subproject for the GTK and WPE ports. This should avoid searching for
platform-specific headers that might not be available at all during
build, e.g. the X11 headers which are used by default on UNIX platforms.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
11:30 PM Changeset in webkit [292764] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebKit

[WK2] Simplify IPC encoding, decoding of tuples
https://bugs.webkit.org/show_bug.cgi?id=239062

Reviewed by Darin Adler.

For encoding each element of a given tuple, an index sequence is used in
combination with a fold expression calling ArgumentCoder<T>::encode().

For decoding, std::tuple_cat() is used to concatenate a single-element
tuple containing the current element with the tuple of the remaining
decoded elements.

No real change in behavior, sequence of encoding and decoding remains
the same.

  • Platform/IPC/ArgumentCoders.h:

(IPC::TupleEncoder::encode):
(IPC::tupleFromTupleAndObject): Deleted.
(IPC::TupleDecoderImpl::decode): Deleted.
(IPC::TupleDecoderImpl<Type>::decode): Deleted.
(IPC::TupleDecoder::decode): Deleted.
(IPC::TupleDecoder<0>::decode): Deleted.

11:10 PM Changeset in webkit [292763] by Tyler Wilcock
  • 12 edits
    4 adds in trunk

AX: Update isolated tree in response to AXReadOnlyStatusChanged, AXRequiredStatusChanged, and AXPressedStateChanged notifications
https://bugs.webkit.org/show_bug.cgi?id=239047

Reviewed by Chris Fleizach.

Source/WebCore:

When these notifications come in for a live object, we need to update the
cached properties of the corresponding isolated object.

Tests: accessibility/aria-readonly-updates-after-dynamic-change.html,

accessibility/aria-required-updates-after-dynamic-change.html,
accessibility/mac/aria-pressed-button-attributes.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapper accessibilityIsRequired]):
Added both of these methods so the tests added in this patch can run on iOS.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Handle updates to AXPropertyName::IsRequired, AXPropertyName::CanSetValueAttribute,
and AXPropertyName::ReadOnlyValue.

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::isAttributeSettable):
(AccessibilityUIElement::isRequired const):
Added both of these methods so that the tests added with this patch can run on iOS.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isRequired const):
Added both of these methods so that the tests added with this patch can run on iOS.

LayoutTests:

  • accessibility/aria-readonly-updates-after-dynamic-change-expected.txt: Added.
  • accessibility/aria-readonly-updates-after-dynamic-change.html: Added.
  • accessibility/aria-required-updates-after-dynamic-change-expected.txt: Added.
  • accessibility/aria-required-updates-after-dynamic-change.html: Added.
  • accessibility/mac/aria-pressed-button-attributes-expected.txt:
  • accessibility/mac/aria-pressed-button-attributes.html:

Add testcases that dynamically change aria-pressed and expect the
right attributes.

  • platform/ios/TestExpectations: Enable new tests.
  • platform/win/TestExpectations: Skip new tests.
10:59 PM Changeset in webkit [292762] by zan@falconsigh.net
  • 2 edits in trunk

Unreviewed, removing one of my email addresses.

  • metadata/contributors.json:
10:47 PM Changeset in webkit [292761] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GLIB] Unreviewed, build fix for Debian Stable after r292251
https://bugs.webkit.org/show_bug.cgi?id=239102

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::initializeEGL): Convert char* to String.

9:57 PM Changeset in webkit [292760] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix the tvOS build (again)
https://bugs.webkit.org/show_bug.cgi?id=239106
<rdar://problem/91351306>

Unreviewed.

Turns out PLATFORM(APPLETV) and PLATFORM(TVOS) are different things.

  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):
(WebGPU::Texture::createView):

8:43 PM Changeset in webkit [292759] by Antti Koivisto
  • 22 edits
    2 adds in trunk

[CSS Container Queries] Update container shorthand order
https://bugs.webkit.org/show_bug.cgi?id=239065

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Update from WPT repo.

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-computed.html:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-selection.html:
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/canvas-as-container-crash.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/chrome-bug-1289718-000-crash.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/chrome-bug-1289718-001-crash.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/chrome-quotes-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/force-sibling-style-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/w3c-import.log:

Source/WebCore:

The format is now 'name / type' instead of 'type / name'.

https://drafts.csswg.org/css-contain-3/#container-shorthand

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/StyleProperties.cpp:

(WebCore::isNoneValue):
(WebCore::isValueID):
(WebCore::StyleProperties::getPropertyValue const):

Also make "foo / none" serialize as "foo".

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContainerName):
(WebCore::CSSPropertyParser::consumeContainerShorthand):

8:34 PM Changeset in webkit [292758] by msaboff@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

REGRESSION (r292411): libwebrtc header files aren't installed in system content path
https://bugs.webkit.org/show_bug.cgi?id=239100

Reviewed by Mark Lam.

Restored System Content Path processing for absl and webrtc header files.

  • Configurations/libabsl.xcconfig:
  • Configurations/libwebrtc.xcconfig:
8:00 PM Changeset in webkit [292757] by mmaxfield@apple.com
  • 8 edits in trunk/Source

[WebGPU] Use checked arithmetic
https://bugs.webkit.org/show_bug.cgi?id=239058

Reviewed by Kimmo Kinnunen.

We have a bunch of places where overflow can occur.

Luckily, we can just detect overflow inside the validation functions, and not have
to do any inside the code that creates platform types (NSUInteger, etc.). This is
because if the validation code succeeds, then we are guaranteed that the cast to
NSUIntegers will succeed. This is because ranges in a resource are checked against
the size of the resource, and the size of the resource has been checked against
platform maximums, which are guaranteed to be smaller than the largest NSUInteger.

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::validateGetMappedRange const):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::validateMapAsync const):
(WebGPU::Buffer::mapAsync):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::validateCopyBufferToBuffer):
(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToTexture):
(WebGPU::CommandEncoder::validateClearBuffer):
(WebGPU::CommandEncoder::clearBuffer):

  • WebGPU/Queue.mm:

(WebGPU::Queue::validateWriteBuffer const):
(WebGPU::Queue::writeTexture):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::resolveTextureViewDescriptorDefaults const):
(WebGPU::Texture::validateCreateView const):
(WebGPU::Texture::createView):
(WebGPU::Texture::validateTextureCopyRange):
(WebGPU::Texture::validateLinearTextureData):

6:58 PM Changeset in webkit [292756] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

REGRESSION: Web content process crashes when triggering Live Text in recoveryOS
https://bugs.webkit.org/show_bug.cgi?id=239096
rdar://91592943

Reviewed by Tim Horton.

Make encoding or decoding RetainPtr<VKCImageAnalysis> a no-op when the VisionKitCore framework is unavailable
on Cocoa platforms, rather than crashing (due to PAL::getVKCImageAnalysisClass() returning nil).

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<RetainPtr<VKCImageAnalysis>>::encode):
(IPC::ArgumentCoder<RetainPtr<VKCImageAnalysis>>::decode):

6:38 PM Changeset in webkit [292755] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Build before landing
https://bugs.webkit.org/show_bug.cgi?id=239068
<rdar://problem/91565146>

Reviewed by Ryan Haddad.

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

(MergeQueueFactory.init): Build WebKit before landing.

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

(TestExpectedBuildSteps):

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

6:34 PM Changeset in webkit [292754] by Patrick Angle
  • 13 edits in trunk

Web Inspector: preserve DOM.NodeId if a node is removed and re-added
https://bugs.webkit.org/show_bug.cgi?id=189687

Reviewed by Devin Rousso.

Source/WebCore:

Instead of unbinding and rebinding nodes upon removal/reinsertion to the DOM tree, we should only perform the
unbinding actions on a Node that is being destroyed.

This resolves an issue where console messages with DOM nodes would behave unexpectedly because the node for a
visible console message could have its children removed in DOMManager.prototype._unbind, even though the node
would still have its children when it is removed from the DOM tree (unless it is being destroyed, which is
handled by DOMManager.prototype.willDestroyDOMNode).

While not a cause of an issue here, it is worth noting (due to confusion it caused me while investigating) that
even after we stopped keeping RefPtr<Node> for nodes in r278785 the nodes themselves continued to be kept
alive as part of the RemoteObject mechanism because the inspector injected script holds on to nodes until the
RemoteObject is released.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::reset):
(WebCore::InspectorDOMAgent::bind):
(WebCore::InspectorDOMAgent::didCommitLoad):
(WebCore::InspectorDOMAgent::didInsertDOMNode):
(WebCore::InspectorDOMAgent::didRemoveDOMNode):
(WebCore::InspectorDOMAgent::pseudoElementDestroyed):
(WebCore::InspectorDOMAgent::unbind): Deleted.

  • We should no longer be unbinding and rebinding nodes on insertion/removal, since nodes should keep the same ID

for their lifetime, and we will clean up the binding upon the Node's destruction.

(WebCore::InspectorDOMAgent::willDestroyDOMNode):
(WebCore::InspectorDOMAgent::destroyedNodesTimerFired):

  • A Node in middle of being destroyed will no longer have a parent.
  • inspector/agents/InspectorDOMAgent.h:

Source/WebInspectorUI:

Instead of unbinding and rebinding nodes upon removal/reinsertion to the DOM tree, we should only perform the
unbinding actions on a Node that is being destroyed.

  • UserInterface/Controllers/DOMDebuggerManager.js:
  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype._pseudoElementAdded):

(WI.DOMManager.prototype.willDestroyDOMNode):
(WI.DOMManager.prototype._unbind):

  • To match the backend, we should only unbind nodes when they are destroyed, not removed.
  • UserInterface/Models/DOMNode.js:

(WI.DOMNode.prototype.newOrExistingFromPayload):

  • Reuse an existing orphaned DOMNode if it already exists. In the future, we want to stop sending entire node

payloads to the frontend in those situations.

(WI.DOMNode.prototype._insertChild):
(WI.DOMNode.prototype._setChildrenPayload):

LayoutTests:

Update test to reflect that DOM breakpoints are now able to be reattached to their original node upon insertion
following removal.

  • inspector/dom-debugger/dom-breakpoint-node-removed-ancestor.html:
  • inspector/dom-debugger/dom-breakpoint-node-removed-ancestor-expected.txt:
  • inspector/dom-debugger/dom-breakpoint-node-removed-direct-expected.txt:
  • inspector/dom-debugger/resources/dom-breakpoint-utilities.js:

(TestPage.registerInitializer.InspectorTest.DOMBreakpoint.createBreakpoint):

  • Add an event handler to log the setting of the domNode for breakpoints. In order to prevent spurious output

when removing breakpoints, instrument the removal of breakpoints to remove the testing event handler before the
node is changed.

6:32 PM Changeset in webkit [292753] by don.olmstead@sony.com
  • 4 edits in trunk/Source

Fix PlayStation build after r292696
https://bugs.webkit.org/show_bug.cgi?id=239098

Unreviewed build fix.

Source/WebDriver:

  • playstation/WebDriverServicePlayStation.cpp:

(WebDriver::WebDriverService::platformCapabilities):

Source/WTF:

  • wtf/playstation/LanguagePlayStation.cpp:

(WTF::platformUserPreferredLanguages):

6:30 PM Changeset in webkit [292752] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[IFC][Integration] LayoutIntegration::LineLayout should not expose InlineContent
https://bugs.webkit.org/show_bug.cgi?id=239059

Reviewed by Antti Koivisto.

Implement inkOverflowTop/inkOverflowBottom for inline iterator (LineBox) so that we can
keep InlineContent internal to LayoutIntegration::LineLayout.

  • layout/integration/InlineIteratorLineBox.h:

(WebCore::InlineIterator::LineBox::inkOverflowTop const):
(WebCore::InlineIterator::LineBox::inkOverflowBottom const):

  • layout/integration/InlineIteratorLineBoxLegacyPath.h:

(WebCore::InlineIterator::LineBoxIteratorLegacyPath::inkOverflowTop const):
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::inkOverflowBottom const):

  • layout/integration/InlineIteratorLineBoxModernPath.h:

(WebCore::InlineIterator::LineBoxIteratorModernPath::inkOverflowTop const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::inkOverflowBottom const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::hasVisualOverflow const):

  • layout/integration/LayoutIntegrationLineLayout.h:

(WebCore::LayoutIntegration::LineLayout::isPaginated const):
(WebCore::LayoutIntegration::LineLayout::inlineContent const): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

6:16 PM Changeset in webkit [292751] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Debug ] accessibility/ancestor-computation.html is a constant timeout https://bugs.webkit.org/show_bug.cgi?id=239099 Unreviewed test gardening. * platform/mac-wk2/TestExpectations:

6:15 PM Changeset in webkit [292750] by Chris Dumez
  • 2 edits in trunk/Tools

REGRESSION:(r292696) lldb_webkit_unittest.TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_null_string is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239087

Reviewed by Jonathan Bedard.

Revert change to aNullString made in r292696 as the the following test relies on this String being empty:
lldb_webkit_unittest.TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_null_string

  • lldb/lldbWebKitTester/main.cpp:

(testSummaryProviders):

5:43 PM Changeset in webkit [292749] by Alan Bujtas
  • 5 edits in trunk

[ iOS iPhone 12 ] fast/hidpi & fast/layers/hidpi tests are flaky text/image failing
https://bugs.webkit.org/show_bug.cgi?id=232384
<rdar://problem/84714121>

Reviewed by Wenson Hsieh.

Tools:

Rotation (initiated by UiController::simulateRotationLikeSafari) may confuse UIScreen and produce unexpected scale value.
This patch ensures that we set the scale value back to the default (2) in between test runs.
(Currently we only set this value in TestController::platformInitialize/dumpRenderTree.)

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentState):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

  • platform/ios/TestExpectations:
5:40 PM Changeset in webkit [292748] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebGPU

[WebGPU] WebGPU strings are UTF-8, not Latin-1
https://bugs.webkit.org/show_bug.cgi?id=239057

Reviewed by Kimmo Kinnunen.

Replace String::fromLatin1() with String::fromUTF8().

  • WebGPU/APIConversions.h:

(WebGPU::fromAPI):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):

  • WebGPU/ComputePipeline.mm:

(WebGPU::createConstantValues):
(WebGPU::Device::createComputePipeline):

  • WebGPU/ShaderModule.mm:

(WebGPU::earlyCompileShaderModule):
(WebGPU::Device::createShaderModule):

5:30 PM Changeset in webkit [292747] by mmaxfield@apple.com
  • 8 edits in trunk/Source/WebGPU

[WebGPU] Make sure asynchronous things are asynchronous
https://bugs.webkit.org/show_bug.cgi?id=239056

Reviewed by Kimmo Kinnunen.

This isn't strictly necessary, because these asynchronous callbacks get hooked up
to promises in the browser which only call their callbacks at microtask boundaries.
However, for native code that uses WebGPU.framework, it's probably better to make
sure the asynchronous callbacks are actually asynchronous.

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::mapAsync):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/Device.mm:

(WebGPU::Device::loseTheDevice):
(WebGPU::Device::popErrorScope):

  • WebGPU/Instance.mm:

(WebGPU::Instance::requestAdapter):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipelineAsync):

  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::getCompilationInfo):

5:23 PM Changeset in webkit [292746] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r290770): Styles: creating a new property scrolls the input to the top of the panel
https://bugs.webkit.org/show_bug.cgi?id=237747
<rdar://problem/90130669>

Reviewed by Patrick Angle.

Remove unnecessary scrollIntoViewIfNeeded call. I added the scrollIntoViewIfNeeded call in 2017 (r222959) because,
at the time, focusing on an input field didn't scroll it into the viewport. It was possible to tab into an element
outside of the viewport and WebKit wouldn't scroll it make it visible. This is no longer the case.

  • UserInterface/Views/SpreadsheetSelectorField.js:

(WI.SpreadsheetSelectorField.prototype.startEditing):
Call focus() to scroll to the edited element.

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField.prototype.startEditing):

5:19 PM Changeset in webkit [292745] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[WebGPU] Unspecified texture size values should be set to 1, not 0
https://bugs.webkit.org/show_bug.cgi?id=239052

Reviewed by Kimmo Kinnunen.

If content says "Please create a texture of size [32, 32]" then we need to pad that
to [32, 32, 1] rather than [32, 32, 0].

Test: http/tests/webgpu/webgpu/api/validation/createTexture.html

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

(PAL::WebGPU::ConvertToBackingContext::convertToBacking):

5:14 PM Changeset in webkit [292744] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Implement missing validity checks
https://bugs.webkit.org/show_bug.cgi?id=238722

Reviewed by Kimmo Kinnunen.

Now that WebGPU objects have a notion of validity, we can implement all the
FIXMEs for validity checks.

  • WebGPU/Buffer.mm:

(WebGPU::validateCreateBuffer):
(WebGPU::Buffer::validateMapAsync const):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::makeInvalid):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::validateCopyBufferToBuffer):
(WebGPU::validateImageCopyBuffer):
(WebGPU::CommandEncoder::validateClearBuffer):
(WebGPU::CommandEncoder::validateFinish const):
(WebGPU::CommandEncoder::finish):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::validateCopyBufferToBuffer): Deleted.
(WebGPU::validateClearBuffer): Deleted.

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::makeInvalid):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::popDebugGroup):

  • WebGPU/ObjectBase.h:

(WebGPU::ObjectBase::isValidToUseWith const):
(WebGPU::ObjectBase::device const):

  • WebGPU/Queue.h:

(WebGPU::Queue::device const):

  • WebGPU/Queue.mm:

(WebGPU::Queue::validateSubmit const):
(WebGPU::Queue::submit):
(WebGPU::Queue::validateWriteBuffer const):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::makeInvalid):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::popDebugGroup):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::makeInvalid):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::popDebugGroup):

  • WebGPU/Sampler.mm:

(WebGPU::validateCreateSampler):

  • WebGPU/Texture.mm:

(WebGPU::Device::validateCreateTexture):
(WebGPU::Device::createTexture):
(WebGPU::Texture::validateCreateView const):
(WebGPU::Texture::createView):
(WebGPU::Texture::validateImageCopyTexture):

5:10 PM Changeset in webkit [292743] by Kyle Piddington
  • 2 edits in trunk/Source/ThirdParty/ANGLE

This WebGL example crashes
https://bugs.webkit.org/show_bug.cgi?id=238953

Null-check subnodes while performing a deep copy for
loops, and branches. These nodes can be null in some cases

Reviewed by Dean Jackson.

  • src/compiler/translator/IntermNode.cpp:

(sh::TIntermBranch::TIntermBranch):
(sh::TIntermLoop::TIntermLoop):

5:07 PM Changeset in webkit [292742] by mmaxfield@apple.com
  • 6 edits
    1 copy
    1 add in trunk/Source/WebCore/PAL

[WebGPU] Implement correct ownership for WGPUQueues
https://bugs.webkit.org/show_bug.cgi?id=239050

Reviewed by Kimmo Kinnunen.

WGPUQueues and WGPUDevices have a somewhat interesting relationship: neither is
reference-counted, and the WGPUDevice owns its WGPUQueue. This means that, if client
code wants to extend the lifetime of a WGPUQueue, it has to do this by extending the
lifetime of its owning WGPUDevice. Both objects are Javascript objects, so there has to
be some mechanism for a queue to extend the lifetime of its owning device. And yet, a
device owns a queue, so a queue can't have a queue have a Ref<> to its owning device,
because that would be a circular depndency.

Here's the old ownership graph:

J A V A S C R I P T

------------------------------------------------

| |
| |
V |

PAL::WebGPU::DeviceImpl |

| \ |
| ----- |
| \ V
| -----> PAL::WebGPU::QueueImpl
| |
| |
V |

WGPUDevice |

\ |

------------- |

\ V

------------> WGPUQueue

You can see that there's a problem here: WGPUQueue has 2 owners, but it's not a
reference-counted object.

The solution is to add a new node into the ownership graph, like this:

J A V A S C R I P T

------------------------------------------------

| |
| |
V |

PAL::WebGPU::DeviceImpl |

\ \ |

\ ----- |

\ \ V

\ -----> PAL::WebGPU::QueueImpl

\ /

\ /

\ /

V V
PAL::WebGPU::DeviceHolder
/

/

/

/

V

WGPUDevice

\

-------------

\

------------> WGPUQueue

This way, both WGPUDevice and WGPUQueue have a single owner, there are no cycles,
and there is a path from PAL::WebGPU::QueueImpl to WGPUDevice.

  • PAL.xcodeproj/project.pbxproj:
  • pal/graphics/WebGPU/Impl/WebGPUDeviceHolderImpl.cpp: Added.

(PAL::WebGPU::DeviceHolderImpl::DeviceHolderImpl):
(PAL::WebGPU::DeviceHolderImpl::~DeviceHolderImpl):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceHolderImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h.
  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::DeviceImpl::DeviceImpl):
(PAL::WebGPU::DeviceImpl::destroy):
(PAL::WebGPU::DeviceImpl::createBuffer):
(PAL::WebGPU::DeviceImpl::createTexture):
(PAL::WebGPU::DeviceImpl::createSampler):
(PAL::WebGPU::DeviceImpl::createBindGroupLayout):
(PAL::WebGPU::DeviceImpl::createPipelineLayout):
(PAL::WebGPU::DeviceImpl::createBindGroup):
(PAL::WebGPU::DeviceImpl::createShaderModule):
(PAL::WebGPU::DeviceImpl::createComputePipeline):
(PAL::WebGPU::DeviceImpl::createRenderPipeline):
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::createCommandEncoder):
(PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
(PAL::WebGPU::DeviceImpl::createQuerySet):
(PAL::WebGPU::DeviceImpl::pushErrorScope):
(PAL::WebGPU::DeviceImpl::popErrorScope):
(PAL::WebGPU::DeviceImpl::setLabelInternal):
(PAL::WebGPU::DeviceImpl::~DeviceImpl): Deleted.

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

(PAL::WebGPU::QueueImpl::QueueImpl):
(PAL::WebGPU::QueueImpl::submit):
(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
(PAL::WebGPU::QueueImpl::writeBuffer):
(PAL::WebGPU::QueueImpl::writeTexture):
(PAL::WebGPU::QueueImpl::setLabelInternal):
(PAL::WebGPU::QueueImpl::~QueueImpl): Deleted.

  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
5:04 PM Changeset in webkit [292741] by mmaxfield@apple.com
  • 17 edits in trunk/Source

[WebGPU] Hook up device.queue to the IDL
https://bugs.webkit.org/show_bug.cgi?id=239043

Reviewed by Kimmo Kinnunen.

Source/WebCore:

It seems when I imported the WebGPU IDLs, I somehow skipped GPUDevice.queue.
I was probably unsure about the ownership model. Now that the ownership model
is straightened out, this can be implemented.

This is needed to run any of the CTS tests.

  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::queue const):

  • Modules/WebGPU/GPUDevice.h:

(WebCore::GPUDevice::m_queue):
(WebCore::GPUDevice::m_backing): Deleted.

  • Modules/WebGPU/GPUDevice.idl:

Source/WebCore/PAL:

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

(PAL::WebGPU::DeviceImpl::DeviceImpl):
(PAL::WebGPU::DeviceImpl::queue):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
  • pal/graphics/WebGPU/WebGPUDevice.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:

(WebKit::RemoteAdapter::requestDevice):

  • GPUProcess/graphics/WebGPU/RemoteAdapter.h:
  • GPUProcess/graphics/WebGPU/RemoteAdapter.messages.in:
  • GPUProcess/graphics/WebGPU/RemoteDevice.cpp:

(WebKit::RemoteDevice::RemoteDevice):
(WebKit::RemoteDevice::queue):

  • GPUProcess/graphics/WebGPU/RemoteDevice.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:

(WebKit::WebGPU::RemoteAdapterProxy::requestDevice):

  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:

(WebKit::WebGPU::RemoteDeviceProxy::RemoteDeviceProxy):
(WebKit::WebGPU::RemoteDeviceProxy::queue):

  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
4:48 PM Changeset in webkit [292740] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Debugs logs from VideoSinkCommon are missing
https://bugs.webkit.org/show_bug.cgi?id=239049

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

When this new module was added, the logging support was lost due to missing logging category.

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:

(webKitVideoSinkSetMediaPlayerPrivate):

4:45 PM Changeset in webkit [292739] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (249023-249029@main): [ Monterey ] http/wpt/cache-storage/cache-storage-networkprocess-crash.html is a flaky CRASH with ASSERTION FAILED: m_pageMap.isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=239095

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:45 PM Changeset in webkit [292738] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Use WebKit::blockedError instead of ResourceLoader::blockedError in WebLoaderStrategy::scheduleLoadFromNetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=239089
<rdar://91295875>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-11
Reviewed by Chris Dumez.

The latter dereferences the frame loader which can be null.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

4:39 PM Changeset in webkit [292737] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Crash under ShareableBitmap::makeCGImageCopy()
https://bugs.webkit.org/show_bug.cgi?id=239085
<rdar://91073153>

Reviewed by Wenson Hsieh.

ShareableBitmap::create() can return null, so check it before calling makeCGImageCopy()
on the result.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

4:31 PM Changeset in webkit [292736] by Russell Epstein
  • 1 copy in branches/safari-614.1.10-branch

New branch.

4:28 PM Changeset in webkit [292735] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Sort PAL.xcodeproj.
https://bugs.webkit.org/show_bug.cgi?id=239050

Reviewed by Kimmo Kinnunen.

  • PAL.xcodeproj/project.pbxproj:
4:21 PM Changeset in webkit [292734] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.11

4:20 PM Changeset in webkit [292733] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ Mac ] http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html is a flaky text failure https://bugs.webkit.org/show_bug.cgi?id=239091 Unreviewed test gardening. * platform/mac-wk1/TestExpectations: * platform/mac/TestExpectations:

4:05 PM Changeset in webkit [292732] by Nikos Mouchtaris
  • 10 edits in trunk

calc(): Propogate nan for min, max, clamp, and hypot
https://bugs.webkit.org/show_bug.cgi?id=238974

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/calc-catch-divide-by-0-expected.txt:
  • web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle-expected.txt:
  • web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt:
  • web-platform-tests/css/css-values/calc-infinity-nan-serialize-time-expected.txt:

Source/WebCore:

If min, max, clamp, and hypot have a NaN value we need to propagate the NaN. This has to
do with the "infectious" NaN behavior the spec mentions. This patch also removes some
unnecessary code in CSSCalcPrimitiveValueNode::invert() and has clamp() properly serialize.
May want to separate them and expand clamp() serialization testing so it would have caught
this issue.

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::CSSCalcOperationNode::combineChildren):
(WebCore::CSSCalcOperationNode::simplifyNode):
(WebCore::CSSCalcOperationNode::evaluateOperator):

  • css/calc/CSSCalcOperationNode.h:
  • css/calc/CSSCalcPrimitiveValueNode.cpp:

(WebCore::CSSCalcPrimitiveValueNode::invert):

3:56 PM Changeset in webkit [292731] by Sam Sneddon
  • 2 edits in trunk/Tools

webkitpy.w3c.test_exporter assumes all exceptions are HTTPError
https://bugs.webkit.org/show_bug.cgi?id=238737

Reviewed by Jonathan Bedard.

This currently isn't at all easy to test, as our existing mocks for much
of this don't make it easy to throw arbitrary exceptions from given
functions.

  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter.create_wpt_pull_request):

3:48 PM Changeset in webkit [292730] by Devin Rousso
  • 11 edits in trunk/Source/WebCore

[Modern Media Controls] remove unnecessary LayoutTraits methods
https://bugs.webkit.org/show_bug.cgi?id=239018
<rdar://problem/91324687>

Reviewed by Eric Carlson.

  • Modules/modern-media-controls/controls/layout-traits.js:

(LayoutTraits.prototype.knobStyleForScrubber): Deleted.
(LayoutTraits.prototype.playPauseButtonScaleFactor): Deleted.

  • Modules/modern-media-controls/controls/ios-layout-traits.js:

(IOSLayoutTraits.prototype.knobStyleForScrubber): Deleted.
(IOSLayoutTraits.prototype.playPauseButtonScaleFactor): Deleted.

  • Modules/modern-media-controls/controls/macos-layout-traits.js:

(MacOSLayoutTraits.prototype.knobStyleForScrubber): Deleted.
(MacOSLayoutTraits.prototype.playPauseButtonScaleFactor): Deleted.

  • Modules/modern-media-controls/controls/watchos-layout-traits.js:

(WatchOSLayoutTraits.prototype.knobStyleForScrubber): Deleted.
(WatchOSLayoutTraits.prototype.playPauseButtonScaleFactor): Deleted.

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:

(MacOSFullscreenMediaControls):

  • Modules/modern-media-controls/controls/macos-inline-media-controls.js:

(MacOSInlineMediaControls):

  • Modules/modern-media-controls/controls/play-pause-button.js:

(PlayPauseButton):

  • Modules/modern-media-controls/controls/time-control.js:

(TimeControl):
Remove these functions as they are much more controllable by having the MediaControls
subclass set the related property directly. Having them be on LayoutTraits also makes it
more difficult to handle situations where the state of the MediaControls influences the
value given to the property (e.g. whether to use the video or audio layout).

  • Modules/modern-media-controls/controls/buttons-container.js:

(ButtonsContainer):
Expose the default value of leftMargin, rightMargin, and buttonMargin so that if the
MediaControls wants to reset one of the above overrides, it doesn't need a magic number.

  • Modules/modern-media-controls/controls/slider.js:

(Slider.prototype.get knobStyle): Added.
(Slider.prototype.set knobStyle): Added.
Provide a way to change the knobStyle after construction in case the MediaControls state
changes.

3:14 PM Changeset in webkit [292729] by Matt Woodrow
  • 2 edits in trunk/Source/WebCore

Use unaccelerated rendering for ImageBitmapRenderingContext's placeholder image.
https://bugs.webkit.org/show_bug.cgi?id=238846

Reviewed by Simon Fraser.

This is a blank immutable image used a placeholder until a real ImageBitmap is provided, so there's
no need to allocate to allocate an accelerated IOSurface.

  • html/canvas/ImageBitmapRenderingContext.cpp:

(WebCore::ImageBitmapRenderingContext::isAccelerated const):
(WebCore::ImageBitmapRenderingContext::setOutputBitmap):

3:03 PM Changeset in webkit [292728] by mmaxfield@apple.com
  • 14 edits in trunk/Source/WebGPU

[WebGPU] Implement missing validity checks
https://bugs.webkit.org/show_bug.cgi?id=238722

Reviewed by Kimmo Kinnunen.

Now that WebGPU objects have a notion of validity, we can implement all the
FIXMEs for validity checks.

  • WebGPU/Buffer.mm:

(WebGPU::validateCreateBuffer):
(WebGPU::Buffer::validateMapAsync const):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::makeInvalid):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::validateCopyBufferToBuffer):
(WebGPU::validateImageCopyBuffer):
(WebGPU::CommandEncoder::validateClearBuffer):
(WebGPU::CommandEncoder::validateFinish const):
(WebGPU::CommandEncoder::finish):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::validateCopyBufferToBuffer): Deleted.
(WebGPU::validateClearBuffer): Deleted.

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::makeInvalid):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::popDebugGroup):

  • WebGPU/ObjectBase.h:

(WebGPU::ObjectBase::isValidToUseWith const):
(WebGPU::ObjectBase::device const):

  • WebGPU/Queue.h:

(WebGPU::Queue::device const):

  • WebGPU/Queue.mm:

(WebGPU::Queue::validateSubmit const):
(WebGPU::Queue::submit):
(WebGPU::Queue::validateWriteBuffer const):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::makeInvalid):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::popDebugGroup):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::makeInvalid):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::popDebugGroup):

  • WebGPU/Sampler.mm:

(WebGPU::validateCreateSampler):

  • WebGPU/Texture.mm:

(WebGPU::Device::validateCreateTexture):
(WebGPU::Device::createTexture):
(WebGPU::Texture::validateCreateView const):
(WebGPU::Texture::createView):
(WebGPU::Texture::validateImageCopyTexture):

2:59 PM Changeset in webkit [292727] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REBASLINE: [ Monterey wk2 ] 4 http/tests/inspector/paymentrequest/* tests are constant text failures https://bugs.webkit.org/show_bug.cgi?id=238908 Unreviewed test gardening. * platform/mac-wk2/TestExpectations: Fixed expectations due to wk2 expectation

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

[iOS] Ignore find interaction deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=239084

Unreviewed, build fix.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setFindInteractionEnabled:]):

2:42 PM Changeset in webkit [292725] by jer.noble@apple.com
  • 7 edits in trunk

REGRESSION(r292051-r292022): [ iOS ] media/video-object-fit.html is a constant image failure
https://bugs.webkit.org/show_bug.cgi?id=238634
<rdar://problem/91125776>

Reviewed by Eric Carlson.

Source/WebCore:

Depending on whether setVideoFullscreenGravity() or updateVideoLayerGravity() is called first,
the wrong video gravity will be set. Rather than have two places where video gravity is set,
just have setVideoFullscreenGravity() set an ivar, and then call updateVideoLayerGravity(),
which will set the correct gravity based on whether fullscreen is active or not.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):

Source/WebKit:

Use an std::<optional> bool rather than bool to cache values sent to WebContent, so that
when a new value is pushed in, it's sent to WebContent the first time regardless of the default
value.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

LayoutTests:

  • platform/ios-wk2/TestExpectations:
2:33 PM Changeset in webkit [292724] by Alan Coon
  • 9 edits in branches/safari-613.2.6.1-branch/Source

Versioning.

WebKit-7613.2.6.1.1

2:22 PM Changeset in webkit [292723] by Matteo Flores
  • 2 edits in trunk/LayoutTests

webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html crashes https://bugs.webkit.org/show_bug.cgi?id=237840 Unreviewed test gardening. * platform/mac/TestExpectations:

2:16 PM Changeset in webkit [292722] by youenn@apple.com
  • 17 edits
    1 copy
    6 adds in trunk

Expose more ServiceWorker interfaces to workers
https://bugs.webkit.org/show_bug.cgi?id=238992

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/notifications/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/push-api/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/service-workers/idlharness.https.any.sharedworker-expected.txt:
  • web-platform-tests/service-workers/idlharness.https.any.worker-expected.txt:

Source/WebCore:

Expose ServiceWorker, ServiceWorkerContainer and ServiceWorkerRegistration interfaces.
Update task posting to support workers and shared workers.

Tests: http/wpt/service-workers/serviceworker-in-dedicatedworker.https.html

http/wpt/service-workers/serviceworker-in-sharedworker.https.html

  • workers/Worker.cpp:
  • workers/Worker.h:
  • workers/service/SWClientConnection.cpp:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerContainer.idl:
  • workers/service/ServiceWorkerRegistration.idl:
  • workers/service/context/SWContextManager.cpp:
  • workers/service/context/SWContextManager.h:
  • workers/shared/context/SharedWorkerContextManager.cpp:
  • workers/shared/context/SharedWorkerContextManager.h:

LayoutTests:

  • http/wpt/service-workers/resources/serviceworker-in-sharedworker.js: Added.
  • http/wpt/service-workers/resources/serviceworker-in-worker.js: Added.
  • http/wpt/service-workers/serviceworker-in-dedicatedworker.https-expected.txt: Added.
  • http/wpt/service-workers/serviceworker-in-dedicatedworker.https.html: Added.
  • http/wpt/service-workers/serviceworker-in-sharedworker.https-expected.txt: Added.
  • http/wpt/service-workers/serviceworker-in-sharedworker.https.html: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/notifications/idlharness.https.any.worker-expected.txt:
1:59 PM Changeset in webkit [292721] by sihui_liu@apple.com
  • 4 edits in trunk

Fix size computation in WebCore::StorageMap
https://bugs.webkit.org/show_bug.cgi?id=239024
rdar://88249235

Reviewed by Chris Dumez.

Source/WebCore:

We use currentSize to track size for StorageMap. There are a few issues in current implementation that can make
currentSize incorrect and may lead to overflow:

  1. When computing size of key, StorageMap uses parameter key instead of stored key. The problem is that

two Strings can be evaluated to equal while their sizeInBytes() value is different, when one String is 8-bit and
the other is 16-bit. That means removeItem() may decrease currentSize by wrong number (e.g setItem() with an
8-bit key, converting the key to 16-bit, removeItem() with the key). To fix this, StorageMap now always uses
stored key for computation.

  1. When map.take(key) or map.get(key) returns null string, StorageMap takes it as the key does not exist and

will not correctly update currentSize, but user of WebCore::StorageMap may store null string as value. To fix
this, StorageMap now check if key exists with find() function.

  1. StorageMap only uses CheckedUint32 in setItem(), but removeItem() and importItem() may cause overflow in

currentSize as mentioned above, and the error will not be caught until setItem() is called. To fix this,
StorageMap now uses CheckedUint32 in all places that update currentSize.

New test: WKWebView.LocalStorageNoSizeOverflow

  • storage/StorageMap.cpp:

(WebCore::StorageMap::setItem):
(WebCore::StorageMap::removeItem):
(WebCore::StorageMap::importItems):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:

(TEST):

1:49 PM Changeset in webkit [292720] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REBASLINE: [ Monterey wk2 ] 4 http/tests/inspector/paymentrequest/* tests are constant text failures https://bugs.webkit.org/show_bug.cgi?id=238908 Unreviewed test gardening. * TestExpectations:

1:19 PM Changeset in webkit [292719] by Russell Epstein
  • 1 copy in branches/safari-613.2.6.3-branch

New branch.

1:19 PM Changeset in webkit [292718] by Russell Epstein
  • 1 copy in branches/safari-613.2.6.2-branch

New branch.

1:19 PM Changeset in webkit [292717] by Russell Epstein
  • 1 copy in branches/safari-613.2.6.1-branch

New branch.

1:19 PM Changeset in webkit [292716] by Russell Epstein
  • 1 copy in branches/safari-613.2.6.0-branch

New branch.

1:18 PM Changeset in webkit [292715] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

REGRESSION (r289785): [iOS] Unable to double-click to select a word in a received email
https://bugs.webkit.org/show_bug.cgi?id=239055
rdar://90736710

Reviewed by Tim Horton.

Following r289785, double-clicking text in Mail message viewer on iOS (or more generally, any web view in an app
that does not have the "UIApplicationSupportsIndirectInputEvents" application plist key set to YES) produces a
selection that is immediately removed. This is because after double clicking, the synthetic click gesture fires
and immediately clears the selection.

In Safari (an application that sets UIApplicationSupportsIndirectInputEvents), the non-pointer gesture
recognizers (e.g. synthetic taps) don't fire because the type of the UITouch is UITouchTypeIndirectPointer,
which allows us to return NO from -gestureRecognizer:shouldReceiveTouch: for anything that is not the mouse
gesture recognizer's current mouse touch.

For apps that lack this plist key, the touch type remains UITouchTypeDirect to avoid breaking compatibility,
even for events that are generated via a pointing device (i.e. trackpad). This means that we no longer route
these events solely to the mouse gesture recognizer. To fix this, use -_isPointerTouch instead of
-[UITouch type] here. Unlike the latter, the former isn't affected by the "supports indirect input" plist key.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]):

Also fix a similar bug here, where the check against UITouchTypeIndirectPointer instead of -_isPointerEvent
causes apps without the UIApplicationSupportsIndirectInputEvents key to lose the ability to listen for mousedown
and mouseup events when the user clicks via trackpad on iPad.

1:10 PM Changeset in webkit [292714] by ysuzuki@apple.com
  • 14 edits in trunk/Source

[JSC] Reduce use of unnecessary cryptographicallyRandom numbers
https://bugs.webkit.org/show_bug.cgi?id=239026

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch removes cryptographically random calls in some of super hot critical path.
MarkedBlock's use is very hot and it appears on Speedometer2 artrace. But this is just
a random shuffling of freelist, and WeakRandom is enough for that. This patch replaces
them with WeakRandom. It offers 0.3% improvement in Speedometer2.

  • assembler/AbstractMacroAssembler.cpp:

(JSC::AbstractMacroAssemblerBase::initializeRandom):
(WTF::printInternal):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssemblerBase::random):
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):
(JSC::AbstractMacroAssembler::random): Deleted.

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::Code):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::weakRandom): Deleted.

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::specializedSweep):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::heapRandom):

Source/WebCore:

We use createVersion4UUIDStringWeak since there is no need to use cryptographically random numbers for KeyframeEffect names.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):

Source/WTF:

We add createVersion4UUIDStringWeak, which can generate UUID with WeakRandom numbers.

  • wtf/UUID.cpp:

(WTF::convertRandomUInt128ToUUIDVersion4):
(WTF::generateCryptographicallyRandomUUIDVersion4):
(WTF::generateWeakRandomUUIDVersion4):
(WTF::UUID::UUID):
(WTF::createVersion4UUIDStringWeak):

  • wtf/UUID.h:
  • wtf/WeakRandom.h:
1:04 PM Changeset in webkit [292713] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, use std::forward instead of WTFMove since it becomes template typename Vector&&
https://bugs.webkit.org/show_bug.cgi?id=239025

  • bytecode/ObjectPropertyConditionSet.h:

(JSC::ObjectPropertyConditionSet::create):

12:02 PM Changeset in webkit [292712] by Wenson Hsieh
  • 5 edits in trunk

[Mail Compose] Preserve attachment identifiers when cloning attachment-backed images
https://bugs.webkit.org/show_bug.cgi?id=239040
rdar://91527065

Reviewed by Aditya Keerthi.

Source/WebCore:

Override HTMLImageElement's cloneElementWithoutAttributesAndChildren method so that it additionally clones the
attachment element underneath the original image element, if it exists. This ensures that an image element that
is copied from existing attachment-backed images using cloneNode will contain an attachment in its shadow
root that points to the same _WKAttachment in the embedding client.

Test: WKAttachmentTests.CloneImageWithAttachment

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::cloneElementWithoutAttributesAndChildren):

  • html/HTMLImageElement.h:

Tools:

Add an API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

9:47 AM Changeset in webkit [292711] by Russell Epstein
  • 9 edits in branches/safari-614.1.9-branch/Source

Versioning.

WebKit-7614.1.9.3

9:18 AM Changeset in webkit [292710] by J Pascoe
  • 4 edits in trunk/Source/WebKit

[WebAuthn] Ensure requestPin callback on main thread
https://bugs.webkit.org/show_bug.cgi?id=238962
rdar://problem/91446051

Reviewed by Brent Fulgham.

This callback gets called by a non-main thread when making calls via
ASA. This patch uses ensureOnMainThread to ensure the completion handler
is called on the main thread. It also upgrades the callback asserts to
RELEASE_ASSERTs to avoid this issue in the future.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::getAssertion):

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::requestPin const):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueRequestPinAfterGetKeyAgreement):

9:13 AM Changeset in webkit [292709] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.9.2

Tag WebKit-7614.1.9.2.

8:32 AM Changeset in webkit [292708] by Andres Gonzalez
  • 2 edits
    3 adds
    2 deletes in trunk/LayoutTests

Rewrite accessibility/table-modification-crash.html to test that the AX tree reflects the changes made to the table rows.
https://bugs.webkit.org/show_bug.cgi?id=239013
<rdar://problem/91498453>

Reviewed by Darin Adler.

Renamed and rewrote this test to actually test more than just that it
doesn't crash. Now we check that the AX tree reflects the changes of
adding and removing table rows.

  • accessibility/table-add-remove-row-expected.txt: Added.
  • accessibility/table-add-remove-row.html: Added.
  • accessibility/table-modification-crash-expected.txt: Removed.
  • accessibility/table-modification-crash.html: Removed.
  • platform/glib/accessibility/table-add-remove-row-expected.txt:
  • platform/win/TestExpectations:
6:43 AM Changeset in webkit [292707] by Andres Gonzalez
  • 3 edits in trunk/Tools

TestRunner’s calls to [WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:] need to be dispatch to the AX secondary thread.
https://bugs.webkit.org/show_bug.cgi?id=239010
<rdar://problem/91493569>

Reviewed by Chris Fleizach.

Added AccessibilityUIElement::arrayAttributeCount to dispatch to the AX
secondary thread calls to the platform wrapper's
accessibilityArrayAttributeCount. Replaced the instances to the
platform wrapper's method with the calls to this new method.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::arrayAttributeCount const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::columnCount):

5:53 AM Changeset in webkit [292706] by Nikolas Zimmermann
  • 18 edits in trunk/Source/WebCore

[LBSE] Activate SVG transform support through layers
https://bugs.webkit.org/show_bug.cgi?id=237711

Reviewed by Rob Buis.

Activate transforms for SVG layers.

Use the flag to keep track of the presence of SVG transformations
on a renderer. CSS/HTML renderers can rely only on the RenderStyle
to determine if transformations are applied, whereas SVG has to
consult additional sources, such as the SVG 'transform' attribute.

A SVG renderer with the 'HasSVGTransform' flag set should behave
like any SVG/HTML renderer that has CSS transformations applied.

With this patch applied SVG transform and CSS transforms can
be applied to <g> / <rect> elements in LBSE.

Covered by existing tests, no change in behaviour.

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::multiplyAffineTransform):

  • platform/graphics/transforms/TransformationMatrix.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateLayerTransform): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp:

(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::currentTransform const):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::updateLayerTransform):
(WebCore::RenderLayerModelObject::applySVGTransform const):

  • rendering/RenderLayerModelObject.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setHasSVGTransform):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasSVGTransform const):
(WebCore::RenderObject::hasTransform const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::SVGLayerTransformUpdater::SVGLayerTransformUpdater):
(WebCore::SVGLayerTransformUpdater::~SVGLayerTransformUpdater):
(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGContainer.h:

(WebCore::RenderSVGContainer::updateLayerInformation): Deleted.

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::updateFromStyle):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::updateFromStyle):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::applyTransform const):

  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTransformableContainer.cpp:

(WebCore::RenderSVGTransformableContainer::updateFromStyle):
(WebCore::RenderSVGTransformableContainer::applyTransform const):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const):

1:29 AM Changeset in webkit [292705] by youenn@apple.com
  • 3 edits in trunk/Tools

Split TestWebKitAPI.GPUProcess.ExitsUnderMemoryPressureWebRTCCase in more tests
https://bugs.webkit.org/show_bug.cgi?id=238927

Reviewed by Eric Carlson.

Split the tests in sub tests (microphone, camera, camera+video codec).

  • TestWebKitAPI/Tests/WebKit/getUserMedia.html:
  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

1:20 AM WebKitGTK/2.36.x edited by Philippe Normand
(diff)
12:51 AM Changeset in webkit [292704] by commit-queue@webkit.org
  • 6 edits in trunk/Tools/buildstream

[Flatpak SDK] Almost-easter eggs update
https://bugs.webkit.org/show_bug.cgi?id=239048

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

  • elements/sdk/clangd.bst: Bump to version 14.
  • elements/sdk/gst-plugins-bad.bst: Enable the new libva plugin, going to be useful as

replacement for gstreamer-vaapi.

  • elements/sdk/libwpe.bst: Bump to version 1.12.
  • elements/sdk/rr.bst: Bump to latest master version.
  • elements/sdk/wpebackend-fdo.bst: Bump to version 1.12.

Apr 10, 2022:

11:17 PM Changeset in webkit [292703] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix use of ASCIILiteral for a literal containing non-ASCII characters after r292251.

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:

(TestWebKitAPI::TEST):

11:13 PM Changeset in webkit [292702] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix use of ASCIILiteral for a literal containing non-ASCII characters after r292251.

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F):

10:29 PM Changeset in webkit [292701] by Chris Dumez
  • 6 edits in trunk/Source

Unreviewed Windows build fix after r292696.

Source/WebCore:

  • platform/win/LoggingWin.cpp:

(WebCore::logLevelString):

Source/WebCore/PAL:

  • pal/win/LoggingWin.cpp:

(PAL::logLevelString):

Source/WebKit:

  • Platform/win/LoggingWin.cpp:

(WebKit::logLevelString):

10:27 PM Changeset in webkit [292700] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed WatchOS build fix.

  • runtime/MathCommon.cpp:

(JSC::fdlibmPow):

10:23 PM Changeset in webkit [292699] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed Windows build fix after r292696.

  • wtf/win/LoggingWin.cpp:

(WTF::logLevelString):

10:21 PM Changeset in webkit [292698] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed WatchOS build fix.

  • runtime/MathCommon.cpp:

(JSC::fdlibmPow):

9:57 PM Changeset in webkit [292697] by ysuzuki@apple.com
  • 42 edits
    4 adds in trunk

[JSC] DFG / FTL should be aware of JSString's String replacement
https://bugs.webkit.org/show_bug.cgi?id=238918

Reviewed by Saam Barati.

JSTests:

  • stress/resolve-rope-get-by-val.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-char-at.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-char-code-at.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-code-point-at.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

After r289359, String in JSString* can be replaced even after it is resolved. When atomizing String inside JSString*,
we may replace the existing one to new AtomStringImpl if different AtomStringImpl is already registered in the
AtomStringTable. However, DFG / FTL GetIndexedPropertyStorage assumes that StringImpl* in JSString* never changes after
resolving. And this is wrong.

This patch decouples String handling in GetIndexedPropertyStorage as ResolveRope DFG node. GetIndexedPropertyStorage no
longer handles JSString and it is now tailored to object cases. ResolveRope does not expose StringImpl::m_data pointer,
and instead it keeps resolved JSString*. After this change,

GetByVal(String:@0, Untyped:@1, GetIndexedProperty(String:@0))

is changed to

GetByVal(ResolveRope(String:@0), Untyped:@1)

Also, we revisit all the value(...) callsites (by changing function name) and ensure that we have no code assuming String
cannot be changed after resolving.

A/B test ensured that this is perf-neutral.

  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOpImpl):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::checkArray):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasStorageChild const):
(JSC::DFG::Node::storageChildIndex):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileStringCodePointAt):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAtImpl):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCodePointAt):

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

  • runtime/HashMapImplInlines.h:

(JSC::jsMapHashImpl):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::name):
(JSC::InternalFunction::displayName):
(JSC::InternalFunction::calculatedDisplayName):

  • runtime/InternalFunction.h:
  • runtime/JSBoundFunction.h:
  • runtime/JSCJSValueInlines.h:

(JSC::toPreferredPrimitiveType):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::importModule):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::computeNext):

  • runtime/JSRemoteFunction.h:
  • runtime/Operations.h:

(JSC::jsString):
(JSC::compareBigIntToOtherPrimitive):
(JSC::compareBigInt32ToOtherPrimitive):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/StringPrototype.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/SymbolConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::reportViolationForUnsafeEval):

9:40 PM Changeset in webkit [292696] by Chris Dumez
  • 131 edits in trunk

Finish porting code base to String::fromLatin1() and make String(const char*) private
https://bugs.webkit.org/show_bug.cgi?id=238977

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:

(WebCore::GStreamerDataChannelHandler::createDataChannelEvent):

  • Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:

(WebCore::fetchDescription):
(WebCore::GStreamerMediaEndpoint::storeRemoteMLineInfo):
(WebCore::GStreamerMediaEndpoint::addRemoteStream):
(WebCore::GStreamerMediaEndpoint::createSessionDescriptionSucceeded):
(WebCore::GStreamerMediaEndpoint::collectTransceivers):

  • Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp:

(WebCore::GStreamerRtpTransceiverBackend::mid):

  • Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:

(WebCore::fillRTCStats):
(WebCore::fillRTCRTPStreamStats):
(WebCore::fillOutboundRTPStreamStats):

  • Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp:

(WebCore::toRTCEncodingParameters):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::ProtectionSystemEvents::ProtectionSystemEvents):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::platformMaximumBufferSize const):

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::ExtensionsGLOpenGLCommon):

  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::getExtensions):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::getString):

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::pageLoadStrategyString const):

  • WebDriverService.cpp:

(WebDriver::WebDriverService::run):
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::processCapabilities const):
(WebDriver::WebDriverService::newSession):
(WebDriver::WebDriverService::connectToBrowser):
(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::processPointerMoveAction):
(WebDriver::processPointerAction):
(WebDriver::processWheelAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):

  • gtk/WebDriverServiceGtk.cpp:

(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformParseCapabilities const):

  • wpe/WebDriverServiceWPE.cpp:

(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformParseCapabilities const):

Source/WTF:

  • wtf/text/WTFString.h:
  • wtf/unix/LanguageUnix.cpp:

(WTF::platformLanguage):

  • wtf/unix/LoggingUnix.cpp:

(WTF::logLevelString):

Tools:

  • TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WTF/HexNumber.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringOperators.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/URL.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
  • TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp:

(TEST):

  • TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/PushDatabase.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(testIdentity2):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::signUnlinkableTokenAndSendSecretToken):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
  • TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WebViewCanPasteURL.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WillPerformClientRedirectToURLCrash.mm:

(-[WebKit1TestDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::Connection::webSocketHandshake):
(TestWebKitAPI::HTTPServer::testCertificate):
(TestWebKitAPI::HTTPServer::testPrivateKey):

9:25 PM Changeset in webkit [292695] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] Child process happens to remain alive even after IPC::Connection is disconnected
https://bugs.webkit.org/show_bug.cgi?id=204221

Reviewed by Don Olmstead.

After running layout tests, I observed some processes of
WebKitWebProcess.exe and WebKitNetworkProcess.exe were still
alive. These child processed should exit if the named pipe of
IPC::Connection is broken.

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::readEventHandler): Call connectionDidClose() in the case of ERROR_BROKEN_PIPE.

9:22 PM Changeset in webkit [292694] by commit-queue@webkit.org
  • 18 edits in trunk/Source/WebCore

Unreviewed, reverting r292690.
https://bugs.webkit.org/show_bug.cgi?id=239060

fast/multicol tests are randomly failing

Reverted changeset:

"[LBSE] Activate SVG transform support through layers"
https://bugs.webkit.org/show_bug.cgi?id=237711
https://commits.webkit.org/r292690

6:32 PM Changeset in webkit [292693] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Update listMarkerTextForNodeAndPosition() to return a StringView instead of a String
https://bugs.webkit.org/show_bug.cgi?id=239022
<rdar://problem/91509602>

Reviewed by Darin Adler.

Update listMarkerTextForNodeAndPosition() to return a StringView instead of a String. listMarkerTextForNodeAndPosition()
has a StringView internally and none it its call sites actually need a String. The call sites either use StringBuilder
or want a NSString*. This avoids unnecessary String allocations.

  • accessibility/AccessibilityObject.cpp:

(WebCore::listMarkerTextForNode):
(WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):

  • accessibility/AccessibilityObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapperBase contentForSimpleRange:attributed:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):

4:54 PM Changeset in webkit [292692] by Chris Dumez
  • 10 edits in trunk/Source/WebCore

Avoid redundant calls to findHTTPHeaderName()
https://bugs.webkit.org/show_bug.cgi?id=239021

Reviewed by Darin Adler.

Some call sites of HTTPHeaderMap::add() / set() or ResourceResponse::addHTTPHeaderField() / setHTTPHeaderField()
have already called findHTTPHeaderName() and determined that this wasn't a common header. As a result, we were
doing redundant findHTTPHeaderName() checks inside those functions. To avoid this, add overloads that take in
a header that we already know is uncommon.

  • Modules/fetch/FetchHeaders.cpp:

(WebCore::appendToHeaderMap):
(WebCore::FetchHeaders::filterAndFill):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::resourceResponse const):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::readHTTPHeaders):

  • platform/network/CacheValidation.cpp:

(WebCore::updateResponseHeadersAfterRevalidation):

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::setUncommonHeader):
(WebCore::HTTPHeaderMap::add):
(WebCore::HTTPHeaderMap::addUncommonHeader):

  • platform/network/HTTPHeaderMap.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::setHTTPHeaderField):
(WebCore::ResourceResponseBase::setUncommonHTTPHeaderField):
(WebCore::ResourceResponseBase::addHTTPHeaderField):
(WebCore::ResourceResponseBase::addUncommonHTTPHeaderField):

  • platform/network/ResourceResponseBase.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::fetchScriptWithContext):

4:52 PM Changeset in webkit [292691] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[Line clamp] Move line clamp only code from RenderBlockFlow to RenderDeprecatedFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=239041

Reviewed by Antti Koivisto.

  • rendering/RenderBlockFlow.cpp:

(WebCore::shouldIncludeLinesForParentLineCount): Deleted.
(WebCore::RenderBlockFlow::clearTruncation): Deleted.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::shouldIncludeLinesForParentLineCount):
(WebCore::clearTruncation):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

3:51 PM Changeset in webkit [292690] by Nikolas Zimmermann
  • 18 edits in trunk/Source/WebCore

[LBSE] Activate SVG transform support through layers
https://bugs.webkit.org/show_bug.cgi?id=237711

Reviewed by Rob Buis.

Activate transforms for SVG layers.

Use the flag to keep track of the presence of SVG transformations
on a renderer. CSS/HTML renderers can rely only on the RenderStyle
to determine if transformations are applied, whereas SVG has to
consult additional sources, such as the SVG 'transform' attribute.

A SVG renderer with the 'HasSVGTransform' flag set should behave
like any SVG/HTML renderer that has CSS transformations applied.

With this patch applied SVG transform and CSS transforms can
be applied to <g> / <rect> elements in LBSE. However, the order
of the matrix multiplication is not correct yet for SVG -- that
will be adressed in a follow-up patch.

Covered by existing tests, no change in behaviour.

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::multiplyAffineTransform):

  • platform/graphics/transforms/TransformationMatrix.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateLayerTransform): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp:

(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::currentTransform const):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::updateLayerTransform):
(WebCore::RenderLayerModelObject::applySVGTransform const):

  • rendering/RenderLayerModelObject.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setHasSVGTransform):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasSVGTransform const):
(WebCore::RenderObject::hasTransform const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::SVGLayerTransformUpdater::SVGLayerTransformUpdater):
(WebCore::SVGLayerTransformUpdater::~SVGLayerTransformUpdater):
(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGContainer.h:

(WebCore::RenderSVGContainer::updateLayerInformation): Deleted.

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::updateFromStyle):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::updateFromStyle):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::applyTransform const):

  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTransformableContainer.cpp:

(WebCore::RenderSVGTransformableContainer::updateFromStyle):
(WebCore::RenderSVGTransformableContainer::applyTransform const):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const):

3:01 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:56 PM Changeset in webkit [292689] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Line clamp specific line-count code should be in RenderDeprecatedFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=239029

Reviewed by Antti Koivisto.

Moving the line-clamp specific code to RenderDeprecatedFlexibleBox enables us to
make RenderBlockFlow::lineCount "children inline" only.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::lineCountFor):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

2:29 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:20 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:09 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
9:50 AM Changeset in webkit [292688] by commit-queue@webkit.org
  • 8 edits
    4 deletes in trunk/Tools/buildstream

[Flatpak SDK] Pre-easter eggs update
https://bugs.webkit.org/show_bug.cgi?id=239007

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

  • elements/freedesktop-sdk.bst: Bump junction.
  • elements/qt5/qtbase.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk-platform.bst: Replace duplicate recipes with their upstream version.
  • elements/sdk/adwaita-icon-theme.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/bubblewrap.bst: Removed.
  • elements/sdk/ffmpeg.bst: Bump to version 5, inspired from upstream version of the recipe.
  • elements/sdk/gst-plugins-base.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/gst-plugins-good.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/gtk+-3.bst: Removed.
  • patches/fdo-0001-shared-mime-info-Backport-meson-0.60-build-fix.patch: Removed.
  • patches/gtk-gcc11-build-fix.patch: Removed.
9:47 AM Changeset in webkit [292687] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] clangd wrapper improvements
https://bugs.webkit.org/show_bug.cgi?id=239032

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

The path of the compile_commands.json is now implied from the webkit-clangd command-line
arguments, defaulting to the GTK/Release configuration.

The path mappings were incorrect, the src part being /app/webkit/{Debug,Release}, which are
invalid paths in the sandbox. They should instead point to
/app/webkit/WebKitBuild/{Debug,Release}.

Finally, there should be no need to add a path mapping for /usr/include because clangd is
launched in the sandbox runtime, where /usr/include/ is already bind-mounded by
flatpak/bwrap.

  • flatpak/webkit-clangd:
3:26 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
12:29 AM Changeset in webkit [292686] by Tyler Wilcock
  • 7 edits in trunk

Fix accessibility/aria-invalid.html in isolated tree mode
https://bugs.webkit.org/show_bug.cgi?id=238978

Reviewed by Chris Fleizach.

Source/WebCore:

With this patch, we update the isolated tree when the aria-invalid
attribute changes.

Fixes accessibility/aria-invalid.html in isolated tree mode.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Drive-by re-ordering of case AXPropertyName::IdentifierAttribute such that this
function handles properties in alphabetical order.

LayoutTests:

  • accessibility/aria-invalid-expected.txt:
  • accessibility/aria-invalid.html:

Rewrite to call debug only once at the end of the test. Also made
this test use accessibleElementById instead of
accessibilityController.focusedElement.

  • resources/accessibility-helper.js:

Add new expect function, which is like the more ubiquitous
shouldBe from js-test.js, but returns the output as a string instead
of calling debug to output to a console DOM element.

Apr 9, 2022:

7:59 PM Changeset in webkit [292685] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[Text autosizing] Remove redundant lineCountForTextAutosizing member function
https://bugs.webkit.org/show_bug.cgi?id=239034

Reviewed by Antti Koivisto.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustComputedFontSizes): stop walking the list item children when we see multiple lines.
(WebCore::RenderBlockFlow::lineCountForTextAutosizing): Deleted.

  • rendering/RenderBlockFlow.h:
7:14 PM Changeset in webkit [292684] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Include locale.h for LC_MESSAGES definition.
https://bugs.webkit.org/show_bug.cgi?id=239030

Patch by Khem Raj <raj.khem@gmail.com> on 2022-04-09
Reviewed by Michael Catanzaro.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:
3:42 PM Changeset in webkit [292683] by Simon Fraser
  • 7 edits in trunk/Source

Put layer backing store buffers into the per-RemoteRenderingBackend IOSurfacePool
https://bugs.webkit.org/show_bug.cgi?id=238972
<rdar://83437978>

Reviewed by Tim Horton.

Source/WebCore:

Add IOSurfacePool::create().

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::create):

  • platform/graphics/cg/IOSurfacePool.h:

Source/WebKit:

Give each RemoteRenderingBackend its own IOSurfacePool. RemoteImageBuffer gets surfaces
from this pool, and RemoteRenderingBackend::willDestroyImageBuffer() puts surfaces in,
if they are layer backing store surfaces.

The low memory handler removes all surfaces from the pool.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::create):
(WebKit::RemoteImageBuffer::~RemoteImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::willDestroyImageBuffer):
(WebKit::RemoteRenderingBackend::lowMemoryHandler):

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::ioSurfacePool const):

3:25 PM Changeset in webkit [292682] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Use Vector with inline capacity in ObjectPropertyConditionSet creation
https://bugs.webkit.org/show_bug.cgi?id=239025

Reviewed by Keith Miller.

Since we anyway allocate ThreadSafeRefCountedFixedVector<ObjectPropertyCondition> in ObjectPropertyConditionSet, which has exact size,
generateXXX and mergeWith should not allocate heap Vector just for temporarily collecting ObjectPropertyCondition.
We pick 8 in generateXXX function and 16 for mergeWith function. This looks reasonable number and at least covers all cases in Speedometer2.

  • bytecode/ObjectPropertyConditionSet.cpp:

(JSC::ObjectPropertyConditionSet::mergedWith const):
(JSC::generateConditionsForPropertyMiss):
(JSC::generateConditionsForPropertySetterMiss):
(JSC::generateConditionsForPrototypePropertyHit):
(JSC::generateConditionsForPrototypePropertyHitCustom):
(JSC::generateConditionsForInstanceOf):
(JSC::generateConditionsForPrototypeEquivalenceConcurrently):
(JSC::generateConditionsForPropertyMissConcurrently):
(JSC::generateConditionsForPropertySetterMissConcurrently):

  • bytecode/ObjectPropertyConditionSet.h:

(JSC::ObjectPropertyConditionSet::create):

1:26 PM Changeset in webkit [292681] by mmaxfield@apple.com
  • 4 edits in trunk

[WKTR] Reset minimum font size WKPreference between tests
https://bugs.webkit.org/show_bug.cgi?id=239027
<rdar://problem/88938768>

Reviewed by Chris Dumez.

Tools:

Some tests use uiController to set the minimum font size WKPreference. We need to reset it between tests.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Remove unnecessary ephemeral session.

  • fast/forms/visual-hebrew-text-field.html:
12:05 PM Changeset in webkit [292680] by Chris Dumez
  • 6 edits
    1 add in trunk

The Youtube plugin replacement should only work for actual Youtube URLs
https://bugs.webkit.org/show_bug.cgi?id=239003
<rdar://91323230>

Reviewed by Brent Fulgham.

Source/WebCore:

The Youtube plugin replacement was too permissive and was falling back to using
the original URL in cases there the original URL wasn't an expected Youtube
URL. This patch hardens the plugin replacement and drops the URL if it is not
a valid youtube URL instead.

Covered by new API test.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::isYouTubeURL):
(WebCore::processAndCreateYouTubeURL):
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL):

Tools:

Add API test coverage.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:

(TestWebKitAPI::test):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/YoutubeReplacementPlugin.mm: Added.

(TEST):

10:55 AM Changeset in webkit [292679] by Alan Bujtas
  • 9 edits
    2 adds in trunk

REGRESSION (Safari 15.4): Focused element doesn't render outline when it has an underline
https://bugs.webkit.org/show_bug.cgi?id=238998
<rdar://problem/91484512>

Reviewed by Antti Koivisto.

Source/WebCore:

While outline is supposed to be part of the ink overflow(1), WebKit historically has been
treating it as a special "non ink overflow" type of overflow.

This patch is in preparation for transitioning the outline to regular ink overflow.

First we start treating outline as part of ink overflow within IFC and
handle it as special repaint content only at the block (RenderBlockFlow) level.

Test: fast/repaint/incorrect-outline-repaint.html

(1) https://www.w3.org/TR/css-overflow-3/#ink

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::computeInkOverflowForInlineLevelBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendAtomicInlineLevelDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSpanningInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
(WebCore::Layout::computeBoxShadowInkOverflow): Deleted.

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::hasContent const):

  • layout/integration/LayoutIntegrationInlineContent.h:

(WebCore::LayoutIntegration::InlineContent::hasVisualOverflow const):
(WebCore::LayoutIntegration::InlineContent::setHasVisualOverflow):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines): This may cause overly inflated repaintTop/Bottom when
the ink overflow is not outline based (text stroke only atm) but we will anyway trigger
similar repaint rect on that part later when we process ink overflow.

LayoutTests:

  • fast/repaint/incorrect-outline-repaint-expected.txt: Added.
  • fast/repaint/incorrect-outline-repaint.html: Added.
  • fast/text/simple-line-layout-text-stroke-width.html: now we produce a slightly different (more accurate)

vertical repaint range. However this test is about moving the content horizontally, so let's make this
test more robust by focusing on the horizontal part.

1:35 AM Changeset in webkit [292678] by Adrian Perez de Castro
  • 10 edits
    3 adds in trunk

[GTK][WPE] Missing inter-module documentation links
https://bugs.webkit.org/show_bug.cgi?id=239016

Reviewed by Michael Catanzaro.

Add JS snippets to be used in the gi-docgen output to setup links to
other modules. Take advantage of being able to compute the documentation
API version suffix from the currently loaded page URL, which avoids having
a number of templates depending on the API version and having to deal with
the documentation API version being sometimes different than the actual API
version of the library. The URLs for GTK3 vs. GTK4 documentation cannot be
handled in the same way, and instead the JS snippet is also a template
expanded by CMake to allows using the ${GTK_API_VERSION} variable there.

.:

  • Source/cmake/FindGIDocgen.cmake: Add a new CONTENT_TEMPLATES option

to GI_DOCGEN(), which allows setting up files to be expanded as CMake
@ONLY templates and then be used as documentation content files.

Source/JavaScriptCore:

  • API/glib/docs/jsc.toml.in: Use added urlmap.js file.
  • API/glib/docs/urlmap.js: Added.

Source/WebKit:

  • PlatformGTK.cmake: Set urlmap.js as documentation content template.
  • gtk/urlmap.js.in: Added.
  • gtk/webkit2gtk-webextension.toml.in: Use urlmap.js from added template.
  • gtk/webkit2gtk.toml.in: Ditto.
  • wpe/urlmap.js: Added.

(const.baseURLApiLevelSuffix):

  • wpe/wpewebextension.toml.in: Use added urlmap.js file.
  • wpe/wpewebkit.toml.in: Ditto.
1:28 AM Changeset in webkit [292677] by sihui_liu@apple.com
  • 25 edits in trunk/Source

Move canAccessStorage() check from SecurityOrigin to ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=238524
<rdar://problem/91318259>

Reviewed by Chris Dumez.

Source/WebCore:

Add canAccessResource() to ScriptExecutionContext because ScriptExecutionContext, instead of SecurityOrigin,
should be the place that holds StorageBlockingPolicy (otherwise it's confusing that the origin and top origin
disagrees with each other on policy). Also, because ScriptExecutionContext has access to origin and topOrigin,
callers don't need to explicitly get them before the access check.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::getSupportedConfiguration):

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::shouldBlockGeolocationRequests):

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::shouldThrowSecurityException):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/storage/StorageManager.cpp:

(WebCore::connectionInfo):

  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • dom/Document.cpp:

(WebCore::m_whitespaceCache):
(WebCore::Document::cookie):
(WebCore::Document::setCookie):
(WebCore::Document::storageBlockingStateDidChange):
(WebCore::Document::initSecurityContext):
(WebCore::Document::applyQuickLookSandbox):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::domainForCachePartition const):
(WebCore::isOriginEquivalentToLocal):
(WebCore::ScriptExecutionContext::canAccessResource const):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::setStorageBlockingPolicy):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::loadMainResource):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
(WebCore::ApplicationCacheGroup::update):

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::isApplicationCacheBlockedForRequest):

  • page/DOMWindow.cpp:
  • page/Page.cpp:

(WebCore::Page::setupForRemoteWorker):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::domainForCachePartition const):
(WebCore::SecurityOrigin::canAccessStorage const): Deleted.

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::encode const):
(WebCore::SecurityOrigin::decode):
(WebCore::SecurityOrigin::setStorageBlockingPolicy): Deleted.
(WebCore::SecurityOrigin::canAccessDatabase const): Deleted.
(WebCore::SecurityOrigin::canAccessSessionStorage const): Deleted.
(WebCore::SecurityOrigin::canAccessLocalStorage const): Deleted.
(WebCore::SecurityOrigin::canAccessStorageManager const): Deleted.
(WebCore::SecurityOrigin::canAccessPluginStorage const): Deleted.
(WebCore::SecurityOrigin::canAccessApplicationCache const): Deleted.
(WebCore::SecurityOrigin::canAccessCookies const): Deleted.
(WebCore::SecurityOrigin::canRequestGeolocation const): Deleted.

  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::localStorageArea):

  • workers/WorkerGlobalScope.cpp:

(WebCore::m_credentials):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):

  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::ServiceWorkerJobData::isolatedCopy const):

  • workers/service/ServiceWorkerJobData.h:

(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::startScriptFetch):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):

Source/WebKit:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::storageBlockingStateChanged):

Apr 8, 2022:

11:29 PM Changeset in webkit [292676] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

Sharing services picker menu Mail presents in the wrong place when compose web view is scrolled
https://bugs.webkit.org/show_bug.cgi?id=238672
<rdar://problem/88966924>

Reviewed by Wenson Hsieh.

Image menu is offset by the amount the view is scrolled. This patch
changes the menu location point by calculating the bottom corner of
the picker button then using contentsToWindow which handles
the scroll position offset

  • dom/mac/ImageControlsMac.cpp:

(WebCore::ImageControlsMac::handleEvent):

11:18 PM Changeset in webkit [292675] by Alan Coon
  • 9 edits in branches/safari-614.1.9-branch/Source

Versioning.

WebKit-7614.1.9.2

8:12 PM Changeset in webkit [292674] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix the release build
https://bugs.webkit.org/show_bug.cgi?id=239023

Unreviewed build fix.

  • WebGPU/Device.mm:

(WebGPU::Device::Device):

7:56 PM Changeset in webkit [292673] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Make callbacks in unimplemented functions execute
https://bugs.webkit.org/show_bug.cgi?id=238727

Reviewed by Dean Jackson.

CompletionHandler ASSERT()s that it has been executed in its destructor. We have some
functions which we haven't implemented yet which take CompletionHandlers, so let's
temporarily just call the completion handlers just to make tests stop ASSERT()ing.

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipelineAsync):

7:28 PM Changeset in webkit [292672] by Matteo Flores
  • 5 edits in trunk/LayoutTests

REBASLINE: [ Monterey wk2 ] 4 http/tests/inspector/paymentrequest/* tests are constant text failures https://bugs.webkit.org/show_bug.cgi?id=238908 Unreviewed test rebaslining. * http/tests/inspector/paymentrequest/payment-request-internal-properties.https-expected.txt: * http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https-expected.txt: * http/tests/paymentrequest/payment-request-change-shipping-option.https-expected.txt: * http/tests/paymentrequest/payment-response-retry-method.https-expected.txt:

7:14 PM Changeset in webkit [292671] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Implement the concept of device lost
https://bugs.webkit.org/show_bug.cgi?id=238725

Reviewed by Dean Jackson.

This patch builds on https://bugs.webkit.org/show_bug.cgi?id=238723 to finish
the implementation of the concept of device lost. The device can only be lost
on macOS, where you can register a block callback to be run when it happens.
Also, the registration function returns a token that you can pass to the
unregistration function, which happens in Device's destructor.

  • WebGPU/Buffer.mm:

(WebGPU::validateDescriptor):

  • WebGPU/Device.h:

(WebGPU::Device::isLost const):

  • WebGPU/Device.mm:

(WebGPU::Device::Device):
(WebGPU::Device::~Device):
(WebGPU::Device::loseTheDevice):
(WebGPU::Device::destroy):
(WebGPU::Device::validatePopErrorScope const):
(WebGPU::Device::setDeviceLostCallback):

6:45 PM Changeset in webkit [292670] by mmaxfield@apple.com
  • 24 edits in trunk/Source/WebGPU

[WebGPU] Represent failure by invalidity rather than nullptr
https://bugs.webkit.org/show_bug.cgi?id=238724

Reviewed by Dean Jackson.

This is the biggest blocker for running the WebGPU conformance test suite. WebGPU is designed
such that creation routines don't return undefined if the object couldn't be created; instead,
in "invalid" object is returned. Now that objects have the notion of invalidity, this patch
migrates from creation functions returning RefPtr to creation functions returning Ref. All
the places where we previously returned nullptr now return invalid objects.

  • WebGPU/APIConversions.h:

(WebGPU::releaseToAPI):

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):

  • WebGPU/Buffer.mm:

(WebGPU::Device::createBuffer):

  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:

(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::finish):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::create):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):

  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:

(WebGPU::Instance::create):
(WebGPU::Instance::createSurface):
(WebGPU::Instance::requestAdapter):
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):

  • WebGPU/RenderBundleEncoder.h:
  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::finish):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):

  • WebGPU/Sampler.mm:

(WebGPU::Device::createSampler):

  • WebGPU/ShaderModule.mm:

(WebGPU::Device::createShaderModule):

  • WebGPU/SwapChain.mm:

(WebGPU::Device::createSwapChain):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):
(WebGPU::Texture::createView):

5:31 PM Changeset in webkit [292669] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.6

Tag WebKit-7613.2.6.

5:14 PM Changeset in webkit [292668] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291629. rdar://problem/91446360

YouTube.com - Clicking anywhere on the progress bar pauses the video
https://bugs.webkit.org/show_bug.cgi?id=237750
<rdar://problem/90364846>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-unexpected-pause.html

When calling play() or pause() on a MediaPlayerPrivateMediaSourceAVFObjC, the object will
respond by calling m_player->playbackStateChanged(), which will in turn call
HTMLMediaElement::mediaPlayerPlaybackStateChanged() with the new state. However, HTMLMediaElement
expects this to be called only for unanticipated state changes, not expected state changes. And
when that method is called and the reported state does not match the element's own expected state,
the element calls its own play() or pause() function to update its own state to match the player's.
And because MediaPlayerPrivateMediaSourceAVFObjC calls this method on the next run loop, there is
an opportunity for those states to get out of sync, which happens when YouTube responds to a tap
in its timeline.

Remove the unnecessary "call on next run loop" behavior of …
play() and ::pause(). Also, remove the unnecessary notification that the play state has changed. In the future, this can be accomplished by adding a callback parameter to MediaPlayer::play() rather than relying on a state change notification.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playAtHostTime): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseAtHostTime):

LayoutTests:

  • media/media-source/media-source-unexpected-pause-expected.txt: Added.
  • media/media-source/media-source-unexpected-pause.html: Added.

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

5:14 PM Changeset in webkit [292667] by Alan Coon
  • 3 edits
    3 adds in branches/safari-613-branch

Cherry-pick r291493. rdar://problem/91446052

REGRESSION (r290628): Scrubber makes a visual trail when scrubbing on tv.youtube.com
https://bugs.webkit.org/show_bug.cgi?id=238047
<rdar://problem/90451319>

Reviewed by Alan Bujtas.

Source/WebCore:

In r290628 I added a call to clearRepaintRects() when changing the backing sharing
target layer for a RenderLayer. However, for a layer using backing sharing, this
gets called twice during a normal compositing update, which has the effect of
clearing the cached repaint rects so that a layer repaint always computes new rects.
Thus, if a layer moved, we'd fail to repaint the old rect.

RenderLayerBacking::setBackingSharingLayers() already has logic to update repaint
rects when state changes, so we don't need this clearing.

Test: compositing/repaint/move-backing-sharing-layer.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::setBackingProviderLayer):

LayoutTests:

  • compositing/repaint/move-backing-sharing-layer-expected.txt: Added.
  • compositing/repaint/move-backing-sharing-layer.html: Added.

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

5:14 PM Changeset in webkit [292666] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291118. rdar://problem/91446071

[iOS] Netflix.com fails to resume after moving app to background during playback
https://bugs.webkit.org/show_bug.cgi?id=237659
<rdar://88775037>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-interruption-with-resume-allowing-play.html

When the MediaPlayerPrivateMediaSourceAVFObjC player is asked to play or pause, it notifies
the client (HTMLMediaElement) that its playback state has changed. HTMLMediaElement will in response
call playInternal() or pauseInternal() to ensure that a state change driven by the MediaPlayer
is reflected up to the DOM. However, when an interruption causes the media element to suspend
and pause playback, this results in an additional call to pauseInternal(), which updates the
"state to resume" after an interruption ends to "Paused".

In mediaPlayerPlaybackStateChanged(), only call pauseInternal() or playInternal() if the reported
player state does not match the HTMLMediaElement's own state.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerPlaybackStateChanged):

LayoutTests:

  • media/media-source/media-source-interruption-with-resume-allowing-play-expected.txt: Added.
  • media/media-source/media-source-interruption-with-resume-allowing-play.html: Added.

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

5:14 PM Changeset in webkit [292665] by Alan Coon
  • 7 edits in branches/safari-613-branch

Cherry-pick r288622. rdar://problem/91446028

[WebAuthn] Add authenticator attachment used during authentication to credential payload
https://bugs.webkit.org/show_bug.cgi?id=235621
rdar://86538235

Reviewed by Dean Jackson.

Source/WebCore:

This patch adds the authenticator attachment used to the credential response in get/create
webauthn calls as described in the merged PR to the spec: https://github.com/w3c/webauthn/pull/1668/files

Modified layout tests to check for authenticator attachment = (cross-platform/platform) where appropriate
and verified response in manual calls.

  • Modules/webauthn/PublicKeyCredential.cpp: (WebCore::PublicKeyCredential::authenticatorAttachment const):
  • Modules/webauthn/PublicKeyCredential.h:
  • Modules/webauthn/PublicKeyCredential.idl:

LayoutTests:

Modify webauthn layout tests to check for new authenticatorAttachment field.

  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/resources/util.js:

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

5:14 PM Changeset in webkit [292664] by Alan Coon
  • 8 edits
    5 adds in branches/safari-613-branch

Cherry-pick r292229. rdar://problem/90778752

CSP: WASM fails to execute after window.open
https://bugs.webkit.org/show_bug.cgi?id=238562
<rdar://problem/90778752>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open.html

Reset WASM enabled value after a window.open() call. This patch simplifies
eval and wasm setters by removing the distinct enable/disable functions
and using one consistent setter.

  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::setEvalEnabled): (WebCore::ScriptController::setWebAssemblyEnabled): (WebCore::ScriptController::enableEval): Deleted. (WebCore::ScriptController::enableWebAssembly): Deleted. (WebCore::ScriptController::disableEval): Deleted. (WebCore::ScriptController::disableWebAssembly): Deleted.
  • bindings/js/ScriptController.h:
  • dom/Document.cpp: (WebCore::Document::disableEval): (WebCore::Document::disableWebAssembly):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::clear):
  • page/csp/ContentSecurityPolicy.h: (WebCore::ContentSecurityPolicy::webAssemblyErrorMessage const):

LayoutTests:

Layout test coverage. Copy some wasm helper scripts into the http directory.

  • platform/win/TestExpectations: We don't support wasm on win.
  • http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/allow-wasm-after-window-open.html: Added.
  • http/tests/security/contentSecurityPolicy/resources/load_wasm.js: Added. (createWasmModule):
  • http/tests/security/contentSecurityPolicy/resources/run-web-assembly.html: Added.
  • http/tests/security/contentSecurityPolicy/resources/wasm-builder.js: Added. (const._fail): (const.isNotA.assert.isNotA): (const): (switch.typeof): (Builder): (Builder.prototype.setChecked): (Builder.prototype.setPreamble): (Builder.prototype._functionIndexSpaceKeyHash): (Builder.prototype._registerFunctionToIndexSpace): (Builder.prototype._getFunctionFromIndexSpace): (Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section): (Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.const.codeBuilder.End.switch.case.string_appeared_here.e): (Builder.prototype._registerSectionBuilders.this.Unknown):

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

5:14 PM Changeset in webkit [292663] by Alan Coon
  • 3 edits
    3 adds in branches/safari-613-branch

Cherry-pick r292155. rdar://problem/90572543

Interop issue with position: sticky within contain: paint
https://bugs.webkit.org/show_bug.cgi?id=238016

Patch by Rob Buis <rbuis@igalia.com> on 2022-03-31
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-expected.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container.html: Added.

Source/WebCore:

Elements with overflow: clip (contain: paint enables it) are
not scroll containers, so they can't act as scrolling
ancestor for sticky elements.

Tests: imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html

imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-overflow-clip-container.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::enclosingOverflowClipLayer const):

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

5:14 PM Changeset in webkit [292662] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r292075. rdar://problem/88323776

Web Inspector: Add check for null entryScope in JSC::Debugger::detach
https://bugs.webkit.org/show_bug.cgi?id=238518

Reviewed by Devin Rousso.

A virtual machine may not always have an entryScope, which can occur if a JSGlobalObject is being destructed
(which will call into JSC::Debugger::Detach) before a VMEntryScope is created or after a VMEntryScope has
fallen out of scope, causing the VM's entryScope to be null again. In the original internal issue that led to
finding this, this most commonly occurred in conjunction with page refresh while the debugger was paused.

Because it is possible that we were previously paused in the VM that now has no entryScope, we should go ahead
and unpause.

  • debugger/Debugger.cpp: (JSC::Debugger::detach):

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

5:14 PM Changeset in webkit [292661] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292054. rdar://problem/80630664

WebCore::LegacyRootInlineBox::lineSnapAdjustment should bail out on grid line height < 1
https://bugs.webkit.org/show_bug.cgi?id=238465
<rdar://80630664>

Reviewed by Antti Koivisto.

The !gridLineHeight check was added to avoid division by zero but the integral roundToInt() may also produce a 0 value for
gridLineHeight.

  • rendering/LegacyRootInlineBox.cpp: (WebCore::LegacyRootInlineBox::lineSnapAdjustment const):

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

5:14 PM Changeset in webkit [292660] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292034. rdar://problem/90916916

Check page exists before trying to access authenticatorCoordinator
https://bugs.webkit.org/show_bug.cgi?id=238507

Reviewed by Brent Fulgham.

Check we have a valid page before trying to access the authenticatorCoordinator.

  • Modules/webauthn/PublicKeyCredential.cpp: (WebCore::PublicKeyCredential::isUserVerifyingPlatformAuthenticatorAvailable):

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

5:14 PM Changeset in webkit [292659] by Alan Coon
  • 4 edits in branches/safari-613-branch

Cherry-pick r292029. rdar://problem/90977336

Use Canvas/CanvasText system colors for <dialog> default styling
https://bugs.webkit.org/show_bug.cgi?id=238425

Reviewed by Antti Koivisto.

Per HTML spec change: https://github.com/whatwg/html/commit/22154a4c1d426dddf187fb12c05fbcb8816c94a5
Main change is that the colors now adapt to dark mode by default.

LayoutTests/imported/w3c:

Updated test result to pass.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt:

Source/WebCore:

Test: LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html

  • css/dialog.css: (dialog):

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

5:14 PM Changeset in webkit [292658] by Alan Coon
  • 4 edits
    40 moves
    4 adds in branches/safari-613-branch/LayoutTests

Cherry-pick r292028. rdar://problem/90977255

Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=238502

Reviewed by Antti Koivisto.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/46e50fc357127c76c898675cd30ae34090a2268d

Main changes:

  • Removes .tentative.html suffix from inert tests
  • Adds default-color.html test for <dialog>

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative-expected.txt.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/inert/dynamic-inert-on-focused-element-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/dynamic-inert-on-focused-element.tentative-expected.txt.
  • web-platform-tests/inert/dynamic-inert-on-focused-element.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/dynamic-inert-on-focused-element.tentative.html.
  • web-platform-tests/inert/inert-and-contenteditable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt.
  • web-platform-tests/inert/inert-and-contenteditable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative.html.
  • web-platform-tests/inert/inert-canvas-fallback-content-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt.
  • web-platform-tests/inert/inert-canvas-fallback-content.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-canvas-fallback-content.tentative.html.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative-expected.txt.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative.html.
  • web-platform-tests/inert/inert-iframe-hittest-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt.
  • web-platform-tests/inert/inert-iframe-hittest.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative.html.
  • web-platform-tests/inert/inert-iframe-tabbing-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt.
  • web-platform-tests/inert/inert-iframe-tabbing.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative.html.
  • web-platform-tests/inert/inert-in-shadow-dom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative-expected.txt.
  • web-platform-tests/inert/inert-in-shadow-dom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative.html.
  • web-platform-tests/inert/inert-inlines-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-inlines.tentative-expected.txt.
  • web-platform-tests/inert/inert-inlines.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-inlines.tentative.html.
  • web-platform-tests/inert/inert-label-focus-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-label-focus.tentative-expected.txt.
  • web-platform-tests/inert/inert-label-focus.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-label-focus.tentative.html.
  • web-platform-tests/inert/inert-node-is-uneditable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-uneditable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative.html.
  • web-platform-tests/inert/inert-node-is-unfocusable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-unfocusable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative.html.
  • web-platform-tests/inert/inert-node-is-unselectable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-unselectable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html.
  • web-platform-tests/inert/inert-on-non-html-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-non-html.tentative-expected.txt.
  • web-platform-tests/inert/inert-on-non-html.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-non-html.tentative.html.
  • web-platform-tests/inert/inert-on-slots-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-slots.tentative-expected.txt.
  • web-platform-tests/inert/inert-on-slots.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-slots.tentative.html.
  • web-platform-tests/inert/inert-svg-hittest-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt.
  • web-platform-tests/inert/inert-svg-hittest.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative.html.
  • web-platform-tests/inert/inert-with-modal-dialog-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-001.tentative-expected.txt.
  • web-platform-tests/inert/inert-with-modal-dialog-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-001.tentative.html.
  • web-platform-tests/inert/inert-with-modal-dialog-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-002.tentative-expected.txt.
  • web-platform-tests/inert/inert-with-modal-dialog-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-002.tentative.html.
  • web-platform-tests/inert/w3c-import.log:

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt.

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

5:13 PM Changeset in webkit [292657] by Alan Coon
  • 3 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r292009. rdar://problem/90918765

The lazy symbolObjectStructure should be realized before we allocate a SymbolObject.
https://bugs.webkit.org/show_bug.cgi?id=238474
<rdar://problem/90918765>

Reviewed by Yusuke Suzuki and Saam Barati.

We should not be allocating the symbolObjectStructure while in the middle of
initializing a SymbolObject.

  • runtime/Symbol.cpp: (JSC::Symbol::toObject const): (JSC::SymbolObject::create): Deleted.
  • runtime/SymbolObject.h:

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

5:13 PM Changeset in webkit [292656] by Alan Coon
  • 15 edits
    1 copy
    3 adds in branches/safari-613-branch

Cherry-pick r291886. rdar://problem/72814440

PointerEvent.movementX always 0 (breaks https://noisecraft.app/)
https://bugs.webkit.org/show_bug.cgi?id=220194
<rdar://problem/72814440>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock-expected.txt: This change causes the test to progress further than before, but there still appear to be other issues elsewhere, so adjust the expected output to reflect that.

Source/WebCore:

Test: pointer-lock/pointermove-movement-delta.html

  • dom/PointerEvent.cpp: (WebCore::PointerEvent::PointerEvent): Also pass along the movement delta in the constructor that takes a MouseEvent.
  • dom/MouseEvent.h:
  • dom/MouseEvent.cpp: (WebCore::MouseEvent::create): (WebCore::MouseEvent::MouseEvent): Require that all constructors that aren't invoked from JS always provide a movement delta.
  • dom/MouseRelatedEvent.h: (WebCore::MouseRelatedEvent::movementX const): (WebCore::MouseRelatedEvent::movementY const): Expose these methods even when !ENABLE(POINTER_LOCK) so that they can be called without the callsite having to also have a #if.
  • page/EventHandler.cpp: (WebCore::EventHandler::dispatchDragEvent): Pass along the movement delta even when !ENABLE(POINTER_LOCK).

Tools:

  • DumpRenderTree/mac/EventSendingController.mm: (-[EventSendingController mouseMoveToX:Y:]):
  • WebKitTestRunner/mac/EventSenderProxy.mm: (WTR::EventSenderProxy::mouseMoveTo): On macOS, the screen's origin is the bottom-left corner, so we need to flip the deltaY.

LayoutTests:

  • pointer-lock/pointermove-movement-delta.html: Added.
  • pointer-lock/pointermove-movement-delta-expected.txt: Added.
  • pointer-lock/mouse-event-delivery-expected.txt: Added. On macOS, the screen's origin is the bottom-left corner, so we need to flip the deltaY.
  • platform/gtk/imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock-expected.txt: Added. This change causes the test to progress further than before, but there still appear to be other issues elsewhere, so adjust the expected output to reflect that.
  • platform/mac-wk1/TestExpectations:

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

5:13 PM Changeset in webkit [292655] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r291881. rdar://problem/90848454

[GPU Process] RemoteRenderingBackend::stopListeningForIPC() should not change the RemoteResourceCache on the main thread
https://bugs.webkit.org/show_bug.cgi?id=238298
rdar://90731372

Reviewed by Simon Fraser.

To release the RemoteResourceCache and the rendering resource request on
the WorkQueue thread, RemoteRenderingBackend::stopListeningForIPC() dispatches
an empty lambda to its WorkQueue but m_renderingResourcesRequest and
m_remoteResourceCache are captured by-move to initializers to this lambda.

But this means m_remoteResourceCache is changed on the main thread while
the WorkQueue thread may be accessing it to get a cached remote resource.
The EWS crashes showed that, RemoteRenderingBackend::stopListeningForIPC()
on the main thread is waiting its WorkQueue to stop and complete all its
work including the dispatched empty lambda. And the WorkQueue thread is
getting wrong resource counters from the RemoteResourceCache. This would
happen if the HashMaps of RemoteResourceCache were emptied on the main
thread while the counters had outdated values.

To fix this thread safety issue, the RemoteResourceCache should not ever
be changed on the main thread. Since capturing by-move is kind of change,
we will capture m_renderingResourcesRequest and m_remoteResourceCache by
reference and we let the dispatched lambda explicitly releases them on
the WorkQueue thread.

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

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

5:13 PM Changeset in webkit [292654] by Alan Coon
  • 6 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r291821. rdar://problem/89145552

REGRESSION(r286590): Links with URL schemes are not clickable in Mail
https://bugs.webkit.org/show_bug.cgi?id=238262
<rdar://89145552>

Reviewed by Geoffrey Garen.

This feature requires access to the Launch Services daemon in Mail and other apps on iOS.
This patch is a partial revert of r286590.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::nonBrowserServices): (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

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

5:13 PM Changeset in webkit [292653] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291816. rdar://problem/90599352

REGRESSION (Safari 15.4): Nonce from link isn't used when loading style sheet
https://bugs.webkit.org/show_bug.cgi?id=238014
<rdar://problem/90599352>

Reviewed by Brent Fulgham.

Source/WebCore:

In https://bugs.webkit.org/show_bug.cgi?id=179728 we implemented
nonce hiding from the DOM. It seems we missed once location
where we need to reference the element.nonce() instead of the
nonce attribute.

  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::process):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/stylesheet-allowed-with-nonce-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/stylesheet-allowed-with-nonce.py: Added.

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

5:13 PM Changeset in webkit [292652] by Alan Coon
  • 5 edits
    4 adds in branches/safari-613-branch

Cherry-pick r291813. rdar://problem/88761053

Safari can't play video completely at bilibili.com
https://bugs.webkit.org/show_bug.cgi?id=236440
rdar://88761053

Reviewed by Jer Noble.

Source/WebCore:

Video frames were incorrectly evicted during a call to appendBuffer
as the Source Buffer incorrectly assumed a discontinuity was present.

When appending data to a source buffer, the MSE specs describe a method
to detect discontinuities in the Coded Frame Processing algorithm
(https://www.w3.org/TR/media-source/#sourcebuffer-coded-frame-processing)
step 6:
"

  • If last decode timestamp for track buffer is set and decode timestamp is less than last decode timestamp: OR
  • If last decode timestamp for track buffer is set and the difference between decode timestamp and last decode timestamp is greater than 2 times last frame duration. " The issue being what defines the last frame duration. Is it the frame last seen in the coded frame processing loop or the frame whose presentation timestamp is just before the one we are currently processing.

H264 and HEVC have a concept of b-frames: that is a frame that depends
on a future frame to be decoded.
Those frames are found in the container and can be identified by their
presentation timestamp higher than the frame following in decode order.
Those present a challenge as the frame prior the current one in
presentation order, may actually only be found several frames back in
decode order.
Bug 181891 attempted to fix a similar issue, and used the longest
"decode duration" as a workaround to detect discontinuity in the content.
It mentioned adopting the same technique as in Mozilla's MSE
implementation, but Mozilla also skip discontinuity detection within a
media segment (https://www.w3.org/TR/media-source/#media-segment which for
fMP4 is a single moof box) an approach that can't be achieved with
CoreMedia's AVStreamDataParser.
As mentioned in bug 181891, CoreMedia ignore the decode timestamps' delta
and juggles with the sample's duration so that there's no discontinuity
in the demuxed samples' presentation time, causing false positive in the
gap detection algorithm.

Bilibili uses HEVC content, and uses an encoding that generate lots
of b-frames, with a very wide sliding window (seen up to 12 frames).
By using the longest frame duration found in either presentation or
decode duration as threshold to identify a discontinuity, we can
properly parse the content and not incorrectly evict appended frames.
(As a side note, the use of HEVC with B-Frames is peculiar as not all
hardware support it.)
It is difficult to identify here if the issue is within the bilibili's
content or CoreMedia's output, though the responsibility more than
likely lies with bilibili.

Test: media/media-source/media-mp4-hevc-bframes.html

  • platform/graphics/SourceBufferPrivate.cpp: (WebCore::SourceBufferPrivate::TrackBuffer::TrackBuffer): (WebCore::SourceBufferPrivate::resetTrackBuffers): (WebCore::SourceBufferPrivate::didReceiveSample):
  • platform/graphics/SourceBufferPrivate.h:

LayoutTests:

  • media/media-source/content/test-bframes-hevc-manifest.json: Added.
  • media/media-source/content/test-bframes-hevc.mp4: Added.
  • media/media-source/media-mp4-hevc-bframes-expected.txt: Added.
  • media/media-source/media-mp4-hevc-bframes.html: Added.

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

5:13 PM Changeset in webkit [292651] by Alan Coon
  • 4 edits in branches/safari-613-branch

Cherry-pick r291791. rdar://problem/90694727

REGRESSION (r287807): WEBGL_multi_draw validation rejecting valid arguments
https://bugs.webkit.org/show_bug.cgi?id=238239

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-24
Reviewed by Darin Adler.

Source/WebCore:

Fix off-by-one error causing full buffer multidraws to be
marked as invalid.

Enable the newer WebGL conformance tests that test this.

  • html/canvas/WebGLMultiDraw.cpp: (WebCore::WebGLMultiDraw::validateOffset):

LayoutTests:

Enable the newer WebGL conformance tests that test this, marked
Slow as they take a while to run.

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

5:13 PM Changeset in webkit [292650] by Alan Coon
  • 6 edits
    5 adds in branches/safari-613-branch

Cherry-pick r291741. rdar://problem/88979099

Computation of Document siteForCookies is buggy in case document is created by window.open
https://bugs.webkit.org/show_bug.cgi?id=238202
<rdar://88979099>

Reviewed by John Wilander.

Source/WebCore:

For top level navigations, we need to use the security origin to compute siteForCookies as the document
may have the opener security origin.
Add a Document routine to handle this case.

Tests: http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form.html

http/tests/cookies/same-site/popup-same-site-with-post-form.html

  • dom/Document.cpp:
  • dom/Document.h:
  • loader/FrameLoader.cpp:

LayoutTests:

  • http/tests/cookies/resources/testharness-helpers.js:
  • http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form-expected.txt: Added.
  • http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form.html: Added.
  • http/tests/cookies/same-site/popup-same-site-with-post-form-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-with-post-form.html: Added.
  • http/tests/cookies/same-site/resources/popup-iframe.html: Added.

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

5:13 PM Changeset in webkit [292649] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r291602. rdar://problem/89822922

Fix bug in Relationship::mergeImpl
https://bugs.webkit.org/show_bug.cgi?id=238183
<rdar://89822922>

Reviewed by Yusuke Suzuki.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

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

5:13 PM Changeset in webkit [292648] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r291601. rdar://problem/87345895

AirFixObviousSpills needs to consider a PreIndex and PostIndex as clobbering the Reg used for indexing
https://bugs.webkit.org/show_bug.cgi?id=238178
<rdar://87345895>

Reviewed by Mark Lam.

Inside AirFixObviousSpills, we run a basic alias analysis for StackSlots and
registers. For example, when we overwrite a register, we clear anything
it's aliased with. However, the way we were doing this was by looking at
each Arg that was Defd. However, this iteration was missing that
PostIndex/PreIndex mutate the register that feeds into the address Arg.
This patch fixes the issue by walking the instruction in such a way that
we visit all the Defs we care about, both Regs and StackSlots.

  • b3/air/AirFixObviousSpills.cpp:

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

5:13 PM Changeset in webkit [292647] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291526. rdar://problem/90385586

REGRESSION (r285529): Flash of missing text when content on https://ahumanfuture.co animates
https://bugs.webkit.org/show_bug.cgi?id=237972
rdar://90385586

Reviewed by Simon Fraser.

Source/WebCore:

Accelerated animations are added to a CALayer in two different ways.

Transform-related animations are added in a CAAnimationGroup so that we can have control of the
way they interact with each other. We added this system when we added support for individual CSS
transform properties on top of the existing "transform" property. All CAAnimationGroup animations
are timed to start at 1s and thus we subtract that same 1s value from all animations contained
within such groups.

All other animations, such as "opacity" animations, are added as simple leaf animations and their
begin time is not subject to that 1s subtraction.

In r285529, when we introduced leaf animations for transform properties other than transform-related
properties, we took an unfortunate approach to deal with that 1s subtraction. We would *always* subtract
1s for all animations, and for leaf animation add that 1s back when we added them in the
addLeafAnimation() lambda.

However, we *did not* check whether that animation was newly started or if we were merely adding it
again. This meant that every time GraphicsLayerCA::updateAnimations() was called, any leaf animation
would have 1s added to their begin time.

So, if for instance a page ran on a given element a "scale" animation for 1s and an "opacity" animation
for 2s, when the "scale" animation would complete, GraphicsLayerCA::updateAnimations() would be called
to remove that animation, and add 1s to the "opacity" animation begin time.

We now set the begin time, if not already set, in two places: in the addLeafAnimation() lambda for
leaf animations, and in the addAnimationsForProperty() lambda for animations added to groups. We
only ever set the begin time if not already set during a previous update and only subtract the
parent group begin time for animations contained within a group.

Additionally, this means we set the begin times when we iterate over remaining animations after culling
finished animations. As such, we no longer need to iterate over *all* known animations to set their
begin time if needed prior to adding them.

Test: webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a new test which would fail prior to the source change. In this test we start two animations: a "scale"
animation which lasts for 100ms, and an "opacity" animation which lasts much longer but only visually updates
for the duration of the "scale" animation. When the "scale" animation completes, we stop the test and ensure
that the reference test shows that the "opacity" animation is at the state it should be in at at that time,
and was not rewound due to the bug being fixed.

  • webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends-expected.html: Added.
  • webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends.html: Added.

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

5:13 PM Changeset in webkit [292646] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r291446. rdar://problem/90434296

Microsoft Teams fails to launch from Safari
https://bugs.webkit.org/show_bug.cgi?id=238045
<rdar://90434296>

Reviewed by Geoffrey Garen.

Extend MS Teams quirk to teams.microsoft.com, not just teams.live.com.

  • page/Quirks.cpp: (WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):

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

5:13 PM Changeset in webkit [292645] by Alan Coon
  • 9 edits in branches/safari-613-branch

Cherry-pick r291420. rdar://problem/90335275

REGRESSION (iOS 15.4 / r287669): Mobile app stopped working due to CSS / angular animation
https://bugs.webkit.org/show_bug.cgi?id=237920
LayoutTests/imported/w3c:

<rdar://problem/90335275>

Reviewed by Antti Koivisto.

Add a test that looks at the default computed style for the "transition" and "animation"
shorthands.

  • web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-computed.html:
  • web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
  • web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
  • web-platform-tests/css/css-transitions/parsing/transition-computed-expected.txt:
  • web-platform-tests/css/css-transitions/parsing/transition-computed.html:

Source/WebCore:

Reviewed by Antti Koivisto.

We refactored the computed style output for the "transition" and "animation" shorthand
properties in r287669 and always returned a CSSValueList, even when the list of transitions
or animations was empty. This meant that for an element without any transition or animation
properties, we'd return the empty string for those properties.

Now we return the computed style for a default animation instead.

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::animationShorthandValue):

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

5:13 PM Changeset in webkit [292644] by Alan Coon
  • 4 edits
    6 adds in branches/safari-613-branch

Cherry-pick r290628. rdar://problem/85814854

Compositing/paint invalidation with transforms
https://bugs.webkit.org/show_bug.cgi?id=233421
<rdar://problem/85814854>

Reviewed by Alan Bujtas.

Source/WebCore:

When changing transform from something like translate(0) to `translate3d(0, 0, 0)
scale(0.5, 0.5)`, we trigger compositing, and thus need to repaint the previous rect of the
layer in its old repaint container. However, the existing code would take the new transform
into account when computing that rect, thus dirtying a rect that is too small.

To fix this, we need to use the cached repaint rects on RenderLayer for this repaint.
However, doing so revealed a bug (via
compositing/shared-backing/repaint-into-shared-backing.html) in how we compute repaint
cached repaint rects in the presence of shared backing. During a compositing update, if a
layer's composited state changed, we'd call computeRepaintRectsIncludingDescendants(), which
computes rect relative to the layer's repaint container. But at this time, the state of
backing sharing in BackingSharingState is in flux (we essentially don't know yet if a layer
can use shared backing). So we may compute and cache repaint rects relative to the wrong
container.

To fix this, leverage the existing m_layersPendingRepaint logic, and delay computing the
repaint rects until we've established our final backing sharing configuration.

Tests: compositing/repaint/composite-and-scale-change.html

compositing/shared-backing/repaint-into-shared-backing-become-composited.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::setBackingProviderLayer): (WebCore::RenderLayer::calculateClipRects const):
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::BackingSharingState::issuePendingRepaints): (WebCore::RenderLayerCompositor::updateBacking):

LayoutTests:

  • compositing/repaint/composite-and-scale-change-expected.txt: Added.
  • compositing/repaint/composite-and-scale-change.html: Added.

Test that dumps repaint rects.

  • compositing/shared-backing/repaint-into-shared-backing-become-composited-expected.html: Added.
  • compositing/shared-backing/repaint-into-shared-backing-become-composited.html: Added.

Companion to repaint-into-shared-backing.html but toggles compositing in the other
direction.

  • platform/gtk/compositing/repaint/composite-and-scale-change-actual.txt: Added.
  • platform/mac-wk1/compositing/repaint/composite-and-scale-change-expected.txt: Added.

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

5:04 PM Changeset in webkit [292643] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.9.1

Tag WebKit-7614.1.9.1.

4:41 PM Changeset in webkit [292642] by Truitt Savell
  • 3 edits in trunk/Source/WTF

Unreviewed, reverting r292586.

Caused 50+ test failures on Mac wk1

Reverted changeset:

"Move long-enabled preferences away from experimental"
https://bugs.webkit.org/show_bug.cgi?id=238929
https://commits.webkit.org/r292586

4:00 PM Changeset in webkit [292641] by Chris Dumez
  • 13 edits in trunk/Source

Drop unused pluginReplacementScriptObject
https://bugs.webkit.org/show_bug.cgi?id=239008

Reviewed by Geoff Garen.

Drop unused pluginReplacementScriptObject as it is always null.

Source/WebCore:

  • Modules/plugins/PluginReplacement.h:

(): Deleted.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::installReplacement):

  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginScriptObject):
(WebCore::pluginElementCustomGetCallData):
(WebCore::pluginScriptObjectFromPluginViewBase): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::JSTestPluginInterface::visitChildrenImpl):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Deleted.

  • html/HTMLPlugInElement.h:

(WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Deleted.

  • plugins/PluginViewBase.h:

(WebCore::PluginViewBase::scriptObject): Deleted.

Source/WebKit:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::scriptObject): Deleted.

  • WebProcess/Plugins/PluginView.h:
3:56 PM Changeset in webkit [292640] by Elliott Williams
  • 35 edits in trunk

[Xcode] Avoid targeting 32-bit iOS and Mac architectures
https://bugs.webkit.org/show_bug.cgi?id=238971

Reviewed by Alexey Proskuryakov.

PerformanceTests:

  • DecoderTest/Configurations/DebugRelease.xcconfig:
  • MediaTime/Configurations/DebugRelease.xcconfig:

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

Modern Xcode supports building armv7 iOS and i386 macOS, but only when targeting older OSes.
We do not support these targets, but our ARCHS override implies we do. Remove our setting
and use the default.

This improves support for building directly from WebKit.xcworkspace to a generic/*
destination.

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore/PAL:

  • Configurations/DebugRelease.xcconfig:

Source/WebGPU:

  • Configurations/DebugRelease.xcconfig:

Source/WebInspectorUI:

  • Configurations/DebugRelease.xcconfig:

Source/WebKit:

  • Configurations/DebugRelease.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/DebugRelease.xcconfig:

Source/WTF:

  • Configurations/DebugRelease.xcconfig:

Tools:

  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • MobileMiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
3:47 PM Changeset in webkit [292639] by Oriol Brufau
  • 7 edits in trunk/Source/WebCore

[css-cascade] Sort deferred properties at the end of CSSPropertyID enum
https://bugs.webkit.org/show_bug.cgi?id=238345

Reviewed by Darin Adler.

Bug 238260 will optimize the logic for cascading deferred properties.
This sorts them at the end, after low priority ones, which will allow
some further optimizations.
This is in preparation of bug 238260, which plans to turn all logical
and physical properties into deferred.

No new tests since there should be no change in behavior.

  • css/makeprop.pl:

(sortByDescendingPriorityAndName):
Sort deferred properties at the end of CSSPropertyID enum.
Add firstHighPriorityProperty, firstLowPriorityProperty,
lastLowPriorityProperty, firstDeferredProperty and lastDeferredProperty.

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::set):
(WebCore::Style::PropertyCascade::setDeferred):
(WebCore::Style::PropertyCascade::addMatch):
(WebCore::Style::shouldApplyPropertyInParseOrder): Deleted.
Delete shouldApplyPropertyInParseOrder(), since instead we can just
compare the CSSPropertyId and firstDeferredProperty with < or >=.

  • style/PropertyCascade.h:

(WebCore::Style::PropertyCascade::hasNormalProperty const):
(WebCore::Style::PropertyCascade::normalProperty const):
(WebCore::Style::PropertyCascade::hasDeferredProperty const):
(WebCore::Style::PropertyCascade::hasProperty const): Deleted.
(WebCore::Style::PropertyCascade::property const): Deleted.
Rename hasProperty() and property() to hasNormalProperty() and
normalProperty(), to make it clear they are not for deferred properties.
Reduce the size of m_properties array and m_propertyIsPresent bitset,
since they don't need to include deferred properties.

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyAllProperties):
(WebCore::Style::Builder::applyHighPriorityProperties):
(WebCore::Style::Builder::applyNonHighPriorityProperties):
(WebCore::Style::Builder::applyPropertiesImpl):
(WebCore::Style::Builder::applyProperty):
(WebCore::Style::Builder::applyLowPriorityProperties): Deleted.
Rename applyLowPriorityProperties() to applyNonHighPriorityProperties()
to make it clear that it includes custom and deferred properties.
Use the new firstHighPriorityProperty and lastLowPriorityProperty
constants for clarity and to skip deferred properties.
Rename hasProperty() and property() to hasNormalProperty() and
normalProperty(), to make it clear they are not for deferred properties.

  • style/StyleBuilder.h:

Rename applyLowPriorityProperties() to applyNonHighPriorityProperties()
to make it clear that it includes custom and deferred properties.

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::applyMatchedProperties):
Rename applyLowPriorityProperties() to applyNonHighPriorityProperties()
to make it clear that it includes custom and deferred properties.

3:07 PM Changeset in webkit [292638] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Simplify / Optimize the whitespace cache implementation
https://bugs.webkit.org/show_bug.cgi?id=238736
<rdar://problem/91255370>

Reviewed by Darin Adler.

Follow-up to r292310 to add missing blank lines.

  • html/parser/HTMLConstructionSite.h:
3:00 PM Changeset in webkit [292637] by mmaxfield@apple.com
  • 11 edits in trunk/Source/WebGPU

[WebGPU] Implement destroy() methods
https://bugs.webkit.org/show_bug.cgi?id=238723

Reviewed by Dean Jackson.

The destroy() methods cause objects to become invalid. This is important because
the test suite creates and destroys lots of objects, and we want to make sure we
free up resources before GC runs.

This patch also makes Device own a Ref<Adapter> instead of Ref<Instance> because
part of the implementation of Device::destroy() involves interacting with its
adapter.

  • WebGPU/Adapter.h:

(WebGPU::Adapter::makeInvalid):
(WebGPU::Adapter::instance const):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):

  • WebGPU/Buffer.h:
  • WebGPU/Device.h:

(WebGPU::Device::createInvalid):
(WebGPU::Device::instance const):
(WebGPU::Device::makeInvalid):

  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::Device):
(WebGPU::Device::loseTheDevice):
(WebGPU::Device::destroy):
(WebGPU::Device::generateAValidationError):
(WebGPU::Device::popErrorScope):

  • WebGPU/QuerySet.h:
  • WebGPU/QuerySet.mm:

(WebGPU::QuerySet::destroy):

  • WebGPU/Queue.h:

(WebGPU::Queue::makeInvalid):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::destroy):

2:40 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:39 PM Changeset in webkit [292636] by Oriol Brufau
  • 6 edits in trunk/Source/WebCore

[css-cascade] Merge getRelatedPropertyId() and shouldApplyPropertyInParseOrder()
https://bugs.webkit.org/show_bug.cgi?id=238350

Reviewed by Darin Adler.

Both getRelatedPropertyId() and shouldApplyPropertyInParseOrder() pursue
the same thing: if there are two properties (typically a standard one
and a -webkit- prefixed one) which share the same field in RenderStyle,
then we should take specified order into account when applying them.

The problem is that the logic for getRelatedPropertyId() doesn't work
well in all cases. It was only used for -webkit-text-orientation and
text-orientation, but bug 238356 implemented the former as a shorthand.
So now there is no consumer of getRelatedPropertyId().

On the other hand, shouldApplyPropertyInParseOrder() works better, but
it will need to be automatically generated for bug 238345, and bug
238125 will need to know which property shares a computed value with a
given one.

So this patch removes the consumers of the old getRelatedPropertyId(),
and changes shouldApplyPropertyInParseOrder() to be based on it.

No new tests since there is no change in behavior.

  • css/CSSProperties.json:

Mark properties for which shouldApplyPropertyInParseOrder() returned
true with the "related-property" flag.

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
Remove old getRelatedPropertyId() logic which was unused.

  • css/makeprop.pl:

Throw errors if "related-property" flag is invalid.

  • css/parser/CSSParserImpl.cpp:

(WebCore::filterProperties):
Remove old getRelatedPropertyId() logic which was unused.

  • style/PropertyCascade.cpp:

(WebCore::Style::shouldApplyPropertyInParseOrder):
Base shouldApplyPropertyInParseOrder() on getRelatedPropertyId().

2:35 PM Changeset in webkit [292635] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Search query containers for ::slotted and and ::part rules in their scope
https://bugs.webkit.org/show_bug.cgi?id=238997

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom-expected.txt:

Source/WebCore:

"For selectors with pseudo elements, query containers can be established by the shadow-including inclusive ancestors of
the ultimate originating element."

https://drafts.csswg.org/css-contain-3/#container-queries

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::ContainerQueryEvaluator):
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):
(WebCore::Style::ContainerQueryEvaluator::selectContainer):

For rules coming from a non-local scope, search query container starting from the originating element in that scope.

  • style/ContainerQueryEvaluator.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::containerQueriesMatch):

Pass rule's style scope ordinal so we can find the right scope.

  • style/ElementRuleCollector.h:
2:33 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:25 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
1:36 PM Changeset in webkit [292634] by Jonathan Bedard
  • 6 edits in trunk/Tools

[Merge-Queue] Create seperate queue for unsafe version
https://bugs.webkit.org/show_bug.cgi?id=239005
<rdar://problem/91484664>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json: Add Unsafe-Merge-Queue.
  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.handle_pull_request): merge-queue and unsafe-merge-queue
should trigger different queues.

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

(CommitQueueFactory.init):
(MergeQueueFactoryBase): Moved from MergeQueueFactory.
(MergeQueueFactory): Depend on MergeQueueFactoryBase.
(UnsafeMergeQueueFactory): Added.
(UnsafeMergeQueueFactory.init):

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

(TestExpectedBuildSteps):

  • Tools/CISupport/ews-build/loadConfig.py: Import UnsafeMergeQueueFactory.

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

1:32 PM Changeset in webkit [292633] by Brent Fulgham
  • 4 edits in trunk/Source

Move WebGPU to WebCore/features.json and add <model> element
https://bugs.webkit.org/show_bug.cgi?id=238981

Reviewed by Myles C. Maxfield

Source/JavaScriptCore:

Move WebGPU stuff to the WebCore features.json file.

  • features.json:

Source/WebCore:

This patch makes the following corrections:

  1. Moves the WebGPU Specification definition from JavaScriptCore/features.json to WebCore/features.json
  2. Removes the extraneous WebGPU "feature" from both files.
  3. Adds the HTML <model> element.
  • features.json:
1:29 PM Changeset in webkit [292632] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

Unreviewed, reverting r292429.
https://bugs.webkit.org/show_bug.cgi?id=239011

Introduced Data Detectors regression in Mail

Reverted changeset:

"Unreviewed, reverting r291821."
https://bugs.webkit.org/show_bug.cgi?id=238839
https://commits.webkit.org/r292429

1:27 PM Changeset in webkit [292631] by commit-queue@webkit.org
  • 9 edits
    3 deletes in trunk/Source/WebKit

Remove unneeded CoreIPC messages and corresponding handlers related to StorageManagerSet
https://bugs.webkit.org/show_bug.cgi?id=238938

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-04-08
Reviewed by Chris Dumez.

There are various CoreIPC messages related to StorageManagerSet which are no longer needed. This
change removes them.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp: Removed.
  • NetworkProcess/WebStorage/StorageManagerSet.h: Removed.
  • NetworkProcess/WebStorage/StorageManagerSet.messages.in: Removed.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebStorage/StorageAreaMap.cpp:
1:11 PM Changeset in webkit [292630] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer][WebRTC] Fix data-channel handler build for GStreamer 1.21
https://bugs.webkit.org/show_bug.cgi?id=238989

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-08
Reviewed by Xabier Rodriguez-Calvar.

The GST_WEBRTC_DATA_CHANNEL_STATE_NEW enum value was removed from public API in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2099.

  • Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:

(WebCore::GStreamerDataChannelHandler::checkState):

12:56 PM Changeset in webkit [292629] by Jonathan Bedard
  • 4 edits in trunk/Source

[iOS 15.4] Fix embedded device build
https://bugs.webkit.org/show_bug.cgi?id=239012
<rdar://problem/91495761>

Reviewed by Ryan Haddad.

  • Source/ThirdParty/ANGLE/Configurations/Base.xcconfig: Allow AdHoc codesigning.
  • Source/WebKit/Configurations/Base.xcconfig: Ditto.

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

12:54 PM Changeset in webkit [292628] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][2.36] Build with a11y disabled fails
https://bugs.webkit.org/show_bug.cgi?id=239004

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-08
Reviewed by Michael Catanzaro.

Add accessibility build guards.

  • UIProcess/Launcher/glib/XDGDBusProxy.cpp:

(WebKit::XDGDBusProxy::XDGDBusProxy):
(WebKit::XDGDBusProxy::launch const):

11:41 AM Changeset in webkit [292627] by Chris Dumez
  • 12 edits in trunk/Source

static_pointer_cast<>() may cause some unnecessary ref-counting churn
https://bugs.webkit.org/show_bug.cgi?id=238961

Reviewed by Darin Adler.

Source/WebCore:

  • dom/TreeScope.cpp:

(WebCore::TreeScope::elementFromPoint):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::textNodeForRebalance const):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::firstInSpecialElement):
(WebCore::lastInSpecialElement):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):

  • page/ImageOverlayController.cpp:

(WebCore::ImageOverlayController::selectionQuadsDidChange):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::pageDestroyed):

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::pageDestroyed):

Source/WTF:

  • wtf/RefPtr.h:

(WTF::adoptRef):
(WTF::static_pointer_cast):

11:29 AM Changeset in webkit [292626] by Elliott Williams
  • 35 edits in trunk

Unreviewed, reverting r292591.

Causing spurious EWS errors

Reverted changeset:

"[XCBuild] Enable dependency validation by default"
https://bugs.webkit.org/show_bug.cgi?id=238901
https://commits.webkit.org/r292591

11:19 AM Changeset in webkit [292625] by Matteo Flores
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r292521.

This broke the test further.

Reverted changeset:

"[ Mac ] accessibility/mac/expanded-notification.html is a
flaky text failure"
https://bugs.webkit.org/show_bug.cgi?id=238830
https://commits.webkit.org/r292521

10:58 AM Changeset in webkit [292624] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebKit

Remove misc unused CoreIPC messages/handlers that have no instances of messages being dispatched to them
https://bugs.webkit.org/show_bug.cgi?id=238996

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-04-08
Reviewed by Chris Dumez.

Remove misc unused CoreIPC messages/handlers that have no instances of messages being dispatched to them. This includes:
WebPage::FrameBecameRemote, WebInspectorUIProxy::BringInspectedPageToFront, WebProcess::refreshPlugins, NetworkProcess::SetQOS
WebPage::GetPositionInformation, WebPage::InvalidateMediaSessionCoordinator, RemoteCDMInstanceSessionProxy::DisplayIDChanged.

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:

(WebKit::RemoteCDMInstanceSessionProxy::displayIDChanged): Deleted.

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.h:
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.messages.in:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::bringInspectedPageToFront): Deleted.

  • UIProcess/Inspector/WebInspectorUIProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createMediaSessionCoordinator):
(WebKit::WebPage::frameBecameRemote): Deleted.
(WebKit::WebPage::invalidateMediaSessionCoordinator): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::isObscuredElement):
(WebKit::WebPage::getPositionInformation): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::refreshPlugins): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
10:58 AM Changeset in webkit [292623] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 133

Added a tag for Safari Technology Preview release 133.

10:58 AM Changeset in webkit [292622] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 134

Added a tag for Safari Technology Preview release 134.

10:55 AM Changeset in webkit [292621] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 135

Added a tag for Safari Technology Preview release 135.

10:55 AM Changeset in webkit [292620] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 136

Added a tag for Safari Technology Preview release 136.

10:54 AM Changeset in webkit [292619] by Chris Dumez
  • 26 edits in trunk/Source

Reduce number of StringView to String conversions in JSC
https://bugs.webkit.org/show_bug.cgi?id=238911

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::LazyJSValue::getValue const):
Resolve ambiguity by explicitly converting the StringImpl to a String before
calling jsString(). [1]

  • jsc.cpp:

Avoid constructing a String from the StringView, just to compute a hash.
Instead, rely on the StringViewHashTranslator for this.

  • profiler/ProfilerOSRExit.cpp:

(JSC::Profiler::OSRExit::toJS const):
exitKindToString() returns an ASCIILiteral whose length is always greater
than 1 so we can call the more efficient jsNontrivialString() instead of
jsString(). Calling jsString() here had become ambiguous because an
ASCIILiteral can be implicitely converted to both a String and a
StringView [2].

  • runtime/ArrayPrototype.cpp:

(JSC::fastJoin):
Call the new jsString() overload that takes a StringView, to avoid
unnecessarily constructing a String in the case where the length is <= 1 [3].

  • runtime/ErrorInstance.cpp:

(JSC::appendSourceToErrorMessage):

  • runtime/ErrorInstance.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::defaultApproximateSourceError):
(JSC::defaultSourceAppender):
(JSC::functionCallBase):
(JSC::notAFunctionSourceAppender):
(JSC::invalidParameterInSourceAppender):
(JSC::invalidParameterInstanceofSourceAppender):
(JSC::invalidParameterInstanceofNotFunctionSourceAppender):
(JSC::invalidParameterInstanceofhasInstanceValueNotFunctionSourceAppender):
(JSC::invalidPrototypeSourceAppender):

  • runtime/ExceptionHelpers.h:

Call SourceAppender with a StringView since this is what we have. In most
cases, these appenders end up calling makeString() and it is thus beneficial
to avoid temporary/intermediate String constructions.

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::toStringSlow):
Same as [3].

  • runtime/IdentifierInlines.h:

(JSC::identifierToJSValue):
(JSC::identifierToSafePublicJSValue):
Same as [1].

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::formatToParts const):
(JSC::IntlDateTimeFormat::formatRangeToParts):

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::textInfo):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::formatRangeToPartsInternal):
(JSC::IntlNumberFormat::formatToPartsInternal):
Same as [2].

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::formatToParts const):
Same as [3].

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::JSArrayBufferPrototype::finishCreation):
Same as [2].

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::requestImportModule):
(JSC::JSC_DEFINE_HOST_FUNCTION):
Same as [1].

  • runtime/JSString.h:

(JSC::jsString):
Add a jsString() overload that takes in a StringView instead of a String.
This avoids construction of a String for call sites having a StringView
in the event where the view's length is <= 1.

  • runtime/SymbolConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
Same as [1].

Source/WTF:

Provide a reverseFind(StringView, unsigned) overload on StringView, for consistency
with String and to facilitate the converting of code from String to StringView.

  • wtf/text/StringCommon.h:

(WTF::reverseFindInner):

  • wtf/text/StringImpl.cpp:

(WTF::reverseFindInner): Deleted.

  • wtf/text/StringView.cpp:

(WTF::StringView::reverseFind const):

  • wtf/text/StringView.h:
10:53 AM Changeset in webkit [292618] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 137

Added a tag for Safari Technology Preview release 137.

10:53 AM Changeset in webkit [292617] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 138

Added a tag for Safari Technology Preview release 138.

10:53 AM Changeset in webkit [292616] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 139

Added a tag for Safari Technology Preview release 139.

10:52 AM Changeset in webkit [292615] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 140

Added a tag for Safari Technology Preview release 140.

10:52 AM Changeset in webkit [292614] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 142

Added a tag for Safari Technology Preview release 142.

10:51 AM Changeset in webkit [292613] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 124

Added a tag for Safari Technology Preview release 124.

10:50 AM Changeset in webkit [292612] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 123

Added a tag for Safari Technology Preview release 123.

10:48 AM Changeset in webkit [292611] by Simon Fraser
  • 6 edits in trunk/Source/WebKit

Have GPU Process call lowMemoryHandler() on each RemoteRenderingBackend
https://bugs.webkit.org/show_bug.cgi?id=238967

Reviewed by Tim Horton.

Hook up RemoteRenderingBackend::lowMemoryHandler(), which doesn't do anything yet,
but will clear the IOSurface pool.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::lowMemoryHandler):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::lowMemoryHandler):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::lowMemoryHandler):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
10:48 AM Changeset in webkit [292610] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 122

Added a tag for Safari Technology Preview release 122.

9:41 AM Changeset in webkit [292609] by keith_miller@apple.com
  • 4 edits in trunk/Source

Broaden TypedArray API fix to all apps not just Bleacher Report
https://bugs.webkit.org/show_bug.cgi?id=238955

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • API/JSTypedArray.cpp:

(isLinkedBeforeTypedArrayLengthQuirk):
(JSObjectGetArrayBufferByteLength):
(isBleecherReport): Deleted.

Source/WTF:

  • wtf/cocoa/RuntimeApplicationChecksCocoa.h:
8:16 AM Changeset in webkit [292608] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

imported/blink/fast/multicol/vertical-lr/float-content-break.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239002

Unreviewed.

  • platform/mac/TestExpectations:
8:10 AM Changeset in webkit [292607] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Merge-Queue] Add queue triggered by label addition (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=237615
<rdar://problem/89983452>

Unreviewed device management.

  • Tools/CISupport/ews-build/config.json: Remove ews151 from Merge-Queue

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

8:00 AM Changeset in webkit [292606] by Alan Bujtas
  • 26 edits in trunk

Do not use std::numeric_limits<float>::min() as the initial value to collect max values for glyph overflow
https://bugs.webkit.org/show_bug.cgi?id=238334

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt:

Source/WebCore:

With zero height glpyhs, glyph (vertical)overflow may still back as 1px due to ceilf(std::max(0.f, std::numeric_limits<float>::min())).
(see WidthIterator::advanceInternal() -> m_maxGlyphBoundingBoxY = std::max(m_maxGlyphBoundingBoxY, bounds.maxY())
and FontCascade::floatWidthForSimpleText() -> std::max<int>(glyphOverflow->bottom, ceilf(it.maxGlyphBoundingBoxY()) - (glyphOverflow->computeBounds ? 0 : metricsOfPrimaryFont().descent())))

  • platform/graphics/ComplexTextController.h:
  • platform/graphics/WidthIterator.h:

LayoutTests:

  • platform/ios/fast/block/lineboxcontain/glyphs-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-basic-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-border-padding-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-raised-expected.txt:
  • platform/ios/fast/css-generated-content/initial-letter-sunken-expected.txt:
  • platform/ios/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/ios/mathml/presentation/roots-expected.txt:
  • platform/mac/fast/block/lineboxcontain/glyphs-expected.txt:
  • platform/mac/fast/css-generated-content/initial-letter-basic-expected.txt:
  • platform/mac/fast/css-generated-content/initial-letter-border-padding-expected.txt:
  • platform/mac/fast/css-generated-content/initial-letter-raised-expected.txt:
  • platform/mac/fast/css-generated-content/initial-letter-sunken-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/mac/mathml/presentation/roots-expected.txt:
7:52 AM Changeset in webkit [292605] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Comment on PR when failing validation
https://bugs.webkit.org/show_bug.cgi?id=238969
<rdar://problem/91451392>

Reviewed by Aakash Jain.

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

(ValidateChangeLogAndReviewer.evaluateCommand): Add BlockPullRequest on failure.
(ValidateCommitMessage.evaluateCommand): Block and comment on pull request if
validation fails.

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

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

7:32 AM Changeset in webkit [292604] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

[ iOS EWS ] fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=237218
<rdar://problem/89484834>

Unreviewed.

  • fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html:
  • fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html: Change font family to Ahem.
7:22 AM Changeset in webkit [292603] by Andres Gonzalez
  • 6 edits
    2 moves
    5 adds
    1 delete in trunk/LayoutTests

Fix for accessibility/table-sections.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=238970
<rdar://problem/91451873>

Reviewed by Chris Fleizach.

Fixed this test in ITM by splitting the test into two smaller, faster
tests:
accessibility/table-multiple-tbodies.html
accessibility/table-thead-tfoot.html
In addition, the new tests write to the console only once after all the
accessibility calls are made.

  • TestExpectations: Removed the old test marked as Slow.
  • accessibility/resources/table-helper.js: Added.

(tableProperties): Helper function used in several tests.

  • accessibility/table-attributes.html:
  • accessibility/table-multiple-tbodies-expected.txt: Copied from LayoutTests/accessibility/table-sections-expected.txt.
  • accessibility/table-multiple-tbodies.html: Added.
  • accessibility/table-sections.html: Removed.
  • accessibility/table-thead-tfoot-expected.txt: Added.
  • accessibility/table-thead-tfoot.html: Added.
  • platform/glib/accessibility/table-multiple-tbodies-expected.txt: Renamed from LayoutTests/accessibility/table-sections-expected.txt.
  • platform/glib/accessibility/table-sections-expected.txt: Removed.
  • platform/glib/accessibility/table-thead-tfoot-expected.txt: Added.
  • platform/win/TestExpectations:
  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
7:11 AM Changeset in webkit [292602] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Reset git-svn cache on commit failure
https://bugs.webkit.org/show_bug.cgi?id=238975
<rdar://problem/91454550>

Reviewed by Aakash Jain.

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

(PushCommitToWebKitRepo.evaluateCommand): Reset git-svn cache if commit fails.
(ResetGitSvn): Reset git-svn cache by removing .git/svn.

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

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

5:41 AM Changeset in webkit [292601] by clopez@igalia.com
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update patchelf recipe
https://bugs.webkit.org/show_bug.cgi?id=238976

Reviewed by Philippe Normand.

Update patchelf to the last stable release (0.14.5)
patchelf is needed by the script generate-bundle.

  • elements/sdk/patchelf.bst:
5:37 AM Changeset in webkit [292600] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.34.7

WPE WebKit 2.34.7

4:56 AM Changeset in webkit [292599] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit

[GTK] RemoteInspector: update target list page contents on change instead of reloading
https://bugs.webkit.org/show_bug.cgi?id=238990

Reviewed by Adrian Perez de Castro.

We can use webkit_web_view_run_javascript() to replace the target list with the new one. This also fixes the race
condition when loading inspector:// for the first time that target list is always empty. The web view HashSet is
now a HashMap where the value is a pointer to the client to be able to associate web view with its client
without having to check the host and port.

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::~RemoteInspectorProtocolHandler): Disconnect web view signals.
(WebKit::RemoteInspectorProtocolHandler::handleRequest): On new web view, connect to notify::uri and remove the
web view if it's no longer showing an inspector page list.
(WebKit::RemoteInspectorProtocolHandler::updateTargetList): Update the target list html.
(WebKit::RemoteInspectorProtocolHandler::webViewLoadChanged): Call updateTargetList() when load finished.
(WebKit::RemoteInspectorProtocolHandler::targetListChanged): Call updateTargetList() for web views that are not
loading. For loading web view connect to load-event to update the target list once the load finishes.
(WebKit::RemoteInspectorProtocolHandler::connectionClosed): Remove the associated web views.

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.h:
  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::appendTargertList const): Append the target list html to the given GString.
(WebKit::RemoteInspectorClient::buildTargetListPage const): Use appendTargertList() now.

  • UIProcess/Inspector/glib/RemoteInspectorClient.h:
4:15 AM Changeset in webkit [292598] by Andres Gonzalez
  • 3 edits in trunk/LayoutTests

Fix for accessibility/roles-table-and-cell.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=238936
<rdar://problem/91414958>

Reviewed by Chris Fleizach.

Fixes this test in isolated tree mode by not writing to the console
until the end of the test.

  • accessibility/roles-table-and-cell-expected.txt:
  • accessibility/roles-table-and-cell.html:
3:23 AM Changeset in webkit [292597] by Carlos Garcia Campos
  • 7 edits in trunk/Source

Web Inspector: Use computedStyleMap() instead of deprecated getPropertyCSSValue()
https://bugs.webkit.org/show_bug.cgi?id=238661

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Add Element.getComputedCSSPropertyNumberValue() instead of using computedStyleMap() directly to have a fallback
in case CSS_TYPED_OM is disabled in build.

  • UserInterface/Base/Utilities.js:

(get return):

  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.isEventWithinDisclosureTriangle):

  • UserInterface/Views/TabBar.js:

(WI.TabBar.prototype._handleMouseMoved.inlineStyleValue):
(WI.TabBar.prototype._handleMouseMoved):

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.isEventWithinDisclosureTriangle):

Source/WebKit:

Ensure CSS Type OM is enabled in inspector frontend page.

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::enableFrontendFeatures):

2:59 AM Changeset in webkit [292596] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Take top layers into account in addLayers/removeLayers
https://bugs.webkit.org/show_bug.cgi?id=238946

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-08
Reviewed by Simon Fraser.

Take top layers into account in addLayers/removeLayers, they
should use the RenderView layer as parent (emulating layerParent).

  • rendering/RenderElement.cpp:

(WebCore::addLayers):
(WebCore::RenderElement::addLayers):
(WebCore::RenderElement::removeLayers):
(WebCore::RenderElement::willBeRemovedFromTree):

  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

1:30 AM Changeset in webkit [292595] by commit-queue@webkit.org
  • 19 edits
    20 moves
    23 adds in trunk

Incorrect CORP/COEP check in 304 responses
https://bugs.webkit.org/show_bug.cgi?id=238238
<rdar://problem/90706510>

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-04-08
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Sync cross-origin-embedder-policy tests to include the new test require-corp-revalidated-images.https.html.

  • web-platform-tests/html/cross-origin-embedder-policy/block-local-documents-inheriting-none.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.js.headers: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.tentative.https.window.js.headers.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/w3c-import.log:
  • web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html.headers:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-cached-images.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-cached-images.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/resources/corp-image.py:

(main):

  • web-platform-tests/html/cross-origin-embedder-policy/resources/fetch-and-create-url.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/resources/load-corp-images.html:
  • web-platform-tests/html/cross-origin-embedder-policy/resources/w3c-import.log:
  • web-platform-tests/html/cross-origin-embedder-policy/resources/worker-support.js: Added.

(setCoep):
(resolveUrl):
(async withIframe):
(waitForMessage):
(async createLocalUrl):

  • web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/w3c-import.log:

Source/WebKit:

Add CORP header to the 304 response if previously set to avoid being blocked by load checker due to COEP.

Test: imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https.html

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

LayoutTests:

Mark some tests with DumpJSConsoleLogInStdErr modifier.

Apr 7, 2022:

11:58 PM Changeset in webkit [292594] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] Fire structure transition watchpoint in Structure::finishCreation instead of Structure constructor
https://bugs.webkit.org/show_bug.cgi?id=238980

Reviewed by Saam Barati.

JSTests:

  • stress/heap-allocation-in-did-structure-transition-watchpoint.js: Added.

(isPropertyOfType):
(
getProperties):
(getObjects):
(
getRandomObject):
(getRandomProperty):
(
callGC):
(get var):

Source/JavaScriptCore:

After https://github.com/WebKit/WebKit/commit/dc3a347474a183891f8e07966dc09e684d7a1d13 change,
we start using Structure::get in the main thread. However one of the difference between Structure::get and
Structure::getConcurrently is that it can allocate GC memory: PropertyTable can be materialized.

Structure constructor was firing structure transition watchpoint. And some of watchpoints were using
Structure::getConcurrently. That's fine before, but now, it becomes Structure::get. It is not OK since
we cannot allocate GC memory inside constructor of GC managed objects.

This patch split didTransitionFromThisStructure into didTransitionFromThisStructureWithoutFiringWatchpoint and
fireStructureTransitionWatchpoint. And firing watchpoints in Structure::finishCreation instead of Structure
constructor so that we can allocate GC memory while firing watchpoints.

  • runtime/BrandedStructure.cpp:

(JSC::BrandedStructure::BrandedStructure):
(JSC::BrandedStructure::create):

  • runtime/BrandedStructure.h:
  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::didTransitionFromThisStructureWithoutFiringWatchpoint const):
(JSC::Structure::fireStructureTransitionWatchpoint const):
(JSC::Structure::didTransitionFromThisStructure const):

  • runtime/Structure.h:

(JSC::Structure::finishCreation):

  • runtime/StructureInlines.h:

(JSC::Structure::create):

10:40 PM Changeset in webkit [292593] by J Pascoe
  • 8 edits in trunk/Source/WebKit

[WebAuthn] Support all CTAP transports and remove gesture requirement for virtual authenticators
https://bugs.webkit.org/show_bug.cgi?id=238814
rdar://problem/91300515

Reviewed by Brent Fulgham.

This patch adds support for the other CTAP virtual authenticator transports and removes
the user gesture requirement when using virtual authenticators. These changes are needed
to run the webauthn web-platform-tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::WebCore::collectTransports):
(WebKit::AuthenticatorManager::filterTransports const):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp:

(WebKit::MockAuthenticatorManager::filterTransports const):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:

(WebKit::VirtualAuthenticatorManager::createAuthenticator):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h:
  • UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.mm:

(WebKit::VirtualLocalConnection::verifyUser):

  • UIProcess/WebAuthentication/Virtual/VirtualService.mm:

(WebKit::VirtualService::startDiscoveryInternal):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):

9:59 PM Changeset in webkit [292592] by Antti Koivisto
  • 6 edits in trunk

[CSS Container Queries] Evaluate against shadow-including ancestors
https://bugs.webkit.org/show_bug.cgi?id=238934

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.html:

Add declarative shadow DOM polyfill.

Source/WebCore:

"Style rules applying to its shadow-including descendants can then be conditioned by querying against it,
using the @container conditional group rule."

https://drafts.csswg.org/css-contain-3/#container-queries

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::selectContainer):

Evaluate against shadow-including ancestors instead of flat tree ancestors if the cache is not available.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Scope::Scope):

Copy the container state when pushing scope. This also creates a stack of shadow-including ancestors.

  • style/StyleTreeResolver.h:
9:09 PM Changeset in webkit [292591] by Elliott Williams
  • 35 edits in trunk

[XCBuild] Enable dependency validation by default
https://bugs.webkit.org/show_bug.cgi?id=238901
<rdar://problem/91379968>

Reviewed by Alexey Proskuryakov.

.:

Set VALIDATE_DEPENDENCIES=YES_ERROR everywhere, so that builds fail
when task outputs are missing.

The only interesting detail is that we need to set an extended
attribute on the user's build directory in order for XCBuild to
validate dependencies _within_ that directory. Since a users' build
directory may not be created by XCBuild, have build-webkit and
set-webkit-configuration set the attribute manually.

  • Makefile.shared: Remove the VALIDATE_DEPENDENCIES opt-in logic.

Always call through to set-webkit-configuration, because that's where
we verify that CreatedByBuildSystem is set on the build directory.
Don't pass -EnableBuildDebugging=1; it's not actually needed to enable
dependency validation.

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore/PAL:

  • Configurations/DebugRelease.xcconfig:

Source/WebGPU:

  • Configurations/DebugRelease.xcconfig:

Source/WebInspectorUI:

  • Configurations/DebugRelease.xcconfig:

Source/WebKit:

  • Configurations/DebugRelease.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/DebugRelease.xcconfig:

Source/WTF:

  • Configurations/DebugRelease.xcconfig:

Tools:

  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • MobileMiniBrowser/Configurations/DebugRelease.xcconfig:
  • Scripts/build-webkit:
  • Scripts/set-webkit-configuration: When run with no arguments, checks

the base product directory, prints the configuration, and exits.
Recognizes -h and --help flags to show usage.

  • Scripts/webkitdirs.pm:

(markBaseProductDirectoryAsCreatedByXcodeBuildSystem): New name of
setCreatedByXcodeBuildSystem.
(setCreatedByXcodeBuildSystem): Renamed.

  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
9:06 PM Changeset in webkit [292590] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

[WinCairo] Fix DrawingAreaWC after r292557
https://bugs.webkit.org/show_bug.cgi?id=238979

Unreviewed build fix

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:
8:46 PM Changeset in webkit [292589] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Fix the CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER build (again)

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureFrontBuffer):

7:30 PM Changeset in webkit [292588] by Chris Dumez
  • 24 edits in trunk/Source

Add PAL::TextEncoding() constructor that takes in a StringView
https://bugs.webkit.org/show_bug.cgi?id=238905

Reviewed by Darin Adler.

This allows some call sites to be a bit more efficient.

Source/WebCore:

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::create):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::setEncoding):

  • fileapi/FileReaderLoader.h:
  • html/parser/HTMLMetaCharsetParser.cpp:

(WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes):

  • loader/FormSubmission.cpp:

(WebCore::encodingFromAcceptCharset):

  • loader/soup/ResourceLoaderSoup.cpp:

(WebCore::ResourceLoader::loadGResource):

  • platform/network/HTTPParsers.cpp:

(WebCore::extractCharsetFromMediaType):

  • platform/network/HTTPParsers.h:
  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::setResponseFromCachedHeaders):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::handleDataURL):

  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::finalResponseCharset const):
(WebCore::XMLHttpRequest::didReceiveData):

Source/WebCore/PAL:

  • pal/text/TextEncoding.cpp:

(PAL::TextEncoding::TextEncoding):

  • pal/text/TextEncoding.h:

(PAL::TextEncoding::TextEncoding):

  • pal/text/TextEncodingRegistry.cpp:

(PAL::atomCanonicalTextEncodingName):

  • pal/text/TextEncodingRegistry.h:

Source/WebKit:

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::didRequestNextPart):
(WebKit::NetworkDataTaskSoup::didGetFileInfo):

  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback):

7:21 PM Changeset in webkit [292587] by Chris Dumez
  • 32 edits in trunk

Replace deprecated String(const char*) with String::fromLatin1() in more places
https://bugs.webkit.org/show_bug.cgi?id=238925

Reviewed by Darin Adler.

Source/WebKit:

  • NetworkProcess/DatabaseUtilities.cpp:

(WebKit::DatabaseUtilities::stripIndexQueryToMatchStoredValue):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::dumpContentsToFile):

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb:
  • Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb:
  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeObject):

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::createHandleForTemporaryFile):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getClientBundleIdentifier):
(WebKit::XPCServiceInitializerDelegate::getClientProcessName):
(WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):

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

(WebKit::XPCServiceMain):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel getAllLocalAuthenticatorCredentials]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::showSafeBrowsingWarning):

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::clearAllCredentials):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::createCredentialPrivateKey const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::pasteAccessCategoryForCommand):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::didReceiveInvalidMessage):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pluginInfo):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::replaceSelectionPasteboardName):

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::createJSArrayForArgumentDescriptions):
(WebKit::IPCTestingAPI::JSMessageListener::jsDescriptionFromDecoder):

  • webpushd/WebPushDaemonMain.mm:

(WebKit::WebPushDaemonMain):

Source/WebKitLegacy/mac:

  • History/HistoryPropertyList.mm:

(HistoryPropertyListWriter::HistoryPropertyListWriter):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView coreCommandByName:]):

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::setAccummulateLogsForChannel):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(handleControlCommand):
(changeWindowScaleIfNeeded):
(resetWebViewToConsistentState):

  • TestWebKitAPI/Tests/WebCore/CBORReaderTest.cpp:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::waitForPostDumpWatchdogTimerFired):

  • WebKitTestRunner/cocoa/CrashReporterInfo.mm:

(WTR::testPathFromURL):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaPlatformInitialize):
(WTR::TestController::cocoaResetStateToConsistentValues):

6:35 PM Changeset in webkit [292586] by Sam Sneddon
  • 3 edits in trunk/Source/WTF

Move long-enabled preferences away from experimental
https://bugs.webkit.org/show_bug.cgi?id=238929

Reviewed by Tim Horton.

This only moves things which have a simple default: true and
have since Safari 15's release; there are likely other things
which could be moved.

It does, however, leave GoogleAntiFlickerOptimizationQuirkEnabled
as an experimental feature, as this seems something it is more
likely a developer may wish to toggle.

  • Scripts/Preferences/WebPreferences.yaml:
  • Scripts/Preferences/WebPreferencesExperimental.yaml:
6:03 PM Changeset in webkit [292585] by gnavamarino@apple.com
  • 4 edits in trunk/Source/WebCore

When using a TrackDisplayUpdateScope queue updateActiveTextTrackCues as a task
https://bugs.webkit.org/show_bug.cgi?id=238963

Reviewed by Eric Carlson.

The HTMLMediaElement::didRemoveTextTrack call is done under ScriptDisallowedScope but this path
currently can call updateActiveTextTrackCues which could result in updating the layout downstream.
To resolve this we execute updateActiveTextTrackCues under a queueCancellableTaskKeepingObjectAlive call.

We also add a needed check in RenderVTTCue::initializeLayoutParameters exposed by queueing the task.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests):
(WebCore::HTMLMediaElement::cancelPendingTasks):

  • html/HTMLMediaElement.h:
  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::initializeLayoutParameters):

5:51 PM Changeset in webkit [292584] by clopez@igalia.com
  • 2 edits in trunk/Tools

REGRESSION(r292109): [GTK][WPE] generate-bundle: Don't try to use the interpreter prefix when not bundling all.
https://bugs.webkit.org/show_bug.cgi?id=237107

For bundles of type --syslibs=generate-install-script we should
not try to prefix the executable with the interpreter.
Add a missing check to ensure that the interpreter has been copied
into the bundle before trying to use it.

Unreviewed follow-up fix.

  • Scripts/webkitpy/binary_bundling/bundle.py:

(BinaryBundler.generate_wrapper_script):

5:49 PM Changeset in webkit [292583] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

Build-fix for not ENABLE(SERVICE_WORKER) after r292539
https://bugs.webkit.org/show_bug.cgi?id=238957

Unreviewed build fix.

  • UIProcess/WebPageProxy.cpp:
5:47 PM Changeset in webkit [292582] by ntim@apple.com
  • 6 edits in trunk

[:has() pseudo-class] Support invalidation for :indeterminate pseudo class on <progress>
https://bugs.webkit.org/show_bug.cgi?id=238923

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

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

Source/WebCore:

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

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::HTMLProgressElement):
(WebCore::HTMLProgressElement::parseAttribute):
(WebCore::HTMLProgressElement::didAttachRenderers):
(WebCore::HTMLProgressElement::updateDeterminateState):
(WebCore::HTMLProgressElement::didElementStateChange):
(WebCore::HTMLProgressElement::isDeterminate const): Deleted.

  • html/HTMLProgressElement.h:
5:08 PM Changeset in webkit [292581] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r287147 - Rename forEachFrameFromMainFrame to forEachFrame
https://bugs.webkit.org/show_bug.cgi?id=234396
<rdar://problem/86581926>

Reviewed by Geoffrey Garen.

Follow-up to r287110: Switch method naming to match 'forEachDocument'.

  • page/Page.cpp:

(WebCore::Page::~Page):
(WebCore::Page::notifyToInjectUserScripts):
(WebCore::Page::forEachFrame):
(WebCore::Page::forEachFrameFromMainFrame): Deleted.

  • page/Page.h:
5:08 PM Changeset in webkit [292580] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34

Merge r291791 - REGRESSION (r287807): WEBGL_multi_draw validation rejecting valid arguments
https://bugs.webkit.org/show_bug.cgi?id=238239

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-24
Reviewed by Darin Adler.

Source/WebCore:

Fix off-by-one error causing full buffer multidraws to be
marked as invalid.

Enable the newer WebGL conformance tests that test this.

  • html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::validateOffset):

LayoutTests:

Enable the newer WebGL conformance tests that test this, marked
Slow as they take a while to run.

5:08 PM Changeset in webkit [292579] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r287807 - [Hardening] Improve multi draw offset validation
https://bugs.webkit.org/show_bug.cgi?id=234966
<rdar://problem/86814830>

Reviewed by Darin Adler.

Incorporate draw count into validation of the offset.

  • html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::validateOffset):

5:08 PM Changeset in webkit [292578] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r288867 - Fix handling of access key events
https://bugs.webkit.org/show_bug.cgi?id=234147
<rdar://problem/86320218>

Reviewed by David Kilzer.

Improve focus handling for HTMLElement-based elements to ensure accessKey events
are properly dispatched.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press): Ensure correct object is used after 'accessKeyAction'
is invoked.

  • dom/EventDispatcher.cpp:

(WebCore::callDefaultEventHandlersInBubblingOrder) Protect element during default
event bubbling.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::reportValidity): Ensure correct element is
used after focus event.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleAccessKey): Ensure correct object is used after
'accessKeyAction' is invoked.

5:07 PM Changeset in webkit [292577] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r287110 - Clean-up: Adopt Page::forEachDocument in some missed spots
https://bugs.webkit.org/show_bug.cgi?id=234324
<rdar://problem/85443831>

Reviewed by Darin Adler.

Switch manual loops to our 'forEachDocument' style in a few places that were missed
in earlier refactoring.

No change in behavior.

  • history/BackForwardCache.cpp:

(WebCore::setBackForwardCacheState)

  • page/EventHandler.cpp:

(WebCore::removeDraggedContentDocumentMarkersFromAllFramesInPage):

  • page/Frame.cpp:

(WebCore::Frame::orientationChanged):

  • page/Page.cpp:

(WebCore::Page::~Page):
(WebCore::Page::forEachDocumentFromMainFrame): Added.
(WebCore::Page::forEachDocument): Use new method.
(WebCore::Page::forEachFrameFromMainFrame): Added.
(WebCore::Page::windowScreenDidChange):
(WebCore::Page::userAgentChanged):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::dispatchPageHideEventBeforePause):
(WebCore::Frame::dispatchPageShowEventBeforeResume):

3:59 PM Changeset in webkit [292576] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Merge-Queue] Add PushCommitToWebKitRepo
https://bugs.webkit.org/show_bug.cgi?id=238959
<rdar://problem/91443987>

Reviewed by Aakash Jain.

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

(MergeQueueFactory.init): Add PushCommitToWebKitRepo, pre-commit validation.

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

(TestExpectedBuildSteps): Ditto.

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

(PushCommitToWebKitRepo.evaluateCommand): Add merge-queue steps.
(PushCommitToWebKitRepo.getResultSummary): Remove identifier computation.
(PushCommitToWebKitRepo.svn_revision_from_commit_text):
(DetermineLandedIdentifier): Move code to determine identifier into a seperate step because
merge-queue has already computed the identifier.
(DetermineLandedIdentifier.init):
(DetermineLandedIdentifier.start): Capture log output of command.
(DetermineLandedIdentifier.getResultSummary):
(DetermineLandedIdentifier.evaluateCommand): Attempt to pull identifier from commit message,
otherwise, fall back to commits.webkit.org.
(DetermineLandedIdentifier.url_for_revision_details): Moved from PushCommitToWebKitRepo.
(DetermineLandedIdentifier.url_for_identifier): Ditto.
(DetermineLandedIdentifier.identifier_for_revision): Ditto.
(DetermineLandedIdentifier.comment_text_for_bug): Ditto.

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

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

3:56 PM Changeset in webkit [292575] by Nikolas Zimmermann
  • 17 edits in trunk/Source/WebCore

Unify reference box / CTM computation in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=237701

Reviewed by Rob Buis.

Extract the code in RenderLayer that computes the reference box, obtains the CTM,
applies pixel snapping, etc. into a shared updateTransformFromStyle() helper function.
Use that helper to de-duplicate code between updateTransform() / currentTransform()
(and RenderLayerBacking::updateTransform() in follow-up patches).

currentTransform() needs to compute the CTM, based on a non-default RenderStyle (!= renderer().style()),
namely the aninmatedStyle(), if an accelerated transform animation is running. Therefore extend
RenderLayerModelObject::applyTransform() to take an additional RenderStyle parameter,
that is used to access the CSS transform operations, instead of always querying renderer().style().
RenderLayer::updateTransform() continues to pass 'renderer().style()' to updateTransformFromStyle(),
whereas RenderLayer::currentTransform() passes the elements animatedStyle().

Covered by existing tests, no change in behaviour.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::applyTransform const):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::applyTransform const):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateTransformFromStyle const):
(WebCore::RenderLayer::updateTransform):
(WebCore::RenderLayer::currentTransform const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateTransform):

  • rendering/RenderLayerModelObject.h:
  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::applyTransform const): Deleted.

  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::applyTransform const): Deleted.

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::applyTransform const):

  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTransformableContainer.cpp:

(WebCore::RenderSVGTransformableContainer::applyTransform const):

  • rendering/svg/RenderSVGTransformableContainer.h:
3:50 PM Changeset in webkit [292574] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Add support for the "is valid to use with" operation to WebGPU objects
https://bugs.webkit.org/show_bug.cgi?id=238719

Addressing post-review comment.

Unreviewed.

  • WebGPU/IsValidToUseWith.h:

(WebGPU::isValidToUseWith):
(WebGPU::isValidToUseWith const): Deleted.

3:44 PM Changeset in webkit [292573] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Canonicalize parent commits
https://bugs.webkit.org/show_bug.cgi?id=238951
<rdar://problem/91436607>

Reviewed by Aakash Jain.

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

(Canonicalize.run): Canonicalize first 2 parent commits if not rebasing.
(Canonicalize.getResultSummary): Pluralize summary.

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

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

3:41 PM Changeset in webkit [292572] by Jean-Yves Avenard
  • 3 edits in trunk/Source/WebCore

Full screen video progress bar flickers after dragging it.
https://bugs.webkit.org/show_bug.cgi?id=238859
rdar://90412851

A WebAVPlayerController pretends to be an AVPlayerController by
implementing most methods of it, but not all.
When dragging the progress bar, AVKit calls the method isSeeking to
determine if we are seeking or not and if true will call seekToTime
to retrieve the last seek position and display the progress bar
accordingly.
Those two methods weren't implemented by WebAVPlayerController.
At present, we don't have information about the seeking operation having
completed or not, but we do know if we are scrubbing. So map isSeeking
to isScrubbing, this approximation is sufficient at present.

Reviewed by Jer Noble.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebAVPlayerController isSeeking]):
(-[WebAVPlayerController seekToTime]):

3:38 PM Changeset in webkit [292571] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] css3/background/background-repeat-round-auto2.html is a image failure https://bugs.webkit.org/show_bug.cgi?id=238965 Unreviewed test gardening.

3:34 PM Changeset in webkit [292570] by Matteo Flores
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION(r291509): imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238920

Reviewed by Cameron McCormack.

Fixed typo.

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html:
2:55 PM Changeset in webkit [292569] by Simon Fraser
  • 7 edits in trunk/Source

Add a LayerBacking RenderingPurpose
https://bugs.webkit.org/show_bug.cgi?id=238896

Reviewed by Said Abou-Hallawa.

Add RenderingPurpose::LayerBacking so the GPU Process knows which buffers are
associated with layer backing.

Source/WebCore:

  • platform/graphics/RenderingMode.h:

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::allocateBufferForBackingStore):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::shouldUseRemoteRenderingFor):

2:46 PM Changeset in webkit [292568] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] fast/attachment/attachment-disabled-rendering.html is a text missing failure https://bugs.webkit.org/show_bug.cgi?id=238960 Unreviewed test gardening. * platform/ios-wk2/TestExpectations:

2:44 PM Changeset in webkit [292567] by mmaxfield@apple.com
  • 43 edits in trunk/Source/WebGPU

[WebGPU] Give objects a notion of invalidity
https://bugs.webkit.org/show_bug.cgi?id=238720

Reviewed by Kimmo Kinnunen.

This is the biggest blocker for running the WebGPU conformance test suite. WebGPU is designed
such that creation routines don't return undefined if the object couldn't be created; instead,
in "invalid" object is returned. This patch is a step on the path to making creation routines
never return nullptr.

Some objects have destroy() methods which makes the object invalid. Those will be implemented
in a forthcoming patch.

  • WebGPU/Adapter.h:

(WebGPU::Adapter::createInvalid):
(WebGPU::Adapter::isValid const):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::Adapter):

  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::createInvalid):
(WebGPU::BindGroup::isValid const):

  • WebGPU/BindGroup.mm:

(WebGPU::BindGroup::BindGroup):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::createInvalid):
(WebGPU::BindGroupLayout::isValid const):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::BindGroupLayout::BindGroupLayout):

  • WebGPU/Buffer.h:

(WebGPU::Buffer::createInvalid):
(WebGPU::Buffer::isValid const):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::Buffer):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::createInvalid):
(WebGPU::CommandBuffer::isValid const):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::createInvalid):
(WebGPU::CommandEncoder::isValid const):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::CommandEncoder):

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::createInvalid):
(WebGPU::ComputePassEncoder::isValid const):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::createInvalid):
(WebGPU::ComputePipeline::isValid const):

  • WebGPU/ComputePipeline.mm:

(WebGPU::ComputePipeline::ComputePipeline):

  • WebGPU/Device.h:

(WebGPU::Device::createInvalid):
(WebGPU::Device::isValid const):

  • WebGPU/Device.mm:

(WebGPU::Device::Device):

  • WebGPU/Instance.h:

(WebGPU::Instance::createInvalid):
(WebGPU::Instance::isValid const):

  • WebGPU/Instance.mm:

(WebGPU::Instance::Instance):
(WebGPU::m_isValid):

  • WebGPU/PipelineLayout.h:

(WebGPU::PipelineLayout::createInvalid):
(WebGPU::PipelineLayout::isValid const):

  • WebGPU/PipelineLayout.mm:

(WebGPU::PipelineLayout::PipelineLayout):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::createInvalid):
(WebGPU::QuerySet::isValid const):

  • WebGPU/QuerySet.mm:

(WebGPU::QuerySet::QuerySet):

  • WebGPU/Queue.h:

(WebGPU::Queue::createInvalid):
(WebGPU::Queue::isValid const):

  • WebGPU/Queue.mm:

(WebGPU::Queue::Queue):

  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::createInvalid):
(WebGPU::RenderBundle::isValid const):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::createInvalid):
(WebGPU::RenderBundleEncoder::isValid const):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::RenderBundleEncoder):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::createInvalid):
(WebGPU::RenderPassEncoder::isValid const):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::createInvalid):
(WebGPU::RenderPipeline::isValid const):

  • WebGPU/RenderPipeline.mm:

(WebGPU::RenderPipeline::RenderPipeline):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::createInvalid):
(WebGPU::Sampler::isValid const):

  • WebGPU/Sampler.mm:

(WebGPU::Sampler::Sampler):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::createInvalid):
(WebGPU::ShaderModule::isValid const):

  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::convertCheckResult):
(WebGPU::ShaderModule::ShaderModule):
(WebGPU::ShaderModule::getCompilationInfo):
(WebGPU::ShaderModule::ast const):

  • WebGPU/Texture.h:

(WebGPU::Texture::createInvalid):
(WebGPU::Texture::isValid const):

  • WebGPU/Texture.mm:

(WebGPU::Texture::Texture):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::createInvalid):
(WebGPU::TextureView::isValid const):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

2:15 PM Changeset in webkit [292566] by Devin Rousso
  • 7 edits in trunk/LayoutTests

[GPU Process] Test failures in forms
https://bugs.webkit.org/show_bug.cgi?id=236927
<rdar://problem/89196867>

Unreviewed, fix test failures and adjust related expectations.

  • fast/forms/autofocus-readonly-attribute.html:

This test appeared to be failing because it ended before the "focus" event had a chance
to fire. Make the test async by delaying its completion until after a requestAnimationFrame
which should be enough time for the "focus" event to be dispatched (and handled).

  • fast/forms/input-text-autofocus.html:
  • fast/forms/input-text-autofocus-expected.txt:

Slightly rework this test to manually tell the testRunner to waitUntilDone, as for some
reason the js-test-{pre,post} test harness seems to somehow not output the PASS messages
while still finishing the test (i.e. not a timeout).

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ipad/TestExpectations:

Remove non-skipped expectations for:

  • fast/forms/ios/choose-select-option.html
  • fast/forms/autofocus-readonly-attribute.html
  • fast/forms/input-text-autofocus.html

Note that fast/forms/ios/choose-select-option.html is still skipped on iPad, because there
is already a platform/ipad/fast/forms/choose-select-option.html specifically to test iPad.

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

[iOS][WP] Block kernel routines
https://bugs.webkit.org/show_bug.cgi?id=238898

Reviewed by Geoffrey Garen.

Block kernel routines only used during launch of the WebContent process on iOS. This is based on collected telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
2:03 PM Changeset in webkit [292564] by Tyler Wilcock
  • 10 edits
    2 adds in trunk

AX ITM: ARIATreeItemContent, ARIATreeRows, and DisclosedRows properties need to be updated after dynamic page changes
https://bugs.webkit.org/show_bug.cgi?id=238844

Reviewed by Chris Fleizach.

Source/WebCore:

Before this patch, we never updated these properties after
initializing isolated objects, so they become inaccurate
when content / rows were added or removed.

Test: accessibility/mac/tree-properties-update-after-dynamic-change.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaTreeItemContent):
Make this function return a value instead of by out-parameter.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

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

(WebCore::AXIsolatedTree::updateNodeProperty):
Handle updates to AXPropertyName::ARIATreeItemContent, AXPropertyName::ARIATreeRows, and
AXPropertyName::DisclosedRows. Also, updateNodeProperty now
takes an AXCoreObject& instead of const AXCoreObject&
since calling ariaTreeItemContent(), ariaTreeRows(), and disclosedRows() is inherently not const.
(WebCore::AXIsolatedTree::updateChildren):
If the object being updated is a treeitem, also update AXPropertyName::ARIATreeItemContent
and AXPropertyName::DisclosedRows. And if the object has a tree role ancestor, update
AXPropertyName::ARIATreeRows for that ancestor.

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/mac/tree-properties-update-after-dynamic-change-expected.txt: Added.
  • accessibility/mac/tree-properties-update-after-dynamic-change.html: Added.
1:58 PM Changeset in webkit [292563] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

(Safari 15 - iOS15): Increased audio latency on streaming via webrtc
https://bugs.webkit.org/show_bug.cgi?id=236363
<rdar://problem/88969850>

Reviewed by Eric Carlson.

On macOS 12.3, the default preferred buffer size is roughly 100 ms.
This is ok for regular audio playback but is not desirable when playing realtime audio.
To reduce the perceived latency, we now reduce the preferred buffer size to 20ms
whenever playing an audio MediaStreamTrack, similarly to when capturing audio.

Manually tested.

  • platform/audio/PlatformMediaSession.cpp:
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:
1:36 PM Changeset in webkit [292562] by Alan Bujtas
  • 5 edits in trunk/LayoutTests

Unreviewed test gardening.

  • imported/blink/fast/multicol/vertical-lr/float-content-break-expected.html:

.html is rendered using the legacy codepath while -expected.html is renderer using the modern codepath.
In case of fractional pixel values, they sometimes produce different final baselines due to (unintentional) implicit flooring in legacy line layout.
While most of these intentional/unintentional floors/ceils are matched (with FIXMEs) in the modern line layout, some would make the line layout
codebase a lot more complicated. These type of bugs are mostly not visible to the user anyway ever since we have stopped swapping between modern
and legacy line layout dynamically (e.g. on selection).

  • imported/blink/fast/multicol/vertical-lr/float-content-break.html:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
1:32 PM Changeset in webkit [292561] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[web-animations] REGRESSION (r287881): loading performance for diply.com regressed
https://bugs.webkit.org/show_bug.cgi?id=238931
rdar://91190007

Reviewed by Simon Fraser.

We only need to resolve effects in the stack if they are targeting the property we are
considering for the creation, update or removal of a CSS Transition.

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

1:28 PM Changeset in webkit [292560] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebCore

Iterate over copy of animated properties in WebCore::WebAnimation::commitStyles
https://bugs.webkit.org/show_bug.cgi?id=238940

Reviewed by Antoine Quint.

WebAnimation::resolve can end up clearing the animated properties during iteration.

The proposal here will make a copy of the properties before applying the steps
outlined in the spec.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::commitStyles):

1:26 PM Changeset in webkit [292559] by ntim@apple.com
  • 9 edits
    12 adds in trunk

[CSS resize property] Correct minimum size computation to allow resizing below initial size
https://bugs.webkit.org/show_bug.cgi?id=135335

Reviewed by Simon Fraser.

Source/WebCore:

Tests:

  • LayoutTests/fast/css/resize-above-min-size-and-below-initial-size.html
  • LayoutTests/fast/css/resize-below-min-intrinsic-size.html
  • LayoutTests/fast/css/resize-below-min-intrinsic-size-large-scrollbars.html
  • LayoutTests/fast/css/resize-below-min-size-zoomed.html
  • LayoutTests/fast/css/resize-below-min-size.html
  • LayoutTests/fast/css/resize-orthogonal-containing-block.html

Ports the relevant Chromium changeset with a few tweaks: https://chromium-review.googlesource.com/c/chromium/src/+/545395/

The previous minimum size used to be whatever size was there before the first resize, which is wrong, and does not allow
resizing below the initial size. It is now based on the min-width/height properties and the scroll corner size.

It is no longer stored in ElementRareData since it is no longer fixed to the initial element size, but depends on the container
on the element style.

  • dom/Element.cpp:

(WebCore::Element::minimumSizeForResizing const): Deleted.
(WebCore::Element::setMinimumSizeForResizing): Deleted.

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

(WebCore::ElementRareData::useTypes const):
(WebCore::ElementRareData::ElementRareData):
(WebCore::defaultMinimumSizeForResizing): Deleted.
(WebCore::ElementRareData::minimumSizeForResizing const): Deleted.
(WebCore::ElementRareData::setMinimumSizeForResizing): Deleted.

  • dom/NodeRareData.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::minimumSizeForResizing const):
(WebCore::RenderLayer::resize):

  • rendering/RenderLayer.h:

LayoutTests:

Tests ported from the Chromium changeset: https://chromium-review.googlesource.com/c/chromium/src/+/545395/
They've been tweaked to:

  • not rely on <textarea>
  • use WPT harness instead of Chrome specific methods
  • use async functions instead of callbacks
  • fast/css/resize-above-min-size-and-below-initial-size-expected.txt: Added.
  • fast/css/resize-above-min-size-and-below-initial-size.html: Added.
  • fast/css/resize-below-min-intrinsic-size-large-scrollbars-expected.txt: Added.
  • fast/css/resize-below-min-intrinsic-size-large-scrollbars.html: Added.
  • fast/css/resize-below-min-intrinsic-size-expected.txt: Added.
  • fast/css/resize-below-min-intrinsic-size.html: Added.
  • fast/css/resize-below-min-size-expected.txt: Added.
  • fast/css/resize-below-min-size-zoomed-expected.txt: Added.
  • fast/css/resize-below-min-size-zoomed.html: Added.
  • fast/css/resize-below-min-size.html: Added.
  • fast/css/resize-orthogonal-containing-block-expected.txt: Added.
  • fast/css/resize-orthogonal-containing-block.html: Added.
1:22 PM Changeset in webkit [292558] by mmaxfield@apple.com
  • 39 edits
    1 copy in trunk/Source/WebGPU

[WebGPU] Add support for the "is valid to use with" operation to WebGPU objects
https://bugs.webkit.org/show_bug.cgi?id=238719

Reviewed by Kimmo Kinnunen.

The spec also has the representation of this base class, named GPUObjectBase, which supports
the setting of labels. However, in our WebGPU implementation, all objects implement labels
differently, so that handling isn't present.

  • WebGPU.xcodeproj/project.pbxproj:
  • WebGPU/Adapter.h:
  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::create):

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::create):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):

  • WebGPU/Buffer.h:
  • WebGPU/Buffer.mm:

(WebGPU::Buffer::Buffer):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::create):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):

  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::CommandEncoder):
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::finish):

  • WebGPU/CommandsMixin.h:
  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::create):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::create):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipeline):
(WebGPU::ComputePipeline::ComputePipeline):

  • WebGPU/Device.h:
  • WebGPU/Instance.h:
  • WebGPU/IsValidToUseWith.h: Copied from Source/WebGPU/WebGPU/CommandsMixin.h.

(WebGPU::ObjectBase::ObjectBase):

  • WebGPU/PipelineLayout.h:

(WebGPU::PipelineLayout::create):

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):
(WebGPU::PipelineLayout::PipelineLayout):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::create):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):
(WebGPU::QuerySet::QuerySet):

  • WebGPU/Queue.h:
  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::create):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::create):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::finish):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::create):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::create):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipeline):
(WebGPU::RenderPipeline::RenderPipeline):

  • WebGPU/Sampler.h:
  • WebGPU/Sampler.mm:

(WebGPU::Sampler::Sampler):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::create):

  • WebGPU/ShaderModule.mm:

(WebGPU::earlyCompileShaderModule):
(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::ShaderModule):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::Texture):
(WebGPU::Texture::createView):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::create):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

1:13 PM Changeset in webkit [292557] by Simon Fraser
  • 23 edits in trunk/Source

Have ImageBuffer store the RenderingPurpose, and send it to the GPU process
https://bugs.webkit.org/show_bug.cgi?id=238887

Reviewed by Said Abou-Hallawa.
Source/WebCore:

Add RenderingPurpose to ImageBufferBackend::Parameters so it's stored on ImageBufferBackend/ImageBuffer,
and propagate that to the GPU process.

  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::renderingPurpose const):

  • platform/graphics/PlatformImageBuffer.h:
  • platform/graphics/coreimage/FilterImageCoreImage.mm:

(WebCore::FilterImage::imageBufferFromCIImage):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

Source/WebKit:

Add RenderingPurpose to ImageBufferBackend::Parameters so it's stored on ImageBufferBackend/ImageBuffer,
and propagate that to the GPU process.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::create):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::createImageBufferWithQualifiedIdentifier):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::allocateBufferForBackingStore):

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

(WebKit::RemoteDisplayListRecorderProxy::createImageBuffer const):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::create):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

12:59 PM Changeset in webkit [292556] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Change label names
https://bugs.webkit.org/show_bug.cgi?id=238950
<rdar://problem/91435211>

Reviewed by Ryan Haddad.

  • CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits): Use "unsafe-merge-queue" instead of "fast-merge-queue".

  • CISupport/ews-build/steps.py:

(GitHubMixin): Ditto.
(GitHubMixin._is_pr_in_merge_queue): Ditto.
(BlockPullRequest.start): Ditto.
(RemoveLabelsFromPullRequest): Ditto.

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

12:55 PM Changeset in webkit [292555] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Add step to close pull request
https://bugs.webkit.org/show_bug.cgi?id=238949
<rdar://problem/91434587>

Reviewed by Aakash Jain.

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

(GitHubMixin.close_pr): Make POST request to close PR.
(ClosePullRequest):
(ClosePullRequest.start): Ensure PR we're operating on is closed.
(ClosePullRequest.getResultSummary):
(ClosePullRequest.doStepIf): Only do step if operating on a PR.
(ClosePullRequest.hideStepIf): Hide step if skipping.

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

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

12:42 PM Changeset in webkit [292554] by mmaxfield@apple.com
  • 14 edits in trunk/Source/WebGPU

[WebGPU] Delete redundant spec quotes
https://bugs.webkit.org/show_bug.cgi?id=238711

Reviewed by Kimmo Kinnunen.

I actually prefer to have lots and lots of spec quotes throughout the implementation,
but enough people have commented about it that it's become clear that we probably
shouldn't have them. This deletes almost all of them (and leaves just the ones that
are particularly insightful).

  • WebGPU/Buffer.h:
  • WebGPU/Buffer.mm:

(WebGPU::validateDescriptor):
(WebGPU::validateCreateBuffer):
(WebGPU::Device::createBuffer):
(WebGPU::Buffer::destroy):
(WebGPU::Buffer::validateGetMappedRange const):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::validateMapAsync const):
(WebGPU::Buffer::mapAsync):
(WebGPU::Buffer::validateUnmap const):
(WebGPU::Buffer::unmap):

  • WebGPU/CommandEncoder.mm:

(WebGPU::validateCopyBufferToBuffer):
(WebGPU::CommandEncoder::copyBufferToBuffer):
(WebGPU::validateImageCopyBuffer):
(WebGPU::validateCopyBufferToTexture):
(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::validateCopyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::areCopyCompatible):
(WebGPU::validateCopyTextureToTexture):
(WebGPU::CommandEncoder::copyTextureToTexture):
(WebGPU::validateClearBuffer):
(WebGPU::CommandEncoder::clearBuffer):
(WebGPU::CommandEncoder::validateFinish const):
(WebGPU::CommandEncoder::finish):
(WebGPU::CommandEncoder::insertDebugMarker):
(WebGPU::CommandEncoder::validatePopDebugGroup const):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::CommandEncoder::pushDebugGroup):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::insertDebugMarker):
(WebGPU::ComputePassEncoder::validatePopDebugGroup const):
(WebGPU::ComputePassEncoder::popDebugGroup):
(WebGPU::ComputePassEncoder::pushDebugGroup):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::currentErrorScope):
(WebGPU::Device::generateAValidationError):
(WebGPU::Device::validatePopErrorScope const):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::pushErrorScope):

  • WebGPU/Queue.mm:

(WebGPU::Queue::submit):
(WebGPU::validateWriteBufferInitial):
(WebGPU::Queue::validateWriteBuffer const):
(WebGPU::Queue::writeBuffer):
(WebGPU::validateWriteTexture):
(WebGPU::Queue::writeTexture):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::insertDebugMarker):
(WebGPU::RenderBundleEncoder::validatePopDebugGroup const):
(WebGPU::RenderBundleEncoder::popDebugGroup):
(WebGPU::RenderBundleEncoder::pushDebugGroup):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::insertDebugMarker):
(WebGPU::RenderPassEncoder::validatePopDebugGroup const):
(WebGPU::RenderPassEncoder::popDebugGroup):
(WebGPU::RenderPassEncoder::pushDebugGroup):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::descriptor const):
(WebGPU::Sampler::isComparison const):

  • WebGPU/Sampler.mm:

(WebGPU::validateCreateSampler):
(WebGPU::Device::createSampler):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::isCompressedFormat):
(WebGPU::Texture::isDepthOrStencilFormat):
(WebGPU::Texture::texelBlockWidth):
(WebGPU::Texture::texelBlockHeight):
(WebGPU::isRenderableFormat):
(WebGPU::supportsMultisampling):
(WebGPU::maximumMiplevelCount):
(WebGPU::Device::validateCreateTexture):
(WebGPU::Device::createTexture):
(WebGPU::Texture::resolveTextureViewDescriptorDefaults const):
(WebGPU::Texture::arrayLayerCount const):
(WebGPU::Texture::validateCreateView const):
(WebGPU::computeRenderExtent):
(WebGPU::Texture::createView):
(WebGPU::Texture::logicalMiplevelSpecificTextureExtent):
(WebGPU::Texture::physicalMiplevelSpecificTextureExtent):
(WebGPU::imageCopyTextureSubresourceSize):
(WebGPU::Texture::validateImageCopyTexture):
(WebGPU::Texture::validateTextureCopyRange):
(WebGPU::Texture::validateLinearTextureData):

12:40 PM Changeset in webkit [292553] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r292419): [ iOS EWS ] imported/w3c/web-platform-tests/css/selectors/invalidation/user-action-pseudo-classes-in-has.html is a flaky text failure https://bugs.webkit.org/show_bug.cgi?id=238954 Unreviewed test gardening. * platform/ios-wk2/TestExpectations:

12:19 PM Changeset in webkit [292552] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebGPU

[WebGPU] Implement Texture view format compatibility
https://bugs.webkit.org/show_bug.cgi?id=238710

Reviewed by Kimmo Kinnunen.

Right now, the definition of texture view format compatibility is narrow enough that we'll
never need to add MTLTextureUsagePixelFormatView to the usage of any textures. So, all we
have to do is validate.

Test: http/tests/webgpu/webgpu/api/validation/createTexture.html

  • WebGPU/CommandEncoder.mm:

(WebGPU::areCopyCompatible):
(WebGPU::isSRGBCompatible): Deleted.

  • WebGPU/Device.h:
  • WebGPU/Texture.h:

(WebGPU::Texture::create):

  • WebGPU/Texture.mm:

(WebGPU::Texture::removeSRGBSuffix):
(WebGPU::textureViewFormatCompatible):
(WebGPU::Device::validateCreateTexture):
(WebGPU::usage):
(WebGPU::Device::createTexture):
(WebGPU::Texture::Texture):
(WebGPU::Texture::validateCreateView const):

12:18 PM Changeset in webkit [292551] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r290770): [ Mac wk2 ] imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-050.html is a flaky text failure https://bugs.webkit.org/show_bug.cgi?id=238033 Unreviewed test gardening * platform/mac-wk2/TestExpectations:

11:59 AM Changeset in webkit [292550] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REBASLINE: [ Monterey ] fast/text/khmer-lao-font.html is a constant text failure

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

Unreviewed test gardening

  • platform/mac/TestExpectations:
11:24 AM Changeset in webkit [292549] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Update head and base references in PR
https://bugs.webkit.org/show_bug.cgi?id=238942
<rdar://problem/91423818>

Reviewed by Aakash Jain.

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

(GitHubMixin.update_pr): Pass head and base to POST request.
(UpdatePullRequest.evaluateCommand): Set head and base refs.

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

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

11:19 AM Changeset in webkit [292548] by Kate Cheney
  • 2 edits in trunk/LayoutTests

[ BigSur wk1 ] printing/css2.1/page-break-after-000.html is a flaky failure (231102)
https://bugs.webkit.org/show_bug.cgi?id=231102
<rdar://problem/83781666>

Unreviewed. Fixing expectations for a no-longer-flaky test.

  • platform/mac-wk1/TestExpectations:
11:08 AM Changeset in webkit [292547] by Brent Fulgham
  • 4 edits in trunk

[WebKitLegacy] Remove NPAPIPlugInsEnabledForTestingInWebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=238882

Reviewed by Tim Horton.

We have completely removed the NPAPI code and no longer run the tests. We no longer need this setting
and should remove it to reduce complexity and build time.

The specific skipped tests will be removed in a follow-up patch.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

10:37 AM Changeset in webkit [292546] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Merge-Queue] Remove labels from pull request
https://bugs.webkit.org/show_bug.cgi?id=238909
<rdar://problem/91383048>

Reviewed by Aakash Jain.

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

(RemoveLabelsFromPullRequest):
(RemoveLabelsFromPullRequest._addToLog):
(RemoveLabelsFromPullRequest.start): Remove active labels.
(RemoveLabelsFromPullRequest.getResultSummary):
(RemoveLabelsFromPullRequest.doStepIf): Only do step if pull request
number is defined.
(RemoveLabelsFromPullRequest.hideStepIf): Hide stip if step not executed.

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

10:28 AM Changeset in webkit [292545] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Merge-Queue] Extract bug_id when updating pull-request (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=238772
<rdar://problem/91263398>

Unreviewed follow-up fix.

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

(LeaveComment.start): Pass repository to GitHubMixin.comment_on_pr.

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

10:22 AM Changeset in webkit [292544] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Update pull-request with landed content (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=238554
<rdar://problem/91047260>

Reviewed by Aakash Jain.

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

(PushPullRequestBranch.start): Push canonicalized HEAD to remote branch.

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

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

10:22 AM Changeset in webkit [292543] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

Adjust and refactor some UA styles and logic for injecting Live Text
https://bugs.webkit.org/show_bug.cgi?id=238912
rdar://91383570

Reviewed by Aditya Keerthi.

Source/WebCore:

Adjust various Live-Text-related UA styles for "text recognition blocks", along with other miscellaneous
adjustments:

  • Compute and set the border radius, based on the font size and overall height of the block.
  • Add horizontal/vertical padding to text recognition, computed relative to the border radius.
  • Allow hyphenation in blocks.
  • Only center-align text in blocks if there are fewer than 3 text runs in the block.
  • Adjust box shadows, backdrop filter blur radius and line height.
  • Specify a line-height, such that line-height from the host element doesn't erroneously apply to blocks.
  • Handle text recognition blocks with newline characters (\n) by injecting line break elements between text.

Test: fast/images/text-recognition/image-overlay-block-with-newlines.html

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):
(WebCore::ImageOverlay::fitElementToQuad):
(WebCore::ImageOverlay::updateWithTextRecognitionResult):

  • html/shadow/imageOverlay.css:

(:host(:not(img)) div#image-overlay:-webkit-full-screen-document):
(div.image-overlay-block):
(div.image-overlay-line, .image-overlay-text, div.image-overlay-block):
(div.image-overlay-line, .image-overlay-text):
(.image-overlay-block):

LayoutTests:

Add a layout test to exercise "block"-style Live Text injection, in the case where the injected text contains
newlines. The resulting selected text should preserve the newline.

  • fast/images/text-recognition/image-overlay-block-with-newlines-expected.txt: Added.
  • fast/images/text-recognition/image-overlay-block-with-newlines.html: Added.
10:13 AM Changeset in webkit [292542] by Lauro Moura
  • 3 edits in trunk/Source/WebCore

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

  • css/CSSToStyleMap.h: Forward declare Quad
  • platform/graphics/filters/FilterEffectVector.h: Replace forward with

actual include for Ref.

10:06 AM Changeset in webkit [292541] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Remove redundant invalidateStyleForSubtree() calls
https://bugs.webkit.org/show_bug.cgi?id=238922

Reviewed by Antti Koivisto.

These calls were for :invalid/:valid validation, which now are invalidated using Style::PseudoClassChangeInvalidation.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::maxLengthAttributeChanged):
(WebCore::HTMLInputElement::minLengthAttributeChanged):

10:03 AM Changeset in webkit [292540] by commit-queue@webkit.org
  • 23 edits in trunk

[JSC][ARMv7] Support proper near calls and JUMP_ISLANDS
https://bugs.webkit.org/show_bug.cgi?id=238143

Patch by Geza Lore <Geza Lore> on 2022-04-07
Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/let-const-tdz-environment-parsing-and-hash-consing-speed.js:

Source/JavaScriptCore:

Implement nearCall and nearTailCall as single instruction direct
branches on ARMv7/Thumb-2. (Will need to support these for Wasm JITs,
to implement threadSafePatchableNearcall.) To make this possible while
also having an executable pool size larger than the branch range, I
also ported JUMP_ISLANDS.

To port JUMP_ISLANDS, a reformulation of the region allocations was
necessary, which is now done in terms of the range of the
nearCall/nearTailCall macroassembler macros. For ARM64, the behaviour
should be identical.

The jump islad reservation on ARMv7 is set to 5% of executable memory
size, which is approximately the same as the baseline JIT code size
saving provided by using short branches for near calls, so the change
should be neutral overall with respect to executable memory
consumption.

Also made it possible for the --jitMemoryReservationSize option to
request JIT memory that is larger than the default hardcoded size
while using JUMP_ISLANDS (we need this for testing on ARMv7, which has
a smaller default executable pool size). To do this the region
allocators are no longer statically allocated but are held in a
FixedVector.

Also removed the unused repatchCompact methods from assemblers.

  • assembler/ARM64Assembler.h:
  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::isEven):
(JSC::ARMv7Assembler::makeEven):
(JSC::ARMv7Assembler::bl):
(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkTailCall):
(JSC::ARMv7Assembler::linkCall):
(JSC::ARMv7Assembler::relinkCall):
(JSC::ARMv7Assembler::relinkTailCall):
(JSC::ARMv7Assembler::prepareForAtomicRelinkJumpConcurrently):
(JSC::ARMv7Assembler::prepareForAtomicRelinkCallConcurrently):
(JSC::ARMv7Assembler::replaceWithJump):
(JSC::ARMv7Assembler::canEmitJump):
(JSC::ARMv7Assembler::isBL):
(JSC::ARMv7Assembler::linkJumpT4):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkJumpAbsolute):
(JSC::ARMv7Assembler::linkBranch):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::repatchNearCall):

  • assembler/AssemblerCommon.h:

(JSC::isInt):

  • assembler/MIPSAssembler.h:
  • assembler/MacroAssemblerARM64.h:
  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::nearCall):
(JSC::MacroAssemblerARMv7::nearTailCall):
(JSC::MacroAssemblerARMv7::linkCall):

  • assembler/MacroAssemblerMIPS.h:
  • assembler/MacroAssemblerRISCV64.h:
  • assembler/MacroAssemblerX86Common.h:
  • assembler/X86Assembler.h:
  • bytecode/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

Source/WTF:

Support constructor arguments for FixedVector element initialization.

  • wtf/EmbeddedFixedVector.h:
  • wtf/FixedVector.h:

(WTF::FixedVector::FixedVector):

  • wtf/PlatformEnable.h:
  • wtf/TrailingArray.h:

(WTF::TrailingArray::TrailingArray):

  • wtf/Vector.h:

(WTF::VectorTypeOperations::initializeWithArgs):

9:10 AM Changeset in webkit [292539] by youenn@apple.com
  • 8 edits in trunk

Use the same callback mechanism for ServiceWorker openWindow and navigate in UIProcess
https://bugs.webkit.org/show_bug.cgi?id=238924

Reviewed by Chris Dumez.

Source/WebKit:

Reuse WebFrameProxy navigation delegate for openWindow once the main frame is created.
This ensures we get the same behavior for both code paths and makes sure openWindow does not hang if a delegate cancels the load.

Covered by API test.

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::transferNavigationCallbackToFrame):
(WebKit::WebFrameProxy::setNavigationCallback):

  • UIProcess/WebFrameProxy.h:

(WebKit::WebFrameProxy::transferNavigationCallbackToFrame): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::callLoadCompletionHandlersIfNecessary):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::openWindowFromServiceWorker):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

(-[ServiceWorkerPSONNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[ServiceWorkerPSONNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[ServiceWorkerOpenWindowWebsiteDataStoreDelegate initWithConfiguration:]):
(-[ServiceWorkerOpenWindowWebsiteDataStoreDelegate websiteDataStore:openWindow:fromServiceWorkerOrigin:completionHandler:]):

9:09 AM Changeset in webkit [292538] by Jonathan Bedard
  • 10 edits in trunk/Tools

[git-webkit] Clear merging-blocked label on PR update
https://bugs.webkit.org/show_bug.cgi?id=238907
<rdar://problem/91380962>

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.set): Empty list should trigger request.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:

(Issue.set_labels): Pass self to tracker.set.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:

(GitHub.init): Set self.labels from passed argument.
(GitHub._issue): Handle empty list.

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

(PullRequest): Add BLOCKED_LABEL constant.
(PullRequest.main): Remove 'merging-blocked' label from existing pull-request
before updating pull-request.

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

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

8:29 AM Changeset in webkit [292537] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Fix the expected failure type.

Unreviewed.

  • platform/mac-wk1/TestExpectations:
8:26 AM Changeset in webkit [292536] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Merge-Queue] Share code for _addToLog
https://bugs.webkit.org/show_bug.cgi?id=238913
<rdar://problem/91383969>

Reviewed by Aakash Jain.

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

(AddToLogMixin): Base class for all classes using _addToLog
(ConfigureBuild): Use from AddToLogMixin.
(AnalyzeChange): Ditto.
(BugzillaMixin): Ditto.
(ValidateCommitterAndReviewer): Ditto.
(BlockPullRequest): Ditto.
(RunBindingsTests): Ditto.
(WebKitPyTest): Ditto.
(CompileWebKit): Ditto.
(RunJavaScriptCoreTests): Ditto.
(AnalyzeJSCTestsResults): Ditto.
(RunWebKitTests): Ditto.
(AnalyzeAPITestsResults): Ditto.
(UpdatePullRequest): Ditto.
(ConfigureBuild._addToLog): Deleted.
(AnalyzeChange._addToLog): Deleted.
(BugzillaMixin._addToLog): Deleted.
(ValidateCommitterAndReviewer._addToLog): Deleted.
(BlockPullRequest._addToLog): Deleted.
(RunBindingsTests._addToLog): Deleted.
(WebKitPyTest._addToLog): Deleted.
(CompileWebKit._addToLog): Deleted.
(RunJavaScriptCoreTests._addToLog): Deleted.
(AnalyzeJSCTestsResults._addToLog): Deleted.
(RunWebKitTests._addToLog): Deleted.
(AnalyzeAPITestsResults._addToLog): Deleted.
(CheckPatchStatusOnEWSQueues._addToLog): Deleted.
(UpdatePullRequest._addToLog): Deleted.

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

7:43 AM Changeset in webkit [292535] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC][32bit] Use constexpr tags instead of enums
https://bugs.webkit.org/show_bug.cgi?id=238926

Patch by Geza Lore <Geza Lore> on 2022-04-07
Reviewed by Yusuke Suzuki.

The *Tag values are just 32-bit constants, so define them as
constexpr. This reduces compiler nuisance warnings about enum
comparisons.

  • dfg/DFGSpeculativeJIT.cpp:
  • runtime/JSCJSValue.h:
7:40 AM Changeset in webkit [292534] by Chris Dumez
  • 14 edits in trunk/Source

Drop unused EditorClient::getAutoCorrectSuggestionForMisspelledWord()
https://bugs.webkit.org/show_bug.cgi?id=238897

Reviewed by Wenson Hsieh.

Source/WebCore:

  • editing/Editor.cpp:

(WebCore::Editor::markMisspellingsAfterTypingToWord):

  • editing/TextCheckingHelper.cpp:

(WebCore::findMisspellings):

  • loader/EmptyClients.cpp:
  • platform/text/TextCheckerClient.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::getAutoCorrectSuggestionForMisspelledWord): Deleted.

  • WebProcess/WebCoreSupport/WebEditorClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.h:

(WebEditorClient::getAutoCorrectSuggestionForMisspelledWord): Deleted.

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::getAutoCorrectSuggestionForMisspelledWord): Deleted.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::getAutoCorrectSuggestionForMisspelledWord): Deleted.

  • WebCoreSupport/WebEditorClient.h:
6:34 AM Changeset in webkit [292533] by commit-queue@webkit.org
  • 8 edits
    1 copy in trunk/Source/WebKit

IPC::Connection should support diverting all messages to a message queue in other thread
https://bugs.webkit.org/show_bug.cgi?id=238608

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-07
Reviewed by Simon Fraser.

Previously, it was possible to divert all messages to certain ReceiverName to
a message queue. This is used in IPC streams functionality.

Add a possibility to divert all messages to a message queue. Instead of
passing ReceiverName, id pair to Connection, pass new struct ReceiverMatcher.
Use ReceiverMatcher instead of pair optional<ReceiverName>, optional<id>, since
nullopt, id is not a valid case.
This will be used in future patch for the case where IPC::Connection is created for
the sole purpose of using it together with IPC stream connection.
This also clarifies the overloaded use of destinationID 0 as a wildcard as well as
a valid message destination.

Also implement the possibility to divert all messages to particular ReceiverName,
id 0. Previously this was signifying the destination ID wildcard.

No new tests, refactor.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::enqueueMatchingMessages):
(IPC::Connection::enqueueMatchingMessagesToMessageReceiveQueue):
(IPC::Connection::addMessageReceiveQueue):
(IPC::Connection::removeMessageReceiveQueue):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::addThreadMessageReceiver):
(IPC::Connection::removeThreadMessageReceiver):

  • Platform/IPC/Connection.h:
  • Platform/IPC/Decoder.h:

(IPC::Decoder::matches const):

  • Platform/IPC/MessageReceiveQueueMap.cpp:

(IPC::MessageReceiveQueueMap::addImpl):
(IPC::MessageReceiveQueueMap::remove):
(IPC::MessageReceiveQueueMap::get const):

  • Platform/IPC/MessageReceiveQueueMap.h:

(IPC::MessageReceiveQueueMap::add):

  • Platform/IPC/ReceiverMatcher.h: Copied from Source/WebKit/Platform/IPC/MessageReceiveQueueMap.h.

(IPC::ReceiverMatcher::ReceiverMatcher):
(IPC::ReceiverMatcher::createForLegacyAPI):
(IPC::ReceiverMatcher::matches const):

  • Platform/IPC/StreamServerConnection.cpp:

(IPC::StreamServerConnectionBase::startReceivingMessagesImpl):
(IPC::StreamServerConnectionBase::stopReceivingMessagesImpl):

  • WebKit.xcodeproj/project.pbxproj:
6:28 AM Changeset in webkit [292532] by Alan Bujtas
  • 4 edits
    4 adds in trunk

A float avoider should never take a vertical position where a float is present even when its used width is zero
https://bugs.webkit.org/show_bug.cgi?id=238895

Reviewed by Antti Koivisto.

Source/WebCore:

A zero width available space is never a valid vertical position for a float avoider even when its width is zero too.

Test: fast/block/float/float-avoider-with-zero-width.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::getClearDelta): skip and check the next candidate poisition when no space is available.

LayoutTests:

  • TestExpectations: inline-size-bfc-floats.html: never produced correct rendering, the red box just happened to be hidden (which made this test pass).
  • fast/block/float/float-avoider-with-zero-width-expected.html: Added.
  • fast/block/float/float-avoider-with-zero-width.html: Added.
5:57 AM Changeset in webkit [292531] by ntim@apple.com
  • 5 edits in trunk

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

Reviewed by Antti Koivisto.

Source/WebCore:

Tests: LayoutTests/fast/forms/input-autofilled-*.html

I've only added tests for the :autofill case, since the other pseudo-classes are supposed to be internal-only.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setAutoFilled):
(WebCore::HTMLInputElement::setAutoFilledAndViewable):
(WebCore::HTMLInputElement::setAutoFilledAndObscured):

LayoutTests:

  • fast/forms/input-autofilled-expected.txt:
  • fast/forms/input-autofilled.html:
4:41 AM Changeset in webkit [292530] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. [GStreamer] Fix compile warning

  • Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:

(WebCore::gstreamerRtpCapatiblities): Initialize RTCRtpCodecCapability::channels.

3:57 AM Changeset in webkit [292529] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

Unreviewed. Fix GTK build after r292506

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp:

(webkit_dom_media_list_set_media_text):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeGtk.cpp:

(webkit_dom_node_set_node_value):
(webkit_dom_node_set_text_content):

3:57 AM Changeset in webkit [292528] by Martin Robinson
  • 2 edits in trunk

[GTK] Turning on the address sanitizer should disable GIR and documentation
https://bugs.webkit.org/show_bug.cgi?id=238868

Reviewed by Adrian Perez de Castro.

  • Source/cmake/OptionsGTK.cmake: Disable documentation when the address

sanitizer is on. Documentation depends on GIR. Also fix the adjustment
of the documentation setting when building on Mac. This also has to
happen before the call to find_package(GI).

3:15 AM Changeset in webkit [292527] by Carlos Garcia Campos
  • 10 edits in trunk/Source

[GTK][WPE] RemoteInspector add support for IPv6
https://bugs.webkit.org/show_bug.cgi?id=238797

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

  • inspector/remote/glib/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::start): Receive a GSocketAddress instead of address and port parameters.

  • inspector/remote/glib/RemoteInspectorServer.h:

Source/WebKit:

Make it possible to connect to remote inspector server using IPv6 address.

  • UIProcess/API/glib/WebKitInitialize.cpp:

(WebKit::initializeRemoteInspectorServer): Parse IPv6 address and build GSocketAddress to pass to inspector ot
HTTP server.

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::handleRequest): RemoteInspectorClient now expects host and port in a
single String.

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::RemoteInspectorClient): Receive the host and port in a String.

  • UIProcess/Inspector/glib/RemoteInspectorClient.h:
  • UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp:
  • UIProcess/Inspector/glib/RemoteInspectorHTTPServer.h:
3:11 AM Changeset in webkit [292526] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r292525.

Silence an unused parameter warning in vanilla builds (w/o --layer-based-svg-engine).

  • rendering/RenderLayerModelObject.cpp:

(WebCore::rendererNeedsPixelSnapping):

3:06 AM Changeset in webkit [292525] by Nikolas Zimmermann
  • 13 edits in trunk/Source/WebCore

Unify 'transform-box' reference box computation
https://bugs.webkit.org/show_bug.cgi?id=237554

Reviewed by Simon Fraser.

Currently the code to compute the reference box, according to the CSS 'transform-box'
property is sprinkled over various places: CSSComputedStyleDeclaration, SVGRenderSupport,
RenderBox, parts in RenderLayer.

Cleanup and unify the code in a new 'FloatRect referenceBoxRect(CSSBoxType) const' method.
RenderElement::referenceBoxRect(CSSBoxType) contains the SVG specific implementation, and
RenderBox::referenceBoxRect() the HTML/CSS one (previously named referenceBox()).

12:11 AM Changeset in webkit [292524] by Matt Woodrow
  • 11 edits
    2 adds
    4 deletes in trunk

Grid items that establish an independent formatting context should not be subgrids.
https://bugs.webkit.org/show_bug.cgi?id=237692

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/subgrid/abs-pos-003-expected.html: Removed.
  • web-platform-tests/css/css-grid/subgrid/abs-pos-003.html: Removed.
  • web-platform-tests/css/css-grid/subgrid/abs-pos-004-expected.html: Removed.
  • web-platform-tests/css/css-grid/subgrid/abs-pos-004.html: Removed.
  • web-platform-tests/css/css-grid/subgrid/independent-formatting-context-expected.html: Added.
  • web-platform-tests/css/css-grid/subgrid/independent-formatting-context.html: Added.

Removes tests that expect position:absolute combined with grid-template-X: subgrid to work.
Adds new test to confirm that elements that establish an independent formatting context can't
also be a subgrid.

Source/WebCore:

New WPT css/css-grid/subgrid/independent-formatting-context.html added to check this case.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::createsNewFormattingContext const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::markForPaginationRelayoutIfNeeded):
(WebCore::RenderBox::isWritingModeRoot const): Deleted.
(WebCore::RenderBox::isDeprecatedFlexItem const): Deleted.
(WebCore::RenderBox::isFlexItemIncludingDeprecated const): Deleted.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createsNewFormattingContext const):

  • rendering/RenderElement.h:

(WebCore::RenderElement::isWritingModeRoot const):
(WebCore::RenderElement::isDeprecatedFlexItem const):
(WebCore::RenderElement::isFlexItemIncludingDeprecated const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::isBlockContainer const):

  • rendering/RenderObject.h:

Grid items establish a new formatting context, unless they're a subgrid [1], but subgrid
is disabled if any other property causes the element to establish a formatting context [2].
Adds a new helper to check everything except grid, so that we can resolve this without
infinite recursion.
Stops writing-mode changes from establishing an independent formatting context if
the box is a grid container, since this should only happen is the box is a block
container [3].
Adds new helper for isBlockContainer, since writing-mode changes use it.

[1] https://drafts.csswg.org/css-grid-2/#grid-item-display
[2] https://drafts.csswg.org/css-grid-2/#subgrid-listing
[3] https://drafts.csswg.org/css-writing-modes/#block-flow

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::isSubgrid const):
(WebCore::RenderGrid::createsNewFormattingContext const):
(WebCore::RenderGrid::mayBeSubgridExcludingAbsPos const): Deleted.
(WebCore::RenderGrid::gridSpanCoversRealTracks const): Deleted.

  • rendering/RenderGrid.h:
  • rendering/style/GridPositionsResolver.cpp:

(WebCore::adjustGridPositionsFromStyle):

Makes isSubgrid return false if the element establishes an independent formatting context
(excluding contexts established by being a grid item), and removes no longer needed code
for handling position:absolute subgrids.

Note: See TracTimeline for information about the timeline view.