⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

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.

Note: See TracTimeline for information about the timeline view.