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

Timeline



Jun 21, 2022:

11:25 PM Changeset in webkit [295723] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove KeyframeList::addProperty()
https://bugs.webkit.org/show_bug.cgi?id=241805

Patch by Antoine Quint <Antoine Quint> on 2022-06-21
Reviewed by Dean Jackson.

This method is not needed since KeyframeList::insert() already adds the properties
of the newly inserted keyframe to KeyframeList::m_properties.

  • Source/WebCore/animation/KeyframeEffect.cpp:

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

  • Source/WebCore/rendering/style/KeyframeList.h:

(WebCore::KeyframeList::addProperty): Deleted.

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

10:58 PM Changeset in webkit [295722] by Cameron McCormack
  • 1 edit in trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp

Eliminate one repaint from SVGResourcesCache::clientLayoutChanged
https://bugs.webkit.org/show_bug.cgi?id=241822

Reviewed by Simon Fraser.

SVGResourcesCache::clientLayoutChanged is called under all of the SVG
render object layout functions, to invalidate the SVG resource and
repaint the element. But all of the layout functions will already
repaint the element due to their LayoutRepainter on the stack.

This repaint can be expensive due to the rectangle calculations. We can
skip it by passing false into clientLayoutChanged.

This is an improvement of 3% on the MotionMark Suits sub-test on some
devices.

  • Source/WebCore/rendering/svg/SVGResourcesCache.cpp:

(WebCore::SVGResourcesCache::clientLayoutChanged):

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

9:11 PM Changeset in webkit [295721] by Tyler Wilcock
  • 5 edits in trunk/Source/WebCore/accessibility/isolatedtree

AX: Live AX objects can be destroyed while building a node change for them
https://bugs.webkit.org/show_bug.cgi?id=241810

Reviewed by Chris Fleizach.

While building a node change in AXIsolatedTree::nodeChangeForObject,
the initialization of several different AXPropertyNames can cause layout,
which in turn can cause the backing live object to be deleted. This
causes a crash.

This patch fixes this by holding a Ref to the AccessibilityObject,
ensuring it stays alive for as long we need it.

I wasn't able to make a layout test for this, as the circumstances to
reproduce the issue are complex.

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::initializeProperties):

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::nodeChangeForObject):

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
  • Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::initializePlatformProperties):

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

8:50 PM Changeset in webkit [295720] by Andres Gonzalez
  • 2 edits in trunk/LayoutTests/accessibility/mac

AX ITM: Fix for accessibility/mac/details-summary.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=241804

Reviewed by Darin Adler.

Need to check for null the accessible object in the waitFor function before calling isExpanded. Also buffering the output in a variable makes the test run faster.

  • LayoutTests/accessibility/mac/details-summary-expected.txt:
  • LayoutTests/accessibility/mac/details-summary.html:

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

8:22 PM Changeset in webkit [295719] by achristensen@apple.com
  • 1 edit in trunk/Source/WebKit/Platform/IPC/ArgumentCoders.h

std::variant decoding with out-of-bounds index should fail instead of decoding the 0'th type
https://bugs.webkit.org/show_bug.cgi?id=241813

Reviewed by Chris Dumez.

  • Source/WebKit/Platform/IPC/ArgumentCoders.h:

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

8:12 PM Changeset in webkit [295718] by Matt Woodrow
  • 10 edits
    18 adds in trunk

Don't allocate device pixel ratio scaled backing stores for layers that contain only unscaled bitmap content
https://bugs.webkit.org/show_bug.cgi?id=241450

Reviewed by Simon Fraser.

  • Source/WebCore/platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):

  • Source/WebCore/platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setAppliesDeviceScale):
(WebCore::GraphicsLayer::appliesDeviceScale const):
(WebCore::GraphicsLayer::deviceScaleFactor const):

  • Source/WebCore/rendering/RenderLayerBacking.cpp:

(WebCore::PaintedContentsInfo::isUnscaledBitmapOnly):
(WebCore::PaintedContentsInfo::contentsTypeDetermination):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::isUnscaledBitmapOnly const):

  • Source/WebCore/rendering/RenderLayerBacking.h:

Adds isUnscaledBitmapOnly to check if a layer contains only a <canvas>/image,
and no other rasterized content, and that the bitmap is drawn unscaled.
If so, uses setAppliesDeviceScale to disable hidpi backing stores for this layer.

  • Source/WebCore/platform/graphics/LayerTreeAsTextOptions.h:
  • Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::dumpAdditionalProperties const):

  • Source/WebCore/testing/Internals.cpp:

(WebCore::toLayerTreeAsTextOptions):

  • Source/WebCore/testing/Internals.h:
  • Source/WebCore/testing/Internals.idl:

Adds new internals.LAYER_TREE_INCLUDES_DEVICE_SCALE flag for layer tree dumping, in order
to test whether a layer has a high dpi backing store or not.

  • LayoutTests/compositing/canvas/hidpi-canvas-backing-store-expected.txt: Added.
  • LayoutTests/compositing/canvas/hidpi-canvas-backing-store-invalidation-expected.txt: Added.
  • LayoutTests/compositing/canvas/hidpi-canvas-backing-store-invalidation.html: Added.
  • LayoutTests/compositing/canvas/hidpi-canvas-backing-store.html: Added.

Adds new test for low-dpi backing store for a layer containing only a canvas, and an invalidation
test to check that we go back to hidpi when we add a rasterized outline.

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

8:09 PM Changeset in webkit [295717] by Fujii Hironori
  • 4 edits
    2 adds in trunk

TextureMapper: mask should be applied after filter is applied
https://bugs.webkit.org/show_bug.cgi?id=241772

Reviewed by Don Olmstead.

If an element has both a mask-image and filters, the mask should be
applied after the filters.

BitmapTextureGL::applyFilters didn't actually apply the last filter.
It stored the last filter information in it, and applied the last
filter when blitting onto the target. If the element has a mask,
applyFilters should apply all filters before applying the mask.

  • LayoutTests/compositing/masks/mask-and-drop-shadow-expected.html: Added.
  • LayoutTests/compositing/masks/mask-and-drop-shadow.html: Added.
  • Source/WebCore/platform/graphics/texmap/BitmapTexture.h:

(WebCore::BitmapTexture::applyFilters):

  • Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::applyFilters):

  • Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h:
  • Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintIntoSurface):

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

8:00 PM Changeset in webkit [295716] by achristensen@apple.com
  • 16 edits in trunk

Implement CSSNumericValue.equals
https://bugs.webkit.org/show_bug.cgi?id=241378

Reviewed by Chris Dumez.

This is an off-by-default experimental feature.

  • LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/equals.tentative-expected.txt:
  • Source/WebCore/bindings/js/JSCSSStyleValueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • Source/WebCore/css/typedom/CSSNumericValue.cpp:

(WebCore::CSSNumericValue::equals):

  • Source/WebCore/css/typedom/CSSNumericValue.h:

(): Deleted.

  • Source/WebCore/css/typedom/CSSStyleValue.h:

(WebCore::isCSSNumericValue):
(WebCore::isCSSMathValue):

  • Source/WebCore/css/typedom/CSSUnitValue.cpp:

(WebCore::CSSUnitValue::equals const):

  • Source/WebCore/css/typedom/CSSUnitValue.h:
  • Source/WebCore/css/typedom/numeric/CSSMathInvert.cpp:

(WebCore::CSSMathInvert::CSSMathInvert):
(WebCore::CSSMathInvert::equals const):

  • Source/WebCore/css/typedom/numeric/CSSMathInvert.h:
  • Source/WebCore/css/typedom/numeric/CSSMathMax.h:
  • Source/WebCore/css/typedom/numeric/CSSMathMin.h:
  • Source/WebCore/css/typedom/numeric/CSSMathNegate.cpp:

(WebCore::CSSMathNegate::CSSMathNegate):
(WebCore::CSSMathNegate::equals const):

  • Source/WebCore/css/typedom/numeric/CSSMathNegate.h:
  • Source/WebCore/css/typedom/numeric/CSSMathProduct.h:
  • Source/WebCore/css/typedom/numeric/CSSMathSum.h:
  • Source/WebCore/css/typedom/numeric/CSSMathValue.h:

(WebCore::CSSMathValue::CSSMathValue):
(WebCore::CSSMathValue::equalsImpl const):

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

7:41 PM Changeset in webkit [295715] by Alan Bujtas
  • 1 edit
    4 adds in trunk

RenderBox::hasHorizontalLayoutOverflow/hasVerticalLayoutOverflow use incorrect coordinate space
https://bugs.webkit.org/show_bug.cgi?id=241796

Reviewed by Simon Fraser.

RenderBox::x() and y() are in the coordinate space of the containing block while layoutOverflowRect is relative to the box's border box. These functions would compute overflow true if the box happens to have some offset (through margin or positioning) even without actual overflow.

  • LayoutTests/fast/overflow/horizontal-overflow-with-offset-expected.txt: Added.
  • LayoutTests/fast/overflow/horizontal-overflow-with-offset.html: Added.
  • LayoutTests/fast/overflow/vertical-overflow-with-offset-expected.txt: Added.
  • LayoutTests/fast/overflow/vertical-overflow-with-offset.html: Added.
  • Source/WebCore/rendering/RenderBox.h:

(WebCore::RenderBox::hasHorizontalLayoutOverflow const):
(WebCore::RenderBox::hasVerticalLayoutOverflow const):

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

7:38 PM Changeset in webkit [295714] by Alexey Shvayka
  • 3 edits in trunk/Source/JavaScriptCore/dfg

[JSC] Use m_structureCacheClearedWatchpoint in more DFG nodes
https://bugs.webkit.org/show_bug.cgi?id=241575

Reviewed by Yusuke Suzuki.

Not sure if this is observable, but it's worth to align with ObjectCreate for consistency.

  • Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:

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

  • Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handleCreateInternalFieldObject):

  • Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:

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

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

7:14 PM Changeset in webkit [295713] by commit-queue@webkit.org
  • 1 edit in trunk/LayoutTests/media/video-test.js

Support waiting for event in custom element
https://bugs.webkit.org/show_bug.cgi?id=241812

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-21
Reviewed by Eric Carlson.

Some media related layout tests require event listeners on custom HTML elements.

  • LayoutTests/media/video-test.js:

(waitForEventAndFailFor):
(waitForEventAndTest):
(waitForEventAndTestFor):

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

6:58 PM Changeset in webkit [295712] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/WebGPU

[WebGPU] Make Parser class declaration visible to unit tests for testing
https://bugs.webkit.org/show_bug.cgi?id=241738

Patch by Kiet Ho <Kiet Ho> on 2022-06-21
Reviewed by Myles C. Maxfield.

The existing parser interface (WGSL::parseLChar() and WGSL::parseUChar())
only accepts entirely valid shader module, which makes it difficult to
write unit tests targeting individual aspects of the parser (for example,
only testing the type declaration or unary expression parsing logic). This
commit moves the Parser class declaration from the .cpp file to a private
header file (ParserPrivate.h), and makes private methods that parse
individual grammar rules public. This gives unit tests access to those
methods to test them.

  • Source/WebGPU/WGSL/Parser.cpp:

(WGSL::Parser::Parser): Deleted.
(WGSL::Parser::current): Deleted.

  • Source/WebGPU/WGSL/ParserPrivate.h: Added.

(WGSL::Parser::Parser):
(WGSL::Parser::current):

  • Source/WebGPU/WebGPU.xcodeproj/project.pbxproj:

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

6:55 PM Changeset in webkit [295711] by Ziran Sun
  • 1 edit
    4 adds in trunk

Schedule/fire an event when selection changes for select() and setRangeText().
https://bugs.webkit.org/show_bug.cgi?id=241366

Reviewed by Darin Adler.

As per step 6 at [1], if either extent or direction of the text control to be modified,
we need to queue an element task on the user interaction task source given the element
to fire an select event with the bubbles attribute initialized to true. We addressed
some cases in Bug 238142. This is to fix the missing cases.

This patch also introduces WPT test select-event.html back to WebKit. For some reason, it
was removed in a previous resync patch.

[1] https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#set-the-selection-range

  • LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/select-event-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/select-event.html: Added.
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/select-event-expected.txt
  • Source/WebCore/html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::select):
(WebCore::HTMLTextFormControlElement::setRangeText):

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

6:34 PM Changeset in webkit [295710] by ysuzuki@apple.com
  • 1 add in trunk/JSTests/stress/array-buffer-transfer-should-not-reduce-extra-memory-size.js

[JSC] Add tests ensuring that extraMemorySize is monotonically increasing until full-collection happens
https://bugs.webkit.org/show_bug.cgi?id=241832
rdar://95384643

Reviewed by Mark Lam.

This patch adds tests ensuring that extraMemorySize is monotonically increasing until full-collection happens.
If this assumption is broken, GC scheduling can be confused. And we crash with existing assertions.

  • JSTests/stress/array-buffer-transfer-should-not-reduce-extra-memory-size.js: Added.

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

6:23 PM Changeset in webkit [295709] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Cleanup fullscreen logic
https://bugs.webkit.org/show_bug.cgi?id=241811

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-21
Reviewed by Eric Carlson.

Cleaned up the logic used when entering fullscreen.

  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enterFullscreen):

  • Source/WebCore/page/ChromeClient.h:

(WebCore::ChromeClient::canEnterVideoFullscreen const):

  • Source/WebCore/page/Quirks.cpp:

(WebCore::Quirks::allowLayeredFullscreenVideos const):

  • Source/WebCore/page/Quirks.h:
  • Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::canEnterVideoFullscreen const):

  • Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
  • Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.h:
  • Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::canEnterVideoFullscreen const):
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation):
(WebKit::VideoFullscreenManager::setCurrentlyInFullscreen):

  • Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h:
  • Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::canEnterVideoFullscreen const):

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

6:16 PM Changeset in webkit [295708] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk/Source/WebKit

[GPUP] Send GPU preferences in single IPC message
https://bugs.webkit.org/show_bug.cgi?id=241809
rdar://95636552

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-21
Reviewed by Eric Carlson.

Currently the GPUProcessProxy::updatePreferences method sends preferences
from the web process in multiple IPC messages to the GPU process. These messages
should be consolidated into one package and sent across in a single message.

  • Source/WebKit/GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::updateGPUProcessPreferences):
(WebKit::GPUProcess::updatePreference):
(WebKit::GPUProcess::setWebMParserEnabled): Deleted.
(WebKit::GPUProcess::setWebMFormatReaderEnabled): Deleted.
(WebKit::GPUProcess::setOpusDecoderEnabled): Deleted.
(WebKit::GPUProcess::setVorbisDecoderEnabled): Deleted.
(WebKit::GPUProcess::setMediaSourceInlinePaintingEnabled): Deleted.
(WebKit::GPUProcess::setSampleBufferContentKeySessionSupportEnabled): Deleted.

  • Source/WebKit/GPUProcess/GPUProcess.h:
  • Source/WebKit/GPUProcess/GPUProcess.messages.in:
  • Source/WebKit/GPUProcess/GPUProcessPreferences.cpp: Added.

(WebKit::GPUProcessPreferences::encode const):
(WebKit::GPUProcessPreferences::decode):

  • Source/WebKit/GPUProcess/GPUProcessPreferences.h: Added.
  • Source/WebKit/Sources.txt:
  • Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::updatePreferences):

  • Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

6:05 PM Changeset in webkit [295707] by Matt Woodrow
  • 2 edits in trunk

ConnectionCocoa doesn't receive disconnect notifications before the client has finished initialising
https://bugs.webkit.org/show_bug.cgi?id=241666

Reviewed by Kimmo Kinnunen.

Adds a MACH_NOTIFY_NO_SENDERS notification to the receive port of a server-side Connection object, so that
we can receive notifications if we fail to initialize the client side of the connection.
This gets removed again once the client side initialization completes, since we already have handling for
disconnections from that point onwards.

The test WebProcessTerminationAfterTooManyGPUProcessCrashes would hang in case the GPU Process would be
restarted and the test would terminate it before the connection was fully established, before the WebContent
process would receive the send right. The test is written in such a way that it is expected is that the GPUP
kill happens only after the connection has been re-established and the audio is playing.

  • Source/WebKit/Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::requestNoSenderNotifications):
(IPC::clearNoSenderNotifications):
(IPC::Connection::open):
(IPC::Connection::receiveSourceEventHandler):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

Adds some early returns for failure cases, so that we don't call kill(0, 9).

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

5:39 PM Changeset in webkit [295706] by Cameron McCormack
  • 1 edit in trunk/Source/WebCore/platform/graphics/DecomposedGlyphs.cpp

DecomposedGlyphs should notify observers in destructor
https://bugs.webkit.org/show_bug.cgi?id=241752

Reviewed by Simon Fraser.

Currently old DecomposedGlyphs objects will hang around in the GPU process until
the document goes away, instead of (as is intended) when the display list they
are in is removed from the GlyphDisplayListCache.

  • Source/WebCore/platform/graphics/DecomposedGlyphs.cpp:

(WebCore::DecomposedGlyphs::~DecomposedGlyphs):

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

5:17 PM Changeset in webkit [295705] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in

Allow access to power log service in internal builds
https://bugs.webkit.org/show_bug.cgi?id=241688
<rdar://82442196>

Reviewed by Geoffrey Garen.

Allow access to power log service in the GPU process in internal builds.

  • Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

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

5:15 PM Changeset in webkit [295704] by Alexey Shvayka
  • 2 edits in trunk/Source

constructJSHTMLElement() should protect document and elementInterface
https://bugs.webkit.org/show_bug.cgi?id=241827
<rdar://94610860>

Reviewed by Mark Lam.

  • Source/WebCore/bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

  • Source/WebKit/WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runModal):

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

4:57 PM Changeset in webkit [295703] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Unreviewed, revert "The extraMemorySize() get wrong when transferring ArrayBuffer from Worker VM"
https://bugs.webkit.org/show_bug.cgi?id=241826
rdar://95384643

This reverts commit 71960bed2a3ee0917367bc4144911a9e8168deea.

m_extraMemorySize must be monotonically increasing during GC cycles until
full-collection happens. And after the full-collection, it is adjusted.
We already adjusted it in sweep of m_arrayBuffer, so, we should not reduce
that number. This is used for GC invocation scheduling. So, if we would like to
have a number which more precisely reflecting the current status,
then we should have yet another one. And we can still use extraMemorySize
since it will be adjusted after the full-collection. So we can consider
that transferred array-buffer is collected at the full-collection.

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

4:51 PM Changeset in webkit [295702] by J Pascoe
  • 1 edit in trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm

[WebAuthn] Fix crash when making assertions
https://bugs.webkit.org/show_bug.cgi?id=241814
rdar://95618710

Reviewed by Brent Fulgham.

We return an NSData inside _WKAuthenticatorAssertionResponse with ref count 0. To fix this,
we use autorelease as we do in the _WKAuthenticatorAttestationResponse case.

  • Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(wkAuthenticatorAssertionResponse):

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

4:28 PM Changeset in webkit [295701] by commit-queue@webkit.org
  • 31 edits in trunk

getComputedStyle(img).height returns string of a rounded int not a float
https://bugs.webkit.org/show_bug.cgi?id=206161
<rdar://93860607>

Patch by Sammy Gill <sgill26@apple.com> on 2022-06-21
Reviewed by Alan Bujtas.

When computing the logical height/width for a replaced element, we may
need to calculate it using (used width) / (intrinsic ratio) or
(used height) / (intrinsic ratio). In either case, these are the
used values according to the spec, which means they may be floats.

Currently, WebKit performs these computations, but it also rounds them
leading to an incorrect value. By removing these calls to round, the
computed value should line up with what is specified in the spec.

As a result of this change, several tests needed to be rebaselined since
the generated content was slightly different. In the test cases, there
were certain elements that computed a slightly different width/height
value, which resulted in different dimensions that were used in the
rendering as well as in the output of the tests. Depending on how the
dimensions of an element changed, this could have in turn caused a
nearby element to get rendered slightly differetly as well. For example,
if an element had a slight increase in its height, this could have
caused a neighboring element to have a slightly different position in
the y dimension. The more of these interactions/differences there are
would mean we would see a greater difference in the expected vs actual
output (e.g. css1/text_properties/vertical_align.html).

However, this change should be seen as a progression when comparing the
tests with the results of other browsers. By loading up the tests in
other browsers, you can see that the dimensions that are calculated
are more in line with the new values generated with this patch.

Referenced spec: https://www.w3.org/TR/CSS21/visudet.html#propdef-height

  • Source/WebCore/rendering/RenderReplaced.cpp:

(WebCore::resolveWidthForRatio):
(WebCore::RenderReplaced::computeReplacedLogicalWidth const):
(WebCore::resolveHeightForRatio):
(WebCore::RenderReplaced::computeReplacedLogicalHeight const):

  • LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:
  • LayoutTests/fast/block/positioning/replaced-inside-fixed-top-bottom-expected.txt:
  • LayoutTests/fast/writing-mode/block-level-images-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/replaced-fractional-height-from-aspect-ratio-expected.txt:
  • LayoutTests/platform/mac/css1/box_properties/width-expected.txt:
  • LayoutTests/platform/mac/css1/formatting_model/replaced_elements-expected.txt:
  • LayoutTests/platform/mac/css1/text_properties/vertical_align-expected.txt:
  • LayoutTests/platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.txt:
  • LayoutTests/platform/mac/fast/replaced/width100percent-image-expected.txt:
  • LayoutTests/platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
  • LayoutTests/platform/mac/tables/mozilla/bugs/bug14929-expected.txt:
  • LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug85016-expected.txt:
  • LayoutTests/svg/css/max-width-2-expected.html:
  • LayoutTests/platform/glib/css2.1/t090501-c414-flt-03-b-g-expected.txt:
  • LayoutTests/platform/glib/fast/block/positioning/replaced-inside-fixed-top-bottom-expected.txt:
  • LayoutTests/platform/glib/tables/mozilla_expected_failures/bugs/bug85016-expected.txt:
  • LayoutTests/platform/gtk/css1/box_properties/width-expected.txt:
  • LayoutTests/platform/gtk/css1/formatting_model/replaced_elements-expected.txt:
  • LayoutTests/platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • LayoutTests/platform/gtk/css2.1/t090501-c414-flt-03-b-g-expected.png:
  • LayoutTests/platform/gtk/fast/repaint/block-layout-inline-children-replaced-expected.png:
  • LayoutTests/platform/gtk/fast/repaint/block-layout-inline-children-replaced-expected.txt:
  • LayoutTests/platform/gtk/fast/replaced/width100percent-image-expected.txt:
  • LayoutTests/platform/gtk/tables/mozilla/bugs/bug14929-expected.txt:
  • LayoutTests/platform/ios/css1/text_properties/vertical_align-expected.txt:
  • LayoutTests/platform/ios/fast/replaced/width100percent-image-expected.txt:
  • LayoutTests/platform/ios/tables/mozilla/bugs/bug14929-expected.txt:
  • LayoutTests/platform/ios/tables/mozilla_expected_failures/bugs/bug85016-expected.txt:
  • LayoutTests/platform/glib/TestExpectations:
  • LayoutTests/platform/gtk/TestExpectations:

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

4:25 PM Changeset in webkit [295700] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebCore/Modules/indexeddb

Add null checks for connection in UniqueIDBDatabaseTransaction and UniqueIDBDatabase
https://bugs.webkit.org/show_bug.cgi?id=241792
rdar://95011134

Reviewed by Youenn Fablet.

  • Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::clearTransactionsOnConnection):
(WebCore::IDBServer::UniqueIDBDatabase::openDBRequestCancelled):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::immediateClose):

  • Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection const):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abortWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::database const):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didActivateInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection): Deleted.

  • Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Source/WebCore/Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::openDatabaseUpgradeNeeded):

  • Source/WebCore/Modules/indexeddb/shared/IDBResultData.h:

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

4:22 PM Changeset in webkit [295699] by Patrick Angle
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/GeneralStyleDetailsSidebarPanel.js

Web Inspector: Fonts details sidebar in Elements tab has empty space for filter bar
https://bugs.webkit.org/show_bug.cgi?id=241817
rdar://problem/95634156

Reviewed by Devin Rousso.

As pointed out by Devin, passing undefined to toggle here acts as if we didn't pass a value, not as a falsy value.

  • Source/WebInspectorUI/UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype._showPanel):

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

4:21 PM Changeset in webkit [295698] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WTF/wtf/GenerateProfiles.h

Allow build-and-collect-pgo-profiles to write files
https://bugs.webkit.org/show_bug.cgi?id=241692
<rdar://95311491>

Patch by Brianna Fan <briannaf@berkeley.edu> on 2022-06-21
Reviewed by Dewei Zhu.

Ran into a missing profiles issue as required permissions to write were missing.
Fixed this issue by moving a code block in GenerateProfiles.h.

  • Source/WTF/wtf/GenerateProfiles.h:

(WTF::registerProfileGenerationCallback):

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

4:01 PM Changeset in webkit [295697] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Block access to socket syscalls
https://bugs.webkit.org/show_bug.cgi?id=241722

Reviewed by Geoffrey Garen.

Block access to socket syscalls in the WebContent process. These are used by the legacy ASL logging system.
The legacy logging system is rarely used in the WebContent process.

  • Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:

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

3:39 PM Changeset in webkit [295696] by commit-queue@webkit.org
  • 15 edits in trunk

Fix spelling error identifer -> identifier.
https://bugs.webkit.org/show_bug.cgi?id=241787

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-21
Reviewed by Jonathan Bedard and Ross Kirsling.

Across multiple files, the word "identifier" is misspelled as "identifer"

  • Source/WebCore/Modules/filesystemaccess/FileSystemHandleCloseScope.h:

(WebCore::FileSystemHandleCloseScope::FileSystemHandleCloseScope):

  • Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:

(GenerateDeletePropertyCommon):

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

(WebCore::JSTestNamedDeleterNoIdentifier::deleteProperty):
(WebCore::JSTestNamedDeleterNoIdentifier::deletePropertyByIndex):

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

(WebCore::JSTestNamedDeleterThrowingException::deleteProperty):
(WebCore::JSTestNamedDeleterThrowingException::deletePropertyByIndex):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::deleteProperty):

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::prepareLayerBuffersForDisplay):

  • Source/WebKit/Shared/ObjectIdentifierReferenceTracker.h:
  • Source/WebKit/UIProcess/API/APIContentWorld.cpp:

(API::ContentWorld::worldForIdentifier):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection):

  • Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.messages.in:
  • Source/WebKit/webpushd/PushClientConnection.mm:

(WebPushD::ClientConnection::broadcastDebugMessage):

  • Tools/MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController updateTitle:]):

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/revert.py:

(Revert.parser):

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/squash.py:

(Squash.parser):

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

3:34 PM Changeset in webkit [295695] by J Pascoe
  • 1 edit in trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

Only support downloading previews in captive portal mode
https://bugs.webkit.org/show_bug.cgi?id=241741
<rdar://92037537>

Reviewed by Brent Fulgham.

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForResponseShared):
Set policy for previews to download

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

3:11 PM Changeset in webkit [295694] by J Pascoe
  • 5 edits in trunk

NotificationEventEnabled should be enabled macOS Ventura+
https://bugs.webkit.org/show_bug.cgi?id=241605
rdar://94441142

Reviewed by Alex Christensen.

  • Source/WTF/wtf/PlatformEnable.h:

This API should only be enabled on macOS 13 and later.

  • LayoutTests/TestExpectations:
  • LayoutTests/platform/mac-wk2/TestExpectations:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

Update test expectations to account for these being macOS Ventura+

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

3:08 PM Changeset in webkit [295693] by ysuzuki@apple.com
  • 1 edit
    1 add in trunk

[JSC] Fix Temporal regulateTime's constraints for milliseconds, microseconds, and nanoseconds
https://bugs.webkit.org/show_bug.cgi?id=241818
rdar://95534859

Reviewed by Ross Kirsling.

This patch fixes constraints for milliseconds, microseconds, and nanoseconds in constrainTime.
It should be from 0 to 999, not to 1000[1].

[1]: https://tc39.es/proposal-temporal/#sec-temporal-constraintime

  • JSTests/stress/temporal-plaintime-tostring-1000-millisecond.js: Added.

(shouldBe):
(throw.new.Error):

  • Source/JavaScriptCore/runtime/TemporalPlainTime.cpp:

(JSC::constrainTime):

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

3:00 PM Changeset in webkit [295692] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/css/typedom/CSSStyleValue.h

-Wmismatched-new-delete warning spam from CSSStyleValue.h
https://bugs.webkit.org/show_bug.cgi?id=241516

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-06-21
Reviewed by Chris Dumez.

I cannot find any reason behind this warning. Mismatched new/delete is
very serious if true, but in this case, I just do not see it. If we are
doing something wrong, it must be somehow related to the iso heap, but
don't think we are.

  • Source/WebCore/css/typedom/CSSStyleValue.h:

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

2:50 PM Changeset in webkit [295691] by J Pascoe
  • 1 edit in trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

Disable system preview in captive portal mode
https://bugs.webkit.org/show_bug.cgi?id=241739
rdar://90563679

Reviewed by Brent Fulgham.

  • Source/WebKit/WebProcess/WebPage/WebPage.cpp:

(WebKit::adjustSettingsForCaptivePortal):
Disable system preview when in captive portal mode.

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

2:35 PM Changeset in webkit [295690] by J Pascoe
  • 1 edit in trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp

Use PageIdentifier, not WebPageProxy's identifier for WKPageGetIdentifier
https://bugs.webkit.org/show_bug.cgi?id=241701
rdar://problem/95332001

Reviewed by Chris Dumez.

  • Source/WebKit/UIProcess/API/C/WKPage.cpp:

(WKPageGetIdentifier):
Use webPageID, not identifier.

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

2:27 PM Changeset in webkit [295689] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit/UIProcess/ios

[iOS 16] Previously dictated input is inserted in next field when changing focused element
https://bugs.webkit.org/show_bug.cgi?id=241751
rdar://84995538

Reviewed by Megan Gardner.

When changing focus between text fields while continuous dictation is active, dictated text in the
previously focused text field is inserted in the newly focused field. This happens because UIKit
attempts to update the dictation string one final time prior to changing the keyboard input
delegate; however, this doesn't work in WKWebView, due to the fact that the previous field has
already been blurred by the time we handle element focus and reload input views in the UI process.

Mitigate this by treating -replaceDictatedText:withText: and -insertText: as no-ops in the case
where they are triggered while hiding the keyboard; note that this only changes behavior in cases
where UIKit would've otherwise inserted or modified text in newly focused elements, while only
having text input and autocorrection context from the previously focused element -- as such, it's
very unlikely that any (intended) platform editing behaviors in WebKit2 depend on the ability to
insert text in this specific scenario.

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:

Add a new _isHidingKeyboard flag.

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView replaceDictatedText:withText:]):
(-[WKContentView insertText:]):
(-[WKContentView _hideKeyboard]):

Set _isHidingKeyboard during the scope of this method call.

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

2:06 PM Changeset in webkit [295688] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

Adopt new function to set video decoder behavior
https://bugs.webkit.org/show_bug.cgi?id=241603

Reviewed by Geoffrey Garen.

The only behavior change from this is that common video decoders will not be permitted in the WebContent process.

  • Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

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

9:22 AM Changeset in webkit [295687] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/TestWebKitAPI/Tests/WebKit

TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturingAndCalling is failing on BigSur bot
https://bugs.webkit.org/show_bug.cgi?id=241798

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-21
Reviewed by Eric Carlson.

  • Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
  • Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html:

Adding some more tests and logging to investigate what is wrong with the test in BigSur.

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

7:24 AM Changeset in webkit [295686] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk

A HTMLMediaElement created while page is interrupted should be able to autoplay
https://bugs.webkit.org/show_bug.cgi?id=241783

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-21
Reviewed by Eric Carlson.

Previously, a session created while manager is interrupted would get its state set to interrupted.
When end of interruption happens, it would not be restarted since its interruption count would be set to 0.
Instead, manager now stores the last interruption.
In case of a new session, we now call beginInterruption instead of setting the session state directly.
This allows to have an interruption count set to 1 and thus uninterrupt the session when the end of interruption signal happens.

Covered by added test.

  • LayoutTests/fast/mediastream/video-created-while-interrupted-expected.txt: Added.
  • LayoutTests/fast/mediastream/video-created-while-interrupted.html: Added.
  • Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::beginInterruption):
(WebCore::PlatformMediaSessionManager::endInterruption):
(WebCore::PlatformMediaSessionManager::addSession):
(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
(WebCore::PlatformMediaSessionManager::processSystemWillSleep):
(WebCore::PlatformMediaSessionManager::processSystemDidWake):

  • Source/WebCore/platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::isInterrupted const):

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

6:16 AM Changeset in webkit [295685] by Andres Gonzalez
  • 2 edits in trunk

AX ITM: Fix for accessibility/language-attribute-change.html in isolated tree mode. web content
https://bugs.webkit.org/show_bug.cgi?id=241794

Reviewed by Chris Fleizach.

  • Source/WebCore/accessibility/AXObjectCache.cpp:

When the lang attribute changes, we need to update the object for which the attribute changed in addition to updating its children.
(WebCore::AXObjectCache::updateIsolatedTree):

  • Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::executeOnAXThreadAndWait):
Made the complete local variable std::atomic since it is accessed on and off the main thread.

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

1:52 AM Changeset in webkit [295684] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp

Apply implicit clears and clearBuffer commands in proper order
https://bugs.webkit.org/show_bug.cgi?id=241765

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-21
Reviewed by Kimmo Kinnunen.

Merging clearBuffer comamnds with implicit clears was producing
incorrect results, especially with enabled scissor test.

To resolve that, treat clearBuffer commands as draw calls,
i.e., apply implicit clears before them and notify the canvas
after, if needed.

It may be possible to reintroduce merged and/or skipped clears
provided that such an optimization does not break any tests.

See conformance2/rendering/clearbuffer-and-draw.html

  • Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::clearBufferiv):
(WebCore::WebGL2RenderingContext::clearBufferuiv):
(WebCore::WebGL2RenderingContext::clearBufferfv):
(WebCore::WebGL2RenderingContext::clearBufferfi):

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

1:26 AM Changeset in webkit [295683] by commit-queue@webkit.org
  • 67 edits
    2 copies in trunk

[LBSE] Add support for <path>
https://bugs.webkit.org/show_bug.cgi?id=240864

Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2022-06-21
Reviewed by Rob Buis.

Rename RenderSVGPath -> LegacyRenderSVGPath and adapt callees.

Re-introduce RenderSVGPath for LBSE, and activate
renderer creation for <path>, if LBSE is enabled at run-time.

This allows a 22 more SVG 1.1 testcases to pass with LBSE.

  • LayoutTests/platform/mac-monterey-wk2-lbse-text/TestExpectations:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-04-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-05-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-09-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-10-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-11-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-12-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-28-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-34-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-36-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-37-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-44-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/coords-viewattr-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/extend-namespace-01-f-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-a-05-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-fill-03-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-stroke-03-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-stroke-07-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-01-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-04-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-05-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-06-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-07-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-08-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-09-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-10-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-12-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-13-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-14-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/paths-data-15-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/render-elems-01-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/render-elems-02-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/render-elems-03-t-expected.txt:
  • LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-frag-06-t-expected.txt:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::determineAccessibilityRole):

  • Source/WebCore/rendering/RenderObject.h:

(WebCore::RenderObject::isLegacySVGPath const):
(WebCore::RenderObject::isSVGPathOrLegacySVGPath const):

  • Source/WebCore/rendering/RenderTreeAsText.cpp:
  • Source/WebCore/rendering/svg/LegacyRenderSVGPath.cpp: Copied from Source/WebCore/rendering/svg/RenderSVGPath.cpp.

(WebCore::LegacyRenderSVGPath::LegacyRenderSVGPath):
(WebCore::LegacyRenderSVGPath::updateShapeFromElement):
(WebCore::LegacyRenderSVGPath::calculateUpdatedStrokeBoundingBox const):
(WebCore::useStrokeStyleToFill):
(WebCore::LegacyRenderSVGPath::strokeShape const):
(WebCore::LegacyRenderSVGPath::shapeDependentStrokeContains):
(WebCore::LegacyRenderSVGPath::shouldStrokeZeroLengthSubpath const):
(WebCore::LegacyRenderSVGPath::zeroLengthLinecapPath const):
(WebCore::LegacyRenderSVGPath::zeroLengthSubpathRect const):
(WebCore::LegacyRenderSVGPath::updateZeroLengthSubpaths):
(WebCore::LegacyRenderSVGPath::isRenderingDisabled const):

  • Source/WebCore/rendering/svg/LegacyRenderSVGPath.h: Copied from Source/WebCore/rendering/svg/RenderSVGPath.h.
  • Source/WebCore/rendering/svg/LegacyRenderSVGShape.h:
  • Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp:
  • Source/WebCore/rendering/svg/RenderSVGPath.cpp:

(WebCore::RenderSVGPath::RenderSVGPath):
(WebCore::RenderSVGPath::updateShapeFromElement):
(WebCore::RenderSVGPath::strokeShape const):
(WebCore::RenderSVGPath::shapeDependentStrokeContains):

  • Source/WebCore/rendering/svg/RenderSVGPath.h:
  • Source/WebCore/rendering/svg/RenderSVGShape.h:
  • Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:
  • Source/WebCore/svg/SVGElement.cpp:

(WebCore::createSVGLayerAwareElementSet):

  • Source/WebCore/svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::createElementRenderer):

  • Source/WebCore/svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::getBBox):
(WebCore::SVGPathElement::createElementRenderer):

  • Source/WebCore/svg/SVGPolyElement.cpp:

(WebCore::SVGPolyElement::svgAttributeChanged):
(WebCore::SVGPolyElement::approximateMemoryCost const):

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

1:19 AM Changeset in webkit [295682] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Align uniform*, WebGLMultiDraw, and GraphicsContextGLANGLE functions
https://bugs.webkit.org/show_bug.cgi?id=241748

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-21
Reviewed by Kimmo Kinnunen.

  • Added const qualifiers and rvalue ref to WebGL2RenderingContext::uniform*
  • Removed TypedList redefinition from WebGLMultiDraw
  • Added rvalue ref to typed arrays in WebGLMultiDraw::multiDraw*
  • Removed extra validation from WebGLRenderingContextBase::uniform1*
  • Added checkGPUStatus to draw and clear commands in GraphicsContextGLANGLE
  • Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::uniform1ui):
(WebCore::WebGL2RenderingContext::uniform2ui):
(WebCore::WebGL2RenderingContext::uniform3ui):
(WebCore::WebGL2RenderingContext::uniform4ui):
(WebCore::WebGL2RenderingContext::uniform1uiv):
(WebCore::WebGL2RenderingContext::uniform2uiv):
(WebCore::WebGL2RenderingContext::uniform3uiv):
(WebCore::WebGL2RenderingContext::uniform4uiv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x3fv):
(WebCore::WebGL2RenderingContext::uniform1fv):
(WebCore::WebGL2RenderingContext::uniform2fv):
(WebCore::WebGL2RenderingContext::uniform3fv):
(WebCore::WebGL2RenderingContext::uniform4fv):
(WebCore::WebGL2RenderingContext::uniform1iv):
(WebCore::WebGL2RenderingContext::uniform2iv):
(WebCore::WebGL2RenderingContext::uniform3iv):
(WebCore::WebGL2RenderingContext::uniform4iv):
(WebCore::WebGL2RenderingContext::uniformMatrix2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4fv):

  • Source/WebCore/html/canvas/WebGL2RenderingContext.h:
  • Source/WebCore/html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::multiDrawArraysWEBGL):
(WebCore::WebGLMultiDraw::multiDrawArraysInstancedWEBGL):
(WebCore::WebGLMultiDraw::multiDrawElementsWEBGL):
(WebCore::WebGLMultiDraw::multiDrawElementsInstancedWEBGL):

  • Source/WebCore/html/canvas/WebGLMultiDraw.h:
  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::uniform1i):
(WebCore::WebGLRenderingContextBase::uniform1iv):

  • Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::drawRangeElements):
(WebCore::GraphicsContextGLANGLE::clearBufferiv):
(WebCore::GraphicsContextGLANGLE::clearBufferuiv):
(WebCore::GraphicsContextGLANGLE::clearBufferfv):
(WebCore::GraphicsContextGLANGLE::clearBufferfi):
(WebCore::GraphicsContextGLANGLE::multiDrawArraysANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawArraysInstancedANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawElementsANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawElementsInstancedANGLE):

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

Jun 20, 2022:

11:42 PM Changeset in webkit [295681] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/loader/appcache/ApplicationCacheHost.cpp

ApplicationCacheHost::isApplicationCacheEnabled() should check for its page being null
https://bugs.webkit.org/show_bug.cgi?id=241776

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-20
Reviewed by Alex Christensen.

  • Source/WebCore/loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::isApplicationCacheEnabled):
Add page null check.

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

11:37 PM Changeset in webkit [295680] by mark.lam@apple.com
  • 6 edits in trunk/Source

Enhance RawPointer to take function pointers as well.
https://bugs.webkit.org/show_bug.cgi?id=241773

Reviewed by Yusuke Suzuki.

Also add PageBlock::end and PageReservation::end methods to make code a little
more readable (motivated by a RawPointer use).

  • Source/JavaScriptCore/API/JSMarkingConstraintPrivate.cpp:

(JSContextGroupAddMarkingConstraint):

  • Source/JavaScriptCore/heap/HeapFinalizerCallback.cpp:

(JSC::HeapFinalizerCallback::dump const):

  • Source/JavaScriptCore/jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

  • Source/WTF/wtf/PageBlock.h:

(WTF::PageBlock::end const):

  • Source/WTF/wtf/PageReservation.h:
  • Source/WTF/wtf/RawPointer.h:

(WTF::RawPointer::RawPointer):

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

8:54 PM Changeset in webkit [295679] by Patrick Griffis
  • 7 edits in trunk

[GLIB] Add API to set WebView's Content-Security-Policy
https://bugs.webkit.org/show_bug.cgi?id=240221

Reviewed by Michael Catanzaro and Adrian Perez de Castro.

This adds API to set the WebView's default policy as well as API to
indicate that the WebView is in a WebExtension. This changes the internal
behavior of CSP to block some options.

Both of these are required for a complete WebExtension implementation in
browsers such as Epiphany.

  • Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewDefaultContentSecurityPolicy):
(testWebViewWebExtensionMode):
(beforeAll):

  • Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::loadHtml):

  • Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
  • Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextCreatePageForWebView):

  • Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init):
(webkit_web_view_get_web_extension_mode):
(webkit_web_view_get_default_content_security_policy):

  • Source/WebKit/UIProcess/API/gtk/WebKitWebView.h:
  • Source/WebKit/UIProcess/API/wpe/WebKitWebView.h:

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

5:29 PM Changeset in webkit [295678] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebGPU/WGSL/SourceSpan.h

[WebGPU] Support equality comparison between SourceSpans
https://bugs.webkit.org/show_bug.cgi?id=241757

Patch by Kiet Ho <Kiet Ho> on 2022-06-20
Reviewed by Myles C. Maxfield.

  • Source/WebGPU/WGSL/SourceSpan.h:

(WGSL::SourceSpan::operator==):

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

5:02 PM Changeset in webkit [295677] by mark.lam@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/runtime/Options.cpp

Fix broken --useOSLog option.
https://bugs.webkit.org/show_bug.cgi?id=241790

Reviewed by Alexey Shvayka.

Internally, --useOSLog=0 is represented as OSLogType::None. Options::dumpAllOptionsInALine()
dumps this value as "none". When "none" is later passed back to Options::setOption(), it is
rejected because useOSLog's parse function wasn't expecting "none" as an input string. The
fix is simply to add "none" to the list of allowed input strings.

Also, since OSLogType::None is a thing, it makes sense that the option should allow value
"none". This issue was manifesting as a failure when running testapi.

  • Source/JavaScriptCore/runtime/Options.cpp:

(JSC::parse):

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

11:47 AM Changeset in webkit [295676] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebKit

Fix spelling error in remote media players
https://bugs.webkit.org/show_bug.cgi?id=241786

Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-20
Reviewed by Wenson Hsieh.

The word "identifier" was spelt wrong in both remote media player
header files and some supplemental media files.

  • Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:
  • Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::identifier const): Deleted.

  • Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

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

8:30 AM WebKitGTK/2.36.x edited by berto@igalia.com
(diff)
7:45 AM Changeset in webkit [295675] by Antti Koivisto
  • 5 edits in trunk

[CSS Container Queries] Container units don't work in gradients
https://bugs.webkit.org/show_bug.cgi?id=241780

Reviewed by Tim Nguyen.

  • LayoutTests/TestExpectations:
  • Source/WebCore/css/CSSGradientValue.cpp:

(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
(WebCore::CSSConicGradientValue::createGradient):

Provide the element to CSSToLengthConversionData so a container can be selected.

  • Source/WebCore/css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):

  • Source/WebCore/css/CSSToLengthConversionData.cpp:

(WebCore::CSSToLengthConversionData::CSSToLengthConversionData):

  • Source/WebCore/css/CSSToLengthConversionData.h:

(WebCore::CSSToLengthConversionData::elementForContainerUnitResolution const):
(WebCore::CSSToLengthConversionData::element const): Deleted.

Rename for clarity.

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

6:04 AM Changeset in webkit [295674] by commit-queue@webkit.org
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm

[ iOS ] TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturing is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=239315

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-20
Unreviewed.

Reenable tests to gather EWS results.
We should at least reenable it in macOS if it still does not run well in iOS.

  • Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

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

5:02 AM Changeset in webkit [295673] by commit-queue@webkit.org
  • 1 edit in trunk/LayoutTests/platform/ios-wk2/TestExpectations

[ iOS ] 8 imported/w3c/web-platform-tests/fetch/api (layout-tests) are flaky text failures
https://bugs.webkit.org/show_bug.cgi?id=234278

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-20
Unreviewed.

  • LayoutTests/platform/ios-wk2/TestExpectations:

Tests no longer seem flaky in results.webkit.org.

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

4:29 AM Changeset in webkit [295672] by Antti Koivisto
  • 1 edit in trunk/LayoutTests/TestExpectations

Enable imported/w3c/web-platform-tests/css/css-contain/container-queries/svg-foreignobject-no-size-container.html in release
https://bugs.webkit.org/show_bug.cgi?id=241779

Unreviewed test gardening.

It hits unrelated debug assert (bug 241778) but passes otherwise.

  • LayoutTests/TestExpectations:

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

2:02 AM Changeset in webkit [295671] by Diego Pino Garcia
  • 1 edit in trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp

REGRESSION(r295627): [GCC] Unreviewed, fix build error in Debian Stable

error: call to non-'constexpr' function 'void WTF::isIntegralOrPointerType()'.

  • Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::computeMinimumValue): Use
RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT

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

1:07 AM Changeset in webkit [295670] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Source/WebKit

IPC::FontReference is a redundant type alias in wrong software layer
https://bugs.webkit.org/show_bug.cgi?id=241712

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-06-20
Reviewed by Cameron McCormack and Wenson Hsieh.

Instead, use the aliased type Ref<Font>.

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Source/WebKit/Platform/IPC/FontReference.h: Removed.
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

12:43 AM Changeset in webkit [295669] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore/platform/graphics/displaylists

Remove unused display list item apply functions
https://bugs.webkit.org/show_bug.cgi?id=241771

Reviewed by Wenson Hsieh.

  • Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):

  • Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::PaintFrameForMedia::PaintFrameForMedia):
(WebCore::DisplayList::DrawFilteredImageBuffer::apply const): Deleted.
(WebCore::DisplayList::PaintFrameForMedia::apply const): Deleted.

  • Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:

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

Jun 19, 2022:

9:51 PM Changeset in webkit [295668] by Diego Pino Garcia
  • 2 edits in trunk/Tools/CISupport/build-webkit-org

Add new post-commit bot WPE-Linux-64-bit-Release-Clang-Build https://bugs.webkit.org/show_bug.cgi?id=241403

Reviewed by Jonathan Bedard and Aakash Jain.

Also rename 'GTK-Linux-64-bit-Release-Clang' to 'GTK-Linux-64-bit-Release-Clang-Build'
to respect naming convention.

  • Tools/CISupport/build-webkit-org/config.json:
  • Tools/CISupport/build-webkit-org/factories_unittest.py: Add new test for 'WPE-Linux-64-bit-Release-Clang-Build' bot.

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

9:27 PM Changeset in webkit [295667] by Cameron McCormack
  • 10 edits
    2 copies
    1 add in trunk/Source/WebCore

Add debug output support for WebCore::Gradient
https://bugs.webkit.org/show_bug.cgi?id=241767

Reviewed by Sam Weinig.

  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/platform/graphics/ColorInterpolationMethod.cpp: Added.

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/ColorInterpolationMethod.h:
  • Source/WebCore/platform/graphics/Gradient.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/Gradient.h:
  • Source/WebCore/platform/graphics/GradientColorStop.cpp: Copied from Source/WebCore/platform/graphics/GradientColorStop.h.

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/GradientColorStop.h:
  • Source/WebCore/platform/graphics/GradientColorStops.cpp: Copied from Source/WebCore/platform/graphics/GradientColorStop.h.

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/GradientColorStops.h:
  • Source/WebCore/platform/graphics/GraphicsTypes.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/GraphicsTypes.h:

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

9:25 PM Changeset in webkit [295666] by Matt Woodrow
  • 24 edits
    1 add
    1 delete in trunk

Make IPC::Attachment moveable on DARWIN
https://bugs.webkit.org/show_bug.cgi?id=241660

This makes the DARWIN implementation of IPC::Attachment use MachSendPort, since this
proper move handling, and lifetime management of the underlying mach_port_t.

This also removes the MachPort class, since this was largely just used as an intermediate
and is stricly worse than MachSendPort.

The primary bug fixed here is a case where the WebProcess sent a port to the UIProcess, and then
we failed to forward it to the GPUProcess since it had crashed. Previously we'd just leak the port (and
thus never notify the WebContent process that we'd failed), whereas now it gets released correctly.

Reviewed by Kimmo Kinnunen.

  • Source/WebKit/GPUProcess/GPUProcess.cpp:

(WebKit::asConnectionIdentifier):
(WebKit::GPUProcess::createGPUConnectionToWebProcess):

  • Source/WebKit/Platform/IPC/Attachment.cpp:

(IPC::Attachment::Attachment):
(IPC::Attachment::release): Deleted.

  • Source/WebKit/Platform/IPC/Attachment.h:

(IPC::Attachment::Attachment::customWriter const):
(IPC::Attachment::Attachment): Deleted.
(IPC::Attachment::type const): Deleted.
(IPC::Attachment::isNull const): Deleted.
(IPC::Attachment::size const): Deleted.
(IPC::Attachment::fd const): Deleted.
(IPC::Attachment::release): Deleted.
(IPC::Attachment::customWriter const): Deleted.
(IPC::Attachment::port const): Deleted.
(IPC::Attachment::disposition const): Deleted.
(IPC::Attachment::handle const): Deleted.

  • Source/WebKit/Platform/IPC/StreamServerConnection.cpp:

(IPC::StreamServerConnection::createWithDedicatedConnection):

  • Source/WebKit/Platform/IPC/cocoa/MachPort.h: Removed.
  • Source/WebKit/Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::SharedMemory::IPCHandle::encode const):
(WebKit::SharedMemory::IPCHandle::decode):

  • Source/WebKit/Scripts/webkit/parser_unittest.py:
  • Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:

(IPC::messageArgumentDescriptions):

  • Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiver.messages.in:
  • Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:
  • Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessages.h:

(Messages::TestWithLegacyReceiver::DidCreateWebProcessConnection::DidCreateWebProcessConnection):

  • Source/WebKit/Scripts/webkit/tests/TestWithoutAttributes.messages.in:
  • Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:
  • Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessages.h:

(Messages::TestWithoutAttributes::DidCreateWebProcessConnection::DidCreateWebProcessConnection):

  • Source/WebKit/Shared/IPCConnectionTester.cpp:

(WebKit::asIdentifier):

  • Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<MachSendRight>::encode):
(IPC::ArgumentCoder<MachSendRight>::decode):

  • Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
  • Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getNetworkProcessConnection):

  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/WebProcess/Inspector/WebInspector.cpp:

(WebKit::WebInspector::setFrontendConnection):

  • Source/WebKit/WebProcess/Network/NetworkProcessConnectionInfo.h:

(WebKit::NetworkProcessConnectionInfo::identifier const):
(WebKit::NetworkProcessConnectionInfo::releaseIdentifier):

Converts IPC::Attachment to use MachSendPort instead of a port/disposition pair, and changes all
callsites to handle that.

  • Source/WebKit/Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::open):
(IPC::Connection::sendOutgoingMessage):
(IPC::createMessageDecoder):
(IPC::Connection::receiveSourceEventHandler):
(IPC::Connection::createConnectionIdentifierPair):

Make serialization/deserialization handle IPC::Connection being a MachSendPort.

Also makes sure we explicity allocate a send right at the two places we allocate a receive right,
rather than relying on this happening during serialization (with the MAKE_SEND disposition).
This means if the caller ends up not sending the IPC::Connection due to an error, we'll still end
up deallocating a send right, and trigger the associated notifications.

  • Source/WebKit/Platform/IPC/cocoa/SharedFileHandleCocoa.cpp:

(IPC::SharedFileHandle::encode const):
(IPC::SharedFileHandle::decode):

Fixes a potential leak where we previously just passed our port to
fileport_makefd without then releasing our reference to it (which is now handled
via the MachSendPort destructor).

  • Source/WTF/wtf/cocoa/MachSendRight.cpp:

(WTF::MachSendRight::operator=):

Fixes a potential leak, where we were just overwriting the old m_port contents without releasing it.

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

8:57 PM Changeset in webkit [295665] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (r294902): Content with continuation leaves decoration bits behind when removed
https://bugs.webkit.org/show_bug.cgi?id=241734
<rdar://95308322>

Reviewed by Simon Fraser.

This patch ensures that when a renderer is removed we always issue a repaint regardless of what the associated layer's repaint bit says.

  1. after r294902, repaint is not issued anymore if either the associated or an ancestor layer have the "full repaint" bit set.
  2. such layer-driven repaints happen after layout.

In some dynamic content cases, the layer may be removed before layout happens. This patch ensures that we preemptively issue such repaints.

  • LayoutTests/fast/repaint/force-repaint-when-layer-is-destroyed-expected.txt: Added.
  • LayoutTests/fast/repaint/force-repaint-when-layer-is-destroyed.html: Added.
  • Source/WebCore/rendering/RenderLayerModelObject.cpp: Force (full) repaint when the renderer is being destroyed (detached -> non-internal move).

(WebCore::RenderLayerModelObject::willBeRemovedFromTree):

  • Source/WebCore/rendering/RenderLayerModelObject.h:
  • Source/WebCore/rendering/RenderObject.cpp: move duplicated code from repaint() and repaintRectangle() to issueRepaint().

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

8:28 PM Changeset in webkit [295664] by Cameron McCormack
  • 1 edit in trunk/Source/WebCore/platform/graphics/ContentTypeUtilities.cpp

Fix includes in ContentTypeUtilities.cpp
https://bugs.webkit.org/show_bug.cgi?id=241764

Reviewed by Sam Weinig.

They should be outside the namespace.

  • Source/WebCore/platform/graphics/ContentTypeUtilities.cpp:

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

6:46 PM Changeset in webkit [295663] by Cameron McCormack
  • 1 edit in trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

Sort WebCore Xcode project file
https://bugs.webkit.org/show_bug.cgi?id=241768

Reviewed by Tim Horton.

  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:

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

11:26 AM Changeset in webkit [295662] by commit-queue@webkit.org
  • 3 edits in trunk/Tools/Scripts/libraries/webkitscmpy

[git-webkit] Incorrect common directory when not in checkout root
https://bugs.webkit.org/show_bug.cgi?id=241487
<rdar://problem/95327557>

Patch by Jonathan Bedard <JonWBedard@gmail.com> on 2022-06-19
Reviewed by Michael Catanzaro.

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

(Git.common_directory): Run command from root_path.

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

Jun 18, 2022:

9:13 PM Changeset in webkit [295661] by mark.lam@apple.com
  • 4 edits in trunk/Source

Change Integrity audit logging to use OS_LOG_TYPE_ERROR.
https://bugs.webkit.org/show_bug.cgi?id=241742

Reviewed by Yusuke Suzuki.

On OS(DARWIN), Integrity audit code now uses an OSLogPrintStream to achieve this
logging with type OS_LOG_TYPE_ERROR. On other ports, we just route the logging
to WTF::dataFile() instead.

Also removed VA_ARGS support when !VA_OPT_SUPPORTED. This never worked in the first
place. Ports without VA_OPT_SUPPORTED will have to live with degraded logging.

Added WTFReportBacktraceWithPrefixAndPrintStream and WTFPrintBacktraceWithPrefixAndPrintStream
to support this new Integrity audit logging. Removed the old WTFPrintBacktraceWithPrefix
because it was never used by external clients. It was only used by as an internal support
function by other stack dumper functions.

  • Source/JavaScriptCore/tools/Integrity.cpp:

(JSC::Integrity::logFile):
(JSC::Integrity::logF):
(JSC::Integrity::logLnF):
(JSC::Integrity::verifyCell):

  • Source/JavaScriptCore/tools/Integrity.h:
  • Source/WTF/wtf/Assertions.cpp:
  • Source/WTF/wtf/Assertions.h:

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

9:07 PM Changeset in webkit [295660] by mark.lam@apple.com
  • 12 edits
    1 add in trunk/Source

Introducing RawHex, a counterpart to RawPointer
https://bugs.webkit.org/show_bug.cgi?id=241743

Reviewed by Saam Barati.

RawHex is for dumping integral values in hex just like RawPointer is for dumping
pointers. And similarly, RawHex is meant to be used with PrintStream.

For example:

dataLog(RawHex(42)); prints 0x2a
dataLog(RawHex(0x42);
prints 0x42
dataLog(RawHex(256)); prints 0x100
dataLog(RawHex(65536);
prints 0x10000
dataLog(RawHex(4294967295); prints 0xffffffff
dataLog(RawHex(4294967296);
prints 0x100000000
dataLog(RawHex(INT8_MIN); prints 0x80
dataLog(RawHex(INT16_MIN);
prints 0x8000
dataLog(RawHex(INT32_MIN); prints 0x80000000
dataLog(RawHex(-1);
prints 0xffffffff
dataLog(RawHex(INT64_MIN); prints 0x8000000000000000
dataLog(RawHex(INT64_MAX);
prints 0x7fffffffffffffff
dataLog(RawHex(UINT64_MAX); prints 0xffffffffffffffff

Also fixed up places where we were casting integral values into pointers, and
then using RawPointer to dump them in hex.

  • Source/JavaScriptCore/bytecode/BytecodeDumper.cpp:

(JSC::Wasm::BytecodeDumper::formatConstant const):

  • Source/JavaScriptCore/interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::dump const):

  • Source/JavaScriptCore/runtime/ExecutableBase.cpp:

(JSC::ExecutableBase::dump const):

  • Source/JavaScriptCore/runtime/LazyPropertyInlines.h:

(JSC::ElementType>::dump const):

  • Source/JavaScriptCore/runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::reportTopBytecodes):

  • Source/JavaScriptCore/tools/Integrity.cpp:

(JSC::Integrity::Random::reloadAndCheckShouldAuditSlow):

  • Source/JavaScriptCore/wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseBody):

  • Source/JavaScriptCore/wasm/WasmOpcodeOrigin.cpp:

(JSC::Wasm::OpcodeOrigin::dump const):

  • Source/WTF/WTF.xcodeproj/project.pbxproj:
  • Source/WTF/wtf/CMakeLists.txt:
  • Source/WTF/wtf/PrintStream.cpp:

(WTF::printInternal):

  • Source/WTF/wtf/PrintStream.h:
  • Source/WTF/wtf/RawHex.h: Added.

(WTF::RawHex::RawHex):
(WTF::RawHex::ptr const):
(WTF::RawHex::is64Bit const):
(WTF::RawHex::u64 const):

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

3:00 AM Changeset in webkit [295659] by Alexey Shvayka
  • 1 edit in trunk/Source/JavaScriptCore/runtime/JSFunction.cpp

REGRESSION (251613@main): Missing exception check in JSFunction::put()
https://bugs.webkit.org/show_bug.cgi?id=241727

Unreviewed follow-up fix.

Adds exception check after reifyLazyPropertyIfNeeded() since it may throw.

  • Source/JavaScriptCore/runtime/JSFunction.cpp:

(JSC::JSFunction::put):

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

Note: See TracTimeline for information about the timeline view.