{
  "commits": {
    "315967@main": {
      "author": "Pouneh Bahrami",
      "avatar": "https://www.gravatar.com/avatar/c3e7b86f60b5dae1470ceeb5d929f12d?d=identicon\u0026s=64",
      "cl": "315967@main",
      "clUrl": "https://commits.webkit.org/315967@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318747\nrdar://181170547\n\nReviewed by Charlie Wolfe.\n\nThe regression happended because of changes in https://commits.webkit.org/315967@main.\nThe fix updates the test to pass.\n\n* LayoutTests/ipc/networksessioncocoa-empty-resource-request.html:\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316647@main",
      "email": "pbahrami@apple.com",
      "hash": "9c46b12ce2b1c4aa23a10252daeddfd3e58f23a8",
      "subject": "ipc/networksessioncocoa-empty-resource-request.html is constant text failure"
    },
    "316583@main": {
      "author": "Andy Estes",
      "avatar": "https://www.gravatar.com/avatar/643f10f01b26fd94d03482a2013b2ea0?d=identicon\u0026s=64",
      "cl": "316583@main",
      "clUrl": "https://commits.webkit.org/316583@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318727\nrdar://181531817\n\nReviewed by Jer Noble.\n\nMigrated WKAVContentSource conformance from AVInterfaceVideoPlaybackControllable to\nAVPlaybackUserInterfaceVideoControllable, as the former is deprecated.\n\n* Source/WebKit/Platform/ios/PlaybackSessionInterfaceAVKit.mm:\n(WebKit::PlaybackSessionInterfaceAVKit::durationChanged):\n(WebKit::PlaybackSessionInterfaceAVKit::currentTimeChanged):\n(WebKit::mediaSelectionOptionSource):\n* Source/WebKit/Platform/ios/WKAVContentSource.h:\n* Source/WebKit/Platform/ios/WKAVContentSource.mm:\n(emptyTimelineSegment):\n(playbackPosition):\n(-[WKAVContentSource initWithModel:]):\n(-[WKAVContentSource setSupportedSeekCapabilities:]):\n(-[WKAVContentSource setAudioOptions:]):\n(-[WKAVContentSource setLegibleOptions:]):\n(-[WKAVContentSource setMetadata:]):\n(-[WKAVContentSource setPlaybackPositionInternal:hostTime:]):\n(-[WKAVContentSource playbackPosition]):\n(-[WKAVContentSource seekToPosition:tolerance:]):\n(-[WKAVContentSource segments]):\n(-[WKAVContentSource currentSegment]):\n(-[WKAVContentSource state]):\n(-[WKAVContentSource setState:]):\n(-[WKAVContentSource supportedSeekCapabilities]):\n(-[WKAVContentSource error]):\n(-[WKAVContentSource currentAudioOption]):\n(-[WKAVContentSource setCurrentAudioOption:]):\n(-[WKAVContentSource currentAudioDescriptionOption]):\n(-[WKAVContentSource setCurrentAudioDescriptionOption:]):\n(-[WKAVContentSource currentLegibleOption]):\n(-[WKAVContentSource setCurrentLegibleOption:]):\n(-[WKAVContentSource audioOptions]):\n(-[WKAVContentSource audioDescriptionOptions]):\n(-[WKAVContentSource legibleOptions]):\n(-[WKAVContentSource metadata]):\n(createPlatformMetadata):\n(-[WKAVContentSource setCurrentPlaybackPositionInternal:]): Deleted.\n(-[WKAVContentSource currentValue]): Deleted.\n(-[WKAVContentSource setCurrentValue:]): Deleted.\n(-[WKAVContentSource currentPlaybackPosition]): Deleted.\n(-[WKAVContentSource setCurrentPlaybackPosition:]): Deleted.\n(-[WKAVContentSource playbackError]): Deleted.\n\nCanonical link: https://commits.webkit.org/316583@main",
      "email": "aestes@apple.com",
      "hash": "e240526ac582e5f58ab171e07343eb76aeaf55ba",
      "subject": "[iOS] WKAVContentSource should conform to AVPlaybackUserInterfaceVideoControllable"
    },
    "316584@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "316584@main",
      "clUrl": "https://commits.webkit.org/316584@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318654\nrdar://181463337\n\nReviewed by Sihui Liu.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nIDBObjectStore::openKeyCursor(JSGlobalObject\u0026, JSValue, IDBCursorDirection),\nthe overload taking a single key value, incorrectly routed through\ndoOpenCursor() (which creates a CursorType::KeyAndValue cursor) instead of\ndoOpenKeyCursor() (CursorType::KeyOnly). As a result,\nstore.openKeyCursor(someKey) returned an IDBCursorWithValue that fetched the\nfull record value, rather than a key-only cursor exposing only key and\nprimaryKey.\n\nOnly this JSValue overload was affected; the RefPtr\u003cIDBKeyRange\u003e and no-argument\npaths already routed to doOpenKeyCursor(). Chrome and Firefox already return a\nkey-only cursor here, so this aligns WebKit with the other engines and the\nIndexedDB specification.\n\nTest: storage/indexeddb/openkeycursor-key-only.html\n\n* LayoutTests/storage/indexeddb/openkeycursor-key-only-expected.txt: Added.\n* LayoutTests/storage/indexeddb/openkeycursor-key-only.html: Added.\n* LayoutTests/storage/indexeddb/resources/openkeycursor-key-only.js: Added.\n(prepareDatabase):\n(testKeyOnlyCursor.request.onsuccess):\n(testKeyOnlyCursor):\n* Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:\n(WebCore::IDBObjectStore::openKeyCursor):\n\nCanonical link: https://commits.webkit.org/316584@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "f0adce087927aedb358889dc066681d9dc3b40df",
      "subject": "IDBObjectStore.openKeyCursor() with a key value returns a value-carrying cursor instead of a key-only cursor"
    },
    "316585@main": {
      "author": "Gerald Squelart",
      "avatar": "https://www.gravatar.com/avatar/894904f08d85651bf2a76868a4d2f1b3?d=identicon\u0026s=64",
      "cl": "316585@main",
      "clUrl": "https://commits.webkit.org/316585@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318403\nrdar://173713514\n\nReviewed by Dan Glastonbury.\n\nA 2D OffscreenCanvas used by a shared or service worker that was running\nin its own process was backed by a local accelerated IOSurface ImageBuffer\nin that worker's WebContent process.\nReading that canvas back (convertToBlob/getImageData) flushed deferred\nCoreAnimation draws in-process, but The WebContent sandbox denies the\ncom.apple.MTLCompilerService calls, so CoreAnimation aborted and the\nprocess crashed at CA::OGL::MetalContext::create_fragment_shader.\n\nFix GPUProcessWebWorkerClient::createImageBuffer to return an\nunaccelerated ImageBuffer instead of nullptr when the buffer cannot be\nremoted to the GPU process. This keeps the worker from ever creating a\nlocal IOSurface-backed canvas, so no in-process CoreAnimation/Metal work\nis triggered.\n\n(This change here just removes the crash; A future change could instead\nremote worker canvases to the GPU process to retain acceleration, see\nbug 318656.)\n\n* LayoutTests/fast/canvas/offscreencanvas-in-dedicated-worker-readback-expected.txt: Added.\n* LayoutTests/fast/canvas/offscreencanvas-in-dedicated-worker-readback.html: Added.\n* LayoutTests/fast/canvas/offscreencanvas-in-shared-worker-readback-expected.txt: Added.\n* LayoutTests/fast/canvas/offscreencanvas-in-shared-worker-readback.html: Added.\n* LayoutTests/fast/canvas/resources/offscreencanvas-readback-shared-worker.js: Added.\n* LayoutTests/fast/canvas/resources/offscreencanvas-readback-worker.js: Added.\n* LayoutTests/http/wpt/service-workers/offscreencanvas-in-separate-service-worker-process-cpu-fallback.https-expected.txt: Added.\n* LayoutTests/http/wpt/service-workers/offscreencanvas-in-separate-service-worker-process-cpu-fallback.https.html: Added.\n* LayoutTests/http/wpt/service-workers/offscreencanvas-in-separate-service-worker-process-worker.js: Added.\n* LayoutTests/http/wpt/service-workers/offscreencanvas-in-separate-service-worker-process.https-expected.txt: Added.\n* LayoutTests/http/wpt/service-workers/offscreencanvas-in-separate-service-worker-process.https.html: Added.\n* LayoutTests/platform/win/TestExpectations:\n* Source/WebCore/html/CanvasBase.cpp:\n(WebCore::CanvasBase::makeRenderingResultsAvailable):\n* Source/WebCore/platform/graphics/ImageBuffer.cpp:\n(WebCore::ImageBuffer::isRemoteImageBufferProxy const):\n* Source/WebCore/platform/graphics/ImageBuffer.h:\n* Source/WebCore/testing/ServiceWorkerInternals.cpp:\n(WebCore::ServiceWorkerInternals::effectiveRenderingModeOfNewlyCreatedAcceleratedCanvasBuffer):\n* Source/WebCore/testing/ServiceWorkerInternals.h:\n* Source/WebCore/testing/ServiceWorkerInternals.idl:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:\n* Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.cpp:\n(WebKit::GPUProcessWebWorkerClient::createImageBuffer const):\n\nCanonical link: https://commits.webkit.org/316585@main",
      "email": "g_squelart@apple.com",
      "hash": "be4009feb0c469264698b51c4e48757a8327df12",
      "subject": "Worker OffscreenCanvas crashes in a page-less worker process"
    },
    "316586@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "316586@main",
      "clUrl": "https://commits.webkit.org/316586@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318732\nrdar://181534816\n\nUnreviewed test gardening\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316586@main",
      "email": "darbinyan@apple.com",
      "hash": "2f801fb33dd1945a025197b9977df015900cd310",
      "subject": "[Gradening]: REGRESSION(316467@main): [macOS] http/tests/site-isolation/page-zoom.html is a flaky image diff"
    },
    "316587@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "316587@main",
      "clUrl": "https://commits.webkit.org/316587@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318714\nrdar://181526020\n\nReviewed by Yusuke Suzuki.\n\nAdd per-step spec annotations across every prototype op and fix a\nspec-order divergence in withPlainTime (ToTemporalTime was called\nbefore GetISODateTimeFor). Corrected a spec-numbering error in\nTemporalZonedDateTime::from. Simplified funcFrom to drop an\nunnecessary ThrowScope.\n\nAdded JSTests/stress/temporal-zoned-datetime-until-since.js covering\nthe five until/since cases (same-tz + time/date largestUnit, cross-tz\n+ time/date largestUnit, epochNs-equal).\n\nTests:\nJSTests/stress/temporal-zoned-datetime-until-since.js\n\nCanonical link: https://commits.webkit.org/316587@main",
      "email": "yijia_huang@apple.com",
      "hash": "1482a7ad4add5a700e3b6ca6403a2a5823ac8794",
      "subject": "[JSC][Temporal] Polish Temporal.ZonedDateTime: spec alignment and step annotations"
    },
    "316588@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "316588@main",
      "clUrl": "https://commits.webkit.org/316588@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318653\nrdar://181461212\n\nReviewed by Yijia Huang.\n\nWe make Air::simplifyCFG better by reorganizing it into a single path\nform instead of fix-point iteration to avoid repeated graph iterations.\n\n1. When folding thread of basic blocks with only one jump, we chase the\n   final target instead of folding only one. So we can quickly fold them.\n   When the basic blocks are constructing a loop (and they are orphans\n   since there is no entrance), then this chase never finishes. So we\n   deploy Floyd's cycle detection mechanism to avoid this case. But note\n   that this cycle should be extremely rare.\n2. Other rewrites are as-is.\n\nWe found that by (1), 99.9% of conversion can be covered by a single-path.\n\n* Source/JavaScriptCore/b3/air/AirSimplifyCFG.cpp:\n(JSC::B3::Air::simplifyCFG):\n\nCanonical link: https://commits.webkit.org/316588@main",
      "email": "ysuzuki@apple.com",
      "hash": "5d5a2e3a036f05666f9f21cb2026896b9f0d8a05",
      "subject": "[JSC] Make Air::simplifyCFG single path by chasing foldable blocks repeatedly"
    },
    "316589@main": {
      "author": "Joanne Pan",
      "avatar": "https://www.gravatar.com/avatar/5cbbf578426a0c98cb5c977ca2dd88fc?d=identicon\u0026s=64",
      "cl": "316589@main",
      "clUrl": "https://commits.webkit.org/316589@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317702\nrdar://180457609\n\nReviewed by Tim Nguyen.\n\nFollow-up to #67706 (parse-time argument grammar, now landed). This resolves\nrandom-item() at computed-value time.\n\nFollowing substituteAttrFunction, substituteRandomItemFunction:\n1. Substitutes the argument grammar first (so var() in the key resolve),\n2. Parses the first argument as a \u003crandom-key\u003e,\n3. Selects one item via the random base value (round(down, R * N, 1)),\n4. Substitutes the chosen item.\n\nSpec: https://drafts.csswg.org/css-values-5/#funcdef-random-item (grammar verified\nagainst the current ED).\n\nThe \u003crandom-key\u003e subset here matches random()'s current support: auto | \u003cdashed-ident\u003e | element-scoped\n| fixed \u003cnumber [0,1]\u003e. The remaining \u003crandom-cache-key\u003e keywords (property-scoped |\nproperty-index-scoped | \u003crandom-ua-ident\u003e) are a separate follow-up, in sync with random().\n\nauto is keyed by a substitution-time index in a space separate from random()'s parse-time\ncssRandomFunctionCount, so an auto random-item() and an auto random() in the same property value can\nland on the same cache key and share a base value, and the index follows the selected branch rather\nthan parse position. Unifying the two counters is the job of the shared \u003crandom-key\u003e helper follow-up\n(rdar://180934069). A coexistence regression test is included.\n\nTests: imported/w3c/web-platform-tests/css/css-values/random-item-computed.html\n       imported/w3c/web-platform-tests/css/css-values/random-item-in-keyframe.html\n       imported/w3c/web-platform-tests/css/css-values/random-item-nested.html\n       imported/w3c/web-platform-tests/css/css-values/random-item-serialize.html\n       imported/w3c/web-platform-tests/css/css-values/random-item-unresolvable-argument.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-computed-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-computed.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-in-keyframe-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-in-keyframe.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-nested-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-nested.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-serialize-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-serialize.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-unresolvable-argument-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-unresolvable-argument.html: Added.\n* Source/WebCore/style/StyleSubstitutionResolver.cpp:\n(WebCore::Style::SubstitutionResolver::substituteVariableFunction):\n(WebCore::Style::SubstitutionResolver::substituteRandomItemFunction):\n(WebCore::Style::SubstitutionResolver::randomItemBaseValue):\n(WebCore::Style::SubstitutionResolver::substituteTokenRange):\n(WebCore::Style::SubstitutionResolver::substitute):\n* Source/WebCore/style/StyleSubstitutionResolver.h:\n\nCanonical link: https://commits.webkit.org/316589@main",
      "email": "jpan0917@gmail.com",
      "hash": "a2a0526673356774cd14b30ee6ee7701deb51eb9",
      "subject": "[css-values-5 random-item()] computed-value resolution (parse \u003crandom-key\u003e, select item)"
    },
    "316590@main": {
      "author": "Etienne Segonzac",
      "avatar": "https://www.gravatar.com/avatar/3566820d0ba7e035bc440dc736c17f0c?d=identicon\u0026s=64",
      "cl": "316590@main",
      "clUrl": "https://commits.webkit.org/316590@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318682\n\u003crdar://175277028\u003e\n\nReviewed by Simon Fraser.\n\nCheck if the renderer or any ancestor has a 0 opacity before generating\nan InteractionRegion. This fixes some \"phantom\" glow effects appearing\non transparent content.\n\nTest: interaction-region/opacity.html\n\n* LayoutTests/interaction-region/layer-tree-expected.txt:\nUpdated expectations since this test had an `opacity: 0` element.\n* LayoutTests/interaction-region/opacity-expected.txt: Added.\n* LayoutTests/interaction-region/opacity.html: Added.\nAdd a new test covering this.\n\n* Source/WebCore/page/InteractionRegion.cpp:\n(WebCore::interactionRegionForRenderedRegion):\nAdd `isEffectivelyTransparent()` check.\n\nCanonical link: https://commits.webkit.org/316590@main",
      "email": "sgz@apple.com",
      "hash": "2697079134d5692e1d4f5835dec913e849ccdee6",
      "subject": "[visionOS] Skip InteractionRegions when ancestor has opacity: 0"
    },
    "316591@main": {
      "author": "Tim Nguyen",
      "avatar": "https://www.gravatar.com/avatar/208c05ac2decdf818a4a08ada568328e?d=identicon\u0026s=64",
      "cl": "316591@main",
      "clUrl": "https://commits.webkit.org/316591@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318709\nrdar://181523119\n\nReviewed by Taher Ali.\n\nBe more explicit since there are multiple PDF rendering paths.\n\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/PlatformCocoa.cmake:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/dom/DOMImplementation.cpp:\n(WebCore::DOMImplementation::createDocument):\n* Source/WebCore/dom/Document.h:\n(WebCore::Document::isPDFJSDocument const):\n(WebCore::Document::isPDFDocument const): Deleted.\n* Source/WebCore/dom/DocumentClasses.h:\n* Source/WebCore/dom/EventListener.h:\n* Source/WebCore/html/PDFJSDocument.cpp: Renamed from Source/WebCore/html/PDFDocument.cpp.\n(WebCore::PDFJSDocumentParser::document const):\n(WebCore::PDFJSDocumentParser::appendBytes):\n(WebCore::PDFJSDocumentParser::finish):\n(WebCore::PDFJSDocumentEventListener::handleEvent):\n(WebCore::PDFJSDocumentEventListener::operator== const):\n(WebCore::PDFJSDocument::PDFJSDocument):\n(WebCore::PDFJSDocument::createParser):\n(WebCore::PDFJSDocument::createDocumentStructure):\n(WebCore::PDFJSDocument::updateDuringParsing):\n(WebCore::PDFJSDocument::finishedParsing):\n(WebCore::PDFJSDocument::postMessageToIframe):\n(WebCore::PDFJSDocument::sendPDFArrayBuffer):\n(WebCore::PDFJSDocument::finishLoadingPDF):\n(WebCore::PDFJSDocument::injectStyleAndContentScript):\n* Source/WebCore/html/PDFJSDocument.h: Renamed from Source/WebCore/html/PDFDocument.h.\n(isType):\n* Source/WebCore/loader/PolicyChecker.cpp:\n(WebCore::PolicyChecker::checkNavigationPolicy):\n* Source/WebCore/loader/ResourceLoader.cpp:\n(WebCore::ResourceLoader::isPDFJSResourceLoad const):\n* Source/WebCore/page/ContextMenuController.cpp:\n(WebCore::ContextMenuController::populate):\n(WebCore::ContextMenuController::addDebuggingItems):\n(WebCore::ContextMenuController::performPDFJSAction):\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n\nCanonical link: https://commits.webkit.org/316591@main",
      "email": "ntim@apple.com",
      "hash": "d2f342eeb886f2a78aaf8be9e7970b5160638f9c",
      "subject": "Rename PDFDocument to PDFJSDocument"
    },
    "316592@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "316592@main",
      "clUrl": "https://commits.webkit.org/316592@main",
      "description": "\u003chttps://bugs.webkit.org/show_bug.cgi?id=314581\u003e\n\u003crdar://174674075\u003e\n\nReviewed by Simon Fraser.\n\nDisplayList::applyItem() only special-cases DrawControlPart, so a nested\nDrawDisplayList item falls through to item.apply(context) and calls the\nsingle-arg GraphicsContext::drawDisplayList, which substitutes\nControlFactory::singleton(). A compromised WCP can wrap DrawControlPart\nitems in a nested DrawDisplayList and replay it on multiple\nRemoteRenderingBackends, racing the singleton ControlFactoryMac's shared\nNSCell state across GPU-process work-queue threads.\n\nThread ControlFactory through DrawDisplayList::apply() and special-case\nDrawDisplayList in applyItem() so nested replay uses the per-context\nfactory.\n\n* LayoutTests/ipc/nested-display-list-draw-control-part-crash-expected.txt: Added.\n* LayoutTests/ipc/nested-display-list-draw-control-part-crash.html: Added.\n* LayoutTests/platform/glib/TestExpectations:\n* Source/WebCore/platform/graphics/controls/ControlPart.cpp:\n(WebCore::ControlPart::setOverrideControlFactory):\n* Source/WebCore/platform/graphics/controls/ControlPart.h:\n(WebCore::ControlPart::setOverrideControlFactory): Deleted.\n* Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp:\n(WebCore::DisplayList::applyItem):\n* Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:\n(WebCore::DisplayList::DrawDisplayList::apply const):\n* Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:\n\nOriginally-landed-as: 305413.904@safari-7624-branch (28d3cd063035). rdar://180437330\nCanonical link: https://commits.webkit.org/316592@main",
      "email": "zakr@apple.com",
      "hash": "fc4afc4f03fcd3d301ae127f22ae4099c05b5ebc",
      "subject": "[CoreIPC] [GPUP] Nested DrawDisplayList Replay Falls Back to ControlFactory::singleton() Leads to Concurrent NSCell UAF"
    },
    "316593@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316593@main",
      "clUrl": "https://commits.webkit.org/316593@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318692\nrdar://181510062\n\nReviewed by Brady Eidson.\n\n309043@main removed compile-time macros around our WebTransport implementation with the intent to\nenable WebTransport \"everywhere\" in Safari Tech Preview.  However, this resulted in Safari Tech Preview\non old macOS enabling an incomplete and broken WebTransport implementation that can't be improved\nbecause it is built on top of a Network.framework that is no longer being updated.\n\nThis is a step towards only enabling WebTransport on platforms where it is completely supported\nand cleaning up the code.  nw_webtransport_options_set_allow_joining_before_ready was a big change\nin the initialization flow, so I use it as a check before returning a valid NetworkTransportSession.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WebTransport.mm\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WTF/wtf/PlatformHave.h:\n* Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportSessionCocoa.mm:\n(WebKit::createParameters):\n(WebKit::NetworkTransportSession::create):\n(WebKit::NetworkTransportSession::initialize):\n(WebKit::NetworkTransportSession::setupDatagramConnection):\n(WebKit::NetworkTransportSession::createStream):\n* Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:\n(WebKit::defaultWebTransportEnabled):\n* Source/WebKit/Shared/WebPreferencesDefaultValues.h:\n* Tools/TestWebKitAPI/Helpers/cocoa/WebTransportServer.mm:\n(TestWebKitAPI::WebTransportServer::isAvailable):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WebTransport.mm:\n(TestWebKitAPI::TEST(WebTransport, Worker)):\n(TestWebKitAPI::TEST(WebTransport, ServiceWorker)):\n(TestWebKitAPI::CreateStreamsBeforeReady)):\n\nCanonical link: https://commits.webkit.org/316593@main",
      "email": "achristensen@apple.com",
      "hash": "35e8180fb6a59d692d514729393ebd7f4810436a",
      "subject": "Remove support for WebTransport on Cocoa platforms without nw_webtransport_options_set_allow_joining_before_ready"
    },
    "316595@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "316595@main",
      "clUrl": "https://commits.webkit.org/316595@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318567\n\nReviewed by Alexey Proskuryakov.\n\nUse a `DocumentFragment` to update the DOM all-at-once instead of repeatedly adding children.\n\nGiven how frequently `WI.DataGrid` and `WI.Table` update, this might help performance.\n\n* Source/WebInspectorUI/UserInterface/Views/DataGrid.js:\n(WI.DataGrid.prototype.updateVisibleRows):\n* Source/WebInspectorUI/UserInterface/Views/Table.js:\n(WI.Table.prototype._updateVisibleRows):\n\nCanonical link: https://commits.webkit.org/316595@main",
      "email": "hi@devinrousso.com",
      "hash": "7680d6700159c773aaeae99830d01f7f18c537ff",
      "subject": "Web Inspector: batch DOM updates in `updateVisibleRows`"
    },
    "316596@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "316596@main",
      "clUrl": "https://commits.webkit.org/316596@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=258139\n\u003crdar://problem/111161371\u003e\n\nReviewed by Alexey Proskuryakov.\n\n* Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js:\n(WI.NetworkTableContentView.prototype._populateInitiatorCell):\n\nCanonical link: https://commits.webkit.org/316596@main",
      "email": "hi@devinrousso.com",
      "hash": "33e35dbab9f7e31487b0baa0c6add7b595e392df",
      "subject": "Web Inspector: Network tab Initiator link opens previously clicked location"
    },
    "316597@main": {
      "author": "Megan Gardner",
      "avatar": "https://www.gravatar.com/avatar/b466a5bcbfabf4d82a8ecc595db5a531?d=identicon\u0026s=64",
      "cl": "316597@main",
      "clUrl": "https://commits.webkit.org/316597@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318741\nrdar://178547114\n\nReviewed by Tim Horton and Abrar Rahman Protyasha.\n\nThe range finder skips anything in a \"search-invisible\" subtree, and it wrongly\ncounted display:contents as invisible: such an element has no renderer (so no RenderStyle)\neven though its subtree is rendered and searchable. This latent bug only bites\nthe *second* search the finder runs, because the first one starts at the top of the\ndocument and findPlainText locates the text before the block walk's skip matters.\nThat's why 310112@main exposed it: dropping the inline limit from 300 to 100 turned\nthese mid-length selections into start+end text instead of one inlined string, and the\nend-text search begins inside the display:contents subtree (right after the start\nmatch) where the whole subtree gets skipped -- so we never find the end and fall back\nto the plain page URL. GitHub wraps pull-request content in display:contents wrappers,\nwhich is why it shows up there. Fix: don't treat display:contents as search-invisible.\n\nTest: http/tests/scroll-to-text-fragment/generation-inside-display-contents.html\n\n* LayoutTests/http/tests/scroll-to-text-fragment/generation-inside-display-contents-expected.txt: Added.\n* LayoutTests/http/tests/scroll-to-text-fragment/generation-inside-display-contents-start-and-end-expected.txt: Added.\n* LayoutTests/http/tests/scroll-to-text-fragment/generation-inside-display-contents-start-and-end.html: Added.\n* LayoutTests/http/tests/scroll-to-text-fragment/generation-inside-display-contents.html: Added.\n* Source/WebCore/dom/FragmentDirectiveRangeFinder.cpp:\n(WebCore::FragmentDirectiveRangeFinder::isSearchInvisible):\n\nCanonical link: https://commits.webkit.org/316597@main",
      "email": "megan_gardner@apple.com",
      "hash": "0f96b26db8ad2125cb066fc544ee76f7b0cc93c8",
      "subject": "REGRESSION(310112@main): Copy link with highlight just uses the original page link"
    },
    "316598@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "316598@main",
      "clUrl": "https://commits.webkit.org/316598@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318670\nrdar://181477718\n\nReviewed by Keith Miller.\n\nThis patch adds LoadVarargs operation's fast path for TypedArrays.\n\n                                         ToT                     Patched\n\n    load-varargs-typed-array       32.3672+-0.2021     ^     15.8150+-0.1745        ^ definitely 2.0466x faster\n\nTests: JSTests/microbenchmarks/load-varargs-typed-array.js\n       JSTests/stress/load-varargs-typed-array.js\n\n* JSTests/microbenchmarks/load-varargs-typed-array.js: Added.\n(sink):\n* JSTests/stress/load-varargs-typed-array.js: Added.\n(shouldBe):\n(sumApply):\n(collect):\n(oracleSum):\n(test):\n* Source/JavaScriptCore/interpreter/Interpreter.cpp:\n(JSC::loadTypedArrayVarargs):\n(JSC::loadVarargs):\n\nCanonical link: https://commits.webkit.org/316598@main",
      "email": "ysuzuki@apple.com",
      "hash": "ed1cdcc9fbc2934625d33e7fe246fcebcea684d7",
      "subject": "[JSC] Add LoadVarargs operation's fast path for TypedArrays"
    },
    "316599@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "316599@main",
      "clUrl": "https://commits.webkit.org/316599@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317619\n\u003crdar://problem/180972849\u003e\n\nReviewed by Alexey Proskuryakov.\n\nUse the already provided protocol `DOM.Node.baseURL`.\n\n* Source/WebInspectorUI/UserInterface/Models/DOMNode.js:\n(WI.DOMNode):\n* Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:\n(WI.DOMTreeElement.prototype._buildAttributeDOM):\n\n* LayoutTests/inspector/dom/resolve-attribute-url-with-base-element.html: Added.\n* LayoutTests/inspector/dom/resolve-attribute-url-with-base-element-expected.txt: Added.\n* LayoutTests/inspector/dom/resources/base-element.html: Added.\n\nCanonical link: https://commits.webkit.org/316599@main",
      "email": "hi@devinrousso.com",
      "hash": "923d01508dbcf9ae23287223629ac6764639cd90",
      "subject": "Web Inspector: Copy Link doesn't respect \u003cbase\u003e element"
    },
    "316601@main": {
      "author": "Charlie Wolfe",
      "avatar": "https://www.gravatar.com/avatar/857b3b5ff3394c31fa2689310a93dbab?d=identicon\u0026s=64",
      "cl": "316601@main",
      "clUrl": "https://commits.webkit.org/316601@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=312832\nrdar://174708372\n\nReviewed by Rupin Mittal.\n\nLoadImageForDecoding accepted arbitrary ResourceRequest fields with only a url.isValid() check. This\nallowed file:// reads of NetworkProcess-sandbox files and credentialed cross-origin body reads via\nspoofed firstPartyForCookies.\n\nRestrict the URL to HTTP(S) and enforce allowsFirstPartyForCookies, matching every other\ncookie-touching IPC entry point.\n\nTest: ipc/load-image-for-decoding-file-url.html\n\n* LayoutTests/ipc/load-image-for-decoding-file-url-expected.txt: Added.\n* LayoutTests/ipc/load-image-for-decoding-file-url.html: Added.\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:\n(WebKit::NetworkConnectionToWebProcess::loadImageForDecoding):\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::loadAndDecodeImage):\n\nOriginally-landed-as: 305413.744@safari-7624-branch (f118e35bcfa5). rdar://180428370\nCanonical link: https://commits.webkit.org/316601@main",
      "email": "charliew@apple.com",
      "hash": "ccf0c4874cb25ab1fac973a60d6f291bc204a44a",
      "subject": "Add scheme and cookie access validation to LoadImageForDecoding"
    },
    "316602@main": {
      "author": "Rupin Mittal",
      "avatar": "https://www.gravatar.com/avatar/3e3de9845931d2dc844afb00056ec94e?d=identicon\u0026s=64",
      "cl": "316602@main",
      "clUrl": "https://commits.webkit.org/316602@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=314261\nrdar://176310702\n\nReviewed by Abrar Rahman Protyasha.\n\nWhen loading various sites (like github.com), we see that that site will\nimmediately reload with a message saying that the site reloaded because it\nencountered a problem. The web process is crashing after hitting this:\n\nMESSAGE_CHECK_COMPLETION(m_networkProcess-\u003eallowsFirstPartyForCookies\n(m_webProcessIdentifier, request.firstPartyForCookies()) ==\nNetworkProcess::AllowCookieAccess::Allow ...)\n\nin NetworkConnectionToWebProcess::loadImageForDecoding().\n\nThe issue is that after the site is loaded, LinkPresentation calls\n_loadAndDecodeImage on the WKWebView with a NSURLRequest whose mainDocumentURL\nis nil. When _loadAndDecodeImage converts this to a ResourceRequest, the\nfirstPartyForCookies is null. This ResourceRequest ends up in\nloadImageForDecoding where allowsFirstPartyForCookies() returns \"disallow\"\nfor a null firstPartyForCookies and so we terminate the web process.\n\nIn the past, some of these “== allow” checks we’ve added have caused crashes\nlike these and have been hard to reproduce since we often only have a stability\ntracer crash. So we generally change the check to be “!= terminate” in those\ncases. Doing that is not ideal but would fix this crash.\n\nBut here, we actually have a reproduction and the root cause. We can fix this\nby amending _loadAndDecodeImage to ensure that the NSURLRequest has a\nmainDocumentURL when one exists. This will cover LinkPresentation’s callsite\nand possibly others.\n\nNew test: LoadAndDecodeImageNilMainDocumentURLAfterNavigation.\n(Credit to Abrar Protyasha for coming up with the test).\n\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:\n(-[WKWebView _loadAndDecodeImage:constrainedToSize:maximumBytesFromNetwork:completionHandler:]):\n* Tools/TestWebKitAPI/Tests/WebKitCocoa/LoadAndDecodeImage.mm:\n(TestWebKitAPI::TEST(WebKit, LoadAndDecodeImageNilMainDocumentURLAfterNavigation)):\n\nOriginally-landed-as: 7744f7322ebb. rdar://181074236\nCanonical link: https://commits.webkit.org/316602@main",
      "email": "rupin@apple.com",
      "hash": "6287cb3802f3ff30f2ded80193898f11478b58f2",
      "subject": "Web content process gets terminated after loading various sites (invalid message 'NetworkConnectionToWebProcess_LoadImageForDecoding')"
    },
    "316603@main": {
      "author": "Charlie Wolfe",
      "avatar": "https://www.gravatar.com/avatar/857b3b5ff3394c31fa2689310a93dbab?d=identicon\u0026s=64",
      "cl": "316603@main",
      "clUrl": "https://commits.webkit.org/316603@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315252\nrdar://177568018\n\nReviewed by Rupin Mittal.\n\nThere are two cases where the MESSAGE_CHECK in NetworkConnectionToWebProcess::loadImageForDecoding\ncan still fail after the fix in rdar://176310702:\n - A client set an incorrect or empty mainDocumentURL.\n - A client called _loadAndDecodeImage: on a WKWebView that has not loaded any content.\n\nSet firstPartyForCookies in the web process from page-\u003emainFrameURL(), which is the authoritative\nvalue, and drop the WKWebView-side fallback added in the previous fix. When mainFrameURL is empty\n(no navigation has happened yet, so there is no cookie context), disable cookies for the request\ninstead of failing the MESSAGE_CHECK.\n\nTest: Tools/TestWebKitAPI/Tests/WebKitCocoa/LoadAndDecodeImage.mm\n\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:\n(WebKit::NetworkConnectionToWebProcess::loadImageForDecoding):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:\n(-[WKWebView _loadAndDecodeImage:constrainedToSize:maximumBytesFromNetwork:completionHandler:]):\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::loadAndDecodeImage):\n* Tools/TestWebKitAPI/Tests/WebKitCocoa/LoadAndDecodeImage.mm:\n(TestWebKitAPI::TEST(WebKit, LoadAndDecodeImageBeforeAnyNavigation)):\n(TestWebKitAPI::TEST(WebKit, LoadAndDecodeImageWithCallerProvidedDisallowedMainDocumentURL)):\n\nOriginally-landed-as: 305413.944@safari-7624-branch (bc7a427882d4). rdar://181074279\nCanonical link: https://commits.webkit.org/316603@main",
      "email": "charliew@apple.com",
      "hash": "cf2d4056d8ec678955f4835232076c3b5194baff",
      "subject": "com.apple.WebKit.Networking at Received an invalid message 'NetworkConnectionToWebProcess_LoadImageForDecoding'"
    },
    "316604@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "316604@main",
      "clUrl": "https://commits.webkit.org/316604@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318731\n\u003crdar://181534087\u003e\n\nReviewed by Sammy Gill.\n\nRefactor the logic for computing preferredAspectRatio()\nto GridLayoutUtils() to make it reachable before construction\nof PlacedGridItem().\n\n* Source/WebCore/layout/formattingContexts/grid/GridLayoutUtils.cpp:\n(WebCore::Layout::GridLayoutUtils::preferredAspectRatio):\n(WebCore::Layout::GridLayoutUtils::inlineContentSizeSuggestion):\n(WebCore::Layout::GridLayoutUtils::blockContentSizeSuggestion):\n(WebCore::Layout::GridLayoutUtils::inlinePreferredSize):\n(WebCore::Layout::GridLayoutUtils::hasStretchedBlockSize):\n* Source/WebCore/layout/formattingContexts/grid/GridLayoutUtils.h:\n* Source/WebCore/layout/formattingContexts/grid/PlacedGridItem.cpp:\n(WebCore::Layout::PlacedGridItem::preferredAspectRatio const): Deleted.\n* Source/WebCore/layout/formattingContexts/grid/PlacedGridItem.h:\n\nCanonical link: https://commits.webkit.org/316604@main",
      "email": "yulun_wu@apple.com",
      "hash": "4c799f966e9b51b984e346de2de590eb57c1eb51",
      "subject": "[GFC] refactor PlacedGridItem::preferredAspectRatio into GridLayoutUtils."
    },
    "316605@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "316605@main",
      "clUrl": "https://commits.webkit.org/316605@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318475\nrdar://181270033\n\nReviewed by Sihui Liu.\n\nUnder Site Isolation with multi-process back/forward cache, a same-site\nmain-frame history chain (a -\u003e b -\u003e c) where each entry hosts a cross-site\niframe could hang when navigating back to an intermediate entry.\n\nA cross-site subframe web process hosts a single WebPage with one\nm_isSuspended flag, and BackForwardCache suspension operates on that one live\ncorePage(). When the first main-frame entry (a) is cached, the iframe process\nsuspends its single live page. When the UIProcess later asks it (via\nSuspendWithFrameItem) to also cache the intermediate entry (b), the WebPage is\nalready suspended and its single live corePage() cannot be suspended again, so\nb's iframe subframe is never added to that process's BackForwardCache.\n\nWebPage::suspendWithFrameItem's already-suspended early-return replied\ncompletionHandler(true) -- a false success -- so WebPageProxy::didCacheBackForwardItem\nrecorded b as having cached iframe children it never had. On back-navigation to\nb, RestoreWithFrameItem -\u003e BackForwardCache::take returned NOT-FOUND, the restore\naggregator failed, and the UIProcess fell back to reload(ExpiredOnly), which\nnever fired didFinishNavigation, so the navigation hung until timing out.\n\nReturn the honest answer instead: whether this frame item is actually cached in\nthis process (isInBackForwardCache(identifier)). That is true for an idempotent\nre-suspend of the same entry and false when the WebPage is suspended for a\ndifferent entry -- mirroring addIfCacheable's own return value. The false makes\nthe UIProcess discard b's unbacked entry, so back-to-b falls back to a normal\nload that completes.\n\nThis is a targeted fix for the hang. The underlying limitation it works around\n-- an iframe process can hold only one cached main-frame entry per WebPage --\nstill caps multi-entry BFCache coverage under Site Isolation and will be\naddressed by a larger redesign (moving cached-entry ownership from the single\nper-process WebPage down to a per-BFCache-entry frame snapshot), tracked in\nhttps://bugs.webkit.org/show_bug.cgi?id=318474 (rdar://181269874).\n\n* Source/WebCore/history/BackForwardCache.h: Export isInBackForwardCache.\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::suspendWithFrameItem): Report whether the frame item is\nactually cached rather than an unconditional success when already suspended.\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::TEST): Add MultiProcessBFCacheGoBackToIntermediateEntryDoesNotHang.\n\nCanonical link: https://commits.webkit.org/316605@main",
      "email": "basuke@apple.com",
      "hash": "22fa960e41397c6c2fd972209abfe04df4dfb6ae",
      "subject": "[Site Isolation] Back navigation to an intermediate multi-process BFCache entry hangs when a cross-site iframe could not be cached"
    },
    "316606@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "316606@main",
      "clUrl": "https://commits.webkit.org/316606@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=314398\nrdar://176201738\n\nReviewed by Dan Glastonbury.\n\nContextMtl would populate QueryMtl *ContextMtl::mOcclusionQuery before\nvisibility buffer allocation:\n  mOcclusionQuery = query;\n  ANGLE_TRY(startOcclusionQueryInRenderPass(...));\nIf the allocation failed, frontend would not keep the Query instance\nalive.\n\nAvoid pointing to GL object, QueryMtl *, in ContextMtl. Instead\npoint to the Metal buffer of QueryMtl.\nDo not store render pass state in QueryMtl, rather store it in\nthe render pass state representation of the query implementation,\nthe OcclusionQueryPool. This simplifies the implementation a lot.\n\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h:\n(rx::ContextMtl::isOcclusionQueryEnabledInRenderPass const):\n(rx::ContextMtl::hasActiveOcclusionQuery const): Deleted.\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm:\n(rx::ContextMtl::endEncoding):\n(rx::ContextMtl::onOcclusionQueryBegin):\n(rx::ContextMtl::onOcclusionQueryEnd):\n(rx::ContextMtl::disableOcclusionQueryInRenderPass):\n(rx::ContextMtl::enableOcclusionQueryInRenderPass):\n(rx::ContextMtl::setupDrawImpl):\n(rx::ContextMtl::onOcclusionQueryDestroy): Deleted.\n(rx::ContextMtl::disableActiveOcclusionQueryInRenderPass): Deleted.\n(rx::ContextMtl::restartActiveOcclusionQueryInRenderPass): Deleted.\n(rx::ContextMtl::startOcclusionQueryInRenderPass): Deleted.\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/QueryMtl.h:\n(rx::VisibilityBufferOffsetsMtl::clear): Deleted.\n(rx::VisibilityBufferOffsetsMtl::empty const): Deleted.\n(rx::VisibilityBufferOffsetsMtl::size const): Deleted.\n(rx::VisibilityBufferOffsetsMtl::back const): Deleted.\n(rx::VisibilityBufferOffsetsMtl::front const): Deleted.\n(rx::VisibilityBufferOffsetsMtl::setStartOffset): Deleted.\n(rx::VisibilityBufferOffsetsMtl::addOffset): Deleted.\n(rx::QueryMtl::getAllocatedVisibilityOffsets const): Deleted.\n(rx::QueryMtl::setFirstAllocatedVisibilityOffset): Deleted.\n(rx::QueryMtl::addAllocatedVisibilityOffset): Deleted.\n(rx::QueryMtl::clearAllocatedVisibilityOffsets): Deleted.\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/QueryMtl.mm:\n(rx::QueryMtl::onDestroy):\n(rx::QueryMtl::end):\n(rx::QueryMtl::resetVisibilityResult): Deleted.\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mm:\n(rx::mtl::RenderCommandEncoder::endEncodingImpl):\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_occlusion_query_pool.h:\n(rx::mtl::VisibilityBufferOffsetsMtl::VisibilityBufferOffsetsMtl):\n(rx::mtl::VisibilityBufferOffsetsMtl::size const):\n(rx::mtl::VisibilityBufferOffsetsMtl::lastOffset const):\n(rx::mtl::VisibilityBufferOffsetsMtl::firstOffset const):\n(rx::mtl::VisibilityBufferOffsetsMtl::addOffset):\n(rx::mtl::VisibilityBufferOffsetsMtl::resultBuffer const):\n(rx::mtl::VisibilityBufferOffsetsMtl::discard):\n(rx::mtl::OcclusionQueryPool::hasPendingVisibilityResults const):\n(rx::mtl::OcclusionQueryPool::getNumRenderPassAllocatedQueries const): Deleted.\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_occlusion_query_pool.mm:\n(rx::mtl::OcclusionQueryPool::destroy):\n(rx::mtl::OcclusionQueryPool::ensurePoolCapacity):\n(rx::mtl::OcclusionQueryPool::beginQuery):\n(rx::mtl::OcclusionQueryPool::continueQuery):\n(rx::mtl::OcclusionQueryPool::resolveVisibilityResults):\n(rx::mtl::OcclusionQueryPool::prepareRenderPassVisibilityPoolBuffer):\n(rx::mtl::OcclusionQueryPool::allocateQueryOffset): Deleted.\n(rx::mtl::OcclusionQueryPool::deallocateQueryOffset): Deleted.\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.h:\n* Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.mm:\n(rx::mtl::RenderUtils::combineVisibilityResult):\n(rx::mtl::VisibilityResultUtils::combineVisibilityResult):\n* Source/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp:\n\nOriginally-landed-as: 305413.883@safari-7624-branch (417b97d905b3). rdar://180436178\nCanonical link: https://commits.webkit.org/316606@main",
      "email": "kkinnunen@apple.com",
      "hash": "9d2cc8c9895d51eb240b8f75575393b57bf1d478",
      "subject": "ANGLE: Metal: Dangling mOcclusionQuery pointer if visibility buffer allocation fails"
    },
    "316608@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "316608@main",
      "clUrl": "https://commits.webkit.org/316608@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318757\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316608@main",
      "email": "lmoura@igalia.com",
      "hash": "a6b65f1422326b8bae1943d3b34078c64b5216bb",
      "subject": "REGRESSION(316528@main) [WPE] webgl/1.0.x/conformance/textures/misc/video-rotation.html  and its webgl2 cousin are timing out"
    },
    "316609@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "316609@main",
      "clUrl": "https://commits.webkit.org/316609@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318568\n\nReviewed by Alexey Proskuryakov.\n\nThere's no need to remove `tabindex` for EVERY node in the `WI.LogContentView`.\nInstead, just remove them from the newly added `WI.ConsoleMessageView`/`WI.ConsoleCommandView`.\n\n* Source/WebInspectorUI/UserInterface/Views/LogContentView.js:\n(WI.LogContentView.prototype.didAppendConsoleMessageView):\n(WI.LogContentView.prototype.didAppendConsoleMessageView.clearFocusableChildren): Added.\n(WI.LogContentView.prototype._clearFocusableChildren): Deleted.\n\nCanonical link: https://commits.webkit.org/316609@main",
      "email": "hi@devinrousso.com",
      "hash": "e1f4abfb36540c07b309ae911a8ed246d4d1f3da",
      "subject": "Web Inspector: Console: avoid querying for ALL nodes in view"
    },
    "316610@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "316610@main",
      "clUrl": "https://commits.webkit.org/316610@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318758\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/gtk/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316610@main",
      "email": "lmoura@igalia.com",
      "hash": "9f144ef958cfd75264a3ee37b5d00e0f603d363a",
      "subject": "[GTK] fast/mediastream/delete-audio-unit.html is flaky timing out since added in 316360@main"
    },
    "316611@main": {
      "author": "Brady Eidson",
      "avatar": "https://www.gravatar.com/avatar/31bed81d6d8ef517f93b30add03f5651?d=identicon\u0026s=64",
      "cl": "316611@main",
      "clUrl": "https://commits.webkit.org/316611@main",
      "description": "rdar://181542734\nhttps://bugs.webkit.org/show_bug.cgi?id=318743\n\nReviewed by Richard Robinson.\n\nFeedback-based tweaks to these APIs to make them better for the platforms going forward.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WebPage/WebPageTests.swift\n\n* Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.swift:\n(WKContentWorld.world(with:)):\n(WKContentWorld.isInspectable):\n* Source/WebKit/UIProcess/API/Cocoa/WKContentWorldConfiguration.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKContentWorldConfiguration.mm:\n(-[WKContentWorldConfiguration allowAccessingClosedShadowRoots]):\n(-[WKContentWorldConfiguration setAllowAccessingClosedShadowRoots:]):\n(-[WKContentWorldConfiguration isAutofillScriptingEnabled]):\n(-[WKContentWorldConfiguration isElementUserInfoEnabled]):\n(-[WKContentWorldConfiguration isLegacyBuiltinOverridesEnabled]):\n(-[WKContentWorldConfiguration openClosedShadowRootsEnabled]): Deleted.\n(-[WKContentWorldConfiguration setOpenClosedShadowRootsEnabled:]): Deleted.\n(-[WKContentWorldConfiguration autofillScriptingEnabled]): Deleted.\n(-[WKContentWorldConfiguration elementUserInfoEnabled]): Deleted.\n(-[WKContentWorldConfiguration legacyBuiltinOverridesEnabled]): Deleted.\n* Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKUIDelegate.h:\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/WebPageTests.swift:\n(WebPageTests.clearContentWorld):\n\nCanonical link: https://commits.webkit.org/316611@main",
      "email": "beidson@apple.com",
      "hash": "1ef95fe531cc2f43866229874c5e16c90696d0ba",
      "subject": "Small updates to various new APIs"
    },
    "316612@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "316612@main",
      "clUrl": "https://commits.webkit.org/316612@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318753\nrdar://181552309\n\nReviewed by Keith Miller.\n\nWhen Equal(@a, @b) are both WasmGC object allocations and @a != @b,\nthey must be different WasmGC cells, thus Equal(@a, @b) should be fold\ninto false. Same rule can be applied to NotEqual. Also when one side is\njsNull constant (ref.null), then it is also false when the other side is\nWasmGC allocations.\n\n* Source/JavaScriptCore/b3/B3ReduceStrength.cpp:\n\nCanonical link: https://commits.webkit.org/316612@main",
      "email": "ysuzuki@apple.com",
      "hash": "a2bb3b59f1cc1ad49b3893af4869d267a48c0b9f",
      "subject": "[JSC] Fold WasmGC object comparisons"
    },
    "316613@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "316613@main",
      "clUrl": "https://commits.webkit.org/316613@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=251622\n\u003crdar://problem/105231661\u003e\n\nReviewed by Alexey Proskuryakov.\n\nIn the case that the search regex can match nothing, increment the `lastIndex` to move forward.\n\nIf every match is an empty string, don't show any results.\n\n* Source/WebInspectorUI/UserInterface/Views/SearchSidebarPanel.js:\n(WI.SearchSidebarPanel.prototype.performSearch.forEachMatch):\n(WI.SearchSidebarPanel.prototype.performSearch.resourceCallback):\n(WI.SearchSidebarPanel.prototype.performSearch.scriptCallback):\n\nCanonical link: https://commits.webkit.org/316613@main",
      "email": "hi@devinrousso.com",
      "hash": "434d012149df7c0ec24f418d594699be2f1805eb",
      "subject": "Searching for a regular expression that matches the empty string in the web inspector causes it to hang irrecoverably"
    },
    "316614@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "316614@main",
      "clUrl": "https://commits.webkit.org/316614@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318697\n\u003crdar://problem/181513166\u003e\n\nReviewed by Qianlang Chen, Alexey Proskuryakov, and Megan Gardner.\n\nThis should've been updated as part of 316540@main.\n\n* LayoutTests/inspector/animation/lifecycle-web-animation-expected.txt:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316614@main",
      "email": "hi@devinrousso.com",
      "hash": "1d5d7acd6ef37927c62790e069b8f56c9de49001",
      "subject": "REGRESSION(316540@main): inspector/animation/lifecycle-web-animation.html (layout-tests) is a constant text failure on macOS."
    },
    "316616@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "316616@main",
      "clUrl": "https://commits.webkit.org/316616@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=181302\n\u003crdar://problem/36307533\u003e\n\nReviewed by Alexey Proskuryakov.\n\n* Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:\n(WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):\n(WI.DOMTreeElement.prototype._editableTextInfo): Added.\n(WI.DOMTreeElement.prototype._startEditingTextNode):\n(WI.DOMTreeElement.prototype._nodeTitleInfo):\n(WI.DOMTreeElement.prototype._textNodeEditingCommitted):\n(WI.DOMTreeElement.prototype._appendTextNodeValue): Added.\n* Source/WebInspectorUI/UserInterface/Views/DOMTreeOutline.css:\n(.tree-outline.dom .html-entity-value): Added.\n\nCanonical link: https://commits.webkit.org/316616@main",
      "email": "hi@devinrousso.com",
      "hash": "1893f621cd8c41a704b7016601f1e822b7344cd4",
      "subject": "Web Inspector: Zero-width joiners and other hidden Unicode characters are not displayed"
    },
    "316617@main": {
      "author": "Brady Eidson",
      "avatar": "https://www.gravatar.com/avatar/31bed81d6d8ef517f93b30add03f5651?d=identicon\u0026s=64",
      "cl": "316617@main",
      "clUrl": "https://commits.webkit.org/316617@main",
      "description": "rdar://180577796\n\nReviewed by Alex Christensen.\n\nFor the new AsyncReplyHandlerWithDispatcher code path added in 313783@main, there were two problems we spotted:\n1 - AsyncReplyHandlerWithDispatcher handlers didn't handle unlocking like the other branches in surrounding code.\n2 - Even though the completion handler for a AsyncReplyHandlerWithDispatcher tried to dealloc the\n  ProcessThrottler::Activity on the main thread, that would only happen when the lambda is actually run. If the\n  lambda was never run and was deallocated on a non-main thread, then the ProcessThrottler::Activity was as well\n\nFix these by adding some unlocks and adding a wrapper class that always deallocates the ProcessThrottler::Activity\non the main thread no matter what.\n\nNo new tests (Not directly reproducible at this time, though the code is exercised by existing tests)\n\n* Source/WebKit/Platform/IPC/Connection.cpp:\n(IPC::Connection::processIncomingMessage):\n* Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:\n(WebKit::MainThreadActivityReleaser::MainThreadActivityReleaser):\n(WebKit::MainThreadActivityReleaser::~MainThreadActivityReleaser):\n(WebKit::AuxiliaryProcessProxy::sendMessageImpl):\n\nCanonical link: https://commits.webkit.org/316617@main",
      "email": "beidson@apple.com",
      "hash": "810b58b5ad3aca6f3b19f486338ab6f55f65495d",
      "subject": "Clean up some issues with AsyncReplyHandlerWithDispatcher"
    },
    "316618@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "316618@main",
      "clUrl": "https://commits.webkit.org/316618@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318725\nrdar://181530290\n\nReviewed by Alan Baradlay.\n\nDisallow styles generated by container-query-dependent functions from the matched declarations cache.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-dynamic-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-mixins/function-container-style-expected.txt:\n* Source/WebCore/animation/BlendingKeyframes.cpp:\n(WebCore::BlendingKeyframes::usesContainerUnits const):\n* Source/WebCore/css/CSSToLengthConversionData.cpp:\n(WebCore::CSSToLengthConversionData::setUsesContainerUnits const):\n* Source/WebCore/style/MatchedDeclarationsCache.cpp:\n(WebCore::Style::MatchedDeclarationsCache::isCacheable):\n* Source/WebCore/style/StyleBuilderState.cpp:\n(WebCore::Style::BuilderState::setIsContainerDependent):\n(WebCore::Style::BuilderState::setUsesContainerUnits): Deleted.\n\nExpand the scope of the bit to cover other container dependencies besides container units.\n\n* Source/WebCore/style/StyleBuilderState.h:\n* Source/WebCore/style/StyleSubstitutionResolver.cpp:\n(WebCore::Style::SubstitutionResolver::substituteDashedFunction):\n\nMark the style container dependent if there is a container query to evaluate inside called function.\n\n* Source/WebCore/style/computed/StyleComputedStyle.cpp:\n* Source/WebCore/style/computed/StyleComputedStyleBase+ConstructionInlines.h:\n(WebCore::Style::ComputedStyleBase::ComputedStyleBase):\n(WebCore::Style::ComputedStyleBase::NonInheritedFlags::copyNonInheritedFrom):\n* Source/WebCore/style/computed/StyleComputedStyleBase+GettersInlines.h:\n(WebCore::Style::ComputedStyleBase::isContainerDependent const):\n(WebCore::Style::ComputedStyleBase::usesContainerUnits const): Deleted.\n* Source/WebCore/style/computed/StyleComputedStyleBase+SettersInlines.h:\n(WebCore::Style::ComputedStyleBase::setIsContainerDependent):\n(WebCore::Style::ComputedStyleBase::setUsesContainerUnits): Deleted.\n* Source/WebCore/style/computed/StyleComputedStyleBase.cpp:\n(WebCore::Style::ComputedStyleBase::NonInheritedFlags::dumpDifferences const):\n* Source/WebCore/style/computed/StyleComputedStyleBase.h:\n\nCanonical link: https://commits.webkit.org/316618@main",
      "email": "antti@apple.com",
      "hash": "a8da394bc85e6b94c66f164cb809fa95af4dd6fc",
      "subject": "[css-mixins-1] Re-resolve functions with @container bodies when the container changes"
    },
    "316619@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "316619@main",
      "clUrl": "https://commits.webkit.org/316619@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318655\n\nReviewed by Yusuke Suzuki.\n\nArray.prototype.concat had fast paths only for 0 and 1 argument; more\narguments fell through to the generic loop, which grows the result\nincrementally. This matters because @babel/plugin-transform-spread\ncompiles [...a, ...b] into [].concat(a, b), so transpiled code hits\nmulti-argument concat on hot paths.\n\nAdd tryConcatMultipleArraysFast: when the receiver and all arguments are\nplain JSArrays or non-spreadable scalars, compute the total length in one\npass, allocate the butterfly once at exactly the right size, then memcpy\neach source at a running offset. Proxies and derived arrays bail out.\n\n                                                   Baseline                  Patched\n\nconcat-multiarg-strings                       133.8260+-0.9464     ^     46.1617+-1.2060        ^ definitely 2.8991x faster\nconcat-multiarg-receiver                      134.4724+-1.5618     ^     46.5028+-0.9827        ^ definitely 2.8917x faster\nconcat-multiarg-int32-three                   150.9612+-2.3111     ^     59.5219+-1.2661        ^ definitely 2.5362x faster\nconcat-multiarg-scalar                        172.1870+-2.0075     ^     71.6830+-1.8256        ^ definitely 2.4021x faster\n\nTests: JSTests/microbenchmarks/concat-multiarg-int32-three.js\n       JSTests/microbenchmarks/concat-multiarg-receiver.js\n       JSTests/microbenchmarks/concat-multiarg-scalar.js\n       JSTests/microbenchmarks/concat-multiarg-strings.js\n       JSTests/stress/array-concat-multiple-arguments-holes.js\n       JSTests/stress/array-concat-multiple-arguments-is-concat-spreadable.js\n       JSTests/stress/array-concat-multiple-arguments-scalars.js\n       JSTests/stress/array-concat-multiple-arguments-species-and-exotic.js\n       JSTests/stress/array-concat-multiple-arguments.js\n\n* JSTests/microbenchmarks/concat-multiarg-int32-three.js: Added.\n* JSTests/microbenchmarks/concat-multiarg-receiver.js: Added.\n* JSTests/microbenchmarks/concat-multiarg-scalar.js: Added.\n* JSTests/microbenchmarks/concat-multiarg-strings.js: Added.\n* JSTests/stress/array-concat-multiple-arguments-holes.js: Added.\n(shouldBe):\n* JSTests/stress/array-concat-multiple-arguments-is-concat-spreadable.js: Added.\n(shouldBe):\n(shouldThrow):\n(2.join):\n(i.let.tricky.get Symbol):\n* JSTests/stress/array-concat-multiple-arguments-scalars.js: Added.\n(shouldBe):\n(i.let.evil.valueOf):\n* JSTests/stress/array-concat-multiple-arguments-species-and-exotic.js: Added.\n(shouldBe):\n(MyArray):\n(i.Weird.get Symbol):\n(i.Weird):\n* JSTests/stress/array-concat-multiple-arguments.js: Added.\n(shouldBe):\n(arrayEq):\n(throw.new.Error):\n* Source/JavaScriptCore/runtime/ArrayPrototype.cpp:\n(JSC::tryConcatMultipleArraysFast):\n(JSC::JSC_DEFINE_HOST_FUNCTION):\n* Source/JavaScriptCore/runtime/JSArrayInlines.h:\n(JSC::mergeIndexingTypesForCopying):\n(JSC::JSArray::mergeIndexingTypeForCopying):\n\nCanonical link: https://commits.webkit.org/316619@main",
      "email": "sosuke@bun.sh",
      "hash": "485bcf1b176ab39831836fcfb40af6232ea21fc5",
      "subject": "[JSC] Add fast path for `Array#concat` with multiple arguments"
    },
    "316620@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "316620@main",
      "clUrl": "https://commits.webkit.org/316620@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318759\n\nUnreviewed test gardening.\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/types/SameObject-identity-expected.txt:\n* LayoutTests/platform/mac-tahoe-wk2-lbse-text/imported/w3c/web-platform-tests/svg/types/SameObject-identity-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/svg/types/SameObject-identity-expected.txt.\n\nCanonical link: https://commits.webkit.org/316620@main",
      "email": "lmoura@igalia.com",
      "hash": "f86cf279fdc2ab8a0431737459d94e488856a2f4",
      "subject": "REGRESSION(316553@main) [LBSE] Update imported/w3c/web-platform-tests/svg/types/SameObject-identity.html baseline"
    },
    "316621@main": {
      "author": "Philippe Normand",
      "avatar": "https://www.gravatar.com/avatar/eef27203750af3510263cc29af21a16e?d=identicon\u0026s=64",
      "cl": "316621@main",
      "clUrl": "https://commits.webkit.org/316621@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318635\n\nReviewed by Xabier Rodriguez-Calvar.\n\nStore the mediastreamsrc InternalSource parent as weak pointer instead of raw pointer, preventing\ncritical warnings in GLib when casting.\n\n* LayoutTests/platform/glib/TestExpectations:\n* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:\n(InternalSource::updateFirstVideoSampleSeenFlag):\n(InternalSource::receivedAudioSampleBeforeVideo):\n\nCanonical link: https://commits.webkit.org/316621@main",
      "email": "philn@igalia.com",
      "hash": "857d77450c7e0615e206bd89d7c0bfe3c300a48b",
      "subject": "[GLIB] fast/mediastream/mediastreamtrack-clone-muted.html is a flaky crash"
    },
    "316622@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "316622@main",
      "clUrl": "https://commits.webkit.org/316622@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318735\nrdar://181536755\n\nReviewed by Yusuke Suzuki.\n\nPrintStream truncates strings over 5MB for readability, which is fine\nfor terminal output but corrupts data meant to be persisted exactly\n(e.g. JSON::Value::dump, previously patched around this one call site\nin cd07e3f6c0c0 with a FIXME noting the fix should be systemic).\n\nAdd PrintStream::truncatesLongStrings(), true by default, overridden\nto false in FilePrintStream and forwarded through ScopedPrintStream.\nRevert the JSONValues.cpp workaround now that the root cause is fixed.\n\nCanonical link: https://commits.webkit.org/316622@main",
      "email": "yijia_huang@apple.com",
      "hash": "287641e1e1170d0f8dc4f1e0047f4b5fc0940818",
      "subject": "Fix PrintStream truncation of long strings written to files"
    },
    "316623@main": {
      "author": "Sam Sneddon",
      "avatar": "https://www.gravatar.com/avatar/99f6b56d9db9d32920dfcc56deae86fc?d=identicon\u0026s=64",
      "cl": "316623@main",
      "clUrl": "https://commits.webkit.org/316623@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318486\nrdar://181275486\n\nReviewed by Elliott Williams.\n\nStandalone .checksum baseline files haven't been written since\n75298@main (May 2011), which removed write_image_hashes() from\nTestResultWriter. Checksums have instead been embedded as tEXt chunks\ninside PNGs, with reading support added in 72081@main (Marh 2011).\n\n* Tools/Scripts/webkitpy/layout_tests/models/test.py:\n(Test):\n* Tools/Scripts/webkitpy/tool/servers/rebaselineserver.py:\n(get_test_baselines):\n(RebaselineHTTPRequestHandler.test_result):\n* Tools/Scripts/webkitpy/tool/servers/rebaselineserver_unittest.py:\n(RebaselineTestTest.test_text_rebaseline_move_no_op_2):\n(RebaselineTestTest.test_text_rebaseline_move_only_images):\n(RebaselineTestTest.test_image_rebaseline):\n(GetBaselinesTest.test_image_and_text_baselines):\n\nCanonical link: https://commits.webkit.org/316623@main",
      "email": "gsnedders@apple.com",
      "hash": "d05841cdd84b31a026de98351bbdffc55f53bfaf",
      "subject": "Drop vestigial -expected.checksum support"
    },
    "316624@main": {
      "author": "Yoav Weiss",
      "avatar": "https://www.gravatar.com/avatar/228600d5a1cfae576e64ee92e46f6a1e?d=identicon\u0026s=64",
      "cl": "316624@main",
      "clUrl": "https://commits.webkit.org/316624@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318772\n\nReviewed by Charlie Wolfe.\n\nThe current code checks that the opener's domain has first-party cookie access.\nThere's no reason why the opener's domain needs that access, and there are cross-origin opener scenarios\nwhere this is not the case. Currently those scenarios result in a crash.\nThis PR removes that check to prevent these crashes, and adds relevant tests.\n\nTest: http/wpt/storage-access/request-storage-access-under-opener-cross-site-opener.html\n\n* LayoutTests/http/wpt/storage-access/request-storage-access-under-opener-cross-site-opener-expected.txt: Added.\n* LayoutTests/http/wpt/storage-access/request-storage-access-under-opener-cross-site-opener.html: Added.\n* LayoutTests/http/wpt/storage-access/resources/opener-iframe.html: Added.\n* LayoutTests/http/wpt/storage-access/resources/popup.html: Added.\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:\n(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):\n\nCanonical link: https://commits.webkit.org/316624@main",
      "email": "yoav.weiss@shopify.com",
      "hash": "c5cf4420bc5816dbb4a9128fce5f71aa0782af04",
      "subject": "Stop enforcing that the opener origin has access to first party cookies."
    },
    "316625@main": {
      "author": "Fujii Hironori",
      "avatar": "https://www.gravatar.com/avatar/ef99cb23f5e5d27977968ca097d9a85f?d=identicon\u0026s=64",
      "cl": "316625@main",
      "clUrl": "https://commits.webkit.org/316625@main",
      "description": "* LayoutTests/TestExpectations:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316625@main",
      "email": "fujii@igalia.com",
      "hash": "e7e317f30adf8b551ed51e259869973d568d9a56",
      "subject": "Unreviewed layout test gardening"
    },
    "316626@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "316626@main",
      "clUrl": "https://commits.webkit.org/316626@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316870\nrdar://179296547\n\nReviewed by Youenn Fablet.\n\nThe WPT mediasource-sequencemode-append-buffer.html test exercises three\nSourceBuffer.mode = \"sequence\" scenarios using an asset whose video track\ncarries an empty edit list. Three independent issues — two engine bugs and\none test-side bug — combined to make all three subtests fail on AVFoundation\nbaswe MSE ; this commit addresses each.\n\nProblems\n--------\n\n1. Empty fMP4 edit list not applied to video PTS.\n\n    The asset's video track has an `edts/elst` whose first entry is an\n    empty edit (media_time = -1, segment_duration = 0.095 s in movie\n    timescale). AVStreamDataParser does not honour empty edits in fMP4, so\n    the CMSampleBuffers it emits have PTS = raw mdat PTS, missing the\n    elst-prescribed 0.095s presentation shift. The test's segmentInfo\n    bakes in the post-shift timestamps, so the engine and the test data\n    disagreed by exactly that amount.\n\n2. Frames submitted to coded-frame processing in parser-arrival order.\n\n    MSE Coded Frame Processing step 1.3 sets `timestampOffset =\n    group_start_timestamp - presentation_timestamp` on the first sample to\n    enter the loop. For multi-track segments the only spec-coherent choice\n    for that \"first\" sample is the cross-track minimum-PTS sample — any\n    other choice makes samples of one track land before\n    group_start_timestamp. SourceBufferPrivate was iterating\n    m_pendingSamples in parser-arrival order, so step 1.3 fired on\n    whichever track AVStreamDataParser happened to emit first. Once\n    problem 1 was fixed, that mismatch became visible: for media[1] step\n    1.3 fired on video (PTS 0.896666) when audio (PTS 0.882358) should\n    have driven it. The same problem reappeared on sequence-mode\n    discontinuity (step 1.6 retries step 1.3 on the discontinuity-\n    triggering sample) when chaining a second segment.\n    A similar workaround is implemented by Firefox.\n\n3. Third subtest's expected post-EOS buffered range was unsatisfiable.\n\n    The third subtest appends media[1] then media[0] in sequence mode and\n    asserted the post-EOS buffered range to be a single contiguous range.\n    With a single per-segment `timestampOffset` (per spec) and media[0]'s\n    tracks not aligned at the same start (`timev` = 0.095, `timea` = 0 for\n    this asset), placing media[0] adjacent to media[1] inevitably\n    introduces a per-track gap inside the unified buffered range of width\n    `media[0].timev − media[0].timea`. Firefox and Chrome both fail this\n    subtest too — Firefox with the identical two-range output WebKit\n    produces, Chrome with a different `timestampOffset` value — so no\n    production engine satisfies the expected single-range output for this\n    asset shape.\n\nSolutions\n---------\n\n1. A new ISOBMFFTrackInfoParser walks the moov bytes (captured by the\n    existing ISOBMFFPreParser before they are forwarded to\n    AVStreamDataParser) and extracts any per-track empty edit.\n    SourceBufferParserAVFObjC then offsets each emitted sample's PTS and\n    DTS by that duration via MediaSampleAVFObjC::offsetTimestampsBy()\n    before delivering the sample to the client.\n\n2. Before iterating samples in processPendingMediaSamples, do a bounded\n    look-ahead per track (16 frames for video — the H.264/H.265 max\n    reorder window — 1 for non-video tracks) to identify the cross-track-\n    min-PTS sample and its position in the batch. When that sample isn't\n    already at position 0, drain priority-track samples in\n    [0, priorityIndex] in a first pass; a second pass then iterates the\n    remaining samples in arrival order, skipping the entries pass 1\n    already processed. The samples vector itself is not mutated.\n\n3. In the imported WPT test, compute the expected post-EOS buffered\n    string from segmentInfo, accounting for media[0]'s per-track head\n    delta when it is non-zero (giving a two-range expected) and falling\n    back to the original single-range string when it is zero. To be\n    upstreamed to WPT.\n\nAdd API tests, covered by existing tests.\n\n* LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-sequencemode-append-buffer.html:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/mac/TestExpectations: Remove the\nmediasource-sequencemode-append-buffer.html Skip entry.\nMark mediasource-getvideoplaybackquality.html as Failing due to bug 316898.\n\n* Source/WebCore/SourcesCocoa.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\nRegister the new ISOBMFFTrackInfoParser source files.\n\n* Source/WebCore/platform/graphics/SourceBufferPrivate.cpp:\n(WebCore::SourceBufferPrivate::findPrioritySample const):\n(WebCore::SourceBufferPrivate::processNewMediaSamples):\n(WebCore::SourceBufferPrivate::processPendingMediaSamples):\nBounded per-track look-ahead identifies the cross-track-min-PTS\npriority sample; a two-pass iteration drains priority-track samples\nfirst, then the rest, without mutating m_pendingSamples.\n* Source/WebCore/platform/graphics/SourceBufferPrivate.h:\n* Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h:\n* Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:\n(WebCore::makePreParserIfNeeded):\n(WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC):\n(WebCore::SourceBufferParserAVFObjC::resetParserState): Clear the map.\n(WebCore::SourceBufferParserAVFObjC::didProvideMediaDataForTrackID):\nApply the offset to each sample before delivering it.\n\n(WebCore::SourceBufferParserAVFObjC::setEmptyEditOffsetsFromInitSegment):\nReceive per-track empty-edit offsets from the pre-parser callback and\nstash them in a per-track map.\n* Source/WebCore/platform/graphics/cocoa/ISOBMFFPreParser.cpp:\n(WebCore::ISOBMFFPreParser::ISOBMFFPreParser):\n(WebCore::ISOBMFFPreParser::reset):\n(WebCore::ISOBMFFPreParser::appendData):\nTake an optional TrackInfoCallback; buffer moov body bytes during the\nsegment scan and run the walker once the body is complete.\n\n* Source/WebCore/platform/graphics/cocoa/ISOBMFFPreParser.h:\n(WebCore::ISOBMFFPreParser::ISOBMFFPreParser):\n* Source/WebCore/platform/graphics/cocoa/ISOBMFFTrackInfoParser.cpp:\n(WebCore::FourCC):\n(WebCore::readNextChildBox):\n(WebCore::forEachChildBox):\n(WebCore::readFullBoxVersion):\n(WebCore::readMvhdTimescale):\n(WebCore::readTkhdTrackID):\n(WebCore::readElstEntry0EmptyEditDuration):\n(WebCore::findEmptyEditDurationInEdts):\n(WebCore::parseTrak):\n(WebCore::ISOBMFFTrackInfoParser::parseMoovBody):\nNew BitReader-based walker returning each track's empty-edit duration.\n\n* Source/WebCore/platform/graphics/cocoa/ISOBMFFTrackInfoParser.h:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WebCore/cocoa/ISOBMFFTrackInfoParserTests.cpp: Added.\n(TestWebKitAPI::appendBE32):\n(TestWebKitAPI::appendBE64):\n(TestWebKitAPI::makeBox):\n(TestWebKitAPI::makeMvhd):\n(TestWebKitAPI::makeTkhd):\n(TestWebKitAPI::makeElstV0):\n(TestWebKitAPI::makeElstV1):\n(TestWebKitAPI::makeEdts):\n(TestWebKitAPI::makeTrak):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, EmptyInputReturnsNothing)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, SingleTrackEmptyEditVersion0)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, SingleTrackEmptyEditVersion1)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, NonEmptyEditIsIgnored)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, TrackWithoutEditListIsOmitted)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, TrackIDZeroIsRejected)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, MissingMvhdReturnsNothing)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, OversizedEmptyEditDurationIsRejected)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, TruncatedChildBoxDoesNotCrash)):\n(TestWebKitAPI::TEST(ISOBMFFTrackInfoParser, MultipleEmptyEditTracks)):\n\nCanonical link: https://commits.webkit.org/316626@main",
      "email": "jya@apple.com",
      "hash": "cc6a6a6dd0da3f3c3f7c96cc77a6ffe859a1a178",
      "subject": "[MSE][Cocoa] imported/w3c/web-platform-tests/media-source/mediasource-sequencemode-append-buffer.html is a permanent failure"
    },
    "316627@main": {
      "author": "Michael Catanzaro",
      "avatar": "https://www.gravatar.com/avatar/213b4484d2078dbdd03dcd3256564c2c?d=identicon\u0026s=64",
      "cl": "316627@main",
      "clUrl": "https://commits.webkit.org/316627@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317488\n\nReviewed by Carlos Garcia Campos.\n\nGNOME 50 has a new reduced motion setting, separate from GTK's disable\nanimations setting. We currently have the disable animations setting\nhooked up to the prefers-reduced-motion CSS media query. Let's stop\nusing that, and use the new reduced motion setting instead. For good\nmeasure, I've also created a new WPE API setting matching the new name,\nand removed the older one (because the WPEPlatform API is not stable\nyet).\n\nI had been planning to stop there, but then I noticed that we have the\nprefers-contrast media query implemented only for GTK 3. I have\nimplemented it for GTK 4 as well. This required some effort, because\nWebKit has it implemented as a boolean value, but GNOME and CSS both use\na tri-state, so I had to change a bunch of places to expose it as a\ntri-state. I've also created a new WPE setting for this as well. I\nconsidered updating Internals so that I could expose the tri-state to\nlayout tests as well, but it currently uses ForcedAccessibilityValue\nwhich is a boolean, and I decided not to try changing this.\n\nFinally, I've improved the implementation of the prefers-color-scheme\nmedia query for GTK 4. This is an especially significant change because\nit previously did not respect the user's dark mode preference at all.\nNow a bunch of websites will become dark.\n\n* Source/WebCore/css/query/MediaQueryFeatures.cpp:\n(WebCore::MQ::Features::prefersContrastFeatureSchema):\n* Source/WebCore/inspector/agents/InspectorPageAgent.cpp:\n(WebCore::InspectorPageAgent::defaultUserPreferencesDidChange):\n* Source/WebCore/platform/Theme.h:\n(WebCore::Theme::userPreferredContrast const):\n(WebCore::Theme::userPrefersContrast const): Deleted.\n* Source/WebCore/platform/adwaita/ThemeAdwaita.cpp:\n(WebCore::ThemeAdwaita::ThemeAdwaita):\n(WebCore::ThemeAdwaita::refreshSettings):\n(WebCore::ThemeAdwaita::userPreferredContrast const):\n(WebCore::ThemeAdwaita::userPrefersContrast const): Deleted.\n* Source/WebCore/platform/adwaita/ThemeAdwaita.h:\n* Source/WebCore/platform/glib/SystemSettings.cpp:\n(WebCore::SystemSettings::updateSettings):\n* Source/WebCore/platform/glib/SystemSettings.h:\n(WebCore::SystemSettings::reducedMotion const):\n(WebCore::SystemSettings::interfaceContrast const):\n(WebCore::SystemSettings::enableAnimations const): Deleted.\n* Source/WebCore/platform/ios/ThemeIOS.h:\n* Source/WebCore/platform/ios/ThemeIOS.mm:\n(WebCore::ThemeIOS::userPreferredContrast const):\n(WebCore::ThemeIOS::userPrefersContrast const): Deleted.\n* Source/WebCore/platform/mac/ThemeMac.h:\n* Source/WebCore/platform/mac/ThemeMac.mm:\n(WebCore::ThemeMac::userPreferredContrast const):\n(WebCore::ThemeMac::userPrefersContrast const): Deleted.\n* Source/WebCore/rendering/cocoa/RenderThemeCocoa.mm:\n(WebCore::switchTrackColor):\n(WebCore::paintSwitchTrackOnOffLabels):\n(WebCore::paintLiquidGlassSwitchTrackOnOffLabels):\n(WebCore::renderThemePaintLiquidGlassSwitchThumb):\n(WebCore::renderThemePaintLiquidGlassSwitchTrack):\n(WebCore::RenderThemeCocoa::paintCheckboxForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintRadioForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintButtonForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintColorWellForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintInnerSpinButtonForVectorBasedControls):\n(WebCore::paintTextAreaOrTextField):\n(WebCore::RenderThemeCocoa::paintMeterForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintListButtonForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintSliderThumbForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintSearchFieldForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintSearchFieldCancelButtonForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintSearchFieldDecorationPartForVectorBasedControls):\n(WebCore::RenderThemeCocoa::paintPlatformResizerForVectorBasedControls):\n* Source/WebKit/Shared/glib/SystemSettings.serialization.in:\n* Source/WebKit/UIProcess/glib/SystemSettingsManagerProxy.cpp:\n(WebKit::SystemSettingsManagerProxy::reducedMotion const):\n(WebKit::SystemSettingsManagerProxy::interfaceContrast const):\n(WebKit::SystemSettingsManagerProxy::settingsDidChange):\n(WebKit::SystemSettingsManagerProxy::enableAnimations const): Deleted.\n* Source/WebKit/UIProcess/glib/SystemSettingsManagerProxy.h:\n* Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp:\n(WebKit::SystemSettingsManagerProxy::darkMode const):\n(WebKit::SystemSettingsManagerProxy::reducedMotion const):\n(WebKit::SystemSettingsManagerProxy::interfaceContrast const):\n(WebKit::SystemSettingsManagerProxy::enableAnimations const): Deleted.\n* Source/WebKit/UIProcess/wpe/SystemSettingsManagerProxyWPE.cpp:\n(WebKit::SystemSettingsManagerProxy::reducedMotion const):\n(WebKit::SystemSettingsManagerProxy::interfaceContrast const):\n(WebKit::SystemSettingsManagerProxy::enableAnimations const): Deleted.\n* Source/WebKit/WPEPlatform/wpe/WPESettings.cpp:\n(_WPESettingsPrivate::_WPESettingsPrivate):\n* Source/WebKit/WPEPlatform/wpe/WPESettings.h:\n\nCanonical link: https://commits.webkit.org/316627@main",
      "email": "mcatanzaro@gnome.org",
      "hash": "fc83508a96785c6aa4b5028331afc32d41b06f05",
      "subject": "[WPE][GTK] Improvements to platform media queries (prefers reduced motion, high contrast, and dark theme)"
    },
    "316628@main": {
      "author": "Mike Wyrzykowski",
      "avatar": "https://www.gravatar.com/avatar/4b1bc9e238714f95e22d5d2454c07066?d=identicon\u0026s=64",
      "cl": "316628@main",
      "clUrl": "https://commits.webkit.org/316628@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318726\nrdar://181531622\n\nReviewed by Tadeu Zagallo.\n\nUnlike BGRX - BGRA, RGBA16Float doesn't encode the presence of the alpha channel into\nthe IOSurface format, so we need to consult the canvas behavior when reading back the contents.\n\nTest: fast/webgpu/offscreen-canvas-rgba16float-transparency.html\n* LayoutTests/fast/webgpu/offscreen-canvas-rgba16float-transparency-expected.html: Added.\n* LayoutTests/fast/webgpu/offscreen-canvas-rgba16float-transparency.html: Added.\n* Source/WebCore/Modules/WebGPU/Implementation/WebGPUCompositorIntegrationImpl.cpp:\n(WebCore::WebGPU::CompositorIntegrationImpl::recreateRenderBuffers):\n(WebCore::WebGPU::CompositorIntegrationImpl::withDisplayBufferAsNativeImage):\n* Source/WebCore/Modules/WebGPU/Implementation/WebGPUCompositorIntegrationImpl.h:\n* Source/WebCore/platform/graphics/cocoa/IOSurface.h:\n* Source/WebCore/platform/graphics/cocoa/IOSurface.mm:\n(WebCore::IOSurface::createNativeImage):\n\nCanonical link: https://commits.webkit.org/316628@main",
      "email": "mwyrzykowski@apple.com",
      "hash": "e2cab1a5b940053eff2db407b023974325f73556",
      "subject": "[WebGPU] RGBA16Float offscreen canvas appears opaque"
    },
    "316629@main": {
      "author": "Justin Michaud",
      "avatar": "https://www.gravatar.com/avatar/36e0433ee725a08f7e1122a6bc584b57?d=identicon\u0026s=64",
      "cl": "316629@main",
      "clUrl": "https://commits.webkit.org/316629@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=314414\n\nReviewed by Yusuke Suzuki.\n\nWe add a timezone change observer for linux that watches both dbus\nand /etc/localtime.\n\nWe add some testing helpers and some generated tests too. This uncovered\nan existing bug with DST time changes.\n\nRe-land: I added a missing header and some additional clean-ups.\nCanonical link: https://commits.webkit.org/316629@main",
      "email": "jmichaud@igalia.com",
      "hash": "65d36770c7a64316ceb12e0e9d57930fe9f8a5a7",
      "subject": "[re-land] Support time zone change notifications on linux"
    },
    "316630@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316630@main",
      "clUrl": "https://commits.webkit.org/316630@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318703\nrdar://181517451\n\nReviewed by Antoine Quint.\n\nAfter 316565@main only one value was missing: AcceleratedEffectProperty::Invalid, which\nis actually not needed at all.  Make acceleratedPropertyFromCSSProperty return an OptionSet\nso we can return an empty set instead of a value in the theoretically impossible case.\nWebCore::ScrollingStateNodeProperty has a few duplicate values, but that needs to stay,\nso I left the values as comments.  The generator now makes an empty switch statement\nto make a warning if we've missed a value to protect against future mistakes.\n\n* Source/WebCore/animation/WebAnimationTypes.h:\n* Source/WebCore/platform/animation/AcceleratedEffect.cpp:\n(WebCore::acceleratedPropertyFromCSSProperty):\n(WebCore::AcceleratedEffect::AcceleratedEffect):\n(WebCore::blend):\n* Source/WebKit/Scripts/generate-serializers.py:\n(generate_impl):\n* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.cpp:\n(WTF::isValidOptionSet\u003cEnumNamespace2::OptionSetEnumType\u003e):\n(WTF::isValidOptionSet\u003cOptionSetEnumFirstCondition\u003e):\n(WTF::isValidOptionSet\u003cOptionSetEnumLastCondition\u003e):\n(WTF::isValidOptionSet\u003cOptionSetEnumAllCondition\u003e):\n* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:\n* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationUtilities.cpp:\n(WebKit::toStringForTesting):\n\nCanonical link: https://commits.webkit.org/316630@main",
      "email": "achristensen@apple.com",
      "hash": "784d018fbec56db6387fd59aea1e060471f85706",
      "subject": "Add warning when OptionSet enum values are missing in serialization.in files"
    },
    "316631@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "316631@main",
      "clUrl": "https://commits.webkit.org/316631@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=309420\n\nReviewed by Darin Adler and Antti Koivisto.\n\nConverts the transform properties that handle lengths, `transform`, `translate`,\nand `perspective`, including all `transform` functions, to evaluation time zoom.\n\nTo keep box reflection consistent, the reflection offset was also converted.\n\nTests: imported/w3c/web-platform-tests/css/css-viewport/zoom/perspective.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/perspective-ref.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/transform-matrix-2d-ref.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/transform-matrix-3d-ref.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/transform-perspective-ref.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/transform-translate-ref.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/translate-ref.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-matrix-2d.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-matrix-3d.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-perspective.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-translate.html\n       imported/w3c/web-platform-tests/css/css-viewport/zoom/translate.html\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/perspective-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/perspective.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/perspective-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/transform-matrix-2d-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/transform-matrix-3d-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/transform-perspective-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/transform-translate-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/reference/translate-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-matrix-2d-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-matrix-2d.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-matrix-3d-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-matrix-3d.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-perspective-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-perspective.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-translate-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/transform-translate.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/translate-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/translate.html: Added.\n* Source/WebCore/css/DOMMatrix.cpp:\n* Source/WebCore/css/DOMMatrix.h:\n* Source/WebCore/css/DOMMatrix.idl:\n* Source/WebCore/css/DOMMatrixReadOnly.cpp:\n* Source/WebCore/css/DOMMatrixReadOnly.h:\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Transform.cpp:\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Transform.h:\n* Source/WebCore/css/values/non-standard/CSSWebkitBoxReflect.h:\n* Source/WebCore/dom/ViewTransition.cpp:\n* Source/WebCore/platform/animation/AcceleratedEffectValues.cpp:\n* Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp:\n* Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:\n* Source/WebCore/rendering/RenderBox.cpp:\n* Source/WebCore/rendering/RenderLayerBacking.cpp:\n* Source/WebCore/rendering/RenderObject.cpp:\n* Source/WebCore/style/StyleBuilderState.cpp:\n* Source/WebCore/style/StyleBuilderState.h:\n* Source/WebCore/style/StyleCustomPropertyRegistry.cpp:\n* Source/WebCore/style/StyleExtractorCustom.h:\n* Source/WebCore/style/StyleTransformResolver.cpp:\n* Source/WebCore/style/computed/StyleComputedStyle+GettersInlines.h:\n* Source/WebCore/style/computed/StyleComputedStyle.h:\n* Source/WebCore/style/values/non-standard/StyleWebKitBoxReflect.h:\n* Source/WebCore/style/values/transforms/StylePerspective.cpp:\n* Source/WebCore/style/values/transforms/StylePerspective.h:\n* Source/WebCore/style/values/transforms/StyleRotate.cpp:\n* Source/WebCore/style/values/transforms/StyleRotate.h:\n* Source/WebCore/style/values/transforms/StyleScale.cpp:\n* Source/WebCore/style/values/transforms/StyleScale.h:\n* Source/WebCore/style/values/transforms/StyleTransform.cpp:\n* Source/WebCore/style/values/transforms/StyleTransform.h:\n* Source/WebCore/style/values/transforms/StyleTransformFunction.cpp:\n* Source/WebCore/style/values/transforms/StyleTransformFunction.h:\n* Source/WebCore/style/values/transforms/StyleTransformList.cpp:\n* Source/WebCore/style/values/transforms/StyleTransformList.h:\n* Source/WebCore/style/values/transforms/StyleTranslate.cpp:\n* Source/WebCore/style/values/transforms/StyleTranslate.h:\n* Source/WebCore/style/values/transforms/functions/StyleMatrix3DTransformFunction.cpp:\n* Source/WebCore/style/values/transforms/functions/StyleMatrix3DTransformFunction.h:\n* Source/WebCore/style/values/transforms/functions/StyleMatrixTransformFunction.cpp:\n* Source/WebCore/style/values/transforms/functions/StyleMatrixTransformFunction.h:\n* Source/WebCore/style/values/transforms/functions/StylePerspectiveTransformFunction.cpp:\n* Source/WebCore/style/values/transforms/functions/StylePerspectiveTransformFunction.h:\n* Source/WebCore/style/values/transforms/functions/StyleRotateTransformFunction.cpp:\n* Source/WebCore/style/values/transforms/functions/StyleRotateTransformFunction.h:\n* Source/WebCore/style/values/transforms/functions/StyleScaleTransformFunction.cpp:\n* Source/WebCore/style/values/transforms/functions/StyleScaleTransformFunction.h:\n* Source/WebCore/style/values/transforms/functions/StyleSkewTransformFunction.cpp:\n* Source/WebCore/style/values/transforms/functions/StyleSkewTransformFunction.h:\n* Source/WebCore/style/values/transforms/functions/StyleTransformFunctionBase.h:\n* Source/WebCore/style/values/transforms/functions/StyleTranslateTransformFunction.cpp:\n* Source/WebCore/style/values/transforms/functions/StyleTranslateTransformFunction.h:\n\nCanonical link: https://commits.webkit.org/316631@main",
      "email": "sam@webkit.org",
      "hash": "60695446c0bfd30ba8ee2d5bd86121f49fb1bf5e",
      "subject": "[EvaluationTimeZoom] Convert transform properties to evaluation time zoom"
    },
    "316632@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "316632@main",
      "clUrl": "https://commits.webkit.org/316632@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318729\nrdar://181532612\n\nReviewed by Elika Etemad.\n\nIn GFC we currently have very simple alignment logic which is basically\njust unsafe alignment since we take and use the output from StyleSelfAlignmentData::adjustmentFromStartEdge\nto determine the margin box position.\n\nThis doesn't work if safe alignment is specified since the output from\nthat value can be negative in order to satisfy the constraint of the\nalignment position and would cause the content to be placed outside the\nstart edge of the grid.\n\nTo implement alignment safety all we need to do is clamp the result to 0\nwhen safe is specified since that will align the margin box to the start\nof the grid area.\n\nCanonical link: https://commits.webkit.org/316632@main",
      "email": "sammy.gill@apple.com",
      "hash": "9ea13515e70372ba3e175c21734d61967ce25a0b",
      "subject": "[GFC] Implement alignment safety."
    },
    "316633@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/6f92b711483096db0247c16946fb3f29?d=identicon\u0026s=64",
      "cl": "316633@main",
      "clUrl": "https://commits.webkit.org/316633@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318733\nrdar://181535881\n\nReviewed by Simon Fraser.\n\nWebCore::findIntersection() (in GeometryUtilities) currently returns a bool and\nwrites the intersection point through a FloatPoint\u0026 out-parameter. The changes\nnow return std::optional\u003cFloatPoint\u003e\n\nNo behavior change intended\n\n* Source/WebCore/platform/graphics/FloatPointGraph.cpp:\n(WebCore::findLineSegmentIntersection):\n* Source/WebCore/platform/graphics/GeometryUtilities.cpp:\n(WebCore::findIntersection):\n* Source/WebCore/platform/graphics/GeometryUtilities.h:\n* Source/WebCore/rendering/BorderPainter.cpp:\n(WebCore::BorderPainter::clipBorderSidePolygon const):\n* Source/WebKit/UIProcess/Inspector/ios/WKInspectorHighlightView.mm:\n(findIntersectionOnLineBetweenPoints):\n* Source/WebKitLegacy/mac/WebInspector/WebNodeHighlightView.mm:\n(findIntersectionOnLineBetweenPoints):\n\nCanonical link: https://commits.webkit.org/316633@main",
      "email": "173393835+codedbycupidity@users.noreply.github.com",
      "hash": "cd777bb5eeec36aaf56789e8c414cebdcd3a7680",
      "subject": "Change findIntersection() to return an std::optional\u003cFloatPoint\u003e"
    },
    "316634@main": {
      "author": "Philippe Normand",
      "avatar": "https://www.gravatar.com/avatar/eef27203750af3510263cc29af21a16e?d=identicon\u0026s=64",
      "cl": "316634@main",
      "clUrl": "https://commits.webkit.org/316634@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318758\n\nUnreviewed, gardening. Skip this test because it is specific to Apple ports.\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316634@main",
      "email": "philn@igalia.com",
      "hash": "d6446aa24ea727ecc81c76f64f0683aac92977cf",
      "subject": "[GTK] fast/mediastream/delete-audio-unit.html is flaky timing out since added in 316360@main"
    },
    "316635@main": {
      "author": "Simon Fraser",
      "avatar": "https://www.gravatar.com/avatar/3763324aa0cdfa93be751c6081b8006a?d=identicon\u0026s=64",
      "cl": "316635@main",
      "clUrl": "https://commits.webkit.org/316635@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318737\nrdar://180346137\n\nUnreviewed revert.\n\nAfter 312300@main, legacy scrollbars in a light themed page with a dark background were in light mode,\ncausing them to be invisible.\n\nThe original change missed the fact that in iframes we clip the content area to the inside of\nthe scrollbars, so they are always rendering over the iframe background (which may be transparent),\nbut main frame scrollbars render over the `documentBackgroundColor()`, so need the color-based\n`scrollbarOverlayStyle()` logic (which is misleadingly named when called for always-on scrollbars).\n\nThere are existing issues with always-on iframe scrollbar which will take more work to address;\nwe don't paint a background behind them unlike other browsers, and probably should.\n\n* LayoutTests/fast/scrolling/always-on-scrollbar-dark-appearance-expected.html: Removed.\n* LayoutTests/fast/scrolling/always-on-scrollbar-dark-appearance.html: Removed.\n* Source/WebCore/platform/ScrollableArea.cpp:\n(WebCore::ScrollableArea::useDarkAppearanceForScrollbars const):\n* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:\n* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:\n(WebKit::PDFPluginBase::useDarkAppearance const): Deleted.\n\nCanonical link: https://commits.webkit.org/316635@main",
      "email": "simon.fraser@apple.com",
      "hash": "d147fb1fbc37a2d39eff92e5661ef37c6fecc0fb",
      "subject": "REGRESSION (312300@main) Main frame scrollbars to disappear on light-themed pages with dark backgrounds"
    },
    "316636@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "316636@main",
      "clUrl": "https://commits.webkit.org/316636@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318787\n\nUnreviewed build fix.\n\nCommit 316626@main added the ISOBMFFTrackInfoParser source files and the\nISOBMFFTrackInfoParserTests.cpp API test, but only registered them in the\nXcode projects. Two things were missing from the CMake build:\n\n- The test file was not added to the CMake source list, so it was not\n  built.\n- ISOBMFFTrackInfoParser.h was marked Private in the Xcode project but\n  was not added to WebCore's exported framework headers, so\n  \u003cWebCore/ISOBMFFTrackInfoParser.h\u003e could not be resolved from\n  TestWebKitAPI.\n\n* Source/WebCore/PlatformCocoa.cmake: Export ISOBMFFTrackInfoParser.h as\na WebCore private framework header.\n* Tools/TestWebKitAPI/SourcesCocoa.txt: Register the new test source\nfile.\n\nCanonical link: https://commits.webkit.org/316636@main",
      "email": "basuke@apple.com",
      "hash": "ba33edc548e9b3241108f54926eb926b5725fcd3",
      "subject": "[CMake] TestWebKitAPI build broken: ISOBMFFTrackInfoParserTests.cpp not added to CMake source list"
    },
    "316637@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "316637@main",
      "clUrl": "https://commits.webkit.org/316637@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318739\nrdar://181539181\n\nUnreviewed test gardening.\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/316637@main",
      "email": "jespinal23@apple.com",
      "hash": "65220f7506287a3c44b0cbfd75666a1d19b3c9dc",
      "subject": "[GARDENING][iOS DEBUG] 9x TestWebKitAPI.WebKitLegacy.* (api-tests) are constant crashes."
    },
    "316638@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/6f92b711483096db0247c16946fb3f29?d=identicon\u0026s=64",
      "cl": "316638@main",
      "clUrl": "https://commits.webkit.org/316638@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316454\nrdar://178849168\n\nReviewed by Tim Nguyen.\n\nAdding committer status\n\n* metadata/contributors.json:\n\nCanonical link: https://commits.webkit.org/316638@main",
      "email": "173393835+codedbycupidity@users.noreply.github.com",
      "hash": "8ec5d8c99649d30779b96daebda8d4ce52b4fe54",
      "subject": "Adding myself as committer to contributors.json"
    },
    "316639@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/6f92b711483096db0247c16946fb3f29?d=identicon\u0026s=64",
      "cl": "316639@main",
      "clUrl": "https://commits.webkit.org/316639@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318700\nrdar://181515990\n\nReviewed by Simon Fraser and Tim Nguyen.\n\nAdds Web Platform Tests covering corner-shape rendering for the bevel case, per CSS Borders Level 4\nSpec: https://drafts.csswg.org/css-borders-4/#corner-shape-rendering\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-bevel-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-bevel-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-bevel.html: Added.\n\nCanonical link: https://commits.webkit.org/316639@main",
      "email": "173393835+codedbycupidity@users.noreply.github.com",
      "hash": "ecc3080226a610efc8971be7b006fd81e41ed097",
      "subject": "Add WPT reftests for corner-shape: bevel"
    },
    "316640@main": {
      "author": "Sasha Krigel",
      "avatar": "https://www.gravatar.com/avatar/ad8413144a117ee228551dad80cc38bc?d=identicon\u0026s=64",
      "cl": "316640@main",
      "clUrl": "https://commits.webkit.org/316640@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318652\n\nReviewed by Richard Robinson.\n\nAdd myself to list of contributors.\n\n* metadata/contributors.json:\n\nCanonical link: https://commits.webkit.org/316640@main",
      "email": "s_krigel@apple.com",
      "hash": "85163da70184504a459f3ec874fab082315ae5b0",
      "subject": "Add Sasha Krigel to contributors.json"
    },
    "316641@main": {
      "author": "Keith Miller",
      "avatar": "https://www.gravatar.com/avatar/bddc1595b29098429a6ce7c8bf4aced2?d=identicon\u0026s=64",
      "cl": "316641@main",
      "clUrl": "https://commits.webkit.org/316641@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318706\nrdar://181518238\n\nReviewed by Yusuke Suzuki.\n\nHaving a separate lock bit is somewhat confusing and makes the\nisDetachable check more complex. Prevent underflowing the lock bit in\nthe pin by restoring it after any unpin for extra hardening.\n\nNo new tests, no behavior change. Covered by existing tests.\n\nCanonical link: https://commits.webkit.org/316641@main",
      "email": "keith_miller@apple.com",
      "hash": "238d63ac9ef54a2b8dbe7634a64664fd8df946c7",
      "subject": "[JSC] Push ArrayBuffer m_locked into the pinCount"
    },
    "316642@main": {
      "author": "Keith Miller",
      "avatar": "https://www.gravatar.com/avatar/bddc1595b29098429a6ce7c8bf4aced2?d=identicon\u0026s=64",
      "cl": "316642@main",
      "clUrl": "https://commits.webkit.org/316642@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318710\nrdar://181523735\n\nReviewed by Marcus Plutowski.\n\nThe \"name\" custom section typically follows the code section, so during\nstreaming an IPIntCallee resolved its name before that section was parsed\nand fell back to the numeric function index. Resolve names in\nIPIntPlan::didCompleteCompilation() instead, which both the streaming and\nnon-streaming paths reach after the whole module is parsed and before the\ncallees are registered. To support this, Callee::m_indexOrName is no\nlonger const and now has a setIndexOrName() setter. The setter asserts the\ncallee is not yet registered in the CalleeRegistry to ensure we don't race\nsetting the name at runtime.\n\nTest: JSTests/wasm/stress/stack-trace-streaming-name-section.js\n\n* JSTests/wasm/stress/stack-trace-streaming-name-section.js: Added.\n(makeImportObject.return.env.abort):\n(makeImportObject.return.env.enlargeMemory):\n(makeImportObject.return.env.getTotalMemory):\n(makeImportObject.return.env.abortOnCannotGrowMemory):\n(makeImportObject.return.env._emscripten_memcpy_big):\n(makeImportObject.return.env.___lock):\n(makeImportObject.return.env._abort):\n(makeImportObject.return.env.___setErrNo):\n(makeImportObject.return.env.___syscall6):\n(makeImportObject.return.env.___syscall140):\n(makeImportObject.return.env.___syscall146):\n(makeImportObject.return.env.___syscall54):\n(makeImportObject.return.env.___unlock):\n(makeImportObject):\n(async main):\n(main.catch):\n* Source/JavaScriptCore/wasm/WasmCallee.cpp:\n(JSC::Wasm::Callee::setIndexOrName):\n* Source/JavaScriptCore/wasm/WasmCallee.h:\n* Source/JavaScriptCore/wasm/WasmIPIntPlan.cpp:\n(JSC::Wasm::IPIntPlan::compileFunction):\n(JSC::Wasm::IPIntPlan::didCompleteCompilation):\n\nCanonical link: https://commits.webkit.org/316642@main",
      "email": "keith_miller@apple.com",
      "hash": "228685d7d2a31dc419f5ca00554e163bac349ea5",
      "subject": "No names in Error's stacktrace for instantiateStreaming modules"
    },
    "316644@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316644@main",
      "clUrl": "https://commits.webkit.org/316644@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318762\n\nReviewed by Brady Eidson.\n\nIt broke the build.  nw_http_fields_access_value_by_name has NW_NOESCAPE instead of NS_NOESCAPE.\nThis includes that build fix.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WebTransport.mm\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WTF/wtf/PlatformHave.h:\n* Source/WebCore/PAL/pal/spi/cocoa/NetworkSPI.h:\n* Source/WebKit/NetworkProcess/cocoa/NetworkSoftLink.h:\n* Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportSessionCocoa.mm:\n(WebKit::createParameters):\n(WebKit::NetworkTransportSession::create):\n(WebKit::NetworkTransportSession::initialize):\n(WebKit::NetworkTransportSession::setupDatagramConnection):\n(WebKit::NetworkTransportSession::createStream):\n* Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:\n(WebKit::defaultWebTransportEnabled):\n* Source/WebKit/Shared/WebPreferencesDefaultValues.h:\n* Tools/TestWebKitAPI/Helpers/cocoa/WebTransportServer.mm:\n(TestWebKitAPI::WebTransportServer::isAvailable):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WebTransport.mm:\n(TestWebKitAPI::TEST(WebTransport, Worker)):\n(TestWebKitAPI::TEST(WebTransport, ServiceWorker)):\n(TestWebKitAPI::CreateStreamsBeforeReady)):\n\nCanonical link: https://commits.webkit.org/316644@main",
      "email": "achristensen@apple.com",
      "hash": "7727dd79919cf11455be7f87a07f1664b741333a",
      "subject": "Re-merge 316593@main"
    },
    "316645@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "316645@main",
      "clUrl": "https://commits.webkit.org/316645@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318742\nrdar://181542269\n\nUnreviewed test gardening.\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/316645@main",
      "email": "jespinal23@apple.com",
      "hash": "d97c39c254da2715d71e8ff55f24ee6797086491",
      "subject": "[GARDENING][iOS DEBUG]REGRESSION(315975@main): 2x TestWebKitAPI.WKWebExtensionAPICookies.* are constant crashes."
    },
    "316646@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "316646@main",
      "clUrl": "https://commits.webkit.org/316646@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318658\nrdar://181464132\n\nReviewed by Adrian Taylor.\n\nWork towards adding Swift Testing support to WebKit.\n\nStart compiling the main TestRunner/ swift files, and switch the entry point\nto the canonical TestWebKitAPI.swift file that Xcode also uses.\n\n* Tools/TestWebKitAPI/CMakeLists.txt:\n\n- For each test target, enable Swift in it.\n\n* Tools/TestWebKitAPI/PlatformMac.cmake:\n\n- Stage and embed Testing.framework and related frameworks, like Xcode.\n- Connect the WTF feature flags to the targets so Swift can use them\n- Add the relevant Swift compiler flags\n- Compile Runner/ Swift files and connect the bridging header\n- Add include paths to all the WebKit frameworks\n\n* Tools/TestWebKitAPI/generic/main.mm: Removed.\n\n- Remove this temporary hack\n\nCanonical link: https://commits.webkit.org/316646@main",
      "email": "richard_robinson2@apple.com",
      "hash": "c156afebc9e6bd8320059cf119df4aed7d77baef",
      "subject": "[CMake] Add Swift Testing support (part 1)"
    },
    "316648@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316648@main",
      "clUrl": "https://commits.webkit.org/316648@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318792\n\nUnreviewed.\n\n* Source/WebCore/PlatformCocoa.cmake:\n\nCanonical link: https://commits.webkit.org/316648@main",
      "email": "achristensen@apple.com",
      "hash": "2dc91fc1f4c71839eb1773ce83bcfeba40dbf1e7",
      "subject": "Fix Cocoa CMake build after 316626@main"
    },
    "316649@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "316649@main",
      "clUrl": "https://commits.webkit.org/316649@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318356\n\nReviewed by Antti Koivisto.\n\nThe shared baseline alignment code only needs the alignment subject's\nwriting mode, but it fetched it through the renderer as\nalignmentSubject.writingMode(). Have the flex and grid callers pass the\nwriting mode in instead, so BaselineAlignmentState no longer reaches\ninto a RenderBox to determine the used writing mode.\n\nsharedGroup() and findCompatibleSharedGroup() only needed the writing\nmode and no longer take the renderer at all. updateSharedGroup() and the\nconstructor still receive it because BaselineGroup::update() records the\nRenderBox as the alignment subject's identity. No change in behavior.\n\n* Source/WebCore/rendering/BaselineAlignment.h:\n* Source/WebCore/rendering/BaselineAlignment.cpp:\n(WebCore::BaselineAlignmentState::BaselineAlignmentState):\n(WebCore::BaselineAlignmentState::sharedGroup const):\n(WebCore::BaselineAlignmentState::updateSharedGroup):\n(WebCore::BaselineAlignmentState::findCompatibleSharedGroup):\n* Source/WebCore/rendering/GridBaselineAlignment.cpp:\n(WebCore::GridBaselineAlignment::baselineGroupForGridItem const):\n(WebCore::GridBaselineAlignment::updateBaselineAlignmentContext):\n* Source/WebCore/rendering/RenderFlexibleBox.cpp:\n(WebCore::RenderFlexibleBox::layoutAndPlaceFlexItems):\n\nCanonical link: https://commits.webkit.org/316649@main",
      "email": "zalan@apple.com",
      "hash": "163b6003b4a216bb55f81fa74a319390caffe442",
      "subject": "[cleanup] Pass the alignment subject's writing mode into baseline alignment instead of reading it from the renderer"
    },
    "316650@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "316650@main",
      "clUrl": "https://commits.webkit.org/316650@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=266358\n\u003crdar://problem/119622741\u003e\n\nReviewed by Alexey Proskuryakov.\n\n* Source/WebInspectorUI/UserInterface/Views/DataGrid.js:\n(WI.DataGrid.prototype._startEditing):\n\nCanonical link: https://commits.webkit.org/316650@main",
      "email": "hi@devinrousso.com",
      "hash": "22e5186433c86313783c7c0b796c388a854b4d71",
      "subject": "Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'node.editable')"
    },
    "316651@main": {
      "author": "Taher Ali",
      "avatar": "https://www.gravatar.com/avatar/e104800647d8c98b8c9dbe736b5e1751?d=identicon\u0026s=64",
      "cl": "316651@main",
      "clUrl": "https://commits.webkit.org/316651@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316857\nrdar://179288836\n\nReviewed by Simon Fraser.\n\nIn legacy SVG, repaintRectInLocalCoordinates() bypasses its cache for\nnon-scaling-stroke (NSS) subtrees. For trees with thousands of NSS\nshapes that bypass is a hot loop: every repaint walks the entire subtree\nand each leaf climbs the DOM to compute its CTM.\n\nBut NSS only changes the bounding box when the CTM has a scale, skew, or\nrotate component. If a renderer's ancestor chain and its own transform\nare all identity-or-translation, NSS is a no-op and the cached repaint\nbounding box is already correct.\n\nThis fixes a real-world perf issue. On content with thousands of nested\nNSS paths and no scaling, computeContainerBoundingBoxes was the single\nhottest function at ~8.5% of total time; with the cache hit it drops to\n~0.3%\n\n* LayoutTests/svg/custom/non-scaling-stroke-nested-scaling-ancestor-expected.svg: Added.\n* LayoutTests/svg/custom/non-scaling-stroke-nested-scaling-ancestor.svg: Added.\n\n* Source/WebCore/rendering/svg/SVGRenderSupport.cpp:\n(WebCore::SVGRenderSupport::updateAncestorScalingTransformCounts):\n(WebCore::SVGRenderSupport::elementWillBeRemovedFromTree):\n* Source/WebCore/rendering/svg/SVGRenderSupport.h:\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.cpp:\n(WebCore::LegacyRenderSVGContainer::repaintRectInLocalCoordinates const):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.h:\n(WebCore::LegacyRenderSVGContainer::hasScalingTransformDescendant const):\n(WebCore::LegacyRenderSVGContainer::adjustScalingTransformDescendantCount):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.h:\n(WebCore::LegacyRenderSVGModelObject::isCountedAsScalingTransformDescendant const):\n(WebCore::LegacyRenderSVGModelObject::setIsCountedAsScalingTransformDescendant):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp:\n(WebCore::LegacyRenderSVGRoot::repaintRectInLocalCoordinates const):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.h:\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp:\n(WebCore::LegacyRenderSVGShape::layout):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGTransformableContainer.cpp:\n(WebCore::LegacyRenderSVGTransformableContainer::calculateLocalTransform):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGViewportContainer.cpp:\n(WebCore::LegacyRenderSVGViewportContainer::calculateLocalTransform):\n\nCanonical link: https://commits.webkit.org/316651@main",
      "email": "taher_ali@apple.com",
      "hash": "c52f78ad2c4d402d423f696158ae8413d0bfef5f",
      "subject": "Avoid full subtree walk for non-scaling-stroke when no scaling exists in the SVG tree"
    },
    "316652@main": {
      "author": "Franco Vieira de Souza",
      "avatar": "https://www.gravatar.com/avatar/14ed77684c1591a07649be8495cc0ddb?d=identicon\u0026s=64",
      "cl": "316652@main",
      "clUrl": "https://commits.webkit.org/316652@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315394\nrdar://177749843\n\nReviewed by Brady Eidson.\n\nMessagePort::close() was improperly guarded if\nMessagePort::disentangle() happened before it, causing it to tear down\na channel it no longer owns.\n\nTo fix this, MessagePort::State was introduced to replace the valid\ncombinations of (m_started, m_isDetached, m_entangled). There are now\nonly three states:\n\n- NotStartedYet : entangled, waiting for start() to begin handling\n  received messages\n- Started : entangled and start()'d\n- Disentangled : not entangled, port was closed or shipped away\n\nThere is no longer a distinction between \"disentangled\" and\n\"detached\" - both were collapsed into State::Disentangled. This matches\nour implementation: we disentangle shipped ports eagerly on\npostMessage() rather than deferring it to the receiver side, so\na \"detached but not yet disentangled\" intermediate state is not\npossible.\n\nlenientDisentangle() was introduced for code that leans on the\n\"detached but not disentangled\" state - it skips the assert on\ndisentangle() so that it may succeed even if the port has already been\nclosed. This edge case happens when SharedWorker::create() or\nAudioWorkletNode::create() run on a closed context.\n\nTest: fast/events/message-port-close-after-transfer.html\nCanonical link: https://commits.webkit.org/316652@main",
      "email": "franco_vieira@apple.com",
      "hash": "3e80e65d4fd85e1dbce0584210c99c0807063491",
      "subject": "Closing an already-transferred MessagePort shouldn't break channel"
    },
    "316653@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "316653@main",
      "clUrl": "https://commits.webkit.org/316653@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318679\nrdar://181488548\n\nReviewed by Alan Baradlay.\n\nSupport range syntax in style queries:\n\n    @container style(10px \u003c --foo \u003c= 100px) { ... }\n\nhttps://drafts.csswg.org/css-conditional-5/#typedef-style-range\n\nTest: fast/css/container-style-range-query-invalidation.html\n* LayoutTests/fast/css/container-style-range-query-invalidation-expected.txt: Added.\n* LayoutTests/fast/css/container-style-range-query-invalidation.html: Added.\n\nCovers invalidation when the queried property is a comparison bound, the far operand of a\ntwo-property comparison, or referenced via var() in the range center.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-parsing-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/query-evaluation-style-expected.txt:\n\nNow passing.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization-expected.txt:\n\nRebaselined: range operators now serialize with a trailing space per spec.\n\n* Source/WebCore/css/CSSCustomPropertyValue.cpp:\n(WebCore::CSSCustomPropertyValue::tokens const):\n\nReturn the tokens of an unresolved (substitution) value instead of asserting. Style range\noperands inspect these tokens to detect a bare \u003ccustom-property-name\u003e.\n\n* Source/WebCore/css/CSSCustomPropertyValue.h:\n\nMake tokens() public.\n\n* Source/WebCore/css/query/ContainerQuery.cpp:\n(WebCore::CQ::collectCustomPropertyNames):\n\nCollect every custom property a feature reads so mutations on the container invalidate style:\nthe queried property, a bare-name range operand, and var() references at any depth.\n\n* Source/WebCore/css/query/ContainerQuery.h:\n* Source/WebCore/css/query/ContainerQueryFeatures.cpp:\n(WebCore::CQ::Features::evaluateStyleRangeValue):\n\nEvaluate a resolved operand into a categorized value. \u003cnumber\u003e is tried first so a unitless\nzero categorizes as a number.\n\n(WebCore::CQ::Features::styleRangeValuesShareCategory):\n\nThe comparison is invalid unless the operands share a category, with a unitless zero allowed\nagainst a \u003cnumber\u003e or \u003clength\u003e.\n\n(WebCore::CQ::Features::StyleFeatureSchema::StyleFeatureSchema):\n\nstyle() is now a Range feature.\n\n(WebCore::CQ::Features::StyleFeatureSchema::evaluateRange const):\n\nResolve the center and bounds against the container and evaluate the comparisons. The\nresolution builder is created lazily so literal-only ranges skip it, and plain (non-substitution)\nvalues bypass the builder entirely.\n\n* Source/WebCore/css/query/ContainerQueryParser.cpp:\n(WebCore::CQ::consumeStyleRangeFeature):\n\nSplit operands on top-level comparison delimiters, capture each as an unresolved declaration\nvalue, and store a bare-name center in `name` (other centers in `subject`). Reject three-operand\nranges whose comparisons disagree in direction or use '='.\n\n(WebCore::CQ::consumeStyleFeature):\n\nParse boolean, plain and \u003cstyle-range\u003e style() features.\n\n(WebCore::CQ::ContainerQueryParser::consumeAndValidateFeature):\n\nRoute style() features through the dedicated custom-property parser. Its operands are custom\nproperties captured unresolved, and fitting that into the generic boolean/plain/range path is\nmore trouble than a dedicated one.\n\n* Source/WebCore/css/query/ContainerQueryParser.h:\n* Source/WebCore/css/query/GenericMediaQueryEvaluator.cpp:\n\nUse the shared compare() helper.\n\n* Source/WebCore/css/query/GenericMediaQueryParser.cpp:\n(WebCore::MQ::bareCustomPropertyName):\n\nShared helper: a single ident token that is a custom-property name.\n\n(WebCore::MQ::FeatureParser::consumeFeatureName):\n(WebCore::MQ::FeatureParser::consumeCustomPropertyValue):\n\nExpose as FeatureParser members so the container-query style() parser can reuse them.\n\n(WebCore::MQ::FeatureParser::consumeRangeComparisonOperator):\n\nSplit the range operator parsing out of consumeRangeFeature so \u003cstyle-range\u003e can reuse it.\n\n(WebCore::MQ::FeatureParser::consumeRangeFeature):\n\nUse the shared isConsistentThreeWayComparison() helper.\n\n(WebCore::MQ::FeatureParser::validateFeatureAgainstSchema):\n\nstyle() features are validated by consumeStyleFeature, not here.\n\n* Source/WebCore/css/query/GenericMediaQueryParser.h:\n(WebCore::MQ::GenericMediaQueryParser\u003cConcreteParser\u003e::consumeQueryInParens):\n\nDispatch consumeAndValidateFeature through the concrete parser so ContainerQueryParser can\noverride it for style().\n\n* Source/WebCore/css/query/GenericMediaQuerySerialization.cpp:\n(WebCore::MQ::serialize):\n\nSerialize a non-name range center from `subject`.\n\n* Source/WebCore/css/query/GenericMediaQueryTypes.h:\n\nAdd Feature::subject for a non-name style-range center. Move the shared compare() and\nisConsistentThreeWayComparison() helpers here so the size-range and style-range parsers and\nevaluators share them.\n\n* Source/WebCore/style/StyleScopeRuleSets.cpp:\n(WebCore::Style::ScopeRuleSets::customPropertyNamesInStyleContainerQueries const):\n\nUse collectCustomPropertyNames so range operands register for invalidation.\n\nCanonical link: https://commits.webkit.org/316653@main",
      "email": "antti@apple.com",
      "hash": "deb93ad60b5703b71dfdccc9aee62753e6ca4612",
      "subject": "[css-conditional-5] Support style query ranges"
    },
    "316654@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "316654@main",
      "clUrl": "https://commits.webkit.org/316654@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=309724\nrdar://172319433\n\nReviewed by Alex Christensen.\n\nWhen a cross-origin iframe requests DOM paste access (e.g. via\nnavigator.clipboard.readText()), the paste access dialog appears at the\nwrong position. The elementRect sent from the subframe's WebProcess is in\nsubframe coordinates, but the UIProcess uses it directly without\nconverting to main frame coordinates.\n\nUse convertRectToMainFrameCoordinates to transform the elementRect before\npassing it to the page client, matching the existing pattern used by the\ncolor picker, datalist suggestions dropdown, and popup menu.\n\nWith site isolation, a cross-origin parent may destroy the frame before\nthe requesting frame's process learns about it, so a missing frame here is\nan expected race rather than a misbehaving process. Deny the request\ngracefully in that case instead of terminating the connection with a\nmessage check.\n\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::requestDOMPasteAccess):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::(SiteIsolation, DOMPasteAccessRectInCrossOriginIframe)):\n\nCanonical link: https://commits.webkit.org/316654@main",
      "email": "zakr@apple.com",
      "hash": "5fe571e3d168b563c67df69611b8a77629922420",
      "subject": "[Site Isolation] DOM paste access dialog is offset from element in cross-origin iframes"
    },
    "316655@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "316655@main",
      "clUrl": "https://commits.webkit.org/316655@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318787\n\nUnreviewed build fix.\n\nCommit 316626@main added the ISOBMFFTrackInfoParser source files and the\nISOBMFFTrackInfoParserTests.cpp API test, but only registered them in the\nXcode projects. Two things were missing from the CMake build:\n\n- The test file was registered in the Xcode project as a\n  membershipException (compiled outside unified sources), but was not\n  added to the matching non-unified source list in PlatformMac.cmake, so\n  it was not built by CMake.\n- ISOBMFFTrackInfoParser.h was marked Private in the Xcode project but\n  was not added to WebCore's exported framework headers, so\n  \u003cWebCore/ISOBMFFTrackInfoParser.h\u003e could not be resolved from\n  TestWebKitAPI.\n\n* Source/WebCore/PlatformCocoa.cmake: Export ISOBMFFTrackInfoParser.h as\na WebCore private framework header.\n* Tools/TestWebKitAPI/PlatformMac.cmake: Build ISOBMFFTrackInfoParserTests.cpp\nas a non-unified source, matching its Xcode membershipException.\n\nCanonical link: https://commits.webkit.org/316655@main",
      "email": "basuke@apple.com",
      "hash": "1700c91c45be0cdbe00ef2f759d610fd2ec37c17",
      "subject": "[CMake] TestWebKitAPI build broken: ISOBMFFTrackInfoParserTests.cpp not added to CMake source list"
    },
    "316656@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "316656@main",
      "clUrl": "https://commits.webkit.org/316656@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=311885\nrdar://174452222\n\nReviewed by Alex Christensen.\n\nWhen an image service click (image controls button) is triggered on an image\ninside a site-isolated cross-origin iframe, the controlledImageBounds in\nContextMenuContextData contains coordinates relative to the subframe's content\narea. In setupServicesMenu(), this rect is treated as if it were in main-frame\ncoordinates, causing the NSSharingServicePicker source frame to be wrong — the\nsharing/markup popover appears at the wrong position.\n\nThe menuLocation point was already being converted to main-frame coordinates.\nThis patch converts the menuLocation and controlledImageBounds together in a\nsingle convertRectsToMainFrameCoordinates roundtrip, staging the menuLocation as\na zero-size rect and appending controlledImageBounds when it is non-empty (like\nfor image service clicks).\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm\n\n* Source/WebKit/Shared/ContextMenuContextData.h:\n(WebKit::ContextMenuContextData::setControlledImageBounds):\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::showContextMenuFromFrame):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::(SiteIsolation, ImageServiceControlledImageBoundsInCrossOriginIframe)):\n\nCanonical link: https://commits.webkit.org/316656@main",
      "email": "zakr@apple.com",
      "hash": "68d067fe56405b9ce60d0d21e21dbec844c7bca5",
      "subject": "[Site Isolation] Context menu controlledImageBounds not converted to main-frame coordinates for cross-origin iframes"
    },
    "316657@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "316657@main",
      "clUrl": "https://commits.webkit.org/316657@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=317756\nrdar://180527870\n\nUnreviewed test Gardening\n\nRemoving the test expectation\n\n* LayoutTests/platform/ios/TestExpectations:\n\nCanonical link: https://commits.webkit.org/316657@main",
      "email": "darbinyan@apple.com",
      "hash": "e678d523e5d77523c720ac9aa3ce55794542aabe",
      "subject": "[Gardening]: [iOS] imported/w3c/web-platform-tests/css/selectors/user-valid.html is flaky in EWS"
    },
    "316658@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "316658@main",
      "clUrl": "https://commits.webkit.org/316658@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318802\nrdar://181623820\n\nUnreviewed build fix.\n\nMatch the availability-silencing behavior of the Xcode build, which\nregressed in 316493@main. We should only use it when building against\nthe public SDK.\n\n* Source/cmake/OptionsCocoa.cmake:\n\nCanonical link: https://commits.webkit.org/316658@main",
      "email": "emw@apple.com",
      "hash": "20f0fc462d9b0d2d606fbd22fe9e9f79d7eb4e85",
      "subject": "[CMake] Only use vfsoverlay stub for public SDK builds"
    },
    "316659@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "316659@main",
      "clUrl": "https://commits.webkit.org/316659@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318768\n\nReviewed by Justin Michaud.\n\nThis patch adds B3::eliminateWasmGCAllocations phase. This is super\nduper simple scalar replacement for WasmGC struct types. We record\nusesWasmGCStructAllocations and run this phase only when this is\nrecorded as this phase is meaningless if we do not have WasmStructNew.\n\nThe key insight here is we already run CSE with WasmGC structs, which\ncan successfully remove load-elimination and store-elimination. Thus, at\nthis point, most of related WasmGC struct loads are no longer associated\nwith the WasmGC struct. Thus we only need to care about WasmStructSet\nhere since WasmStructGet should be already converted to the pointed\nvalue if the struct is not escaped and CSE ran already. This assumption\n(of course, this is not covering all the cases, but most of beneficial\ncases should be in this class) makes this phase extremely simple.\nBasically just collecting WasmStructSet-use-only WasmStructNew since it\nis not escaped. And then we convert all of them into Nop.\n\nTests: JSTests/wasm/stress/wasm-gc-eliminate-allocations-basic.js\n       JSTests/wasm/stress/wasm-gc-eliminate-allocations-control-flow.js\n       JSTests/wasm/stress/wasm-gc-eliminate-allocations-escape.js\n\n* JSTests/wasm/stress/wasm-gc-eliminate-allocations-basic.js: Added.\n(async test):\n* JSTests/wasm/stress/wasm-gc-eliminate-allocations-control-flow.js: Added.\n(loopLocalExpected):\n(async test):\n* JSTests/wasm/stress/wasm-gc-eliminate-allocations-escape.js: Added.\n(async test):\n* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:\n* Source/JavaScriptCore/Sources.txt:\n* Source/JavaScriptCore/b3/B3EliminateWasmGCAllocations.cpp: Added.\n(JSC::B3::eliminateWasmGCAllocations):\n* Source/JavaScriptCore/b3/B3EliminateWasmGCAllocations.h: Added.\n* Source/JavaScriptCore/b3/B3Generate.cpp:\n(JSC::B3::generateToAir):\n* Source/JavaScriptCore/b3/B3MemoryValue.h:\n* Source/JavaScriptCore/b3/B3Procedure.h:\n(JSC::B3::Procedure::setUsesWasmGCStructAllocations):\n(JSC::B3::Procedure::usesWasmGCStructAllocations const):\n(JSC::B3::Procedure::setUsesWasmGCArrayAllocations):\n(JSC::B3::Procedure::usesWasmGCArrayAllocations const):\n* Source/JavaScriptCore/runtime/OptionsList.h:\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n(JSC::Wasm::OMGIRGenerator::addArrayNew):\n(JSC::Wasm::OMGIRGenerator::addArrayNewDefault):\n(JSC::Wasm::OMGIRGenerator::addArrayNewFixed):\n(JSC::Wasm::OMGIRGenerator::addStructNew):\n(JSC::Wasm::OMGIRGenerator::addStructNewDefault):\n\nCanonical link: https://commits.webkit.org/316659@main",
      "email": "ysuzuki@apple.com",
      "hash": "c7bfc7c0ca52b4fea117da64c8f15d5fcab32167",
      "subject": "[JSC] Add B3::eliminateWasmGCAllocations phase"
    },
    "316661@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "316661@main",
      "clUrl": "https://commits.webkit.org/316661@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318788\nrdar://181607201\n\nReviewed by Abrar Rahman Protyasha.\n\nUpdate all TBA API availability versions to *OS 27.0.\n\n* Source/WebKit/Scripts/generate-swift-availability-macros:\n* Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKContentWorldConfiguration.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKFormInfo.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironment.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironmentDelegate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKJSHandle.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKJSSerializedNode.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKNavigationResponse.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKUIDelegate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKUserContentController.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPatternPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/_WKActivatedElementInfo.h:\n* Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:\n* Source/WebKit/UIProcess/API/Cocoa/_WKTextExtraction.h:\n* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:\n* Source/WebKit/UIProcess/API/Swift/WebPage+Configuration.swift:\n* Source/WebKit/UIProcess/API/Swift/WebPage+FormInfo.swift:\n* Source/WebKit/UIProcess/API/Swift/WebPage+ImmersiveEnvironment.swift:\n* Source/WebKit/UIProcess/API/Swift/WebPage+NavigationDeciding.swift:\n* Source/WebKit/UIProcess/API/Swift/WebPage+NavigationPreferences.swift:\n* Source/WebKit/UIProcess/Cocoa/WKNavigationDelegateAdapter.swift:\n* Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:\n* Source/WebKit/_WebKit_SwiftUI/API/View+WebViewModifiers.swift:\n* Source/WebKit/_WebKit_SwiftUI/API/WebViewImmersiveEnvironmentView.swift:\n* Tools/Scripts/webkitpy/common/version_name_map.py:\n(VersionNameMap.__init__):\n* Tools/Scripts/webkitpy/port/mac_unittest.py:\n(MacTest.test_latest_baseline_search_path):\n(MacTest.test_downlevel_baseline_search_path):\n\nCanonical link: https://commits.webkit.org/316661@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "a1549020ff9ffb3550817e0af6f41461f729b7b9",
      "subject": "Replace *_TBA API availability declarations with 27.0"
    },
    "316662@main": {
      "author": "Simon Fraser",
      "avatar": "https://www.gravatar.com/avatar/3763324aa0cdfa93be751c6081b8006a?d=identicon\u0026s=64",
      "cl": "316662@main",
      "clUrl": "https://commits.webkit.org/316662@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318756\nrdar://180597852\n\nReviewed by Dan Glastonbury.\n\nThe scroll anchoring code re-used `computeScrollerRelativeRects()` for both anchor selection, and\nscroll anchoring adjustment. However, only anchor selection should respect `scroll-padding`; this caused\nan erroneous scroll anchoring adjustment on nfl.com when the page changes `scroll-padding` on the root\nwhen the top bar is hovered.\n\nFix by passing in a flag to say whether `scroll-padding` should be respected; off for anchor adjustment,\nand on for anchor selection.\n\nTest: imported/w3c/web-platform-tests/css/css-scroll-anchoring/scroll-padding-change.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-anchoring/scroll-padding-change-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-anchoring/scroll-padding-change.html: Added.\n* Source/WebCore/page/scrolling/ScrollAnchoringController.cpp:\n(WebCore::ScrollAnchoringController::computeScrollerRelativeRects const):\n(WebCore::ScrollAnchoringController::computeOffsetFromOwningScroller const):\n(WebCore::ScrollAnchoringController::examineAnchorCandidate const):\n* Source/WebCore/page/scrolling/ScrollAnchoringController.h:\n\nCanonical link: https://commits.webkit.org/316662@main",
      "email": "simon.fraser@apple.com",
      "hash": "7ac7ce74ec82f418137c38209dc2d314000dca47",
      "subject": "[Scroll anchoring] nfl.com scroll position jumps when hovering the top bar (changing scroll-padding)"
    },
    "316663@main": {
      "author": "Dawn Morningstar",
      "avatar": "https://www.gravatar.com/avatar/9b791f3f02553608941e76bb5eecd471?d=identicon\u0026s=64",
      "cl": "316663@main",
      "clUrl": "https://commits.webkit.org/316663@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318797\nrdar://181625009\n\nReviewed by Jonathan Bedard.\n\napi-tests don't currently have a way to mark site-isolation expectations, this adds that functionality.\n\n* Tools/Scripts/webkitpy/api_tests/test_expectations.py:\n(APITestExpectations.get_current_configuration):\n* Tools/Scripts/webkitpy/port/base.py:\n(Port.api_test_current_configuration):\n* Tools/Scripts/webkitpy/port/mac_unittest.py:\n(MacTest.test_api_test_current_configuration_omits_flavor_without_site_isolation):\n(MacTest):\n(MacTest.test_api_test_current_configuration_adds_site_isolation_flavor):\n\nCanonical link: https://commits.webkit.org/316663@main",
      "email": "morningstar@apple.com",
      "hash": "1d17054cda86576aa0ca982e2d42df390612c4d3",
      "subject": "add site-isolation to the api-test expectations parser"
    },
    "316664@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "316664@main",
      "clUrl": "https://commits.webkit.org/316664@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318767\n\nReviewed by Sihui Liu.\n\nIn IndexValueStore::find() and IndexValueStore::reverseFind(), the\nfallback paths that advance to the next record used post-increment\n(iterator++) on an IDBKeyDataSet (std::set) iterator. Since the return\nvalue is discarded, this needlessly constructs a throwaway copy of the\niterator. Switch to prefix increment (++iterator).\n\nNo change in behavior.\n\n* Source/WebCore/Modules/indexeddb/server/IndexValueStore.cpp:\n(WebCore::IDBServer::IndexValueStore::find):\n(WebCore::IDBServer::IndexValueStore::reverseFind):\n\nCanonical link: https://commits.webkit.org/316664@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "66b6d48b3af443d2ac818813c4c39baaad0ad2d4",
      "subject": "Use prefix increment for std::set iterators in IndexValueStore"
    },
    "316665@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "316665@main",
      "clUrl": "https://commits.webkit.org/316665@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318791\n\nReviewed by Richard Robinson.\n\nIn the Cocoa ports, list WebKit's public and private headers separately,\nmatching what we have in Xcode. Copy them to their own respective\ndirectories at build time.\n\nFor WebKit's API headers that are forwarded from WebKitLegacy, use a\nsmall script that rewrites \u003cWebKitLegacy/X.h\u003e to \u003cWebKit/X.h\u003e in include\nstatements.\n\nThese changes are needed to reorganize CMake's headers into framework\nbundles, and be able to build WebKit's clang modules successfully on\nMac.\n\n* Source/WebKit/CMakeLists.txt:\n* Source/WebKit/Headers.cmake: Also sort header lists to satisfy\n  check-webkit-style.\n* Source/WebKit/PlatformMac.cmake:\n* Source/WebKitLegacy/PlatformMac.cmake:\n* Source/WebKitLegacy/scripts/forward-headers-cmake.pl: Added. Perl\n  instead of Python for execution speed and brevity.\n* Source/cmake/WebKitMacros.cmake: Support using a custom command in\n  WEBKIT_COPY_FILES, used by WebKitLegacy to call\n  `forward-headers-cmake.pl` above.\n* Tools/TestWebKitAPI/PlatformMac.cmake:\n\nCanonical link: https://commits.webkit.org/316665@main",
      "email": "emw@apple.com",
      "hash": "90857c2436a11b05d471daa03c85928d837e49ae",
      "subject": "[CMake] Build WebKit headers to correct API/SPI location"
    },
    "316666@main": {
      "author": "Brady Eidson",
      "avatar": "https://www.gravatar.com/avatar/31bed81d6d8ef517f93b30add03f5651?d=identicon\u0026s=64",
      "cl": "316666@main",
      "clUrl": "https://commits.webkit.org/316666@main",
      "description": "rdar://180575637\nhttps://bugs.webkit.org/show_bug.cgi?id=318800\n\nReviewed by Rupin Mittal.\n\nMany, many pieces of PSON commit machinery null check pageClient(), which\ncan legitimately become null.\n\nWebPageProxy::didAttachToRunningProcess missed such a check. Let's add it.\n\nUnable to reproduce, so no test.\n\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::didAttachToRunningProcess):\n\nCanonical link: https://commits.webkit.org/316666@main",
      "email": "beidson@apple.com",
      "hash": "bff3064cc4206617e440fe881330dcf93f114b45",
      "subject": "Null check pageClient() inside WebPageProxy::didAttachToRunningProcess"
    },
    "316668@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "316668@main",
      "clUrl": "https://commits.webkit.org/316668@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318489\nrdar://problem/181277780\n\nReviewed by Alan Baradlay.\n\nRenderBlock::paint has an early return that will exit the function if\nthe visual content is clipped out with respect to the painting rect.\nThis is done by checking to see if the visual overflow rect intersects\nwith the painting rect. In the scenario where there is no visual\noverflow visualOverflowRect() will just return the border box rect of\nthe renderer.\n\nCurrently, we do not report any sort of visual overflow for GFC content\nso RenderBlock::paint always grabs the border box rect. In the cases\nwhere the border box rect has a width of height is 0, since intersects()\nchecks for empty rects, we end up early returning even if the grid has\nvisual content.\n\nWe can fix this by collecting any sort of visual overflow at the end of\nlayout inside of integration and set it on the RenderGrid if there is\nany.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-overflowing-item-below-container-is-painted.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-overflowing-item-in-both-axes-is-painted.html: Added.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-overflowing-item-in-nonstart-cell-is-painted.html: Added.\nChecks to make sure that we still properly report visual overflow if the\noverflowing content does not start at the content box origin of the grid.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-overflowing-item-right-of-container-is-painted.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-overflowing-multiple-items-are-painted.html: Added.\n\nCanonical link: https://commits.webkit.org/316668@main",
      "email": "sammy.gill@apple.com",
      "hash": "aaf1bb8a51dc510c7c95a5f63067024d191b99fe",
      "subject": "[GFC] Visually overflowing content may not get painted in certain circumstances."
    },
    "316669@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "316669@main",
      "clUrl": "https://commits.webkit.org/316669@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318771\n\nReviewed by Brent Fulgham.\n\nWidthIterator::advanceInternal()'s hot loop materialized a fresh\nRef\u003cconst Font\u003e from advanceInternalState.nextRangeFont three times per\ncharacter (widthForGlyph, GlyphBounds::computeIfNeeded, and\naddToGlyphBuffer), each incurring an atomic ref on construction and a\nderef on destruction. The font pointer is fixed for the duration of a\nloop iteration (it only changes via startNewFontRangeIfNeeded()), so\nthis is pure overhead.\n\nBind the font to a single Ref after the default-ignorable early-out and\nreuse it. Both computeIfNeeded() and addToGlyphBuffer() take a\nconst Font\u0026, so the Ref binds by reference with no additional refcount\ntraffic, reducing the per-character cost from three ref/deref pairs to\none.\n\nNo change in behavior.\n\n* Source/WebCore/platform/graphics/WidthIterator.cpp:\n(WebCore::WidthIterator::advanceInternal):\n\nCanonical link: https://commits.webkit.org/316669@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "cef95678bcc0773f2cf161175e6e5c50d4829783",
      "subject": "[WidthIterator] Avoid redundant Font refcount churn in the per-character advance loop"
    },
    "316670@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "316670@main",
      "clUrl": "https://commits.webkit.org/316670@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318149\nrdar://153776866\n\nReviewed by Andy Estes.\n\nThis was attempted once before in 301065@main but it was reverted in 302010@main because it changed what\ncoordinates are used for fullscreen transitions.  This happened because the prior approach was to transform\nthe coordinates in WebFullScreenManagerProxy::enterFullScreen and use them in\nWebFullScreenManagerProxy::beganEnterFullScreen, but in order to do that we changed the time when the initial\nand final coordinates were gathered and stored.  In a process that has multiple IPC roundtrips to give the\npage a chance to change to the new size then transition to the new size, this timing change broke things.\n\nIn this PR, I take a different approach.  I don't change when I gather or store the coordinates, but I\nchange what coordinate space they are in.  Instead of converting to screen space in the web content process,\nI convert to root frame coordinate space in the web content process, then in the UI process I take those\ncoordinates and convert them to main frame space then to screen space.  This would be easier, but when I'm\ndoing those transformations the window has already been detached so I can't use WebPageProxy::syncRootViewToScreen\nbecause that uses the wrong window and therefore gives me the wrong coordinates.  Instead, I introduce a new\nutility, convertMainFrameCoordinatesInFullscreenPlaceholderViewToScreen, that uses the old window to do the\nsame coordinate transformation.  I verified that the coordinates before and after this change are identical.\n\nThe only remaining tricky part once I got that working was to get it working with site isolation.  At the\npoint in time when I would like to convert iframe coordinates to main frame coordinates, the frame coordinates\nhave already been changed by enterFullScreenForOwnerElementsInOtherProcesses so WebPageProxy's\ngeometry conversion utilities like convertRectToMainFrameCoordinates are also giving the wrong values.  The\npage has already changed in multiple processes, so the ability to transform coordinates from iframe space\nto main frame space has been destroyed.  To make it work I use a cached value of m_rootFrameOriginInMainFrameCoordinates\nthat I stored from convertPointToMainFrameCoordinates before enterFullScreenForOwnerElementsInOtherProcesses\nwas called to transform the coordinates.  This is somewhat equivalent to our previous approach of using a\nweb process's cached values of the location of its window in the screen.\n\nWhile I was reorganizing things around enterFullScreenForOwnerElementsInOtherProcesses, I realized that\nthe condition in which we need a call to nextPresentationUpdate after it was not when site isolation is enabled,\nbut rather when WebFullScreenManagerProxy::enterFullScreenForOwnerElementsInOtherProcesses sends IPC to other\nprocesses to tell them to update their geometry for entering fullscreen.  We need the nextPresentationUpdate call\nin that case because we need the geometry changes to percolate down the frame tree scattered across multiple\nweb content processes.\n\nThe test and infrastructure is taken from Nipun's earlier work, 301065@main.\n\n* LayoutTests/http/tests/site-isolation/fullscreen-expected.txt:\n* LayoutTests/http/tests/site-isolation/fullscreen.html:\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:\n(WebKit::WebFullScreenManagerProxy::enterFullScreen):\n(WebKit::WebFullScreenManagerProxy::enterFullScreenForOwnerElementsInOtherProcesses):\n(WebKit::WebFullScreenManagerProxy::convertFromRootViewToScreenCoordinates):\n(WebKit::WebFullScreenManagerProxy::beganEnterFullScreen):\n(WebKit::WebFullScreenManagerProxy::beganExitFullScreen):\n(WebKit::WebFullScreenManagerProxyClient::convertMainFrameCoordinatesInFullscreenPlaceholderViewToScreen const):\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in:\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::convertPointToMainFrameCoordinates):\n* Source/WebKit/UIProcess/WebPageProxy.h:\n* Source/WebKit/UIProcess/mac/PageClientImplMac.h:\n* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:\n(WebKit::PageClientImpl::convertMainFrameCoordinatesInFullscreenPlaceholderViewToScreen const):\n* Source/WebKit/UIProcess/mac/WKFullScreenWindowController.h:\n* Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm:\n(-[WKFullScreenWindowController convertMainFrameCoordinatesInFullscreenPlaceholderViewToScreen:]):\n* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:\n(WebKit::rootViewRectOfContents):\n(WebKit::WebFullScreenManager::performEnterFullScreen):\n(WebKit::WebFullScreenManager::willEnterFullScreen):\n(WebKit::WebFullScreenManager::willExitFullScreen):\n(WebKit::screenRectOfContents): Deleted.\n* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h:\n* Tools/WebKitTestRunner/TestController.cpp:\n(WTR::TestController::beganEnterFullScreen):\n(WTR::TestController::beganExitFullScreen):\n(WTR::TestController::resetStateToConsistentValues):\n* Tools/WebKitTestRunner/TestController.h:\n(WTR::TestController::dumpFullScreenOrigin):\n\nCanonical link: https://commits.webkit.org/316670@main",
      "email": "achristensen@apple.com",
      "hash": "545bccd54800338a09aa33bed6aecafc07ca7380",
      "subject": "[Site Isolation] Enter fullscreen animation begin needs coordinate transformation with site isolation on"
    },
    "316671@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "316671@main",
      "clUrl": "https://commits.webkit.org/316671@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318796\nrdar://181625123\n\nReviewed by Tim Nguyen.\n\nhttps://drafts.csswg.org/css-mixins-1/#defining-custom-functions\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nFlip the switch.\n\nCanonical link: https://commits.webkit.org/316671@main",
      "email": "antti@apple.com",
      "hash": "0772fecb599b7f8383d33ebd81a310c47b9f7104",
      "subject": "[css-mixins-1] Enable @function by default"
    },
    "316672@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "316672@main",
      "clUrl": "https://commits.webkit.org/316672@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318793\nrdar://173992627\n\nReviewed by Sam Weinig.\n\nhttps://drafts.csswg.org/css-values-5/#attr-notation\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nFlip the switch.\n\nCanonical link: https://commits.webkit.org/316672@main",
      "email": "antti@apple.com",
      "hash": "6ec88793acfbe455b79b0d6a18bb6c62e9ccac58",
      "subject": "[css-values-5 attr()] Enable by default"
    },
    "316673@main": {
      "author": "Dawn Morningstar",
      "avatar": "https://www.gravatar.com/avatar/9b791f3f02553608941e76bb5eecd471?d=identicon\u0026s=64",
      "cl": "316673@main",
      "clUrl": "https://commits.webkit.org/316673@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318276\nrdar://181067585\n\nReviewed by Jonathan Bedard.\n\nthis change uses the linter when someone calls git-webkit pr on a change\nthat modifies the api-test expectation file, and it surfaces the appropriate warnings,\nand if the change can be fixed with --fix-expectations it encourages the user to run it\n\n* TestExpectations/apitests:\n* Tools/Scripts/libraries/webkitexpectationspy/webkitexpectationspy/manager.py:\n(ExpectationsManager.fix):\n* Tools/Scripts/libraries/webkitexpectationspy/webkitexpectationspy/tests/manager_unittest.py:\n* Tools/Scripts/run-api-tests:\n(main):\n(lint_expectations):\n(parse_args):\n* Tools/Scripts/webkitpy/api_tests/test_expectations.py:\n(APITestExpectations.lint):\n(APITestExpectations):\n(APITestExpectations.fix):\n* Tools/Scripts/webkitpy/style/checker.py:\n(_all_categories):\n(StyleProcessor.do_association_check):\n\nCanonical link: https://commits.webkit.org/316673@main",
      "email": "morningstar@apple.com",
      "hash": "3a0102050694fdb27c53a60527124ed7b7e8c65f",
      "subject": "add an api-test style-checker for expectations"
    }
  },
  "date": "2026-07-07",
  "days": 1,
  "generatedAt": "2026-07-07T22:06:07Z",
  "markdown": "## Highlights\n- **Security** Tightened image decode IPC by validating scheme and cookie access, fixing invalid-message process kills and closing a risky cross-process path. [commit 316601@main](https://commits.webkit.org/316601@main)\n- **Web Platform** CSS attr() from css-values-5 is now enabled by default, unlocking typed attribute-driven styling without flags. [commit 316672@main](https://commits.webkit.org/316672@main)\n- **Web Platform** CSS @function from css-mixins-1 is enabled by default, a big step toward reusable author-defined CSS logic. [commit 316671@main](https://commits.webkit.org/316671@main)\n- **V8** JavaScriptCore added a fast path for Array#concat with multiple arguments, targeting a common hot path in app code. [commit 316619@main](https://commits.webkit.org/316619@main)\n- **Security** ANGLE fixed a dangling pointer in Metal occlusion query handling when visibility buffer allocation fails. [commit 316606@main](https://commits.webkit.org/316606@main)\n- **Rendering** Grid and formatting context work landed multiple visible fixes, including overflow painting and alignment safety. [commit 316668@main](https://commits.webkit.org/316668@main)\n- **Networking** Cookie handling changed so opener-origin access is no longer required for first-party cookies, aligning behavior with modern navigation expectations. [commit 316624@main](https://commits.webkit.org/316624@main)\n- **GPU** WebGPU fixed RGBA16Float offscreen canvas opacity, correcting rendering for a high-precision graphics path. [commit 316628@main](https://commits.webkit.org/316628@main)\n- **DevTools** Web Inspector got a solid batch of UX and performance fixes, including a hang on empty-string regex search and several stale-link bugs. [commit 316613@main](https://commits.webkit.org/316613@main)\n\n## What landed by area\n\n### CSS and Web Platform\n- **Web Platform** Added support for style query ranges from css-conditional-5, expanding conditional styling based on queried style values. [commit 316653@main](https://commits.webkit.org/316653@main)\n- **Web Platform** random-item() computed-value resolution now parses random keys and selects items correctly. [commit 316589@main](https://commits.webkit.org/316589@main)\n- **Web Platform** @function rules now re-resolve when container conditions change, fixing dynamic behavior for container-aware mixins. [commit 316618@main](https://commits.webkit.org/316618@main)\n- **Rendering** Added WPT reftests for corner-shape: bevel, improving coverage for new border geometry behavior. [commit 316639@main](https://commits.webkit.org/316639@main)\n- **Web Platform** IDBObjectStore.openKeyCursor() now returns the correct key-only cursor for key values. [commit 316584@main](https://commits.webkit.org/316584@main)\n- **Web Platform** Closing an already-transferred MessagePort no longer breaks the channel, fixing a subtle post-transfer messaging edge case. [commit 316652@main](https://commits.webkit.org/316652@main)\n\n### Rendering and Layout\n- **Rendering** Scroll anchoring no longer jumps on nfl.com when hover changes scroll-padding in the top bar. [commit 316662@main](https://commits.webkit.org/316662@main)\n- **Rendering** Implemented alignment safety in GFC, tightening layout behavior around unsafe alignment cases. [commit 316632@main](https://commits.webkit.org/316632@main)\n- **Rendering** Converted transform properties to evaluation-time zoom, continuing the push toward cleaner zoom-aware rendering behavior. [commit 316631@main](https://commits.webkit.org/316631@main)\n- **Rendering** Fixed disappearing main-frame scrollbars on light-themed pages with dark backgrounds after a regression. [commit 316635@main](https://commits.webkit.org/316635@main)\n- **Rendering** Avoided full subtree walks for non-scaling-stroke when the SVG tree has no scaling, cutting unnecessary work in SVG layout. [commit 316651@main](https://commits.webkit.org/316651@main)\n- **Rendering** Refactored preferredAspectRatio handling for placed grid items into GridLayoutUtils, reducing duplicated grid logic. [commit 316604@main](https://commits.webkit.org/316604@main)\n- **Refactor** Baseline alignment now takes the alignment subject's writing mode directly instead of reading from the renderer. [commit 316649@main](https://commits.webkit.org/316649@main)\n- **Refactor** Changed findIntersection() to return std::optional\u003cFloatPoint\u003e, making geometry failure explicit in call sites. [commit 316633@main](https://commits.webkit.org/316633@main)\n\n### JavaScriptCore and Wasm\n- **V8** Added a B3 phase to eliminate WasmGC allocations, pushing more allocation cleanup into the optimizer. [commit 316659@main](https://commits.webkit.org/316659@main)\n- **V8** Folded WasmGC object comparisons, simplifying generated code for Wasm GC equality paths. [commit 316612@main](https://commits.webkit.org/316612@main)\n- **V8** Added a TypedArray fast path for LoadVarargs operations, improving spread-like argument loading on typed data. [commit 316598@main](https://commits.webkit.org/316598@main)\n- **V8** Air::simplifyCFG now chases foldable blocks repeatedly in one path, simplifying CFG cleanup. [commit 316588@main](https://commits.webkit.org/316588@main)\n- **V8** ArrayBuffer locking state moved into pinCount, tightening internal lifetime accounting. [commit 316641@main](https://commits.webkit.org/316641@main)\n- **V8** Error stack traces for instantiateStreaming modules no longer include names in this path, aligning emitted stacks with expected behavior. [commit 316642@main](https://commits.webkit.org/316642@main)\n- **Web Platform** Temporal.ZonedDateTime got spec-alignment polish and clearer step annotations. [commit 316587@main](https://commits.webkit.org/316587@main)\n\n### Site Isolation, Process Model, and IPC\n- **Security** Fixed fullscreen animation begin coordinates under Site Isolation by applying the needed coordinate transform. [commit 316670@main](https://commits.webkit.org/316670@main)\n- **UI** Context menu controlledImageBounds now converts to main-frame coordinates for cross-origin iframes. [commit 316656@main](https://commits.webkit.org/316656@main)\n- **UI** The DOM paste access dialog is no longer offset from the target element inside cross-origin iframes. [commit 316654@main](https://commits.webkit.org/316654@main)\n- **Perf** Fixed a hang on back navigation to an intermediate multi-process BFCache entry when a cross-site iframe could not be cached. [commit 316605@main](https://commits.webkit.org/316605@main)\n- **GPU** Worker OffscreenCanvas no longer crashes in a page-less worker process. [commit 316585@main](https://commits.webkit.org/316585@main)\n- **Security** Fixed a CoreIPC and GPUP path where nested DrawDisplayList replay could fall back to ControlFactory::singleton() and hit a concurrent NSCell UAF. [commit 316592@main](https://commits.webkit.org/316592@main)\n- **Refactor** Cleaned up AsyncReplyHandlerWithDispatcher internals. [commit 316617@main](https://commits.webkit.org/316617@main)\n- **Refactor** Added a null check for pageClient() in WebPageProxy::didAttachToRunningProcess, hardening process attach handling. [commit 316666@main](https://commits.webkit.org/316666@main)\n- **Build** Added a warning when OptionSet enum values are missing from serialization.in files, catching IPC schema drift earlier. [commit 316630@main](https://commits.webkit.org/316630@main)\n\n### Inspector and Developer Experience\n- **DevTools** Fixed a Web Inspector exception from reading node.editable on undefined. [commit 316650@main](https://commits.webkit.org/316650@main)\n- **DevTools** Hidden Unicode characters like zero-width joiners are now displayed in Web Inspector. [commit 316616@main](https://commits.webkit.org/316616@main)\n- **DevTools** Console avoids querying all nodes in view, reducing unnecessary work on large pages. [commit 316609@main](https://commits.webkit.org/316609@main)\n- **DevTools** Batched DOM updates in updateVisibleRows, improving inspector responsiveness while scrolling and updating views. [commit 316595@main](https://commits.webkit.org/316595@main)\n- **DevTools** Copy Link now respects the page's \u003cbase\u003e element. [commit 316599@main](https://commits.webkit.org/316599@main)\n- **DevTools** Fixed the Network tab Initiator link opening a previously clicked location instead of the current one. [commit 316596@main](https://commits.webkit.org/316596@main)\n- **UI** Fixed copy link with highlight so it uses the highlighted URL instead of the original page URL. [commit 316597@main](https://commits.webkit.org/316597@main)\n- **DevTools** Fixed a macOS text regression in inspector animation lifecycle tests. [commit 316614@main](https://commits.webkit.org/316614@main)\n\n### Media, Graphics, and Platform Integration\n- **Media** Improved platform media queries on GTK and WPE for prefers-reduced-motion, high contrast, and dark theme. [commit 316627@main](https://commits.webkit.org/316627@main)\n- **Mobile** WKAVContentSource now conforms to AVPlaybackUserInterfaceVideoControllable on iOS. [commit 316583@main](https://commits.webkit.org/316583@main)\n- **UI** visionOS now skips InteractionRegions when an ancestor has opacity: 0, preventing invisible regions from staying interactive. [commit 316590@main](https://commits.webkit.org/316590@main)\n- **Media** Renamed PDFDocument to PDFJSDocument, clarifying ownership and reducing naming ambiguity around the PDF.js path. [commit 316591@main](https://commits.webkit.org/316591@main)\n- **Networking** Removed WebTransport support on Cocoa platforms lacking nw_webtransport_options_set_allow_joining_before_ready. [commit 316593@main](https://commits.webkit.org/316593@main)\n- **Media** Fixed Cocoa MSE test coverage around mediasource sequence-mode append buffer behavior after a permanent failure. [commit 316626@main](https://commits.webkit.org/316626@main)\n\n### Performance, Build, and Tooling\n- **Perf** WidthIterator now avoids redundant Font refcount churn in the per-character advance loop. [commit 316669@main](https://commits.webkit.org/316669@main)\n- **Build** Built WebKit headers to the correct API and SPI locations in CMake builds. [commit 316665@main](https://commits.webkit.org/316665@main)\n- **Build** Limited vfsoverlay stub use to public SDK builds in CMake. [commit 316658@main](https://commits.webkit.org/316658@main)\n- **Build** Added Swift Testing support in CMake as part 1 of the integration work. [commit 316646@main](https://commits.webkit.org/316646@main)\n- **Build** Fixed the Cocoa CMake build after a prior landing. [commit 316648@main](https://commits.webkit.org/316648@main)\n- **Build** Fixed missing ISOBMFFTrackInfoParserTests.cpp in the CMake source list for TestWebKitAPI. [commit 316655@main](https://commits.webkit.org/316655@main)\n- **Refactor** Replaced *_TBA API availability declarations with 27.0. [commit 316661@main](https://commits.webkit.org/316661@main)\n- **Refactor** Used prefix increment for std::set iterators in IndexValueStore. [commit 316664@main](https://commits.webkit.org/316664@main)\n- **Refactor** Fixed PrintStream truncation of long strings written to files. [commit 316622@main](https://commits.webkit.org/316622@main)\n- **Refactor** Dropped vestigial -expected.checksum support from the testing infrastructure. [commit 316623@main](https://commits.webkit.org/316623@main)\n- **Build** Added an api-test style checker for expectations files. [commit 316673@main](https://commits.webkit.org/316673@main)\n- **Build** Extended the api-test expectations parser for site-isolation entries. [commit 316663@main](https://commits.webkit.org/316663@main)\n- **Refactor** Small updates landed across various new APIs. [commit 316611@main](https://commits.webkit.org/316611@main)\n\n### Test Gardening and Stability\n- **Build** Marked imported WPT selectors user-valid.html flaky in iOS EWS. [commit 316657@main](https://commits.webkit.org/316657@main)\n- **Build** Fixed an iOS DEBUG regression with constant crashes in WKWebExtensionAPICookies api tests. [commit 316645@main](https://commits.webkit.org/316645@main)\n- **Build** Marked a batch of iOS DEBUG WebKitLegacy api tests as constant crashes. [commit 316637@main](https://commits.webkit.org/316637@main)\n- **Build** Addressed constant text failure in ipc/networksessioncocoa-empty-resource-request.html. [commit 315967@main](https://commits.webkit.org/315967@main)\n- **Build** Marked fast/mediastream/delete-audio-unit.html flaky on GTK after timing out. [commit 316634@main](https://commits.webkit.org/316634@main)\n- **Build** Marked fast/mediastream/mediastreamtrack-clone-muted.html as a flaky crash on GLIB. [commit 316621@main](https://commits.webkit.org/316621@main)\n- **Build** Updated the SameObject-identity.html baseline after an LBSE regression. [commit 316620@main](https://commits.webkit.org/316620@main)\n- **Build** Marked WPE WebGL video-rotation timeout regressions in conformance tests. [commit 316608@main](https://commits.webkit.org/316608@main)\n- **Build** Marked site-isolation page-zoom.html as a flaky image diff on macOS after regression. [commit 316586@main](https://commits.webkit.org/316586@main)\n- **Build** Landed general unreviewed layout test gardening. [commit 316625@main](https://commits.webkit.org/316625@main)\n- **Build** Repeated the GTK delete-audio-unit flaky timeout handling in a follow-up gardening pass. [commit 316610@main](https://commits.webkit.org/316610@main)\n\n## Reverts \u0026 Reapplies\n- **Build** Re-merged a prior WebTransport-related change after follow-up fixes restored it. [commit 316644@main](https://commits.webkit.org/316644@main)\n- **Networking** Re-landed Linux time zone change notifications after an earlier rollback. [commit 316629@main](https://commits.webkit.org/316629@main)",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [
    {
      "name": "Unreviewed",
      "count": 5
    },
    {
      "name": "Versioning.",
      "count": 2
    }
  ],
  "since": "2026-07-07",
  "totals": {
    "commits": 91,
    "features": 84,
    "rolls": 7
  },
  "until": "2026-07-07"
}