{
  "commits": {
    "320122@main": {
      "author": "Patrick Griffis",
      "avatar": "https://www.gravatar.com/avatar/2233c3a857004b126158572af9fe36f7?d=identicon\u0026s=64",
      "cl": "320122@main",
      "clUrl": "https://commits.webkit.org/320122@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319900\n\nReviewed by Jessica Lee.\n\nThis adds a non-regex matching path to URLPattern whos\npurpose is to be used by the NetworkProcess for standards\nsuch as service workers and compression-dictionary.\n\nIt works on every port and does not use a regex engine\non Apple ports any more. It also helps ensure that every\nuser stays spec-compliant.\n\nThis move revealed some bugs in URLParser, that it did not\nuse the correct encoding for user/password. It also didn't\nhandle unclosed groups.\n\nTest: Tools/TestWebKitAPI/Tests/WebCore/URLPatternTests.cpp\n\n* LayoutTests/platform/glib/TestExpectations:\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/Modules/url-pattern/URLPattern.cpp:\n(WebCore::processInitForCreate):\n(WebCore::URLPattern::create):\n(WebCore::URLPattern::createWithoutRegExpSupport):\n(WebCore::URLPattern::compileAllComponents):\n(WebCore::URLPattern::testWithoutRegExp const):\n* Source/WebCore/Modules/url-pattern/URLPattern.h:\n* Source/WebCore/Modules/url-pattern/URLPatternComponent.cpp:\n(WebCore::URLPatternUtilities::URLPatternComponent::operator=):\n(WebCore::URLPatternUtilities::URLPatternComponent::URLPatternComponent):\n(WebCore::URLPatternUtilities::URLPatternComponent::compileWithoutRegExp):\n(WebCore::URLPatternUtilities::URLPatternComponent::matchesWithoutRegExp const):\n(WebCore::URLPatternUtilities::URLPatternComponent::matchSpecialSchemeProtocol const):\n* Source/WebCore/Modules/url-pattern/URLPatternComponent.h:\n* Source/WebCore/Modules/url-pattern/URLPatternParser.cpp:\n(WebCore::URLPatternUtilities::URLPatternParser::performParse):\n* Source/WebCore/Modules/url-pattern/URLPatternPartListMatcher.cpp: Added.\n(WebCore::URLPatternUtilities::literalMatchesAt):\n(WebCore::URLPatternUtilities::isComponentDelimiter):\n(WebCore::URLPatternUtilities::appendSingleOccurrenceEnds):\n(WebCore::URLPatternUtilities::markReachableEnds):\n(WebCore::URLPatternUtilities::matchPartListFrom):\n(WebCore::URLPatternUtilities::URLPatternPartListMatcher::URLPatternPartListMatcher):\n(WebCore::URLPatternUtilities::URLPatternPartListMatcher::matches const):\n* Source/WebCore/Modules/url-pattern/URLPatternPartListMatcher.h: Renamed from Source/WebCore/workers/service/ServiceWorkerRoute.mm.\n* Source/WebCore/PlatformCocoa.cmake:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/SourcesCMakeCocoa.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/workers/service/ServiceWorkerRoute.cpp:\n(WebCore::compileRoutePattern):\n(WebCore::validateServiceWorkerRouteCondition):\n(WebCore::matchURLPattern):\n(WebCore::computeOptions): Deleted.\n(WebCore::validateAndCompileURLPatternComponent): Deleted.\n(WebCore::validateAndUpdateURLPatternComponent): Deleted.\n(WebCore::matchURLPatternComponent): Deleted.\n* Source/WebCore/workers/service/ServiceWorkerRoute.h:\n* Tools/TestWebKitAPI/Tests/WebCore/URLPatternTests.cpp:\n(TestWebKitAPI::URLPatternTest::makePatternWithoutRegExp):\n(TestWebKitAPI::URLPatternTest::expectWithoutRegExpAgreesWithRegExp):\n(TestWebKitAPI::TEST_F(URLPatternTest, UnclosedGroupReturnsException)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpMatchesExactURL)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpNoMatchDifferentHostOrProtocol)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpNamedSegmentDoesNotCrossDelimiter)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpFullWildcardCrossesDelimiter)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpPrefixSuffixLiterals)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpBaseURLRelativePattern)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpSearchAndHash)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpWildcardSearchAndHash)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpZeroOrMoreGroup)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpOneOrMoreGroup)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpIgnoreCase)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpIgnoreCaseIsOnlyWhenRequested)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpIgnoreCaseAgreesWithRegExpPath)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpIgnoreCaseUnicodeAgreesWithRegExpPath)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpRejectsRegExpGroups)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpRejectsRegExpGroupFromConstructorString)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpRejectsNamedRegExpGroup)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpRejectsRegExpGroupInHostname)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpRejectsRegExpGroupInSearch)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpAllowsWildcardsAndNamedSegments)):\n(TestWebKitAPI::TEST_F(URLPatternTest, WithoutRegExpAgreesWithRegExpPath)):\n\nCanonical link: https://commits.webkit.org/320122@main",
      "email": "pgriffis@igalia.com",
      "hash": "8ce95bb31076b2a39f7450cb0018f30da1294a58",
      "subject": "Use shared URLPattern matching for ServiceWorker routes"
    },
    "320123@main": {
      "author": "Fujii Hironori",
      "avatar": "https://www.gravatar.com/avatar/ef99cb23f5e5d27977968ca097d9a85f?d=identicon\u0026s=64",
      "cl": "320123@main",
      "clUrl": "https://commits.webkit.org/320123@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322919\n\nReviewed by Adrian Perez de Castro.\n\nbuild-webkit --wpe --cmakeargs=-DENABLE_WPE_LEGACY_API=0 couldn't link libWPEWebKit-2.0.so:\n\n\u003e undefined reference to `WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent(WebKit::WebKeyboardEventInit\u0026\u0026)'\n\u003e undefined reference to `WebKit::NativeWebMouseEvent::NativeWebMouseEvent(WebKit::WebMouseEventInit\u0026\u0026)'\n\u003e undefined reference to `WebKit::NativeWebWheelEvent::NativeWebWheelEvent(WebKit::WebWheelEventInit\u0026\u0026)'\n\nMoved the ctors from libwpe/*.cpp to *.h to share them between legacy libwpe\ncode path and modern wpe platform code path.\n\n* Source/WebKit/Shared/NativeWebKeyboardEvent.h:\n(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):\n* Source/WebKit/Shared/NativeWebMouseEvent.h:\n(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):\n* Source/WebKit/Shared/NativeWebWheelEvent.h:\n(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):\n* Source/WebKit/Shared/libwpe/NativeWebKeyboardEventLibWPE.cpp:\n(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Deleted.\n* Source/WebKit/Shared/libwpe/NativeWebMouseEventLibWPE.cpp:\n(WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Deleted.\n* Source/WebKit/Shared/libwpe/NativeWebWheelEventLibWPE.cpp:\n(WebKit::NativeWebWheelEvent::NativeWebWheelEvent): Deleted.\n\nCanonical link: https://commits.webkit.org/320123@main",
      "email": "fujii@igalia.com",
      "hash": "e6b841d2ce6ba690906486cb70fb393f0611fcaf",
      "subject": "REGRESSION(320030@main): [WPE] ENABLE_WPE_LEGACY_API=0 can't build due to undefined reference to `WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent(WebKit::WebKeyboardEventInit\u0026\u0026)'"
    },
    "320124@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "320124@main",
      "clUrl": "https://commits.webkit.org/320124@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322840\nrdar://186082244\n\nReviewed by Gerald Squelart.\n\nWebCoreDecompressionSession::invalidate() is called from the VideoMediaSampleRenderer's queue.\nThe assertIsMainThread() assertion was unnecessary as this method is fully thread-safe.\n\nFully revert 320041@main.\n\nCovered by existing tests.\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n* Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.mm:\n(WebCore::WebCoreDecompressionSession::invalidate):\n\nCanonical link: https://commits.webkit.org/320124@main",
      "email": "jya@apple.com",
      "hash": "310865d3daa8f1617d12be9a0a94f6e9d5d823f3",
      "subject": "REGRESSION(318498@main): [Tahoe] 11 imported/w3c/web-platform-tests/encrypted-media/drm-mp4 tests are a constant CRASH"
    },
    "320125@main": {
      "author": "Ruthvik Konda",
      "avatar": "https://www.gravatar.com/avatar/bca33cefcce93017251a8fbc1204cdc4?d=identicon\u0026s=64",
      "cl": "320125@main",
      "clUrl": "https://commits.webkit.org/320125@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315627\nrdar://176482416\n\nReviewed by Mike Wyrzykowski.\n\nMerge resolution: the Source/WebGPU changes from this commit are dropped as\nobsolete on main; only the regression test is integrated.\n\nThe fix added a `committed` flag to Buffer::m_indirectCache plus\ntakeSlowIndirectValidationPath(), so that a drawIndirect clamp recorded by a\ncommand encoder that was finished but never submitted could not leave the cache\nclaiming m_indirectBuffer held clamped arguments the GPU had never received.\n\n319317@main (\"[WebGPU] drawIndirect/drawIndexedIndirect clamp into a single\nper-Buffer scratch slot, racing every other indirect draw in the same render\npass\") deleted the mechanism that depended on: m_indirectCache, the\nskippedDrawIndirectValidation / skippedDrawIndirectIndexedValidation skip paths,\ntakeSlowIndirectValidationPath / takeSlowIndirectIndexValidationPath and the\nper-Buffer m_indirectBuffer / m_indirectIndexedBuffer scratch slots are all gone.\nEvery clamping indirect draw now allocates per-draw scratch via\nnewZeroedIndirectScratch and runs its clamp dispatch in the same command buffer\nas the draw, so there is no cache to poison and no skip path to reach: the\nencode-time clamp always reads the current arguments, and an unsubmitted\nencoder's scratch is never read by anything. None of the symbols this commit\nmodified still exist in Source/WebGPU, so every hunk conflicted against deleted\ncode.\n\nThe layout test is kept as regression coverage for the reported sequence:\ndrawIndirect against one arguments buffer from a submitted encoder, then from an\nencoder that is finished but never submitted, then from a third encoder bound to\na smaller vertex buffer.\n\n* LayoutTests/fast/webgpu/nocrash/draw-indirect-unsubmitted-encoder-cache-desync-expected.txt: Added.\n* LayoutTests/fast/webgpu/nocrash/draw-indirect-unsubmitted-encoder-cache-desync.html: Added.\n\nIdentifier: 305413.1063@safari-7624.5-branch\nCanonical link: https://commits.webkit.org/320125@main",
      "email": "rkonda2@apple.com",
      "hash": "43ed70e7c3525d0b7d751272d01155b749d7e01a",
      "subject": "[WebGPU] Unsubmitted command encoder can poison drawIndirect clamp cache leading to GPU OOB vertex fetch"
    },
    "320126@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "320126@main",
      "clUrl": "https://commits.webkit.org/320126@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322944\nrdar://186216383\n\nReviewed by Richard Robinson.\n\nThis patch is a follow-up to 319879@main.\n\nExposing a Swift class to Objective-C by annotating the class with @objc\nis not properly supported. Instead, in this patch, we go with the\nsupported direction, which is to declare the class in a header and\nimplement in Swift with @objc @implementation.\n\nNo new tests since this patch does not introduce a behavior change.\n\nCanonical link: https://commits.webkit.org/320126@main",
      "email": "a_protyasha@apple.com",
      "hash": "6044c47010e248b255da77f28246acc220f06546",
      "subject": "[AppKit Gestures] WKMouseTrackingGestureRecognizer should not be exposed using @objc"
    },
    "320127@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "320127@main",
      "clUrl": "https://commits.webkit.org/320127@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322915\n\u003crdar://problem/186180196\u003e\n\nReviewed by Antti Koivisto.\n\nA marker's text is made of its list item's list-item counter value, which is only settled once the tree is done changing, so it was left to layout to fill in.\nHave the marker register with the RenderTreeBuilder in charge of the change instead, which fills in what it collected when it is finished,\nand drop the two call sites that had to reach into the marker before it was measured.\n\nNo behavior change.\n\nCanonical link: https://commits.webkit.org/320127@main",
      "email": "zalan@apple.com",
      "hash": "fdc812b2d80ba8e3472ebe39795f68fe2444a65e",
      "subject": "[list-marker] Marker text should not be filled in lazily from RenderListMarker::layout()"
    },
    "320128@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "320128@main",
      "clUrl": "https://commits.webkit.org/320128@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322481\n\u003crdar://problem/186104270\u003e\n\nReviewed by Antti Koivisto.\n\nA link picking up an underline on :hover changes nothing but ink overflow, yet Style::difference reports it as\nDifferenceResult::Layout, which runs inline layout over the whole block and repaints a block wide band.\n\nReport it as DifferenceResult::Overflow instead. That goes through the existing setNeedsLayoutForOverflowChange,\nso the box takes simplified layout, and since webkit.org/b/322772 the style driven ink overflow pass can be\nre-run over the already positioned display boxes. Ink overflow can shrink as well as grow, so both sides are\ncovered: repaintBeforeStyleChange repaints the old area while the old geometry is still in place, and the\nrecompute returns the union of before and after for the boxes that actually moved.\n\nTests: fast/repaint/box-shadow-repaint-writing-modes-pixel.html\n       fast/repaint/box-shadow-top-left-repaint-pixel.html\n       fast/repaint/inline-box-color-change-in-multiline-block.html\n       fast/repaint/inline-box-ink-overflow-shrink-pixel.html\n       fast/repaint/inline-box-text-decoration-change-in-inline-block.html\n       fast/repaint/inline-box-text-decoration-change-in-multiline-block.html\n       fast/repaint/inline-box-text-decoration-change-subpixel-position-pixel.html\n       fast/repaint/inline-box-text-decoration-change-with-underline-offset-in-block.html\n       fast/repaint/inline-box-text-decoration-change-with-underline-offset-pixel.html\n       fast/repaint/inline-box-text-decoration-change-with-underline-offset.html\n       fast/repaint/inline-box-text-decoration-change-with-underline-position-under-pixel.html\n       fast/repaint/inline-box-text-decoration-change-with-underline-position-under.html\n       fast/repaint/inline-box-text-decoration-change.html\n       fast/repaint/inline-box-text-decoration-removal-with-underline-offset-pixel.html\n       fast/repaint/inline-box-text-decoration-removal-with-underline-position-under-pixel.html\n       fast/repaint/outline-add-remove-on-block-pixel.html\n       fast/repaint/outline-and-text-decoration-on-block-pixel.html\n\n* LayoutTests/fast/box-shadow/shadow-repaint-expected.txt:\n  Same area, now the box plus four edge strips: the renderer no longer selfNeedsLayout, so repaintAfterLayoutIfNeeded takes its per edge delta path.\n\n* Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentBuilder.cpp:\n(WebCore::LayoutIntegration::InlineContentBuilder::updateLineOverflow const): Deleted. Its caller wants the ink overflow recompute too now, so it calls updateOverflow directly.\n* Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentBuilder.h:\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:\n(WebCore::LayoutIntegration::LineLayout::updateOverflow):\n  Snapshots each display box's ink overflow, recomputes, and returns the union of before and after for the boxes that changed, so an unchanged box costs nothing. Forces\n  contentMayHaveInkOverflow, since the cached flag is what the last layout saw and the change may have introduced\n  ink overflow on content that had none. The union starts at the first changed rect rather than an empty one:\n  uniteEvenIfEmpty is needed for boxes whose ink overflow is empty at a non-zero position, and would otherwise\n  pull the result out to include the origin.\n\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:\n* Source/WebCore/rendering/RenderBlock.cpp:\n(WebCore::RenderBlock::simplifiedLayout):\n  Repaints the delta between the overflow it had on entry and the recomputed one, which is what covers a block's own outline or box-shadow. Only for the normal flow half: out-of-flow movement issues its own repaints.\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::RenderBlockFlow::simplifiedNormalFlowLayout):\n  Always recomputes now. The old guard only fired when an inline level box child was laid out, and an ink overflow only change dirties no box child. Reaching here on a\n  block with inline children already means this block or its inline content asked for an overflow update, since out-of-flow content marks its containing block with a bit of its own.\n\n* Source/WebCore/rendering/RenderElement.cpp:\n(WebCore::RenderElement::adjustStyleDifference const): A RenderInline with no line layout to re-run the pass over (SVG text) has nothing to update, so it takes the full layout.\n(WebCore::RenderElement::repaintBeforeStyleChange): Repaints the old area here, while the old geometry is still in place. A transform driven Overflow diff is on a composited layer and has nothing to repaint.\n* Source/WebCore/rendering/RenderTextControlSingleLine.cpp:\n(WebCore::RenderTextControlSingleLine::layout):\n  Stops after a simplified layout. Everything below it is relative to the geometry layout produces, most notably centerRendererIfNeeded(), which offsets the inner\n  renderer from wherever it currently sits, so simplified layout would have it centered twice.\n* Source/WebCore/style/StyleDifference.cpp:\n(WebCore::Style::DifferenceFunctions::changeRequiresLayout): Drops the visual overflow check and the FIXME asking for exactly this optimization.\n(WebCore::Style::DifferenceFunctions::difference): Reports the change as Overflow.\n\n* LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position-expected.txt:\n* LayoutTests/fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position.html:\n  The 13px tall rects it checks for are now 36 wide rather than 784. Also snapshots the rect list once, since\n  shouldNotBe writes to the console and the second repaintRectsAsText() call was measuring the first one's output.\n* LayoutTests/fast/repaint/blur-change-expected.txt: Two redundant rects, each contained in a rect already there.\n* LayoutTests/fast/repaint/box-shadow-repaint-sideways-writing-modes-expected.txt:\n* LayoutTests/fast/repaint/box-shadow-repaint-writing-modes-expected.txt: A shadow colour change needs one repaint per box; the dropped rects were a second repaint displaced by the container's block extent. The two baselines are now identical.\n* LayoutTests/fast/repaint/box-shadow-top-left-repaint-expected.txt: Each block wide band becomes the span's own rect plus the exact area its shadow covers.\n* LayoutTests/fast/repaint/focus-ring-repaint-expected.txt: Two outline strips per box instead of two whole boxes; the img's overflow already defined the right and bottom edges, so only left and top moved.\n* LayoutTests/fast/repaint/inline-box-ink-overflow-shrink-expected.txt: 682 wide instead of the block's 784; the shrink direction is covered because both rects are the larger, pre change one.\n* LayoutTests/fast/repaint/missing-repaint-when-text-decoration-is-present-expected.txt: Same area as before. The outline strips appear twice because the inner block and its container report identical deltas.\n* LayoutTests/fast/repaint/overlapping-lines-with-ink-overflow-expected.txt: The span's own 72px rect instead of a 700px band; an inset shadow doesn't move ink overflow, so there is no damage rect at all here.\n* LayoutTests/fast/repaint/vertical-rl-repaint-when-decoration-changes-expected.txt: Drops a repaint displaced by the container's block extent, and adds the 4px strip the underline is erased from.\n* LayoutTests/platform/glib/fast/repaint/focus-ring-repaint-expected.txt:\n* LayoutTests/platform/glib/fast/repaint/overlapping-lines-with-ink-overflow-expected.txt: The same rect changes\nas the generic baselines, at glib's 2px focus ring width and font metrics.\n* LayoutTests/svg/repaint/svg-outline-repaint-on-hover-expected.txt: Drops an 800x204 repaint of the whole page in each direction; the outline box is repainted by the surviving pair.\n* LayoutTests/fast/repaint/box-shadow-repaint-writing-modes-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/box-shadow-repaint-writing-modes-pixel.html: Added.\n* LayoutTests/fast/repaint/box-shadow-top-left-repaint-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/box-shadow-top-left-repaint-pixel.html: Added.\n* LayoutTests/fast/repaint/inline-box-color-change-in-multiline-block-expected.txt: Added.\n* LayoutTests/fast/repaint/inline-box-color-change-in-multiline-block.html: Added.\n* LayoutTests/fast/repaint/inline-box-ink-overflow-shrink-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/inline-box-ink-overflow-shrink-pixel.html: Added.\n* LayoutTests/fast/repaint/inline-box-ink-overflow-shrink.html:\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-expected.txt: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-in-inline-block-expected.txt: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-in-inline-block.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-in-multiline-block-expected.txt: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-in-multiline-block.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-subpixel-position-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-subpixel-position-pixel.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-offset-expected.txt: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-offset-in-block-expected.txt: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-offset-in-block.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-offset-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-offset-pixel.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-offset.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-position-under-expected.txt: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-position-under-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-position-under-pixel.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change-with-underline-position-under.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-change.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-removal-with-underline-offset-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-removal-with-underline-offset-pixel.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-removal-with-underline-position-under-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/inline-box-text-decoration-removal-with-underline-position-under-pixel.html: Added.\n* LayoutTests/fast/repaint/outline-add-remove-on-block-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/outline-add-remove-on-block-pixel.html: Added.\n* LayoutTests/fast/repaint/outline-and-text-decoration-on-block-pixel-expected.html: Added.\n* LayoutTests/fast/repaint/outline-and-text-decoration-on-block-pixel.html: Added.\n\nCanonical link: https://commits.webkit.org/320128@main",
      "email": "zalan@apple.com",
      "hash": "bd4d235baac329bb75ef8d15e840f2b1eb7987f8",
      "subject": "[IFC] Repaint an ink overflow only style change without running inline layout"
    },
    "320129@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "320129@main",
      "clUrl": "https://commits.webkit.org/320129@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322895\nrdar://186148644\n\nReviewed by Keith Miller.\n\nNarrow scope of CodeBlock::m_lock down to reduce lock contention.\n\n* Source/JavaScriptCore/bytecode/CodeBlock.cpp:\n(JSC::CodeBlock::visitChildren):\n* Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:\n(JSC::LLInt::LLINT_SLOW_PATH_DECL):\n\nCanonical link: https://commits.webkit.org/320129@main",
      "email": "ysuzuki@apple.com",
      "hash": "4b09a39d42ca42d90767e7499dea4fb3f4efa018",
      "subject": "[JSC] Reduce CodeBlock::m_lock held scope"
    },
    "320130@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "320130@main",
      "clUrl": "https://commits.webkit.org/320130@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322892\nrdar://186145219\n\nReviewed by Keith Miller.\n\nTypedArray setFromTypedArray cannot use memmove when\n\n1. region is overlapping\n2. we end up reading the written result\n\nmemmove can avoid (2) by changing the scanning direction. But the spec algorithm\nsometimes explicitly requests CopyType::LeftToRight, and in this case,\nthis reading the written value should be observable.\n\n* JSTests/test262/expectations.yaml:\n* Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:\n(JSC::JSGenericTypedArrayView\u003cAdaptor\u003e::setFromTypedArray):\n\nCanonical link: https://commits.webkit.org/320130@main",
      "email": "ysuzuki@apple.com",
      "hash": "e73985a506bdb55ff4a52b3b09cf3485ceb49676",
      "subject": "[JSC] TypedArray setFromTypedArray cannot use memmove when region is intentionally overlapping and spec algorithm read back the modified result"
    },
    "320131@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "320131@main",
      "clUrl": "https://commits.webkit.org/320131@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322925\nrdar://186187575\n\nReviewed by Richard Robinson.\n\nEventSenderSyntheticEvent was a privately defined NSEvent subclass used\nby EventSenderProxy to synthesize pressure/magnification events. In this\npatch, we move the class to TestRunnerShared as SyntheticNSEvent, which\nwill allow TestWebKitAPI to do the same synthesis without duplicating the\nrequisite support.\n\nWe also take this opportunity to add a `dispatchSyntheticEvent()` helper.\nPreviously, each call site repeated a sequence of hit test against\nplatform view -\u003e -_setCurrentEvent: -\u003e some form of AppKit dispatch,\nwhich this shared helper can now manage for callers.\n\nThis refactor is in anticipation of a forthcoming change where we will\nadd API tests to verify WKWebView.magnification when driven with\nNSResponder-based magnify events.\n\nCanonical link: https://commits.webkit.org/320131@main",
      "email": "a_protyasha@apple.com",
      "hash": "58c2111ae9464868fee99051f4aa25e58b610f5c",
      "subject": "Refactor EventSenderSyntheticEvent to be shareable across TWKAPI and WKTR"
    },
    "320132@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "320132@main",
      "clUrl": "https://commits.webkit.org/320132@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322894\nrdar://186147326\n\nReviewed by Richard Robinson.\n\nwtf/Expected.h is a thin alias header that is being removed, in favor of\nusing \u003cexpected\u003e directly.\n\nIn webkit.org/b/322893, we dropped the alias from the IPC and inspector\ncode generators and their inputs. This patch drops it from every\nremaining call site, which sets us up to remove the header next.\n\nThe bulk of the change was mechanical, driven by the following grep\ncommands:\n\n```sh\ngrep -rlI --null --include='*.h' --include='*.cpp' --include='*.mm' \\\n    --include='*.m' --include='*.in' -E '\\bExpected\u003c' Source/ Tools/ \\\n  | xargs -0 perl -pi -e 's/\\bExpected\u003c/std::expected\u003c/g'\n\ngrep -rlI --null --include='*.h' --include='*.cpp' --include='*.mm' \\\n    --include='*.m' 'Expected\\.h\u003e' Source/ Tools/ \\\n  | xargs -0 sed -i '' -E \\\n    '/^[[:space:]]*#(include|import) \u003cwtf\\/Expected\\.h\u003e$/d'\n```\n\nNo new tests because this patch does not introduce a behavior change.\n\nCanonical link: https://commits.webkit.org/320132@main",
      "email": "a_protyasha@apple.com",
      "hash": "00f03c1f906ff25f9536f528e81477c861c0325c",
      "subject": "Drop remaining WTF::Expected alias usage"
    },
    "320133@main": {
      "author": "Dominic Mazzoni",
      "avatar": "https://www.gravatar.com/avatar/f76643c44a7ee3be45148e66d97ed8e4?d=identicon\u0026s=64",
      "cl": "320133@main",
      "clUrl": "https://commits.webkit.org/320133@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322236\nrdar://184955716\n\nReviewed by Tyler Wilcock.\n\nWhen several cross-site frames land in one Web process, each is a root\nframe of the page and needs its own mock accessibility element.\nThis plus the following fixes were all needed to make shared process\nsite isolation mode to work with accessibility.\n\naccessibilityRemoteObjectForFrame() fell back to the page-level\nelement for a frame the UI process had not bound yet.  Elements are\nnow created on demand, keyed by frame, so their identity does not\ndepend on registration order. registerRemoteFrameAccessibilityTokens()\ngoes through that same accessor on both platforms, which also makes\nre-binding a frame update the element in place instead of replacing\none an isolated tree already references as its remote parent.\n\niOS registered every frame against the single page-level element, so\nthe frame that registered last took over and the rest were unreachable\nfrom their parents.\n\nAccessibilityScrollView::computeIsIgnored() ignored every scroll view\nhosting a remote frame: the check for it came after the non-root case,\nand a hosting scroll view is never the root. The frame was left with\nno representation owned by its own process, so parent and child\ndisagreed about the tree and a search could not anchor beside the\niframe.\n\nA backward search whose start was explicitly the anchor was treated as\nhaving no start at all and answered with the anchor's children, the\nsame as a forward search, which stalled VoiceOver on an element\nhosting an out-of-process frame. Separately, a backward search whose\nstart lay outside the anchor's subtree began its walk above the anchor\nand matched the anchor's own ancestors, so walking up out of an iframe\nreturned the main frame's root scroll area -- an element the client\nwas already above.\n\nTests: http/wpt/site-isolation/accessibility/two-iframes-shared-process.sub.html\n\n* LayoutTests/TestExpectations:\n* LayoutTests/http/tests/site-isolation/accessibility/cross-process-search-traversal-expected.txt:\n* LayoutTests/http/wpt/site-isolation/accessibility/resources/frame-with-heading.html: Added.\n* LayoutTests/http/wpt/site-isolation/accessibility/two-iframes-shared-process.sub-expected.txt: Added.\n* LayoutTests/http/wpt/site-isolation/accessibility/two-iframes-shared-process.sub.html: Added.\n* LayoutTests/platform/mac/TestExpectations:\n* Source/WebCore/accessibility/AXSearchManager.cpp:\n(WebCore::AXSearchManager::findMatchingObjectsInternalAsStream):\n* Source/WebCore/accessibility/AccessibilityScrollView.cpp:\n(WebCore::AccessibilityScrollView::computeIsIgnored const):\n* Source/WebKit/WebProcess/WebCoreSupport/cocoa/WebLocalFrameLoaderClientCocoa.mm:\n(WebKit::WebLocalFrameLoaderClient::accessibilityRemoteObject):\n(WebKit::WebLocalFrameLoaderClient::setIsolatedTree):\n(WebKit::WebLocalFrameLoaderClient::isolatedTree const):\n* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:\n(WebKit::WebPage::bindRemoteAccessibilityFrames):\n(WebKit::WebPage::ensureRemoteFrameAccessibilityElement):\n(WebKit::WebPage::accessibilityRemoteObjectForFrame):\n* Source/WebKit/WebProcess/WebPage/WebPage.h:\n* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:\n(WebKit::WebPage::registerRemoteFrameAccessibilityTokens):\n(WebKit::WebPage::createMockAccessibilityElementWithPresenter):\n(WebKit::WebPage::createMockAccessibilityElement):\n* Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:\n(WebKit::WebPage::createMockAccessibilityElementWithPresenter):\n(WebKit::WebPage::createMockAccessibilityElement):\n(WebKit::WebPage::accessibilityRemoteTokenDataForFrame const):\n(WebKit::WebPage::registerRemoteFrameAccessibilityTokens):\n(WebKit::WebPage::setIsolatedTreeForFrame):\n(WebKit::WebPage::isolatedTreeForFrame):\n(WebKit::WebPage::setIsolatedTree): Deleted.\n(WebKit::WebPage::isolatedTree const): Deleted.\n* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementClientMac.h:\n* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementClientMac.mm:\n(WTR::axElementsAreEqual):\n(WTR::AccessibilityUIElementClientMac::isEqual):\n* Tools/WebKitTestRunner/TestController.cpp:\n* Tools/WebKitTestRunner/TestController.h:\n\nCanonical link: https://commits.webkit.org/320133@main",
      "email": "dm_mazzoni@apple.com",
      "hash": "1f30924d488bff2288561f2832c5f5395e4529eb",
      "subject": "AX: Frames sharing a Web process are unreachable or loop during VoiceOver navigation"
    },
    "320135@main": {
      "author": "Roberto Rodriguez",
      "avatar": "https://www.gravatar.com/avatar/45f4995b936231d4893f38e70cbc4805?d=identicon\u0026s=64",
      "cl": "320135@main",
      "clUrl": "https://commits.webkit.org/320135@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322767\nrdar://186030473\n\nReviewed by Kimmo Kinnunen\n\nContains upstream commits:\nff4855759c68 Fix the PointSpriteTest bug\nc1b4de9b42ab Remove GL_CHROMIUM_framebuffer_mixed_samples\nc553dab3a7b9 Translator: Fix name collision in extracted samplers\nac96187bddd3 Roll Chromium from d6a338e7de51 to dcaf3ddb3290 (751 revisions)\na86191c5e6f6 Avoid writes to unbound image units\n2f2f95684678 Vulkan: Use SourceImageIndex throughout the backend\nd4107d48a662 Vulkan: Fix attribute enabled without glVertexAttribFormat call\nf070b6c95abd Vulkan: Fix signedness of base instance\ne4be88f08233 Unset active textures on program relink\n82eab5b3c665 Roll vulkan-deps from 808860b25bf7 to 899dab78f857 (14 revisions)\n5e17a056e5df Roll VK-GL-CTS from c57d29f97dbd to 3b7cbad78e93 (14 revisions)\nc3ede28106e9 Translator: Handle comma and ternary for array checks\ncc226c81fda8 IR: Validate no identity swizzles\nef03123d0733 GL: add mipmap generation and base level workaround.\n92de898b7a32 Fix YUV target validation of color attachment index\n81324d996b13 Skip flaky no-storage-image-bound test more broadly\n91c79dc2f085 Add program binary blob compression/decompression\ne831f04b5429 Skip flaky test on Mac/Intel/Metal\n6488387764a6 Vulkan: Properly handle tile memory allocation failure\n48193cab15d1 Skip flaky no-storage-image-bound test\n6e84aadbc5e0 WebGPU: Disable tests on Mac/AMD\nbfbd2ccf3ee1 Metal: Fix index buffer rewriting OOB write and rendering bug\n008675e505da Roll vulkan-deps from afc9d8707b53 to 808860b25bf7 (4 revisions)\nfddebcb396cb Roll Chromium from f24f519928ff to d6a338e7de51 (793 revisions)\ne316181208fd OpenCL: remove some hard-coded OpenCL device properties\n7a555dd70e46 Vulkan: Disable preferSubmitOnAnySamplesPassedQueryEnd for qualcomm\n8a0033a5de22 Vulkan: Fix VVL error with depth/stencil MSRTSS resolve modes\nd8b342d2b9f8 Trace/Replay: Release side-context surface references during MEC\nab16c5f06236 Suppress failing tests on Intel/windows\ndd6e3b30e154 GL: Fix robust init bypass for packed depth-stencil\n0c08bc9fbcca Use authenticated endpoints for gitiles\ned24a839d2e0 Roll vulkan-deps from 5a2ecc2032de to afc9d8707b53 (4 revisions)\n9fbbd3be5129 Roll Chromium from 7f138c6e3221 to f24f519928ff (818 revisions)\n8521722b7ebc Translator: Fix gl_FragData clamp without EXT_draw_buffers\n3abba2912f33 Trace/Replay: Account for traces with no binary data\nd3a7ea3c7fe2 HLSL: Fix name collision between parameters and locals\ne33e55e0801c GL: workaround: Flush queries before deleting or unbinding FBOs on ARM\n0d4fbd213745 IR: Fix build\ncf254faf4fcc OpenCL: Use time stamp period limits for timer resolution\n4c8df8204067 Add Win/ARM64 builders\ne5882b23b95e GL: Mask the stencil clear value before applying.\n155c8dfe57d9 GL: BindBufferBase set size and offset to 0.\na63a8dcf072e GL: Refactor many extension checks into functions.\nd0f99167c551 OpenCL: Fix spell errors on CL implementation constants\n5a2a00084f3b Vulkan: Fix potential VUID-VkImageCreateInfo-pNext-02396 in AHB image\ne2cafaae76c2 GL: Move TextureGL::initializeContentsImpl to private section\nf56a8e4f5f28 Vulkan: Fix UAF in DescriptorPoolHelper via unsafe WeakPtr upgrade\nb61edce6175b Suppress failing test on windows/Intel\n22f0477b368e Android: Refine some test expectations to PIXEL 10 GLES\n484310cbc973 OpenCL: Add Alpha only format support\n68c636bfdcd5 GL: Split tracking of primitive restart state.\nd23ad7171008 Simplify BuildInternalFormatInfoMap\nda3cb665f8e3 GL: Fix unsynced BlendStateExt bitsets for adv and ext blend.\ne185886c1202 Roll vulkan-deps from e6f8ad39a426 to 5a2ecc2032de (88 revisions)\neb1f49baeb1c D3D11: Fix StructuredBuffer field type validation\n8e6ff291891a Roll VK-GL-CTS from 5fa43613e238 to c57d29f97dbd (7 revisions)\ne5539aa65f5d Roll Chromium from 3422fdc931b4 to 7f138c6e3221 (836 revisions)\n3d3c181bdcf2 Translator: Check gl_FragData passed to function\n6b8899bb7778 Suppress failing tests\nab5bee732a58 Translator: Disallow gl_Clip/CullDistance whole-array use w/o...\nd6660ddf0137 Traces: Upgrade words_crush\n3f1f8ada40fe Traces: Upgrade bubble_shooter\n415cc2decfd2 Traces: Upgrade township\n10dcf44dc8e0 Translator: Disallow gl_Clip/CullDistance declaration after use\n80d793462953 Vulkan: Initialize vkGetPhysicalDeviceProperties2KHR for VMA\nb8d53cd2770b Vulkan: Move mImage layout finalization into releaseImageViews\n60c4fcb7e62c Remove unofficial ETC2/EAC extensions\n7d65fc5ed3e3 Vulkan: Reset DynamicBuffer state on allocation failure\nb9b3ee8da964 Roll Chromium from 9e326a06852c to 3422fdc931b4 (701 revisions)\na7edcdf64384 VK: Don't reactivate render passes with pending deferred clears\nd6247827bfd0 GL: Work around bug with complex expr in struct constructor\ne90eadb87c3f IR: Validate function param and return values\n5bfb3c83c16f Vulkan: Fix blitting into 3D images\n5a62a37561da Add transform feedback conflict validation on hardened contexts\n6996e92927cd IR: Fix Rust analyzer warnings\n764bb891d3b8 GL: Recreate PowerVR immutable texture on BASE_LEVEL increase\nc519dc066b59 Do not use unofficial ETC2/EAC extensions in tests\nbc129145afe5 MSL: Don't take non-scalars as loop vars in loop-forward-progress\ncfaaf877729f Disable avoidImageGhostOutsideRenderPass on Mali GPU\n1091b01648ab IR: Validate DoLoop, Merge block with input\n6e09ee679387 Roll VK-GL-CTS from f5e3cd5878ba to 5fa43613e238 (28 revisions)\n376c21a96766 Roll Chromium from af8e2e2f8e52 to 9e326a06852c (821 revisions)\nd4ce3014dd92 Traces: Upgrade puzzle_and_dragons\n318948133839 Reland \"GL: Limit declared vertex output varying components\"\n20ba9991499b IR: Add expectations for Pixel 10\nf76dbde053e1 Vulkan: Clean up CommandQueue::mPerfCounters\n2ce714730798 Remove leftover Overlay file\n3cf1a6c74785 Revert \"GL: Limit declared vertex output varying components\"\n8679cc8097be End M2 experiment\n288a6eed28c0 Vulkan: Make sure mLargestIndexEverAllocated never decreases\nd187e979e644 Remove the Overlay\n5211acfc35df Verify all cube faces when checking for enabled levels\nb674b0f8d644 Roll Chromium from 7dbb3f8dced0 to af8e2e2f8e52 (653 revisions)\n57ce6e20b57c Prefer use unallocated ID for EGLSurface\n5c2e15eebf4e GL: Limit declared vertex output varying components\n911e02025afc Remove the VVL skip VUID-vkCmdWaitEvents-srcStageMask-parameter\nfc8343dde11f Suppress transform feedback test on Win/Intel/Vk.\na560f967d4dd Run IR tests on Pixel 10 as well\n8cbc5a9db4eb Vulkan: Use DisplayVk's wl_display for the Wayland surface\n9f3832271ffa Trace/Replay: Ensure Framebuffer bindings are tracked\n1a4a74252efa Remove legacy test specs\nb9eb1104efd5 A handful of glBindTexImage tests\na9c9786b62cf Traces: Upgrade school_party_craft\n922df319bcf2 Hardening: fix multidimensional array calculation.\n16935ea0e34f GL: Check for GL errors after glReadPixels calls.\nb3322b688e43 spanification: Fix unsafe-buffers from autogen files\nc1af73ff70ca Roll Chromium from 0fecba58d578 to 7dbb3f8dced0 (649 revisions)\n88229d73b7cf GL: reset base level to 0 for ASTC uploads on PowerVR.\nc59ef1a06a48 Fix Texture InitState desync on backend failure\na9dc249f6b25 Fix robust resource init bypass for packed depth/stencil\n7e15a4297fd7 IR Validation: add pointer validation for block input\n5fd3f6b59f85 Re-enable WebGPU end2end tests on Linux Intel\ne3ae8e0aea69 Skip flaky test\n7eeadc6dcb32 Roll Chromium from b879f6277772 to 0fecba58d578 (750 revisions)\n7a960f346c57 Fix Rust build\n965f38412aec Vulkan: Fix Wayland build by depending on wayland headers\n113a8e3fac96 Vulkan: Enable dynamic rendering with MSRTT emulation\n76c3302b27ed Apply shader variable size checks to compute\n93e0df055afa Roll VK-GL-CTS from 71d11e5e5362 to f5e3cd5878ba (4 revisions)\nddb419903b3d Roll Chromium from 404b845f953d to b879f6277772 (472 revisions)\n\nCanonical link: https://commits.webkit.org/320135@main",
      "email": "roberto_rodriguez2@apple.com",
      "hash": "30cdcfd5e3c11c021d532cccfde6f4d5c2946ab1",
      "subject": "Update ANGLE to 2026-07-27 (ff4855759c68894b657ff346537fe5556ababd97)"
    },
    "320136@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "320136@main",
      "clUrl": "https://commits.webkit.org/320136@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322926\nrdar://186188188\n\nReviewed by Sam Weinig.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/751153792aa018a5e0c12ebe673f018edbda414b\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/acos-asin-atan-atan2-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/acos-asin-atan-atan2-computed.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/animations/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-all-types-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-all-types.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-cycle-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-cycle.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-number-invalidation-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-number-invalidation.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-percent-invalidation-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-percent-invalidation.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-security-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-security-transition-2-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-security-transition-2.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-security-transition-interpolated-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-security-transition-interpolated.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/attr-security.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-in-media-queries-with-mixed-units-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-computed.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-length.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-nesting-002-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-nesting-002.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/crashtests/calc-with-percent-and-number-in-line-height.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/crashtests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/hypot-pow-sqrt-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/hypot-pow-sqrt-computed.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-conditionals-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/if-conditionals.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/inline-cache-base-uri/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/position/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/progress-computed.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-computed.tentative-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-computed.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-in-custom-function.tentative-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-in-custom-function.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-in-if.tentative-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-in-if.tentative.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-computed.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/reference/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/sign-in-keyframes-with-relative-units.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/support/mixed-units-09.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/tree-counting/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/tree-counting/sibling-index-keyframe-palette-mix-dynamic-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/tree-counting/sibling-index-keyframe-palette-mix-dynamic.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/tree-counting/tree-scoped-sibling-function-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/tree-counting/tree-scoped-sibling-function.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/tree-counting/trig-functions-in-gradient-position-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/tree-counting/trig-functions-in-gradient-position.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/tree-counting/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/typed_arithmetic-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/typed_arithmetic.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/cross-origin/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/integrity/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/referrer-policy/no-referrer/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/referrer-policy/origin/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/referrer-policy/same-origin/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/referrer-policy/strict-origin/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/referrer-policy/unsafe-url/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/urls/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/using-font-relative-units-in-font-properties.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/w3c-import.log:\n\nCanonical link: https://commits.webkit.org/320136@main",
      "email": "antti@apple.com",
      "hash": "c7b47814a7276222be36e6675c613f4636cf5da8",
      "subject": "[css-values-5] Re-import tests"
    },
    "320137@main": {
      "author": "Fujii Hironori",
      "avatar": "https://www.gravatar.com/avatar/ef99cb23f5e5d27977968ca097d9a85f?d=identicon\u0026s=64",
      "cl": "320137@main",
      "clUrl": "https://commits.webkit.org/320137@main",
      "description": "Unreviewed.\n\n* LayoutTests/platform/glib/TestExpectations:\n\nCanonical link: https://commits.webkit.org/320137@main",
      "email": "fujii@igalia.com",
      "hash": "2ea97a33562e03a54f11c556bd902c623a9d5c25",
      "subject": "[GLib] layout test gardening 2026-08-31"
    },
    "320138@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "320138@main",
      "clUrl": "https://commits.webkit.org/320138@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321418\n\nReviewed by Carlos Garcia Campos.\n\nWhen the WebProcess dies, the WebPageProxy will terminate the current\nautomation session, ultimately sending \"SetTargetList\" to the driver's\nSessionHost without an \"Automation\" target. Currently, this leads the\nsession host to think that the browser is already shutting down,\nreleasing the managed browser GSubprocess reference without explicitly\nterminating the process. As the browser continues to live in this\nscenario, the process is effectively left to run indefinitely, even\nafter deleting the WebDriver session.\n\nThis commit makes the SessionHost distinguish between browser-initiated\ninspector disconnections (\"DidClose\"), where it does not need to kill\nthe browser, and those potentially unexpected terminations (empty\n\"SetTargetList\"), where it should (unless it's a remote browser not\nmanaged by the driver).\n\n* Source/WebDriver/SessionHost.h:\n* Source/WebDriver/glib/SessionHostGlib.cpp:\n(WebDriver::SessionHost::messageHandlers):\n(WebDriver::SessionHost::disconnect):\n(WebDriver::SessionHost::setTargetList):\n(WebDriver::SessionHost::connectionDidClose): Deleted.\n\nCanonical link: https://commits.webkit.org/320138@main",
      "email": "lmoura@igalia.com",
      "hash": "9829a57c4ebc6aa753f6c425e0d01890a97c4a52",
      "subject": "[WebDriver][GLIB] UIProcess is not killed when the last WebProcess crashes and kills the session"
    },
    "320139@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "320139@main",
      "clUrl": "https://commits.webkit.org/320139@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=314423\n  rdar://177185140\n\n  Reviewed by Tim Nguyen and Sam Weinig.\n\n  css-flexbox-2 widens flex-wrap to `nowrap | [ wrap | wrap-reverse ] || balance`,\n  where `balance` evens out free space across flex lines instead of greedily\n  filling each one. Parsing, storage and serialization only, behind\n  CSSFlexWrapBalanceEnabled and off by default; `balance` still renders as\n  `wrap` until the algorithm lands separately.\n\n  flex-wrap moves off the plain RenderStyleConstants.h enum and onto a\n  CSS::FlexWrap value type in css/values/flexbox/, modelled on CSS::GridAutoFlow.\n  It is variant-like, so DEFINE_VARIANT_LIKE_CONFORMANCE supplies Serialize\u003c\u003e,\n  CSSValueCreation\u003c\u003e and child visitation from switchOn alone, and the\n  minimal-form elision the spec asks for -- `wrap balance` serializing as\n  `balance` -- lives in switchOn and nowhere else. Style::FlexWrap is the\n  computed-value type the builder dispatches through.\n\n  `wrap-reverse balance` needs two keywords, so the grammar carries\n  @(type=CSSFlexWrapValue) and the multi-keyword case parses into a\n  CSSFlexWrapValue. Codegen keeps its single-item optimization ahead of the\n  create() call, so a lone `nowrap`, `wrap`, `wrap-reverse` or `balance` still\n  arrives at the Style conversion as a CSSKeywordValue; the conversion handles\n  both shapes.\n\n  Also drops two stale Safer C++ expectations that the checkers no longer\n  report.\n\n  Tests: css3/flexbox/flex-wrap-balance-disabled.html\n  imported/w3c/web-platform-tests/css/css-flexbox/balance/flex-wrap-computed.html\n  imported/w3c/web-platform-tests/css/css-flexbox/balance/flex-wrap-invalid.html\n  imported/w3c/web-platform-tests/css/css-flexbox/balance/flex-wrap-valid.html\n\n  * LayoutTests/css3/flexbox/flex-wrap-balance-disabled-expected.txt: Added.\n  * LayoutTests/css3/flexbox/flex-wrap-balance-disabled.html: Added.\n  * LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/balance/flex-wrap-computed-expected.txt:\n  * LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/balance/flex-wrap-valid-expected.txt:\n  `balance` and `wrap-reverse balance` now parse and serialize.\n  * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n  Adds CSSFlexWrapBalanceEnabled, testable and off by default.\n  * Source/WebCore/CMakeLists.txt:\n  * Source/WebCore/Headers.cmake:\n  * Source/WebCore/Sources.txt:\n  * Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n  * Source/WebCore/SaferCPPExpectations/NoDeleteCheckerExpectations:\n  * Source/WebCore/SaferCPPExpectations/NoUncountedMemberCheckerExpectations:\n  Removes css/DOMMatrixReadOnly.cpp and css/ShorthandSerializer.cpp, which the\n  checkers stopped reporting.\n  * Source/WebCore/css/CSSFlexWrapValue.cpp: Added.\n  * Source/WebCore/css/CSSFlexWrapValue.h: Added.\n  The CSSValue subclass holding a parsed two-keyword flex-wrap.\n  * Source/WebCore/css/CSSProperties.json:\n  The new grammar, `balance` gated on the setting, and Style::FlexWrap as the\n  computed-style type.\n  * Source/WebCore/css/CSSValue.cpp:\n  * Source/WebCore/css/CSSValue.h:\n  Registers ClassType::FlexWrap so visitDerived dispatches destruction, equals\n  and cssText.\n  * Source/WebCore/css/parser/CSSParserContext.cpp:\n  (WebCore::add):\n  * Source/WebCore/css/parser/CSSParserContext.h:\n  A settings-flag needs three hand edits here: the bitfield, its initializer,\n  and the hash and equality tuple.\n  * Source/WebCore/css/parser/CSSPropertyParserCustom.h:\n  Generated CSSPropertyParsing.cpp has a fixed include list and emits nothing\n  imported/w3c/web-platform-tests/css/css-flexbox/balance/flex-wrap-valid.html\n\n  * LayoutTests/css3/flexbox/flex-wrap-balance-disabled-expected.txt: Added.\n  * LayoutTests/css3/flexbox/flex-wrap-balance-disabled.html: Added.\n  * LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/balance/flex-wrap-computed-expected.txt:\n  * LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/balance/flex-wrap-valid-expected.txt:\n  `balance` and `wrap-reverse balance` now parse and serialize.\n  * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n  Adds CSSFlexWrapBalanceEnabled, testable and off by default.\n  * Source/WebCore/CMakeLists.txt:\n  * Source/WebCore/Headers.cmake:\n  * Source/WebCore/Sources.txt:\n  * Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n  * Source/WebCore/SaferCPPExpectations/NoDeleteCheckerExpectations:\n  * Source/WebCore/SaferCPPExpectations/NoUncountedMemberCheckerExpectations:\n  Removes css/DOMMatrixReadOnly.cpp and css/ShorthandSerializer.cpp, which the\n  checkers stopped reporting.\n  * Source/WebCore/css/CSSFlexWrapValue.cpp: Added.\n  * Source/WebCore/css/CSSFlexWrapValue.h: Added.\n  The CSSValue subclass holding a parsed two-keyword flex-wrap.\n  * Source/WebCore/css/CSSProperties.json:\n  The new grammar, `balance` gated on the setting, and Style::FlexWrap as the\n  computed-style type.\n  * Source/WebCore/css/CSSValue.cpp:\n  * Source/WebCore/css/CSSValue.h:\n  Registers ClassType::FlexWrap so visitDerived dispatches destruction, equals\n  and cssText.\n  * Source/WebCore/css/parser/CSSParserContext.cpp:\n  (WebCore::add):\n  * Source/WebCore/css/parser/CSSParserContext.h:\n  A settings-flag needs three hand edits here: the bitfield, its initializer,\n  and the hash and equality tuple.\n  * Source/WebCore/css/parser/CSSPropertyParserCustom.h:\n  Generated CSSPropertyParsing.cpp has a fixed include list and emits nothing\n  for @(type=), so CSSFlexWrapValue.h has to be reachable from here.\n  * Source/WebCore/css/values/flexbox/CSSFlexWrap.h: Added.\n  * Source/WebCore/html/shadow/TextControlInnerElements.cpp:\n  (WebCore::TextControlInnerContainer::resolveCustomStyle):\n  * Source/WebCore/inspector/InspectorOverlay.cpp:\n(WebCore::TextControlInnerContainer::resolveCustomStyle):\n* Source/WebCore/inspector/InspectorOverlay.cpp:\n(WebCore::InspectorOverlay::buildFlexOverlay):\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.cpp:\n(WebCore::FlexFormattingUtils::isWrapReverse):\n(WebCore::FlexFormattingUtils::isMultiline):\n(WebCore::FlexFormattingUtils::isBalance):\n* Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.h:\n* Source/WebCore/layout/formattingContexts/grid/GridLayoutUtils.cpp:\n(WebCore::Layout::GridLayoutUtils::inlineContributionMayRequireFullSizingAlgorithmForIntrinsicWidth):\n* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp:\n(WebCore::LayoutIntegration::FlexLayout::flexLayoutConstraints const):\nPlumbs isBalance through to layout, unread for now.\n* Source/WebCore/rendering/GridLayoutFunctions.cpp:\n(WebCore::GridLayoutFunctions::isGridItemInlineSizeDependentOnBlockConstraints):\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::RenderBox::isStretchingColumnFlexItem const):\n(WebCore::RenderBox::sizesLogicalWidthToFitContent const):\n* Source/WebCore/rendering/style/RenderStyleConstants.cpp:\n(WebCore::operator\u003c\u003c):\n* Source/WebCore/rendering/style/RenderStyleConstants.h:\n(WebCore::toAxisDirection):\nRemoves the old three-value enum, its TextStream operator and its\nAxisDirection overload. Callers that compared against enumerators now ask\nisMultiline(), isReverse() or isBalance(), so growing to five states does not\nmultiply comparison sites.\n* Source/WebCore/style/computed/StyleComputedStyleBase.h:\n* Source/WebCore/style/computed/data/StyleFlexibleBoxData.cpp:\n(WebCore::Style::FlexibleBoxData::FlexibleBoxData):\n(WebCore::Style::FlexibleBoxData::dumpDifferences const):\n* Source/WebCore/style/computed/data/StyleFlexibleBoxData.h:\nFive states still fit the existing 3-bit field.\n* Source/WebCore/style/values/flexbox/StyleFlexWrap.cpp: Added.\n(WebCore::Style::CSSValueConversion\u003cFlexWrap\u003e::operator()):\n* Source/WebCore/style/values/flexbox/StyleFlexWrap.h: Added.\n(WebCore::Style::toAxisDirection):\nReplaces the deleted RenderStyleConstants.h overload, so\nComputedStyle::flexFlowMode is unchanged.\n* Source/WebCore/style/values/primitives/StyleKeyword+Mappings.h:\n(WebCore::toCSSValueID):\n(WebCore::fromCSSValueID):\n* Source/WebCore/style/values/primitives/StyleKeyword+ValueRepresentationNeeded.h:\nRemoves the shared-table mapping, which cannot express a two-keyword value.\n  (WebCore::Layout::GridLayoutUtils::inlineContributionMayRequireFullSizingAlgorithmForIntrinsicWidth):\n  * Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp:\n  (WebCore::LayoutIntegration::FlexLayout::flexLayoutConstraints const):\n  Plumbs isBalance through to layout, unread for now.\n  * Source/WebCore/rendering/GridLayoutFunctions.cpp:\n  (WebCore::GridLayoutFunctions::isGridItemInlineSizeDependentOnBlockConstraints):\n  * Source/WebCore/rendering/RenderBox.cpp:\n  (WebCore::RenderBox::isStretchingColumnFlexItem const):\n  (WebCore::RenderBox::sizesLogicalWidthToFitContent const):\n  * Source/WebCore/rendering/style/RenderStyleConstants.cpp:\n  (WebCore::operator\u003c\u003c):\n  * Source/WebCore/rendering/style/RenderStyleConstants.h:\n  (WebCore::toAxisDirection):\n  Removes the old three-value enum, its TextStream operator and its\n  AxisDirection overload. Callers that compared against enumerators now ask\n  isMultiline(), isReverse() or isBalance(), so growing to five states does not\n  multiply comparison sites.\n  * Source/WebCore/style/computed/StyleComputedStyleBase.h:\n  * Source/WebCore/style/computed/data/StyleFlexibleBoxData.cpp:\n  (WebCore::Style::FlexibleBoxData::FlexibleBoxData):\n  (WebCore::Style::FlexibleBoxData::dumpDifferences const):\n  * Source/WebCore/style/computed/data/StyleFlexibleBoxData.h:\n  Five states still fit the existing 3-bit field.\n  * Source/WebCore/style/values/flexbox/StyleFlexWrap.cpp: Added.\n  (WebCore::Style::CSSValueConversion\u003cFlexWrap\u003e::operator()):\n  * Source/WebCore/style/values/flexbox/StyleFlexWrap.h: Added.\n  (WebCore::Style::toAxisDirection):\n  Replaces the deleted RenderStyleConstants.h overload, so\n  ComputedStyle::flexFlowMode is unchanged.\n  * Source/WebCore/style/values/primitives/StyleKeyword+Mappings.h:\n  (WebCore::toCSSValueID):\n  (WebCore::fromCSSValueID):\n  * Source/WebCore/style/values/primitives/StyleKeyword+ValueRepresentationNeeded.\n\nCanonical link: https://commits.webkit.org/320139@main",
      "email": "issacroy05@gmail.com",
      "hash": "126c191252fda4522a37db35b2eadc441243d360",
      "subject": "Add parsing support for flex-wrap: balance"
    },
    "320140@main": {
      "author": "Ryosuke Niwa",
      "avatar": "https://www.gravatar.com/avatar/ed2c71248fe3ea15d9129f6e9a2a1e85?d=identicon\u0026s=64",
      "cl": "320140@main",
      "clUrl": "https://commits.webkit.org/320140@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322971\n\nUnreviewed. Update safer C++ expectations.\n\n* Source/WebCore/SaferCPPExpectations/UncountedLambdaCapturesCheckerExpectations:\n\nCanonical link: https://commits.webkit.org/320140@main",
      "email": "rniwa@webkit.org",
      "hash": "074eee90cb8d1db67a04010181b083a0efcf9d82",
      "subject": "Update safer C++ expectations (2026-08-31)"
    },
    "320141@main": {
      "author": "Dan Glastonbury",
      "avatar": "https://www.gravatar.com/avatar/fb7cb28bf9f1bc9fc0c3bbf65566efdc?d=identicon\u0026s=64",
      "cl": "320141@main",
      "clUrl": "https://commits.webkit.org/320141@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322967\nrdar://186232387\n\nReviewed by Cameron McCormack.\n\nCompositorCoordinator stores cp_layer_renderer_configuration_get_layout() into a\nbool, so the shared and layered layouts both collapse to true and cannot be told\napart. render() then packs the two views side by side unconditionally, which is\nonly correct for the shared layout; under the others the second view is displaced\nby the first viewport's width inside a texture that is not double width and is\nclipped at the texture edge.\n\nNothing currently records which layout was negotiated, which makes an\nintermittent occurrence impossible to attribute after the fact. Log it, along\nwith the foveation state that determines the viewport widths.\n\nThis is behaviour neutral: the layout is captured into a local, logged, and then\nassigned to m_layeredModeEnabled exactly as before.\n\n* Source/WebKit/UIProcess/XR/xros/PlatformXRCompositor.mm:\n(layerRendererLayoutName):\n(WebKit::CompositorCoordinator::getPrimaryDeviceInfo):\n\nCanonical link: https://commits.webkit.org/320141@main",
      "email": "djg@apple.com",
      "hash": "1b080c336e8a7679093e8d9bc0d54623d699b31c",
      "subject": "[visionOS] Log the negotiated cp_layer_renderer_layout in CompositorCoordinator"
    },
    "320142@main": {
      "author": "Han Zheng",
      "avatar": "https://www.gravatar.com/avatar/28d2b693b90a0234e70340d5305f3d06?d=identicon\u0026s=64",
      "cl": "320142@main",
      "clUrl": "https://commits.webkit.org/320142@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322969\n\nReviewed by Carlos Garcia Campos and Adrian Perez de Castro.\n\nFeatureList::findFeature validated only the start of each FeatureRecord\nbefore reading its fields, which extend to the start of the following\nrecord. Bound the whole array up front by checking the one-past-the-end\nrecord, matching the idiom already used by FeatureList::feature,\nFeatureTable::getGlyphSubstitutions, LangSysTable::feature and\nScriptList::script, then iterate. This also hoists the check out of the\nloop.\n\n* Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.cpp:\n(WebCore::OpenType::FeatureList::findFeature const):\n\nCanonical link: https://commits.webkit.org/320142@main",
      "email": "hanzheng@google.com",
      "hash": "f095a382daee0c095c6b0454507ca46a8420b52c",
      "subject": "Validate the full FeatureList array once in OpenTypeVerticalData findFeature"
    },
    "320143@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "320143@main",
      "clUrl": "https://commits.webkit.org/320143@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322848\n\nReviewed by Carlos Garcia Campos.\n\nanalyze reports the median frame cycle, which says a frame was slow but\nnot which one or why: a cycle stalled by layout and one stalled by a long\ntimer look the same in a median.\n\nAdd a cycle-analysis subcommand that draws every cycle as a bar of cells,\none cell per slice of time (0.2 ms by default), colored by the mark\ncovering that moment on the main thread. Marks are painted longest first,\nso nested marks are drawn over their parents and a bar reads as the call\nstructure. A second lane counts overlapping PaintTile marks, which tells a\nmain thread waiting on parallel rasterization apart from one doing nothing\nat all, and --no-tile-lane drops it.\n\nA vertical marker crosses every bar at each multiple of the refresh\ninterval, so a bar reaching past the first one missed that refresh and the\ndisplay showed the previous frame again. Short bars are padded past that\nmarker to keep it visible, and no marker is drawn where an interval is\nonly a few cells wide or the capture holds no refreshes, which the header\nsays. A cycle longer than --max-cells is truncated and marked, though the\nlegend still counts the whole of it.\n\n--order slowest and --min-duration pick the worst cycles. --color auto\ncolorizes only on a terminal, and without color each cell becomes a\nletter, which the legend maps along with the average time per cycle and\nthe marks behind each activity.\n\nEach bar is drawn from the marks of the process that rendered its cycle\nalone, and names that process where more than one rendered. The marks are\nindexed per process for that, which the phase walk of the frame cycle\nreport needs too, so its mark index moves to utils and both share one\nlookup.\n\n* Tools/Scripts/webkit-sysprof/README.md:\n* Tools/Scripts/webkit-sysprof/webkitsysprof/__main__.py:\n(build_parser):\n* Tools/Scripts/webkit-sysprof/webkitsysprof/cycle_analysis/__init__.py: Added.\n(analyze_frame_cycle):\n(draw_frame_cycles):\n(_nothing_to_draw):\n(_check_drawing_options):\n(_renderers_of):\n(_select_cycles):\n(_Renderer):\n(_Renderer.__init__):\n(_Renderer.render):\n(_Renderer._size_labels):\n(_Renderer._cycle_label):\n(_Renderer._cells_spanning):\n(_Renderer._cell_count):\n(_Renderer._render_header):\n(_Renderer._ruler):\n(_Renderer._ruler_step):\n(_Renderer._render_cycle):\n(_Renderer._lane):\n(_Renderer._tile_lane):\n(_Renderer._close_lane):\n(_Renderer._painted):\n(_Renderer._is_vblank_boundary):\n(_Renderer._paint_activities):\n(_Renderer._paint_tile_concurrency):\n(_Renderer._cell_range):\n(_Renderer._colored):\n(_Renderer._render_footer):\n(_marks_of_activity):\n(_process_suffix):\n(_row_label):\n(_collect_marks):\n(_marks_overlapping):\n* Tools/Scripts/webkit-sysprof/webkitsysprof/cycles/__init__.py:\n(_compositing_spans):\n(_own_compositing_end):\n(_cycles_of_one_process):\n(_MarkIndex): Deleted.\n(_MarkIndex.__init__): Deleted.\n(_MarkIndex.spans_within): Deleted.\n(_MarkIndex.last_end_of_marks_beginning_within): Deleted.\n* Tools/Scripts/webkit-sysprof/webkitsysprof/tests/cycle_analysis_unittest.py: Added.\n(CycleAnalysisTest):\n(CycleAnalysisTest.setUp):\n(CycleAnalysisTest._draw):\n(CycleAnalysisTest._lanes):\n(CycleAnalysisTest._ruler):\n(CycleAnalysisTest.test_a_nested_mark_is_drawn_over_the_one_it_runs_inside):\n(CycleAnalysisTest.test_the_tile_lane_counts_the_tiles_painted_at_once):\n(CycleAnalysisTest.test_the_tile_lane_can_be_left_out):\n(CycleAnalysisTest.test_a_bar_is_drawn_from_the_marks_of_its_own_process):\n(CycleAnalysisTest.test_a_refresh_marker_crosses_every_bar_at_each_interval):\n(CycleAnalysisTest.test_a_bar_padded_to_the_refresh_interval_still_shows_the_marker):\n(CycleAnalysisTest.test_an_interval_of_too_few_cells_draws_no_marker):\n(CycleAnalysisTest.test_a_capture_without_refreshes_says_the_interval_is_unknown):\n(CycleAnalysisTest.test_the_slowest_cycles_are_the_ones_worth_drawing):\n(CycleAnalysisTest.test_a_cycle_shorter_than_the_minimum_is_left_out):\n(CycleAnalysisTest.test_a_bar_says_which_process_rendered_it):\n(CycleAnalysisTest.test_one_renderer_needs_no_process_on_its_bars):\n(CycleAnalysisTest.test_every_lane_starts_in_the_same_column_as_the_ruler):\n(CycleAnalysisTest.test_the_ruler_labels_never_run_into_one_another):\n(CycleAnalysisTest.test_the_padding_past_a_cycle_is_blank_in_colour_too):\n(CycleAnalysisTest.test_a_run_of_one_colour_is_written_as_one_escape):\n(CycleAnalysisTest.test_a_bar_longer_than_the_cell_limit_is_marked_as_truncated):\n(CycleAnalysisTest.test_a_capture_without_cycles_says_which_marks_it_needs):\n(CycleAnalysisTest.test_the_legend_counts_the_cycle_the_bar_could_not_fit):\n(CycleAnalysisTest.test_padding_that_did_not_fit_is_no_truncated_cycle):\n(CycleAnalysisTest.test_the_next_cycle_is_left_out_of_this_ones_last_cell):\n(CycleAnalysisTest.test_a_bar_stays_in_its_column_however_long_the_cycle_is):\n* Tools/Scripts/webkit-sysprof/webkitsysprof/tests/subcommands_unittest.py:\n(SubcommandsTest.test_vblanks_per_rendering_update_does_not_depend_on_the_mark_order):\n(SubcommandsTest.test_a_capture_of_no_length_reports_no_rate):\n(SubcommandsTest.test_cycle_analysis_draws_a_bar_per_cycle_through_the_command_line):\n(SubcommandsTest):\n(SubcommandsTest.test_cycle_analysis_says_so_where_there_is_nothing_to_draw):\n(SubcommandsTest.test_cycle_analysis_says_so_where_the_selection_matches_nothing):\n(SubcommandsTest.test_cycle_analysis_rejects_a_timespan_it_cannot_honour):\n(SubcommandsTest.test_cycle_analysis_rejects_options_that_draw_nothing):\n* Tools/Scripts/webkit-sysprof/webkitsysprof/tests/utils_unittest.py:\n(_window):\n(UtilsTest.test_the_marks_overlapping_a_window_are_the_ones_running_in_it):\n(UtilsTest):\n(UtilsTest.test_a_mark_touching_a_window_at_its_edge_does_not_overlap_it):\n(UtilsTest.test_an_index_of_no_marks_has_none_overlapping_anything):\n* Tools/Scripts/webkit-sysprof/webkitsysprof/utils/__init__.py:\n(MarkIndex):\n(MarkIndex.__init__):\n(MarkIndex.spans_within):\n(MarkIndex.last_end_of_marks_beginning_within):\n(MarkIndex.marks_overlapping):\n\nCanonical link: https://commits.webkit.org/320143@main",
      "email": "nzimmermann@igalia.com",
      "hash": "b89d3a3c7b883d6bfaf7cd95d80acb5f47c814f6",
      "subject": "[webkit-sysprof] Add a cycle-analysis subcommand"
    },
    "320144@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "320144@main",
      "clUrl": "https://commits.webkit.org/320144@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322479\n\nReviewed by Antti Koivisto.\n\nProfiling a Lit-based Web Component application showed up dozens of useless\nTextUpdates per style recalc and component, related to the \u003cslot\u003e element\nusage. A \u003cslot\u003e element is a placeholder inside a Web Component that is filled\nwith the markup passed in when the component is used. That markup is placed\nbelow the slot element, and it includes the newlines and indentation between\nthe elements it passes in. Furthermore a \u003cslot\u003e element uses \"display: contents\"\nand each of those whitespace text nodes got a TextUpdate on every style resolution:\nTreeResolver::resolveComposedTree() unconditionally created a TextUpdate for\nevery text child of a \"display: contents\" element.\n\nAn element with \"display: contents\" has no renderer of its own - no box is generated\nby definition. But its text children still need a style for rendering. We compute\none for them, pretending each text node is wrapped in an unstyled span. That wrapper\nstyle is only interesting if it differs from the style of the nearest ancestor that\ndoes have a renderer. If it doesn't differ, then there is nothing to update.\n\nHowever, the old code looked at the display value of the text nodes parent and created\nan update for every \"display: contents\" parent it found. That value says nothing about\nwhether anything changed. The wrapper style is what actually changes, so decide on\nthat instead: compute the wrapper style first, and create a TextUpdate only if\ncreateInheritedDisplayContentsStyleIfNeeded() returned a non-null style.\n\nOne exception is removal: A wrapper that is no longer needed only disappears if\nRenderTreeUpdater::updateTextRenderer() sees a TextUpdate for that text, so keep\ncreating one while the old wrapper is still there.\n\nCover both scenarios with two new tests.\n\nTests: fast/css/display-contents-no-empty-text-update.html\n       fast/css/display-contents-text-wrapper-removal.html\n\n* LayoutTests/fast/css/display-contents-no-empty-text-update-expected.txt: Added.\n* LayoutTests/fast/css/display-contents-no-empty-text-update.html: Added.\nCounts internals.lastStyleUpdateSize, including once on a \u003cslot\u003e with slotted\nwhitespace between inline children, and once on a \u003cslot\u003e with slotted whitespace\nbetween block children, where that whitespace has no renderer at all. Without this\nchange the two non-inherited cases are 2 instead of 1.\n* LayoutTests/fast/css/display-contents-text-wrapper-removal-expected.html: Added.\n* LayoutTests/fast/css/display-contents-text-wrapper-removal.html: Added.\n* Source/WebCore/rendering/RenderText.h:\n(WebCore::RenderText::hasInlineWrapperForDisplayContents const):\n* Source/WebCore/style/StyleTreeResolver.cpp:\n(WebCore::Style::TreeResolver::resolveComposedTree):\n\nCanonical link: https://commits.webkit.org/320144@main",
      "email": "nzimmermann@igalia.com",
      "hash": "3a5e8ecc480bd0dda46bfb68fe773346fa386c0d",
      "subject": "Redundant text updates for every \"display: contents\" text child"
    },
    "320145@main": {
      "author": "Youenn Fablet",
      "avatar": "https://www.gravatar.com/avatar/0a9886e582a7aee1eb908eb59af36da4?d=identicon\u0026s=64",
      "cl": "320145@main",
      "clUrl": "https://commits.webkit.org/320145@main",
      "description": "rdar://185766290\nhttps://bugs.webkit.org/show_bug.cgi?id=322586\n\nReviewed by Chris Dumez.\n\nServiceWorkerThread is queuing a task on its scope vent loop to fire events.\nThis can race with stopping the service worker.\n\nFor normal non main thread service workers, this is not an issue as we post a task to terminate.\nFor main thread service workers, stopping the service worker means destroying the script, which can happen between the time we queue a task to fire the event and the time we fire the event.\n\nWe fix this by adding a shared ServiceWorkerThread::queueTaskToFireEvent helper, used by all the queueTaskToFire*/queueTaskToPostMessage methods.\nIt checks whether activeDOMObjectsAreStopped before invoking the event callback, which is true once WorkerOrWorkletGlobalScope::prepareForDestruction is called.\n\n* Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:\n(WebCore::ServiceWorkerThread::queueTaskToFireEvent):\n(WebCore::ServiceWorkerThread::queueTaskToFireFetchEvent):\n(WebCore::ServiceWorkerThread::queueTaskToPostMessage):\n(WebCore::ServiceWorkerThread::queueTaskToFireInstallEvent):\n(WebCore::ServiceWorkerThread::queueTaskToFireActivateEvent):\n(WebCore::ServiceWorkerThread::queueTaskToFirePushEvent):\n(WebCore::ServiceWorkerThread::queueTaskToFireDeclarativePushEvent):\n(WebCore::ServiceWorkerThread::queueTaskToFirePushSubscriptionChangeEvent):\n(WebCore::ServiceWorkerThread::queueTaskToFireNotificationEvent):\n(WebCore::ServiceWorkerThread::queueTaskToFireBackgroundFetchEvent):\n(WebCore::ServiceWorkerThread::queueTaskToFireBackgroundFetchClickEvent):\n* Source/WebCore/workers/service/context/ServiceWorkerThread.h:\n\nCanonical link: https://commits.webkit.org/320145@main",
      "email": "youenn@apple.com",
      "hash": "99d64d9ab12bf3e0977fc299da19c126f69a076a",
      "subject": "ServiceWorkerThread can fire events while its related scope is stopped"
    },
    "320146@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "320146@main",
      "clUrl": "https://commits.webkit.org/320146@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322835\n\nReviewed by Fujii Hironori.\n\nRemove all the run time checks and convert them to build time.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/PlatformGTK.cmake:\n* Source/WebCore/PlatformPlayStation.cmake:\n* Source/WebCore/PlatformWPE.cmake:\n* Source/WebCore/page/scrolling/coordinated/ScrollerCoordinated.cpp:\n(WebCore::ScrollerCoordinated::updateValues):\n* Source/WebCore/platform/CoordinatedGraphics.cmake: Added.\n* Source/WebCore/platform/TextureMapper.cmake:\n* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:\n* Source/WebCore/platform/graphics/egl/BitmapTexture.cpp:\n(WebCore::BitmapTexture::~BitmapTexture):\n(WebCore::BitmapTexture::reset):\n(WebCore::BitmapTexture::swapTexture):\n(WebCore::BitmapTexture::initializeStencil):\n(WebCore::BitmapTexture::clearIfNeeded):\n(WebCore::BitmapTexture::createFboIfNeeded):\n(WebCore::BitmapTexture::bindAsSurface):\n* Source/WebCore/platform/graphics/egl/BitmapTexture.h:\n* Source/WebCore/platform/graphics/gbm/GraphicsContextGLTextureMapperGBM.cpp:\n(WebCore::GraphicsContextGLTextureMapperGBM::prepareForDisplay):\n* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:\n(WebCore::MediaPlayerPrivateGStreamer::configureVideoDecoder):\n(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):\n(WebCore::MediaPlayerPrivateGStreamer::setVideoSourceOrientation):\n(WebCore::MediaPlayerPrivateGStreamer::updateTextureMapperFlags):\n* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:\n* Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp:\n(WebCore::GraphicsContextSkia::drawNativeImage):\n(WebCore::GraphicsContextSkia::setupFillSource):\n(WebCore::GraphicsContextSkia::setupStrokeSource):\n(WebCore::GraphicsContextSkia::clipToImageBuffer):\n(WebCore::GraphicsContextSkia::drawPattern):\n(WebCore::GraphicsContextSkia::beginRecording):\n(WebCore::GraphicsContextSkia::endRecording):\n* Source/WebCore/platform/graphics/skia/GraphicsContextSkia.h:\n* Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp:\n(WebCore::ImageBufferSkiaAcceleratedBackend::replayCanvasRecordingContextIfNeeded):\n(WebCore::ImageBufferSkiaAcceleratedBackend::prepareForDisplay):\n* Source/WebCore/platform/graphics/skia/PatternSkia.cpp:\n(WebCore::Pattern::createPlatformPattern const):\n* Source/WebCore/platform/graphics/skia/SkiaBackingStore.cpp:\n(WebCore::SkiaBackingStore::Tile::update):\n* Source/WebCore/platform/graphics/skia/SkiaBackingStore.h:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer3DRenderingContext.cpp:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer3DRenderingContext.h:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayerFilters.cpp:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayerFilters.h:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayerImageSetBatch.cpp:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayerImageSetBatch.h:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayerOverlapRegions.cpp:\n* Source/WebCore/platform/graphics/skia/SkiaCompositingLayerOverlapRegions.h:\n* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp:\n(WebCore::SkiaPaintingEngine::SkiaPaintingEngine):\n(WebCore::SkiaPaintingEngine::createBuffer const):\n(WebCore::SkiaPaintingEngine::replay):\n* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h:\n* Source/WebCore/platform/graphics/skia/SkiaRecordingResult.cpp:\n(WebCore::SkiaRecordingResult::SkiaRecordingResult):\n* Source/WebCore/platform/graphics/skia/SkiaRecordingResult.h:\n* Source/WebCore/platform/graphics/skia/SkiaReplayCanvas.cpp:\n(WebCore::SkiaReplayCanvas::SkiaReplayCanvas):\n(WebCore::SkiaReplayCanvas::onDrawImage2):\n(WebCore::SkiaReplayCanvas::onDrawImageRect2):\n(WebCore::SkiaReplayCanvas::waitForRenderingCompletionAndRewrapImageIfNeeded):\n* Source/WebCore/platform/graphics/skia/SkiaReplayCanvas.h:\n* Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:\n* Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:\n* Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp:\n* Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.h:\n* Source/WebCore/platform/graphics/texmap/TextureMapperDamageVisualizer.cpp:\n* Source/WebCore/platform/graphics/texmap/TextureMapperDamageVisualizer.h:\n* Source/WebCore/platform/graphics/texmap/TextureMapperFlags.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreTile.cpp:\n(WebCore::CoordinatedBackingStoreTile::processPendingUpdates):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreTile.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedImageBackingStore.cpp:\n(WebCore::CoordinatedImageBackingStore::create):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedImageBackingStore.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:\n(WebCore::CoordinatedPlatformLayer::CoordinatedPlatformLayer):\n(WebCore::CoordinatedPlatformLayer::ensureTarget):\n(WebCore::CoordinatedPlatformLayer::invalidateTarget):\n(WebCore::CoordinatedPlatformLayer::replaceCurrentContentsBufferWithCopy):\n(WebCore::CoordinatedPlatformLayer::flushPositionChanges):\n(WebCore::CoordinatedPlatformLayer::flushCompositingState):\n(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnTarget):\n(WebCore::CoordinatedPlatformLayer::hasPendingBackingStoreTileUpdates const):\n(WebCore::CoordinatedPlatformLayer::processPendingBackingStoreTileUpdates):\n(WebCore::CoordinatedPlatformLayer::ensureSkiaTarget): Deleted.\n(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnSkiaTarget): Deleted.\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBuffer.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferDMABuf.cpp:\n(WebCore::CoordinatedPlatformLayerBufferDMABuf::createSkiaImageIfNeeded):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferDMABuf.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferExternalOES.cpp:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferExternalOES.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferHolePunch.cpp:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferHolePunch.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferNativeImage.cpp:\n(WebCore::CoordinatedPlatformLayerBufferNativeImage::tryEnsureBuffer):\n(WebCore::CoordinatedPlatformLayerBufferNativeImage::skiaImage): Deleted.\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferNativeImage.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferProxy.cpp:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferProxy.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferRGB.cpp:\n(WebCore::CoordinatedPlatformLayerBufferRGB::skiaImage):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferRGB.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferSkiaDeferredImage.cpp:\n(WebCore::CoordinatedPlatformLayerBufferSkiaDeferredImage::paintToTextureMapper): Deleted.\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferSkiaDeferredImage.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferSkiaImage.cpp:\n(WebCore::CoordinatedPlatformLayerBufferSkiaImage::paintToTextureMapper): Deleted.\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferSkiaImage.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferVideo.cpp:\n(WebCore::CoordinatedPlatformLayerBufferVideo::createBufferFromDMABufMemory):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferVideo.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferYUV.cpp:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferYUV.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedTileBuffer.cpp:\n(WebCore::CoordinatedAcceleratedTileBuffer::size const):\n(WebCore::CoordinatedAcceleratedTileBuffer::canvas):\n(WebCore::CoordinatedAcceleratedTileBuffer::completePainting):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedTileBuffer.h:\n* Source/WebCore/platform/graphics/texmap/coordinated/GraphicsContextGLTextureMapperANGLECoordinated.cpp:\n* Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerAsyncContentsDisplayDelegateCoordinated.cpp:\n(WebCore::GraphicsLayerAsyncContentsDisplayDelegateCoordinated::tryCopyToLayer):\n* Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp:\n(WebCore::GraphicsLayer::supportsLayerType):\n(WebCore::GraphicsLayerCoordinated::setContentsDisplayDelegate):\n(WebCore::GraphicsLayerCoordinated::createAsyncContentsDisplayDelegate):\n* Source/WebCore/rendering/RenderLayerBacking.cpp:\n(WebCore::RenderLayerBacking::updateMaskingLayer):\n* Source/WebKit/WebProcess/GPU/graphics/gbm/RemoteGraphicsContextGLProxyGBM.cpp:\n(WebKit::RemoteGraphicsContextGLProxyGBM::prepareForDisplay):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.cpp:\n(WebKit::AcceleratedSurface::create):\n(WebKit::AcceleratedSurface::AcceleratedSurface):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.h:\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CoordinatedSceneState.cpp:\n(WebKit::CoordinatedSceneState::flushCompositingState):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CoordinatedSceneState.h:\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphicsGLib.cpp:\n(WebKit::DrawingAreaCoordinatedGraphics::updatePreferences):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:\n(WebKit::damageOverlayForcesPropagation):\n(WebKit::LayerTreeHost::LayerTreeHost):\n(WebKit::LayerTreeHost::imageBackingStore):\n(WebKit::LayerTreeHost::fillGLInformation):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/NonCompositedFrameRenderer.cpp:\n(WebKit::NonCompositedFrameRenderer::NonCompositedFrameRenderer):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp:\n(WebKit::ThreadedCompositor::ThreadedCompositor):\n(WebKit::m_renderTimer):\n(WebKit::ThreadedCompositor::invalidate):\n(WebKit::ThreadedCompositor::damageUsedForCompositing const):\n(WebKit::ThreadedCompositor::drawsOverlay const):\n(WebKit::ThreadedCompositor::flushCompositingState):\n(WebKit::ThreadedCompositor::paintToCurrentGLContext):\n(WebKit::ThreadedCompositor::paintToSkiaCanvas):\n(WebKit::ThreadedCompositor::recordFrameDamage):\n(WebKit::ThreadedCompositor::renderLayerTree):\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.h:\n* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositorPlayStation.cpp:\n(WebKit::ThreadedCompositor::updateSceneState):\n* Source/cmake/OptionsGTK.cmake:\n* Source/cmake/OptionsWPE.cmake:\n* Tools/TestWebKitAPI/Tests/WebCore/glib/SkiaCompositingLayerDamage.cpp:\n\nCanonical link: https://commits.webkit.org/320146@main",
      "email": "cgarcia@igalia.com",
      "hash": "a9d1f86cb574963f81857741f5392f5f680f561e",
      "subject": "[GTK][WPE] Make TextureMapper optional at build time and disabled by default"
    },
    "320147@main": {
      "author": "Fujii Hironori",
      "avatar": "https://www.gravatar.com/avatar/ef99cb23f5e5d27977968ca097d9a85f?d=identicon\u0026s=64",
      "cl": "320147@main",
      "clUrl": "https://commits.webkit.org/320147@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321908\n\nReviewed by Carlos Garcia Campos.\n\nAfter 309315@main stopped rounding the scroll position of layers,\nviewport-constrained layers are unnecessarily repainted while scrolling.\n\nLocalFrameView::updateLayoutViewport has this condition:\n\n\u003e    if (newLayoutViewportOrigin != m_layoutViewportOrigin) {\n\u003e        setBaseLayoutViewportOrigin(newLayoutViewportOrigin);\n\nm_layoutViewportOrigin of LocalFrameView is a LayoutPoint, but\nnewLayoutViewportOrigin comes from ScrollView::m_scrollPosition, which is\nan IntPoint and thus already rounded. As a result, whenever the scroll\nposition had a fractional part, this condition was true and triggered an\nunnecessary layout.\n\n309315@main solved a problem of accumulated rounding error for touch gesture\nscrolling \u003chttps://webkit.org/b/309252\u003e. This can be solved in UI process.\nReverted 309315@main, and rounded the touch event positions to calculate\ndeltas.\n\n* Source/WebCore/page/scrolling/coordinated/ScrollingTreeScrollingNodeDelegateCoordinated.cpp:\n(WebCore::ScrollingTreeScrollingNodeDelegateCoordinated::adjustedScrollPosition const): Deleted.\n* Source/WebCore/page/scrolling/coordinated/ScrollingTreeScrollingNodeDelegateCoordinated.h:\n* Source/WebKit/WPEPlatform/wpe/WPEGestureDetector.cpp:\n(WPE::GestureDetector::handleEvent):\n* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:\n(webkitWebViewBaseTouchDragUpdate):\n\nCanonical link: https://commits.webkit.org/320147@main",
      "email": "fujii@igalia.com",
      "hash": "13cc83ffe56b9e76b41564b9dbafc8ffcdbf9744",
      "subject": "REGRESSION(309315@main): [WPE][GTK] position:fixed layers are unnecessarily repainted by scrolling"
    },
    "320148@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "320148@main",
      "clUrl": "https://commits.webkit.org/320148@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322979\nrdar://186250190\n\nReviewed by Antoine Quint.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/995f066702483c390022650fd91dfed1f871f7bd\n\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/WEB_FEATURES.yml: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/at-function-cssom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/at-function-cssom-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/at-function-cssom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/at-function-cssom.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/at-function-parsing-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/at-function-parsing-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/at-function-parsing.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/at-function-parsing.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-cycles-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-cycles-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-cycles.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-cycles.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-eval-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-eval-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-eval.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-eval.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-named-arg.tentative-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-named-arg.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-named-arg.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-named-arg.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-parsing-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-parsing-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-parsing.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-parsing.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-standard-property-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-standard-property-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-standard-property.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/dashed-function-standard-property.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-attr-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-attr-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-attr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-attr.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-conditionals-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-conditionals-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-conditionals.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-conditionals.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-container-dynamic-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-dynamic-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-container-dynamic.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-dynamic.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-container-self-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-self-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-container-self.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-self.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-container-style-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-style-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-container-style.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-style.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-in-media-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-in-media-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-in-media.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-in-media.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-invalidation-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-invalidation-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-invalidation.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-invalidation.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-layer-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-layer-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-layer.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-layer.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-media-dynamic-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-media-dynamic-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-media-dynamic.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-media-dynamic.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-parameter-types.tentative-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-parameter-types.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-parameter-types.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-parameter-types.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-shadow-animations-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-shadow-animations-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-shadow-animations.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-shadow-animations.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-shadow-cache-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-shadow-cache-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-shadow-cache.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-shadow-cache.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-shadow-container-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-shadow-container-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-shadow-container.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-shadow-container.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-shadow-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-shadow-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/function-shadow.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-shadow.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/local-attr-substitution-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-attr-substitution-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/local-attr-substitution.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-attr-substitution.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/local-if-substitution-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-if-substitution-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/local-if-substitution.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-if-substitution.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/local-inherit-substitution-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-inherit-substitution-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/local-inherit-substitution.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-inherit-substitution.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/local-var-substitution-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-var-substitution-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/local-var-substitution.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/local-var-substitution.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/w3c-import.log: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-shadow-dom-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-shadow-dom.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/apply-nested-declarations-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/apply-nested-declarations-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/apply-nested-declarations.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/apply-nested-declarations.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/apply-top-level-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/apply-top-level-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/apply-top-level.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/apply-top-level.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/apply-within-mixin-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/apply-within-mixin-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/apply-within-mixin.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/apply-within-mixin.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/contents-nested-declarations-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/contents-nested-declarations-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/contents-nested-declarations-fallback-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/contents-nested-declarations-fallback-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/contents-nested-declarations-fallback.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/contents-nested-declarations-fallback.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/contents-nested-declarations.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/contents-nested-declarations.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/contents-rule-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/contents-rule-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/contents-rule.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/contents-rule.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/important-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/important.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-basic-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-basic-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-basic.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-basic.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-conditionals-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-conditionals-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-conditionals.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-conditionals.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-cross-stylesheet-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-cross-stylesheet-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-cross-stylesheet.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-cross-stylesheet.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-cssom.tentative-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-cssom.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-cssom.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-cssom.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-cycle.tentative-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-cycle.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-cycle.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-cycle.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-declarations-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-declarations-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-declarations.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-declarations.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-from-import-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-from-import-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-from-import-with-media-queries-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-from-import-with-media-queries-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-from-import-with-media-queries.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-from-import-with-media-queries.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-from-import.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-from-import.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-invalidation.tentative-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-invalidation.tentative-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-invalidation.tentative.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-invalidation.tentative.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-layers-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-layers-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-layers.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-layers.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-locals-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-locals-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-locals.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-locals.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-media-query-invalidation-2-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-media-query-invalidation-2-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-media-query-invalidation-2.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-media-query-invalidation-2.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-media-query-invalidation-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-media-query-invalidation-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-media-query-invalidation.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-media-query-invalidation.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-parameters-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-parameters-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-parameters.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-parameters.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-parsing-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-parsing-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-parsing.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixin-parsing.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-shadow-dom-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-shadow-dom.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-shared-across-documents-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-shared-across-documents.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-shared-sheet-no-mixins-in-scope-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/mixin-shared-sheet-no-mixins-in-scope.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/support/mixin-shared-across-documents-frame.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/support/mixin-shared-across-documents.css: Added.\n(#target):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/support/mixin-shared-across-documents.css.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/support/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/resources/w3c-import.log.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/mixins/w3c-import.log: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/private/private-cssom-insert-rule.tentative-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/private/private-cssom-insert-rule.tentative.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/private/private-cssom-serialization.tentative-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/private/private-cssom-serialization.tentative.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/private/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/resources/w3c-import.log.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/w3c-import.log:\n\nCanonical link: https://commits.webkit.org/320148@main",
      "email": "antti@apple.com",
      "hash": "e184d94ca098fe50db8ac1e37aec84340d830d11",
      "subject": "[css-mixins-1] Re-import tests again"
    },
    "320149@main": {
      "author": "Patrick Griffis",
      "avatar": "https://www.gravatar.com/avatar/2233c3a857004b126158572af9fe36f7?d=identicon\u0026s=64",
      "cl": "320149@main",
      "clUrl": "https://commits.webkit.org/320149@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322918\n\nReviewed by Claudio Saavedra and Carlos Garcia Campos.\n\nThis was already exposed on Apple ports.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestUIClient.cpp\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/glib/accessibility/color-well-expected.txt: Added.\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:\n(WebCore::AccessibilityObjectAtspi::text const):\n* Source/WebKit/UIProcess/API/glib/WebKitColorChooserRequest.cpp:\n(webkitColorChooserRequestGetProperty):\n(webkit_color_chooser_request_class_init):\n(webkit_color_chooser_request_get_supports_alpha):\n(webkitColorChooserRequestCreate):\n* Source/WebKit/UIProcess/API/glib/WebKitColorChooserRequest.h.in:\n* Source/WebKit/UIProcess/API/glib/WebKitColorChooserRequestPrivate.h:\n* Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp:\n(WebKit::PageClientImpl::createColorPicker):\n* Source/WebKit/UIProcess/API/gtk/WebKitColorChooser.cpp:\n(WebKit::WebKitColorChooser::create):\n(WebKit::WebKitColorChooser::WebKitColorChooser):\n(WebKit::WebKitColorChooser::showColorPicker):\n* Source/WebKit/UIProcess/API/gtk/WebKitColorChooser.h:\n* Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp:\n(WebKit::PageClientImpl::createColorPicker):\n* Source/WebKit/UIProcess/API/wpe/WebKitColorChooser.cpp:\n(WebKit::WebKitColorChooser::create):\n(WebKit::WebKitColorChooser::WebKitColorChooser):\n(WebKit::WebKitColorChooser::showColorPicker):\n* Source/WebKit/UIProcess/API/wpe/WebKitColorChooser.h:\n* Source/WebKit/UIProcess/gtk/WebColorPickerGtk.cpp:\n(WebKit::WebColorPickerGtk::create):\n(WebKit::WebColorPickerGtk::WebColorPickerGtk):\n(WebKit::WebColorPickerGtk::showColorPicker):\n* Source/WebKit/UIProcess/gtk/WebColorPickerGtk.h:\n* Tools/MiniBrowser/gtk/BrowserTab.c:\n(runColorChooserCallback):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestUIClient.cpp:\n(testWebViewColorChooserRequest):\n\nCanonical link: https://commits.webkit.org/320149@main",
      "email": "pgriffis@igalia.com",
      "hash": "dc960d597efc24a379dabcf1d39b4edc241b851b",
      "subject": "[GLib] Support alpha channel in color choosers"
    },
    "320150@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "320150@main",
      "clUrl": "https://commits.webkit.org/320150@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322214\n\u003crdar://problem/185651318\u003e\n\nReviewed by Simon Fraser.\n\n  \u003cdiv style=\"width: 200px\"\u003e\n    before\n    \u003cspan style=\"box-shadow: inset 0 0 0 400px blue\"\u003e\n      first \u003cbr\u003e\n      second\n    \u003c/span\u003e\n  \u003c/div\u003e\n\nThe blue _inset_ shadow should stop at the end of each line's fragment. Instead it ran 400px past it to the containing block.\nWhen an inline box is split across lines, the incoming edge value (where it breaks) is \"open\" and the box keeps growing to the next line.\n(Note inset shadows are clipped to the padding box)\n\n  paintRect                      expansion = blur extent + spread\n  +--------------------------+- - - - - - - - - - - - - - - - -+\n  |##########################|                                 |\n  |###+----------------------+- - - - - - - - - - - - - - -+   |\n  |###|  hole, reaching the break edge                     |   |\n  |###+----------------------+- - - - - - - - - - - - - - -+   |\n  |##########################|                                 |\n  +--------------------------+- - - - - - - - - - - - - - - - -+\n  |\u003c--- clip: padding box --\u003e|  everything past here is clipped\n\nOn trunk we call shapeForInnerHole.fillOuterShape() when shapeForInnerHole is empty (i.e. inset shadow covers the box).\nWith no hole left, we just call fill on the \"grown\" rect before any clip is applied.\n\n  +-----------+- - - - - - - - - - - - - -+\n  |###########|###########################|\n  +-----------+- - - - - - - - - - - - - -+\n   fragment     spread carries it 400px\n                past the line break\n\nbut what we should do instead is this:\n\n  +-----------+\n  |###########|\n  +-----------+\n    fragment\n\nSo let's call borderShape.fillInnerShape() instead. borderShape is the box itself, not the \"grown\" rect, and its inner shape is the padding box.\n\nIt also fixes blocks: on trunk a block with a transparent border paints the shadow under the border (the outer shape is the border box),\nnow it stops at the padding box.\n\nTests: imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-clipped-to-padding-box.html\n       imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-cloned-inline.html\n       imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-fragmented-inline.html\n\n* Source/WebCore/rendering/BackgroundPainter.cpp:\n(WebCore::BackgroundPainter::paintBoxShadow const):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-clipped-to-padding-box-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-clipped-to-padding-box-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-clipped-to-padding-box.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-cloned-inline-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-cloned-inline-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-cloned-inline.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-fragmented-inline-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-fragmented-inline-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/box-shadow/inset-shadow-large-spread-fragmented-inline.html: Added.\n\nCanonical link: https://commits.webkit.org/320150@main",
      "email": "zalan@apple.com",
      "hash": "60dff96f744e06b88277d5035aa145ea000e6bb4",
      "subject": "Inset box-shadow with a large spread paints outside the box on an inline box"
    },
    "320151@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "320151@main",
      "clUrl": "https://commits.webkit.org/320151@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322983\nrdar://186254463\n\nReviewed by Alan Baradlay.\n\nMake parameter parsing block-aware.\nAlso fix allowing top level argument with { } contain !important.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/at-function-parsing-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/at-function-parsing.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-parsing-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-in-custom-function.tentative-expected.txt:\n* Source/WebCore/css/parser/CSSParser.cpp:\n(WebCore::CSSParser::consumeFunctionRule):\n* Source/WebCore/css/parser/CSSSubstitutionParser.cpp:\n(WebCore::classifyBlock):\n\nCanonical link: https://commits.webkit.org/320151@main",
      "email": "antti@apple.com",
      "hash": "b3742ff1f628c1fe00ee3433d2f2a2ee08d873ee",
      "subject": "[css-mixins-1] Allow commas in function parameters"
    },
    "320152@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "320152@main",
      "clUrl": "https://commits.webkit.org/320152@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322981\n\nReviewed by Nikolas Zimmermann.\n\nWe need to set the BitmapTexture::Flags::UseBGRALayout when allocating\nthe BitmapTexture and handle it in\nCoordinatedPlatformLayerBufferRGB::skiaImage() like we do for the tiles.\n\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferRGB.cpp:\n(WebCore::CoordinatedPlatformLayerBufferRGB::skiaImage):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferVideo.cpp:\n(WebCore::CoordinatedPlatformLayerBufferVideo::createBufferFromMappedFrameIfNeeded):\n\nCanonical link: https://commits.webkit.org/320152@main",
      "email": "cgarcia@igalia.com",
      "hash": "8c5edc89f9e9ad6ee86231325fa10d4ecb852b70",
      "subject": "[GTK][WPE] Skia compositor: non accelerated videos have the RB colors swapped"
    },
    "320153@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "320153@main",
      "clUrl": "https://commits.webkit.org/320153@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322254\nrdar://185487825\n\nReviewed by Dan Glastonbury.\n\nReland: original 319967@main\nFixes perf problem by adding the self-copy workaround for all codepaths\nof Canvas as drawImage source. Adds a perf test.\n\nObtain the draw source as NativeImage in\nCanvasRenderingContext2DBase::drawImage().  This continues the refactor\nto use NativeImages as the only draw source, removing ImageBuffers.\n\nImplements the fast path for WebGL as an example: WebGL provides\nthe GPUP side NativeImage as the result.\n\nLater commits will modify other canvas rendering contexts to obtain\nthe image directly as a NativeImage.\n\nFixes Skia GraphicsContextGLImageExtractor to not assume\nNativeImages are BGRA. The below\nGraphicsContextGL::createNativeImageFromPixelBuffer already produces\nRGBA images.\n\n* LayoutTests/fast/canvas/webgl/lost-context-canvas-image-source-expected.txt: Added.\n* LayoutTests/fast/canvas/webgl/lost-context-canvas-image-source.html: Added.\n* PerformanceTests/Canvas/drawImageSourceCanvas2D.html:\n* PerformanceTests/Canvas/drawImageSourceCanvas2DSelf.html: Copied from PerformanceTests/Canvas/drawImageSourceCanvas2D.html.\n* Source/WebCore/html/CanvasBase.cpp:\n(WebCore::CanvasBase::copyNativeImage const):\n* Source/WebCore/html/CanvasBase.h:\n* Source/WebCore/html/HTMLCanvasElement.cpp:\n(WebCore::HTMLCanvasElement::copiedImage const):\n* Source/WebCore/html/OffscreenCanvas.cpp:\n(WebCore::OffscreenCanvas::copiedImage const):\n* Source/WebCore/html/canvas/CanvasRenderingContext.h:\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:\n(WebCore::CanvasRenderingContext2DBase::surfaceBufferToNativeImage):\n(WebCore::CanvasRenderingContext2DBase::didUpdateCanvasSizeProperties):\n(WebCore::CanvasRenderingContext2DBase::setLineCap):\n(WebCore::CanvasRenderingContext2DBase::drawImage):\n(WebCore::drawImageToContext):\n(WebCore::CanvasRenderingContext2DBase::createPattern):\n(WebCore::CanvasRenderingContext2DBase::willUpdateContents):\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:\n* Source/WebCore/html/canvas/GPUCanvasContextCocoa.h:\n* Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm:\n(WebCore::GPUCanvasContextCocoa::didUpdateCanvasSizeProperties):\n(WebCore::GPUCanvasContextCocoa::surfaceBufferToNativeImage):\n(WebCore::GPUCanvasContextCocoa::transferToImageBuffer):\n(WebCore::GPUCanvasContextCocoa::unconfigure):\n(WebCore::GPUCanvasContextCocoa::prepareForDisplay):\n(WebCore::GPUCanvasContextCocoa::willUpdateDisplayBufferContents):\n(WebCore::GPUCanvasContextCocoa::updateMemoryCost const):\n* Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp:\n(WebCore::ImageBitmapRenderingContext::transferFromImageBitmap):\n(WebCore::ImageBitmapRenderingContext::transferToImageBuffer):\n(WebCore::ImageBitmapRenderingContext::surfaceBufferToNativeImage):\n* Source/WebCore/html/canvas/ImageBitmapRenderingContext.h:\n* Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.cpp:\n(WebCore::OffscreenCanvasRenderingContext2D::transferToImageBuffer):\n* Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:\n(WebCore::PlaceholderRenderingContext::setPlaceholderBuffer):\n(WebCore::PlaceholderRenderingContext::surfaceBufferToNativeImage):\n* Source/WebCore/html/canvas/PlaceholderRenderingContext.h:\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:\n(WebCore::WebGLRenderingContextBase::initializeContextState):\n(WebCore::WebGLRenderingContextBase::willUpdateDrawingBufferContents):\n(WebCore::WebGLRenderingContextBase::ReadSurfaceBuffer::clear):\n(WebCore::WebGLRenderingContextBase::ReadSurfaceBuffer::memoryCost const):\n(WebCore::WebGLRenderingContextBase::readSurfaceBuffer):\n(WebCore::WebGLRenderingContextBase::surfaceBufferToNativeImage):\n(WebCore::WebGLRenderingContextBase::surfaceBufferToImageBuffer):\n(WebCore::WebGLRenderingContextBase::didUpdateCanvasSizeProperties):\n(WebCore::WebGLRenderingContextBase::prepareForDisplay):\n(WebCore::WebGLRenderingContextBase::updateMemoryCost const):\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.h:\n(WebCore::WebGLRenderingContextBase::ReadSurfaceBuffer::isEmpty const):\n* Source/WebCore/platform/graphics/skia/GraphicsContextGLSkia.cpp:\n(WebCore::dataFormatForColorType):\n(WebCore::GraphicsContextGLImageExtractor::extractImage):\n\nCanonical link: https://commits.webkit.org/320153@main",
      "email": "kkinnunen@apple.com",
      "hash": "de2a960750b443dee78aa7eb332f9e3d899d40ff",
      "subject": "Use copyNativeImage in 2D context drawImage"
    },
    "320154@main": {
      "author": "Ryosuke Niwa",
      "avatar": "https://www.gravatar.com/avatar/ed2c71248fe3ea15d9129f6e9a2a1e85?d=identicon\u0026s=64",
      "cl": "320154@main",
      "clUrl": "https://commits.webkit.org/320154@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322987\n\nUnreviewed. Update safer C++ expectations.\n\n* Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:\n\nCanonical link: https://commits.webkit.org/320154@main",
      "email": "rniwa@webkit.org",
      "hash": "0f824c0e80e01b4a6cb7f31c2cbe9d6e6c2a566d",
      "subject": "Update safer C++ expectations (2026-08-31 part 2)"
    },
    "320155@main": {
      "author": "Justin Michaud",
      "avatar": "https://www.gravatar.com/avatar/36e0433ee725a08f7e1122a6bc584b57?d=identicon\u0026s=64",
      "cl": "320155@main",
      "clUrl": "https://commits.webkit.org/320155@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321749\n\nReviewed by Adrian Perez de Castro.\n\nFix a number of places in our image decoders where the image size\nand decoded size can mismatch.\n\nCanonical link: https://commits.webkit.org/320155@main",
      "email": "jmichaud@igalia.com",
      "hash": "3f8ee96594aea46bbe015ea3cb9b69cdf59655e3",
      "subject": "[non-cocoa][fuzz] OOB write in AVIF/WebP/JPEG XL"
    },
    "320156@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "320156@main",
      "clUrl": "https://commits.webkit.org/320156@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321547\n\nReviewed by Youenn Fablet.\n\n`NSURLSessionWebSocketTask.currentRequest` can omit WebSocket handshake headers added by the loader, even though those headers are sent over the network.\n\n* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h:\n* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:\n(WebKit::WebSocketTask::WebSocketTask):\n(WebKit::WebSocketTask::readNextMessage):\n(WebKit::WebSocketTask::reportHandshakeRequest): Added.\n(WebKit::WebSocketTask::didConnect):\n(WebKit::WebSocketTask::didClose):\nDefer reporting the handshake request until the connection opens/fails as that's when transaction metrics are available.\nUse the request from the most recent transaction, falling back to `currentRequest` when unavailable.\n\n* LayoutTests/http/tests/websocket/tests/hybi/inspector/before-load.html:\n* LayoutTests/http/tests/websocket/tests/hybi/inspector/before-load-expected.txt:\n\nCanonical link: https://commits.webkit.org/320156@main",
      "email": "hi@devinrousso.com",
      "hash": "d2fe653739140d3679933ef7b5a42561b95e53e8",
      "subject": "Web Inspector: `WebSocket` handshake headers are missing using `Network.framework` loader"
    },
    "320157@main": {
      "author": "Claudio Saavedra",
      "avatar": "https://www.gravatar.com/avatar/376a6edb56b8e52de407ea171c869bcf?d=identicon\u0026s=64",
      "cl": "320157@main",
      "clUrl": "https://commits.webkit.org/320157@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322985\n\nReviewed by Carlos Garcia Campos.\n\nReduce padding of some classes now that their APIs have consolidated.\nThe goal is to leave enough room for all classes to grow without having\nexcessive padding unused.\n\n* Source/WebKit/WPEPlatform/wpe/WPEBuffer.h:\n* Source/WebKit/WPEPlatform/wpe/WPEClipboard.h:\n* Source/WebKit/WPEPlatform/wpe/WPEGamepad.h:\n* Source/WebKit/WPEPlatform/wpe/WPEGamepadManager.h:\n* Source/WebKit/WPEPlatform/wpe/WPEInputMethodContext.h:\n* Source/WebKit/WPEPlatform/wpe/WPEKeymap.h:\n* Source/WebKit/WPEPlatform/wpe/WPEProcessManager.h:\n* Source/WebKit/WPEPlatform/wpe/WPEScreen.h:\n* Source/WebKit/WPEPlatform/wpe/WPEScreenSyncObserver.h:\n\nCanonical link: https://commits.webkit.org/320157@main",
      "email": "csaavedra@igalia.com",
      "hash": "cd1fc3fb980708ddc60723028a2e9ecccf96b89b",
      "subject": "Review the padding of the new WPE Platform API classes"
    },
    "320158@main": {
      "author": "Keith Miller",
      "avatar": "https://www.gravatar.com/avatar/bddc1595b29098429a6ce7c8bf4aced2?d=identicon\u0026s=64",
      "cl": "320158@main",
      "clUrl": "https://commits.webkit.org/320158@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322984\nrdar://186256294\n\nReviewed by Zak Ridouh.\n\nThe Cocoa CMake build didn't enable thread safety or unsafe buffer\nwarnings by default. This patch does so. It also applies unsafe buffer\nwarning CFlags to all targets rather than having each target opt-in.\nThere's not really any reason to opt-out of thread safety warnings since\ncode needs to be annotated, hence opt-in, anyway.\n\n┌────────────────────────────┬─────────────────────────┬───────────────────────────┐\n│           Target           │       xcodebuild        │    CMake (after changes)  │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ WTF                        │ both                    │ both                      │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ JavaScriptCore             │ both                    │ both                      │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ WebCore + 3 shards         │ both                    │ both                      │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ WebKit + 2 shards          │ both                    │ both                      │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ PAL                        │ both                    │ both                      │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ WebGPU                     │ both                    │ both                      │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ WGSLCore                   │ both (WGSL.xcconfig)    │ both                      │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ WebCoreTestSupport         │ both (inherits WebCore) │ both                      │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ WebInspectorUI             │ both                    │ n/a — not a CMake target  │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ bmalloc                    │ thread-safety           │ thread-safety             │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ WebKitLegacy               │ thread-safety           │ thread-safety             │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ TestWebKitAPI (4 binaries) │ thread-safety           │ thread-safety             │\n├────────────────────────────┼─────────────────────────┼───────────────────────────┤\n│ libwebrtc, ANGLE, libyuv...| none                    │ thread-safety (superset)  │\n└────────────────────────────┴─────────────────────────┴───────────────────────────┘\n\nSource/WTF/wtf/PlatformCocoa.cmake:\n    Opt out the autogenerated mig.c file from unsafe buffer warnings.\n    It's a derived source we don't control so should be treated like a\n    library source.\n* Source/WebCore/testing/WebFakeXRDevice.cpp:\n    Wrap unsafe buffer use uncoverd by adding WebCoreTestSupport\n    coverage with ALLOW_UNSAFE_BUFFER_USAGE_BEGIN/END macros\n\nCanonical link: https://commits.webkit.org/320158@main",
      "email": "keith_miller@apple.com",
      "hash": "7af9d274a3345cdc2150e42cd34022fd6ca90888",
      "subject": "[CMake] Enable Thread/Unsafe Buffer Warnings on Cocoa Ports"
    },
    "320159@main": {
      "author": "Taher Ali",
      "avatar": "https://www.gravatar.com/avatar/e104800647d8c98b8c9dbe736b5e1751?d=identicon\u0026s=64",
      "cl": "320159@main",
      "clUrl": "https://commits.webkit.org/320159@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322128\nrdar://185355738\n\nReviewed by Antti Koivisto.\n\n319240@main parses, computes and serializes the link-parameters property but does\nnot use the computed value, so it has no rendering effect. This PR makes it render\nthe parameters.\n\nThe most trivial form renders:\n\u003cstyle\u003e img { link-parameters: param(--bg, green); } \u003c/style\u003e\n\u003cimg src=\"icon.svg\"\u003e \u003c!-- icon.svg: fill=\"env(--bg, #111)\" --\u003e\n\nThere's a pre-existing architecture limitation: one resource\ndocument (SVGImage) holds one container's parameters at a time, so\ndrawing restyles that document. We can reduce this cost by caching a\ndisplay list per container (webkit.org/b/322833) as a follow-up.\n\nTests: svg/css-link-params/link-parameters-background-image.html\n       svg/css-link-params/link-parameters-basic.html\n       svg/css-link-params/link-parameters-duplicate-name.html\n       svg/css-link-params/link-parameters-dynamic.html\n       svg/css-link-params/link-parameters-fallback.html\n       svg/css-link-params/link-parameters-geometry.html\n       svg/css-link-params/link-parameters-none.html\n       svg/css-link-params/link-parameters-per-container.html\n\n* LayoutTests/svg/css-link-params/link-parameters-background-image-expected.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-background-image.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-basic-expected.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-basic.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-duplicate-name-expected.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-duplicate-name.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-dynamic-expected.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-dynamic.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-fallback-expected.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-fallback.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-geometry-expected.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-geometry.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-none-expected.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-none.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-per-container-expected.html: Added.\n* LayoutTests/svg/css-link-params/link-parameters-per-container.html: Added.\n* LayoutTests/svg/css-link-params/resources/geometry.svg: Added.\n* LayoutTests/svg/css-link-params/resources/solid.svg: Added.\n* Source/WebCore/loader/cache/CachedImage.cpp:\n(WebCore::CachedImage::switchClientsToRevalidatedResource):\n(WebCore::CachedImage::setContainerContextForClient):\n(WebCore::CachedImage::createImage):\n* Source/WebCore/loader/cache/CachedImage.h:\n* Source/WebCore/style/StyleDifference.cpp:\n* Source/WebCore/style/StyleEnvironmentVariables.cpp:\n(WebCore::Style::EnvironmentVariables::uaDefinedValues const):\n(WebCore::Style::EnvironmentVariables::valueForName const):\n(WebCore::Style::EnvironmentVariables::setLinkParameters):\n(WebCore::Style::EnvironmentVariables::values const): Deleted.\n* Source/WebCore/style/StyleEnvironmentVariables.h:\n* Source/WebCore/style/StyleSubstitutionResolver.cpp:\n(WebCore::Style::SubstitutionResolver::propertyValueForVariableName):\n* Source/WebCore/style/values/images/kinds/StyleCachedImage.cpp:\n(WebCore::Style::CachedImage::setContainerContextForRenderer):\n* Source/WebCore/style/values/images/kinds/StyleCursorImage.cpp:\n(WebCore::Style::CursorImage::setContainerContextForRenderer):\n* Source/WebCore/svg/graphics/SVGImage.cpp:\n(WebCore::SVGImage::SVGImage):\n(WebCore::SVGImage::drawForContainer):\n(WebCore::SVGImage::applyLinkParameters):\n(WebCore::SVGImage::drawPatternForContainer):\n* Source/WebCore/svg/graphics/SVGImage.h:\n* Source/WebCore/svg/graphics/SVGImageCache.cpp:\n(WebCore::SVGImageCache::setContainerContextForClient):\n* Source/WebCore/svg/graphics/SVGImageCache.h:\n* Source/WebCore/svg/graphics/SVGImageForContainer.cpp:\n(WebCore::SVGImageForContainer::SVGImageForContainer):\n(WebCore::SVGImageForContainer::draw):\n(WebCore::SVGImageForContainer::drawPattern):\n* Source/WebCore/svg/graphics/SVGImageForContainer.h:\n\nCanonical link: https://commits.webkit.org/320159@main",
      "email": "taher_ali@apple.com",
      "hash": "b90b184ba424183bfefa7869c29788d7ab391c9b",
      "subject": "[css-link-params] Render SVG resources with link parameters"
    },
    "320160@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "320160@main",
      "clUrl": "https://commits.webkit.org/320160@main",
      "description": "https://bugs.webkit.org/process_bug.cgi\nrdar://problem/186103325\n\nReviewed by Alan Baradlay.\n\nWhen the available grid space is indefinite, https://drafts.csswg.org/css-grid-2/#algo-flex-tracks\nrequires that if using the flex fraction found for the tracks would make the grid smaller than\nthe grid container's min-height, or larger than its max-height, the step is redone treating the\nfree space as definite and the available grid space as the container's content box size when it\nis sized to that minimum (maximum).\n\nexpandFlexibleTracks() never consulted the container minimum and maximum size carried on\nAxisConstraint, so flexible tracks were left at their base size. Only stretchAutoTracks() reads\nthe minimum, via freeSpaceForStretchAutoTracks(), so a grid container with a definite min-height\nstretched its 'auto' tracks but not its flexible ones. With 'grid-template-rows: 1fr 1fr' and\n'min-height: 200px' the two rows stayed at their content height instead of filling the\nminimum height.\n\nFind the used flex fraction first and apply it to the tracks once, which follows the shape of\nthe spec, and redo the indefinite case against the container's minimum and maximum size when the\ncandidate fraction would take the grid outside of them.\n\nTest: imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/flex-sizing-rows-min-max-height-002.html\n\nThe existing flex-sizing-rows-min-max-height-001.html covers the same spec clause but sizes its\nrows with minmax(), which LayoutIntegrationGridCoverage rejects, so it never exercises GFC.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/flex-sizing-rows-min-max-height-002-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/flex-sizing-rows-min-max-height-002.html: Added.\n* Source/WebCore/layout/formattingContexts/grid/TrackSizingAlgorithm.cpp:\n(WebCore::Layout::flexTrackIncrementsForFlexFraction): Return the growth each flexible track\nwould get from a flex fraction, so that the size the grid would end up with can be measured\nbefore a fraction is committed to.\n(WebCore::Layout::applyFlexFractionToTracks):\n(WebCore::Layout::usedFlexFractionForMaxContent): Redo the step against the grid container's\nminimum and maximum size when the candidate fraction would take the grid outside of them.\n(WebCore::Layout::usedFlexFractionForDefiniteLength):\n(WebCore::Layout::expandFlexibleTracks): Find the used flex fraction, then apply it once.\n(WebCore::Layout::expandFlexibleTracksForMinContent): Deleted.\n(WebCore::Layout::expandFlexibleTracksForMaxContent): Deleted.\n(WebCore::Layout::expandFlexibleTracksForDefiniteLength): Deleted.\n\nCanonical link: https://commits.webkit.org/320160@main",
      "email": "sammy.gill@apple.com",
      "hash": "ec9ec4703dd7acfcadd38cfe7500ac67bc3ab085",
      "subject": "[GFC] Flexible tracks should respect grid container's min/max size."
    },
    "320161@main": {
      "author": "Claudio Saavedra",
      "avatar": "https://www.gravatar.com/avatar/376a6edb56b8e52de407ea171c869bcf?d=identicon\u0026s=64",
      "cl": "320161@main",
      "clUrl": "https://commits.webkit.org/320161@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322982\n\nReviewed by Alan Baradlay.\n\nSince 320127@main the marker text and margin update runs from the render\ntree update commit rather than from layout. Updating the margins reads the\nmarker's min-content width contribution, and computing that instantiates a\nfresh, content-free inline layout on the marker's content container\n(tryComputeIntrinsicLogicalWidthsUsingInlinePath). The block may still hold\nthe content extent snapshot recorded when an earlier invalidation destroyed\nits line layout, since only the next inline layout consumes it, so a\nsubsequent invalidateLineLayout() finds both an inline layout and a pending\nsnapshot and fails the assertion.\n\nKeep the earliest snapshot instead of asserting there is none: it is the\nextent the next layout needs to repaint, and it is what release builds\nalready did, as inlineContentTopAndBottomIncludingInkOverflow() returns the\nstored value when one is set.\n\nCovered by imported/w3c/web-platform-tests/css/css-pseudo/parsing/\nmarker-supported-properties.html and marker-supported-properties-in-animation.html,\nwhich crash without this.\n\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::RenderBlockFlow::invalidateLineLayout):\n\nCanonical link: https://commits.webkit.org/320161@main",
      "email": "csaavedra@igalia.com",
      "hash": "93c83d4ce552e5c0cc78642badc2b95129d19be8",
      "subject": "REGRESSION(320127@main): ASSERTION FAILED: !m_previousInlineLayoutContentTopAndBottomIncludingInkOverflow in RenderBlockFlow::invalidateLineLayout"
    },
    "320162@main": {
      "author": "AndrewJMart",
      "avatar": "https://www.gravatar.com/avatar/2649f392172aff8f86de9b7a4f6605b5?d=identicon\u0026s=64",
      "cl": "320162@main",
      "clUrl": "https://commits.webkit.org/320162@main",
      "description": "rdar://146887800\nhttps://bugs.webkit.org/show_bug.cgi?id=289633\n\nReviewed by Darin Adler.\n\nAdded a size shorthand to CSSProperties.json with Width and Height shorthands.\n\nwidth and height do not collapse into size. This preserves compatibility with older versions of webkit.\n\nThe @page size descriptor was renamed INTERNALLY to page-size (still serialized as size). This was done to avoid colliding with the new size property.\n\nTests are imported from web-platform-tests and are being upstreamed in https://github.com/web-platform-tests/wpt/pull/61613.\n\n* Source/WebCore/css/CSSProperties.json:\n* Source/WebCore/css/ShorthandSerializer.cpp:\n(WebCore::ShorthandSerializer::serialize):\n* Source/WebCore/css/parser/CSSPropertyParser.cpp:\n(WebCore::consumePageDescriptor):\n* Source/WebCore/css/CSSPageDescriptors.cpp:\n(WebCore::CSSPageDescriptors::size const):\n(WebCore::CSSPageDescriptors::setSize):\n* Source/WebCore/css/StyleProperties.cpp:\n(WebCore::StyleProperties::PropertyReference::cssName const):\n(WebCore::StyleProperties::asTextInternal const):\n(WebCore::canUseShorthandForLonghand):\n* Source/WebCore/style/StyleBuilder.cpp:\n(WebCore::Style::Builder::applyProperty):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/nested-declarations-cssom.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-page/parsing/size-invalid-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-page/parsing/size-invalid.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/parsing/size-invalid-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/parsing/size-invalid.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/parsing/size-shorthand-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/parsing/size-shorthand.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/parsing/size-valid-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/parsing/size-valid.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/page-descriptors-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/page-descriptors.html:\n* Source/WebCore/css/PropertySetCSSDescriptors.cpp:\n(WebCore::PropertySetCSSDescriptors::resolvePropertyName const):\n(WebCore::PropertySetCSSDescriptors::getPropertyCSSValue):\n(WebCore::PropertySetCSSDescriptors::getPropertyValue):\n(WebCore::PropertySetCSSDescriptors::getPropertyPriority):\n(WebCore::PropertySetCSSDescriptors::getPropertyShorthand):\n(WebCore::PropertySetCSSDescriptors::isPropertyImplicit):\n(WebCore::PropertySetCSSDescriptors::setProperty):\n(WebCore::PropertySetCSSDescriptors::removeProperty):\n* Source/WebCore/css/PropertySetCSSDescriptors.h:\n* Source/WebCore/style/StyleExtractor.cpp:\n(WebCore::Style::isLayoutDependent):\n* LayoutTests/fast/css/size-shorthand-serialization-expected.txt: Added.\n* LayoutTests/fast/css/size-shorthand-serialization.html: Added.\n\nCanonical link: https://commits.webkit.org/320162@main",
      "email": "amart89531@gmail.com",
      "hash": "c2a7cd6845a87503de3b9a3064d8905d1001f415",
      "subject": "[css-sizing] Add a `size` shorthand for `width`/`height`"
    },
    "320163@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "320163@main",
      "clUrl": "https://commits.webkit.org/320163@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322745\nrdar://186011089\n\nReviewed by Alexey Proskuryakov.\n\nThis effectively reverts 318161@main, but it keeps the non-soft-linked code on GoldenGate+\noperating systems that have no need of soft linking.  This makes it so that binaries built\nto run on Tahoe operating systems continue to launch and check at runtime if WebTransport\nshould be available.  On TahoeE+ it will find the needed functions in Network.framework\nand enable WebTransport at runtime, but on TahoeA-D it will not enable WebTransport, but\nthe rest of WebKit will work just fine.\n\n* Source/WTF/wtf/PlatformHave.h:\n* Source/WebKit/NetworkProcess/cocoa/NetworkSoftLink.h:\n* Source/WebKit/NetworkProcess/cocoa/NetworkSoftLink.mm:\n* Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportSessionCocoa.mm:\n(WebKit::createParameters):\n(WebKit::NetworkTransportSession::initialize):\n(WebKit::NetworkTransportSession::setupDatagramConnection):\n(WebKit::NetworkTransportSession::createStream):\n(WebKit::NetworkTransportSession::terminate):\n(WebKit::NetworkTransportSession::isSessionClosed const):\n(WebKit::NetworkTransportSession::securityMetadata const):\n* Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportStreamCocoa.mm:\n(WebKit::NetworkTransportStream::initializeReadyConnection):\n(WebKit::NetworkTransportStream::cancelReceive):\n(WebKit::NetworkTransportStream::cancelSend):\n* Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:\n(WebKit::defaultWebTransportEnabled):\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:\n(WebKit::NetworkConnectionToWebProcess::initializeWebTransportSession):\n\nCanonical link: https://commits.webkit.org/320163@main",
      "email": "achristensen@apple.com",
      "hash": "c10e14c1ae427ba71e4ec31ca100f336e49da659",
      "subject": "REGRESSION(318161@main / STP251): ReferenceError: Can't find variable: WebTransport"
    },
    "320164@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "320164@main",
      "clUrl": "https://commits.webkit.org/320164@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322917\nrdar://186181479\n\nReviewed by Tim Nguyen.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/6efb1b12b95725c026cb1f5a451138345cfca937\n\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/flac-builder.js: Added.\n(crc8):\n(crc16):\n(utf8FrameNumber):\n(buildStreamInfo):\n(buildFrame):\n(buildFlac):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/rendersizehint-smoke-tests.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/rendersizehint-smoke-tests.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/callback-detached-buffer-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/callback-detached-buffer.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/processors/port-processor.js:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/decodeAudioData-oversized-resample-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/decodeAudioData-oversized-resample.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/w3c-import.log:\n* LayoutTests/platform/mac/TestExpectations:\n* LayoutTests/platform/glib/TestExpectations:\n\nCanonical link: https://commits.webkit.org/320164@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "0b6951eacdd2f18bcd46910f739f3ea58a2ca134",
      "subject": "Resync `webaudio` from WPT Upstream"
    },
    "320165@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "320165@main",
      "clUrl": "https://commits.webkit.org/320165@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322992\nrdar://186263998\n\nReviewed by Alan Baradlay.\n\nThat pattern is reserved for named arguments, so it is invalid unless the value is wrapped in {}.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/functions/dashed-function-named-arg.tentative-expected.txt:\n* Source/WebCore/css/parser/CSSSubstitutionParser.cpp:\n(WebCore::startsWithReservedNamedArgument):\n(WebCore::isValidDashedFunction):\n\nCanonical link: https://commits.webkit.org/320165@main",
      "email": "antti@apple.com",
      "hash": "c339a65ca1606d23ea31209f0c74c6b6315035b9",
      "subject": "[css-mixins-1] A dashed function argument should not begin with a dashed ident and a colon"
    },
    "320166@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "320166@main",
      "clUrl": "https://commits.webkit.org/320166@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322950\nrdar://186223510\n\nReviewed by Simon Fraser.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nSVGAnimationColorFunction interpolated and accumulated color channels as\n8-bit sRGB (SRGBA\u003cuint8_t\u003e). Every additive/cumulative animation targeting\nthe same element/attribute stacks its contribution through a single shared\nColor value, so rounding each layer to 8 bits before the next layer reads\nit discarded the sub-integer remainder. Stacked additive=\"sum\" color\nanimations therefore under-counted: ten layers each contributing 0.4 per\nchannel produced rgb(0, 0, 0) instead of rgb(4, 4, 4), diverging from\nother browsers.\n\nInterpolate and accumulate in SRGBA\u003cfloat\u003e instead, matching the approach\nblendWithoutPremultiply() uses for CSS transitions. The result is still\nserialized as legacy rgb()/rgba() via serializationForHTML(SRGBA\u003cfloat\u003e),\nso there is no computed-value or rendering-format change for single-layer\nanimations; only the precision of multi-layer accumulation improves.\n\nTest: imported/w3c/web-platform-tests/svg/animations/additive-color-precision-animation.html\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/additive-color-precision-animation-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/animations/additive-color-precision-animation.html: Added.\n* Source/WebCore/svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:\n(WebCore::SVGAnimationColorFunction::animate):\n\nCanonical link: https://commits.webkit.org/320166@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "fad1b146f46c60d3eeaafa8b49f79f4ac77574dc",
      "subject": "[SVG] Additive color animations lose precision from per-layer 8-bit rounding"
    },
    "320167@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/3d43be18ce5ee6b92ba9151b63591125?d=identicon\u0026s=64",
      "cl": "320167@main",
      "clUrl": "https://commits.webkit.org/320167@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322920\n\nReviewed by Simon Fraser.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nWhen the root element's background is propagated to the canvas, the background\npositioning area was anchored at the canvas origin plus the root's border/padding\nthickness. This assumes the root border box starts at the canvas top-left, which is\nonly true for non-flipped writing modes. In a block-flipped writing mode (vertical-rl,\nhorizontal-bt) the root box is physically offset within the canvas (e.g. right-aligned\nfor vertical-rl), so the background was painted at the wrong location.\n\nShift the positioning-area anchor by the root box's flipped physical position relative\nto the canvas origin. This is a no-op for non-flipped writing modes, where\nflipForWritingMode() leaves the rect unchanged.\n\n* LayoutTests/TestExpectations: Unskip passing now\n* Source/WebCore/rendering/BackgroundPainter.cpp:\n(WebCore::BackgroundPainter::calculateFillLayerImageGeometryImpl):\n\nCanonical link: https://commits.webkit.org/320167@main",
      "email": "ahmad.saleem792@gmail.com",
      "hash": "d8e49565ba7c6eabafc5b2759c249627f92bae98",
      "subject": "[CSS Writing Modes] Propagated root background painted in wrong position in vertical-rl"
    },
    "320168@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "320168@main",
      "clUrl": "https://commits.webkit.org/320168@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322871\nrdar://problem/186117142\n\nReviewed by Alan Baradlay.\n\nsizeTracksToFitNonSpanningItems() implements the step of the track sizing algorithm which\nsizes the intrinsic breadths of a track from the items in it:\nhttps://drafts.csswg.org/css-grid-2/#algo-single-span-items\n\nThat step has a clause for each intrinsic breadth, and none for a \u003clength-percentage\u003e one,\nsince Initialize Track Sizes already resolved those to an absolute length. Both switchOn()\nover the track sizing functions assigned unconditionally though, so a \u003clength-percentage\u003e\nbreadth fell into the ASSERT_NOT_REACHED() case and overwrote the resolved size with zero.\n\nInstead, we should just return the base size/growth limit that was\ndetermined during the \"Initialize Track Sizes,\" step.\n\nTest: imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/minmax-tracks-with-fixed-breadths.html\n\nThe test covers each of the fixed, percentage and calculated breadths against each of the\nauto, min-content and max-content breadths, in both the minimum and the maximum position. It\nis limited to rows because an implicit column cannot be run through GFC yet, whether it comes\nfrom a column auto flow or from an item placed past the explicit grid, so the equivalent\ngrid-auto-columns cases are still handled by legacy grid layout.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/minmax-tracks-with-fixed-breadths-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/minmax-tracks-with-fixed-breadths.html: Added.\n* Source/WebCore/layout/formattingContexts/grid/TrackSizingAlgorithm.cpp:\n(WebCore::Layout::sizeTracksToFitNonSpanningItems): Keep the base size and the growth limit\nwhich Initialize Track Sizes resolved for a \u003clength-percentage\u003e breadth.\n\nCanonical link: https://commits.webkit.org/320168@main",
      "email": "sammy.gill@apple.com",
      "hash": "4de494305574a8ebc4aca8c248ada4f4bf1fcee8",
      "subject": "[GFC] Fixed track sizing functions get overridden during \"size tracks to fit non-spanning items\"."
    },
    "320169@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/3d43be18ce5ee6b92ba9151b63591125?d=identicon\u0026s=64",
      "cl": "320169@main",
      "clUrl": "https://commits.webkit.org/320169@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=283474\nrdar://problem/140387662\n\nReviewed by Simon Fraser.\n\nA background-image tiled at a very small fixed background-size (e.g.\n`background-size: 0.2px 0.2px`) painted nothing instead of filling the\nbox. calculateFillTileSize() clamped non-zero percent/calculated tile\nsizes up to at least one device pixel so they would still produce\ncontent, but the fixed-length branches had no such clamp. A ~0.2px tile\nthen rounded down to zero during device-pixel snapping in\npixelSnapBackgroundImageGeometryForPainting(), leaving a zero-size tile\nthat paints no image.\n\nApply the same minimum-device-pixel floor to the fixed-length width and\nheight branches that the percent/calculated branches already use. A\nnon-zero fixed background-size now always produces at least a\none-device-pixel tile, while an explicit zero still resolves to an empty\ntile.\n\nThis fixes the gradient, png, and svg near-zero background-size WPT\ntests; the color case was already passing since it uses background-color\nrather than image tiling.\n\n* LayoutTests/TestExpectations: Unskip now passing tests\n* Source/WebCore/rendering/BackgroundPainter.cpp:\n(WebCore::BackgroundPainter::calculateFillTileSize):\n\nCanonical link: https://commits.webkit.org/320169@main",
      "email": "ahmad.saleem792@gmail.com",
      "hash": "9deb9f6ab200aa86890e211eac3aa3ec946bd7d0",
      "subject": "Near-zero fixed background-size collapses image tile to nothing"
    },
    "320170@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "320170@main",
      "clUrl": "https://commits.webkit.org/320170@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322952\nrdar://186225718\n\nReviewed by Cole Carley.\n\n320051@main changed a quirk name from NeedsPauseBeforeFullscreenExitQuirk\nto NeedsSuppressedPauseEventOnFullscreenExitQuirk, but test expectations\ndid not reflect that. We do so with this rebaseline.\n\n* LayoutTests/platform/ios/fast/quirks/active-quirks-by-domain-expected.txt:\n\nCanonical link: https://commits.webkit.org/320170@main",
      "email": "a_protyasha@apple.com",
      "hash": "2a3b4f646d3f15fc87e2ffa3a0049756c7546889",
      "subject": "REGRESSION(320051@main): [iOS] fast/quirks/active-quirks-by-domain.html is a constant text failure"
    },
    "320171@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "320171@main",
      "clUrl": "https://commits.webkit.org/320171@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322947\nrdar://186220647\n\nReviewed by Richard Robinson.\n\nwebkit.org/b/322893 and webkit.org/b/322894 moved every caller off the\nExpected/unexpect aliases provided by wtf/Expected.h.\n\nAt this point, the entire project has moved on to using std::expected\ndirectly from the standard \u003cexpected\u003e header. As such, we can remove the\nheader (and the aliases) from WTF.\n\n* Source/WTF/WTF.xcodeproj/project.pbxproj:\n* Source/WTF/wtf/CMakeLists.txt:\n* Source/WTF/wtf/Expected.h: Removed.\n* Tools/TestWebKitAPI/CMakeLists.txt:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WTF/Expected.cpp: Removed.\n\nCanonical link: https://commits.webkit.org/320171@main",
      "email": "a_protyasha@apple.com",
      "hash": "1e1a6fc2de514038a683ee0676a34587597d22ce",
      "subject": "Remove wtf/Expected.h"
    },
    "320172@main": {
      "author": "Patrick Griffis",
      "avatar": "https://www.gravatar.com/avatar/2233c3a857004b126158572af9fe36f7?d=identicon\u0026s=64",
      "cl": "320172@main",
      "clUrl": "https://commits.webkit.org/320172@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=323011\n\nUnreviewed gardening.\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/320172@main",
      "email": "pgriffis@igalia.com",
      "hash": "97a2cd663edecff1216151332fd13a27e37b4f8c",
      "subject": "[GTK][WPE] Gardening of tests - 2026-08-31"
    },
    "320173@main": {
      "author": "Sergey Rubanov",
      "avatar": "https://www.gravatar.com/avatar/d04164fa4e06ce85533085f24c766e17?d=identicon\u0026s=64",
      "cl": "320173@main",
      "clUrl": "https://commits.webkit.org/320173@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322781\n\nReviewed by Yusuke Suzuki.\n\nextern.convert_any is already a move. any.convert_extern now is too,\nexcept when the value is a double, which still calls\noperationWasmAnyConvertExtern to canonicalize a strict i31.\n\n* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n* JSTests/wasm/stress/any-convert-extern.js: Added.\n\nCanonical link: https://commits.webkit.org/320173@main",
      "email": "chi187@gmail.com",
      "hash": "d75c7b382d2877d17a3e91d0e91cb002a315b0b3",
      "subject": "[JSC][Wasm] Inline any.convert_extern"
    },
    "320174@main": {
      "author": "Sergey Rubanov",
      "avatar": "https://www.gravatar.com/avatar/d04164fa4e06ce85533085f24c766e17?d=identicon\u0026s=64",
      "cl": "320174@main",
      "clUrl": "https://commits.webkit.org/320174@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322238\n\nReviewed by Yusuke Suzuki.\n\nESM compilation of .wasm now applies the js-string builtin set and\nwasm:js/string-constants. Reserved ESM import checks follow the spec\norder: module name, then import name, then exports.\n\n* Source/JavaScriptCore/wasm/js/JSWebAssembly.cpp:\n* Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp:\n* Source/JavaScriptCore/wasm/js/WebAssemblyCompileOptions.cpp:\n* Source/JavaScriptCore/wasm/js/WebAssemblyCompileOptions.h:\n* JSTests/wasm/modules/js-string-builtins.wasm: Added.\n* JSTests/wasm/modules/js-string-builtins.wat: Added.\n* JSTests/wasm/modules/js-string-constants.wasm: Added.\n* JSTests/wasm/modules/js-string-constants.wat: Added.\n* JSTests/wasm/modules/js-wasm-string-builtins.js: Added.\n* JSTests/wasm/modules/js-wasm-string-constants.js: Added.\n* JSTests/wasm/modules/js-wasm-reserved-names.js:\n* JSTests/wasm/modules/reserved-import-and-export.wasm: Added.\n* JSTests/wasm/modules/reserved-import-and-export.wat: Added.\n* JSTests/wasm/modules/reserved-import-module-and-name.wasm: Added.\n* JSTests/wasm/modules/reserved-import-module-and-name.wat: Added.\n* JSTests/wasm/modules/reserved-string-constant-name.wasm: Added.\n* JSTests/wasm/modules/reserved-string-constant-name.wat: Added.\n* LayoutTests/imported/w3c/web-platform-tests/wasm/jsapi/esm-integration/string-builtins.tentative.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/wasm/jsapi/esm-integration/string-builtins.tentative.any.worker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/wasm/jsapi/esm-integration/string-constants.tentative.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/wasm/jsapi/esm-integration/string-constants.tentative.any.worker-expected.txt:\n\nCanonical link: https://commits.webkit.org/320174@main",
      "email": "chi187@gmail.com",
      "hash": "7a205e11c5e592e7626f3cf1ebec5374217ee07d",
      "subject": "[JSC][Wasm] Enable JS string builtins for ESM Wasm modules"
    },
    "320175@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/d0533d52eeb271270df480f37629a407?d=identicon\u0026s=64",
      "cl": "320175@main",
      "clUrl": "https://commits.webkit.org/320175@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322852\nrdar://186095144\n\nReviewed by Simon Fraser.\n\nBuilding a contour re-derives the same superellipse constants for all four\ncorners, two pow() calls for the half corner, plus a tanh, two exp and a\npow for the handle fit, even though they depend only on the corner-shape\nparameter, which the four corners almost always share. Cache the last\nresult of each in thread-local storage and give the curve lists inline capacity\n\nPeformance improvements were measured through Instruments and MotionMark\n\n* Source/WebCore/platform/graphics/CornerShapeUtilities.cpp:\n\nCanonical link: https://commits.webkit.org/320175@main",
      "email": "173393835+cupidsity@users.noreply.github.com",
      "hash": "fb0f08f12317f67c126cffd2549e2c57287aa7c9",
      "subject": "corner-shape: the superellipse half-corner and Bézier handles are recomputed for every corner"
    },
    "320176@main": {
      "author": "Taher Ali",
      "avatar": "https://www.gravatar.com/avatar/e104800647d8c98b8c9dbe736b5e1751?d=identicon\u0026s=64",
      "cl": "320176@main",
      "clUrl": "https://commits.webkit.org/320176@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322995\nrdar://186264558\n\nReviewed by Simon Fraser.\n\nIntroduce SVGImage::ContainerContext which holds container size, zoom,\nfragment URL and link parameters.\n\nThere should be no behavior change.\n\n* Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.cpp:\n(WebCore::createNativeImageFromSVGImage):\n* Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.cpp:\n(WebCore::Style::CrossfadeImage::image const):\n* Source/WebCore/svg/graphics/SVGImage.cpp:\n(WebCore::SVGImage::drawForContainer):\n(WebCore::SVGImage::drawPatternForContainer):\n* Source/WebCore/svg/graphics/SVGImage.h:\n* Source/WebCore/svg/graphics/SVGImageCache.cpp:\n(WebCore::SVGImageCache::setContainerContextForClient):\n* Source/WebCore/svg/graphics/SVGImageForContainer.cpp:\n(WebCore::SVGImageForContainer::SVGImageForContainer):\n(WebCore::SVGImageForContainer::size const):\n(WebCore::SVGImageForContainer::draw):\n(WebCore::SVGImageForContainer::drawPattern):\n* Source/WebCore/svg/graphics/SVGImageForContainer.h:\n* Tools/TestWebKitAPI/Tests/WebCore/SVGImageCasts.cpp:\n(TestWebKitAPI::TEST(SVGImageCasts, SVGImageForContainerIsNotSVGImage)):\n\nCanonical link: https://commits.webkit.org/320176@main",
      "email": "taher_ali@apple.com",
      "hash": "097a3b9edb13b2e2d9667b85dbbfc65cd338a21a",
      "subject": "Bundle SVGImage's container parameters into a struct"
    },
    "320177@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "320177@main",
      "clUrl": "https://commits.webkit.org/320177@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322924\nrdar://186187306\n\nReviewed by Marcus Plutowski.\n\nFor String#indexOf / String#includes / StringView::find, reject when\nsearch-string is longer than the target-string early before constructing\nadaptive string searcher table. We apply the same thing to reverseFind /\nlastIndexOf etc. Also doing the same fast path rejection for startsWith\nand endsWith.\n\nTest: JSTests/stress/string-index-of-search-longer-than-subject.js\n\n* JSTests/stress/string-index-of-search-longer-than-subject.js: Added.\n(shouldBe):\n(indexOf):\n(indexOfAt):\n(includes):\n(includesAt):\n(referenceIndexOf):\n(indexOfRope):\n* JSTests/stress/string-last-index-of-search-longer-than-subject.js: Added.\n(shouldBe):\n(lastIndexOf):\n(lastIndexOfAt):\n(startsWith):\n(startsWithAt):\n(endsWith):\n(endsWithAt):\n(matchesAt):\n(referenceLastIndexOf):\n(referenceStartsWith):\n(referenceEndsWith):\n(lastIndexOfRopeSubject):\n(startsWithRopeSubject):\n(endsWithRopeSubject):\n(lastIndexOfRopeSearch):\n(startsWithRopeSearch):\n(endsWithRopeSearch):\n(lastIndexOfRopeSubjectAt):\n(map):\n* Source/JavaScriptCore/dfg/DFGOperations.cpp:\n(JSC::DFG::JSC_DEFINE_JIT_OPERATION):\n* Source/JavaScriptCore/runtime/StringPrototype.cpp:\n(JSC::JSC_DEFINE_HOST_FUNCTION):\n(JSC::stringIncludesImpl):\n* Source/WTF/wtf/text/StringView.cpp:\n(WTF::StringView::find const):\n\nCanonical link: https://commits.webkit.org/320177@main",
      "email": "ysuzuki@apple.com",
      "hash": "27eb122967d3188a3ea63a018bcff533df3d88e0",
      "subject": "[JSC] Reject when search-string is longer than the target-string early"
    },
    "320178@main": {
      "author": "Sam Sneddon",
      "avatar": "https://www.gravatar.com/avatar/99f6b56d9db9d32920dfcc56deae86fc?d=identicon\u0026s=64",
      "cl": "320178@main",
      "clUrl": "https://commits.webkit.org/320178@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321470\n\nReviewed by Elliott Williams.\n\nWhile doing a larger cleanup to this code would be good (to avoid\nparsing pretty git-log output), this provides a minimal change to fix\nour behaviour.\n\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:\n(Git.commits):\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:\n(TestGit.test_commits_empty_range):\n\nCanonical link: https://commits.webkit.org/320178@main",
      "email": "gsnedders@apple.com",
      "hash": "d5643c881425a956e0eccd0a459b00da2bd921a0",
      "subject": "Git.commits() returns a commit even when the range is empty"
    },
    "320179@main": {
      "author": "Andy Estes",
      "avatar": "https://www.gravatar.com/avatar/643f10f01b26fd94d03482a2013b2ea0?d=identicon\u0026s=64",
      "cl": "320179@main",
      "clUrl": "https://commits.webkit.org/320179@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322862\nrdar://185439655\n\nReviewed by Jer Noble.\n\nIn PlaybackSessionInterfaceAVKitLegacy::externalPlaybackChanged, when\nexternalPlaybackAirPlayDeviceLocalizedName on WebAVPlayerController is set to a non-nil string,\nAVPlayerViewController displays an AirPlay placard. However, this is incorrect for\nMediaDeviceRoutes since they have a custom route name.\n\nFixed this by plumbing the custom route name through externalPlaybackChanged. Then, if the custom\nroute name is non-empty, set externalPlaybackAirPlayDeviceLocalizedName to nil so that\nAVPlayerViewController avoids displaying a placard.\n\nIn a follow-on change we will implement a custom placard for MediaDeviceRoutes.\n\n* Source/WebCore/platform/cocoa/PlaybackSessionModel.h:\n(WebCore::PlaybackSessionModelClient::externalPlaybackChanged):\n* Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h:\n* Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm:\n(WebCore::PlaybackSessionModelMediaElement::updateForEventName):\n(WebCore::PlaybackSessionModelMediaElement::externalPlaybackLocalizedRouteName const):\n* Source/WebCore/platform/graphics/cocoa/NullPlaybackSessionInterface.h:\n* Source/WebCore/platform/graphics/cocoa/NullVideoPresentationInterface.h:\n* Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKitLegacy.h:\n* Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKitLegacy.mm:\n(WebCore::PlaybackSessionInterfaceAVKitLegacy::externalPlaybackChanged):\n* Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.h:\n* Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.mm:\n(WebCore::PlaybackSessionInterfaceIOS::initialize):\n* Source/WebCore/platform/ios/PlaybackSessionInterfaceTVOS.h:\n* Source/WebCore/platform/ios/VideoPresentationInterfaceAVKitLegacy.mm:\n(WebCore::VideoPresentationInterfaceAVKitLegacy::~VideoPresentationInterfaceAVKitLegacy):\n* Source/WebCore/platform/ios/VideoPresentationInterfaceIOS.h:\n* Source/WebCore/platform/ios/VideoPresentationInterfaceIOS.mm:\n(WebCore::VideoPresentationInterfaceIOS::externalPlaybackChanged):\n* Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm:\n(VideoFullscreenControllerContext::externalPlaybackChanged):\n(VideoFullscreenControllerContext::externalPlaybackLocalizedRouteName const):\n* Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.h:\n* Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.mm:\n(WebCore::PlaybackSessionInterfaceMac::externalPlaybackChanged):\n* Source/WebCore/platform/mac/VideoPresentationInterfaceMac.h:\n* Source/WebCore/platform/mac/VideoPresentationInterfaceMac.mm:\n(WebCore::VideoPresentationInterfaceMac::externalPlaybackChanged):\n* Source/WebKit/Platform/ios/PlaybackSessionInterfaceAVKit.h:\n* Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.h:\n* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h:\n* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:\n* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:\n(WebKit::PlaybackSessionModelContext::externalPlaybackChanged):\n(WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged):\n* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h:\n* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm:\n(WebKit::PlaybackSessionInterfaceContext::externalPlaybackChanged):\n(WebKit::PlaybackSessionManager::externalPlaybackChanged):\n\nCanonical link: https://commits.webkit.org/320179@main",
      "email": "aestes@apple.com",
      "hash": "5b999dd1817b1a6c653a5008381e16a1fb0751ca",
      "subject": "[iOS] When a MediaDeviceRoute is active and video is in fullscreen, an AirPlay placard is incorrectly displayed"
    },
    "320180@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "320180@main",
      "clUrl": "https://commits.webkit.org/320180@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=323014\nrdar://186280362\n\nReviewed by Abrar Rahman Protyasha.\n\nAdd it to the module, and workaround a compiler bug by defining `TransferString(TransferString\u0026\u0026)` out-of-line.\n\n* Source/WebKit/Modules/Internal/module.modulemap:\n* Source/WebKit/Platform/IPC/TransferString.cpp:\n* Source/WebKit/Platform/IPC/TransferString.h:\n\nCanonical link: https://commits.webkit.org/320180@main",
      "email": "richard_robinson2@apple.com",
      "hash": "6d79bc7223fa37eea4784b42b1eb16e1b4c6cc0c",
      "subject": "[Swift in WebKit] Make `IPC::TransferString` available to Swift"
    },
    "320181@main": {
      "author": "Ruthvik Konda",
      "avatar": "https://www.gravatar.com/avatar/bca33cefcce93017251a8fbc1204cdc4?d=identicon\u0026s=64",
      "cl": "320181@main",
      "clUrl": "https://commits.webkit.org/320181@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322517\nrdar://185818648\n\nReviewed by Dan Glastonbury.\n\nXRWebGLSubImage.cpp includes WebXRSession.h but never references the WebXRSession class. No change in behavior.\n\n* Source/WebCore/Modules/webxr/XRWebGLSubImage.cpp:\n\nCanonical link: https://commits.webkit.org/320181@main",
      "email": "rkonda2@apple.com",
      "hash": "bebad560f178187728eefe8be048399a0a1372d6",
      "subject": "[WebXR] Remove unused WebXRSession.h include in XRWebGLSubImage"
    },
    "320182@main": {
      "author": "itsu-dev",
      "avatar": "https://www.gravatar.com/avatar/66a96e8616819c12f1006e116ba535a7?d=identicon\u0026s=64",
      "cl": "320182@main",
      "clUrl": "https://commits.webkit.org/320182@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317486\n\nReviewed by Yusuke Suzuki.\n\n`Intl.DurationFormat.prototype.format()` incorrectly appends a separator, such as \":\",\nwhen both `hoursDisplay` and `minutesDisplay` are set to `\"auto\"` and the `minutes`\nvalue is 0. This patch fixes the condition for adding the separator so that it is\nonly added when the minutes field is displayed.\n\nNo additional test file(s), but this patch adds a testcase to an existing stress test.\n\n* JSTests/stress/intl-durationformat-digital.js:\n(Intl.DurationFormat.shouldBeOneOf):\n* Source/JavaScriptCore/runtime/IntlDurationFormat.cpp:\n(JSC::collectElements):\n\nCanonical link: https://commits.webkit.org/320182@main",
      "email": "itsu020402@gmail.com",
      "hash": "70a75461959a91b29395c03ce7ba494745c37c0a",
      "subject": "[JSC] [Intl.DurationFormat] Omit separator when minutes is hidden"
    },
    "320183@main": {
      "author": "Antoine Quint",
      "avatar": "https://www.gravatar.com/avatar/9b3ef1e754f8d994f21ff67c660cbbe6?d=identicon\u0026s=64",
      "cl": "320183@main",
      "clUrl": "https://commits.webkit.org/320183@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322989\nrdar://186261285\n\nReviewed by Tim Nguyen.\n\nThe CSS WG updated style-originated timelines to match globally by default [0], allowing timelines\nto be defined outside of the target's hierarchy or that of an element with a `timeline-scope`\nproperty.\n\nWe update our matching code to no longer assume timelines must be contained within the target's\nhierarchy and ensure that when a `timeline-scope` property is not set for a given timeline's name\nwe use global document ordering to determine which timeline to match.\n\nTo that end we rename `compareStyleOriginatedAnimationOwningElementPositionsInDocumentTreeOrder()`\nto `compareStyleablePositionsInDocumentTreeOrder()` and make it public.\n\nThis fixes many of the failures in the WPT test `scroll-animations/css/timeline-scope.html` that\nwere introduced due to the relevant WPT changes [1] but some more specific issues will be fixed\nwith followup patches.\n\n[0] https://github.com/w3c/csswg-drafts/pull/13624\n[1] https://github.com/web-platform-tests/wpt/pull/61776\n\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/timeline-scope-expected.txt:\n* Source/WebCore/animation/StyleOriginatedTimelinesController.cpp:\n(WebCore::StyleOriginatedTimelinesController::determineTreeOrder):\n(WebCore::StyleOriginatedTimelinesController::determineTimelineForElement):\n* Source/WebCore/animation/WebAnimationUtilities.cpp:\n(WebCore::compareStyleablePositionsInDocumentTreeOrder):\n(WebCore::compareCSSTransitions):\n(WebCore::compareCSSAnimations):\n(WebCore::compareStyleOriginatedAnimationEvents):\n(WebCore::compareStyleOriginatedAnimationOwningElementPositionsInDocumentTreeOrder): Deleted.\n* Source/WebCore/animation/WebAnimationUtilities.h:\n\nCanonical link: https://commits.webkit.org/320183@main",
      "email": "graouts@webkit.org",
      "hash": "0da994ab75f665dc639506bf7d920ba64fd5c26c",
      "subject": "[scroll-animations] match style-originated timelines globally"
    },
    "320184@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "320184@main",
      "clUrl": "https://commits.webkit.org/320184@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=323024\nrdar://186290218\n\nUnreviewed.\n\nThere was a missing linker symbol premultipliedFlooring.\nTestWebCore was trying to access it.  WEBCORE_EXPORT fixes it.\n\n* Source/WebCore/platform/graphics/ColorUtilities.h:\n\nCanonical link: https://commits.webkit.org/320184@main",
      "email": "achristensen@apple.com",
      "hash": "eacaadb99d1e4ce9b5f5fc75a0fc80158e82de5d",
      "subject": "Fix Cocoa cmake build after 320155@main"
    },
    "320185@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "320185@main",
      "clUrl": "https://commits.webkit.org/320185@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322954\nrdar://186227333\n\nReviewed by Yijia Huang.\n\nWhen constructing a TypedArray from JSArray, we need to copy and convert\nthe content for the array, which invokes ToNumber operation. And it can\nbe observable when JSArray is Contiguous or ArrayStorage. In this case,\nthey may hold an object which has valueOf override and that function can\nmodify the JSArray. According to the spec, we first need to preserve all\nthe content of JSArray and then doing ToNumber for each element. Thus we\nfirst need to preserve them somewhere. This patch fixes it by copying\nthem to MarkedArgumentBuffer first when necessary.\n\nTest: JSTests/stress/typedarray-construct-from-array-mutated-by-tonumber.js\n\n* JSTests/stress/typedarray-construct-from-array-mutated-by-tonumber.js: Added.\n(shouldBe):\n(shrinkWhileConverting):\n(overwriteWhileConverting):\n(growWhileConverting):\n(shrinkWhileConvertingBigInt):\n* JSTests/test262/expectations-linux.yaml:\n* JSTests/test262/expectations.yaml:\n* Source/JavaScriptCore/runtime/JSArray.cpp:\n(JSC::JSArray::fillArgList):\n* Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h:\n(JSC::constructGenericTypedArrayViewFromList):\n(JSC::constructGenericTypedArrayViewFromIterator):\n(JSC::constructGenericTypedArrayViewFromFastArray):\n(JSC::constructGenericTypedArrayViewWithArguments):\n\nCanonical link: https://commits.webkit.org/320185@main",
      "email": "ysuzuki@apple.com",
      "hash": "8496050f97ee2ef07bd330b6a49220ed3b93d95c",
      "subject": "[JSC] TypedArray constructor needs to copy JSArray content when its copying may cause side-effect"
    },
    "320186@main": {
      "author": "Tim Horton",
      "avatar": "https://www.gravatar.com/avatar/a04261df168177f0d816f3c7276f6183?d=identicon\u0026s=64",
      "cl": "320186@main",
      "clUrl": "https://commits.webkit.org/320186@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=323015\nrdar://186280350\n\nReviewed by Abrar Rahman Protyasha.\n\nIf the timing works out such that a click on a window foregrounds the window before\nwe are done with asynchronous click handling, we can let the click through\nneedlessly. Instead, block it at the source unless Cmd is held down (which\nis the usual way to intentionally click-through).\n\nTests: Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/InactiveWindowAppKitGesturesTests.swift\n\n* Source/WebKit/UIProcess/mac/AppKitGestures/WKAppKitGestureController.mm:\n(-[WKAppKitGestureController _handleClickBegan:]):\nBlock click in background windows unless Cmd is held.\n\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/AppKitGesturesTestsSupport.swift:\n(NonKeyWindow.canBecomeKey):\n(NonKeyWindow.isKeyWindow):\nAdd some helpers and a window subclass that is never foreground.\n\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/InactiveWindowAppKitGesturesTests.swift: Added.\n(AppKitGesturesTests.singleClickIntoInactiveWindowIsSuppressed):\nAdd a test that makes sure that this suppression works.\nI was unsuccessful in creating a test for the Cmd inverse case, but tested it manually.\n\nCanonical link: https://commits.webkit.org/320186@main",
      "email": "thorton@apple.com",
      "hash": "345e3fd2acc0adb2510bc89dbae3b962bef7da60",
      "subject": "[AppKit Gestures] Click in a backgrounded window can result in action being taken"
    },
    "320187@main": {
      "author": "Adrian Perez de Castro",
      "avatar": "https://www.gravatar.com/avatar/30ffea8cf404586741a8f5f7110c0914?d=identicon\u0026s=64",
      "cl": "320187@main",
      "clUrl": "https://commits.webkit.org/320187@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322945\n\nUnreviewed Skia update.\n\n% git log --pretty='%h %s' a06b820a5c866aaf44aa9274bca849f97108eb9c..588b550a4dd8af90dbe71c0554852806bd8f0b21\n588b550a4d Roll vulkan-deps from bae94fa5093d to 87c22542b6b7 (1 revision)\nce359c7fbf Roll SKP CIPD package from 574 to 575\n3ae8e3d1e3 Roll vulkan-deps from af7b602a8439 to bae94fa5093d (3 revisions)\nb392fb672d [Maintenance] Remove SkBigPicture\n195542bd81 [SkSL] Fix incorrect SPIR-V decorations\ne55b9d8c88 Roll vulkan-deps from c9447e520acc to af7b602a8439 (7 revisions)\nb552730fce [graphite] Add AlphaAtlasManager\n5df761885a Manual Roll vulkan-deps from a850ee2ab309 to c9447e520acc (8 revisions)\n771ac54cf1 Ensure proper resource destruction in GrVkGpu::destroyResources\n0b4249b26b Manual roll Dawn from afe69b63e0ce to 3916b915ac5f (7 revisions)\nfe0b9a5261 Use TArray for fPath16 in SkOSFileIterData\n21f71051e7 Roll Skia Infra from 3de521ee5edc to d18d86b514cf (26 revisions)\n63db32aed6 Roll Dawn from 5c911a0d35f5 to afe69b63e0ce (23 revisions)\n3d10f9110e Roll debugger-app-base from f7c6f5583429 to 189167a0ccc9\n11e3a7cb0f Roll recipe dependencies (trivial).\n171aab3da3 Roll recipe dependencies (trivial).\n9be41cc22d Roll recipe dependencies (trivial).\nca60e244fa Manual roll ANGLE from 2c68772a0eb7 to 3cd4190dfb66 (9 revisions)\na4b16bab90 [rust] Allow and fix Clippy warnings across Skia Rust integrations\n6f486d896c [skcapture] Isolate captured draws at a given snap to the Recorder\n0ca6b1c23a Roll recipe dependencies (trivial).\n2c32253f7a Manual roll Dawn from e6fc724081ff to 5c911a0d35f5 (9 revisions)\n8b287e7395 Declare fInternalAllocator before containers in GrResourceAllocator\n37459da0a7 Modernize SkCachedData storage with std::variant\nf4f1a4b9aa Roll vulkan-deps from 01de881fd853 to a850ee2ab309 (4 revisions)\ne8599e88f5 Add ICC test profiles from skcms and Chromium\n470afa1cab miracleptr: Add RAW_PTR_EXCLUSION for pointers used as identifiers\n04185778c7 Roll skcms from 9c10699e8884 to 4992fb146a83 (1 revision)\nfc07f2f424 Exclude fLastValue in GrHashMapWithCache from raw_ptr\n7bc889d490 Reland \"miracleptr: Add RAW_PTR_EXCLUSION for pointers to global/static state\"\n16bafda133 Reland \"miracleptr: Add RAW_PTR_EXCLUSION for pointers used to pack integers\"\n0d7d585b6f Reland \"miracleptr: Add RAW_PTR_EXCLUSION for pointers in unions\"\nd7c1561359 Fix UAF in SkCachedData::internalUnref\n82e972ea84 Manual roll Dawn from c55d18087bf3 to e6fc724081ff (7 revisions)\n35a340268e Roll recipe dependencies (trivial).\nd32721369b Roll ANGLE from 8d273b266600 to 2c68772a0eb7 (5 revisions)\n464f6f3452 Roll Skia Infra from 753c2fda61d5 to 3de521ee5edc (11 revisions)\n31cb7128cd Roll SwiftShader from 516b76187972 to e8be468b3dc4 (1 revision)\ndee09d2815 Roll Dawn from 023b7514b6a0 to c55d18087bf3 (17 revisions)\na53b6a0537 Roll debugger-app-base from eb2e5e9721af to f7c6f5583429\n9ed0dc809c Roll vulkan-deps from 18a1b5f2b41f to 01de881fd853 (4 revisions)\n72f73875d2 Roll recipe dependencies (trivial).\n7ad32d3326 Roll recipe dependencies (trivial).\n899de20589 Roll recipe dependencies (trivial).\n7788196ddd [svgdevice] Fix color filter masking\n3640b8edd1 Manual roll Dawn from 0d54fc7d5bd7 to 023b7514b6a0 (9 revisions)\nbcb1382023 Roll recipe dependencies (trivial).\n551d787ec7 [infra] Increased timeout for Test-Win11-Clang-NUC*\nc75b9f86d0 [graphite] Adds kRead texture usage and getter functions\n77f692bf03 Roll recipe dependencies (trivial).\ndcbab2b1ae [canvaskit] Allow Canvas2D emulation to render on the GPU\nb5465d7b0b [graphite] MakeWithFilter returns non-budgeted, non-scratch textures\n9e176f4ff0 Roll vulkan-deps from 1da5402bca23 to 18a1b5f2b41f (3 revisions)\n9ce104ffaf Manual roll Dawn from cf5c9898cfb9 to 0d54fc7d5bd7 (7 revisions)\n0d5e61d9d6 [skcms] Update repository URL in README.chromium\ncacf77bdba Roll recipe dependencies (trivial).\n350c94b7d7 Reland \"MiraclePtr: Inject PA dependency in skia_target\"\n6e2a131bd8 MiraclePtr: Disable PartitionAlloc for embedders in GN\n4ec74851be Roll ANGLE from 9d57491334bd to 8d273b266600 (4 revisions)\ndb4f384476 Roll Dawn from 0bdfde145703 to cf5c9898cfb9 (13 revisions)\n394c8a2830 Roll Skia Infra from 51ab41fb1557 to 753c2fda61d5 (8 revisions)\nae6f978c4e Roll debugger-app-base from 4ab9cd4f66b2 to eb2e5e9721af\n7228d41fec Roll SwiftShader from 6b8d31709ad1 to 516b76187972 (1 revision)\nfa5791fcb6 Roll recipe dependencies (trivial).\n75b536c1ea Roll recipe dependencies (trivial).\nea79fddf33 Roll vulkan-deps from 5bbb3eca69a2 to 1da5402bca23 (8 revisions)\n8582fd6ebc Roll recipe dependencies (trivial).\ndd54db1bda Roll recipe dependencies (trivial).\na23a1a55e0 [graphite] Add public ContextOption for DrawListLayer\n838bc0b722 Roll recipe dependencies (trivial).\n244a6a0f8f Roll recipe dependencies (trivial).\n2a47279add Roll recipe dependencies (trivial).\n84195105bf Manual roll Dawn from c169e62117d8 to 0bdfde145703 (9 revisions)\n4fbed08dfb [svgdevice] Add missing baseRecorder() override\nffc2cc46d8 [graphite] Add OracleValidator and SkpValidator\n5293d07179 SKPBench - isolate each SKP timing from all the others\n4805401783 Manual roll Dawn from 84eeb817a85e to c169e62117d8 (5 revisions)\nb1a31575c3 Roll vulkan-deps from 21cfd4064773 to 5bbb3eca69a2 (3 revisions)\nbfa276ed9a Roll recipe dependencies (trivial).\n31799e707c Roll ANGLE from 80760643c85e to 9d57491334bd (7 revisions)\n7c3c6ac1a7 Roll Skia Infra from 00004eadd242 to 51ab41fb1557 (7 revisions)\nf81892e081 Roll recipe dependencies (trivial).\n88cc63161a Roll Dawn from 55d132a23849 to 84eeb817a85e (19 revisions)\ncfae2af1bf Roll recipe dependencies (trivial).\n4a2fddefd3 Roll recipe dependencies (trivial).\n4c7a95448a Roll recipe dependencies (trivial).\n0b106b8205 Roll vulkan-deps from 7cc39635d2f5 to 21cfd4064773 (8 revisions)\na8447bb053 Roll recipe dependencies (trivial).\n2ad9bda2f5 Roll recipe dependencies (trivial).\naa98b68841 [skif] SkBlurEngine marks its devices immutable when finished\n256c15026b [skcms] Update README.chromium metadata\n698c60bf58 [Dawn] Isolate DRMUtils to its own file list that doesn't get built\n57968d087d Manual roll Dawn from 01af1ad339cb to 55d132a23849 (7 revisions)\n50452b13f0 Roll vulkan-deps from 0e2916f1c990 to 7cc39635d2f5 (6 revisions)\nefd811199d Roll recipe dependencies (trivial).\n925e135595 Roll recipe dependencies (trivial).\n6f2604cb85 Roll ANGLE from 6f066af1045b to 80760643c85e (5 revisions)\n38a369fa7e etc1: add missing metadata fields to README.google\n38813e97d2 Roll Skia Infra from 00da75d62171 to 00004eadd242 (9 revisions)\nedfb359a6c Roll Dawn from 15f7ba37a9ac to 01af1ad339cb (10 revisions)\nc78782c7c1 Roll debugger-app-base from 816871cb56df to 4ab9cd4f66b2\n886302c7c6 Roll vulkan-deps from 993a4d05ca61 to 0e2916f1c990 (1 revision)\na1825062f8 Roll SKP CIPD package from 573 to 574\nad2106c0bb Roll vulkan-deps from 3cc0a5d1905e to 993a4d05ca61 (6 revisions)\nbcb205e866 Roll recipe dependencies (trivial).\n8189058146 Manual roll Dawn from 4bd029589224 to 15f7ba37a9ac (9 revisions)\n666a9b3d5c Roll recipe dependencies (trivial).\n761211b5b7 Roll skcms from 8c2404b3b73f to 9c10699e8884 (1 revision)\n0c37868737 Roll recipe dependencies (trivial).\n56f54efed1 [graphite] Enable SkSLBench for Graphite\nf6900c5b84 [graphite] Add sparse strips coverage oracle\nf003615b8b Roll vulkan-deps from 71c3f1723099 to 3cc0a5d1905e (3 revisions)\n70988bed1b Manual roll Dawn from 430122149cc8 to 4bd029589224 (8 revisions)\n3b455627c5 Remove BazelTest-external_client-use_graphite_native_vulkan-default-linux_x64 job\n2ba6971bd0 Roll recipe dependencies (trivial).\n79307ca158 Roll recipe dependencies (trivial).\n1d5f72537b Roll recipe dependencies (trivial).\n2c25efd2e3 Roll ANGLE from 204fa645c41b to 6f066af1045b (5 revisions)\n51f93c270e Roll recipe dependencies (trivial).\n345e86f921 Roll Skia Infra from afd8cae6ab5b to 00da75d62171 (11 revisions)\nab2bae5ebe Roll Dawn from 558b50eb644c to 430122149cc8 (21 revisions)\nbf5a983d8d Roll debugger-app-base from 0bd074379672 to 816871cb56df\n6718179582 Roll recipe dependencies (trivial).\n0295493236 Roll recipe dependencies (trivial).\na047773f15 Roll recipe dependencies (trivial).\n79bbad6b96 Roll vulkan-deps from 4ebd7fc2245a to 71c3f1723099 (3 revisions)\n09b1b81085 Roll recipe dependencies (trivial).\neb36aa245f Manual roll vulkan-deps from e875a3c61231 to 4ebd7fc2245a (8 revisions)\n46d2dfdc10 Remove legacy imageProc\n3ad5895d51 Manual roll Dawn from dec7e3fa3e52 to 558b50eb644c (7 revisions)\nc0da5ae81c Roll recipe dependencies (trivial).\n436a90e38e Reland:Support for PAlloc's ScopedSafetyChecksExclusion\nc12ebabc1c [ganesh] More triangulator guards\n00cbd03787 [ganesh] Skip new test if it's a protected context\n53792f2b22 Roll vulkan-deps from 18dc1ed09d26 to e875a3c61231 (2 revisions)\nceb06578e9 Roll ANGLE from c5d7b1561c88 to 204fa645c41b (14 revisions)\n5e45037c5b Roll recipe dependencies (trivial).\nce004b64dc Roll Skia Infra from b3ccd86315f4 to afd8cae6ab5b (18 revisions)\n4e9e63e9c4 Roll Dawn from c3845d0d9626 to dec7e3fa3e52 (19 revisions)\na277cce347 Roll debugger-app-base from 229cb5edc94f to 0bd074379672\n25531e4cb9 Roll recipe dependencies (trivial).\nabdf8821f3 Roll recipe dependencies (trivial).\nb3fd256c11 [graphite] Simplify layer tests to use inline bounds storage\n1cc8a04875 Roll vulkan-deps from 39a28466f653 to 18dc1ed09d26 (1 revision)\n33b264cb91 Configure Metal tests in Bazel's DM build\n87424d66ed [graphite] LCM across storage attributes\ndefc40def3 [graphite] SkSLBench fixes\n66108990f8 [canvaskit] Update metadata for 0.42.0\n0ba5d64949 Update skottie-base\n5bce1413b0 [Graphite] Fix VerticesRenderStep to properly handle triangle strips\n70cc137de3 [graphite] Add Storage Attributes to Rendersteps\nc67d061a91 Reland \"[skottie] Add support for text tracking (letter spacing)\"\nba5749f92e Manual roll Dawn from 580bf1fb8e1a to c3845d0d9626 (6 revisions)\ndbbc118e23 [ganesh] Fix leaking AA draw outside of non-AA clip\n64ba71edaa Revert \"[skottie] Add support for text tracking (letter spacing)\"\n3c29a055ec Roll vulkan-deps from 299d9005bcf3 to 39a28466f653 (3 revisions)\n525abbec54 Roll debugger-app-base from 908aa7ccc3a9 to 229cb5edc94f\nc006b025ba Roll recipe dependencies (trivial).\ned270508d6 Roll ANGLE from a871bdb05932 to c5d7b1561c88 (14 revisions)\nb53c3184dd Roll Skia Infra from 5df977969db9 to b3ccd86315f4 (10 revisions)\n5fcfc82946 Roll Dawn from 39959ecc6912 to 580bf1fb8e1a (24 revisions)\n90e9f68af5 Roll recipe dependencies (trivial).\nc5df7c0957 Roll recipe dependencies (trivial).\n01c0a12cf0 Add Jpegxl unit test for decoding P3 image\n1d6a67d443 [graphite] Store first BindingList for Layer inline\n1e1e630836 Roll recipe dependencies (trivial).\nee0e2cc58a [graphite] Fix forward bad downcast in StorageContextTest\n30564e3810 [skottie] Add support for text tracking (letter spacing)\nf95dc7681e Revert \"MiraclePtr: Inject PA dependency in skia_target\"\n325f8e1ca5 [Graphite] Add MeshRenderStep and mesh shader in paint key\nfee4ed90cd Roll vulkan-deps from 1d696389f66f to 299d9005bcf3 (1 revision)\n97b147f6ce Create GM testing SkVertices::kTriangleStrip_VertexMode\ndc8430bf2d [graphite] Draw list layer draws are singly-linked, and stored inline\n3810fd8f36 Roll recipe dependencies (trivial).\n1c44c3955e Merge 4 release notes into RELEASE_NOTES.md\nc020b259df Update Skia milestone to 154\n924cf75553 [graphite] Add appending renderstep vertex data\ne2def78fa2 Fix setjmps\n1a20564afa Manual roll skcms from 6010f3583977 to 8c2404b3b73f (1 revision)\n39e1f76e1e Roll recipe dependencies (trivial).\n2b9b367a51 Roll ANGLE from 60ccf9a219bd to a871bdb05932 (13 revisions)\n2cee342c34 Roll Skia Infra from 57107b5a16cb to 5df977969db9 (9 revisions)\ncebd9c3c0b Roll Dawn from f91da75afe31 to 39959ecc6912 (16 revisions)\n145a131ee6 Roll fiddler-base from 5787c0b0b828 to 5d0235a4365b\ne82a7bfaa5 Roll vulkan-deps from 7947c99db1dc to 1d696389f66f (4 revisions)\n8b8c3872fb [rust exif] Avoid repeated ExifIFD traversal\ne29010fb1e [graphite] Fix BufferAligner casing\n73d18dbf6a Revert \"Support for PAlloc's ScopedSafetyChecksExclusion\"\nb26f58d3a1 [graphite] Correctly set depth fail op in MtlSharedContext\nd01e14fab6 Roll vulkan-deps from 8ab3e1d4c253 to 7947c99db1dc (1 revision)\na4c6b7b32c Manual roll Dawn from a8db5510cc0e to f91da75afe31 (8 revisions)\nd967fa42c0 Support for PAlloc's ScopedSafetyChecksExclusion\n955e7d4df1 MiraclePtr: Inject PA dependency in skia_target\n\nCanonical link: https://commits.webkit.org/320187@main",
      "email": "aperez@igalia.com",
      "hash": "4941e5cc7fa7b334449deaa28e1e72632e1d815a",
      "subject": "Update Skia to 2026-08-30 (588b550a4dd8af90dbe71c0554852806bd8f0b21)"
    },
    "320188@main": {
      "author": "Cameron McCormack",
      "avatar": "https://www.gravatar.com/avatar/b2bb1b369be938a743e50f595bfa0798?d=identicon\u0026s=64",
      "cl": "320188@main",
      "clUrl": "https://commits.webkit.org/320188@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322957\nrdar://186229937\n\nReviewed by Dan Glastonbury.\n\nEnabling OES_texture_float implicitly enables WEBGL_color_buffer_float, which\nmakes ANGLE promote RGBA/FLOAT uploads to the sized internal format RGBA32F. A\nsized format must be both color-renderable and filterable to be mipmapped, and\nRGBA32F is not filterable until OES_texture_float_linear is enabled, so\ngenerateMipmap returns INVALID_OPERATION. The test called generateMipmap\nunconditionally, ignored the error, and then attributed it to the following draw.\n\nKhronos rewrote the upstream test in 2019 to skip the rest of the case when\ngenerateMipmap fails, calling that legal. This is a WebKit-local fork frozen at\nits 2013 import, so it never picked that up. The maintained conformance version\nof the same test already passes on every mac configuration.\n\nThe console messages the old baseline expected came from WebKit's pre-ANGLE\nbackend, deleted in 254947@main, and are correctly absent now.\n\n* LayoutTests/fast/canvas/webgl/oes-texture-float-linear-expected.txt:\n* LayoutTests/fast/canvas/webgl/resources/oes-texture-float-and-half-float-linear.js:\n* LayoutTests/platform/mac/TestExpectations:\n\nCanonical link: https://commits.webkit.org/320188@main",
      "email": "heycam@apple.com",
      "hash": "13ea4c03c17ffc75e47cd08d073e1f203588885f",
      "subject": "Tolerate generateMipmap failing for float textures in oes-texture-float-linear.html."
    },
    "320189@main": {
      "author": "Taher Ali",
      "avatar": "https://www.gravatar.com/avatar/e104800647d8c98b8c9dbe736b5e1751?d=identicon\u0026s=64",
      "cl": "320189@main",
      "clUrl": "https://commits.webkit.org/320189@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=323017\nrdar://186281630\n\nReviewed by Tim Nguyen.\n\nConverted to WPT.\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-background-image-expected.html: Copied from LayoutTests/svg/css-link-params/link-parameters-background-image-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-background-image-ref.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-background-image-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-background-image.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-background-image.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-basic-expected.html: Copied from LayoutTests/svg/css-link-params/link-parameters-basic-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-basic-ref.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-basic-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-basic.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-basic.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-duplicate-name-expected.html: Copied from LayoutTests/svg/css-link-params/link-parameters-duplicate-name-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-duplicate-name-ref.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-duplicate-name-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-duplicate-name.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-duplicate-name.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-dynamic-expected.html: Copied from LayoutTests/svg/css-link-params/link-parameters-dynamic-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-dynamic-ref.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-dynamic-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-dynamic.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-dynamic.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-fallback-expected.html: Copied from LayoutTests/svg/css-link-params/link-parameters-fallback-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-fallback-ref.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-fallback-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-fallback.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-fallback.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-geometry-expected.html: Copied from LayoutTests/svg/css-link-params/link-parameters-geometry-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-geometry-ref.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-geometry-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-geometry.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-geometry.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-none-expected.html: Copied from LayoutTests/svg/css-link-params/link-parameters-none-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-none-ref.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-none-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-none.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-none.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-per-container-expected.html: Copied from LayoutTests/svg/css-link-params/link-parameters-per-container-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-per-container-ref.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-per-container-expected.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/link-parameters-per-container.html: Renamed from LayoutTests/svg/css-link-params/link-parameters-per-container.html.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/resources/geometry.svg: Renamed from LayoutTests/svg/css-link-params/resources/geometry.svg.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/css-linked-parameters/resources/solid.svg: Renamed from LayoutTests/svg/css-link-params/resources/solid.svg.\n\nCanonical link: https://commits.webkit.org/320189@main",
      "email": "taher_ali@apple.com",
      "hash": "d5bd94e49ba62171ca54123247603c27df037e76",
      "subject": "Move css-link-params rendering tests to WPT"
    }
  },
  "date": "2026-08-31",
  "days": 1,
  "generatedAt": "2026-08-31T22:05:54Z",
  "markdown": "## Highlights\n- **Security** Closed a WebGPU hole where an unsubmitted command encoder could poison indirect draw clamping and trigger out-of-bounds vertex fetches. [commit 320125@main](https://commits.webkit.org/320125@main)\n- **Security** Fixed an out-of-bounds write path in non-Cocoa image fuzzing coverage for AVIF, WebP, and JPEG XL. [commit 320155@main](https://commits.webkit.org/320155@main)\n- **A11y** Fixed VoiceOver navigation getting stuck or looping when multiple frames share a single WebProcess. [commit 320133@main](https://commits.webkit.org/320133@main)\n- **Web Platform** Added the CSS `size` shorthand for `width` and `height`, pushing another chunk of css-sizing forward. [commit 320162@main](https://commits.webkit.org/320162@main)\n- **Web Platform** Landed SVG resource rendering with CSS link parameters and moved rendering coverage into WPT. [commit 320159@main](https://commits.webkit.org/320159@main)\n- **Networking** Fixed a Service Worker lifecycle bug where `ServiceWorkerThread` could still dispatch events after its scope had stopped. [commit 320145@main](https://commits.webkit.org/320145@main)\n- **DevTools** Restored missing `WebSocket` handshake headers in Web Inspector when requests go through the `Network.framework` loader. [commit 320156@main](https://commits.webkit.org/320156@main)\n- **UI** Fixed AppKit gesture handling so a click into a background window does not incorrectly trigger actions. [commit 320186@main](https://commits.webkit.org/320186@main)\n- **Rendering** Cut repeated work in corner-shape by avoiding recomputation of superellipse half-corners and Bezier handles for every corner. [commit 320175@main](https://commits.webkit.org/320175@main)\n\n## What landed by area\n\n### JavaScriptCore and Wasm\n- **V8** Fixed `TypedArray` construction so copying from a `JSArray` takes the spec-safe path when side effects can happen during the copy. [commit 320185@main](https://commits.webkit.org/320185@main)\n- **V8** Tightened `Intl.DurationFormat` output so no separator is emitted when the minutes field is hidden. [commit 320182@main](https://commits.webkit.org/320182@main)\n- **V8** Added an early reject fast path when a search string is longer than the target string. [commit 320177@main](https://commits.webkit.org/320177@main)\n- **V8** Enabled JS string builtins for ESM Wasm modules. [commit 320174@main](https://commits.webkit.org/320174@main)\n- **V8** Inlined `any.convert_extern` in Wasm for less conversion overhead. [commit 320173@main](https://commits.webkit.org/320173@main)\n- **V8** Fixed `TypedArray#setFromTypedArray` overlap semantics so intentionally overlapping regions follow spec instead of using a blind `memmove`. [commit 320130@main](https://commits.webkit.org/320130@main)\n- **Perf** Reduced the scope of `CodeBlock::m_lock` in JSC. [commit 320129@main](https://commits.webkit.org/320129@main)\n\n### CSS, layout, and rendering\n- **Web Platform** Matched style-originated scroll timelines globally for scroll animations. [commit 320183@main](https://commits.webkit.org/320183@main)\n- **Rendering** Fixed near-zero fixed `background-size` collapsing image tiling to nothing. [commit 320169@main](https://commits.webkit.org/320169@main)\n- **Rendering** Fixed grid fixed track sizing being overridden while sizing tracks to fit non-spanning items. [commit 320168@main](https://commits.webkit.org/320168@main)\n- **Rendering** Fixed propagated root background painting in the wrong position for `vertical-rl`. [commit 320167@main](https://commits.webkit.org/320167@main)\n- **Rendering** Fixed additive SVG color animations losing precision because of per-layer 8-bit rounding. [commit 320166@main](https://commits.webkit.org/320166@main)\n- **Web Platform** Tightened css-mixins parsing so a dashed function argument cannot start with a dashed ident plus colon. [commit 320165@main](https://commits.webkit.org/320165@main)\n- **Web Platform** Added parsing support for `flex-wrap: balance`. [commit 320139@main](https://commits.webkit.org/320139@main)\n- **Web Platform** Allowed commas in css-mixins function parameters. [commit 320151@main](https://commits.webkit.org/320151@main)\n- **Rendering** Fixed inset box-shadow with large spread painting outside inline boxes. [commit 320150@main](https://commits.webkit.org/320150@main)\n- **Rendering** Stopped redundant text updates for every `display: contents` text child. [commit 320144@main](https://commits.webkit.org/320144@main)\n- **Rendering** Validated the full FeatureList array once in `OpenTypeVerticalData::findFeature`. [commit 320142@main](https://commits.webkit.org/320142@main)\n- **Rendering** Made flexible grid tracks respect the grid container's min and max size. [commit 320160@main](https://commits.webkit.org/320160@main)\n- **Rendering** Fixed ink-overflow-only style changes to repaint without rerunning inline layout. [commit 320128@main](https://commits.webkit.org/320128@main)\n- **Rendering** Moved list marker text initialization out of lazy layout-time filling. [commit 320127@main](https://commits.webkit.org/320127@main)\n- **Rendering** Fixed an inline layout invalidation assertion introduced by [bug 322915](https://bugs.webkit.org/show_bug.cgi?id=322915). [commit 320161@main](https://commits.webkit.org/320161@main)\n- **Web Platform** Re-imported css-values-5 tests to keep parser behavior aligned with WPT. [commit 320136@main](https://commits.webkit.org/320136@main)\n- **Web Platform** Re-imported css-mixins tests again after parser work. [commit 320148@main](https://commits.webkit.org/320148@main)\n\n### Networking, workers, and platform APIs\n- **Networking** Switched Service Worker routes to shared URLPattern matching. [commit 320122@main](https://commits.webkit.org/320122@main)\n- **Networking** Fixed a WebTransport regression where the interface was missing and pages hit `ReferenceError: Can't find variable: WebTransport`. [commit 320163@main](https://commits.webkit.org/320163@main)\n- **Privacy** Fixed `ServiceWorkerThread` firing events after shutdown of the related scope, tightening lifecycle behavior and reducing stale event delivery. [commit 320145@main](https://commits.webkit.org/320145@main)\n- **Mobile** Exposed `IPC::TransferString` to Swift as more IPC plumbing moves into Swift-backed code. [commit 320180@main](https://commits.webkit.org/320180@main)\n- **GPU** Removed an unused `WebXRSession.h` include from `XRWebGLSubImage`. [commit 320181@main](https://commits.webkit.org/320181@main)\n\n### Media, graphics, and GPU\n- **Perf** Switched 2D canvas `drawImage` to use `copyNativeImage`. [commit 320153@main](https://commits.webkit.org/320153@main)\n- **Media** Fixed swapped red and blue colors for non-accelerated video in the GTK and WPE Skia compositor. [commit 320152@main](https://commits.webkit.org/320152@main)\n- **Media** Fixed an iOS fullscreen routing bug that incorrectly showed an AirPlay placard while a `MediaDeviceRoute` was active. [commit 320179@main](https://commits.webkit.org/320179@main)\n- **GPU** Tolerated `generateMipmap` failure for float textures in the OES float linear test expectation. [commit 320188@main](https://commits.webkit.org/320188@main)\n- **Rendering** Bundled `SVGImage` container parameters into a struct to simplify call plumbing around SVG image rendering. [commit 320176@main](https://commits.webkit.org/320176@main)\n- **Media** Fixed a Tahoe regression with 11 imported encrypted-media `drm-mp4` tests crashing constantly. [commit 320124@main](https://commits.webkit.org/320124@main)\n\n### Apple platform UI and accessibility\n- **UI** Fixed an AppKit gesture bug where a click in a backgrounded window could still take action. [commit 320186@main](https://commits.webkit.org/320186@main)\n- **A11y** Fixed VoiceOver traversal across frames in the same WebProcess so they are reachable without loops. [commit 320133@main](https://commits.webkit.org/320133@main)\n- **UI** Stopped exposing `WKMouseTrackingGestureRecognizer` through `@objc`. [commit 320126@main](https://commits.webkit.org/320126@main)\n- **Mobile** Added logging of negotiated `cp_layer_renderer_layout` in visionOS `CompositorCoordinator`. [commit 320141@main](https://commits.webkit.org/320141@main)\n- **UI** Fixed an iOS quirk test regression in `active-quirks-by-domain.html`. [commit 320170@main](https://commits.webkit.org/320170@main)\n\n### GTK, WPE, and GLib\n- **UI** Added alpha channel support to GLib color choosers. [commit 320149@main](https://commits.webkit.org/320149@main)\n- **Perf** Fixed WPE and GTK `position: fixed` layers being unnecessarily repainted during scrolling. [commit 320147@main](https://commits.webkit.org/320147@main)\n- **Build** Made TextureMapper optional at build time for GTK and WPE and disabled it by default. [commit 320146@main](https://commits.webkit.org/320146@main)\n- **DevTools** Added a `cycle-analysis` subcommand to `webkit-sysprof`. [commit 320143@main](https://commits.webkit.org/320143@main)\n- **Build** Fixed WebDriver on GLib so the UIProcess is killed when the last WebProcess crashes and the session ends. [commit 320138@main](https://commits.webkit.org/320138@main)\n- **Build** Fixed WPE builds with `ENABLE_WPE_LEGACY_API=0` after an undefined reference regression. [commit 320123@main](https://commits.webkit.org/320123@main)\n- **Build** Reviewed padding in the new WPE Platform API classes. [commit 320157@main](https://commits.webkit.org/320157@main)\n- **Build** Gardened GTK and WPE tests. [commit 320172@main](https://commits.webkit.org/320172@main)\n- **Build** Gardened GLib layout tests. [commit 320137@main](https://commits.webkit.org/320137@main)\n\n### Tooling, build system, and refactors\n- **Build** Enabled Thread and Unsafe Buffer warnings on Cocoa ports in CMake. [commit 320158@main](https://commits.webkit.org/320158@main)\n- **Build** Fixed the Cocoa CMake build after [commit 320155@main](https://commits.webkit.org/320155@main). [commit 320184@main](https://commits.webkit.org/320184@main)\n- **Refactor** Removed `wtf/Expected.h`. [commit 320171@main](https://commits.webkit.org/320171@main)\n- **Refactor** Dropped the remaining `WTF::Expected` alias usage. [commit 320132@main](https://commits.webkit.org/320132@main)\n- **Refactor** Refactored `EventSenderSyntheticEvent` to be shareable across TWKAPI and WKTR. [commit 320131@main](https://commits.webkit.org/320131@main)\n- **Build** Updated safer C++ expectations. [commit 320140@main](https://commits.webkit.org/320140@main)\n- **Build** Updated safer C++ expectations again in part 2. [commit 320154@main](https://commits.webkit.org/320154@main)\n- **Build** Fixed `Git.commits()` returning a commit for an empty range. [commit 320178@main](https://commits.webkit.org/320178@main)\n\n### Testing and standards sync\n- **Web Platform** Moved css-link-params rendering tests into WPT. [commit 320189@main](https://commits.webkit.org/320189@main)\n- **Web Platform** Resynced Web Audio coverage from upstream WPT. [commit 320164@main](https://commits.webkit.org/320164@main)\n\n## Reverts \u0026 Reapplies",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [
    {
      "name": "Unreviewed",
      "count": 1
    }
  ],
  "since": "2026-08-31",
  "totals": {
    "commits": 68,
    "features": 67,
    "rolls": 1
  },
  "until": "2026-08-31"
}