{
  "commits": {
    "315757@main": {
      "author": "Anthony Tarbinian",
      "avatar": "https://www.gravatar.com/avatar/ef46154a1a21c6a5ef593e952ebc62f4?d=identicon\u0026s=64",
      "cl": "315757@main",
      "clUrl": "https://commits.webkit.org/315757@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317955\nrdar://180746671\n\nReviewed by David Kilzer.\n\nAdd an optional flag to build-and-analyze to allow consumers\nto opt-in to enabling the -fexperimental-late-parse-attributes\nxcodebuild flag.\n\nRe-land of https://commits.webkit.org/315757@main\nexcept without the double-quotes surrounding the\n-Xcc -fexperimental-late-parse-attributes flags.\n\nAlso add plumbing to Makefile.shared to pass along\nOTHER_SWIFT_FLAGS from make to the compiler (mirrors OTHER_CFLAGS).\n\n* Makefile.shared:\n* Tools/Scripts/build-and-analyze:\n(main):\n(parse_args):\n\nCanonical link: https://commits.webkit.org/315923@main",
      "email": "a_tarbinian@apple.com",
      "hash": "045dc49fbd71f2f01247cf19f42a1b2f8e0dbb8d",
      "subject": "build-and-analyze: Add option to enable -fexperimental-late-parse-attributes"
    },
    "315849@main": {
      "author": "Tadeu Zagallo",
      "avatar": "https://www.gravatar.com/avatar/d517fd5480efde083cc7b6af36c73ced?d=identicon\u0026s=64",
      "cl": "315849@main",
      "clUrl": "https://commits.webkit.org/315849@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317757\nrdar://180530543\n\nReviewed by Mike Wyrzykowski.\n\nThe zero initialization of structs wasn't zeroing the padding bytes.\n\n* LayoutTests/http/tests/webgpu/webgpu/shader/execution/memory_layout-expected.txt:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n* Source/WebGPU/WGSL/GlobalVariableRewriter.cpp:\n(WGSL::RewriteGlobalVariables::storeInitialValue):\n* Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp:\n(WGSL::Metal::FunctionDefinitionWriter::emitNecessaryHelpers):\n(WGSL::Metal::FunctionDefinitionWriter::visit):\n* Source/WebGPU/WGSL/WGSLShaderModule.h:\n(WGSL::ShaderModule::usesZeroWorkgroupVar const):\n(WGSL::ShaderModule::setUsesZeroWorkgroupVar):\n\nCanonical link: https://commits.webkit.org/315849@main",
      "email": "tzagallo@apple.com",
      "hash": "72e6208115789ac22f8455f19f92c367fa5eeb93",
      "subject": "[WebGPU] shader,execution,memory_layout:* is failing"
    },
    "315850@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "315850@main",
      "clUrl": "https://commits.webkit.org/315850@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317214\nrdar://179836788\n\nUnreviewed test fix.\n\nMediaRemote is a private framework, so it needs the private soft-linking\nmacro.\n\n* TestExpectations/apitests:\n* Tools/TestWebKitAPI/Helpers/cocoa/MediaRemoteSoftLink.mm:\n\nCanonical link: https://commits.webkit.org/315850@main",
      "email": "emw@apple.com",
      "hash": "741027c10617a91b7b733ba0bd178afa2113966a",
      "subject": "REGRESSION(315252@main): [macOS] TestWebKitAPI.NowPlaying tests are constant crash"
    },
    "315851@main": {
      "author": "Abrar Rahman Protyasha",
      "avatar": "https://www.gravatar.com/avatar/fce5b3c4e9f3c59a4873e08c9f03c3b1?d=identicon\u0026s=64",
      "cl": "315851@main",
      "clUrl": "https://commits.webkit.org/315851@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317880\nrdar://180662875\n\nReviewed by Pascoe, Sammy Gill, and Alex Christensen.\n\nThe CMake macOS 27 port does not currently build many Swift files, one\nof which is WKWebView+RefreshControl.swift. As such, AppKit thinks\nWKWebView does not have conformance to NSRefreshControlHosting, and as\nsuch throws an exception during WK2BrowserWindowController launch.\n\nIn this patch, we work around the exception by gating the refresh\ncontrol install on the web view behind a protocol conformance check.\n\n* Tools/MiniBrowser/mac/WK2BrowserWindowController.m:\n(-[WK2BrowserWindowController awakeFromNib]):\n\nCanonical link: https://commits.webkit.org/315851@main",
      "email": "a_protyasha@apple.com",
      "hash": "425dd892bc84f29c6601f82f32ace002df93e1ae",
      "subject": "REGRESSION(315650@main): Broke MiniBrowser WK2 window in CMake macOS 27 port (no NSRefreshControlHosting conformance found)"
    },
    "315852@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "315852@main",
      "clUrl": "https://commits.webkit.org/315852@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317882\nrdar://180663959\n\nUnreviewed test gardening\n\n* LayoutTests/platform/ios/TestExpectations:\n\nCanonical link: https://commits.webkit.org/315852@main",
      "email": "darbinyan@apple.com",
      "hash": "b6d63aa8509c1c14b6819e1d3a9881dd5ab572e3",
      "subject": "[Gardening]: [iOS] Multiple wpt tests are flaky in text diff"
    },
    "315853@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "315853@main",
      "clUrl": "https://commits.webkit.org/315853@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317878\nrdar://180661557\n\nReviewed by Abrar Rahman Protyasha and Pascoe.\n\n* Source/WebCore/PAL/pal/crypto/CryptoKit+UnsafeOverlays.swift:\n(Data.temporaryDataFromSpan(_:)):\n(CryptoKit.update(_:)):\n(Curve25519.signature(_:)):\n(Curve25519.isValidSignature(_:data:)):\n(Curve25519.sharedSecretFromKeyAgreement(_:)):\n\nCanonical link: https://commits.webkit.org/315853@main",
      "email": "richard_robinson2@apple.com",
      "hash": "338840b5d11cbd20ef7bb82a538997c0bfe1575f",
      "subject": "[Swift in WebKit] Remove some `unsafe`s that aren't needed anymore"
    },
    "315854@main": {
      "author": "Qianlang Chen",
      "avatar": "https://www.gravatar.com/avatar/0fd54e904334f604739d0205aa6e2130?d=identicon\u0026s=64",
      "cl": "315854@main",
      "clUrl": "https://commits.webkit.org/315854@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317875\n\nReviewed by Geoffrey Garen.\n\nThe cmake-generated ccache-launcher sets CCACHE_BASEDIR and\nCCACHE_NOHASHDIR=true to share object-file cache entries across\ncheckouts. This also makes the PCH cache key identical across checkouts.\nUnlike regular object files, binary PCHs have absolute source paths\nembedded in the clang AST that ccache cannot rewrite on retrieval, so a\nPCH from checkout A gets served to checkout B verbatim, causing the ObjC\ndeclarations to appear twice and triggering the redefinition errors.\n\nBypass ccache when the compiler is invoked with -emit-pch. PCHs are\ncompiled infrequently, so the performance impact should be minimal.\n\nNo new tests: build system changes only.\n\n* Source/cmake/WebKitCCache.cmake:\n\nCanonical link: https://commits.webkit.org/315854@main",
      "email": "qianlangchen@apple.com",
      "hash": "e4b1a3ecdf51f26bc0b194212dcbe35e7e1d2e9c",
      "subject": "[CMake] Build fails with ObjC type redefinition errors with multiple WebKit checkouts"
    },
    "315855@main": {
      "author": "Jessica Lee",
      "avatar": "https://www.gravatar.com/avatar/fc717c99321d09f31fb9187418a8ffc5?d=identicon\u0026s=64",
      "cl": "315855@main",
      "clUrl": "https://commits.webkit.org/315855@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317805\nrdar://180575315\n\nReviewed by Basuke Suzuki.\n\nThere is a possibility that this-\u003ewindow() could be null when\nNavigation::hasEntriesAndEventsDisabled(). Add a null-check.\n\nNo new tests needed.\n\n* Source/WebCore/page/Navigation.cpp:\n(WebCore::Navigation::hasEntriesAndEventsDisabled const):\n\nCanonical link: https://commits.webkit.org/315855@main",
      "email": "jlee53@apple.com",
      "hash": "e505d4781740dc262c03f8bf277115fb3954e2ec",
      "subject": "Null-check window in Navigation::hasEntriesAndEventsDisabled()"
    },
    "315856@main": {
      "author": "Brady Eidson",
      "avatar": "https://www.gravatar.com/avatar/31bed81d6d8ef517f93b30add03f5651?d=identicon\u0026s=64",
      "cl": "315856@main",
      "clUrl": "https://commits.webkit.org/315856@main",
      "description": "rdar://180635166\nhttps://bugs.webkit.org/show_bug.cgi?id=317872\n\nReviewed by Alex Christensen.\n\nIn IPC hardening, we prevented app-provided NSURLRequest properties from serializing.\nSetting such properties is well established and supported API, so let's restore it.\n\nIn the spirit of the original hardening, we still prevent app-provided properties from\noverriding keys that are likely to be Apple internally used.\n\nThese properties are for setting small bits of metadata, and not moving blobs around.\nSo we also restrict the value types to simple ones, as well as the size of the values\n\nTests: Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm\n       Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKURLSchemeHandler-1.mm\n\n* Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in:\n* Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.h:\n* Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.mm:\n(WebKit::isReservedProtocolPropertyKeyPrefix):\n(WebKit::isTypedAllowlistKey):\n(WebKit::populateAppProperties):\n(WebKit::CoreIPCNSURLRequest::CoreIPCNSURLRequest):\n(WebKit::CoreIPCNSURLRequest::toID const):\n* Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.serialization.in:\n* Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm:\n(TEST(IPCSerialization, NSURLRequestArbitraryAppProperties)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKURLSchemeHandler-1.mm:\n(TEST(URLSchemeHandler, RequestProtocolPropertyPreserved)):\n\nCanonical link: https://commits.webkit.org/315856@main",
      "email": "beidson@apple.com",
      "hash": "9e19f52c9a059de81e3d8cdd039e38772f955c8f",
      "subject": "App-provided NSURLRequest properties are lost"
    },
    "315857@main": {
      "author": "Sam Sneddon",
      "avatar": "https://www.gravatar.com/avatar/99f6b56d9db9d32920dfcc56deae86fc?d=identicon\u0026s=64",
      "cl": "315857@main",
      "clUrl": "https://commits.webkit.org/315857@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317871\n\nReviewed by Elliott Williams.\n\nPatterns using ** passed to run-webkit-tests silently matched nothing\nbelow the top level of LayoutTests because LayoutTestFinder.get_tests()\ndid not pass recursive=True when expanding the directory portion of glob\npatterns via fs.glob().\n\n* Tools/Scripts/webkitpy/common/system/filesystem.py:\n(FileSystem.glob):\n* Tools/Scripts/webkitpy/common/system/filesystem_mock.py:\n(MockFileSystem.glob):\n* Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:\n(GenericFileSystemTests.setup_generic_test_dir):\n(GenericFileSystemTests.test_glob__double_star_recursive):\n(GenericFileSystemTests.test_glob__double_star_default_non_recursive):\n* Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:\n(LayoutTestFinder.get_tests):\n* Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder_unittest.py:\n(LayoutTestFinderTests.test_get_tests__double_star_glob):\n\nCanonical link: https://commits.webkit.org/315857@main",
      "email": "gsnedders@apple.com",
      "hash": "ae0d4f1fea8977763cd51f6b63d0d5cc4be18587",
      "subject": "run-webkit-tests should support recursive globs"
    },
    "315858@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "315858@main",
      "clUrl": "https://commits.webkit.org/315858@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317857\nrdar://180635604\n\nReviewed by Sihui Liu.\n\nWebBackForwardListFrameItem registers itself in the process-wide allItems()\nmap at construction under the key {m_frameState-\u003eframeItemID,\nm_frameState-\u003eitemID}; the destructor reads the same key to assert\nidentity and remove the entry. The constructor overrides\nm_frameState-\u003eitemID with the owning WebBackForwardListItem's identifier\n(the UIProcess-authoritative value), so the registration key is stable\nfor the FrameItem's lifetime as long as those two FrameState fields are\nnot later mutated.\n\nsetFrameState was implemented as a wholesale replacement of m_frameState\nwith an incoming FrameState regenerated by the WebProcess from its own\nHistoryItem. The WebProcess iframe HistoryItem carries process-local\nidentifiers, and its m_itemID does not necessarily match the\nWebBackForwardListItem identifier of the UIProcess BF list entry that\nowns this child FrameItem (the same iframe HistoryItem can be referenced\nacross multiple BF list entries with distinct itemIDs UIProcess-side).\nLetting the wholesale replace through clobbered the registered identity;\nthe destructor's allItems() lookup then returned null or a different\npointer and the assertion at line 58 fired:\n\n  ASSERTION FAILED: allItems().get({ *m_frameState-\u003eframeItemID, *m_frameState-\u003eitemID }) == this\n  Source/WebKit/Shared/WebBackForwardListFrameItem.cpp(58) : WebKit::WebBackForwardListFrameItem::~WebBackForwardListFrameItem()\n\nwith the cascade rooted at WebBackForwardList::addItem forward-list\neviction.\n\nStop swapping the whole FrameState. Add FrameState::replacePayloadFrom,\nwhich moves every payload field (URL, sequence numbers, scroll, title,\ndocumentState, etc.) from the source onto the destination but leaves\nframeItemID, itemID, and children alone — the identity fields are fixed\nat construction by the surrounding WebBackForwardListFrameItem, and\nchildren is maintained in parallel on WebBackForwardListFrameItem::m_children.\nWebBackForwardListFrameItem::setFrameState is renamed to\nupdateFrameStatePayload to reflect the partial-update semantics and is a\none-liner that delegates to replacePayloadFrom. The children.clear()\nthat used to undo the wholesale swap is no longer needed.\n\nCovered by existing site-isolation tests; the EWS macOS Debug flake at\nhttp/tests/site-isolation/frame-index.html previously reported as this\nassertion stops firing with this change.\n\n* Source/WebKit/Shared/SessionState.h:\n(WebKit::FrameState::replacePayloadFrom):\n* Source/WebKit/Shared/SessionState.cpp:\n(WebKit::FrameState::replacePayloadFrom):\n* Source/WebKit/Shared/WebBackForwardListFrameItem.h:\n* Source/WebKit/Shared/WebBackForwardListFrameItem.cpp:\n(WebKit::WebBackForwardListFrameItem::updateFrameStatePayload):\n(WebKit::WebBackForwardListFrameItem::setFrameState): Deleted.\n* Source/WebKit/UIProcess/WebBackForwardList.cpp:\n(WebKit::WebBackForwardList::backForwardUpdateItem):\n(WebKit::WebBackForwardList::replaceFrameStateForChild):\n* Source/WebKit/UIProcess/WebBackForwardList.swift:\n\nCanonical link: https://commits.webkit.org/315858@main",
      "email": "basuke@apple.com",
      "hash": "70105ea38f3a66d38594250c3d5016c29976ccc5",
      "subject": "[Site Isolation] Replace FrameState payload in place instead of swapping the whole struct"
    },
    "315859@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "315859@main",
      "clUrl": "https://commits.webkit.org/315859@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317891\nrdar://180668717\n\nUnreviewed test gardening\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/315859@main",
      "email": "darbinyan@apple.com",
      "hash": "74d00a8fcf185b59471838d3ab8de883b9bc1fc2",
      "subject": "[Gardening]: [iOS] TestWebKitAPI.WebAuthenticationPanel.GetAssertionPinProtocol2 is a flaky timeout"
    },
    "315860@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "315860@main",
      "clUrl": "https://commits.webkit.org/315860@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317812\nrdar://180510568\n\nReviewed by Per Arne Vollan.\n\nNavigationActionData carries two ResourceRequests, `originalRequest` and `request`,\neach of which is decoded on the UIProcess main thread when handling\nDecidePolicyForNavigationAction. Decoding a ResourceRequest re-parses its URL (via\nResourceRequest::doUpdateResourceRequest), so for a top-level navigation with no\nredirect — where `originalRequest` equals `request` — the same URL is serialized and\nparsed twice.\n\nGiven that the URL decoding is happening on the main thread of the UIProcess\nand that we see some hangs in this code path, this cuts the amount of work\nby half in the common case.\n\n* Source/WebKit/Shared/NavigationActionData.h:\n(WebKit::NavigationActionData::originalRequestOrFallback const):\n* Source/WebKit/Shared/NavigationActionData.serialization.in:\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::decidePolicyForNavigationAction):\n* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:\n(WebKit::WebFrameLoaderClient::navigationActionData const):\n\nCanonical link: https://commits.webkit.org/315860@main",
      "email": "cdumez@apple.com",
      "hash": "e778f1ba5d72ff38eeeae8021cee33fe751f8043",
      "subject": "Avoid serializing and re-parsing the navigation URL twice in NavigationActionData"
    },
    "315861@main": {
      "author": "Andy Estes",
      "avatar": "https://www.gravatar.com/avatar/643f10f01b26fd94d03482a2013b2ea0?d=identicon\u0026s=64",
      "cl": "315861@main",
      "clUrl": "https://commits.webkit.org/315861@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317895\nrdar://180673836\n\nReviewed by Jer Noble.\n\nAdopted the approach used in inline-media-controls and vision-media-controls to ensure that\nplacards remain visible even if other controls are hidden.\n\n* Source/WebCore/Modules/modern-media-controls/controls/tvos-media-controls.js:\n(TVOSMediaControls.prototype.layout):\n(TVOSMediaControls.prototype.commitProperty):\n\nCanonical link: https://commits.webkit.org/315861@main",
      "email": "aestes@apple.com",
      "hash": "41021df5293d8ea797499791db0f9237f766b68f",
      "subject": "[tvOS] Placards are incorrectly hidden when built-in media controls are not visible"
    },
    "315862@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/6f92b711483096db0247c16946fb3f29?d=identicon\u0026s=64",
      "cl": "315862@main",
      "clUrl": "https://commits.webkit.org/315862@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317682\nrdar://180443276\n\nReviewed by Simon Fraser.\n\nAdds stubs for BorderShape.cpp to use for corner-shape and wires header file into WebCore\n\nPasses existing tests\n\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/platform/graphics/CornerShapeUtilities.cpp: Added.\n(WebCore::borderContourPath):\n(WebCore::oppositeCornerScaleFactor):\n* Source/WebCore/platform/graphics/CornerShapeUtilities.h: Added.\n\nCanonical link: https://commits.webkit.org/315862@main",
      "email": "173393835+codedbycupidity@users.noreply.github.com",
      "hash": "8a38acaf9c591c81b54617ad73f8c57d4206c106",
      "subject": "Add CornerShapeUtilities with stubs"
    },
    "315863@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "315863@main",
      "clUrl": "https://commits.webkit.org/315863@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317800\nrdar://180569290\n\nReviewed by Sihui Liu.\n\n315609@main added an IndexedDB suspension notification to\nWebProcessProxy::didChangeThrottleState(). It guards against a missing\ndata store with `if (RefPtr dataStore = websiteDataStore())`, but\nwebsiteDataStore() is the asserting accessor (it does\nASSERT(m_websiteDataStore)), so in debug builds the assertion fires\nbefore the null check can take effect.\n\nA WebProcessProxy can legitimately have no data store: prewarmed\nprocesses, processes not yet assigned a store, and freshly relaunched\nprocesses all start with m_websiteDataStore null. When a pending\nPrepareToSuspend reply drives didChangeThrottleState() before a store is\nassigned, the assertion is hit. This reproduces in\nTestWebKitAPI.WKNavigation.PreferredHTTPSPolicyAutomaticHTTPFallbackAfterTerminateProcess,\nwhich terminates and relaunches the web process.\n\nRead the m_websiteDataStore member directly instead of the asserting\naccessor, matching the other null-tolerant call sites in this file.\nRelease-build behavior is unchanged.\n\nNo new tests, covered by WKNavigation.PreferredHTTPSPolicyAutomaticHTTPFallbackAfterTerminateProcess.\n\n* Source/WebKit/UIProcess/WebProcessProxy.cpp:\n(WebKit::WebProcessProxy::didChangeThrottleState):\n\nCanonical link: https://commits.webkit.org/315863@main",
      "email": "cdumez@apple.com",
      "hash": "3407db2049eda9c220e3d6dfc00d30347bf85fff",
      "subject": "REGRESSION(315609@main) [iOS] TestWebKitAPI.WKNavigation.PreferredHTTPSPolicyAutomaticHTTPFallbackAfterTerminateProcess"
    },
    "315864@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "315864@main",
      "clUrl": "https://commits.webkit.org/315864@main",
      "description": "rdar://180346543\nhttps://bugs.webkit.org/show_bug.cgi?id=317765\n\nReviewed by Sam Sneddon and Elliott Williams.\n\nFixed by wrapping the top-level `parsed.main()` call in a try/except that\ncatches all unhandled exceptions, scrubs `login=` and `password=` query\nparameters from the full traceback string via regex, and prints the\nsanitized traceback to `stderr`.\n\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py:\nWrap `parsed.main()` in a try/except, redacting credentials from the\ntraceback before printing to stderr.\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:\n(TestDoPullRequest.test_redacts_credentials_in_traceback): Added.\n\nCanonical link: https://commits.webkit.org/315864@main",
      "email": "issacroy05@gmail.com",
      "hash": "3dd07fee85869b16f635ec53e3ff6f23d88e5941",
      "subject": "`git-webkit pr` may leak username/password as plain text in stdout if certain Bugzilla requests time out"
    },
    "315865@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "315865@main",
      "clUrl": "https://commits.webkit.org/315865@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317883\nrdar://180664307\n\nReviewed by Abrar Rahman Protyasha.\n\nJust like 315833@main, but for PAL\n\n* Source/WebCore/PAL/Configurations/PAL.xcconfig:\n* Source/WebCore/PAL/pal/crypto/CryptoKitShim.swift:\n(Digest.sha1Init):\n(Digest.sha256Init):\n(Digest.sha384Init):\n(Digest.sha512Init):\n(Digest.update(_:)):\n(Digest.finalize):\n(Digest.sha1(_:)):\n(Digest.sha256(_:)):\n(Digest.sha384(_:)):\n(Digest.sha512(_:)):\n(ECKey.toPub):\n(ECKey.importX963Pub(_:curve:)):\n(ECKey.exportX963Pub):\n(ECKey.importCompressedPub(_:curve:)):\n(ECKey.importX963Private(_:curve:)):\n(ECKey.exportX963Private):\n(ECKey.deriveBits(_:)):\n(EdKey.generatePrivateKey(_:)):\n(EdKey.generatePrivateKeyKeyAgreement(_:)):\n\nCanonical link: https://commits.webkit.org/315865@main",
      "email": "richard_robinson2@apple.com",
      "hash": "61143404bf4cf938e8e4933fedd8994f56d7a590",
      "subject": "[Swift in WebKit] Adopt the `-clang-header-expose-decls=has-expose-attr-or-stdlib` compiler flag in PAL"
    },
    "315866@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "315866@main",
      "clUrl": "https://commits.webkit.org/315866@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317626\n\nReviewed by Yusuke Suzuki.\n\n`/(.)\\1/u.exec(\"a\\u{10000}\\u{10000}b\")` returns null on ARM64 with the\nYarr JIT, while the interpreter (and other engines) correctly return a\nmatch at index 1.\n\nWhen matchBackreference() reads a non-BMP character via readCharacter(),\ntryReadUnicodeCharImpl\u003cUseOptimization\u003e writes 1 into\nfirstCharacterAdditionalReadSize. That register is meant to record\nwhether the *first* character of the current attempt was non-BMP, so the\nre-entry path can advance index by 2 instead of 1. A backreference read\nis not the first character, so this clobbers the register and causes the\nre-entry path to skip index 1 (the actual match start).\n\n315250@main fixed the same issue for word-boundary assertions by\ndisabling m_useFirstNonBMPCharacterOptimization for the duration of the\nread. Apply the same SetForScope guard in matchBackreference().\n\nTest: JSTests/stress/regexp-backreference-with-surrogate.js\n\n* JSTests/stress/regexp-backreference-with-surrogate.js: Added.\n(shouldBe):\n* Source/JavaScriptCore/yarr/YarrJIT.cpp:\n\nCanonical link: https://commits.webkit.org/315866@main",
      "email": "sosuke@bun.sh",
      "hash": "afa9625807934c87738004032440cd1bc530c9dd",
      "subject": "[YARR] JIT backreference with non-BMP character skips next match start position"
    },
    "315867@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "315867@main",
      "clUrl": "https://commits.webkit.org/315867@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317733\n\nReviewed by Yusuke Suzuki.\n\nWhen the subject of for-of / for-await-of / array destructuring / yield* /\narray spread is a constant or other node that does not itself emit expression\ninfo (e.g. a null or undefined literal), the get_by_id for [Symbol.iterator]\n(or the OpSpread) inherited the previous statement's expression range. The\nresulting TypeError was attributed to the wrong line and the \"evaluating '...'\"\ntext quoted the previous statement.\n\n    print(\"here\");\n    for (const b of null) {}\n    // TypeError: null is not an object (evaluating 'print(\"here\")')\n    //     at test.js:1:6\n\nEmit expression info from the enclosing ThrowableExpressionData before each of\nthese ops so the throw is attributed to the iterating construct itself,\nmatching what emitIteratorOpen / emitIteratorNext already do.\n\n    // TypeError: null is not an object (evaluating 'b of null')\n    //     at test.js:2:14\n\nTest: JSTests/stress/iterator-open-expression-info.js\n\n* JSTests/stress/catch-rest-parameter.js:\n(async let):\n(shouldThrow.async f):\n(shouldThrow.f):\n* JSTests/stress/iterator-error-messages-consistent.js:\n* JSTests/stress/iterator-open-expression-info.js: Added.\n(shouldBe):\n(await):\n* LayoutTests/js/arguments-iterator-expected.txt:\n* Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:\n(JSC::BytecodeGenerator::emitNewArrayWithSpread):\n(JSC::BytecodeGenerator::emitCall):\n(JSC::BytecodeGenerator::emitConstructImpl):\n(JSC::BytecodeGenerator::emitEnumeration):\n(JSC::BytecodeGenerator::emitGetGenericIterator):\n(JSC::BytecodeGenerator::emitGetAsyncIterator):\n* Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:\n(JSC::ArrayPatternNode::bindValue const):\n\nCanonical link: https://commits.webkit.org/315867@main",
      "email": "sosuke@bun.sh",
      "hash": "970dcc8db7e57aeade0101a0d9b0996e2ec4190c",
      "subject": "[JSC] Emit expression info before `[Symbol.iterator]` get and spread"
    },
    "315868@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "315868@main",
      "clUrl": "https://commits.webkit.org/315868@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317877\nrdar://180661221\n\nReviewed by Yusuke Suzuki.\n\nExtract the relativeTo endpoint computation (AddZonedDateTime,\nAddTime + CalendarDateAdd) into computeZonedRelativeEndpoints\nand computePlainRelativeTarget, and lift the inline blocks for\nDifferenceZonedDateTimeWithTotal / DifferencePlainDateTimeWithTotal\ninto file-static functions named after their spec abstract ops.\nDuration.prototype.round and Duration.prototype.total had parallel\nimplementations of the zoned and plain relativeTo paths; they now\nshare one code path and each call site labels its spec steps in\nplace.\n\nMove toInternalDurationRecordWith24HourDays and the InternalDuration\noverload of round to private — both are only used internally. Drop\nTemporalDuration::regulateISODate; its only external callers\n(PlainMonthDay/PlainYearMonth.prototype.toPlainDate) now call\n\nTemporalCore::regulateISODate directly.\nCanonical link: https://commits.webkit.org/315868@main",
      "email": "yijia_huang@apple.com",
      "hash": "002eefd45836878954c4e246011e83e85c10ee23",
      "subject": "[JSC][Temporal] Polish Temporal.Duration round and total spec alignment"
    },
    "315869@main": {
      "author": "Jer Noble",
      "avatar": "https://www.gravatar.com/avatar/6d2cde9be23b98223ca964cb3b7813a0?d=identicon\u0026s=64",
      "cl": "315869@main",
      "clUrl": "https://commits.webkit.org/315869@main",
      "description": "rdar://180378045\nhttps://bugs.webkit.org/show_bug.cgi?id=317770\n\nReviewed by Jean-Yves Avenard.\n\nWhen splitting a sample during a remove() operation, it's possible to have the start time for the removal range\nto advance such that it becomes \u003e= the end time, which causes subsequent range iterations to walk off the end of\nthe SampleMap and hit a null dereference when incrementing the end() iterator. Protect against this by adding an\nadditional order validation step before iterating over the discovered range. Because this same pattern exists in\nTrackBuffer::codedFramesIntervalSize(...) as well, perform the same validation there.\n\nTest: media/media-source/media-source-remove-divisible-sample-overlap.html\n\n* LayoutTests/media/media-source/media-source-remove-divisible-sample-overlap-expected.txt: Added.\n* LayoutTests/media/media-source/media-source-remove-divisible-sample-overlap.html: Added.\n* Source/WebCore/platform/graphics/TrackBuffer.cpp:\n(WebCore::TrackBuffer::removeCodedFrames):\n(WebCore::TrackBuffer::codedFramesIntervalSize):\n\nCanonical link: https://commits.webkit.org/315869@main",
      "email": "jer.noble@apple.com",
      "hash": "b5b4ce70e1fb3cc097222cd3a13bd9cabe2b9756",
      "subject": "CRASH in TrackBuffer::removeCodedFrames(...)"
    },
    "315870@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "315870@main",
      "clUrl": "https://commits.webkit.org/315870@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317904\nrdar://180688954\n\nReviewed by Zak Ridouh.\n\nUse \"set -e\" so that the Python script error propagates to the bash script.\n\n* Source/WTF/WTF.xcodeproj/project.pbxproj:\n* Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:\n* Source/bmalloc/bmalloc.xcodeproj/project.pbxproj:\n\nCanonical link: https://commits.webkit.org/315870@main",
      "email": "richard_robinson2@apple.com",
      "hash": "4ead349a771f24f30d7191a7f6a3d2732f1bb7af",
      "subject": "The custom library module verifier should exit with a non-zero exit code upon failure"
    },
    "315871@main": {
      "author": "Yoav Weiss",
      "avatar": "https://www.gravatar.com/avatar/228600d5a1cfae576e64ee92e46f6a1e?d=identicon\u0026s=64",
      "cl": "315871@main",
      "clUrl": "https://commits.webkit.org/315871@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317764\n\nReviewed by Anne van Kesteren.\n\nThis is an import of the latest tests and an update of their expectations.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/80b7ba4953eb684552b28bc9a4edfcb097e445fc\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/lint.ignore:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/content-encoding.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/content-encoding.https_pipe=gzip-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/dom-interactive-image-document-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/dom_interactive_image_document-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/dom-interactive-image-document.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/dom_interactive_image_document.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/dom-interactive-media-document-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/dom_interactive_media_document-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/dom-interactive-media-document.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/dom_interactive_media_document.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/idlharness.window-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/idlharness.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported_navigation_type.any.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-data-uri.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-attributes-exist-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_exist-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-attributes-exist.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_exist.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-attributes-values-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_values-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-attributes-values.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_values.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-document-open-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_document_open-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-document-open.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_document_open.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-document-replaced-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-document-replaced.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_document_replaced.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-frame-removed-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_frame_removed-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-frame-removed.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_frame_removed.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-instance-accessible-from-the-start-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_instance_accessible_from_the_start-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-instance-accessible-from-the-start.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_instance_accessible_from_the_start.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-instance-accessors-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_instance_accessors-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-instance-accessors.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_instance_accessors.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigate-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigate_iframe-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigate-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigate_iframe.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigate-within-document-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigate_within_document-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigate-within-document.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigation-type-backforward-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigation-type-backforward.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigation-type-navigate-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigation_type_navigate-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigation-type-navigate.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigation_type_navigate.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigation-type-reload-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-navigation-type-reload.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-chain-xserver-final-original-origin-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_final_original_origin-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-chain-xserver-final-original-origin.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_final_original_origin.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-chain-xserver-partial-opt-in-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-chain-xserver-partial-opt-in.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-none-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_none-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-none.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_none.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-server-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_server-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-server.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_server.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-xserver-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_xserver-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-xserver.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-response-end-and-duration-before-during-and-after-load-event-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_response_end_and_duration_before_during_and_after_load_event-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-response-end-and-duration-before-during-and-after-load-event.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_response_end_and_duration_before_during_and_after_load_event.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-timing-persistent-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-timing-persistent.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-unique-nav-instances-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_unique_nav_instances-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2-test-unique-nav-instances.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_unique_nav_instances.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_document_replaced-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/navigation-type-post-backforward-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/navigation-type-post-backforward.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nested-unload-timing-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nested-unload-timing.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/prefetch-transfer-size-executor-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/prefetch-transfer-size-executor.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/prefetch-transfer-size-iframe-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/prefetch-transfer-size-iframe.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/redirect-tao-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/redirect-tao.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank-page-green-with-onunload.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank_page_green_with_onunload.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank-page-green.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank_page_green.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank-page-meta-redirect.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank_page_meta_redirect.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank-page-unload.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank_page_unload.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank-page-yellow-with-onunload.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank_page_yellow_with_onunload.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank-page-yellow.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank_page_yellow.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank_page_prefetch.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/blank_page_prefetch.html.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/coop-response-start.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/coop-response-start.html.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/iframe-prefetch-transfer-size.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/navigation-type-post-back.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/navigation_type_post_back.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/performance-attribute-sender.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/performance_attribute_sender.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/redirect-tao-helper.js: Added.\n(redirect_chain_url):\n(navigation_entry_after_redirects):\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/redirect-tao.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/respond-slowly.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/respond_slowly.py: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/w3c-import.log: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/webperftestharness.js:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/response-start-after-coop-bcg-switch.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/response-start-after-coop-bcg-switch.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/secure-connection-start-non-zero.https-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/secure_connection_start_non_zero.https-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/secure-connection-start-non-zero.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/secure_connection_start_non_zero.https.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported-navigation-type.window-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported_navigation_type.any-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported-navigation-type.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported_navigation_type.any.worker.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported-navigation-type.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported_navigation_type.any.js.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported_navigation_type.any.worker-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/supported_navigation_type.window.js: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-document-onload-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_document_onload-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-document-onload.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_document_onload.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-document-open-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_document_open-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-document-open.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_document_open.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-document-readiness-exist-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_document_readiness_exist-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-document-readiness-exist.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_document_readiness_exist.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigate-within-document-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigate_within_document-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigate-within-document.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigate_within_document.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-attributes-exist-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_attributes_exist-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-attributes-exist.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_attributes_exist.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-redirectCount-none-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_redirectCount_none-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-redirectCount-none.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_redirectCount_none.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-type-backforward-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_type_backforward-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-type-backforward.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_type_backforward.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-type-enums-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_type_enums-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-type-enums.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_type_enums.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-type-reload-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_type_reload-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-navigation-type-reload.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_navigation_type_reload.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-no-previous-document-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_no_previous_document-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-no-previous-document.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_no_previous_document.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-performance-attributes-exist-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_performance_attributes_exist-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-performance-attributes-exist-in-object-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_performance_attributes_exist_in_object-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-performance-attributes-exist-in-object.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_performance_attributes_exist_in_object.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-performance-attributes-exist.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_performance_attributes_exist.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-performance-attributes.sub-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_performance_attributes.sub-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-performance-attributes.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_performance_attributes.sub.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-readwrite-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_readwrite-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-readwrite.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_readwrite.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-attributes-dependent-on-document-load-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-attributes-exist-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_attributes_exist-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-attributes-exist.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_attributes_exist.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-attributes-order-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_attributes_order-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-attributes-order.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_attributes_order.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-client-redirect-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_client_redirect-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-client-redirect.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_client_redirect.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-reload-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_reload-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-reload.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_reload.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-server-redirect-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_server_redirect-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-server-redirect.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_server_redirect.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-xserver-redirect-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_xserver_redirect-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-timing-xserver-redirect.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_timing_xserver_redirect.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-unique-performance-objects-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_unique_performance_objects-expected.txt.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test-unique-performance-objects.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/test_unique_performance_objects.html.\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/unload-event-same-origin-check-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/unload-event-same-origin-check.html:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-timing/w3c-import.log: Added.\n* LayoutTests/platform/glib/imported/w3c/web-platform-tests/navigation-timing/nav2-test-redirect-chain-xserver-final-original-origin-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_final_original_origin-expected.txt.\n* LayoutTests/platform/glib/imported/w3c/web-platform-tests/navigation-timing/navigation-type-post-backforward-expected.txt: Added.\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n* LayoutTests/platform/mac/TestExpectations:\n* LayoutTests/tests-options.json:\n\nCanonical link: https://commits.webkit.org/315871@main",
      "email": "yoav.weiss@shopify.com",
      "hash": "d5ada127c6df74ac0ed57a8a3131fe847cbf2457",
      "subject": "WPT import -  navigation timing tests"
    },
    "315872@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "315872@main",
      "clUrl": "https://commits.webkit.org/315872@main",
      "description": "rdar://179748816\nhttps://bugs.webkit.org/show_bug.cgi?id=317152\n\nReviewed by Megan Gardner and Simon Fraser.\n\nScrollView::viewToContents() and contentsToView() (used by rootViewToContents, which\nis used in a bunch of places including Intersection Observer) needs to know the current\nscroll position of a frame. When Site Isolation is enabled, we didn't synchronize the\nscroll position between processes on scrolling, so it's possible a process thinks a\nremote frame is at the original scroll position, which it's actually halfway scrolled.\n\nFix this by synchronizing the scroll position when it changes using FrameTreeSyncData.\n\nTest: imported/w3c/web-platform-tests/intersection-observer/nested-cross-origin-iframe.sub.html\n\n* LayoutTests/ipc/serialized-type-info.html:\n    - Add instruction to fix missing IPC description issue.\n\n* LayoutTests/platform/ios-site-isolation/TestExpectations:\n* LayoutTests/platform/mac-site-isolation/TestExpectations:\n* Source/WebCore/page/FrameTreeSyncData.in:\n* Source/WebCore/page/LocalFrameView.cpp:\n(WebCore::LocalFrameView::scrollPositionChanged):\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n* Source/WebKit/UIProcess/WebFrameProxy.cpp:\n(WebKit::WebFrameProxy::calculateFrameTreeSyncData const):\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::frameTreeSyncDataChangedInAnotherProcess):\n\nCanonical link: https://commits.webkit.org/315872@main",
      "email": "kiet.ho@apple.com",
      "hash": "e257d805030a0048938dcb35475c7b99cf376ad3",
      "subject": "[Site Isolation] Synchronize scroll position of LocalFrameView to RemoteFrameViews on change"
    },
    "315873@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "315873@main",
      "clUrl": "https://commits.webkit.org/315873@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317906\nrdar://180692182\n\nReviewed by Adrian Taylor.\n\n* Source/WebKit/UIProcess/StdlibExtras.swift:\n(CxxVectorIterator.vec): Deleted.\n(CxxVectorIterator.pos): Deleted.\n(CxxVectorIterator.next): Deleted.\n\nCanonical link: https://commits.webkit.org/315873@main",
      "email": "richard_robinson2@apple.com",
      "hash": "75890f1de6b87ac31886327b0432f8362c84ffac",
      "subject": "[Swift in WebKit] Remove unused `CxxVectorIterator` type"
    },
    "315874@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "315874@main",
      "clUrl": "https://commits.webkit.org/315874@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317841\n\nReviewed by Alejandro G. Castro.\n\nWe disabled it because it regressed MotionMark suits test, but it also\nimproved images test a bit, reduced the GPU and CPU load and fixed\nglitches in android. We'll continue working on improving suits on top of\nDDL instead of disabling it.\n\n* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp:\n(WebCore::SkiaPaintingEngine::isDDLEnabled):\n\nCanonical link: https://commits.webkit.org/315874@main",
      "email": "cgarcia@igalia.com",
      "hash": "3a7a4f74f88b0192ccffc85dddfc2a4b2d57e8b0",
      "subject": "[GTK][WPE] Skia compositor: re-enable DDL by default"
    },
    "315875@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315875@main",
      "clUrl": "https://commits.webkit.org/315875@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317595\nrdar://180314661\n\nReviewed by Brandon Stewart and Tim Nguyen.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/c3004ab316584ab9c04e20653c4848e0ce60a4dd\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/crashtests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/keyboard-snap-interruption-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/keyboard-snap-interruption.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary-viewport-covering.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/overflowing-snap-areas-nested.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/parsing/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/resnap-on-layout-is-immediate-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/resnap-on-layout-is-immediate.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-initial-target/parsing/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-initial-target/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-padding-percentage.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-stop-002-nested.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-stop-002.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-004-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-005-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-006-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-004-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-004.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-005-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-005.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-006-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-006.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-initial-layout/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/common-to-both-axes-supercedes-first-in-tree-order-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/nested-supercedes-common-to-both-axes-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/nested-supercedes-common-to-both-axes.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-inner-target-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-inner-target.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-snap-target-containing-focused-element-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-snap-target-containing-focused-element.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-targeted-element-both-axes-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-targeted-element-both-axes-iframe.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-targeted-element-both-axes.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/resources/common.js:\n(async scrollToAlignedElements):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-style-change-respects-scroll-behavior-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-style-change-respects-scroll-behavior.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-events/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-events/scrollsnapchange/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-events/scrollsnapchanging/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-events/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-into-covering-area.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/support/scroll-target-align-004-iframe.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/unreachable-snap-positions-003-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/unreachable-snap-positions-003.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/unreachable-snap-positions-004-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/unreachable-snap-positions-004.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/unrelated-gesture-scroll-during-snap.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/w3c-import.log:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-scroll-snap/input/keyboard-snap-interruption-expected.txt: Added.\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-scroll-snap/input/keyboard-snap-interruption-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/315875@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "61d2d64efb7a5f730235eb3b81601d99373bf5b2",
      "subject": "Resync `css-scroll-snap` from WPT Upstream"
    },
    "315876@main": {
      "author": "Tim Horton",
      "avatar": "https://www.gravatar.com/avatar/a04261df168177f0d816f3c7276f6183?d=identicon\u0026s=64",
      "cl": "315876@main",
      "clUrl": "https://commits.webkit.org/315876@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317908\nrdar://180240279\n\nReviewed by Abrar Rahman Protyasha.\n\n* Source/WebCore/page/LocalFrameView.cpp:\n(WebCore::LocalFrameView::textFragmentIndicatorTimerFired):\nKeep a local copy of m_pendingTextFragmentIndicatorRange when calling into\nplainText(), because plainText() does layout, which can in turn result in\nm_pendingTextFragmentIndicatorRange being reset, subsequently causing a null deref.\n\nCanonical link: https://commits.webkit.org/315876@main",
      "email": "thorton@apple.com",
      "hash": "3ca64a2480faae34c7cea448cdece5f91b320f38",
      "subject": "Rare null derefs under LocalFrameView::textFragmentIndicatorTimerFired()"
    },
    "315877@main": {
      "author": "Sergio Villar Senin",
      "avatar": "https://www.gravatar.com/avatar/2d83fda649cd4acc99663f5ce5aaedee?d=identicon\u0026s=64",
      "cl": "315877@main",
      "clUrl": "https://commits.webkit.org/315877@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317911\n\nReviewed by Dan Glastonbury.\n\nUse downcast\u003c\u003e instead of static_cast\u003c\u003e as recommended by the safer cpp\nguidelines[1] as it validates the type at runtime.\n\nNo new tests required.\n\n[1] https://github.com/WebKit/WebKit/wiki/Safer-CPP-Guidelines#use-downcast-when-casting-to-a-subclass-type\n\n* Source/WebCore/Modules/webxr/XRLayerBacking.h:\n(WebCore::XRLayerBacking::isWebGLBacking const):\n* Source/WebCore/Modules/webxr/XRWebGLBinding.cpp:\n(WebCore::XRWebGLBinding::allocateColorTexturesForLayer):\n(WebCore::XRWebGLBinding::allocateDepthTexturesForLayer):\n(WebCore::XRWebGLBinding::allocateColorTexturesForProjectionLayer):\n(WebCore::XRWebGLBinding::allocateDepthTexturesForProjectionLayer):\n* Source/WebCore/Modules/webxr/XRWebGLLayerBacking.h:\n(isType):\n\nCanonical link: https://commits.webkit.org/315877@main",
      "email": "svillar@igalia.com",
      "hash": "34b6dd893e5eaf874599683d8fe1947125400f24",
      "subject": "[SaferCPP][WebXR] Use safer downcasts for WebGL layer backings"
    },
    "315878@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315878@main",
      "clUrl": "https://commits.webkit.org/315878@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317813\nrdar://180583975\n\nReviewed by Rob Buis.\n\nUse static NeverDestroyed\u003c\u003e, the idiomatic WebCore pattern for a\nnever-destroyed singleton throughout other code.\n\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResource.cpp:\n(WebCore::LegacyRenderSVGResource::sharedSolidPaintingResource):\n\nCanonical link: https://commits.webkit.org/315878@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "a4afba02ece1f62069e2345621d347817070995d",
      "subject": "[LegacySVG] Use NeverDestroyed for the shared solid painting resource singleton"
    },
    "315879@main": {
      "author": "Sergio Villar Senin",
      "avatar": "https://www.gravatar.com/avatar/2d83fda649cd4acc99663f5ce5aaedee?d=identicon\u0026s=64",
      "cl": "315879@main",
      "clUrl": "https://commits.webkit.org/315879@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317909\n\nReviewed by Adrian Perez de Castro.\n\nAs explained https://docs.webkit.org/Other/Licensing.html new code\nshould use the BSD license, LGPL is mainly for legacy KHTML code.\nSomehow we used the LGPL by mistake when creating these files. Igalia is\nthe copyright holder so explicitly granting permission for this change.\n\n* Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.cpp:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.h:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRHitTestManager.cpp:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRHitTestManager.h:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRInput.cpp:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRInput.h:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRInputMappings.h:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.cpp:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.h:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.cpp:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.h:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRSwapchain.cpp:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRSwapchain.h:\n* Source/WebKit/UIProcess/XR/openxr/OpenXRUtils.h:\n* Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp:\n* Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.h:\n\nCanonical link: https://commits.webkit.org/315879@main",
      "email": "svillar@igalia.com",
      "hash": "f56a286b4235752036e93f84425b6078125b28c2",
      "subject": "[OpenXR] Code using LGPL instead of WebKit's BSD license"
    },
    "315880@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315880@main",
      "clUrl": "https://commits.webkit.org/315880@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317481\nrdar://180108825\n\nReviewed by Simon Fraser.\n\nWhen several snap areas resolve to the same snap offset (an aligned \"tie\"), the\nre-snap performed after a layout change must follow the highest-priority box per\nhttps://drafts.csswg.org/css-scroll-snap-1/#re-snap: a focused box, then a\nfragment-targeted (:target) box, then the box first in tree order.\n\nWebCore only tracked focused boxes, and only re-chose a target when the tie\ncollapsed to a single box. So a fragment-targeted box was never preferred, and\nwhen nothing was focused the choice fell back to an arbitrary hash-set order.\n\nTrack the document's fragment-targeted element through the snap-offset pipeline,\nmirroring the existing focused-element handling:\n\n- Add SnapOffset::isTarget, populated from Document::cssTarget(), and serialize\n  it so the async scrolling tree observes it as well.\n- Accumulate isFocused/isTarget across every area that shares an offset (not\n  just the first one added), and point the offset's snapTargetID at the\n  highest-priority box (focused, then targeted, then first added) so re-snapping\n  resolves to it.\n- During re-snap, when the scroller was snapped to multiple aligned boxes, follow\n  a focused or targeted box to its post-layout offset even if other boxes remain\n  aligned at the old offset. With no such explicit preference, behavior is\n  unchanged: a target is only re-chosen once the tie collapses to a single box.\n\n* LayoutTests/platform/mac/TestExpectations: Unskip now passing test\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-targeted-element-expected.txt: Progressions\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-targeted-element-main-frame-expected.txt: Ditto\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-targeted-element-positioned-expected.txt: Ditto\n* Source/WebCore/page/LocalFrameView.cpp:\n(WebCore::LocalFrameView::updateSnapOffsets): Pass the fragment-targeted element\n* Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:\n(WebCore::updateSnapOffsetsForScrollableArea): Accept the targeted element;\naccumulate isFocused/isTarget and choose the representative snapTargetID,\npreferring focused over targeted over the first box in tree order.\n(WebCore::convertOffsetInfo):\n* Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.h:\n(WebCore::operator\u003c\u003c):\n* Source/WebCore/platform/ScrollSnapAnimatorState.cpp:\n(WebCore::ScrollSnapAnimatorState::preserveCurrentTargetForAxis):\n(WebCore::preferredSnapTarget): Return the focused-then-targeted box, if any.\n(WebCore::chooseBoxToResnapTo): Use preferredSnapTarget before the fallback.\n(WebCore::ScrollSnapAnimatorState::resnapAfterLayout): Follow a preferred box\neven while peers remain aligned.\n* Source/WebCore/rendering/RenderLayerScrollableArea.cpp:\n(WebCore::RenderLayerScrollableArea::updateSnapOffsets): Pass the fragment-targeted element.\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n\nCanonical link: https://commits.webkit.org/315880@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "689b91ff1913069d73cf1700b733c14e41e05c25",
      "subject": "[CSS Scroll Snap] Re-snap does not prefer the focused or fragment-targeted snap area among multiple aligned snap targets"
    },
    "315881@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "315881@main",
      "clUrl": "https://commits.webkit.org/315881@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317835\nrdar://180609461\n\nReviewed by Eric Carlson.\n\nVP9 codec isn't available on iOS simulator, we make the preference SWVPDecodersAlwaysEnabled\ntrue by default on simulator.\n\nCovered by existing tests.\n\n* LayoutTests/media/media-video-fullrange-offscreen.html:\n* LayoutTests/media/media-video-fullrange.html:\n* LayoutTests/media/media-video-videorange-offscreen.html:\n* LayoutTests/media/media-video-videorange.html:\n* LayoutTests/media/media-webm-av1.html:\n* LayoutTests/media/video-webm-canvas-drawing.html:\n* LayoutTests/media/video-webm-seek-multi-audio-tracks.html:\n* LayoutTests/media/vp9.html:\n* LayoutTests/platform/mac/media/mediacapabilities/vp9-decodingInfo-sw.html:\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/315881@main",
      "email": "jya@apple.com",
      "hash": "92239fde29f9583a571bbf914e64457a621c3d34",
      "subject": "Enable SW VP9 decoder by default on IOS simulators"
    },
    "315882@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "315882@main",
      "clUrl": "https://commits.webkit.org/315882@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317748\nrdar://180505090\n\nReviewed by Dan Glastonbury.\n\nAccess context attributes through WebGLDefaultFramebuffer instead\nof GraphicsContextGL.\n\nThis is work to reduce bugs due to state management in\nGraphicsContextGL, preparing to move the context default framebuffer\nimplementation (MSAA management, etc.) from GraphicsContextGL into the\nWebGL layer.\n\nFixes following theoretical bugs:\n - Theoretically adjusted contextAttributes were not communicated\n   back from GPUP.\n - The theoretically adjusted stencil attribute wasn't adjusted\n   in WCP side due to copy-paste error:\n   `if (m_attributes.stencil) m_attributes.depth = glAttributes.depth;`\n\n* Source/WebCore/html/canvas/WebGLDefaultFramebuffer.cpp:\n(WebCore::WebGLDefaultFramebuffer::WebGLDefaultFramebuffer):\n(WebCore::WebGLDefaultFramebuffer::size const):\n(WebCore::WebGLDefaultFramebuffer::reshape):\n* Source/WebCore/html/canvas/WebGLDefaultFramebuffer.h:\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:\n(WebCore::WebGLRenderingContextBase::initializeContextState):\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.h:\n(WebCore::WebGLRenderingContextBase::attributes const):\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:\n(WebKit::RemoteGraphicsContextGL::workQueueInitialize):\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLInitializationState.h:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLInitializationState.serialization.in:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:\n(WebKit::RemoteGraphicsContextGLProxy::initialize):\n\nCanonical link: https://commits.webkit.org/315882@main",
      "email": "kkinnunen@apple.com",
      "hash": "cfd20438976858a9fac390266da08f6b480d60f5",
      "subject": "WebGL: Use default frame buffer properties from WebGLDefaultFramebuffer"
    },
    "315883@main": {
      "author": "Carlos Garcia Campos",
      "avatar": "https://www.gravatar.com/avatar/8393f7e76d83c8a147cb852d8fb1a959?d=identicon\u0026s=64",
      "cl": "315883@main",
      "clUrl": "https://commits.webkit.org/315883@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317914\n\nReviewed by Nikolas Zimmermann.\n\nNow that deferred display list is enabled with the skia compositor, we\nare using more internal skia resources, so it's important to set the\nlimits for skia internal caches depending the device.\n\n* Source/WebCore/platform/graphics/PlatformDisplay.h:\n* Source/WebCore/platform/graphics/skia/PlatformDisplaySkia.cpp:\n(WebCore::glyphCacheTextureMaximumBytes):\n(WebCore::initializeMaxResourceCacheBytes):\n(WebCore::SkiaGLContext::maxResourceCacheBytes const):\n(WebCore::SkiaGLContext::SkiaGLContext):\n(WebCore::PlatformDisplay::maxSkiaResourceCacheBytes const):\n* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedTileBuffer.cpp:\n(WebCore::CoordinatedAcceleratedTileBuffer::create):\n\nCanonical link: https://commits.webkit.org/315883@main",
      "email": "cgarcia@igalia.com",
      "hash": "3dd9c1955d735274837e980b0f75e066b4e49dce",
      "subject": "[Skia] Set maximum size for skia internal resources cache and textures used for glyph cache"
    },
    "315884@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "315884@main",
      "clUrl": "https://commits.webkit.org/315884@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315534\nrdar://176895464\n\nReviewed by Sihui Liu.\n\nFour UI-process IPC handlers accepted an origin/domain field from a\nDispatchedFrom=WebContent message and forwarded it verbatim to a system\nservice as a per-site authorization key, without comparing it against\nUI-process-authoritative state. A compromised WebContent process could\nspoof the origin and have CoreLocation / AppSSO / MarketplaceKit / the\ngeolocation policy decider apply another site's permission decision.\n\nThis change re-derives each value from UI-process-authoritative state\n(WebFrameProxy::url() / WebFrameProxy::securityOrigin() / the page's\ncommitted main-frame URL) instead of trusting the IPC-supplied field:\n\n- SOAuthorizationSession: derive InitiatorOrigin from\n  m_page-\u003emainFrame()-\u003eurl() for all initiating actions, matching the\n  existing SubFrame override and dropping the read of\n  NavigationActionData::originatingFrameInfoData.securityOrigin.\n- interceptMarketplaceKitNavigation: derive the referrer/top-origin URL\n  from page.mainFrame()-\u003eurl() instead of NavigationRequester::topOrigin.\n- WebPageProxy::requestGeolocationPermissionForFrame: overwrite\n  FrameInfoData::securityOrigin with WebFrameProxy::securityOrigin()\n  (computed UI-side at commit time) before passing it to the embedder,\n  and MESSAGE_CHECK that the frame resolves. The override is only\n  applied when the frame's load URL carries a meaningful host, since\n  some loads (e.g. webarchives loaded from a local file URL) commit a\n  document whose origin is determined by content the UIProcess cannot\n  inspect; in that case the WebContent-supplied origin is left in place.\n- WebGeolocationManagerProxy::startUpdatingWithProxy: bind the\n  RegistrableDomain (derived UI-side from the page's committed\n  main-frame URL at permission-request time) to the authorization token,\n  and MESSAGE_CHECK that the WebContent-supplied domain in StartUpdating\n  matches the token's bound domain. When the UI-derived domain is empty\n  (same webarchive / opaque-document case as above), the equality check\n  is skipped and the WebContent-supplied domain is accepted, matching\n  the pre-existing behavior for those edge cases.\n\nTests: ipc/forged-geolocation-permission-frame-origin.html\n       Tools/TestWebKitAPI/Tests/WebKitCocoa/SOAuthorizationTests.mm\n\n* LayoutTests/ipc/forged-geolocation-permission-frame-origin-expected.txt: Added.\n* LayoutTests/ipc/forged-geolocation-permission-frame-origin.html: Added.\n* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:\n(WebKit::interceptMarketplaceKitNavigation):\n* Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:\n(WebKit::SOAuthorizationSession::continueStartAfterDecidePolicy):\n* Source/WebKit/UIProcess/GeolocationPermissionRequestManagerProxy.cpp:\n(WebKit::GeolocationPermissionRequestManagerProxy::createRequest):\n(WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):\n(WebKit::GeolocationPermissionRequestManagerProxy::registrableDomainForAuthorizationToken const):\n* Source/WebKit/UIProcess/GeolocationPermissionRequestManagerProxy.h:\n* Source/WebKit/UIProcess/GeolocationPermissionRequestProxy.cpp:\n(WebKit::GeolocationPermissionRequestProxy::GeolocationPermissionRequestProxy):\n* Source/WebKit/UIProcess/GeolocationPermissionRequestProxy.h:\n(WebKit::GeolocationPermissionRequestProxy::create):\n* Source/WebKit/UIProcess/WebGeolocationManagerProxy.cpp:\n(WebKit::WebGeolocationManagerProxy::startUpdatingWithProxy):\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::requestGeolocationPermissionForFrame):\n* Tools/TestWebKitAPI/Tests/WebKitCocoa/SOAuthorizationTests.mm:\n(TestWebKitAPI::overrideBeginAuthorizationWithURLAndRecordInitiatorOrigin):\n(TestWebKitAPI::TEST(SOAuthorizationRedirect, InitiatorOriginIgnoresWebProcessSuppliedSourceFrameOrigin)):\n\nCanonical link: https://commits.webkit.org/315884@main",
      "email": "cdumez@apple.com",
      "hash": "5ca4d87ac78cbb8cbb0e7210d91835f8559fab24",
      "subject": "[WebKit Process Model | All] WebContent-supplied origin forwarded to system service without UI-process re-derivation at 4 sites"
    },
    "315885@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "315885@main",
      "clUrl": "https://commits.webkit.org/315885@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317863\n\nReviewed by Carlos Alberto Lopez Perez.\n\nPython 3.14 changed multiprocessing default start method from fork to\nforkserver, where a server process is in charge of forking the new\nprocesses out of it.\n\nThis method breaks the current WebDriver W3C executor, which assumes\nthat the spawned code will inherit the state of the parent, like\nenvvars, etc.\n\nThis commit reverts back to use the original 'fork' method locally for\nthese workers.\n\nNote that we still need the changes from bug317850 with the required\nbumps for full 3.14 compatibility.\n\n* Tools/Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:\n(WebDriverW3CExecutor.__init__):\n(WebDriverW3CExecutor.setup):\n\nCanonical link: https://commits.webkit.org/315885@main",
      "email": "lmoura@igalia.com",
      "hash": "fe37b6ef75da27c08aa2dbae12c89bbe8d927eec",
      "subject": "[WebDriver][Tools] Ensure W3C executor multiprocessing uses the fork start method for python 3.14 compatibility"
    },
    "315886@main": {
      "author": "Youenn Fablet",
      "avatar": "https://www.gravatar.com/avatar/0a9886e582a7aee1eb908eb59af36da4?d=identicon\u0026s=64",
      "cl": "315886@main",
      "clUrl": "https://commits.webkit.org/315886@main",
      "description": "rdar://164306288\nhttps://bugs.webkit.org/show_bug.cgi?id=317842\n\nReviewed by Jean-Yves Avenard.\n\nSome IOSurfaces that are not readable by CPU will have their base address equal to nullptr.\nBut their base address of plane would not be nullptr since an offset would be added.\n\nThis breaks SharedVideoFrameInfo::writePixelBuffer which was only testing for the plan address to not be nullptr.\nWe add a check that the base address is nullptr to prevent crashing the GPU process.\nThe web process will then create a black pixel buffer instead in RemoteVideoFrameProxy::pixelBuffer.\n\nCovered by added test.\n\n* LayoutTests/http/tests/media/fairplay/fps-video-frame-expected.txt: Added.\n* LayoutTests/http/tests/media/fairplay/fps-video-frame.html: Added.\n* Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm:\n(WebCore::SharedVideoFrameInfo::writePixelBuffer):\n\nCanonical link: https://commits.webkit.org/315886@main",
      "email": "youenn@apple.com",
      "hash": "d69cba4b8488ce0f698f1e741bce74083e3342d6",
      "subject": "Nullptr crash in SharedVideoFrameInfo::writePixelBuffer for protected IOSurface"
    },
    "315887@main": {
      "author": "Youenn Fablet",
      "avatar": "https://www.gravatar.com/avatar/0a9886e582a7aee1eb908eb59af36da4?d=identicon\u0026s=64",
      "cl": "315887@main",
      "clUrl": "https://commits.webkit.org/315887@main",
      "description": "rdar://174786023\nhttps://bugs.webkit.org/show_bug.cgi?id=317741\n\nReviewed by Eric Carlson.\n\nMicrophone capture requires the AudioSession unit to stay active.\nWhile for getUserMedia, the WebProcess is ensuring that the AudioSession is active, this is not the case for speech recognition.\nThis can cause issues in case other WebProcess deactivate the AudioSession.\n\nTo prevent this, we make sure that SpeechRecognitionRealtimeMediaSourceManager sources are tied to the MediaSessionManager, by making each source an AudioCaptureSource.\nIt ensures that the audio session is properly set up whenever capture for speech recgonition starts.\nWe also make sure to deactivate the AudioSession as needed when capture stops.\n\nWe have to fix a race condition in how RemoteAudioSession is returning whether active or not.\nWhen AudioSession is enabled/disabled very quickly, there might be configuration changed messages being received in between.\nThey might change the active state creating flakiness in tests.\n\nTo prevent this, we only set RemoteAudioSession::m_active in tryToSetActiveInternal and no longer synchronize it when configuration changes.\nWe add a protected setActive in AudioSession, so that RemoteAudioSession can set it back to false when GPU process crashes.\nWe no longer need AudioSession::isActive to be virtual as a small bonus.\n\nThis test can be flaky in case of rerunning it since navigating away stops the recognition right away but was stopping the capture asynchronously in WebProcess\nsince it needs to go through UIProcess.\nWe add a way for the source created in the WebProcess to register itself to the SpeechRecognition object.\nThis allows to synchronously stop capture when the SpeechRecognition gets stopped.\n\nTest: fast/mediastream/audio-session-stays-active-when-removing-session-during-speech-recognition.html\n\n* LayoutTests/fast/mediastream/audio-session-stays-active-when-removing-session-during-speech-recognition-expected.txt: Added.\n* LayoutTests/fast/mediastream/audio-session-stays-active-when-removing-session-during-speech-recognition.html: Added.\n* LayoutTests/http/tests/webrtc/audioSessionInFrames.html:\n* LayoutTests/platform/glib/TestExpectations:\n* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:\n(WebCore::MediaStreamTrack::stopTrack):\n(WebCore::MediaStreamTrack::trackMutedChanged):\n* Source/WebCore/Modules/speech/SpeechRecognition.cpp:\n(WebCore::SpeechRecognition::stop):\n(WebCore::SpeechRecognition::captureSourceCreated):\n* Source/WebCore/Modules/speech/SpeechRecognition.h:\n* Source/WebCore/Modules/speech/SpeechRecognitionConnection.h:\n(WebCore::SpeechRecognitionConnection::dispatchCaptureSourceCreated):\n* Source/WebCore/Modules/speech/SpeechRecognitionConnectionClient.h:\n(WebCore::SpeechRecognitionConnectionClient::captureSourceCreated):\n* Source/WebCore/platform/audio/AudioSession.cpp:\n(WebCore::AudioSession::tryToSetActive):\n(WebCore::AudioSession::setActive):\n* Source/WebCore/platform/audio/AudioSession.h:\n* Source/WebCore/platform/audio/MediaSessionManagerInterface.cpp:\n(WebCore::MediaSessionManagerInterface::audioCaptureSourceStateChanged):\n* Source/WebCore/platform/audio/MediaSessionManagerInterface.h:\n* Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.cpp:\n(WebKit::RemoteAudioSessionProxy::configuration):\n* Source/WebKit/GPUProcess/webrtc/UserMediaCaptureManagerProxy.cpp:\n* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp:\n(WebKit::RemoteMediaSessionManagerProxy::tryToSetActiveInternal):\n* Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:\n(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::create):\n(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::SpeechRecognitionRemoteRealtimeMediaSource):\n* Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:\n(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::clientIdentifier const):\n* Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:\n(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::addSource):\n* Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:\n(WebKit::SpeechRecognitionServer::handleRequest):\n* Source/WebKit/UIProcess/SpeechRecognitionServer.h:\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::createRealtimeMediaSourceForSpeechRecognition):\n* Source/WebKit/UIProcess/WebPageProxy.h:\n* Source/WebKit/UIProcess/WebProcessProxy.cpp:\n(WebKit::WebProcessProxy::createSpeechRecognitionServer):\n* Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp:\n(WebKit::RemoteAudioSession::gpuProcessConnectionDidClose):\n(WebKit::RemoteAudioSession::tryToSetActiveInternal):\n(WebKit::RemoteAudioSession::configurationChanged):\n* Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.h:\n* Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionConfiguration.h:\n* Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionConfiguration.serialization.in:\n* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp:\n(WebKit::RemoteMediaSessionManager::RemoteMediaSessionManager):\n* Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:\n(WebKit::SpeechRecognitionRealtimeMediaSourceManager::createSource):\n(WebKit::SpeechRecognitionRealtimeMediaSourceManager::start):\n(WebKit::SpeechRecognitionRealtimeMediaSourceManager::stop):\n* Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:\n* Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.messages.in:\n* Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:\n(WebKit::WebSpeechRecognitionConnection::dispatchCaptureSourceCreated):\n* Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:\n\nCanonical link: https://commits.webkit.org/315887@main",
      "email": "youenn@apple.com",
      "hash": "2f88bc0b118178fdb588f9143366246f09e21eb8",
      "subject": "Speech recognition microphone source should make sure to keep its audio session active while capturing"
    },
    "315888@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "315888@main",
      "clUrl": "https://commits.webkit.org/315888@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317820\n\u003crdar://problem/180631575\u003e\n\nReviewed by Abrar Rahman Protyasha.\n\n    \u003cbody style=\"transform: scale(0.75)\"\u003e\n        \u003cdiv style=\"margin-top: 15.5px; font-size: 17px; text-decoration: underline\"\u003eunderlined text\u003c/div\u003e\n    \u003c/body\u003e\n\nThe underline should be one continuous line just below the text. Instead it was rounded up onto the\ntext, and text-decoration-skip-ink then chopped it into pieces around the letters it now overlapped.\n\nCoreGraphics y axis points up while WebKit lays out with y pointing down,\nso any destination that paints into a flipped context (scale 1, -1) has a negative y scale in getCTM().\nThe snap always rounded toward larger device y, which is down the page (away from the text)\nonly when the context is not flipped; in a flipped context that direction points up, into the text.\n\nRound toward increasing local y regardless of the flip: ceil the device y in an unflipped context and\nfloor it in a flipped one, so the line always snaps to the device pixel away from the text.\n\n* LayoutTests/fast/text/text-decoration-underline-snapping-expected.html: Added.\n* LayoutTests/fast/text/text-decoration-underline-snapping.html: Added.\n* Source/WebCore/platform/graphics/GraphicsContext.cpp:\n(WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText): Snap the line away from the\ntext whether or not the destination context flips y.\n\nCanonical link: https://commits.webkit.org/315888@main",
      "email": "zalan@apple.com",
      "hash": "a9724ba0366deca0cb55ccc214f8ed7cf2851dec",
      "subject": "WKWebView: PDF export creates broken text underlines"
    },
    "315889@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "315889@main",
      "clUrl": "https://commits.webkit.org/315889@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317746\nrdar://180503395\n\nReviewed by Dan Glastonbury.\n\nMake all limits used in context creation be sent as initialization\nparameters. This way the initialization does not run extra synchronous\nqueries to GPUP.\n\nWorks towards avoiding open-ended queries to GPUP.\n\n* Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:\n(WebCore::WebGL2RenderingContext::initializeContextState):\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:\n(WebCore::WebGLRenderingContextBase::initializeContextState):\n* Source/WebCore/platform/graphics/GraphicsContextGL.h:\n* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:\n(WebCore::GraphicsContextGLANGLE::maxCombinedTextureImageUnits):\n(WebCore::GraphicsContextGLANGLE::maxVertexAttribs):\n(WebCore::GraphicsContextGLANGLE::maxTextureSize):\n(WebCore::GraphicsContextGLANGLE::maxCubeMapTextureSize):\n(WebCore::GraphicsContextGLANGLE::maxRenderbufferSize):\n(WebCore::GraphicsContextGLANGLE::maxViewportDims):\n(WebCore::GraphicsContextGLANGLE::maxSamples):\n(WebCore::GraphicsContextGLANGLE::maxTransformFeedbackSeparateAttribs):\n(WebCore::GraphicsContextGLANGLE::maxUniformBufferBindings):\n(WebCore::GraphicsContextGLANGLE::uniformBufferOffsetAlignment):\n(WebCore::GraphicsContextGLANGLE::max3DTextureSize):\n(WebCore::GraphicsContextGLANGLE::maxArrayTextureLayers):\n* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:\n(WebKit::RemoteGraphicsContextGL::workQueueInitialize):\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLInitializationState.h:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLInitializationState.serialization.in:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:\n(WebKit::RemoteGraphicsContextGLProxy::initialize):\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:\n\nCanonical link: https://commits.webkit.org/315889@main",
      "email": "kkinnunen@apple.com",
      "hash": "3eb3120db40bf4ad49ce7f69a44220f959520d50",
      "subject": "WebGL: GL limits are queried synchronously during context initialization"
    },
    "315890@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "315890@main",
      "clUrl": "https://commits.webkit.org/315890@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317850\n\nReviewed by Carlos Alberto Lopez Perez.\n\nPython 3.14 removed the ast.Str member, which was first marked as\ndeprecated in Python 3.8, breaking packages that still use it, like\nolder pytest versions.\n\nThis commit bumps pytest and related packages, alongside other packages\nthat failed to install with 3.14 at the current version, to a newer\nversion that suports 3.14.\n\nNote: This commit also drops the sqlalchemy-migrate autoinstall for\nbuildbot, as since Buildbot 3.4.0 (Oct 2021) Alembic is used for\nmigrations[1] (And we're running buildbot 4.3.0 nowadays).\n\npytest: 7.2.0 -\u003e 8.4.2\npluggy: 0.13.1 -\u003e 1.5.0\npytest-asyncio: 0.18.3 -\u003e 1.1.1\npytest-timeout: 2.1.0 -\u003e 2.4.0\ncoverage: 7.6.1 -\u003e 7.10.7\npyfakefs: 5.7.3 -\u003e 5.10.2\npyyaml: 6.0.2 -\u003e 6.0.3\nzope-interface: 7.0.1 -\u003e 8.1 (cond. Python \u003e= 3.10)\nrapidfuzz: 3.4.0 -\u003e 3.14.5 (cond. Python \u003e=3.10)\n\n* Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py:\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py:\n* Tools/Scripts/webkitpy/__init__.py:\n* Tools/Scripts/webkitpy/autoinstalled/buildbot.py:\n\n[1] https://buildbot.readthedocs.io/en/v4.3.0/relnotes/3.x.html#buildbot-3-4-0-2021-10-15\n\nCanonical link: https://commits.webkit.org/315890@main",
      "email": "lmoura@igalia.com",
      "hash": "baefc37c4ff59c6a17cfddaa6c76a6ff72218465",
      "subject": "[Tools] Bump pytest and related deps for python 3.14 compatibility"
    },
    "315891@main": {
      "author": "Marcos Caceres",
      "avatar": "https://www.gravatar.com/avatar/d31c9c6a3b0af558a2945682020e5b90?d=identicon\u0026s=64",
      "cl": "315891@main",
      "clUrl": "https://commits.webkit.org/315891@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317840\nrdar://180618646\n\nReviewed by Anne van Kesteren.\n\nDigitalCredential inherits Credential.type, which the Digital Credentials\nspecification defines (section 8.4) as \"digital\". WebKit returned\n\"digital-credential\", so a page calling navigator.credentials.get({digital})\nand reading the resolved credential's type observed the wrong value. Return\n\"digital\" to match the spec.\n\nThe web-platform-test digital-credentials/mdoc/valid-roundtrip.https.html\nasserts credential.type === \"digital\". It is currently skipped pending the\nWebDriver virtual-wallet test infrastructure (bug 306292) and will exercise\nthis fix once that infrastructure lands and the test is enabled.\n\n* Source/WebCore/Modules/credentialmanagement/BasicCredential.cpp:\n(WebCore::BasicCredential::type const):\n\nCanonical link: https://commits.webkit.org/315891@main",
      "email": "marcosc@apple.com",
      "hash": "f29b730d742b656438fe81acc51f357fed56cbc5",
      "subject": "Credential.type returns \"digital-credential\" instead of \"digital\" for digital credentials"
    },
    "315892@main": {
      "author": "Simon Pena",
      "avatar": "https://www.gravatar.com/avatar/3dde875c8abcd38f7ddad8ab6c88df1c?d=identicon\u0026s=64",
      "cl": "315892@main",
      "clUrl": "https://commits.webkit.org/315892@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317922\n\nReviewed by Claudio Saavedra.\n\nArgumentCoder\u003cGRefPtr\u003cGTlsCertificate\u003e\u003e::decode() unconditionally reads\na vector of cert data as its first field. The encoder, however, fails to\nwrite anything if the certificate fails to produce its DER data. This\nmeans that the decoder will go out of sync, reading subsequent elements\nas if they were the certificate, which in turn can cause intermittent\ncrashes afterwards.\n\nThis is a regression from 278316@main. Before its refactoring, the\ncertificate size was unconditionally written, and when 0 the decoder\nwould handle it appropriately. After the refactoring, empty certificates\nare skipped, and the 0 size is not communicated. This ensures an empty\nvector is encoded on the failure path, so that decoder and encoder are\nkept in sync.\n\nNo new tests: this would probably require IPC API tests to run for GLib\nplatforms.\n\n* Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp:\n(IPC::ArgumentCoder\u003cGRefPtr\u003cGTlsCertificate\u003e\u003e::encode):\n\nCanonical link: https://commits.webkit.org/315892@main",
      "email": "spena@igalia.com",
      "hash": "ac70e863fb9d0bc897fecc7f29c405af20763bc5",
      "subject": "Regression(278316@main): [GLIB] IPC encoder desyncs on certificate extraction failure"
    },
    "315893@main": {
      "author": "Marcos Caceres",
      "avatar": "https://www.gravatar.com/avatar/d31c9c6a3b0af558a2945682020e5b90?d=identicon\u0026s=64",
      "cl": "315893@main",
      "clUrl": "https://commits.webkit.org/315893@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=309625\nrdar://172236892\n\nReviewed by Anne van Kesteren.\n\nMaintain the invariant that the interaction state is 'idle' iff no\ncurrent promise is set. Set the state and promise as an atomic pair at\nthe top of prepareCredentialRequests (after the idle check), and route\nerror paths through a new rejectTheCredentialRequestWith helper that\nimplements §6.5 \"Reject the credential request with\":\nhttps://w3c-fedid.github.io/digital-credentials/#dfn-reject-the-credential-request-with\n\nCovered by existing digital-credentials tests.\n\n* Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp:\n(WebCore::CredentialRequestCoordinator::setCurrentPromise):\n(WebCore::CredentialRequestCoordinator::prepareCredentialRequests):\n(WebCore::CredentialRequestCoordinator::initiateTheCredentialRequest):\n(WebCore::CredentialRequestCoordinator::rejectTheCredentialRequestWith):\n(WebCore::CredentialRequestCoordinator::abortTheCredentialRequest):\n* Source/WebCore/Modules/identity/CredentialRequestCoordinator.h:\n\nCanonical link: https://commits.webkit.org/315893@main",
      "email": "marcosc@apple.com",
      "hash": "828871706d95b1ff892567e281a37f0d9a278f21",
      "subject": "Digital Credentials: CredentialRequestCoordinator should transition to Requesting state before setting promise"
    },
    "315894@main": {
      "author": "Keith Miller",
      "avatar": "https://www.gravatar.com/avatar/bddc1595b29098429a6ce7c8bf4aced2?d=identicon\u0026s=64",
      "cl": "315894@main",
      "clUrl": "https://commits.webkit.org/315894@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317930\nrdar://180722527\n\nReviewed by Jonathan Bedard.\n\nAttempted build fix. Only changing bmalloc/WTF for now. Will loop back\nwith a more comprehensive fix later.\n\nCanonical link: https://commits.webkit.org/315894@main",
      "email": "keith_miller@apple.com",
      "hash": "a5d68487fb5d0cbb9f0e299bd3d6b20be66a73af",
      "subject": "Demote PGO warnings back to warnings"
    },
    "315895@main": {
      "author": "Marcos Caceres",
      "avatar": "https://www.gravatar.com/avatar/d31c9c6a3b0af558a2945682020e5b90?d=identicon\u0026s=64",
      "cl": "315895@main",
      "clUrl": "https://commits.webkit.org/315895@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=313735\nrdar://174895437\n\nReviewed by Abrar Rahman Protyasha.\n\nReject with NotAllowedError (not AbortError) when the user cancels the credential chooser, per spec 'initiate the credential request' step 3c. AbortError is reserved for AbortSignal-driven cancellation. Test coverage requires mock credential provider (Bug 285651).\n\n* Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp:\n(WebCore::CredentialRequestCoordinator::processCredentialChooserResponse):\n\nCanonical link: https://commits.webkit.org/315895@main",
      "email": "marcosc@apple.com",
      "hash": "7fafcac702859ac8b8bb6bf827d21f6ba6397bbd",
      "subject": "Digital Credentials: user cancel should reject with NotAllowedError, not AbortError"
    },
    "315896@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "315896@main",
      "clUrl": "https://commits.webkit.org/315896@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317727\nrdar://180479954\n\nUnreviewed.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm\n\n* Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCVideoFrameUtilities.h:\n* Source/WebKit/WebProcess/cocoa/VideoPresentationManager.mm:\n* Source/WebKitLegacy/mac/DOM/DOMAbstractView.mm:\n* Source/WebKitLegacy/mac/DOM/DOMElement.mm:\n* Source/WebKitLegacy/mac/DOM/DOMHTMLAnchorElement.mm:\n* Source/WebKitLegacy/mac/DOM/DOMHTMLEmbedElement.mm:\n* Source/WebKitLegacy/mac/DOM/DOMHTMLIFrameElement.mm:\n* Source/WebKitLegacy/mac/DOM/DOMHTMLMapElement.mm:\n* Source/WebKitLegacy/mac/DOM/DOMHTMLMetaElement.mm:\n* Source/WebKitLegacy/mac/DOM/DOMHTMLParamElement.mm:\n* Source/WebKitLegacy/mac/Misc/WebSharingServicePickerController.mm:\n* Source/WebKitLegacy/mac/Plugins/WebPluginController.mm:\n* Source/WebKitLegacy/mac/WebView/WebClipView.mm:\n* Source/WebKitLegacy/mac/WebView/WebDataSource.mm:\n* Source/WebKitLegacy/mac/WebView/WebFrame.mm:\n* Source/WebKitLegacy/mac/WebView/WebFullScreenController.mm:\n* Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:\n* Source/WebKitLegacy/mac/WebView/WebImmediateActionController.mm:\n* Source/WebKitLegacy/mac/WebView/WebPDFView.mm:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n\nCanonical link: https://commits.webkit.org/315896@main",
      "email": "achristensen@apple.com",
      "hash": "dd251b03fffc367612e79706962a607fb5956dc5",
      "subject": "Fix non-unified Mac build"
    },
    "315897@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "315897@main",
      "clUrl": "https://commits.webkit.org/315897@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317920\nrdar://180711424\n\nReviewed by Geoffrey Garen.\n\nThis rejigs the ownership of the back-forward list C++ message forwarder such\nthat an extra reference is kept by the C++ wrapper shim, and thus there's no\nneed to return something from a stack temporary which required a suppression\nfrom the clang static analysis checks. This was not (believed to be)\na real memory safety problem but it's best to avoid the suppression anyway.\n\nThere is no net behavioral difference here.\n\nCanonical link: https://commits.webkit.org/315897@main",
      "email": "adrian_taylor@apple.com",
      "hash": "28db9d45a3b6ea944f5e1566874b509fb3aa400b",
      "subject": "Remove stack address suppression from Swift Back Forward List"
    },
    "315898@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315898@main",
      "clUrl": "https://commits.webkit.org/315898@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317918\nrdar://180708899\n\nUnreviewed Test Gardening. It is now passing reliably, did 100 iterations\nlocally and no flakiness.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-targeted-element-both-axes-expected.txt:\n\nCanonical link: https://commits.webkit.org/315898@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "d4514334779483826e66bf4811a625cca64b7f7b",
      "subject": "[Gardening] Unskip `prefer-targeted-element-both-axes.html` since it is passing reliably"
    },
    "315899@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/6f92b711483096db0247c16946fb3f29?d=identicon\u0026s=64",
      "cl": "315899@main",
      "clUrl": "https://commits.webkit.org/315899@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317855\nrdar://180633226\n\nReviewed by Tim Nguyen.\n\nRewrites and splits up exisitng notch wpt test into individual tests per\nconfiguration. Adds notch border shape tests\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-mixed-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-mixed-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-mixed.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-ref.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-negative-100-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-negative-100-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-negative-100.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch.html.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-negative-inf-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-negative-inf-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-negative-inf.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch.html.\n\nCanonical link: https://commits.webkit.org/315899@main",
      "email": "173393835+codedbycupidity@users.noreply.github.com",
      "hash": "bc9bab8b6de0c1b0dc708d27cf1efddcdbf15369",
      "subject": "Rewrite notch WPT tests"
    },
    "315900@main": {
      "author": "Qianlang Chen",
      "avatar": "https://www.gravatar.com/avatar/0fd54e904334f604739d0205aa6e2130?d=identicon\u0026s=64",
      "cl": "315900@main",
      "clUrl": "https://commits.webkit.org/315900@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317896\n\nReviewed by Geoffrey Garen.\n\nThe Xcode build of MiniBrowser enables ARC via Base.xcconfig\n(CLANG_ENABLE_OBJC_ARC = YES), but the CMake port was compiling the same\nsources without ARC. The sources are written assuming ARC retain\nsemantics: in AppDelegate.m, `static NSString *sTargetURL = [args objectAtIndex:...]`\nrelies on __strong's auto-retain. Without ARC, sTargetURL ends up\ndangling and crashes -[BrowserAppDelegate targetURL] with EXC_BAD_ACCESS\nin objc_msgSend on first window open. (The crash is currently masked by\na separate startup hang and surfaces once that's resolved.)\n\nPass -fobjc-arc to the MiniBrowser target so the CMake build matches the\nXcode port's ARC setting.\n\nNo new tests; build system changes only.\n\n* Tools/MiniBrowser/mac/CMakeLists.txt:\n\nCanonical link: https://commits.webkit.org/315900@main",
      "email": "qianlangchen@apple.com",
      "hash": "c19fd54ed774fe9e4cfce7c193448e44a470b49e",
      "subject": "[CMake] Minibrowser crashes on start in [BrowserAppDelegate targetURL]"
    },
    "315901@main": {
      "author": "Ryan Haddad",
      "avatar": "https://www.gravatar.com/avatar/b7d8cd2dec546cac2524e4b58181f9d5?d=identicon\u0026s=64",
      "cl": "315901@main",
      "clUrl": "https://commits.webkit.org/315901@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317856\nrdar://180634688\n\nReviewed by Jonathan Bedard and Aakash Jain.\n\nWhen TwistedAdditions.request hit the response-header timeout added in 309004@main, the\nswallowing onTimeoutCancel callback left the deferred fulfilled with None. The next line\nthen called response.deliverBody on None and the catch-all `except Exception` logged the\nmisleading \"'NoneType' object has no attribute 'deliverBody'\" message instead of the\nexisting defer.TimeoutError handler running. The same pattern was in place on the\nbody-delivery timeout.\n\nDownstream, ResultsDatabase.make_request collapsed both \"request failed\" and \"successful\nempty response\" to `{}`. For the SaferCPP path, that resulted in a normal-looking dict with\ndoes_result_match=False on network failures, and FindUnexpectedStaticAnalyzerResults.check_results_db\nthen attributed the failing files to the PR author. The protective \"fall back to tip-of-tree\"\nbranch in filter_results_using_results_db (which runs ScanBuildWithoutChange) was unreachable\nbecause the returned dict was truthy.\n\n* Tools/CISupport/ews-build/twisted_additions.py:\n(TwistedAdditions.request): Drop the swallowing onTimeoutCancel callbacks so addTimeout\ndefault-translates the cancel into a defer.TimeoutError that the existing handler logs cleanly.\n* Tools/CISupport/ews-build/results_db.py:\n(ResultsDatabase.make_request): Return None on infrastructure failure (no response or non-200)\nand preserve the response payload on 200.\n(ResultsDatabase.does_result_match): When the request failed, return None even if a `default`\nis provided. This triggers the existing `if not data:` fallback in check_results_db, which\nroutes to the rebuild-without-change verification step instead of blaming the PR.\n(ResultsDatabase.is_test_pre_existing_failure): Guard against None data and expose a\nrequest_failed flag in the output dict for future call sites.\n* Tools/CISupport/ews-build/steps_unittest.py:\n(TestResultsDatabaseFailureHandling): Cover make_request, does_result_match, and\nis_test_pre_existing_failure behavior on both infrastructure failure and successful empty\nresponses.\n\nCanonical link: https://commits.webkit.org/315901@main",
      "email": "ryanhaddad@apple.com",
      "hash": "6db6903f7c0e7685fb65b6cfa8537c27e32c48db",
      "subject": "[ews] Failures when querying results-db can cause false positives to be reported"
    },
    "315902@main": {
      "author": "Ben Nham",
      "avatar": "https://www.gravatar.com/avatar/dc0914eabf69047ee3397794c2d17bf7?d=identicon\u0026s=64",
      "cl": "315902@main",
      "clUrl": "https://commits.webkit.org/315902@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317905\nrdar://180159037\n\nReviewed by Per Arne Vollan.\n\nThere are some daemons that use WebKit to load webpages, but which are not managed by\nRunningBoard. This doesn't work with ProcessStateMonitor, which we install once processes are in the\nbackground (which is basically all the time in daemons).\n\nIn particular, a process that is not managed by RunningBoard may still get RunningBoard state\nupdates. This causes `ProcessStateMonitor::checkRemainingRunTime()` to run. Then\n`checkRemainingRunTime()` asks RunningBoard how much time the process has to run before it suspends\nvia `[[[RBSProcessHandle currentProcess] activeLimitations] runTime]`. For an unmanaged process,\nthis may return 0.\n\nThis then makes us think that the process is about to suspend immediately, which causes us to\ninvalidate all of the activities tracked by the process, which then causes all WebKit auxiliary\nprocesses to suspend.\n\nIn this patch, we disable ProcessStateMonitor for one of the problematic daemons specifically\n(textunderstandingd). This will be followed up by a patch that disables creation of the object for\nany process that is unmanaged (the only reason we're not doing that in this patch is to mitigate\nrisk).\n\nThis works because The only client of `ProcessStateMonitor::create` already understands how to deal\nwith a null return value.\n\n* Source/WebKit/Platform/spi/ios/RunningBoardServicesSPI.h:\n* Source/WebKit/UIProcess/ios/ProcessStateMonitor.h:\n(WebKit::ProcessStateMonitor::create): Deleted.\n* Source/WebKit/UIProcess/ios/ProcessStateMonitor.mm:\n(WebKit::ProcessStateMonitor::create):\n\nCanonical link: https://commits.webkit.org/315902@main",
      "email": "nham@apple.com",
      "hash": "2a667bb936d24418a4a6def1f0fb90f23ed00186",
      "subject": "Only use ProcessStateMonitor on processes that are managed by RunningBoard"
    },
    "315903@main": {
      "author": "Tyler Wilcock",
      "avatar": "https://www.gravatar.com/avatar/9545082e6bed96158a9f52dac6e4b869?d=identicon\u0026s=64",
      "cl": "315903@main",
      "clUrl": "https://commits.webkit.org/315903@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317797\nrdar://180565005\n\nReviewed by Andres Gonzalez and Dominic Mazzoni.\n\nAccessibilityPreferences.mm declared the libAccessibility library soft-link with\nSOFT_LINK_LIBRARY_OPTIONAL(), and AuxiliaryProcessCocoa.mm relied on that\ndeclaration to resolve libAccessibilityLibrary() for its own\nSOFT_LINK_OPTIONAL(libAccessibility, _AXSUpdateWebAccessibilitySettings, ...).\nSOFT_LINK_LIBRARY_OPTIONAL() and SOFT_LINK_OPTIONAL() generate static, file-local\nsymbols, so this only compiled because both files happened to land in the same\nunified-sources translation unit. Adding or reordering files in Shared/Cocoa\nwould eventually break the build.\n\nMove both soft-links into a dedicated LibAccessibilitySoftLink.{h,mm} that uses\nthe SOFT_LINK_LIBRARY_FOR_HEADER/_FOR_SOURCE and\nSOFT_LINK_FUNCTION_MAY_FAIL_FOR_HEADER/_FOR_SOURCE macros, which emit extern,\nnamespaced symbols defined once and intended for sharing across source files.\n\n* Source/WebKit/Shared/Cocoa/AccessibilityPreferences.mm:\n(AXPreferenceHelpers::imageAnimationEnabled):\n* Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm:\n(WebKit::AuxiliaryProcess::handleAXPreferenceChange):\n* Source/WebKit/SourcesCocoa.txt:\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n\nCanonical link: https://commits.webkit.org/315903@main",
      "email": "tyler_w@apple.com",
      "hash": "6b5f79b75b8f8ba1a3a5db9bef8b7b31c0804c74",
      "subject": "AX: Move libAccessibility soft-linking into a shared LibAccessibilitySoftLink.{h,mm}"
    },
    "315904@main": {
      "author": "Jessica Cheung",
      "avatar": "https://www.gravatar.com/avatar/5c102f093ce6bc01424466a4cfdf1d1f?d=identicon\u0026s=64",
      "cl": "315904@main",
      "clUrl": "https://commits.webkit.org/315904@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317665\nrdar://177210669\n\nReviewed by Wenson Hsieh.\n\nCurrently, when backspacing immediately from the second list item of a smart list,\nthe selection moves back to the first list item. Instead, the entire list formatting\nshould be removed. This should be the case because a user could have accidently triggered\nlist formatting and need a way out.\n\nSo, if it is currently on the second list item of a newly created smart list, there is no text\nyet and a backspace is hit, then WebKit should remove the list formatting. This is the window\nin which the undo operation via backspace will be valid.\n\nTo ensure this, a SmartListUndoData struct is created that stores all the information needed for the\nundo operation. This data is only set during that small window and will be a nullopt otherwise for all\nother operations. In performSmartListUndo, conditions are checked whether the undo operation is valid here.\nIf so, divs are created and the text is then put in the divs that are located in the DOM right where the\nlist element would be. The list element is then removed. If the user is on any other list item and backspaces,\nthe list formatting is not removed because the conditions would not be met.\n\nAdd three layout tests that cover these cases:\n1. Backspace immediately once at the second list item of a smart list\n2. Backspace after typing a character at the second list item of a smart list\n3, Backspace immediately once at the third list item of a smart list\n\n* LayoutTests/editing/smart-lists/backspace-after-typing-in-smart-list-does-not-undo-list-expected.txt: Added.\n* LayoutTests/editing/smart-lists/backspace-after-typing-in-smart-list-does-not-undo-list.html: Added.\n* LayoutTests/editing/smart-lists/backspace-immediately-after-smart-list-creation-undoes-list-expected.txt: Added.\n* LayoutTests/editing/smart-lists/backspace-immediately-after-smart-list-creation-undoes-list.html: Added.\n* LayoutTests/editing/smart-lists/backspace-immediately-after-third-list-item-does-not-undo-list-expected.txt: Added.\n* LayoutTests/editing/smart-lists/backspace-immediately-after-third-list-item-does-not-undo-list.html: Added.\n* LayoutTests/platform/glib/TestExpectations:\n* Source/WebCore/editing/InsertTextCommand.cpp:\n(WebCore::InsertTextCommand::applySmartListsIfNeeded):\n* Source/WebCore/editing/InsertTextCommand.h:\n* Source/WebCore/editing/TypingCommand.cpp:\n(WebCore::TypingCommand::willAddTypingToOpenCommand):\n(WebCore::TypingCommand::insertTextRunWithoutNewlines):\n(WebCore::TypingCommand::deleteKeyPressed):\n(WebCore::TypingCommand::performSmartListUndo):\n* Source/WebCore/editing/TypingCommand.h:\n\nCanonical link: https://commits.webkit.org/315904@main",
      "email": "jcheung23@apple.com",
      "hash": "e9768a95677440dc108fcf26db2af5cd82b8b902",
      "subject": "[Smart Lists] Backspace after Smart Lists formatting removes entire list line instead of just formatting"
    },
    "315905@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "315905@main",
      "clUrl": "https://commits.webkit.org/315905@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317846\nrdar://180623633\n\nReviewed by Youenn Fablet.\n\nThe registration policy lived in MediaPlayer::buildMediaEnginesVector with\na hand-written MESSAGE_CHECK allowlist in RemoteMediaPlayerManagerProxy::createMediaPlayer.\nMediaPlayerPrivateWebM and MediaPlayerPrivateMediaSourceAVFObjC were\nregistered in every process where their code compiled, including the\nGPU process; the MESSAGE_CHECK rejected attempts to instantiate them\nin GPU when MediaContainment was on, but the canDecodeExtendedType IPC\nhad no way to express \"answer codec capability queries from GPU\nwithout being instantiable.\" When MediaContainment is enabled, those\nengines demux in the WebContent process and only the renderer should\nlive in GPU, so registering the full MediaPlayerPrivate in GPU was\nboth unnecessary and a defence-in-depth weak point.\n\nThis commit moves the decision of when and where a MediaPlayerFactory\nis registered into each MediaPlayerPrivate's static registerMediaEngine\n— the factory itself owns it. buildMediaEnginesVector becomes a flat\nlist of registerMediaEngine calls (still gated by USE/ENABLE compile\nflags and the existing isAVFoundationEnabled / isGStreamerEnabled\nruntime gates); each engine's static decides between installing the\nlocal factory, delegating to a remote proxy via\nRemoteMediaPlayerSupport::registerRemoteEngineIfAvailable, or skipping.\n\nMediaPlayerFactory gains a MediaPlayerScope supportedScope(MediaContainmentEnabled)\nthe describes how the MediaPlayerPrivate is to be used.\nMediaPlayer::supportsType and MediaPlayer::mediaEngine take a\nMediaPlayerEngineSelection { identifier, scope, mediaContainmentEnabled }\nstruct, and engines are filtered by scope. MediaPlayerFactoryWebM and\nMediaPlayerFactoryMediaSourceAVFObjC override supportedScope to return\nRemoteRenderingCapability in the GPU process when MediaContainmentEnabled\nis Yes — they can answer canDecodeExtendedType IPCs from the WebContent\ndemuxer but are not lookup-able for Playback.\n\nGPUConnectionToWebProcess::canDecodeExtendedType queries with\nMediaPlayerScope::RemoteRenderingCapability and the connection's\nMediaContainmentEnabled. RemoteMediaPlayerManagerProxy::{createMediaPlayer,\ngetSupportedTypes, supportsTypeAndCodecs, supportsKeySystem} all funnel\nthrough a new playbackEngineForConnection helper that queries with\nMediaPlayerScope::Playback and the connection's preference;\ncreateMediaPlayer's old MESSAGE_CHECK allowlist is replaced by this\nregistry lookup, so a containment-enabled connection asking the GPU\nto instantiate WebM or MSE AVF is rejected by the registry rather\nthan a hand-maintained list.\n\nThis is required to disable the use of MediaPlayerPrivateRemote (the\nWebContent-side remote proxy) with the WebM and MediaSource AVF\nplayers without breaking the WebContent-side demuxer's ability to\nquery the GPU for codec capabilities.\n\n* Source/WebCore/platform/graphics/MediaPlayerEnums.h: Add\nMediaPlayerScope and MediaContainmentEnabled.\n* Source/WebCore/platform/graphics/MediaPlayer.h:\n* Source/WebCore/platform/graphics/MediaPlayer.cpp:\n(WebCore::buildMediaEnginesVector):\n(WebCore::bestMediaEngineForSupportParameters):\n(WebCore::MediaPlayer::mediaEngine):\n(WebCore::MediaPlayer::supportsType):\n(WebCore::RemoteMediaPlayerSupport::registerRemoteEngineIfAvailable):\n* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.{h,mm}:\n(WebCore::MediaPlayerFactoryWebM::supportedScope):\n(WebCore::MediaPlayerPrivateWebM::registerMediaEngine):\n* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.{h,mm}:\n(WebCore::MediaPlayerFactoryMediaSourceAVFObjC::supportedScope):\n(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):\n* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.{h,mm}:\n(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):\n* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.{h,mm}:\n(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::registerMediaEngine):\n* Source/WebCore/platform/graphics/MediaPlayerPrivateWirelessPlayback.{h,cpp}:\n(WebCore::MediaPlayerPrivateWirelessPlayback::registerMediaEngine):\n* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.{h,cpp}:\n* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.{h,cpp}:\n* Source/WebCore/platform/graphics/holepunch/MediaPlayerPrivateHolePunch.{h,cpp}:\n* Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.{h,cpp}:\n* Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.{h,cpp}:\n* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:\n(WebKit::GPUConnectionToWebProcess::canDecodeExtendedType):\n* Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.{h,cpp}:\n(WebKit::RemoteMediaPlayerManagerProxy::playbackEngineForConnection):\n(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):\n(WebKit::RemoteMediaPlayerManagerProxy::getSupportedTypes):\n(WebKit::RemoteMediaPlayerManagerProxy::supportsTypeAndCodecs):\n(WebKit::RemoteMediaPlayerManagerProxy::supportsKeySystem):\n* Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:\n(WebKit::RemoteMediaPlayerManager::setUseGPUProcess):\n\nCanonical link: https://commits.webkit.org/315905@main",
      "email": "jya@apple.com",
      "hash": "514ac2547e6f001230587536baf3c5da4b060272",
      "subject": "Don't register MediaPlayerPrivateWebM / MediaPlayerPrivateMediaSourceAVFObjC for playback in the GPU process when MediaContainment is enabled"
    },
    "315906@main": {
      "author": "Sihui Liu",
      "avatar": "https://www.gravatar.com/avatar/fea095a2fb34b599fa6e7d581666903b?d=identicon\u0026s=64",
      "cl": "315906@main",
      "clUrl": "https://commits.webkit.org/315906@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317902\nrdar://180688173\n\nReviewed by Per Arne Vollan.\n\nSymlinks in TestWebKitAPIResources.bundle resolve to their canonical path in the source tree, which is outside\nWEBKIT2_FRAMEWORK_DIR. The WebContent sandbox profile only allows file-issue-extension for subpaths of\nWEBKIT2_FRAMEWORK_DIR, so the kernel denies the extension and file URL loads fail. Copying instead of symlinking keeps\nthe canonical path inside the build directory where the sandbox rule permits it.\n\nThis fixes API test failures like SiteIsolation.LocalIframeOpensBlobURLFromFileMainFrame and WKWebView.LoadTwoFiles\nwhen running with a CMake-built TestWebKitAPI.\n\n* Tools/TestWebKitAPI/PlatformMac.cmake:\n\nCanonical link: https://commits.webkit.org/315906@main",
      "email": "sihui_liu@apple.com",
      "hash": "a7a82ef808090ad3313aa07271e948bd41227bc1",
      "subject": "[CMake] Copy test resources into TestWebKitAPIResources.bundle instead of symlinking"
    },
    "315907@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "315907@main",
      "clUrl": "https://commits.webkit.org/315907@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317910\nrdar://178596735\n\nReviewed by Alex Christensen.\n\nWebProcessProxy::didPostMessage() MESSAGE_CHECKs that the page the message is\nposted to is associated with the sending WebContent process (added in\n314178@main). WebPageProxy::close() synchronously calls\nWebProcessProxy::removeWebPage(), which disassociates the page from the\nprocess, but defers sending Messages::WebPage::Close to the next run loop\niteration to avoid a white flash. Marking the page as pending-close happened\ninside sendPageCloseMessage(), so it was deferred along with the Close message.\n\nThis left a window: after removeWebPage() but before the deferred Close ran,\nthe page was in neither WebProcessProxy's page maps nor m_pagesPendingClose.\nAn in-flight DidPostMessage IPC (e.g. a window.webkit.messageHandlers post from\na content script during teardown) dispatched in that window would fail the\nMESSAGE_CHECK and terminate an otherwise well-behaved WebContent process.\n\nMark every content process for the page as pending-close synchronously in\nclose(), at the same time as removeWebPage(), and only clear the marker once\nthe deferred WebPage::Close async reply arrives. isAssociatedWithPage() already\nconsults m_pagesPendingClose, so the page stays associated for the whole\nteardown.\n\nTest: WKUserContentController.PostMessageDuringPageClose\n\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::close):\n* Source/WebKit/UIProcess/WebProcessProxy.cpp:\n(WebKit::WebProcessProxy::addPagePendingClose):\n(WebKit::WebProcessProxy::removePagePendingClose):\n* Source/WebKit/UIProcess/WebProcessProxy.h:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/UserContentController.mm:\n(TEST(WKUserContentController, PostMessageDuringPageClose)):\n\nCanonical link: https://commits.webkit.org/315907@main",
      "email": "cdumez@apple.com",
      "hash": "1abac9ea0f026da69102d5abd5199a81a1d1b650",
      "subject": "WebContent process termination due to MESSAGE_CHECK in WebProcessProxy::didPostMessage()"
    },
    "315908@main": {
      "author": "Joanne Pan",
      "avatar": "https://www.gravatar.com/avatar/5cbbf578426a0c98cb5c977ca2dd88fc?d=identicon\u0026s=64",
      "cl": "315908@main",
      "clUrl": "https://commits.webkit.org/315908@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317675\nrdar://180429446\n\nReviewed by Antti Koivisto.\n\nrandom-item() is an arbitrary substitution function, like var() and attr().\nPer CSS Values 5 it is substituted at computed-value time, so at parse time\nonly its argument grammar needs to be validated:\n\n    \u003crandom-item-args\u003e = random-item( \u003cdeclaration-value\u003e, [ \u003cdeclaration-value\u003e? ]# )\n\nAdd parse-time support for that grammar behind a new feature flag,\nCSSRandomItemFunctionEnabled (off by default). The substitution parser now\naccepts a random-item() function whose first argument is a non-empty\n\u003cdeclaration-value\u003e, followed by a comma-separated list of one or more\n(possibly empty) item values. Items use {}-grouping for internal commas and\nmay not mix a brace block with other values, following the\ncomponent-function-commas rules, similar to isValidAttrReference.\n\nThe first argument is treated as an opaque \u003cdeclaration-value\u003e here, parsing\nit as a \u003crandom-key\u003e and selecting one of the items happen at computed-value\ntime and are handled in a follow-up. Forms such as random-item(foo, a, b)\nare now accepted at parse time and only resolved (or made invalid) at computed-value time.\n\nSpec: https://drafts.csswg.org/css-values-5/#funcdef-random-item\n\nTest: imported/w3c/web-platform-tests/css/css-values/random-item-parsing.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-parsing-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-parsing.html: Added.\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/css/CSSValueKeywords.in:\n* Source/WebCore/css/parser/CSSParserContext.cpp:\n(WebCore::add):\n* Source/WebCore/css/parser/CSSParserContext.h:\n* Source/WebCore/css/parser/CSSSubstitutionParser.cpp:\n(WebCore::classifyBlock):\n(WebCore::isValidRandomItemReference):\n\nCanonical link: https://commits.webkit.org/315908@main",
      "email": "jpan0917@gmail.com",
      "hash": "5fa97e52fb27007b0f22df30391f614b9f179e78",
      "subject": "[css-values-5 random-item()] parse-time support for the argument grammar"
    },
    "315909@main": {
      "author": "Jessica Cheung",
      "avatar": "https://www.gravatar.com/avatar/5c102f093ce6bc01424466a4cfdf1d1f?d=identicon\u0026s=64",
      "cl": "315909@main",
      "clUrl": "https://commits.webkit.org/315909@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317784\nrdar://179831928\n\nReviewed by Abrar Rahman Protyasha, Pascoe, and Aditya Keerthi.\n\nAdd support for the `device-imei1`, `device-imei2`, and `device-nal` values for the\n`autocomplete` attribute. Write an API test for these additional identifiers.\n\n* Source/WTF/wtf/PlatformHave.h:\n* Source/WebCore/html/Autofill.cpp:\n* Source/WebCore/html/Autofill.h:\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:\n(-[WKContentView contentTypeFromFieldName:]):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/KeyboardInputTestsIOS.mm:\n(TestWebKitAPI::TEST(KeyboardInputTests, AdditionalEsimDeviceAutoFill)):\n\nCanonical link: https://commits.webkit.org/315909@main",
      "email": "jcheung23@apple.com",
      "hash": "e769c66843a5b7c4d823cddbf5791a431f313fbc",
      "subject": "Add support for additional eSIM autocomplete values"
    },
    "315910@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "315910@main",
      "clUrl": "https://commits.webkit.org/315910@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317836\nrdar://180609922\n\nReviewed by Youenn Fablet.\n\nAlways make the MediaPlayerPrivateWebM runs in the web content process\nregardless of MediaContainment being enabled or not.\n\n* Source/WebCore/platform/graphics/MediaPlayer.cpp:\n(WebCore::WTF_REQUIRES_LOCK):\n* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:\n(WebCore::MediaPlayerPrivateWebM::createRenderer):\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::updatePreferences):\n\nCanonical link: https://commits.webkit.org/315910@main",
      "email": "jya@apple.com",
      "hash": "3bbc08f8dff06b749ce34e0dc4685b7ae18e6134",
      "subject": "Remove the ability to have the MediaPlayerPrivateWebM run in the GPU process"
    },
    "315911@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "315911@main",
      "clUrl": "https://commits.webkit.org/315911@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317235\n\u003crdar://179857225\u003e\n\nReviewed by Sammy Gill.\n\nThis PR ports over RenderGrid's implementation of preferredSizeBehavesAsAuto()\nand preferredSizeDependsOnContainingBlockSize() to GFC.\n\nRenderGrid implements this part of the spec:\n\n\t\"if the item’s computed preferred size behaves as auto or depends on the size of its containing block in the relevant axis\"\n\nwith the check\n\n\tif (!gridItemSize.isAuto() \u0026\u0026 !gridItemSize.isPercentOrCalculated())\n\nThis behavior is inline with GridTrackSizingAlgorithmStrategy::minContributionForGridItem()\nin the legacy RenderGrid, but does not yet handle stretch/fit content\nin preferredSizeDependsOnContainingBlockSize(). preferredSizeBehavesAsAuto()\nalso only checks for auto preferred size, matching the RenderGrid implementation but\nnot yet implement the full spec.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-minimum-contribution-fixed-size-crash.html: Added.\n* Source/WebCore/layout/formattingContexts/grid/GridLayoutUtils.cpp:\n(WebCore::Layout::GridLayoutUtils::preferredSizeBehavesAsAuto):\n(WebCore::Layout::GridLayoutUtils::preferredSizeDependsOnContainingBlockSize):\n* Source/WebCore/layout/formattingContexts/grid/TrackSizingAlgorithm.cpp:\n\nCanonical link: https://commits.webkit.org/315911@main",
      "email": "yulun_wu@apple.com",
      "hash": "fd0d854eb31cc2124c1338675fa02c2b9e76e297",
      "subject": "[GFC] Implement GridLayoutUtils::preferredSizeBehavesAsAuto"
    },
    "315912@main": {
      "author": "Taher Ali",
      "avatar": "https://www.gravatar.com/avatar/e104800647d8c98b8c9dbe736b5e1751?d=identicon\u0026s=64",
      "cl": "315912@main",
      "clUrl": "https://commits.webkit.org/315912@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317932\nrdar://180727528\n\nReviewed by Per Arne Vollan.\n\nWhen remote inspection is enabled, GPUProcessProxy::createGPUToolsSandboxExtensionHandlesIfNeeded()\nhands the GPU process a sandbox extension for com.apple.gputools.service, but the macOS\nGPU process profile had no rule to accept that extension. So the lookup was denied anyway\nand GPU Tools could not attach to the GPU process. This PR adds an allow rule to the sandbox profile.\n\n* Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:\n\nCanonical link: https://commits.webkit.org/315912@main",
      "email": "taher_ali@apple.com",
      "hash": "4f929efecc30cafba289dcba66c9b96bf3d5d67f",
      "subject": "GPU process sandbox should allow mach-lookup of com.apple.gputools.service"
    },
    "315913@main": {
      "author": "Adrien Destugues",
      "avatar": "https://www.gravatar.com/avatar/66047b045f96fe2ee9e2222298dab677?d=identicon\u0026s=64",
      "cl": "315913@main",
      "clUrl": "https://commits.webkit.org/315913@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317633\n\nReviewed by Sam Sneddon and Alexey Proskuryakov.\n\n* Tools/Scripts/webkitpy/port/factory.py:\nFix indentation to match current requirements of code style checks.\nThis will avoid introducing mismatched indentation in later changes\nadding new options.\n\nCanonical link: https://commits.webkit.org/315913@main",
      "email": "adrien.destugues@opensource.viveris.fr",
      "hash": "bebf908df08dcafbd0d341d3071ad2e6282b544f",
      "subject": "Style fixes for webkitpy ports factory"
    },
    "315914@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "315914@main",
      "clUrl": "https://commits.webkit.org/315914@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317885\nrdar://180664653\n\nReviewed by Brandon Stewart.\n\nPull the block-axis stretch-fit computation out of usedBlockSizeForGridItem into\ntwo standalone helpers. This is a behavior-preserving refactor that lets the\nstretched block size be queried on its own, separately from the full\nused-block-size logic.\n\nhasStretchedBlockSize() captures the condition under which a grid item is sized\nas align-self: stretch in the block axis (auto preferred size, normal alignment,\nnot replaced, no preferred aspect ratio, and non-auto margins). stretchedBlockSize()\ncomputes the stretch-fit size exactly as the previous inline code did: the row\nsize minus margins and border/padding, clamped by the item's max size.\nusedBlockSizeForGridItem() now calls these helpers instead of open-coding the\ncomputation.\n\n* Source/WebCore/layout/formattingContexts/grid/GridLayoutUtils.cpp:\n(WebCore::Layout::GridLayoutUtils::hasStretchedBlockSize): Added.\n(WebCore::Layout::GridLayoutUtils::stretchedBlockSize): Added.\n(WebCore::Layout::GridLayoutUtils::usedBlockSizeForGridItem): Use the new helpers.\n* Source/WebCore/layout/formattingContexts/grid/GridLayoutUtils.h:\n\nCanonical link: https://commits.webkit.org/315914@main",
      "email": "sammy.gill@apple.com",
      "hash": "abd75430aa54d1b777ea7e167343c51361d64aab",
      "subject": "[GFC] Extract hasStretchedBlockSize and stretchedBlockSize helpers in GridLayoutUtils"
    },
    "315915@main": {
      "author": "Cole Carley",
      "avatar": "https://www.gravatar.com/avatar/091dd5641909acc46e581355f491ed34?d=identicon\u0026s=64",
      "cl": "315915@main",
      "clUrl": "https://commits.webkit.org/315915@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317794\nrdar://180563067\n\nReviewed by Keith Miller.\n\nPasring for data segment init expressions did not\nsupport Memory64.\n\nI fixed this by widening the bits in the I32InitExpr from a\nuint32_t to a uint64_t. I aliased I32IntExpr to I64InitExpr\nbecause they use the same structure, but sometimes it's useful\nto refer to them differently.\n\nI added a path for parsing an I64 instead of an I32 in\nSectionParser::parseData when the memory is 64 bits.\n\nThis fixes a large number of WPT tests that were failing\ndue to the type mismatch during the parsing phase.\n\n* Source/JavaScriptCore/wasm/WasmFormat.h:\n(JSC::Wasm::I32InitExpr::I32InitExpr):\n(JSC::Wasm::I32InitExpr::globalImport):\n(JSC::Wasm::I32InitExpr::constValue):\n(JSC::Wasm::I32InitExpr::extendedExpression):\n(JSC::Wasm::I32InitExpr::constValue const):\n(JSC::Wasm::I32InitExpr::globalImportIndex const):\n(JSC::Wasm::I32InitExpr::constantExpressionIndex const):\n* Source/JavaScriptCore/wasm/WasmParser.h:\n(JSC::Wasm::makeI32InitExpr):\n(JSC::Wasm::makeI64InitExpr):\n* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:\n(JSC::Wasm::SectionParser::parseI64InitExpr):\n(JSC::Wasm::SectionParser::parseI64InitExprForDataSection):\n(JSC::Wasm::SectionParser::parseData):\n* Source/JavaScriptCore/wasm/WasmSectionParser.h:\n* Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:\n(JSC::WebAssemblyModuleRecord::evaluate):\n\nCanonical link: https://commits.webkit.org/315915@main",
      "email": "ccarley2@apple.com",
      "hash": "6cc8cf35745f32def288fac14687aefc8ac86e6a",
      "subject": "[Memory64] Fix parsing data segment init exprs"
    },
    "315916@main": {
      "author": "Pascoe",
      "avatar": "https://www.gravatar.com/avatar/7a6e50b09dba6a185f45250268683d71?d=identicon\u0026s=64",
      "cl": "315916@main",
      "clUrl": "https://commits.webkit.org/315916@main",
      "description": "rdar://180447205\nhttps://bugs.webkit.org/show_bug.cgi?id=317685\n\nReviewed by Geoffrey Garen.\n\nWe need SwiftDemoLogoConfirmation to fix the iOS build.\n\n* Source/WebKit/PlatformIOS.cmake:\n\nCanonical link: https://commits.webkit.org/315916@main",
      "email": "pascoe@apple.com",
      "hash": "46aead8b73f0488e60e1429d14752cd53934c80c",
      "subject": "[CMake, iOS] Fix build for c++/Swift interop"
    },
    "315917@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "315917@main",
      "clUrl": "https://commits.webkit.org/315917@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317884\nrdar://180664061\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n* Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:\n\nCanonical link: https://commits.webkit.org/315917@main",
      "email": "jespinal23@apple.com",
      "hash": "2cd1118309ee21bf7e58dfb545a6797e1e093010",
      "subject": "[GARDENING]REGRESSION(315658@main): imported/w3c/web-platform-tests/digital-credentials/get-non-fully-active.https.html is constant Text failure"
    },
    "315918@main": {
      "author": "Phinehas Fuachie",
      "avatar": "https://www.gravatar.com/avatar/900d85de8c325e38975f39115c36bb75?d=identicon\u0026s=64",
      "cl": "315918@main",
      "clUrl": "https://commits.webkit.org/315918@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317617\nrdar://178769976\n\nReviewed by Jer Noble.\n\nSome third-party WKWebView hosts (e.g. visionOS Lens) inject a user Script that listens for the\n'pause' event on \u003cvideo\u003e and synchronously re-calls video.play() to keep media going while the\nhost's \"in focus\" flag is true. Because the pause event fires inside the user's click on YouTube's\npause control, the synthetic play() inherits the same transient activation token — so existing\nuser-gesture gates do not reject it. The result: tapping pause in YouTube fullscreen on Lens does\nnothing, audio keeps playing after the app is closed, and Control Center pause is overridden on the\nnext event tick.\n\nAdd a YouTube-only fullscreen quirk that denies HTMLMediaElement::play() when the page is in element\nfullscreen and either no user gesture is active, or a JS-driven pause() ran within the last 500ms —\ni.e. the play() is the rebound from the user's pause and not a fresh user intent. HTMLMediaElement\nrecords the timestamp of each scripted pause() so MediaElementSession can consult it from the\nplayback-state gate.\n\n* Source/WebCore/html/HTMLMediaElement.cpp:\n(WebCore::HTMLMediaElement::pause):\n* Source/WebCore/html/HTMLMediaElement.h:\n(WebCore::HTMLMediaElement::lastUserPauseTime const):\n* Source/WebCore/html/MediaElementSession.cpp:\n(WebCore::MediaElementSession::playbackStateChangePermitted const):\n* Source/WebCore/page/Quirks.cpp:\n* Source/WebCore/page/Quirks.h:\n* Source/WebCore/page/QuirksData.h:\n\nCanonical link: https://commits.webkit.org/315918@main",
      "email": "pfuachie2@apple.com",
      "hash": "d508119d994616594fe47743ef05b3d3f642b51d",
      "subject": "Lens: video.play() injected from a 'pause' handler bypasses user-gesture pause in fullscreen"
    },
    "315919@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "315919@main",
      "clUrl": "https://commits.webkit.org/315919@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317947\nrdar://180745459\n\nReviewed by Abrar Rahman Protyasha.\n\nI realized I didn't actually end up pushing these changes before merging 315834@main.\n\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKitGesturesTests.swift:\n(AppKitGesturesTests.draggingSelectionToWindowEdgeAutoscrolls(_:)):\n(AppKitGesturesTests.holdingSelectionDragNearEdgeKeepsScrolling):\n(AppKitGesturesTests.holdingSelectionDragMidContentDoesNotAutoscroll):\n(AppKitGesturesTests.selectionAutoscrollStopsAfterGestureEnds):\n(AppKitGesturesTests.draggingSelectionToTopEdgeScrollsUp):\n(AppKitGesturesTests.selectionOriginatingNearEdgeWithShortDragDoesNotAutoscroll):\n(AppKitGesturesTests.selectionOriginatingNearEdgeAutoscrollsAfterDraggingPastThreshold):\n(AppKitGesturesTests.clickingAndHoldingOnEmptyContentOpensContextMenu(_:)):\n(AppKitGesturesTests.scrollingDoesNotRemoveTextSelection):\n(AppKitGesturesTests.tripleClickingInPDFSelectsLine):\n(AppKitGesturesTests.scrollingChangesScrollPosition(_:)):\n(AppKitGesturesTests.interruptingDeceleratingScrollDoesNotFollowLink):\n(AppKitGesturesTests.loadScrollableText):\n(AppKitGesturesTests.screenBounds(ofPointInWindowCoordinates:)):\n(AppKitGesturesTests.loadScrollableText(_:)): Deleted.\n(AppKitGesturesTests.windowEdgePointInScreenCoordinates(_:y:)): Deleted.\n\nCanonical link: https://commits.webkit.org/315919@main",
      "email": "richard_robinson2@apple.com",
      "hash": "01a618ae81f9e11543ad4588649b5e2a3db6ddd7",
      "subject": "[AppKit Gestures] Follow-up to 315834@main to clean up the tests a bit"
    },
    "315920@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "315920@main",
      "clUrl": "https://commits.webkit.org/315920@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317937\nrdar://180739184\n\nUnreviewed fuzz adjustment.\n\n* LayoutTests/media/media-source/media-source-video-renders.html:\n\nCanonical link: https://commits.webkit.org/315920@main",
      "email": "jya@apple.com",
      "hash": "79a7da7c4eecbbd45d4d0ee195ee20550a52f427",
      "subject": "media/media-source/media-source-video-renders.html is a constant IMAGE failure"
    },
    "315921@main": {
      "author": "Marcus Plutowski",
      "avatar": "https://www.gravatar.com/avatar/0dc4fa1c337348e333de44505752edb8?d=identicon\u0026s=64",
      "cl": "315921@main",
      "clUrl": "https://commits.webkit.org/315921@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316145\nrdar://178568125\n\nReviewed by Yusuke Suzuki.\n\nThis patch includes two major changes:\n  1. Add a basic-heap-config option for MTE tagging\n  2. Remove the small-medium tagging distinction\n\nLibpas does not tag objects belonging to every pas-heap. Formerly, this\ndecision was effectively made globally, with specific \"opt-outs\"; by\ndefault, every basic-heap was opted in to MTE tagging. In production,\nthe only basic-heaps in use are ones that we intend to use for MTE\nobjects; the non-MTE-tagged heaps are also non-basic heaps (JIT,\nutility). However, this is not true for testing where e.g. the iso-heap\nconfiguration should not be MTE tagged, but is. This is also something\nwe intend to run in production in the future, so it behooves us to\nprepare the ground now by cleaning this up.\nNow, instead of relying on opt-outs, each basic-heap-config has a\nparameter that indicates whether its objects are eligible for tagging.\n\nDuring the initial deployment of MTE, libpas allowed for certain\nconfigurations to only tag small objects, with medium-and-larger objects\nremaining untagged. With the introduction of guard objects, which only\nprotect objects 32k and larger, it does not make sense to leave a gap\nbetween small (\u003c~12k) and marge (\u003e32k) objects that is protected by\nneither mechanism. As such, the small-medium distinction has been\nunused, and will not be useful going forward. This patch removes it.\n\nNo new tests since this behavior is covered by libpas' existing MTE\ntagging policy tests.\n\nCanonical link: https://commits.webkit.org/315921@main",
      "email": "marcus_plutowski@apple.com",
      "hash": "6db83a42f97a0f4c6e14c15587c12644c0568bdd",
      "subject": "[libpas] Rework per-heap tagging policy logic"
    },
    "315922@main": {
      "author": "Tadeu Zagallo",
      "avatar": "https://www.gravatar.com/avatar/d517fd5480efde083cc7b6af36c73ced?d=identicon\u0026s=64",
      "cl": "315922@main",
      "clUrl": "https://commits.webkit.org/315922@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317844\nrdar://180622067\n\nReviewed by Mike Wyrzykowski.\n\nWe were missing packing for 3-row matrices.\n\n* LayoutTests/http/tests/webgpu/webgpu/shader/execution/padding-expected.txt:\n* Source/WebGPU/WGSL/GlobalVariableRewriter.cpp:\n(WGSL::RewriteGlobalVariables::visit):\n(WGSL::RewriteGlobalVariables::packResource):\n(WGSL::RewriteGlobalVariables::packType):\n* Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp:\n(WGSL::Metal::FunctionDefinitionWriter::emitNecessaryHelpers):\n(WGSL::Metal::FunctionDefinitionWriter::generatePackingHelpers):\n(WGSL::Metal::FunctionDefinitionWriter::visit):\n* Source/WebGPU/WGSL/Types.cpp:\n(WGSL::Type::packing const):\n\nCanonical link: https://commits.webkit.org/315922@main",
      "email": "tzagallo@apple.com",
      "hash": "3647c06a095bf672f1d4732775eaf71ccb9d3b83",
      "subject": "[WebGPU] shader,execution,padding:* is failing"
    },
    "315924@main": {
      "author": "Oscar Rojas Vasquez",
      "avatar": "https://www.gravatar.com/avatar/dc9359019eb561364c501a79a4536480?d=identicon\u0026s=64",
      "cl": "315924@main",
      "clUrl": "https://commits.webkit.org/315924@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317944\nrdar://180742561\n\nReviewed by Abrar Rahman Protyasha.\n\nCSSPropertyParserConsumer+Image.h was included twice.\n\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Masking.cpp:\n\nCanonical link: https://commits.webkit.org/315924@main",
      "email": "o_rojas@apple.com",
      "hash": "d14f8943bcf1e177b69addd583cc988015abdc25",
      "subject": "Remove duplicate #include in CSSPropertyParserConsumer+Masking.cpp"
    },
    "315925@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "315925@main",
      "clUrl": "https://commits.webkit.org/315925@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317799\nrdar://180568019\n\nReviewed by Sihui Liu.\n\nFollow-up to 315516@main (https://bugs.webkit.org/show_bug.cgi?id=317090,\nwalk-as-replacement).\n\nWebPageProxy::dispatchPerFrameTraversals walks every frame in the target\nback/forward item's tree and, through sendGoToBackForwardItemForFrame,\ndispatches GoToBackForwardItem to each frame whose itemSequenceNumber\ndiffers. The BF tree retains FrameState entries for iframes that have since\nbeen removed from the DOM (e.g. an iframe a previous test created and tore\ndown via t.add_cleanup). For those dead slots\nWebProcess::singleton().webFrame(frameID) returns null at the WebPage\nreceiver, and WebPage::goToBackForwardItem falls back to m_mainFrame — so\nthe main frame ends up navigating to the dead iframe's URL. In the WPT\ncluster test cross-document-traversal-cross-document-traversal.html this\nmanifests as the test page itself being navigated to ?1 partway through\nsubtest 4, killing the test harness and timing out all subtests.\n\nFor child-frame BF items, have sendGoToBackForwardItemForFrame resolve the\ntarget frameID to a live WebFrameProxy belonging to this page before\nsending, and skip dispatch — returning false — when it does not. Propagate\nthat result as a bool through dispatchPerFrameTraversals and\ngoToBackForwardItem's anySent bookkeeping, so a walk whose only differing\nframes are dead now sends nothing and falls through to the existing\n\"silently dropped\" release-log warning instead of mis-navigating the main\nframe. The check is gated on targetFrame.parent() so it applies only to\niframe BF items: a main-frame BF item's stale frameID is expected after\nsession restore to a new WebView (the BF list is hydrated with the\noriginating page's frameIDs before this page's main frame loads), and the\nWebProcess receiver's m_mainFrame fallback is the correct destination for\nthe main frame — skipping would silently drop the restore, regressing\nSiteIsolation.RestoreSessionFromAnotherWebView and the two\nNavigateIframe*BackForwardAfterSessionRestoreToNewWebView tests reactivated\nin 315817@main.\n\nBug 317044 (315779@main) introduced the http/wpt/site-isolation/ copy of\nthis cluster test with only the back-direction subtest, because the other\nthree subtests timed out across the shared BF list without this fix. Extend\nthat copy to all four subtests now that the dead-frame skip is in place;\nthe platform-specific mac-site-isolation expected.txt override is no longer\nneeded because the http/wpt/site-isolation copy pins both flags via its\nwebkit-test-runner header.\n\nThe extended 4-subtest test exposes a separate pre-existing Debug-only\nassertion in HistoryItem::addChildItem when the BF tree happens to contain\nduplicate-frameID children after multiple subtests' iframes have been torn\ndown. That root cause (BF tree retaining frameIDs of destroyed iframes) is\nfixed at the source by bug 317814 (eng/basuke/si-implies-uiproc-bfwd —\nclears frameID in ~WebFrameProxy via a recursive BF tree walk); until that\nlands, skip the test on Debug. Release continues to exercise all four\nsubtests.\n\n* LayoutTests/http/wpt/site-isolation/overlapping-navigations-and-traversals/cross-document-traversal-cross-document-traversal-expected.txt:\n* LayoutTests/http/wpt/site-isolation/overlapping-navigations-and-traversals/cross-document-traversal-cross-document-traversal.html:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::goToBackForwardItem):\n(WebKit::WebPageProxy::dispatchPerFrameTraversals):\n(WebKit::WebPageProxy::sendGoToBackForwardItemForFrame):\n* Source/WebKit/UIProcess/WebPageProxy.h:\n\nCanonical link: https://commits.webkit.org/315925@main",
      "email": "basuke@apple.com",
      "hash": "e651f7053f95c26c76e6bc4a112d1385a7a56f37",
      "subject": "[Site Isolation] Per-frame back/forward walk dispatches to dead BF frame items, navigating main frame to iframe URL"
    },
    "315926@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "315926@main",
      "clUrl": "https://commits.webkit.org/315926@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317884\nrdar://180664061\n\nUnreviewed test gardening\n\n* LayoutTests/platform/ios/TestExpectations:\n\nCanonical link: https://commits.webkit.org/315926@main",
      "email": "darbinyan@apple.com",
      "hash": "3a8d23cb441957447b561b5b7c0a514b70087583",
      "subject": "[ Gardening ]: REGRESSION(315658@main): imported/w3c/web-platform-tests/digital-credentials/get-non-fully-active.https.html is constant Text failure"
    },
    "315927@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "315927@main",
      "clUrl": "https://commits.webkit.org/315927@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317915\nrdar://180707984\n\nReviewed by Simon Fraser.\n\nWhen selecting between multiple aligned snap areas, the re-snap algorithm\n(https://drafts.csswg.org/css-scroll-snap-1/#multiple-aligned) prioritizes a box\nthat \"is focused or has a focused descendant\", then one that \"is targeted or has\na targeted descendant\". WebCore only flagged a snap area when it *was* the focused\nor fragment-targeted element, missing the common case where that element is a\ndescendant of the snap area (e.g. a focusable control inside a snapping section).\n\nFlag a snap area as focused/targeted when it is, or contains, the focused or\nfragment-targeted element.\n\n* LayoutTests/TestExpectations: Unskip now-passing\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-focused-nested-containers-expected.txt: Progression\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-relayout/multiple-aligned-targets/prefer-snap-target-containing-focused-element-expected.txt: Ditto\n* LayoutTests/platform/mac/TestExpectations: Unskip now-passing\n* Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:\n(WebCore::updateSnapOffsetsForScrollableArea): Use Node::contains() so a snap area\nthat contains the focused/targeted element is treated as focused/targeted.\n\nCanonical link: https://commits.webkit.org/315927@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "20f1014b6f5dbc5ca3dc9dd969b88cacb50e96cf",
      "subject": "[CSS Scroll Snap] Re-snap does not prefer a snap area that contains the focused or fragment-targeted element"
    },
    "315928@main": {
      "author": "Simon Fraser",
      "avatar": "https://www.gravatar.com/avatar/3763324aa0cdfa93be751c6081b8006a?d=identicon\u0026s=64",
      "cl": "315928@main",
      "clUrl": "https://commits.webkit.org/315928@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317949\nrdar://180748525\n\nUnreviewed build fix for case-sensitive file systems; fix the case of two header includes.\n\n* Source/WebCore/rendering/cocoa/RenderThemeCocoa.mm:\n* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFDataDetectorItem.mm:\n\nCanonical link: https://commits.webkit.org/315928@main",
      "email": "simon.fraser@apple.com",
      "hash": "8df4cee792c259f8c09fd1d5fb3f083c1749ba59",
      "subject": "Fix include case in two places"
    },
    "315929@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "315929@main",
      "clUrl": "https://commits.webkit.org/315929@main",
      "description": "rdar://179427046\nhttps://bugs.webkit.org/show_bug.cgi?id=317698\n\nReviewed by Simon Fraser.\n\nCrash reports indicate that when ResizeObservation::computeObservedSizes is called,\nit's possible for m_target to be nullptr, indicating the Element was destroyed\nbefore the method is called. So far I've not been able to reproduce this nor\nfigure out a plausible explanation, so this patch speculatively fixes it by\nadding a null check, plus turning the WeakPtr into RefPtr before using it.\n\n* Source/WebCore/page/ResizeObservation.cpp:\n(WebCore::ResizeObservation::computeObservedSizes const):\n(WebCore::ResizeObservation::computeTargetLocation const):\n\nCanonical link: https://commits.webkit.org/315929@main",
      "email": "kiet.ho@apple.com",
      "hash": "a4228a6eb4ff8259274d9555f076885035670f67",
      "subject": "[resize-observer] m_target could be null in ResizeObservation::computeObservedSizes"
    },
    "315930@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "315930@main",
      "clUrl": "https://commits.webkit.org/315930@main",
      "description": "rdar://180368162\nhttps://bugs.webkit.org/show_bug.cgi?id=317691\n\nReviewed by Simon Fraser.\n\nWhen traversing up the frame tree, computeClippedRectInRootContentsSpace assumes\nthat if a frame is not a main frame, then it always has a parent. But crash reports\nindicate that it's possible for non-main frames to not have a parent. Fix this by\nchanging computeClippedRectInRootContentsSpace to directly check if the frame\nhas a parent or not before traversing up.\n\nTested by existing Intersection Observer test suite.\n\n* Source/WebCore/page/IntersectionObserver.cpp:\n(WebCore::computeClippedRectInRootContentsSpace):\n\nCanonical link: https://commits.webkit.org/315930@main",
      "email": "kiet.ho@apple.com",
      "hash": "84e80f88281709ce9d9a5646089ec4f325528791",
      "subject": "[intersection-observer] Frame that is not a main frame doesn't necessarily have a parent"
    },
    "315931@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "315931@main",
      "clUrl": "https://commits.webkit.org/315931@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317892\n\nReviewed by Richard Robinson and Pascoe.\n\nUse a headermap to expose \"forwarded\" headers from WebKitLegacy to\nWebKit (i.e. headers which are part of public WebKit API, but originate\nfrom WKL's API). This works towards reorganizing headers into actual\nframework bundles.\n\nThe headermap is exposes as an INTERFACE include path, so targets which\nlink against WebKitLegacy get it automatically added. Fix up WebKit and\nthe tools projects to accurately list WebKitLegacy linkage.\n\nWebKit in particular contained a bad assumption that it was not possible\nto re-export WKL without bypassing the normal framework macros. It is,\nvia a LINK_LIBRARY_OVERRIDE_\u003cx\u003e property.\n\nAlso, clean up an old listing of the forwarded headers, which afaict is\nnot used anywhere.\n\n* Source/WebKit/CMakeLists.txt:\n* Source/WebKit/PlatformMac.cmake:\n* Source/WebKitLegacy/PlatformMac.cmake:\n* Tools/MiniBrowser/mac/CMakeLists.txt:\n* Tools/TestWebKitAPI/CMakeLists.txt:\n* Tools/WebKitTestRunner/CMakeLists.txt:\n\nCanonical link: https://commits.webkit.org/315931@main",
      "email": "emw@apple.com",
      "hash": "b42d59d5e73d63bf2e20847353f6d93f40df03fa",
      "subject": "[CMake] Fix WebKitLegacy linkage and use a headermap for forwarded headers"
    },
    "315932@main": {
      "author": "Dominic Mazzoni",
      "avatar": "https://www.gravatar.com/avatar/f76643c44a7ee3be45148e66d97ed8e4?d=identicon\u0026s=64",
      "cl": "315932@main",
      "clUrl": "https://commits.webkit.org/315932@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317951\nrdar://180749251\n\nReviewed by Tyler Wilcock.\n\nThese calls:\n\n    [object.wrapper() accessibilityOverrideProcessNotification:notificationName.get() notificationData:nil];\n    [object.wrapper() accessibilityPostedNotification:notificationName.get()];\n\ncan trigger updateBackingStore, which can call detachWrapper(),\nmeaning the wrapper can become nil partway through the function.\nWe just need to retain the wrapper.\n\nNo tests, as no known repro yet, only seen from crash logs.\n\n* Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm:\n(WebCore::AXObjectCache::postPlatformNotification):\n(WebCore::AXObjectCache::postPlatformAnnouncementNotification):\n\nCanonical link: https://commits.webkit.org/315932@main",
      "email": "dm_mazzoni@apple.com",
      "hash": "a24f1800afcea004865a22aad3f016cc0e3cfb3e",
      "subject": "AX: AXObjectCacheIOS postPlatformNotification needs to retain the element"
    },
    "315933@main": {
      "author": "Tyler Wilcock",
      "avatar": "https://www.gravatar.com/avatar/9545082e6bed96158a9f52dac6e4b869?d=identicon\u0026s=64",
      "cl": "315933@main",
      "clUrl": "https://commits.webkit.org/315933@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317808\nrdar://179822336\n\nReviewed by Dominic Mazzoni.\n\nWith ENABLE(ACCESSIBILITY_LOCAL_FRAME), a presentational iframe's frame root -- an\naccessibility-ignored AXScrollArea -- was spliced into the host frame as-is, which\ncauses trouble for VoiceOver and other ATs, since it resulted in a parent-child\nmismatch in the accessibility tree, and leaves the iframe with no reachable parent.\n\nFix this by hoisting the ignored iframes content in the accessibility\ntree rather than exposing the ignored iframe root in the tree directly.\n\nIn the isolated tree, cache the cross-frame parent linkage in the always-run\nbase-property path (an ignored root skips the needsAllProperties branch that set it),\nand have crossFrameUnignoredChildrenInRange() delegate to crossFrameUnignoredChildren()\nfor cross-frame hosts -- detected via a cached hasCrossFrameChild flag -- keeping the\ncheap ranged slice otherwise.\n\n* LayoutTests/accessibility/mac/local-frame-presentational-iframe-content-expected.txt: Added.\n* LayoutTests/accessibility/mac/local-frame-presentational-iframe-content.html: Added.\n* LayoutTests/accessibility/resources/presentational-iframe-content.html: Added.\n* Source/WebCore/accessibility/AXCoreObject.cpp:\n(WebCore::AXCoreObject::crossFrameUnignoredChildren):\n(WebCore::AXCoreObject::crossFrameParentObjectUnignored const):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:\n(WebCore::AXIsolatedObject::ensureCachedUnignoredChildren):\n(WebCore::AXIsolatedObject::crossFrameUnignoredChildrenInRange):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:\n(WebCore::createIsolatedObjectData):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:\n* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:\n(handleParentAttribute):\n\nCanonical link: https://commits.webkit.org/315933@main",
      "email": "tyler_w@apple.com",
      "hash": "7fc011a98165013068d21d572cb7f3bb7795a939",
      "subject": "AX: VoiceOver cannot reach the content of a presentational local iframe"
    },
    "315934@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "315934@main",
      "clUrl": "https://commits.webkit.org/315934@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317977\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/315934@main",
      "email": "nzimmermann@igalia.com",
      "hash": "8aa1cd5687c204a0297520a2df4c2c3b248d0f25",
      "subject": "[GTK][WPE] Gardening of tests - 2026-06-26"
    },
    "315935@main": {
      "author": "Ryan Haddad",
      "avatar": "https://www.gravatar.com/avatar/b7d8cd2dec546cac2524e4b58181f9d5?d=identicon\u0026s=64",
      "cl": "315935@main",
      "clUrl": "https://commits.webkit.org/315935@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317550\nrdar://180248076\n\nReviewed by Richard Robinson and Aakash Jain.\n\nRemove the temporary \"build_failed\" silent-failure workaround from CompileWebKit\n(originally added in 288180@main and adjusted in 288231@main). It marked the compile step\nas FAILURE whenever anything was delivered to errorReceived, which meant an otherwise-successful\nbuild whose log merely contained the string \"error\" was forced to fail. The underlying\nsilent-failure issue that motivated the workaround has since been resolved, so the compile\nresult is once again driven by the actual command result.\n\n* Tools/CISupport/ews-build/steps.py:\n(CompileWebKit.__init__):\n(CompileWebKit.errorReceived):\n(CompileWebKit.getResultSummary):\n\nCanonical link: https://commits.webkit.org/315935@main",
      "email": "ryanhaddad@apple.com",
      "hash": "444ef0db08a62d30713aa74253f4c96c0342118c",
      "subject": "EWS counts a build as a \"failure\" if its log contains \"error:\" even if it's not actually an error"
    }
  },
  "date": "2026-06-26",
  "days": 1,
  "generatedAt": "2026-06-26T22:07:44Z",
  "markdown": "## Highlights\n- **Security** WebKit now re-derives WebContent-supplied origins in the UI process at four system-service call sites, closing a cross-process trust boundary bug. [commit 315884@main](https://commits.webkit.org/315884@main) [bug 315534](https://bugs.webkit.org/show_bug.cgi?id=315534)\n- **A11y** VoiceOver can now reach content inside presentational local iframes, fixing a real navigation hole for assistive tech users. [commit 315933@main](https://commits.webkit.org/315933@main) [bug 317808](https://bugs.webkit.org/show_bug.cgi?id=317808)\n- **Media** WebKit backed MediaPlayerPrivateWebM out of the GPU process and tightened MediaContainment registration, reducing crash surface in media playback paths. [commit 315910@main](https://commits.webkit.org/315910@main) [bug 317836](https://bugs.webkit.org/show_bug.cgi?id=317836)\n- **Web Platform** Digital Credentials got a spec-correct sweep: cancellation now rejects with NotAllowedError and Credential.type returns \"digital-credential\". [commit 315895@main](https://commits.webkit.org/315895@main) [bug 313735](https://bugs.webkit.org/show_bug.cgi?id=313735)\n- **Rendering** CSS Scroll Snap behavior moved closer to spec by preferring focused or fragment-targeted snap areas during re-snap. [commit 315880@main](https://commits.webkit.org/315880@main) [bug 317481](https://bugs.webkit.org/show_bug.cgi?id=317481)\n- **GPU** GTK and WPE re-enabled Skia compositor DDL by default, a notable platform-side rendering throughput change. [commit 315874@main](https://commits.webkit.org/315874@main) [bug 317841](https://bugs.webkit.org/show_bug.cgi?id=317841)\n- **V8** JavaScriptCore tightened spec compliance and debugging metadata with Temporal alignment work, spread iterator expression info fixes, and a YARR JIT regex bug fix. [commit 315868@main](https://commits.webkit.org/315868@main) [bug 317877](https://bugs.webkit.org/show_bug.cgi?id=317877)\n- **UI** WKWebView PDF export no longer produces broken text underlines, fixing a visible document output regression. [commit 315888@main](https://commits.webkit.org/315888@main) [bug 317820](https://bugs.webkit.org/show_bug.cgi?id=317820)\n- **Security** `git-webkit pr` no longer risks leaking Bugzilla credentials to stdout on timeout paths. [commit 315864@main](https://commits.webkit.org/315864@main) [bug 317765](https://bugs.webkit.org/show_bug.cgi?id=317765)\n\n## What landed by area\n\n### Web Platform and DOM\n- **Web Platform** IntersectionObserver now handles non-main frames that have no parent instead of assuming a parent always exists. [commit 315930@main](https://commits.webkit.org/315930@main) [bug 317691](https://bugs.webkit.org/show_bug.cgi?id=317691)\n- **Web Platform** ResizeObserver no longer crashes when an observation target disappears before size computation. [commit 315929@main](https://commits.webkit.org/315929@main) [bug 317698](https://bugs.webkit.org/show_bug.cgi?id=317698)\n- **Web Platform** Added parse-time grammar support for CSS Values 5 `random-item()`. [commit 315908@main](https://commits.webkit.org/315908@main) [bug 317675](https://bugs.webkit.org/show_bug.cgi?id=317675)\n- **Web Platform** Added support for more eSIM autocomplete tokens, expanding form autofill interoperability. [commit 315909@main](https://commits.webkit.org/315909@main) [bug 317784](https://bugs.webkit.org/show_bug.cgi?id=317784)\n- **Web Platform** Imported navigation timing WPT updates to keep timing behavior aligned with upstream expectations. [commit 315871@main](https://commits.webkit.org/315871@main) [bug 317764](https://bugs.webkit.org/show_bug.cgi?id=317764)\n- **Web Platform** Rewrote notch WPT coverage, likely to stabilize viewport and safe-area test expectations. [commit 315899@main](https://commits.webkit.org/315899@main) [bug 317855](https://bugs.webkit.org/show_bug.cgi?id=317855)\n- **Web Platform** Added CornerShapeUtilities stubs, laying plumbing for future corner-shape work. [commit 315862@main](https://commits.webkit.org/315862@main) [bug 317682](https://bugs.webkit.org/show_bug.cgi?id=317682)\n- **Rendering** LegacySVG now uses NeverDestroyed for its shared solid painting resource singleton. [commit 315878@main](https://commits.webkit.org/315878@main) [bug 317813](https://bugs.webkit.org/show_bug.cgi?id=317813)\n\n### CSS, layout, and editing\n- **Rendering** CSS Scroll Snap re-snap now prefers a snap area containing the focused or fragment-targeted element. [commit 315927@main](https://commits.webkit.org/315927@main) [bug 317915](https://bugs.webkit.org/show_bug.cgi?id=317915)\n- **Rendering** Grid formatting context code now has extracted helpers for stretched block sizing. [commit 315914@main](https://commits.webkit.org/315914@main) [bug 317885](https://bugs.webkit.org/show_bug.cgi?id=317885)\n- **Rendering** GridLayoutUtils gained `preferredSizeBehavesAsAuto`, continuing GFC sizing cleanup. [commit 315911@main](https://commits.webkit.org/315911@main) [bug 317235](https://bugs.webkit.org/show_bug.cgi?id=317235)\n- **UI** Smart Lists backspace behavior now removes formatting instead of deleting the whole list line. [commit 315904@main](https://commits.webkit.org/315904@main) [bug 317665](https://bugs.webkit.org/show_bug.cgi?id=317665)\n- **Rendering** WebKit resynced css-scroll-snap tests from upstream WPT. [commit 315875@main](https://commits.webkit.org/315875@main) [bug 317595](https://bugs.webkit.org/show_bug.cgi?id=317595)\n- **Rendering** A passing targeted-element scroll snap test was unskipped after proving reliable. [commit 315898@main](https://commits.webkit.org/315898@main) [bug 317918](https://bugs.webkit.org/show_bug.cgi?id=317918)\n- **Refactor** Removed a duplicate include from CSSPropertyParserConsumer+Masking.cpp. [commit 315924@main](https://commits.webkit.org/315924@main) [bug 317944](https://bugs.webkit.org/show_bug.cgi?id=317944)\n\n### Site isolation, navigation, and process model\n- **Security** Per-frame back-forward walking no longer dispatches dead BF frame items that could navigate the main frame to an iframe URL. [commit 315925@main](https://commits.webkit.org/315925@main) [bug 317799](https://bugs.webkit.org/show_bug.cgi?id=317799)\n- **Rendering** RemoteFrameViews now get synchronized scroll positions when LocalFrameView changes. [commit 315872@main](https://commits.webkit.org/315872@main) [bug 317152](https://bugs.webkit.org/show_bug.cgi?id=317152)\n- **Refactor** Site Isolation now replaces FrameState payloads in place instead of swapping the whole struct. [commit 315858@main](https://commits.webkit.org/315858@main) [bug 317857](https://bugs.webkit.org/show_bug.cgi?id=317857)\n- **Networking** WebContent process termination from MESSAGE_CHECK in `WebProcessProxy::didPostMessage()` was fixed. [commit 315907@main](https://commits.webkit.org/315907@main) [bug 317910](https://bugs.webkit.org/show_bug.cgi?id=317910)\n- **Perf** NavigationActionData no longer serializes and reparses the navigation URL twice. [commit 315860@main](https://commits.webkit.org/315860@main) [bug 317812](https://bugs.webkit.org/show_bug.cgi?id=317812)\n- **Networking** App-provided NSURLRequest properties are preserved instead of being dropped. [commit 315856@main](https://commits.webkit.org/315856@main) [bug 317872](https://bugs.webkit.org/show_bug.cgi?id=317872)\n- **Web Platform** Navigation now null-checks window in `hasEntriesAndEventsDisabled()`, avoiding a crashy edge case. [commit 315855@main](https://commits.webkit.org/315855@main) [bug 317805](https://bugs.webkit.org/show_bug.cgi?id=317805)\n- **Mobile** A regression in PreferredHTTPSPolicy automatic HTTP fallback after process termination was fixed on iOS. [commit 315863@main](https://commits.webkit.org/315863@main) [bug 317800](https://bugs.webkit.org/show_bug.cgi?id=317800)\n- **Refactor** ProcessStateMonitor is now only used for processes actually managed by RunningBoard. [commit 315902@main](https://commits.webkit.org/315902@main) [bug 317905](https://bugs.webkit.org/show_bug.cgi?id=317905)\n- **Rendering** Rare null dereferences under `LocalFrameView::textFragmentIndicatorTimerFired()` were fixed. [commit 315876@main](https://commits.webkit.org/315876@main) [bug 317908](https://bugs.webkit.org/show_bug.cgi?id=317908)\n\n### Media, WebGL, WebGPU, and graphics\n- **Media** MediaPlayerPrivateWebM is no longer eligible to run in the GPU process. [commit 315910@main](https://commits.webkit.org/315910@main) [bug 317836](https://bugs.webkit.org/show_bug.cgi?id=317836)\n- **Media** MediaPlayerPrivateWebM and MediaSourceAVFObjC are no longer registered for GPU-process playback when MediaContainment is enabled. [commit 315905@main](https://commits.webkit.org/315905@main) [bug 317846](https://bugs.webkit.org/show_bug.cgi?id=317846)\n- **Media** Speech recognition now keeps its audio session active while the microphone is capturing. [commit 315887@main](https://commits.webkit.org/315887@main) [bug 317741](https://bugs.webkit.org/show_bug.cgi?id=317741)\n- **Media** Fixed a null pointer crash in `SharedVideoFrameInfo::writePixelBuffer` for protected IOSurface paths. [commit 315886@main](https://commits.webkit.org/315886@main) [bug 317842](https://bugs.webkit.org/show_bug.cgi?id=317842)\n- **Media** Fixed a crash in `TrackBuffer::removeCodedFrames(...)`. [commit 315869@main](https://commits.webkit.org/315869@main) [bug 317770](https://bugs.webkit.org/show_bug.cgi?id=317770)\n- **Media** Enabled the software VP9 decoder by default on iOS simulators. [commit 315881@main](https://commits.webkit.org/315881@main) [bug 317835](https://bugs.webkit.org/show_bug.cgi?id=317835)\n- **GPU** WebGL no longer queries GL limits synchronously during context initialization. [commit 315889@main](https://commits.webkit.org/315889@main) [bug 317746](https://bugs.webkit.org/show_bug.cgi?id=317746)\n- **GPU** WebGL now uses default framebuffer properties from WebGLDefaultFramebuffer. [commit 315882@main](https://commits.webkit.org/315882@main) [bug 317748](https://bugs.webkit.org/show_bug.cgi?id=317748)\n- **GPU** WebGPU test fixes landed for shader execution padding coverage. [commit 315922@main](https://commits.webkit.org/315922@main) [bug 317844](https://bugs.webkit.org/show_bug.cgi?id=317844)\n- **GPU** WebGPU test fixes also landed for shader execution memory layout coverage. [commit 315849@main](https://commits.webkit.org/315849@main) [bug 317757](https://bugs.webkit.org/show_bug.cgi?id=317757)\n- **Perf** Skia now caps internal resource cache size and glyph-cache texture usage. [commit 315883@main](https://commits.webkit.org/315883@main) [bug 317914](https://bugs.webkit.org/show_bug.cgi?id=317914)\n- **GPU** The GPU process sandbox now allows mach-lookup for `com.apple.gputools.service`. [commit 315912@main](https://commits.webkit.org/315912@main) [bug 317932](https://bugs.webkit.org/show_bug.cgi?id=317932)\n- **GPU** GTK and WPE re-enabled Skia compositor DDL by default. [commit 315874@main](https://commits.webkit.org/315874@main) [bug 317841](https://bugs.webkit.org/show_bug.cgi?id=317841)\n- **Security** WebXR code now uses safer downcasts for WebGL layer backings. [commit 315877@main](https://commits.webkit.org/315877@main) [bug 317911](https://bugs.webkit.org/show_bug.cgi?id=317911)\n- **Refactor** OpenXR source with the wrong LGPL header was corrected to WebKit's BSD license. [commit 315879@main](https://commits.webkit.org/315879@main) [bug 317909](https://bugs.webkit.org/show_bug.cgi?id=317909)\n\n### Accessibility and platform UI\n- **A11y** AXObjectCacheIOS now retains the element when posting platform notifications, fixing a lifetime hazard. [commit 315932@main](https://commits.webkit.org/315932@main) [bug 317951](https://bugs.webkit.org/show_bug.cgi?id=317951)\n- **A11y** Accessibility soft-linking was consolidated into shared `LibAccessibilitySoftLink.{h,mm}`. [commit 315903@main](https://commits.webkit.org/315903@main) [bug 317797](https://bugs.webkit.org/show_bug.cgi?id=317797)\n- **UI** AppKit gesture tests got a cleanup follow-up after earlier work. [commit 315919@main](https://commits.webkit.org/315919@main) [bug 317947](https://bugs.webkit.org/show_bug.cgi?id=317947)\n- **UI** tvOS placards are no longer incorrectly hidden when built-in media controls are invisible. [commit 315861@main](https://commits.webkit.org/315861@main) [bug 317895](https://bugs.webkit.org/show_bug.cgi?id=317895)\n- **UI** Lens fullscreen playback can no longer bypass user-gesture pause by calling `video.play()` from a `pause` handler. [commit 315918@main](https://commits.webkit.org/315918@main) [bug 317617](https://bugs.webkit.org/show_bug.cgi?id=317617)\n\n### JavaScript, Wasm, and low-level runtime\n- **V8** JavaScriptCore polished `Temporal.Duration` round and total behavior to match the spec more closely. [commit 315868@main](https://commits.webkit.org/315868@main) [bug 317877](https://bugs.webkit.org/show_bug.cgi?id=317877)\n- **V8** JSC now emits expression info before `[Symbol.iterator]` get and spread, improving debugger and exception fidelity. [commit 315867@main](https://commits.webkit.org/315867@main) [bug 317733](https://bugs.webkit.org/show_bug.cgi?id=317733)\n- **V8** YARR fixed a JIT backreference bug with non-BMP characters that could skip the next match start. [commit 315866@main](https://commits.webkit.org/315866@main) [bug 317626](https://bugs.webkit.org/show_bug.cgi?id=317626)\n- **Web Platform** Wasm Memory64 parsing now handles data-segment init expressions correctly. [commit 315915@main](https://commits.webkit.org/315915@main) [bug 317794](https://bugs.webkit.org/show_bug.cgi?id=317794)\n- **Security** libpas reworked per-heap tagging policy logic. [commit 315921@main](https://commits.webkit.org/315921@main) [bug 316145](https://bugs.webkit.org/show_bug.cgi?id=316145)\n\n### Build, tooling, and test infrastructure\n- **Build** `build-and-analyze` gained an option to enable `-fexperimental-late-parse-attributes`. [commit 315757@main](https://commits.webkit.org/315757@main) [bug 317955](https://bugs.webkit.org/show_bug.cgi?id=317955)\n- **Build** CMake fixed WebKitLegacy linkage and now uses a headermap for forwarded headers. [commit 315931@main](https://commits.webkit.org/315931@main) [bug 317892](https://bugs.webkit.org/show_bug.cgi?id=317892)\n- **Build** CMake iOS builds now work with C++ and Swift interop. [commit 315916@main](https://commits.webkit.org/315916@main) [bug 317685](https://bugs.webkit.org/show_bug.cgi?id=317685)\n- **Build** CMake test resources are copied into TestWebKitAPIResources.bundle instead of symlinked. [commit 315906@main](https://commits.webkit.org/315906@main) [bug 317902](https://bugs.webkit.org/show_bug.cgi?id=317902)\n- **Build** MiniBrowser startup in the CMake port was fixed in `BrowserAppDelegate targetURL`. [commit 315900@main](https://commits.webkit.org/315900@main) [bug 317896](https://bugs.webkit.org/show_bug.cgi?id=317896)\n- **Build** Fixed a non-unified Mac build break. [commit 315896@main](https://commits.webkit.org/315896@main) [bug 317727](https://bugs.webkit.org/show_bug.cgi?id=317727)\n- **Build** PGO diagnostics were demoted back to warnings. [commit 315894@main](https://commits.webkit.org/315894@main) [bug 317930](https://bugs.webkit.org/show_bug.cgi?id=317930)\n- **Build** Python tooling deps including pytest were bumped for Python 3.14 compatibility. [commit 315890@main](https://commits.webkit.org/315890@main) [bug 317850](https://bugs.webkit.org/show_bug.cgi?id=317850)\n- **Build** WebDriver's W3C executor now forces the `fork` multiprocessing start method for Python 3.14 compatibility. [commit 315885@main](https://commits.webkit.org/315885@main) [bug 317863](https://bugs.webkit.org/show_bug.cgi?id=317863)\n- **Build** The custom library module verifier now exits non-zero on failure, making CI failures real failures. [commit 315870@main](https://commits.webkit.org/315870@main) [bug 317904](https://bugs.webkit.org/show_bug.cgi?id=317904)\n- **Build** `run-webkit-tests` now supports recursive globs. [commit 315857@main](https://commits.webkit.org/315857@main) [bug 317871](https://bugs.webkit.org/show_bug.cgi?id=317871)\n- **Build** CMake fixed ObjC type redefinition errors when multiple WebKit checkouts are present. [commit 315854@main](https://commits.webkit.org/315854@main) [bug 317875](https://bugs.webkit.org/show_bug.cgi?id=317875)\n- **Build** A macOS 27 CMake regression that broke the MiniBrowser WK2 window was fixed. [commit 315851@main](https://commits.webkit.org/315851@main) [bug 317880](https://bugs.webkit.org/show_bug.cgi?id=317880)\n- **Refactor** Fixed include-case mismatches in two places. [commit 315928@main](https://commits.webkit.org/315928@main) [bug 317949](https://bugs.webkit.org/show_bug.cgi?id=317949)\n- **Refactor** webkitpy ports factory got style cleanups. [commit 315913@main](https://commits.webkit.org/315913@main) [bug 317633](https://bugs.webkit.org/show_bug.cgi?id=317633)\n\n### Swift in WebKit\n- **Refactor** Swift in WebKit removed an unused `CxxVectorIterator` type. [commit 315873@main](https://commits.webkit.org/315873@main) [bug 317906](https://bugs.webkit.org/show_bug.cgi?id=317906)\n- **Build** PAL adopted `-clang-header-expose-decls=has-expose-attr-or-stdlib` for Swift interop. [commit 315865@main](https://commits.webkit.org/315865@main) [bug 317883](https://bugs.webkit.org/show_bug.cgi?id=317883)\n- **Refactor** More unnecessary `unsafe` usage was removed from Swift in WebKit. [commit 315853@main](https://commits.webkit.org/315853@main) [bug 317878](https://bugs.webkit.org/show_bug.cgi?id=317878)\n- **Security** A stack address suppression was removed from Swift Back Forward List. [commit 315897@main](https://commits.webkit.org/315897@main) [bug 317920](https://bugs.webkit.org/show_bug.cgi?id=317920)\n\n### Digital Credentials and test gardening\n- **Web Platform** Digital Credentials now transitions CredentialRequestCoordinator to Requesting before setting the promise. [commit 315893@main](https://commits.webkit.org/315893@main) [bug 309625](https://bugs.webkit.org/show_bug.cgi?id=309625)\n- **Web Platform** Credential.type now returns the spec-correct \"digital-credential\" value. [commit 315891@main](https://commits.webkit.org/315891@main) [bug 317840](https://bugs.webkit.org/show_bug.cgi?id=317840)\n- **Build** A constant digital-credentials WPT text failure was gardened. [commit 315926@main](https://commits.webkit.org/315926@main) [bug 317884](https://bugs.webkit.org/show_bug.cgi?id=317884)\n- **Build** The same digital-credentials WPT regression got a second gardening pass. [commit 315917@main](https://commits.webkit.org/315917@main) [bug 317884](https://bugs.webkit.org/show_bug.cgi?id=317884)\n- **Build** GTK and WPE test gardening landed for the 2026-06-26 batch. [commit 315934@main](https://commits.webkit.org/315934@main) [bug 317977](https://bugs.webkit.org/show_bug.cgi?id=317977)\n- **Build** An iOS WebAuthenticationPanel timeout was marked as flaky in gardening. [commit 315859@main](https://commits.webkit.org/315859@main) [bug 317891](https://bugs.webkit.org/show_bug.cgi?id=317891)\n- **Build** Multiple iOS WPT text-diff flakes were gardened. [commit 315852@main](https://commits.webkit.org/315852@main) [bug 317882](https://bugs.webkit.org/show_bug.cgi?id=317882)\n- **Build** A constant media-source image failure was handled in test infrastructure. [commit 315920@main](https://commits.webkit.org/315920@main) [bug 317937](https://bugs.webkit.org/show_bug.cgi?id=317937)\n- **Build** A macOS NowPlaying TestWebKitAPI crash regression was fixed. [commit 315850@main](https://commits.webkit.org/315850@main) [bug 317214](https://bugs.webkit.org/show_bug.cgi?id=317214)\n\n### EWS and infrastructure reliability\n- **Build** EWS no longer treats any log containing `error:` as an automatic build failure, cutting false alarms. [commit 315935@main](https://commits.webkit.org/315935@main) [bug 317550](https://bugs.webkit.org/show_bug.cgi?id=317550)\n- **Build** EWS false positives from results-db query failures were fixed. [commit 315901@main](https://commits.webkit.org/315901@main) [bug 317856](https://bugs.webkit.org/show_bug.cgi?id=317856)\n- **Networking** A GLib IPC encoder desync on certificate extraction failure was fixed. [commit 315892@main](https://commits.webkit.org/315892@main) [bug 317922](https://bugs.webkit.org/show_bug.cgi?id=317922)\n\n## Reverts \u0026 Reapplies",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [],
  "since": "2026-06-26",
  "totals": {
    "commits": 87,
    "features": 87,
    "rolls": 0
  },
  "until": "2026-06-26"
}