{
  "commits": {
    "319145@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "319145@main",
      "clUrl": "https://commits.webkit.org/319145@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321469\nrdar://184559960\n\nReviewed by Basuke Suzuki.\n\nThis responds to feedback from https://github.com/web-platform-tests/wpt/pull/61619\ndatagrams is required, but datagrams' members are not.\n\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/stats.https.any.js:\n(promise_test.async t):\n* Source/WebCore/Modules/webtransport/WebTransportConnectionStats.h:\n(WebCore::WebTransportConnectionStats::isolatedCopy const):\n* Source/WebCore/Modules/webtransport/WebTransportConnectionStats.idl:\n* Source/WebCore/Modules/webtransport/WebTransportDatagramStats.h:\n(WebCore::WebTransportDatagramStats::isolatedCopy const):\n(): Deleted.\n* Source/WebCore/Modules/webtransport/WebTransportDatagramStats.idl:\n* Source/WebKit/NetworkProcess/webtransport/WebTransport.serialization.in:\n\nCanonical link: https://commits.webkit.org/319145@main",
      "email": "achristensen@apple.com",
      "hash": "19e6458e398ab84ade7597b0d961307b53b9b302",
      "subject": "Update WebTransportConnectionStats to have required members"
    },
    "319146@main": {
      "author": "Dan Hecht",
      "avatar": "https://www.gravatar.com/avatar/080f47d912b1b34d0be8293f825d132d?d=identicon\u0026s=64",
      "cl": "319146@main",
      "clUrl": "https://commits.webkit.org/319146@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321710\nrdar://184852271\n\nReviewed by Yijia Huang.\n\nThese don't finalize anything. They check whether the cells a status or variant refers\nto are still marked and return a bool; the caller does the clearing.\nRecordedStatuses::reconcileWeakReferencesWithoutDeleting zeroes the status in place,\nreconcileWeakReferences drops it from the vector.\n\nisStillLive is what they call into: StructureSet::isStillAlive,\nObjectPropertyConditionSet::areStillLive, ObjectPropertyCondition::isStillLive.\nAdopt that name.\n\nRenamed on CallLinkStatus, CheckPrivateBrandStatus, DeleteByStatus, GetByStatus,\nInByStatus, PutByStatus, SetPrivateBrandStatus and each of their variants.\n\nNo behavior change.\n\n* Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:\n(JSC::CallLinkStatus::isStillLive):\n(JSC::CallLinkStatus::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/CallLinkStatus.h:\n* Source/JavaScriptCore/bytecode/CallVariant.cpp:\n(JSC::CallVariant::isStillLive):\n(JSC::CallVariant::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/CallVariant.h:\n* Source/JavaScriptCore/bytecode/CheckPrivateBrandStatus.cpp:\n(JSC::CheckPrivateBrandStatus::isStillLive):\n(JSC::CheckPrivateBrandStatus::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/CheckPrivateBrandStatus.h:\n* Source/JavaScriptCore/bytecode/CheckPrivateBrandVariant.cpp:\n(JSC::CheckPrivateBrandVariant::isStillLive):\n(JSC::CheckPrivateBrandVariant::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/CheckPrivateBrandVariant.h:\n* Source/JavaScriptCore/bytecode/DeleteByStatus.cpp:\n(JSC::DeleteByStatus::isStillLive):\n(JSC::DeleteByStatus::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/DeleteByStatus.h:\n* Source/JavaScriptCore/bytecode/DeleteByVariant.cpp:\n(JSC::DeleteByVariant::isStillLive):\n(JSC::DeleteByVariant::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/DeleteByVariant.h:\n* Source/JavaScriptCore/bytecode/GetByStatus.cpp:\n(JSC::GetByStatus::isStillLive):\n(JSC::GetByStatus::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/GetByStatus.h:\n* Source/JavaScriptCore/bytecode/GetByVariant.cpp:\n(JSC::GetByVariant::isStillLive):\n(JSC::GetByVariant::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/GetByVariant.h:\n* Source/JavaScriptCore/bytecode/InByStatus.cpp:\n(JSC::InByStatus::isStillLive):\n(JSC::InByStatus::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/InByStatus.h:\n* Source/JavaScriptCore/bytecode/InByVariant.cpp:\n(JSC::InByVariant::isStillLive):\n(JSC::InByVariant::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/InByVariant.h:\n* Source/JavaScriptCore/bytecode/PutByStatus.cpp:\n(JSC::PutByStatus::isStillLive):\n(JSC::PutByStatus::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/PutByStatus.h:\n* Source/JavaScriptCore/bytecode/PutByVariant.cpp:\n(JSC::PutByVariant::isStillLive):\n(JSC::PutByVariant::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/PutByVariant.h:\n* Source/JavaScriptCore/bytecode/RecordedStatuses.cpp:\n(JSC::RecordedStatuses::reconcileWeakReferencesWithoutDeleting):\n(JSC::RecordedStatuses::reconcileWeakReferences):\n* Source/JavaScriptCore/bytecode/SetPrivateBrandStatus.cpp:\n(JSC::SetPrivateBrandStatus::isStillLive):\n(JSC::SetPrivateBrandStatus::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/SetPrivateBrandStatus.h:\n* Source/JavaScriptCore/bytecode/SetPrivateBrandVariant.cpp:\n(JSC::SetPrivateBrandVariant::isStillLive):\n(JSC::SetPrivateBrandVariant::finalize): Deleted.\n* Source/JavaScriptCore/bytecode/SetPrivateBrandVariant.h:\n\nCanonical link: https://commits.webkit.org/319146@main",
      "email": "dan.hecht@apple.com",
      "hash": "3d37c6da40ba652c58d5a6336ba61cc86ada9ba8",
      "subject": "[JSC] Rename Status/Variant finalize predicates to isStillLive"
    },
    "319147@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "319147@main",
      "clUrl": "https://commits.webkit.org/319147@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321449\n\nReviewed by Carlos Alberto Lopez Perez.\n\nmeta-raspberrypi defaults SERIAL_CONSOLES to the mini UART (ttyS0) and the image\nships with serial-getty@ttyS0.service enabled. The firmware only powers up that\nport when enable_uart=1 is set in config.txt, which we never set, so agetty fails.\nHowever systemd will try to restart it every 10s, flooding the journal.\n\nNobody attaches a serial cable to these machines, so stop installing the getty.\n\n* Tools/yocto/rpi/local-rpi3-32bits-mesa.conf:\n* Tools/yocto/rpi/local-rpi3-32bits-userland.conf:\n* Tools/yocto/rpi/local-rpi3-64bits-mesa.conf:\n* Tools/yocto/rpi/local-rpi4-32bits-mesa.conf:\n* Tools/yocto/rpi/local-rpi4-64bits-mesa.conf:\n\nCanonical link: https://commits.webkit.org/319147@main",
      "email": "nzimmermann@igalia.com",
      "hash": "5863d45bdf1a85cb74d8e32b714984d5c2f5f93c",
      "subject": "[WPE][cross-toolchain-helper] serial-getty@ttyS0 restarts in a loop on the RPi bots"
    },
    "319148@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "319148@main",
      "clUrl": "https://commits.webkit.org/319148@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321444\nrdar://184535736\n\nReviewed by Alex Christensen.\n\nAll eleven cookie messages repeated the same authorization preamble: an\nallowsFirstPartyForCookies() call, a MESSAGE_CHECK against Terminate, a silent\nreturn on anything other than Allow, and for six of them a sameSiteInfo check.\n\nMove it into validateCookieAccess(). The MESSAGE_CHECK stays at each call site so\nthe fault log keeps naming the message that failed and the completion handler is\nstill run before returning.\n\nNo change in behavior. Handlers with no sameSiteInfo pass nullptr and remain\nunchecked, domCookiesForHost still authorizes its url as its own first party, and\nsetRawCookie and deleteCookie keep their other message checks in the same order.\n\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:\n(WebKit::NetworkConnectionToWebProcess::validateCookieAccess):\n(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):\n(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):\n(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):\n(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):\n(WebKit::NetworkConnectionToWebProcess::getRawCookies):\n(WebKit::NetworkConnectionToWebProcess::setRawCookie):\n(WebKit::NetworkConnectionToWebProcess::deleteCookie):\n(WebKit::NetworkConnectionToWebProcess::cookiesForDOMAsync):\n(WebKit::NetworkConnectionToWebProcess::setCookieFromDOMAsync):\n(WebKit::NetworkConnectionToWebProcess::domCookiesForHost):\n(WebKit::NetworkConnectionToWebProcess::subscribeToCookieChangeNotifications):\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:\n\nCanonical link: https://commits.webkit.org/319148@main",
      "email": "zakr@apple.com",
      "hash": "b6e0a91ee2ab0e4da5f86317b2eb16a6dcdc0400",
      "subject": "Consolidate NetworkProcess cookie IPC authorization into one function"
    },
    "319149@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "319149@main",
      "clUrl": "https://commits.webkit.org/319149@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321726\nrdar://184860283\n\nUnreviewed test gardening\n\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319149@main",
      "email": "darbinyan@apple.com",
      "hash": "07bc0308e5a3cd86fbd0b98398058d038676d3a1",
      "subject": "[Gardening]: [macOS iOS] imported/w3c/web-platform-tests/largest-contentful-paint/observe-svg-data-uri-image.html is a flaky test failure"
    },
    "319150@main": {
      "author": "Dan Hecht",
      "avatar": "https://www.gravatar.com/avatar/080f47d912b1b34d0be8293f825d132d?d=identicon\u0026s=64",
      "cl": "319150@main",
      "clUrl": "https://commits.webkit.org/319150@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321714\nrdar://184853952\n\nReviewed by Vassili Bykov.\n\nFollow-on to the reconcileWeakReferencesAtGCEnd rename; these are the leaves of the same\npass. \"visitWeak\" was doubly misleading. Usually in JSC \"visit\" means trace or\nmark -- visitChildren, visitAggregate, SlotVisitor::append -- but these do the opposite:\nCallLinkInfo::visitWeak calls unlinkOrUpgrade and sets m_clearedByGC. And nothing in the\nname said when they run; every caller sits in the GC End reconcile tree.\n\nReturning bool does not by itself make one a predicate, so name them by what they do.\nCallers of the bool form do isValid \u0026= ..., then discard the stub on false.\n\n    reconcileWeakReferencesAtGCEnd, void\n        CallLinkInfo, DirectCallLinkInfo, MicrotaskCall, PropertyInlineCache\n\n    reconcileWeakReferencesAtGCEnd, bool \"still usable\"\n        InlineCacheHandler           reconciles m_callLinkInfo, then computes isValid\n        PolymorphicCallStubRoutine   clears dead slots via slot = CallSlot()\n        MarkingGCAwareJITStubRoutine reconciles m_callLinkInfos\n        JITStubRoutine and the ...Impl virtual, since two of the four overrides mutate\n        and a caller cannot know which it dispatches to\n\n    isStillLive, pure predicate\n        AccessCase (const), PolymorphicAccess\n\nPolymorphicAccess only aggregates AccessCase::isStillLive, so it stays a predicate despite\nsitting mid-chain. isStillLive matches StructureSet::isStillAlive and\nObjectPropertyCondition::isStillLive nearby.\n\nNo behavior change.\n\n* Source/JavaScriptCore/bytecode/AccessCase.cpp:\n(JSC::AccessCase::isStillLive const):\n(JSC::AccessCase::visitWeak const): Deleted.\n* Source/JavaScriptCore/bytecode/AccessCase.h:\n* Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:\n(JSC::CallLinkInfo::reconcileWeakReferencesAtGCEnd):\n(JSC::DirectCallLinkInfo::reconcileWeakReferencesAtGCEnd):\n(JSC::CallLinkInfo::visitWeak): Deleted.\n(JSC::DirectCallLinkInfo::visitWeak): Deleted.\n* Source/JavaScriptCore/bytecode/CallLinkInfo.h:\n* Source/JavaScriptCore/bytecode/CodeBlock.cpp:\n(JSC::CodeBlock::reconcileJITInlineCachesAtGCEnd):\n(JSC::CodeBlock::reconcileWeakReferencesAtGCEnd):\n* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:\n(JSC::PolymorphicAccess::isStillLive):\n(JSC::PolymorphicAccess::visitWeak): Deleted.\n* Source/JavaScriptCore/bytecode/InlineCacheCompiler.h:\n* Source/JavaScriptCore/bytecode/InlineCacheHandler.cpp:\n(JSC::InlineCacheHandler::reconcileWeakReferencesAtGCEnd):\n(JSC::InlineCacheHandler::visitWeak): Deleted.\n* Source/JavaScriptCore/bytecode/InlineCacheHandler.h:\n* Source/JavaScriptCore/bytecode/PropertyInlineCache.cpp:\n(JSC::PropertyInlineCache::reconcileWeakReferencesAtGCEnd):\n(JSC::PropertyInlineCache::visitWeak): Deleted.\n* Source/JavaScriptCore/bytecode/PropertyInlineCache.h:\n* Source/JavaScriptCore/interpreter/MicrotaskCall.cpp:\n(JSC::MicrotaskCall::reconcileWeakReferencesAtGCEnd):\n(JSC::MicrotaskCall::visitWeak): Deleted.\n* Source/JavaScriptCore/interpreter/MicrotaskCall.h:\n* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:\n(JSC::PolymorphicAccessJITStubRoutine::reconcileWeakReferencesAtGCEndImpl):\n(JSC::MarkingGCAwareJITStubRoutine::reconcileWeakReferencesAtGCEndImpl):\n(JSC::PolymorphicAccessJITStubRoutine::visitWeakImpl): Deleted.\n(JSC::MarkingGCAwareJITStubRoutine::visitWeakImpl): Deleted.\n* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h:\n* Source/JavaScriptCore/jit/JITStubRoutine.cpp:\n(JSC::JITStubRoutine::reconcileWeakReferencesAtGCEnd):\n(JSC::JITStubRoutine::visitWeak): Deleted.\n* Source/JavaScriptCore/jit/JITStubRoutine.h:\n(JSC::JITStubRoutine::reconcileWeakReferencesAtGCEndImpl):\n(JSC::JITStubRoutine::visitWeakImpl): Deleted.\n* Source/JavaScriptCore/jit/JITThunks.h:\n* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp:\n(JSC::PolymorphicCallStubRoutine::reconcileWeakReferencesAtGCEndImpl):\n(JSC::PolymorphicCallStubRoutine::visitWeakImpl): Deleted.\n* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h:\n* Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp:\n(JSC::JSWebAssemblyInstance::reconcileWeakReferencesAtGCEnd):\n\nCanonical link: https://commits.webkit.org/319150@main",
      "email": "dan.hecht@apple.com",
      "hash": "5602ec36107bd2d82e39b5f071f932c1241f6ac1",
      "subject": "[JSC] Rename the visitWeak family to reconcileWeakReferencesAtGCEnd"
    },
    "319151@main": {
      "author": "Sihui Liu",
      "avatar": "https://www.gravatar.com/avatar/fea095a2fb34b599fa6e7d581666903b?d=identicon\u0026s=64",
      "cl": "319151@main",
      "clUrl": "https://commits.webkit.org/319151@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321572\nrdar://184681796\n\nReviewed by Ryosuke Niwa.\n\nIsolatedSiteStore was per-session and in-memory, so a site promoted by a first-party visit, a gesture or an autofill was\nforgotten at restart. Placement also consulted ITP's hadUserInteraction set on every shared-process decision, so site\nisolation stopped working as soon as tracking prevention was turned off.\n\nTo fix these, add a persistent backend for IsolatedSiteStore and remove dependency on ITP.\n\n- Add IsolatedSitePersistence, a SQLite database per WKWebsiteDataStore holding each site's registrable domain, its\nsignals, and when a signal for it was last observed, plus whether the one-time import from tracking prevention has\nhappened. The schema is versioned with PRAGMA user_version so a later column is an added migration step; an\nuninterpretable file is recreated, a transient failure such as a full disk is not.\n\n- IsolatedSiteStore owns one for non-ephemeral sessions and remains the only read source: it keeps the full set in\nmemory, since placement needs a synchronous answer, and writes through. Bring-up is staged — open and read the database,\nthen, if ITP is enabled, import its user-interaction domains once and record that as done, so it is never asked again.\nAn ephemeral session has no database and so never imports. Placement waits for the import to resolve, since it wants the\nseeded entries. Removal and fetching wait only for the database read, so that asking to inspect or delete this data\ncannot cause it to be seeded first. Clearing everything skips a pending import outright and still records it as done,\nwhich avoids importing entries only to delete them and keeps the same browsing from returning out of ITP's copy of it.\nNarrower removals leave the import alone: clearing an hour, or one site, says nothing about history predating this store.\n\n- Placement no longer consults ITP at all, since the store now holds that data itself. sharedProcessForSite drops its\nfetchDomainsWithUserInteraction() call, processForSite loses the isolatedDomains parameter that only that caller used,\nand  didHaveUserInteractionForSiteIsolation goes away along with the frameID parameter of\nrecordUserGestureAuthorizationToken that existed only for it.\n\n- Imported domains are tagged FirstPartyVisit and FirstPartyUserGesture, since an interaction implies a visit and also\ncovers autofill and WebAuthn completion, and they carry ITP's own mostRecentUserInteractionTime rather than the time of\nthe import, so eviction can tell recent use from old. FetchWebsitesWithUserInteractions and the store methods behind it\ntherefore return a timestamp per domain, and return a std::optional so that \"nothing recorded\" is  distinguishable from\n\"could not be read\": only the former records the import as done, so a failure retries on a later launch instead of\nlosing the seeding for good.\n\n- Add WebsiteDataType::IsolatedSiteRecord, scoped to the data store, so this data can be fetched and removed like any\nother website data — whole store, by modification time, or per domain. The cutoff is rounded down to a day like the\nentries themselves, so it over-deletes rather than under-deletes.\n\nTests: IsolatedSiteStore.PersistsAcrossSessions\n       IsolatedSiteStore.DataRemoval\n       IsolatedSiteStore.ImportsWhenTrackingPreventionIsTurnedOnLater\n       IsolatedSiteStore.PartialDataRemovalAllowsImport\n       IsolatedSiteStore.DataRemovalDoesNotImport\n\n* Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:\n(WebKit::ResourceLoadStatisticsStore::loadWebsitesWithUserInteraction):\n* Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:\n* Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:\n(WebKit::WebResourceLoadStatisticsStore::loadWebsitesWithUserInteraction):\n* Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:\n* Source/WebKit/NetworkProcess/NetworkProcess.cpp:\n(WebKit::NetworkProcess::fetchWebsitesWithUserInteractions):\n* Source/WebKit/NetworkProcess/NetworkProcess.h:\n* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:\n* Source/WebKit/Shared/WebsiteData/WebsiteData.cpp:\n(WebKit::WebsiteData::ownerProcess):\n* Source/WebKit/Shared/WebsiteData/WebsiteDataType.h:\n(WebKit::toString):\n* Source/WebKit/Shared/WebsiteData/WebsiteDataType.serialization.in:\n* Source/WebKit/Sources.txt:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:\n(dataTypesToString):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:\n(WebKit::toWebsiteDataType):\n(WebKit::toWKWebsiteDataTypes):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:\n(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):\n* Source/WebKit/UIProcess/BrowsingContextGroup.cpp:\n(WebKit::BrowsingContextGroup::sharedProcessForSite):\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::launchProcess):\n(WebKit::WebPageProxy::sendMouseEvent):\n(WebKit::WebPageProxy::sendKeyEvent):\n(WebKit::WebPageProxy::sendPreventableTouchEvent):\n(WebKit::WebPageProxy::sendUnpreventableTouchEvent):\n(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):\n(WebKit::WebPageProxy::triggerProcessSwapForEnhancedSecurity):\n* Source/WebKit/UIProcess/WebProcessPool.cpp:\n(WebKit::WebProcessPool::processForSite):\n(WebKit::WebProcessPool::createWebPage):\n(WebKit::WebProcessPool::prepareProcessForNavigation):\n(WebKit::WebProcessPool::processForNavigationInternal):\n* Source/WebKit/UIProcess/WebProcessPool.h:\n* Source/WebKit/UIProcess/WebProcessProxy.cpp:\n(WebKit::WebProcessProxy::recordUserGestureAuthorizationToken):\n* Source/WebKit/UIProcess/WebProcessProxy.h:\n* Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:\n(WebKit::WebsiteDataStore::defaultIsolatedSitesDirectory):\n* Source/WebKit/UIProcess/WebsiteData/IsolatedSitePersistence.cpp: Added.\n(WebKit::IsolatedSitePersistence::IsolatedSitePersistence):\n(WebKit::IsolatedSitePersistence::~IsolatedSitePersistence):\n(WebKit::IsolatedSitePersistence::reportSQLError):\n(WebKit::IsolatedSitePersistence::reportSQLErrorAndClassify):\n(WebKit::databasePath):\n(WebKit::IsolatedSitePersistence::openDatabase):\n(WebKit::IsolatedSitePersistence::openDatabaseAtPath):\n(WebKit::IsolatedSitePersistence::closeDatabase):\n(WebKit::IsolatedSitePersistence::allSites):\n(WebKit::IsolatedSitePersistence::setRecordForSite):\n(WebKit::IsolatedSitePersistence::deleteAllSites):\n(WebKit::IsolatedSitePersistence::deleteSitesUpdatedSince):\n(WebKit::IsolatedSitePersistence::deleteSites):\n(WebKit::IsolatedSitePersistence::didImportUserInteractions):\n(WebKit::IsolatedSitePersistence::setDidImportUserInteractions):\n* Source/WebKit/UIProcess/WebsiteData/IsolatedSitePersistence.h: Copied from Source/WebKit/UIProcess/WebsiteData/IsolatedSiteStore.h.\n* Source/WebKit/UIProcess/WebsiteData/IsolatedSiteStore.cpp:\n(WebKit::roundDownToDay):\n(WebKit::today):\n(WebKit::IsolatedSiteStore::sharedWorkQueueSingleton):\n(WebKit::IsolatedSiteStore::create):\n(WebKit::IsolatedSiteStore::IsolatedSiteStore):\n(WebKit::IsolatedSiteStore::~IsolatedSiteStore):\n(WebKit::IsolatedSiteStore::didLoadSites):\n(WebKit::IsolatedSiteStore::whenLoaded):\n(WebKit::IsolatedSiteStore::skipImport):\n(WebKit::IsolatedSiteStore::importUserInteractions):\n(WebKit::IsolatedSiteStore::becomeReady):\n(WebKit::IsolatedSiteStore::whenReady):\n(WebKit::IsolatedSiteStore::saveSite):\n(WebKit::IsolatedSiteStore::recordSignals):\n(WebKit::IsolatedSiteStore::addSite):\n(WebKit::IsolatedSiteStore::allDomains):\n(WebKit::IsolatedSiteStore::removeAllSites):\n(WebKit::IsolatedSiteStore::removeSitesUpdatedSince):\n(WebKit::IsolatedSiteStore::removeSites):\n(WebKit::IsolatedSiteStore::reasonsFor const):\n(WebKit::IsolatedSiteStore::contains const):\n(WebKit::IsolatedSiteStore::containsDomain const):\n* Source/WebKit/UIProcess/WebsiteData/IsolatedSiteStore.h:\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:\n(WebKit::resolveDirectories):\n(WebKit::WebsiteDataStore::fetchDomainsWithUserInteraction):\n(WebKit::WebsiteDataStore::fetchDataAndApply):\n(WebKit::WebsiteDataStore::removeData):\n(WebKit::WebsiteDataStore::isolatedSiteStore):\n(WebKit::WebsiteDataStore::isolatedSiteSignalsForTesting):\n(WebKit::WebsiteDataStore::defaultIsolatedSitesDirectory):\n(WebKit::WebsiteDataStore::didHaveUserInteractionForSiteIsolation): Deleted.\n(WebKit::WebsiteDataStore::isolatedSiteSignalsForTesting const): Deleted.\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:\n(WebKit::WebsiteDataStore::isolatedSiteStore): Deleted.\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:\n(WebKit::WebsiteDataStoreConfiguration::initializePaths):\n(WebKit::WebsiteDataStoreConfiguration::Directories::isolatedCopy const):\n(WebKit::WebsiteDataStoreConfiguration::Directories::isolatedCopy):\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:\n(WebKit::WebsiteDataStoreConfiguration::setIsolatedSitesDirectory):\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::(SiteIsolation, SharedProcessWithResourceLoadStatistics)):\n(TestWebKitAPI::(SiteIsolation, SharedProcessAfterClick)):\n(TestWebKitAPI::(SiteIsolation, SharedProcessAfterKeyDown)):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebsiteDatastore.mm:\n(TestWebKitAPI::(IsolatedSiteStore, PersistsAcrossSessions)):\n(TestWebKitAPI::(IsolatedSiteStore, DataRemoval)):\n(TestWebKitAPI::(IsolatedSiteStore, PartialDataRemovalAllowsImport)):\n(TestWebKitAPI::(IsolatedSiteStore, DataRemovalDoesNotImport)):\n(TestWebKitAPI::(IsolatedSiteStore, ImportsWhenTrackingPreventionIsTurnedOnLater)):\n\nCanonical link: https://commits.webkit.org/319151@main",
      "email": "sihui_liu@apple.com",
      "hash": "eab29afc94f6123806de5d36d13f5089b9061767",
      "subject": "[Site Isolation] Introduce persistent backend for IsolatedSiteStore"
    },
    "319152@main": {
      "author": "Zak Ridouh",
      "avatar": "https://www.gravatar.com/avatar/d9b65ef530b9cbbfc6dff1ca158faace?d=identicon\u0026s=64",
      "cl": "319152@main",
      "clUrl": "https://commits.webkit.org/319152@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321732\nrdar://184862545\n\nReviewed by Kiet Ho.\n\n319115@main moved the AppKit gesture files into UIProcess/mac/AppKitGestures\nand added WKDOMDoubleClickGestureRecognizer.swift. It updated SourcesCocoa.txt\nand the Xcode project, but CMake lists the Swift sources and the Swift interop\nsubtarget members by hand, so configuring failed with \"Cannot find source\nfile\". Repoint those paths and add the new Swift file. Also add the new\ndirectory to WebKit_PRIVATE_INCLUDE_DIRECTORIES, so that PageClientImplMac.mm\nand WebViewImpl.mm can find WKAppKitGestureController.h.\n\nSeparately, WEBKIT_RESOLVE_TOOL returned early whenever the variable was\nalready set, so a cached path outlived the toolchain it pointed at. After an\nXcode update replaced the toolchain directory, configuring an existing build\ndirectory failed in project() with \"CMAKE_C_COMPILER ... is not a full path to\nan existing compiler tool\". CMAKE_OSX_SYSROOT did not have this problem because\nWEBKIT_RESOLVE_SDK sets it with FORCE. Check that a cached path still exists\nbefore keeping it.\n\n* Source/WebKit/CMakeLists.txt:\n* Source/WebKit/PlatformCocoa.cmake:\n* Source/cmake/WebKitXcodeSDK.cmake:\n\nCanonical link: https://commits.webkit.org/319152@main",
      "email": "zakr@apple.com",
      "hash": "1e5a1c661013133f6437484b79384b9ede46b1e0",
      "subject": "[CMake] Fix build after 319115@main"
    },
    "319153@main": {
      "author": "Joanne Pan",
      "avatar": "https://www.gravatar.com/avatar/5cbbf578426a0c98cb5c977ca2dd88fc?d=identicon\u0026s=64",
      "cl": "319153@main",
      "clUrl": "https://commits.webkit.org/319153@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321702\nrdar://184845561\n\nReviewed by Tim Nguyen.\n\nAn `auto` \u003crandom-key\u003e simplifies to element-scoped property-index-scoped, for\nboth random() and random-item(). random() does this; random-item() keyed its\n`auto` document-wide instead, so every element with the same declaration selected\nthe same item rather than choosing independently. The key is mandatory for\nrandom-item(), so `auto` is what authors write for default behaviour.\n\nPass ElementScoped when resolving random-item()'s `auto`, matching random().\n\nThe removed FIXME justified the document-wide key by there being no element in\nevery substitution context. resolveRandomBaseValue() already covers that: it\nreturns nullopt for element-scoped sharing when there is no element, the same\npath random() takes. random-item-in-keyframe.html and\nrandom-item-in-container-query.tentative.html are unaffected.\n\nThis makes the index collision described by the remaining FIXME reachable. Both\nfunctions count `auto` indices from zero in separate spaces, so an auto random()\nand an auto random-item() in one property value now agree on property, index and\nelement, and share a base value. Previously the differing scopes kept them in\nseparate maps and hid it. Measured over 40 samples of\n`width: calc(random(auto, 0px, 400px) + random-item(auto, 0px, 1000px))`, results\nconsistent with sharing went from 22/40 to 40/40. Unifying the counters is\nwebkit.org/b/319919.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-computed-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/random-item-computed.html:\n* Source/WebCore/style/StyleSubstitutionResolver.cpp:\n(WebCore::Style::SubstitutionResolver::randomItemBaseValue):\n\nCanonical link: https://commits.webkit.org/319153@main",
      "email": "jpan0917@gmail.com",
      "hash": "a26c23b4add22f9150f91d6eab8e5e1bb8027216",
      "subject": "[css-values-5 random-item()] auto \u003crandom-key\u003e is not element-scoped, so every element shares one item"
    },
    "319154@main": {
      "author": "Megan Gardner",
      "avatar": "https://www.gravatar.com/avatar/b466a5bcbfabf4d82a8ecc595db5a531?d=identicon\u0026s=64",
      "cl": "319154@main",
      "clUrl": "https://commits.webkit.org/319154@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321567\nrdar://184672580\n\nReviewed by Wenson Hsieh.\n\nReplacing an existing highlight via CSS.highlights.set() with a key that is already registered did not\nrepaint: HighlightRegistry::setFromMapLike only scheduled a repaint when the key was new, so neither the\nranges of the highlight being replaced nor the ranges of the new highlight were invalidated. Additionally,\nHighlight::repaintRange only repainted the renderers of the nodes intersecting the range, whose ink overflow\nis computed from the element's own style and does not include highlight decorations that paint outside it\n(e.g. a large text-underline-offset).\n\nimported/w3c/web-platform-tests/css/css-highlight-api/painting/invalidation/css-highlight-invalidation-001.html\n\n* LayoutTests/fast/css/highlight-text-repaint-expected.txt:\n* LayoutTests/fast/repaint/highlight-paint-after-range-change-expected.txt:\n* LayoutTests/fast/repaint/highlight-removed-when-cleared-expected.txt:\n* LayoutTests/fast/repaint/highlight-removed-when-deleted-expected.txt:\n* LayoutTests/fast/repaint/highlight-repainted-when-deleted-and-readded-expected.txt:\n* LayoutTests/platform/glib/fast/repaint/highlight-paint-after-range-change-expected.txt:\n* LayoutTests/platform/glib/fast/repaint/highlight-removed-when-cleared-expected.txt:\n* LayoutTests/platform/glib/fast/repaint/highlight-removed-when-deleted-expected.txt:\n* LayoutTests/platform/glib/fast/repaint/highlight-repainted-when-deleted-and-readded-expected.txt:\n* Source/WebCore/Modules/highlight/Highlight.cpp:\n(WebCore::Highlight::repaintRange):\n* Source/WebCore/Modules/highlight/HighlightRegistry.cpp:\n(WebCore::HighlightRegistry::setFromMapLike):\n\nCanonical link: https://commits.webkit.org/319154@main",
      "email": "megan_gardner@apple.com",
      "hash": "3de673d8e110e83cf157369d08dbf8d385ff47fb",
      "subject": "[Custom Highlight] ::highlight() is not repainted when a highlight's range is changed via CSS.highlights.set()."
    },
    "319155@main": {
      "author": "Elliott Williams",
      "avatar": "https://www.gravatar.com/avatar/4086acbe078d65242df929cb51298130?d=identicon\u0026s=64",
      "cl": "319155@main",
      "clUrl": "https://commits.webkit.org/319155@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321638\nrdar://184765013\n\nReviewed by Ryan Haddad.\n\n* Configurations/CommonBase.xcconfig: Bring back the override to disable\n  auditing on older internal builds of iOS. Internally, we keep older\n  SDKDB baselines around, so we can't remove \u003c27.0 entries and keep\n  building all the supported internal configurations.\n\nRemove some allowlisted items that are now API:\n\n* Source/JavaScriptCore/Configurations/AllowedSPI-legacy.toml:\n* Source/WebCore/Configurations/AllowedSPI-legacy.toml:\n* Source/WebCore/Configurations/AllowedSPI.toml:\n\nRegenerate the SDKDB baseline from iOS 27.0 public SDK content:\n\n* WebKitLibraries/SDKDBs/iphoneos/ARKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ARKit_Core.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ARKit_Foundation.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AVFAudio.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AVFoundation.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AVFoundation_AVFCore.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AVKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AVRouting.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AVSystemRouting.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/Accelerate.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Accessibility.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Accounts.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AddressBook.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AppIntents.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AssetsLibrary.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AudioToolbox.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AuthenticationServices.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/AvailabilityVersions.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/BackgroundTasks.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/BrowserEngineCore.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/BrowserEngineKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/BusinessChat.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CFNetwork.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CameraCapture_AVF.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CarbonHeaders.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ClockKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CloudKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Contacts.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ContactsUI.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreAudio.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreAudioServices_AudioToolboxCore.partial.sdkdb: Renamed from WebKitLibraries/SDKDBs/iphoneos/libAudioToolboxUtility.partial.sdkdb.\n* WebKitLibraries/SDKDBs/iphoneos/CoreBluetooth.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreData.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreFoundation.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreGraphics.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreImage.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreLocation.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreMIDI.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreML.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreMedia.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreMotion.partial.sdkdb: Copied from WebKitLibraries/SDKDBs/iphoneos/CoreLocation.partial.sdkdb.\n* WebKitLibraries/SDKDBs/iphoneos/CoreServices.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreSpotlight.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreTelephony.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreText.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreTransferable.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CoreVideo.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CryptoKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/CryptoTokenKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/DataDetection.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/DeveloperToolsSupport.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/DocumentManager.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/EnhancedLinkSecurity.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/ExtensionFoundation.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ExtensionKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/FileProvider.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Foundation.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/GLKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/GameController.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/GroupActivities.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/IOKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/IOSurface.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/IdentityDocumentServices.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ImageIO.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Intents.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/LinkPresentation.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/LocalAuthentication.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/LocalAuthenticationEmbeddedUI.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/MLCompute.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/ManagedAppDistribution.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/MediaAccessibility.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/MediaPlayer.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/MediaSetup.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/MediaToolbox.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Metal.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ModelIO.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/MultipeerConnectivity.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/NaturalLanguage.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Network.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/NetworkExtension.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/OSLog.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/OpenGLES.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/PDFKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/PassKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/PhotosUI.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/PrintKitUI.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/QuartzCore.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/QuickLook.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/QuickLookThumbnailing.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/RealityCoreTexture.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/RealityKit.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/RelevanceKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ReplayKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/SceneKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ScreenTime.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Security.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/SensitiveContentAnalysis.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/SensorKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/ShaderGraph.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/ShareSheet.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/SharedWithYou.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Social.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Speech.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/SpriteKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Symbols.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/SystemConfiguration.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/UIKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/UIKitCore.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/UIUtilities.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/USDKit.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/UniformTypeIdentifiers.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/UserNotifications.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/VideoToolbox.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/Vision.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/VisionKit.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/WiFiAware.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/_AppIntents_UIKit.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/_LocationEssentials.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/_USDKit_RealityKit.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/architecture.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libAppleArchive.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libBLAS.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libBNNS.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libDER.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libQuadrature.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libSparse.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libSpatial.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libSystemHealth.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libate.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libcommonCrypto.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libcompression.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libcopyfile.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libdispatch.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libdispatch_introspection.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libdyld.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libiconv.2.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libicucore.A.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libmacho.partial.sdkdb: Removed.\n* WebKitLibraries/SDKDBs/iphoneos/libobjc.A.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libremovefile.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/libsqlite3.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftCore.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftCoreFoundation.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftCoreImage.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftCoreLocation.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/libswiftCoreMIDI.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/libswiftDispatch.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftMetal.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftOSLog.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftObjectiveC.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftQuartzCore.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftUniformTypeIdentifiers.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftXPC.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswift_Volatile.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswift_math.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftos.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libswiftsimd.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_asl.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_blocks.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_c.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_coreservices.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_darwin.partial.sdkdb: Added.\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_dnssd.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_info.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_kernel.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_m.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_malloc.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_notify.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_platform.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_pthread.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_sandbox.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libsystem_trace.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libunwind.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libxml2.2.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libxpc.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/libz.1.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/vImage.partial.sdkdb:\n* WebKitLibraries/SDKDBs/iphoneos/xnu_headers.partial.sdkdb:\n\nCanonical link: https://commits.webkit.org/319155@main",
      "email": "emw@apple.com",
      "hash": "ff58822738d05b2f630cd50a422db2279bb4d432",
      "subject": "[iOS 27] Update SDKDB baseline"
    },
    "319156@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "319156@main",
      "clUrl": "https://commits.webkit.org/319156@main",
      "description": "rdar://184652081\nhttps://bugs.webkit.org/show_bug.cgi?id=321540\n\nReviewed by Tim Nguyen.\n\n@position-try is only usable when CSS Anchor Positioning feature flag is enabled,\nso `@supports at-rule(@position-try)` (added in 318482@main) should return Unsupported\nwhen the feature flag is not enabled. Given that anchor positioning is stable now,\nlet's remove the feature flag to avoid special handling code in @supports at-rule().\n\nNo behavioral changes, tested by existing test suite.\n\n* LayoutTests/fast/css/css-anchor-position/anchor-feature-disabled-expected.txt: Removed.\n* LayoutTests/fast/css/css-anchor-position/anchor-feature-disabled.html: Removed.\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/css/CSSPositionTryDescriptors.idl:\n* Source/WebCore/css/CSSPositionTryRule.idl:\n* Source/WebCore/css/CSSProperties.json:\n* Source/WebCore/css/calc/CSSCalcTree+Parser.cpp:\n(WebCore::CSSCalc::consumeAnchor):\n(WebCore::CSSCalc::consumeAnchorSize):\n* Source/WebCore/css/parser/CSSParser.cpp:\n(WebCore::CSSParser::consumePositionTryRule):\n* Source/WebCore/css/parser/CSSParserContext.cpp:\n(WebCore::applyUASheetBehaviorsToContext):\n* Source/WebCore/css/parser/CSSPropertyParser.cpp:\n(WebCore::consumePositionTryDescriptor):\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Align.cpp:\n(WebCore::CSSPropertyParserHelpers::consumeAlignSelf):\n(WebCore::CSSPropertyParserHelpers::consumeJustifySelf):\n(WebCore::CSSPropertyParserHelpers::consumeAlignItems):\n(WebCore::CSSPropertyParserHelpers::consumeJustifyItems):\n\nCanonical link: https://commits.webkit.org/319156@main",
      "email": "kiet.ho@apple.com",
      "hash": "442363a17dd80a744dce18c02fa063f7ad5d652d",
      "subject": "[css-anchor-position] Remove anchor positioning feature flag"
    },
    "319157@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/d0533d52eeb271270df480f37629a407?d=identicon\u0026s=64",
      "cl": "319157@main",
      "clUrl": "https://commits.webkit.org/319157@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321604\nrdar://184732009\n\nReviewed by Simon Fraser.\n\nImplements https://drafts.csswg.org/css-borders-4/#corner-shape-constrain-radii with\nalgorithm adaption from https://github.com/w3c/csswg-drafts/pull/14142\n\n* Source/WebCore/platform/graphics/CornerShapeUtilities.cpp:\n(WebCore::normalizedInnerCornerHull):\n(WebCore::cornerHullPolygon):\n(WebCore::offsetExtentAlongAxis):\n(WebCore::largestScaleWithoutIntersection):\n(WebCore::oppositeCornerScaleFactor):\n* Source/WebCore/rendering/BorderShape.cpp:\n(WebCore::constrainedRadiiScale):\n(WebCore::BorderShape::shapeForBorderRect):\n(WebCore::rebuildOffsetCornersFromReference):\n(WebCore::addOuterCornerShapeToPath):\n(WebCore::addInnerCornerShapeToPath):\n(WebCore::buildScaledCornerInputs): Deleted.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-convex-inert-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-convex-inert-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-convex-inert.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-elliptical-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-elliptical-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-elliptical.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-mixed-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-mixed-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-mixed.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-notch-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-notch-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-notch.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-scoop-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-scoop-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-scoop.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-superellipse-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-superellipse-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-opposite-scale-superellipse.html: Added.\n\nCanonical link: https://commits.webkit.org/319157@main",
      "email": "173393835+cupidsity@users.noreply.github.com",
      "hash": "94ee83005928c83c058edc6b5236f012a6a15580",
      "subject": "corner-shape: Implement oppositeCornerScaleFactor"
    },
    "319158@main": {
      "author": "Karl Dubost",
      "avatar": "https://www.gravatar.com/avatar/0c2b3d380fb637f3dd51eda704634b6f?d=identicon\u0026s=64",
      "cl": "319158@main",
      "clUrl": "https://commits.webkit.org/319158@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=309831\nrdar://172411135\n\nReviewed by Taher Ali.\n\nzillow.com centers the floorplan image with justify-self: center. WebKit\nwas not implementing justify-self for block-level boxes, so 309203@main\nadded a quirk centering the image with auto margins instead. justify-self\nlanded since, in 317212@main and 317349@main (webkit.org/b/319534), so\nthe quirk is not needed anymore.\n\n* Source/WebCore/page/Quirks.cpp:\n(WebCore::Quirks::needsZillowFloorplanMarginQuirk const): Deleted.\n(WebCore::handleZillowQuirks):\n* Source/WebCore/page/Quirks.h:\n* Source/WebCore/page/QuirksData.h:\n* Source/WebCore/style/StyleAdjuster.cpp:\n(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):\n\nCanonical link: https://commits.webkit.org/319158@main",
      "email": "karlcow@apple.com",
      "hash": "06722850fda289ee48354cfe3cedea64b5c87850",
      "subject": "Remove Quirk needsZillowFloorplanMarginQuirk for zillow.com"
    },
    "319159@main": {
      "author": "Cameron McCormack",
      "avatar": "https://www.gravatar.com/avatar/b2bb1b369be938a743e50f595bfa0798?d=identicon\u0026s=64",
      "cl": "319159@main",
      "clUrl": "https://commits.webkit.org/319159@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321745\nrdar://problem/184872095\n\nReviewed by Ryosuke Niwa.\n\nSince `git am` doesn't have a --reset-author like `git apply` does, we\nlet `git am` commit the changes first, then amend them to change the\nauthor.\n\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/apply.py:\n(Apply.parser):\n(Apply.edit_commit_message):\n(Apply):\n(Apply.head):\n(Apply.commit_count):\n(Apply.reset_author):\n(Apply.main):\n* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/apply_unittest.py:\n(TestApply):\n(TestApply._args):\n(TestApply._run):\n(TestApply._run.invoke):\n(TestApply._commands):\n(TestApply.test_main_rejects_non_git_repository):\n(TestApply.test_main_rejects_dirty_tree):\n(TestApply.test_main_errors_when_issue_unresolvable):\n(TestApply.test_main_errors_when_attachments_unsupported):\n(TestApply.test_main_errors_when_no_patches):\n(TestApply.test_main_errors_when_named_patch_missing):\n(TestApply.test_main_named_patch_rejected_reports_not_applied):\n(TestApply.test_main_errors_on_download_failure):\n(TestApply.test_main_errors_on_empty_content):\n(TestApply.test_main_commits_with_git_am):\n(TestApply.test_main_no_commit_uses_git_apply_3way):\n(TestApply.test_parser_reset_author_defaults_to_off):\n(TestApply.test_main_rejects_reset_author_without_a_commit):\n(TestApply.test_main_resets_author_after_am):\n(TestApply.test_main_replays_a_multi_commit_patch_to_reset_every_author):\n(TestApply.test_main_counts_commits_from_head_before_the_patch):\n(TestApply.test_main_aborts_the_replay_when_it_fails):\n(TestApply.test_main_amends_when_the_commit_count_is_unavailable):\n(TestApply.test_main_amends_when_head_does_not_resolve):\n(TestApply.test_main_keeps_patch_author_by_default):\n(TestApply.test_main_does_not_reset_author_when_am_fails):\n(TestApply.test_main_warns_when_author_reset_fails):\n(TestApply.test_main_resets_author_before_editing_the_message):\n(TestApply.test_main_aborts_am_on_conflict):\n(TestApply.test_main_no_commit_failure_does_not_abort):\n(TestApply.test_main_removes_tempfile_even_on_failure):\n(TestApply.test_main_encodes_str_content):\n(TestApply.test_main_downloads_named_patch_from_radar):\n(TestApply.test_main_reviews_and_opens_editor_when_interactive):\n(TestApply.test_main_creates_pull_request_when_accepted):\n(TestApply.test_main_skips_pull_request_when_declined):\n(TestApply.test_main_no_editor_when_not_committing):\n(TestApply.test_main_declined_review_is_not_applied):\n(TestApply.test_main_skips_review_and_editor_when_not_interactive):\n\nCanonical link: https://commits.webkit.org/319159@main",
      "email": "heycam@apple.com",
      "hash": "f8225fcd9756b6c2e4e3054cb0539d861638e0e1",
      "subject": "Add a --reset-author argument to `git-webkit apply`"
    },
    "319160@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "319160@main",
      "clUrl": "https://commits.webkit.org/319160@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321643\n\nReviewed by Antti Koivisto.\n\n  \u003cdiv style=\"float: left; height: 120px\"\u003e\u003c/div\u003e\n  \u003cspan\u003e\n    \u003cdiv style=\"clear: both; height: 0; margin-top: 50px\"\u003e\u003c/div\u003e\n  \u003c/span\u003e\n  foo\n\nClearance sits above the box's margin (CSS 2.2 9.5.2), so the 50px is already inside the space the clearance took\nand \"foo\" belongs at the float's bottom edge. It ends up 50px lower.\n\nA box whose margins collapse through keeps them for the content after it (CSS 2.2 8.3.1, \"If the top and bottom\nmargins of an element with clearance are adjoining, its margins collapse with the adjoining margins of following\nsiblings\"), and block layout applies them from the box's margin box top rather than from where its border box\nended up, which is also what the spec asks for: \"the positions of elements that have been collapsed through have\nno effect on the positions of the other elements with whose margins they are being collapsed\". It does that by\ntaking the container's height back to that position before the collapsed margin goes on.\n\nA line has no such position to take back. It starts where the content before it ended, which for this box is its\nborder box, and the margin then goes on top of that.\n\nThe clearance sits between the two margins (\"because the margins no longer collapse with a clearance between them\",\nCSS 2.2 9.5.2 example 1), so the box's margin before is behind that border box already and only the rest of the\ncollapsed margin is left for the content after it. Carry that margin in the margin state, next to the margin\nitself, and take it off what a line places.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/clearance-covers-the-margin-of-a-collapsed-through-block-in-inline.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/clearance-covers-the-margin-of-a-collapsed-through-block-in-inline-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/clearance-covers-the-margin-of-a-collapsed-through-block-in-inline-expected.html: Added.\n* Source/WebCore/layout/formattingContexts/block/BlockLayoutState.h:\n(WebCore::Layout::BlockLayoutState::MarginState::resetMarginValues):\n(WebCore::Layout::BlockLayoutState::MarginState::margin const):\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:\n(WebCore::Layout::LineBuilder::initialize):\n(WebCore::Layout::LineBuilder::handleBlockContent):\nA box that collapses through can also end up above where the content after it goes, which is the same offset the\nother way round. That is space after the box, so it goes on the advance the forced break case already has rather\nthan through the branch for a box below its own line, which zeroes the margins and leaves the line no extent.\n\n* Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.cpp:\n(WebCore::LayoutIntegration::layoutWithFormattingContextForBlockInInline):\n* Source/WebCore/layout/integration/LayoutIntegrationUtils.cpp:\n(WebCore::Layout::IntegrationUtils::toMarginState):\n(WebCore::Layout::IntegrationUtils::toMarginInfo):\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::RenderBlockFlow::MarginInfo::MarginInfo):\n* Source/WebCore/rendering/RenderBlockFlow.h:\n(WebCore::RenderBlockFlow::MarginInfo::clearMargin):\n(WebCore::RenderBlockFlow::MarginInfo::setMarginBeforeWithClearance):\n(WebCore::RenderBlockFlow::MarginInfo::marginBeforeWithClearance const):\n\nCanonical link: https://commits.webkit.org/319160@main",
      "email": "zalan@apple.com",
      "hash": "fe53385f31781509f93891e44d0ad3dfbfab420e",
      "subject": "[block-in-inline] A box that collapsed through with clearance on a line pushes the content after it down by its margin"
    },
    "319161@main": {
      "author": "Diego Pino Garcia",
      "avatar": "https://www.gravatar.com/avatar/e8cce88637f1a6e79155e8371e24b2e8?d=identicon\u0026s=64",
      "cl": "319161@main",
      "clUrl": "https://commits.webkit.org/319161@main",
      "description": "Unreviewed.\n\nUpdate test expectations to latest results from post-commit bots.\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk-wayland/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319161@main",
      "email": "dpino@igalia.com",
      "hash": "dcbe2e06cf5371d514a291f66d6c629abb0fa598",
      "subject": "[GLIB] layout test gardening"
    },
    "319162@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "319162@main",
      "clUrl": "https://commits.webkit.org/319162@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321685\nrdar://184829841\n\nReviewed by Sosuke Suzuki.\n\nconstrainMonthCodeInternal re-checked ConstrainMonthCode via a live ICU cursor for its only caller,\npositionCursorAtConstrainedMonthCode. That caller is only reached for non-lunisolar calendars, and a\nleap monthCode is only ever valid for chinese/dangi/hebrew — exactly the lunisolar set — so the check\nalways resolved to \"contained\" and the whole call reduced to one wasted ICU read plus returning its\ninput unchanged. Deleted; the invariant is now an ASSERT instead of a runtime check, along with an\nunreachable calendarIsLunisolar branch in the same function and its now-unused overflow parameter.\n\nconstrainMonthCodeGivenContainment loses its second caller in the same change, so it's inlined into\nthe one left (constrainMonthCode).\n\nAlso deletes two TemporalEnums.h constants with zero references tree-wide.\n\nNo behavior change.\n\nCanonical link: https://commits.webkit.org/319162@main",
      "email": "yijia_huang@apple.com",
      "hash": "e165fd1fce9a07e76b7a711c065b6ada222fdae6",
      "subject": "[JSC][Temporal] Delete constrainMonthCodeInternal and inline constrainMonthCodeGivenContainment"
    },
    "319163@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "319163@main",
      "clUrl": "https://commits.webkit.org/319163@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321495\nrdar://184591698\n\nReviewed by Simon Fraser.\n\nUse IPC::ObjectIdentifierReferenceTracker instead of a plain\nRenderingResourceIdentifier key so a\nshared NativeImage can be read by another context without being\nremoved from the cache, and is only released once the WebContent\nside handle (RemoteNativeImageProxy) is destroyed and all\noutstanding reads have retired.\n\nThis works towards being able to create NativeImages from\nWebGL, WebGPU contexts and then use these images as sources in these\ncontexts. Previously, when the references were not tracked, the\nimages were only usable in RemoteGraphicsContext it was attached to.\n\n* Source/WebKit/GPUProcess/RemoteSharedResourceCache.cpp:\n(WebKit::RemoteSharedResourceCache::addNativeImage):\n(WebKit::RemoteSharedResourceCache::readNativeImage):\n(WebKit::RemoteSharedResourceCache::releaseNativeImage):\n(WebKit::RemoteSharedResourceCache::takeNativeImage): Deleted.\n* Source/WebKit/GPUProcess/RemoteSharedResourceCache.h:\n* Source/WebKit/GPUProcess/RemoteSharedResourceCache.messages.in:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:\n(WebKit::RemoteGraphicsContextGL::copyNativeImageYFlipped):\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:\n* Source/WebKit/GPUProcess/graphics/RemoteNativeImageIdentifier.h: Added.\n* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:\n(WebKit::RemoteRenderingBackend::cacheNativeImageFromSharedNativeImage):\n* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:\n* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:\n* Source/WebKit/Platform/IPC/ObjectIdentifierReference.serialization.in:\n* Source/WebKit/Scripts/webkit/messages.py:\n(types_that_cannot_be_forward_declared):\n(headers_for_type):\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n* Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:\n(WebKit::GPUProcessConnection::sharedResourceCache):\n* Source/WebKit/WebProcess/GPU/RemoteSharedResourceCacheProxy.cpp:\n(WebKit::RemoteSharedResourceCacheProxy::create):\n(WebKit::RemoteSharedResourceCacheProxy::RemoteSharedResourceCacheProxy):\n(WebKit::RemoteSharedResourceCacheProxy::releaseNativeImage):\n* Source/WebKit/WebProcess/GPU/RemoteSharedResourceCacheProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:\n(WebKit::RemoteGraphicsContextGLProxy::initializeIPC):\n(WebKit::RemoteGraphicsContextGLProxy::copyNativeImageYFlipped):\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteNativeImageProxy.cpp:\n(WebKit::RemoteNativeImageProxy::create):\n(WebKit::RemoteNativeImageProxy::RemoteNativeImageProxy):\n(WebKit::RemoteNativeImageProxy::~RemoteNativeImageProxy):\n(WebKit::RemoteNativeImageProxy::attachResourceCache):\n* Source/WebKit/WebProcess/GPU/graphics/RemoteNativeImageProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:\n(WebKit::RemoteRenderingBackendProxy::cacheNativeImageFromSharedNativeImage):\n* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:\n(WebKit::RemoteResourceCacheProxy::recordSharedNativeImageUse):\n* Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:\n* Tools/Scripts/generate-gpup-webgl:\n\nCanonical link: https://commits.webkit.org/319163@main",
      "email": "kkinnunen@apple.com",
      "hash": "15744fc841b91729773b960cc7ca0a0101708eb6",
      "subject": "Track shared NativeImages in RemoteSharedResourceCache by reference"
    },
    "319164@main": {
      "author": "Pawel Lampe",
      "avatar": "https://www.gravatar.com/avatar/3c9bf19417c230eff7ade252118deb7a?d=identicon\u0026s=64",
      "cl": "319164@main",
      "clUrl": "https://commits.webkit.org/319164@main",
      "description": "Canonical link: https://commits.webkit.org/319164@main",
      "email": "plampe@igalia.com",
      "hash": "ff82048c620b14337d757ca9156dfb1ccaa532ba",
      "subject": "Unreviewed tests gardening of 2026-08-14."
    },
    "319165@main": {
      "author": "Per Arne Vollan",
      "avatar": "https://www.gravatar.com/avatar/644dde5b61925a175f4bdea3f0f00bda?d=identicon\u0026s=64",
      "cl": "319165@main",
      "clUrl": "https://commits.webkit.org/319165@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321303\nrdar://184343275\n\nReviewed by Sihui Liu.\n\nPersisted session restore, e.g. after an app relaunch, never serializes a child frame's\nFrameIdentifier -- it's process-local and can't survive a relaunch -- while\nWebBackForwardList::findFrameStateInItem and WebPageProxy::dispatchPerFrameTraversals\nboth assumed a child frame's stored FrameState would carry one. With it unset, two separate\nlookups broke silently:\n\n- findFrameStateInItem's name/position fallback (used once the direct ID match fails, which\n  is exactly what happens after a persisted restore) found the right FrameState but left its\n  identifier unset, so the process WebPage::goToBackForwardItem swapped into afterward\n  couldn't resolve it to any live or provisional frame and dropped the navigation (\"No target\n  local frame found ... navigation silently dropped\").\n\n- dispatchPerFrameTraversals's per-child pairing loop skipped a child outright whenever its\n  stored FrameState had no identifier, instead of falling back to position the way it already\n  does when the identifier is merely stale, so no GoToBackForwardItem message was ever\n  dispatched for the frame at all (\"walk dispatched no GoToBackForwardItem messages ... will\n  be silently dropped\").\n\nFixed by stamping the live frame's identifier onto the FrameState/WebBackForwardListFrameItem\nmatched via either fallback, so downstream identifier-based lookups (WebProcess::webFrame,\nWebFrameProxy::webFrame, processForTheFrameItem) can find the right frame and process.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm\n\n* Source/WebKit/UIProcess/WebBackForwardList.cpp:\n(WebKit::WebBackForwardList::findFrameStateInItem):\n* Source/WebKit/UIProcess/WebBackForwardList.swift:\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::dispatchPerFrameTraversals):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::TEST(SiteIsolation, GoBackToCrossSiteIframeAfterPersistedSessionRestore)):\n\nCanonical link: https://commits.webkit.org/319165@main",
      "email": "pvollan@apple.com",
      "hash": "462479883713a6d2f105fcb94b3dffb646dca926",
      "subject": "Cross-site iframe back/forward navigation is silently dropped after a persisted session restore"
    },
    "319166@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "319166@main",
      "clUrl": "https://commits.webkit.org/319166@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321684\nrdar://184829371\n\nReviewed by Zak Ridouh.\n\nA macOS CMake build configured with --no-swift-back-forward-list fails with:\n\n    Source/WebKit/SwiftPrewarmMac.swift:27:8: error: unable to resolve module dependency: 'WebCore_Private'\n    import WebCore_Private\n           ^\n    note: a dependency of main module 'SwiftPrewarmMac'\n\n319083@main added unconditional imports of the WebKit stack's own modules to\nSwiftPrewarmMac.swift, including WebCore_Private. Staging the in-tree\nWebCore_Private module map into the WebCore framework bundle -- where the Swift\nClang importer finds it via -F -- was gated on ENABLE_BACK_FORWARD_LIST_SWIFT,\nso with that feature off WebCore.framework/Modules is left empty and the module\ncannot be resolved.\n\nThe prewarm target is not gated on that feature: SWIFT_REQUIRED is\nunconditionally ON for Cocoa, and Source/WebKit/CMakeLists.txt adds the target\nfor SWIFT_REQUIRED AND WEBKIT_SDK_IS_MACOS. Gate the staging on SWIFT_REQUIRED\ninstead, which matches the iOS path in the same file (it stages the map\nunconditionally).\n\nNo new tests (build fix, no behavior change).\n\n* Source/WebCore/PlatformCocoa.cmake:\n\nCanonical link: https://commits.webkit.org/319166@main",
      "email": "basuke@apple.com",
      "hash": "ba82b6ab43cece22292e3912cc6e5c985b36b9c8",
      "subject": "[CMake] Mac build fails to resolve the WebCore_Private module when ENABLE_BACK_FORWARD_LIST_SWIFT is off"
    },
    "319167@main": {
      "author": "SaitomTech",
      "avatar": "https://www.gravatar.com/avatar/65f92a86752cec7ca0aac1a2987cd1d9?d=identicon\u0026s=64",
      "cl": "319167@main",
      "clUrl": "https://commits.webkit.org/319167@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321674\n\nReviewed by Ryosuke Niwa.\n\nWhen confirming a composition, WebKit deletes the pending composition\ntext before inserting the finalized text. WebKit also deletes selected\ntext when starting a recomposition.\n\nThese deletions used the normal selection deletion behavior, which may\nexpand the selection to include a containing special element. Since\npositioned elements are treated as special elements, this could remove\nthe element containing the composition and reinsert its text into a\nstyled span.\n\nDisable special-element expansion when deleting composition text,\nincluding pending composition text and text selected for recomposition.\nNormal user-initiated selection deletion behavior remains unchanged.\n\nTests: editing/mac/input/ime-commit-preserves-empty-positioned-block.html\n       editing/mac/input/ime-recomposition-preserves-positioned-block.html\n\n* LayoutTests/editing/mac/input/ime-commit-preserves-empty-positioned-block-expected.txt: Added.\n* LayoutTests/editing/mac/input/ime-commit-preserves-empty-positioned-block.html: Added.\n* LayoutTests/editing/mac/input/ime-recomposition-preserves-positioned-block-expected.txt: Added.\n* LayoutTests/editing/mac/input/ime-recomposition-preserves-positioned-block.html: Added.\n* Source/WebCore/editing/TypingCommand.cpp:\n(WebCore::TypingCommand::deleteSelection):\nDo not expand composition text deletion to containing special elements.\n\nCanonical link: https://commits.webkit.org/319167@main",
      "email": "57802435+SaitomTech@users.noreply.github.com",
      "hash": "fefaaed9dfdeba70532cb1fe804847743dce4398",
      "subject": "Confirming an IME composition can remove its containing positioned element"
    },
    "319168@main": {
      "author": "Diego Pino Garcia",
      "avatar": "https://www.gravatar.com/avatar/e8cce88637f1a6e79155e8371e24b2e8?d=identicon\u0026s=64",
      "cl": "319168@main",
      "clUrl": "https://commits.webkit.org/319168@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321596\n\nReviewed by Nikolas Zimmermann and Carlos Garcia Campos.\n\nSupport for color scheme 'display-p3' was missing in GLIB ports. Until\nnow, 'sRGB' color space was used as a default, which caused several 'display-p3'\nrelated tests to fail.\n\nSupport for color spaces 'DisplayP3' and 'LinearDisplayP3', as well as\ntheir counterpart extended versions, was added to 'ColorSpaceSkia.cpp' (Skia\nnatively supports the extended version of these color spaces).\nThat file already contained a method to support the 'DisplayP3' color space,\ncalled 'displayP3ColorSpaceSingleton'. However, this method was not a singleton\nsince Skia returns a new instance per 'SkColorSpace::MakeRGB' call. The\nmethod was refactored into a real singleton. An implementation for\n'LinearDisplayP3' was added following the same pattern.\n\nThen, 'GraphicsContextSkia.cpp' was modified to add new method\n'setPaintColor' which encapsulates 'paint.setColor' calls taking into\naccount the 'colorSpace' stored into parameter 'color'. Method\n'skColorSpaceForColorSpace' was also added, which maps a native ColorSpace\nto a Skia ColorSpace.\n\nLastly, flag 'CanvasColorSpaceEnabled' was turned on for WebKitGTK and\nWPEWebKit ports, to enable this feature.\n\n* Source/WebCore/platform/graphics/skia/ColorSpaceSkia.cpp:\n(WebCore::extendedDisplayP3ColorSpaceSingleton):\n(WebCore::linearDisplayP3ColorSpaceSingleton):\n(WebCore::extendedLinearDisplayP3ColorSpaceSingleton):\n(WebCore::displayP3ColorSpaceSingleton):\n* Source/WebCore/platform/graphics/skia/ColorSpaceSkia.h:\n* LayoutTests/platform/glib/TestExpectations:\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WTF/wtf/PlatformEnableGlib.h:\n* Source/cmake/OptionsGTK.cmake:\n* Source/cmake/OptionsWPE.cmake:\n* Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp:\n(WebCore::skColorSpaceForColorSpace):\n(WebCore::setPaintColor):\n(WebCore::GraphicsContextSkia::drawLine):\n(WebCore::GraphicsContextSkia::setupFillSource):\n(WebCore::GraphicsContextSkia::setupStrokeSource):\n(WebCore::GraphicsContextSkia::fillRect):\n(WebCore::skColor4fAndColorSpaceForColor):\n(WebCore::GraphicsContextSkia::createDropShadowFilterIfNeeded const):\n* LayoutTests/platform/glib/fast/canvas/canvas-color-space-display-p3-ImageData-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/319168@main",
      "email": "dpino@igalia.com",
      "hash": "b65732a3d4277c9daf604dd3e1949c5cd6d1f457",
      "subject": "[GLIB] Add Display-P3 color space support for canvas"
    },
    "319169@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "319169@main",
      "clUrl": "https://commits.webkit.org/319169@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321530\nrdar://184643272\n\nReviewed by Megan Gardner.\n\nWe were completely missing repaint code for highlight pseudo-elements.\n\nFor ::highlight() specifically we also failed to cache the styles in parent ComputedStyle so\nwe also couldn't compare them for changes in the new repaint code.\n\nTests: fast/repaint/highlight-pseudo-rule-change-document-wide.html\n       fast/repaint/highlight-pseudo-rule-change.html\n* LayoutTests/fast/repaint/highlight-pseudo-rule-change-document-wide-expected.txt: Added.\n* LayoutTests/fast/repaint/highlight-pseudo-rule-change-document-wide.html: Added.\n* LayoutTests/fast/repaint/highlight-pseudo-rule-change-expected.txt: Added.\n* LayoutTests/fast/repaint/highlight-pseudo-rule-change.html: Added.\n\n::selection still doesn't repaint since selectionPseudoStyle() doesn't cache the style.\nIt is left as a failing case in the test.\n\n* Source/WebCore/rendering/MarkedText.cpp:\n(WebCore::MarkedText::collectForHighlights):\n* Source/WebCore/rendering/StyledMarkedText.cpp:\n(WebCore::resolveStyleForMarkedText):\n\nUse lazyPseudoElementStyle() instead of resolvePseudoElementStyle(). Lazy version\ndoes caching in parent ComputedStyle which is needed for repainting. It is also\nmore efficient as we don't recompute the style unnecessarily.\n\n* Source/WebCore/style/StyleDifference.cpp:\n(WebCore::Style::DifferenceFunctions::changeRequiresRepaint):\n(WebCore::Style::DifferenceFunctions::highlightPseudoElementStyleChangeRequiresRepaint):\n\nAdd repaint issuing code for highlight pseudo-elements.\n\n* Source/WebCore/style/StyleScope.cpp:\n(WebCore::Style::Scope::didChangeViewportSize):\n\nEnsure we check viewport units in pseudo-elements too to not regress\ncustom-highlight-dynamic-viewport-metrics-first-line-001.html\n\n* Source/WebCore/style/StyleTreeResolver.cpp:\n(WebCore::Style::TreeResolver::resolveElement):\n\nResolve descendants when a highlight pseudo-element style changes, since they inherit from it.\nNothing did this before because nothing cached the styles, so paint just recomputed them. Needed\nto not regress css-conditional/container-queries/pseudo-elements-010.html, where the style that\npaints is cached on the span inside the element the changing rule matches.\n\nCanonical link: https://commits.webkit.org/319169@main",
      "email": "antti@apple.com",
      "hash": "85d296cb7e71cc5f936d194e7a393c56436235d5",
      "subject": "[Custom Highlight] ::highlight() pseudo-element is not repainted after a CSS rule change."
    },
    "319170@main": {
      "author": "Franco Vieira de Souza",
      "avatar": "https://www.gravatar.com/avatar/14ed77684c1591a07649be8495cc0ddb?d=identicon\u0026s=64",
      "cl": "319170@main",
      "clUrl": "https://commits.webkit.org/319170@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321698\nrdar://184843797\n\nReviewed by Tim Nguyen.\n\nThree media/modern-media-controls/ tests now verify selectability with\n`selection.selectAllChildren()` instead of\n`getComputedStyle().webkitUserSelect`. This means we now verify the\nused value instead of the computed value.\n\nWhile the computed and used value are in agreement today, this is not\nthe specced behavior for user-select, so this should simplify a\nfuture effort to unprefix -webkit-user-select.\n\nSpec link: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/user-select#formal_definition.\n\n* LayoutTests/media/modern-media-controls/airplay-placard/airplay-placard-text-section-expected.txt:\n* LayoutTests/media/modern-media-controls/airplay-placard/airplay-placard-text-section.html:\n* LayoutTests/media/modern-media-controls/pip-placard/pip-placard-text-section-expected.txt:\n* LayoutTests/media/modern-media-controls/pip-placard/pip-placard-text-section.html:\n* LayoutTests/media/modern-media-controls/status-label/status-label-text-selection-expected.txt:\n* LayoutTests/media/modern-media-controls/status-label/status-label-text-selection.html:\n\nCanonical link: https://commits.webkit.org/319170@main",
      "email": "franco_vieira@apple.com",
      "hash": "3ebb8e36b597779c7c883c3c50d9f4dcdab5b25c",
      "subject": "Verify used (not computed) value of user-select in modern-media-controls tests"
    },
    "319171@main": {
      "author": "Said Abou-Hallawa",
      "avatar": "https://www.gravatar.com/avatar/ae80a929a378a055822829ae63903296?d=identicon\u0026s=64",
      "cl": "319171@main",
      "clUrl": "https://commits.webkit.org/319171@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321733\nrdar://184864621\n\nReviewed by Tim Nguyen.\n\nPer the spec [1]: \"Calling decode() on the constructed ImageDecoder will trigger\na NotSupportedError if the User Agent does not support type.\"\n\nHandling the case of unsupported mime type is not implemented in the constructor\nand the decode() method.\n\nAlso the type attribute of WebCodecsImageDecoder has to return what was passed in\nthe type of ImageDecoderInit when it is created. Currently it always returns an\nempty string.\n\nhttps://w3c.github.io/webcodecs/#dom-imagedecoder-imagedecoder\n\n* LayoutTests/imported/w3c/web-platform-tests/webcodecs/image-decoder.https.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webcodecs/image-decoder.https.any.worker-expected.txt:\n* LayoutTests/platform/glib/imported/w3c/web-platform-tests/webcodecs/image-decoder.https.any-expected.txt:\n* LayoutTests/platform/glib/imported/w3c/web-platform-tests/webcodecs/image-decoder.https.any.worker-expected.txt:\n* Source/WebCore/Modules/webcodecs/WebCodecsImageDecoder.cpp:\n(WebCore::WebCodecsImageDecoder::WebCodecsImageDecoder):\n(WebCore::WebCodecsImageDecoder::sinkStreamToInternalDecoder):\n(WebCore::WebCodecsImageDecoder::setInternalDecoderData):\n(WebCore::WebCodecsImageDecoder::decode):\n(WebCore::WebCodecsImageDecoder::isTypeSupported):\n* Source/WebCore/Modules/webcodecs/WebCodecsImageDecoder.h:\n\nCanonical link: https://commits.webkit.org/319171@main",
      "email": "said@apple.com",
      "hash": "95b3748aa99a86fa04bf625ac3b70d6def411391",
      "subject": "WebCodecsImageDecoder should return a Promise rejected if the mime type is not supported"
    },
    "319172@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "319172@main",
      "clUrl": "https://commits.webkit.org/319172@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321713\nrdar://184853584\n\nReviewed by Sosuke Suzuki.\n\nIslamic calendars have only one ICU era value, so pre-Hijra dates come back as a negative raw\nyear under it instead of a distinct era. The existing workaround detects the\nepoch boundary and substitutes \"Before Hijra\" text, but left the year untouched, so a pre-Hijra\ndate rendered as e.g. \"-332 Before Hijra\" — double-negative, and inconsistent with how Gregorian's\nnative \"Before Christ\" and Temporal's own eraYear for this exact era both read (1 - year, no year\nzero: \"333 Before Hijra\").\n\nFixes the year to match that convention. The value comes from a clone of the format's own calendar\n(cloned and given its own millis, same pattern already used by createCalendarForDate in this file)\nrather than by parsing ICU's already-rendered year text — parsing would be wrong under\nyear:\"2-digit\", since ICU truncates to two digits before this code ever sees the string, and\nflipping an already-truncated number does not equal truncating the correctly-flipped one.\n\nEraOverride now carries a needsYearFlip flag (true for islamic-civil/tbla/umalqura, false for\ncoptic — ICU already renders coptic's year correctly on its own) instead of a bare era string, and\nthe flip is computed once in a shared helper used by both format() and formatToParts(), which\npreviously would have needed the identical logic written out twice.\n\nTest: JSTests/stress/intl-datetimeformat.js\nCanonical link: https://commits.webkit.org/319172@main",
      "email": "yijia_huang@apple.com",
      "hash": "171864159318a3d0c4c344f0775ab26210e841b9",
      "subject": "[JSC][Intl] Compute the \"Before Hijra\" year from the calendar, not ICU's rendered text"
    },
    "319173@main": {
      "author": "Brent Fulgham",
      "avatar": "https://www.gravatar.com/avatar/c6989a65afef0d015b55c65406e37ccc?d=identicon\u0026s=64",
      "cl": "319173@main",
      "clUrl": "https://commits.webkit.org/319173@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321623\nrdar://184751412\n\nReviewed by Tim Nguyen.\n\nshowModal() skipped the top layer insertion when the dialog was already in the top layer,\nso a dialog whose open attribute was removed directly rather than via close() kept its old\nstacking position when shown again. Per css-position-4, adding an element to the top layer\nremoves it first and re-appends it, making it topmost. This matches DocumentFullscreen's\nexisting behavior for fullscreen elements.\n\nNote Chrome does not yet match this behavior.\n\nThis change also fixes a WPT test issue that caused our ports to fail. A button click\ncleanup step that is present in other similar tests appears to have been lost when\nthe-dialog-element/inert-svg-hittest.html was adapted from inert/inert-svg-hittest.html.\nThis creates a cross-test state leak that may have affected other things (besides causing\nthis individual failure). This should be pushed upstream once this PR lands.\n\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest.html:\n* LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt.\n* Source/WebCore/html/HTMLDialogElement.cpp:\n(WebCore::HTMLDialogElement::showModal):\n(WebCore::HTMLDialogElement::close):\n\nCanonical link: https://commits.webkit.org/319173@main",
      "email": "bfulgham@apple.com",
      "hash": "61d9a441f90ea63b76127680b19c0d11df7a3bc5",
      "subject": "[Interop] Correct focus restore behavior to match spec"
    },
    "319174@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "319174@main",
      "clUrl": "https://commits.webkit.org/319174@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321758\n\nReviewed by Mike Wyrzykowski.\n\n* Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:\n(WI.RecordingAction.bitfieldNamesForParameter):\n(WI.RecordingAction._bitfields): Added.\nDescribe WebGL and WebGPU bitfield argument locations in one table that mirrors nested WebGPU descriptors.\nUse existing WebGPU namespace constants to decompose each bitfield and return fully qualified names so callers do not have to assume a `context` prefix.\n\n* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js:\n(WI.RecordingActionTreeElement._generateDOM):\n(WI.RecordingActionTreeElement._generateDOM.appendJSON):\n(WI.RecordingActionTreeElement._generateDOM.createParameterElement):\nTrack property paths while rendering structured arguments so nested WebGPU bitfields use namespace-qualified names.\n\nCanonical link: https://commits.webkit.org/319174@main",
      "email": "hi@devinrousso.com",
      "hash": "075c50dcf56d75fd771eef3587a2ae170e67bcbd",
      "subject": "Web Inspector: Canvas: show names for recorded WebGPU bitfields"
    },
    "319175@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "319175@main",
      "clUrl": "https://commits.webkit.org/319175@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321750\n\nReviewed by Tim Nguyen.\n\nRemove unused values, redundant assignments, unreachable statements, and unnecessary regular expression escapes.\n\nDrive-by: enable additional ESLint rules that check for correctness issues and fix the existing errors they find.\nDrive-by: remove duplicate methods, avoid usage of the legacy `event` global, and make callback return behavior consistent.\nCanonical link: https://commits.webkit.org/319175@main",
      "email": "hi@devinrousso.com",
      "hash": "349d8816e503ec5e57423f5e7824e624fe2244d1",
      "subject": "Web Inspector: fix existing ESLint errors"
    },
    "319176@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "319176@main",
      "clUrl": "https://commits.webkit.org/319176@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321757\n\nReviewed by Mike Wyrzykowski.\n\n* Source/WebCore/inspector/InspectorCanvas.cpp:\n(WebCore::shouldSnapshotWebGPUAction):\nCapture a snapshot after `GPUQueue.copyElementImageToTexture`.\n\n* Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:\n(WI.RecordingAction._visualNames):\nClassify `copyElementImageToTexture` as a visual WebGPU action.\n\n* LayoutTests/inspector/canvas/recording-webgpu-full-expected.txt:\n\nCanonical link: https://commits.webkit.org/319176@main",
      "email": "hi@devinrousso.com",
      "hash": "6139ca35df650d04c073f6fb6b41914030685681",
      "subject": "Web Inspector: Canvas: snapshot WebGPU element image copies"
    },
    "319177@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "319177@main",
      "clUrl": "https://commits.webkit.org/319177@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321730\nrdar://184861414\n\nReviewed by Abrar Rahman Protyasha.\n\nFix some logic to be agnostic across Cocoa platforms.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/BasicAppKitGesturesTests.swift\n\n* Source/WebCore/dom/Node.cpp:\n(WebCore::Node::willRespondToMouseMoveEvents const):\n(WebCore::Node::willRespondToMouseClickEventsWithEditability const):\n* Tools/TestWebKitAPI/Helpers/cocoa/JavaScriptMessages.swift:\n(InstallEventLog.expression):\n(InstallEventLog.encoded):\n* Tools/TestWebKitAPI/Helpers/cocoa/JavaScriptTypes.swift:\n(DOMElement.encoded):\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture Tests/BasicAppKitGesturesTests.swift:\n(AppKitGesturesTests.singleClickFiresPointerMouseAndClickEvents(_:)):\n(AppKitGesturesTests.singleClickFiresEventsForListenersOnTheDocument):\n\nCanonical link: https://commits.webkit.org/319177@main",
      "email": "richard_robinson2@apple.com",
      "hash": "5919411cb04f540ca591ee2d5f6f848b1cad29cc",
      "subject": "[AppKit Gestures] Some events are not fired when event listeners are added to `document`"
    },
    "319178@main": {
      "author": "Jeffrey Xu",
      "avatar": "https://www.gravatar.com/avatar/102604c66589181d1a1247ea63f49964?d=identicon\u0026s=64",
      "cl": "319178@main",
      "clUrl": "https://commits.webkit.org/319178@main",
      "description": "rdar://181640669\n\nReviewed by Alex Christensen.\n\nThis is implemented with the libnetcore library, similar to other existing API test helpers.\nThe Http2 enum was already used for raw HTTP2 frames in the preconnect test, so this change renames it to Http2Raw. The new methods and classes will be reused for the HTTP/3 server, so they have a protocol-agnostic name.\n\nThis commit was partially written by Claude, with human review.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/HTTP2Server.mm\n\n* Source/WTF/wtf/PlatformHave.h:\n* Tools/TestWebKitAPI/Helpers/cocoa/HTTPServer.h:\n* Tools/TestWebKitAPI/Helpers/cocoa/HTTPServer.mm:\n(TestWebKitAPI::shouldDisableTLS):\n(TestWebKitAPI::HTTPServer::listenerParameters):\n(TestWebKitAPI::HTTPServer::HTTPServer):\n(TestWebKitAPI::HTTPServer::scheme const):\n(TestWebKitAPI::HTTPServer::respondToHTTPMessagingRequests):\n* Tools/TestWebKitAPI/Helpers/cocoa/NetworkConnection.h:\n(TestWebKitAPI::Connection::receiveHTTPMessagingRequest):\n(TestWebKitAPI::ReceiveHTTPMessagingRequestOperation::ReceiveHTTPMessagingRequestOperation):\n(TestWebKitAPI::ReceiveHTTPMessagingRequestOperation::await_ready):\n(TestWebKitAPI::ReceiveHTTPMessagingRequestOperation::await_resume):\n(TestWebKitAPI::SendHTTPMessagingResponseOperation::await_ready):\n(TestWebKitAPI::SendHTTPMessagingResponseOperation::await_resume):\n* Tools/TestWebKitAPI/Helpers/cocoa/NetworkConnection.mm:\n(TestWebKitAPI::Connection::receiveHTTPMessagingRequest const):\n(TestWebKitAPI::Connection::awaitableReceiveHTTPMessagingRequest const):\n(TestWebKitAPI::ReceiveHTTPMessagingRequestOperation::await_suspend):\n(TestWebKitAPI::Connection::sendHTTPMessagingResponse const):\n(TestWebKitAPI::Connection::awaitableSendHTTPMessagingResponse):\n(TestWebKitAPI::SendHTTPMessagingResponseOperation::SendHTTPMessagingResponseOperation):\n(TestWebKitAPI::SendHTTPMessagingResponseOperation::await_suspend):\n* Tools/TestWebKitAPI/SourcesCocoa.txt:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/HTTP2Server.mm: Added.\n(-[HTTP2ServerSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):\n(TestWebKitAPI::TEST(HTTP2Server, RoundTrip)):\n(TestWebKitAPI::TEST(HTTP2Server, RequestMethodPathAndHeaders)):\n(TestWebKitAPI::TEST(HTTP2Server, POSTBody)):\n(TestWebKitAPI::TEST(HTTP2Server, NonDefaultStatusCodeAndResponseHeader)):\n(TestWebKitAPI::TEST(HTTP2Server, MultipleRequestsOverOneConnection)):\n(-[HTTP2ServerSessionDelegate URLSession:task:didFinishCollectingMetrics:]):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/Preconnect.mm:\n(TestWebKitAPI::TEST(Preconnect, H2Ping)):\n(TestWebKitAPI::TEST(Preconnect, H2PingFromWebCoreNSURLSession)):\n* Tools/TestWebKitAPI/Helpers/cocoa/HTTPServer.swift:\n* Tools/TestWebKitAPI/Helpers/cocoa/NetworkSPI.h: Added.\n* Tools/TestWebKitAPI/Scripts/generate-unified-sources.sh:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/UnifiedSources-output.xcfilelist:\n\nCanonical link: https://commits.webkit.org/319178@main",
      "email": "jeffrey_xu2@apple.com",
      "hash": "e1eeee566f94a54c79f592b305489c2795760f9a",
      "subject": "Add an HTTP/2 server to API tests."
    },
    "319179@main": {
      "author": "Said Abou-Hallawa",
      "avatar": "https://www.gravatar.com/avatar/ae80a929a378a055822829ae63903296?d=identicon\u0026s=64",
      "cl": "319179@main",
      "clUrl": "https://commits.webkit.org/319179@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321721\nrdar://184857272\n\nReviewed by Tim Nguyen.\n\nEnable it by default for WK2 on all ports.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/319179@main",
      "email": "said@apple.com",
      "hash": "bd2249a5dfaf8b28113fc044cf1cb79c55a872a7",
      "subject": "Enable the WebCodecs Image API by default"
    },
    "319180@main": {
      "author": "Joanne Pan",
      "avatar": "https://www.gravatar.com/avatar/5cbbf578426a0c98cb5c977ca2dd88fc?d=identicon\u0026s=64",
      "cl": "319180@main",
      "clUrl": "https://commits.webkit.org/319180@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321777\nrdar://181816677\n\nReviewed by Antti Koivisto.\n\nTurn CSSRandomItemFunctionEnabled on by default and move it to stable, matching\nCSSRandomFunctionEnabled. All of the imported WPT coverage passes:\nrandom-item-computed.html, random-item-valid.html, random-item-invalid.html,\nrandom-item-serialize.html, random-item-nested.html, random-item-in-keyframe.html,\nrandom-item-unresolvable-argument.html and\nrandom-item-in-container-query.tentative.html.\n\nTwo known limitations, both tracked:\n\n\u003crandom-ua-ident\u003e is not implemented, so that branch of \u003crandom-cache-key\u003e is\nrejected (bug 321552). Nothing else in the grammar depends on it.\n\nAn auto random() and an auto random-item() in the same property value share a base\nvalue, because each counts its \u003crandom-key\u003e index from zero in its own space\n(bug 319919).\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n\nCanonical link: https://commits.webkit.org/319180@main",
      "email": "jpan0917@gmail.com",
      "hash": "34252a2f2610885e1265dec8ae9e0b30521868b4",
      "subject": "[css-values-5] Enable random-item() by default"
    },
    "319181@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "319181@main",
      "clUrl": "https://commits.webkit.org/319181@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321584\nrdar://184700906\n\nReviewed by Mike Wyrzykowski.\n\nStream IPC clients would need a out-of-protocol message carrying the\ninitialization result for the connection, the client wait and server\nwakeup semaphore. This was because:\n- Client wait semaphore: the Mach semaphores break an wait\n  process termination if the terminated process was the one creating\n  the semaphore.\n- Server wakeup semaphore: Server can only wait on one semaphore,\n  even if there are multiple connections processed. by one work queue.\n\nSince client could not wait on the wait semaphore before the server\nhad sent it, the clients would need error-prone waits for the\ninitialization messages before sends could happen.\n\nMake the client wait happen with IPC::Event, which is an mach receive\nright. These can be created by the client and receive no senders\nnotification when the sender process is terminated.\n\nIntroduce IPC protocol message InitializeStreamClientConnection for\nsending the server wakeup semaphore. This way the implementation does\nnot leak into the client messages. In the future, also this will be\nreplaced by a mach send right.\n\nFix IPC::Signal bug where signal() would block if previous signal was\nnot waited on.\nFix latent IPC::Event bug where receive bug was too small for\nno senders notification.\n\n* LayoutTests/ipc/cache-font-null-palette-colors-crash.html:\n* LayoutTests/ipc/create-image-buffer-crash.html:\n* LayoutTests/ipc/decode-feConvolveMatrix-kernelSize-overflow.html:\n* LayoutTests/ipc/display-list-recorder-leak.html:\n* LayoutTests/ipc/dynamic-content-scaling-display-list-during-prepare-for-display.html:\n* LayoutTests/ipc/feComponentTransfer-empty-tableValues-accelerated.html:\n* LayoutTests/ipc/insufficient-svgfilter-inputs-crash.html:\n* LayoutTests/ipc/invalid-svgfilter-expression-crash.html:\n* LayoutTests/ipc/mark-surfaces-volatile-during-prepare-for-display.html:\n* LayoutTests/ipc/move-to-image-buffer-cross-thread-font-crash.html:\n* LayoutTests/ipc/nested-display-list-draw-control-part-crash.html:\n* LayoutTests/ipc/rgba16f-getpixelbuffer-colorspace-mismatch-heap-disclosure.html:\n* LayoutTests/ipc/send-gpu-GetShareableBitmap-RemoteRenderingBackend.html:\n* LayoutTests/ipc/send-invalid-sync-stream-message-empty-reply-check-exception.html:\n* LayoutTests/ipc/stream-async-with-reply.html:\n* LayoutTests/ipc/stream-check-autoreleasepool.html:\n* LayoutTests/ipc/stream-sync-crash-no-timeout.html:\n* LayoutTests/ipc/stream-sync-reply-shared-memory.html:\n* Source/WebKit/CMakeLists.txt:\n* Source/WebKit/DerivedSources-input.xcfilelist:\n* Source/WebKit/DerivedSources-output.xcfilelist:\n* Source/WebKit/DerivedSources.make:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:\n(WebKit::RemoteGraphicsContextGL::workQueueInitialize):\n* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:\n(WebKit::RemoteRenderingBackend::workQueueInitialize):\n* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:\n(WebKit::RemoteGPU::workQueueInitialize):\n* Source/WebKit/ModelProcess/ModelProcess.h:\n* Source/WebKit/ModelProcess/cocoa/ModelProcessCocoa.mm:\n(WebKit::ModelProcess::sendCreateLogStreamToParent):\n* Source/WebKit/Platform/IPC/IPCEvent.h:\n(IPC::Event::Event):\n(IPC::Event::operator=):\n* Source/WebKit/Platform/IPC/StreamClientConnection.cpp:\n(IPC::StreamClientConnection::create):\n(IPC::StreamClientConnection::enqueueMessage):\n(IPC::StreamClientConnection::open):\n(IPC::StreamClientConnection::invalidate):\n(IPC::StreamClientConnection::setSemaphores): Deleted.\n(IPC::StreamClientConnection::hasSemaphores const): Deleted.\n* Source/WebKit/Platform/IPC/StreamClientConnection.h:\n* Source/WebKit/Platform/IPC/StreamClientConnectionBuffer.h:\n(IPC::StreamClientConnectionBuffer::hasWakeUpSemaphore const):\n(IPC::StreamClientConnectionBuffer::StreamClientConnectionBuffer):\n(IPC::StreamClientConnectionBuffer::operator=):\n(IPC::StreamClientConnectionBuffer::create):\n(IPC::StreamClientConnectionBuffer::tryAcquire):\n(IPC::StreamClientConnectionBuffer::tryAcquireAll):\n(IPC::StreamClientConnectionBuffer::setWakeUpSemaphore):\n(IPC::StreamClientConnectionBuffer::wakeUpServer):\n(IPC::StreamClientConnectionBuffer::hasSemaphores const): Deleted.\n(IPC::StreamClientConnectionBuffer::setSemaphores): Deleted.\n* Source/WebKit/Platform/IPC/StreamServerConnection.cpp:\n(IPC::StreamServerConnection::tryCreate):\n(IPC::StreamServerConnection::StreamServerConnection):\n(IPC::StreamServerConnection::open):\n(IPC::StreamServerConnection::processSetStreamDestinationID):\n(IPC::StreamServerConnection::processStreamMessage):\n(IPC::StreamServerConnection::processOutOfStreamMessage):\n* Source/WebKit/Platform/IPC/StreamServerConnection.h:\n(IPC::StreamServerConnectionHandle::StreamServerConnectionHandle):\n* Source/WebKit/Platform/IPC/StreamServerConnection.serialization.in:\n* Source/WebKit/Platform/IPC/darwin/IPCEventDarwin.cpp:\n(IPC::Event::wait):\n(IPC::Event::waitFor):\n* Source/WebKit/Scripts/webkit/model.py:\n* Source/WebKit/Scripts/webkit/tests/MessageNames.cpp:\n* Source/WebKit/Scripts/webkit/tests/MessageNames.h:\n* Source/WebKit/Shared/AuxiliaryProcess.h:\n(WebKit::AuxiliaryProcess::sendCreateLogStreamToParent):\n* Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm:\n(WebKit::AuxiliaryProcess::initializeLogForwarding):\n* Source/WebKit/Shared/IPCStreamTester.cpp:\n(WebKit::IPCStreamTester::initialize):\n* Source/WebKit/Shared/IPCStreamTesterProxy.h: Removed.\n* Source/WebKit/Shared/IPCStreamTesterProxy.messages.in: Removed.\n* Source/WebKit/Shared/LogStream.h:\n* Source/WebKit/Shared/LogStream.mm:\n(WebKit::LogStream::create):\n* Source/WebKit/Sources.txt:\n* Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:\n* Source/WebKit/UIProcess/Cocoa/AuxiliaryProcessProxyCocoa.mm:\n(WebKit::AuxiliaryProcessProxy::createLogStream):\n* Source/WebKit/UIProcess/Model/ModelProcessProxy.messages.in:\n* Source/WebKit/UIProcess/WebProcessProxy.messages.in:\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:\n(WebKit::RemoteGraphicsContextGLProxy::wasCreated):\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:\n(WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection):\n(WebKit::RemoteRenderingBackendProxy::connection):\n(WebKit::RemoteRenderingBackendProxy::didInitialize):\n* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:\n* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:\n(WebKit::RemoteGPUProxy::wasCreated):\n* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.messages.in:\n* Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:\n(WebKit::IPCTestingAPI::JSIPCSemaphore::encode const):\n(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::staticFunctions):\n(WebKit::IPCTestingAPI::JSIPCSemaphore::exchange): Deleted.\n(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::setSemaphores): Deleted.\n* Source/WebKit/WebProcess/WebProcess.h:\n* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:\n(WebKit::WebProcess::accessibilityFocusedUIElement):\n* Tools/TestWebKitAPI/Tests/IPC/MessageLogEndToEndTests.cpp:\n* Tools/TestWebKitAPI/Tests/IPC/StreamConnectionBufferTests.cpp:\n(TestWebKitAPI::createClientBuffer):\n(TestWebKitAPI::TEST(StreamConnectionBufferTests, CreateWorks)):\n(TestWebKitAPI::StreamConnectionBufferTest::client):\n* Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp:\n\nCanonical link: https://commits.webkit.org/319181@main",
      "email": "kkinnunen@apple.com",
      "hash": "0aff48e975c8f6a455108d49821c8913a0f41ec5",
      "subject": "Remove blocking for initialisation message in IPC StreamClientConnection"
    },
    "319182@main": {
      "author": "Aran Donohue",
      "avatar": "https://www.gravatar.com/avatar/3cb83daf11987c5edb60aa320471edbb?d=identicon\u0026s=64",
      "cl": "319182@main",
      "clUrl": "https://commits.webkit.org/319182@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=311299\n\nReviewed by Alex Christensen.\n\nImplement the headers constructor option and responseHeaders attribute\nfrom the WebTransport spec (https://github.com/w3c/webtransport/pull/713).\n\nheaders allows setting custom HTTP headers on the CONNECT request when\nestablishing a WebTransport session. responseHeaders exposes the\nserver's response headers as an immutable Headers object after the\nsession is established.\n\nTests: imported/w3c/web-platform-tests/webtransport/headers.https.any.html\n       imported/w3c/web-platform-tests/webtransport/headers.https.any.worker.html\n       Tools/TestWebKitAPI/Tests/WebCore/WebTransportHeaderValidation.cpp\n\n* LayoutTests/imported/w3c/web-platform-tests/interfaces/webtransport.idl:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/headers.https.any-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/headers.https.any.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/headers.https.any.js: Added.\n(createAndClose):\n(test):\n(promise_test.async t):\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/headers.https.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/headers.https.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/idlharness.https.sub.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/idlharness.https.sub.any.serviceworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/idlharness.https.sub.any.sharedworker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webtransport/idlharness.https.sub.any.worker-expected.txt:\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/Modules/webtransport/WebTransport.cpp:\n(WebCore::WebTransport::create):\n(WebCore::WebTransport::WebTransport):\n(WebCore::WebTransport::responseHeaders):\n* Source/WebCore/Modules/webtransport/WebTransport.h:\n* Source/WebCore/Modules/webtransport/WebTransport.idl:\n* Source/WebCore/Modules/webtransport/WebTransportConnectionInfo.h:\n(WebCore::WebTransportConnectionInfo::isolatedCopy const):\n(WebCore::WebTransportConnectionInfo::isolatedCopy):\n* Source/WebCore/Modules/webtransport/WebTransportHeaderValidation.cpp: Added.\n(WebCore::validateWebTransportHeader):\n(WebCore::validateAndNormalizeWebTransportHeaders):\n(WebCore::areValidWebTransportHeaders):\n* Source/WebCore/Modules/webtransport/WebTransportHeaderValidation.h: Copied from Source/WebCore/Modules/webtransport/WebTransportConnectionInfo.h.\n* Source/WebCore/Modules/webtransport/WebTransportOptions.h:\n* Source/WebCore/Modules/webtransport/WebTransportOptions.idl:\n* Source/WebCore/Modules/webtransport/WebTransportSession.h:\n* Source/WebCore/Modules/webtransport/WorkerWebTransportSession.cpp:\n(WebCore::WorkerWebTransportSession::initialize):\n* Source/WebCore/Modules/webtransport/WorkerWebTransportSession.h:\n* Source/WebCore/PAL/pal/spi/cocoa/NetworkSPI.h:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/loader/EmptyClients.cpp:\n* Source/WebCore/platform/network/HTTPParsers.h:\n* Source/WebKit/Configurations/AllowedSPI.toml:\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:\n(WebKit::NetworkConnectionToWebProcess::initializeWebTransportSession):\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:\n* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:\n* Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.cpp:\n(WebKit::NetworkTransportSession::create):\n* Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.h:\n* Source/WebKit/NetworkProcess/webtransport/WebTransport.serialization.in:\n* Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportSessionCocoa.mm:\n(WebKit::createParameters):\n(WebKit::NetworkTransportSession::create):\n(WebKit::NetworkTransportSession::initialize):\n* Source/WebKit/WebProcess/Network/WebTransportSession.cpp:\n(WebKit::WebTransportSession::initialize):\n* Source/WebKit/WebProcess/Network/WebTransportSession.h:\n* Tools/TestWebKitAPI/CMakeLists.txt:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WebCore/WebTransportHeaderValidation.cpp: Added.\n(TestWebKitAPI::makeHeaders):\n(TestWebKitAPI::TEST(WebTransportHeaderValidation, EmptyIsValid)):\n(TestWebKitAPI::TEST(WebTransportHeaderValidation, SimpleCustomHeaderIsValid)):\n(TestWebKitAPI::TEST(WebTransportHeaderValidation, RejectsMixedCaseName)):\n(TestWebKitAPI::TEST(WebTransportHeaderValidation, RejectsInvalidHTTPToken)):\n(TestWebKitAPI::TEST(WebTransportHeaderValidation, RejectsWhenAnyHeaderInvalid)):\n(TestWebKitAPI::TEST(WebTransportHeaderValidation, AcceptsHighByteValues)):\n(TestWebKitAPI::TEST(WebTransportHeaderValidation, RejectsUntrimmedValue)):\n\nCanonical link: https://commits.webkit.org/319182@main",
      "email": "aran@arandonohue.com",
      "hash": "89c464cce8ce7591d4a0d926d4e79f2b621136d4",
      "subject": "[WebTransport] Add headers and responseHeaders support"
    },
    "319183@main": {
      "author": "Rupin Mittal",
      "avatar": "https://www.gravatar.com/avatar/3e3de9845931d2dc844afb00056ec94e?d=identicon\u0026s=64",
      "cl": "319183@main",
      "clUrl": "https://commits.webkit.org/319183@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321639\nrdar://184766408\n\nReviewed by Charlie Wolfe.\n\nThis test tests that if an iframe uses the Navigation API to traverse but gets\nremoved after committing but before finishing, then NavigateSuccess is not\nfired, but NavigateError is and the finished promise rejects.\n\nCurrently, the test times out because NavigateError is not fired at all.\n\nThe spec says that when an iframe is destroyed, we must notify the iframe's\nnavigation object so that it can abort the ongoing navigation and reject\nthe finished promises of all the upcoming traverse trackers.\n\nSpec:\nhttps://html.spec.whatwg.org/multipage/document-sequences.html#destroy-a-child-navigable\nhas Step 4: Inform the navigation API about child navigable destruction given navigable\nhttps://html.spec.whatwg.org/multipage/nav-history-apis.html#inform-the-navigation-api-about-child-navigable-destruction\n\nWe currently don't implement this. So we fix the test by implementing it.\n\nIt is possible that informAboutChildNavigableDestruction() gets called when\nthe frames of a back/forward cache entry are disconnected when the entry is\nbeing destroyed (see CachedFrame::destroy()). In that case the document is\nsuspended or stopped and can't dispatch events or settle promises. So we guard\nagainst this case. Multiple tests were crashing without this guard.\n\n* Source/WebCore/loader/FrameLoader.cpp:\n(WebCore::FrameLoader::frameDetached):\n* Source/WebCore/page/Navigation.cpp:\n(WebCore::Navigation::MethodTrackerRegistry::upcomingTraverseTrackers const):\n(WebCore::Navigation::informAboutChildNavigableDestruction):\n* Source/WebCore/page/Navigation.h:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/traverseTo-detach-between-navigate-and-navigatesuccess-expected.txt:\n\nCanonical link: https://commits.webkit.org/319183@main",
      "email": "rupin@apple.com",
      "hash": "ec445d2204215668407ddbdc65c1d4d35327e9eb",
      "subject": "[Navigation API] traverseTo-detach-between-navigate-and-navigatesuccess.html is failing"
    },
    "319184@main": {
      "author": "Yulun Wu",
      "avatar": "https://www.gravatar.com/avatar/9e34d6632f4d926cdf6fe8dce07f9cb7?d=identicon\u0026s=64",
      "cl": "319184@main",
      "clUrl": "https://commits.webkit.org/319184@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321760\n\u003crdar://184881194\u003e\n\nReviewed by Sammy Gill.\n\nPer spec:\n\nhttps://drafts.csswg.org/css-grid-1/#algo-single-span-items\n\n11.5.2: Size tracks to fit non-spanning items\n\n\"if a track's growth limit is now less than its base size,\nincrease the growth limit to match the base size.\"\n\n* Source/WebCore/layout/formattingContexts/grid/TrackSizingAlgorithm.cpp:\n(WebCore::Layout::UnsizedTrack::ensureGrowthLimitIsBiggerThanBaseSize):\n(WebCore::Layout::sizeTracksToFitNonSpanningItems):\n\nCanonical link: https://commits.webkit.org/319184@main",
      "email": "yulun_wu@apple.com",
      "hash": "0c9c8bd55498d1a6a5b893aeeb7d291f706b2e08",
      "subject": "[GFC] Clamp a track's growth limit to its base size when sizing non-spanning items"
    },
    "319185@main": {
      "author": "Tim Horton",
      "avatar": "https://www.gravatar.com/avatar/a04261df168177f0d816f3c7276f6183?d=identicon\u0026s=64",
      "cl": "319185@main",
      "clUrl": "https://commits.webkit.org/319185@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321718\nrdar://184618347\n\nReviewed by Abrar Rahman Protyasha.\n\n* Source/WebKitLegacy/PlatformCocoa.cmake:\n* Source/WebKitLegacy/SourcesCMakeCocoa.txt:\n* Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj:\n* Source/WebKitLegacy/mac/WebView/WebJSPDFDoc.h: Removed.\n* Source/WebKitLegacy/mac/WebView/WebJSPDFDoc.mm: Removed.\n* Source/WebKitLegacy/mac/WebView/WebPDFDocumentExtras.h:\n* Source/WebKitLegacy/mac/WebView/WebPDFDocumentExtras.mm:\n(isPrintScript):\n(pdfDocumentContainsPrintScript):\n(allScriptsInPDFDocument): Deleted.\n* Source/WebKitLegacy/mac/WebView/WebPDFRepresentation.mm:\n(-[WebPDFRepresentation finishedLoadingWithDataSource:]):\nSee 285037@main; don't spend time spinning up JSC just to see if the word\nprint() exists in the PDF's script. Port that change to WebKitLegacy's PDF view.\n\n* Source/WebKitLegacy/ios/WebView/WebPDFViewIOS.mm:\n(-[WebPDFView finishedLoadingWithDataSource:]):\n* Source/WebKitLegacy/ios/WebView/WebPDFViewPlaceholder.mm:\n(-[WebPDFViewPlaceholder _doPostLoadOrUnlockTasks]):\n(-[WebPDFViewPlaceholder _printIfDocumentContainsPrintScript:]):\n(-[WebPDFViewPlaceholder _evaluateJSForDocument:]): Deleted.\nSame for iOS.\n\n* Tools/MiniBrowser/mac/WK1BrowserWindowController.m:\n(-[WK1BrowserWindowController webView:printFrameView:]):\nAlso, drive-by make printing work in WebKitLegacy MiniBrowser.\n\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WebKitLegacy/mac/PDFEmbeddedPrintScript.mm: Added.\n(-[TestLegacyPDFPrintDelegate webView:printFrameView:]):\n(-[TestLegacyPDFPrintDelegate waitForPrintFrameViewCall]):\n(-[TestLegacyPDFPrintDelegate printFrameViewCallCount]):\n(TestWebKitAPI::TEST(WebKitLegacy, PDFWithEmbeddedPrintScriptPrints)):\nAnd add a test.\n\n* Source/WebKitLegacy/SaferCPPExpectations/UnretainedCallArgsCheckerExpectations:\n\nCanonical link: https://commits.webkit.org/319185@main",
      "email": "thorton@apple.com",
      "hash": "53f0302b256e864a6a9cc9b5fcceb8bf177067a6",
      "subject": "Port 285037@main's simplified regex-based PDF script runner to WebPDFView"
    },
    "319186@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "319186@main",
      "clUrl": "https://commits.webkit.org/319186@main",
      "description": "rdar://183158814\nhttps://bugs.webkit.org/show_bug.cgi?id=320220\n\nReviewed by Antti Koivisto.\n\nDuring style resolution, new styles aren't committed to the render tree right away.\nInstead, they're packaged into a Style::Update, and once style resolution completes,\nit's passed to RenderTreeUpdater to update the styles in the render tree. @container\nstyle queries should be evaluated against the newest style of the container element.\nBut the queries are evaluated during style resolution, when new styles aren't committed\nto the render tree yet. Hence evaluating against the current (stale) render style might\nlead to incorrect results.\n\nContainerQueryEvaluator has a clever workaround: it has access to the Style::Update\nobject, so it gets the freshest possible style of a container element from there,\nand falls back to the render style if a style isn't in Update. The Update object is\nthreaded from TreeResolver -\u003e TreeResolver::Scope -\u003e SelectorMatchingState\n-\u003e ContainerQueryEvaluationState -\u003e used by Style::styleForContainer to get the style\nfor style query evaluation.\n\nHowever, during style resolution of an element, the timing when the Update object is\nupdated doesn't work for @container style queries affecting a pseudo-element.\n\n1) resolve the element's style\n2) resolve its pseudo-elements' styles\n  2.1) @container queries are evaluated if a @container rule affects a pseudo-element\n3) the element's and its psuedo-elements' styles are addded to the Update object\n\nWhen 2.1) runs, @container style queries are evaluated against the container element,\nwhich is the host. But the host's new style resolved in 1) is not added to the Update\nobject yet, since it's only done in 3) after all pseudo-elements' styles are resolved.\nHence ContainerQueryEvaluator will use the (stale) host's render style.\n\nSince the order can't be change, this patch fixes the bug by maintaining our own\nWeakHashMap to store freshly resolved styles. This way, we control when styles are\nadded to the hashmap and aren't dependent on Update. ContainerQueryEvaluator is\nchanged to use this hashmap, and we thread it from TreeResolver to ContainerQueryEvaluator\nthe same way the Update object is threaded before.\n\nFor memory safety, ref-count the hash map using Box\u003c\u003e, so we can pass its pointers\naround without fear of use-after-free.\n\nTest: imported/w3c/web-platform-tests/css/css-conditional/container-queries/pseudo-elements-005.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/pseudo-elements-005-expected.txt:\n* Source/WebCore/style/ContainerQueryEvaluator.cpp:\n(WebCore::Style::styleForContainer):\n(WebCore::Style::ContainerQueryEvaluator::featureEvaluationContextForCondition const):\n* Source/WebCore/style/ContainerQueryEvaluator.h:\n* Source/WebCore/style/StyleTreeResolver.cpp:\n(WebCore::Style::TreeResolver::Scope::Scope):\n(WebCore::Style::TreeResolver::resolveElement):\n(WebCore::Style::TreeResolver::resolve):\n* Source/WebCore/style/StyleTreeResolver.h:\n\nCanonical link: https://commits.webkit.org/319186@main",
      "email": "kiet.ho@apple.com",
      "hash": "bd7ffafffdad6b3d68373b526c0939a71313aa67",
      "subject": "[css-conditional-5] @container style queries on pseudo-element's host element uses old style data"
    },
    "319187@main": {
      "author": "Richard Robinson",
      "avatar": "https://www.gravatar.com/avatar/a0d2f862985ed0fd47887be66f5a3e4f?d=identicon\u0026s=64",
      "cl": "319187@main",
      "clUrl": "https://commits.webkit.org/319187@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321786\nrdar://184910487\n\nReviewed by Tim Horton.\n\nWith remote frames, the coordinate conversion in `WebPage::potentialTapAtPosition` was incorrect\nsince it passed root view coordinates to `transformToRemoteFrameCoordinates`, which expects content\ncoordinates.\n\nFix by using the correct coordinate space.\n\n* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:\n(WebKit::WebPage::potentialTapAtPosition):\n\nCanonical link: https://commits.webkit.org/319187@main",
      "email": "richard_robinson2@apple.com",
      "hash": "df95afce02a3cd28c88d6e15ad56d9b6db079dab",
      "subject": "[Site Isolation] `WebPage::potentialTapAtPosition` is missing a coordinate conversion"
    },
    "319188@main": {
      "author": "Justin Michaud",
      "avatar": "https://www.gravatar.com/avatar/36e0433ee725a08f7e1122a6bc584b57?d=identicon\u0026s=64",
      "cl": "319188@main",
      "clUrl": "https://commits.webkit.org/319188@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321537\n\nReviewed by Yusuke Suzuki.\n\nMemoryPressureHandler::singleton() needs this call, otherwise some\ntests fail to run.\n\nCanonical link: https://commits.webkit.org/319188@main",
      "email": "jmichaud@igalia.com",
      "hash": "d500e17bfc2fb9e3db5ba83be53c9b4027d11d2e",
      "subject": "[GTK][TestJSC][testapi] initializeMainThread in testJSC"
    },
    "319189@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "319189@main",
      "clUrl": "https://commits.webkit.org/319189@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321759\n\nReviewed by Mike Wyrzykowski.\n\n* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js:\n(WI.RecordingActionTreeElement._generateDOM):\n(WI.RecordingActionTreeElement._generateDOM.appendJSON):\n(WI.RecordingActionTreeElement._generateDOM.createParameterElement):\nFormat primitive action parameters and values inside structured parameters with `WI.FormattedValue` to get standard syntax highlighting.\nReuse the existing `WI.ObjectPreviewView` styles for object keys.\n\n* Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.css:\n(.item.recording-action \u003e .titles :is(.object-handle, .receiver, .subtitle)):\n(.item.recording-action \u003e .titles .parameter.swizzled):\n(.item.recording-action \u003e .titles .parameter \u003e .formatted-string): Added.\n(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .item.recording-action.selected \u003e .titles :is(.formatted-bigint, .formatted-boolean, .formatted-null, .formatted-number, .formatted-string, .formatted-symbol, .formatted-undefined), body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .item.recording-action.selected \u003e .titles .object-preview .name): Added.\nUse the existing syntax highlighting color for recorded object references and italics for unavailable swizzled placeholders.\nKeep highlighted values readable when an action is selected.\n\nCanonical link: https://commits.webkit.org/319189@main",
      "email": "hi@devinrousso.com",
      "hash": "bf8c27cd3d2a8fe001a1fc907f0b315dba4e9fb3",
      "subject": "Web Inspector: Canvas: add syntax highlighting to recording actions"
    },
    "319190@main": {
      "author": "Andrew Fryer",
      "avatar": "https://www.gravatar.com/avatar/693f8e74251268cad2daff9afdf907ca?d=identicon\u0026s=64",
      "cl": "319190@main",
      "clUrl": "https://commits.webkit.org/319190@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321795\nrdar://184929258\n\nReviewed by Dewei Zhu.\n\nIn 316934@main, I added run-benchmark support for running SP4\nexperimental suites. I inadvertently broke the version string naming\nconvention. Change the benchmark version string name from\n\"Speedometer-4.0\" to \"Speedometer-4\" to follow the convention used by\nSP2 and SP3.\n\n* Tools/Scripts/webkitpy/benchmark_runner/data/patches/webserver/Speedometer4.patch:\n\nCanonical link: https://commits.webkit.org/319190@main",
      "email": "a_fryer@apple.com",
      "hash": "60019eb283e1b9445db576f6f34fa3f0d734dc2b",
      "subject": "Fix SP4 version string in results json"
    },
    "319191@main": {
      "author": "Vassili Bykov",
      "avatar": "https://www.gravatar.com/avatar/73ac31c69ff9a621b733e47253103b8a?d=identicon\u0026s=64",
      "cl": "319191@main",
      "clUrl": "https://commits.webkit.org/319191@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321716\nrdar://184855343\n\nReviewed by Yijia Huang.\n\nParser::useVariable adds a variable to the top set of the m_usedVariables stack.\nIt's not uncommon for the same variable to be added repeatedly, so it helps\nto remember the last added variable and skip the extra work if it gets added again.\n\nCovered by existing tests.\n\nCanonical link: https://commits.webkit.org/319191@main",
      "email": "v_bykov@apple.com",
      "hash": "9f770b1bd5958779d19eec644e05c3c183103e0d",
      "subject": "[JSC] Add a fast path to Parser::useVariable"
    },
    "319192@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "319192@main",
      "clUrl": "https://commits.webkit.org/319192@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321773\nrdar://184896747\n\nReviewed by Alex Christensen and Dan Glastonbury.\n\nUse WebEventPhase, the the actual type name that has the generated\nserializer.\nTreat IPC::MessageName as an expected fundamental type with \"manually\"\nimplemented serialization.\n\n* LayoutTests/ipc/serialized-type-info.html:\n* Source/WebKit/Shared/WebEvent.serialization.in:\n\nCanonical link: https://commits.webkit.org/319192@main",
      "email": "kkinnunen@apple.com",
      "hash": "ea35950376e13b7b99f87485a8fb3be63fddc602",
      "subject": "ipc/serialized-type-info.html is a constant failure (WebWheelEvent::Phase, MessageName)"
    },
    "319193@main": {
      "author": "Brian Weinstein",
      "avatar": "https://www.gravatar.com/avatar/2892a9aaa68f537ee65c6f95ef0768a6?d=identicon\u0026s=64",
      "cl": "319193@main",
      "clUrl": "https://commits.webkit.org/319193@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321797\nrdar://184269255\n\nReviewed by Timothy Hatcher.\n\nThis PR will also have the offscreen page opt out of being throttled or suspended due to it not being visible.\n\n* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIOffscreenCocoa.mm:\n(WebKit::WebExtensionContext::offscreenCreateDocument):\n(WebKit::WebExtensionContext::unloadOffscreenWebView):\n* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:\n(WebKit::WebExtensionContext::webViewConfiguration):\n* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:\n\nCanonical link: https://commits.webkit.org/319193@main",
      "email": "bweinstein@apple.com",
      "hash": "84aa5da69757a9379b0754da91aeee8cf4fabb47",
      "subject": "Put the extension created offscreen web view into a window so it's able to play audio"
    },
    "319194@main": {
      "author": "Taher Ali",
      "avatar": "https://www.gravatar.com/avatar/e104800647d8c98b8c9dbe736b5e1751?d=identicon\u0026s=64",
      "cl": "319194@main",
      "clUrl": "https://commits.webkit.org/319194@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321696\nrdar://184842559\n\nReviewed by Antti Koivisto.\n\nConstantPropertyMap is named after constant()/const(). This class currently\nis the backing store for env() which is one per Document. We rename it\nto Style::EnvironmentVariables, which maintains the same shape but more closer to the\nenv() concept.\n\nThe enum is renamed to UADefinedVariable rather than EnvironmentVariable so a\nclass and an enum in one namespace don't differ by a single letter, and because\n\"UA-defined\" is the distinction that will matter once author-set variables land\nalongside these. Also, we rename the two remaining constant()-era names in the env() parser.\n\nNo behavior change.\n\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/css/parser/CSSSubstitutionParser.cpp:\n(WebCore::isValidEnvVariableName):\n(WebCore::classifyBlock):\n(WebCore::isValidEnvReference):\n(WebCore::isValidConstantName): Deleted.\n(WebCore::isValidConstantReference): Deleted.\n* Source/WebCore/dom/Document.cpp:\n(WebCore::Document::styleEnvironmentVariables const):\n(WebCore::Document::constantProperties const): Deleted.\n* Source/WebCore/dom/Document.h:\n* Source/WebCore/page/Page.cpp:\n(WebCore::Page::setUnobscuredSafeAreaInsets):\n(WebCore::Page::setFullscreenInsets):\n(WebCore::Page::setFullscreenAutoHideDuration):\n* Source/WebCore/style/StyleEnvironmentVariables.cpp: Renamed from Source/WebCore/dom/ConstantPropertyMap.cpp.\n(WebCore::Style::EnvironmentVariables::EnvironmentVariables):\n(WebCore::Style::EnvironmentVariables::values const):\n(WebCore::Style::EnvironmentVariables::nameForVariable const):\n(WebCore::Style::EnvironmentVariables::setValueForVariable):\n(WebCore::Style::EnvironmentVariables::buildValues):\n(WebCore::Style::variableDataForPositivePixelLength):\n(WebCore::Style::variableDataForPositiveDuration):\n(WebCore::Style::EnvironmentVariables::updateSafeAreaInsetVariables):\n(WebCore::Style::EnvironmentVariables::didChangeSafeAreaInsets):\n(WebCore::Style::EnvironmentVariables::updateFullscreenVariables):\n(WebCore::Style::EnvironmentVariables::didChangeFullscreenInsets):\n(WebCore::Style::EnvironmentVariables::setFullscreenAutoHideDuration):\n* Source/WebCore/style/StyleEnvironmentVariables.h: Renamed from Source/WebCore/dom/ConstantPropertyMap.h.\n* Source/WebCore/style/StyleSubstitutionResolver.cpp:\n(WebCore::Style::SubstitutionResolver::propertyValueForVariableName):\n* Source/WebCore/style/StyleDocumentScope.cpp:\n(WebCore::Style::DocumentScope::environmentVariables const):\n* Source/WebCore/style/StyleDocumentScope.h:\n\nCanonical link: https://commits.webkit.org/319194@main",
      "email": "taher_ali@apple.com",
      "hash": "032d7b853259a90954d3e513e9983807fc7eeca0",
      "subject": "Rename ConstantPropertyMap to Style::EnvironmentVariables"
    },
    "319195@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "319195@main",
      "clUrl": "https://commits.webkit.org/319195@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318291\nrdar://157892382\n\nReviewed by Aakash Jain and Sam Sneddon.\n\nRecord what layout tests did on EWS so a later change can consult that history. New failures and\neach category of flake are uploaded with the real per-test result, the commit EWS tested against,\nand enough build context to attribute a row later.\n\nEach report leaves the step that derived it rather than a trailing step of its own. EWS calls\nbuildFinished() as ordinary control flow, and alwaysRun does not survive it, so a step queued\nbehind the analyze steps never runs at all: on a failing build, which is the only interesting\nkind, everything the build observed would be discarded.\n\nA test can flake three ways, and they are not equally damning. It can flake inside a single step's\nown retries, fail one of the two runs and pass the other, or flake on the clean tree, where the\nchange cannot be responsible. Each is reported under its own flaky_type as soon as it is known,\nand a report spanning both runs keeps each run's own outcome alongside the merged sequence, since\nflattening them loses which run saw what.\n\nThe timestamp is per run rather than per build, so the several reports one build makes do not\ncollide on a primary key whose uuid is commit-derived. Two classifications of the same test within\none run collide the same way, so flaky_type joins the flaky table's clustering key. Cassandra\ncannot add a clustering column to an existing table, so that table is created under a new name\ninstead of requiring a manual DROP TABLE wherever it has already been deployed.\n\nReporting is skipped unless the build can describe itself completely enough to be found again.\nThe architecture comes from the machine that ran the tests, not from the builder configuration,\nwhich for the macOS-Sequoia queues names both architectures at once and so matches no machine.\nThe comparison between the two runs is skipped when either hit its failure limit, since a\ntruncated run covers a different subset of the suite and a test missing from one of them was\nnever run rather than passing.\n\nAn unreachable results database never changes a step's verdict.\n\n* Tools/CISupport/ews-build/results_db.py:\n(ResultsDatabase.report_ews): Upload to /api/upload/ews, and log the tests the server says it\nstored rather than the ones we sent.\n(ResultsDatabase):\n(ResultsDatabase.make_request):\n(ResultsDatabase.has_commit):\n* Tools/CISupport/ews-build/steps.py:\n(ResultsDBReportMixin): Reporting shared by every suite; hosts supply the suite and the reports.\n(ResultsDBReportMixin.suite):\n(ResultsDBReportMixin.results_db_query_configuration):\n(ResultsDBReportMixin.results_db_configuration):\n(ResultsDBReportMixin.results_db_details):\n(ResultsDBReportMixin.merged_results): One result per test across runs, keeping each run's own\noutcome as well as the merged sequence.\n(ResultsDBReportMixin.report_to_results_db):\n(ShowIdentifier):\n(ShowIdentifier.run): Read the commit timestamp from git-webkit find --json, so the commit is\nfully defined without reinterpreting a human-readable date.\n(RunWebKitTests):\n(RunWebKitTests.run):\n(RunWebKitTests.runCommand):\n(RunWebKitTests.filter_failures_using_results_db):\n(RunWebKitTestsInStressMode):\n(RunWebKitTestsEWSSiteIsolation):\n(RunWebKitTestsEWSSiteIsolation.results_db_query_configuration):\n(RunWebKitTestsEWSSiteIsolation.filter_failures_using_results_db):\n(ReRunWebKitTests.runCommand):\n(RunWebKitTestsWithoutChange.runCommand):\n(AnalyzeLayoutTestsResults):\n(AnalyzeLayoutTestsResults.report_failure):\n(AnalyzeLayoutTestsResults.run):\n(RunWebKitTestsRepeatFailuresRedTree.runCommand):\n(RunWebKitTestsRepeatFailuresWithoutChangeRedTree.runCommand):\n* Tools/CISupport/ews-build/layout_test_failures.py:\n(LayoutTestFailures): Keep each reported test's result leaf.\n(LayoutTestFailures.__init__):\n(LayoutTestFailures.results_from_string):\n(LayoutTestFailures.results_from_string.collect_tests_that_did_not_pass):\n(LayoutTestFailures.results_from_string.get_failing_tests): Deleted.\n* Tools/CISupport/ews-build/factories_unittest.py:\n(TestExpectedBuildSteps.test_steps_that_report_declare_the_suite_they_run):\n* Tools/CISupport/ews-build/layout_test_failures_unittest.py:\n(TestLayoutTestFailures.test_results_from_string_valid_jsonp):\n(TestLayoutTestFailures.test_results_from_string_valid_json):\n(TestLayoutTestFailures.test_results_records_the_result_leaf_for_every_reported_test):\n(TestLayoutTestFailures):\n(TestLayoutTestFailures.test_results_skips_tests_that_are_neither_failing_nor_flaky):\n(TestLayoutTestFailures.test_results_from_string_split_at_4096):\n* Tools/CISupport/ews-build/steps_unittest.py:\n(BuildStepMixinAdditions):\n(BuildStepMixinAdditions.layout_test_failures):\n(BuildStepMixinAdditions.setup_test_build_step):\n(BuildStepMixinAdditions.setup_test_build_step.record_report_ews):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_queries_include_the_flavor_being_tested):\n(TestFilterLayoutTestFailuresUsingResultsDB):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_site_isolation_queries_across_platforms):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_caps_number_of_results_db_queries):\n(TestRunWebKitTestsRedTree.test_set_properties_when_executed_scope_this_class):\n(TestReportToResultsDB):\n(TestReportToResultsDB.setUp):\n(TestReportToResultsDB.tearDown):\n(TestReportToResultsDB.configureStep):\n(TestReportToResultsDB.test_reports_the_configuration_the_tests_ran_in):\n(TestReportToResultsDB.test_folds_build_provenance_into_details):\n(TestReportToResultsDB.test_authors_fall_back_to_the_patch_author):\n(TestReportToResultsDB.test_reports_the_commit_ews_tested):\n(TestReportToResultsDB.test_commit_is_left_resolvable_without_a_timestamp):\n(TestReportToResultsDB.test_reports_when_the_run_started):\n(TestReportToResultsDB.test_falls_back_to_the_current_time_when_no_run_was_timed):\n(TestReportToResultsDB.test_merge_skips_a_test_no_run_produced_a_result_for):\n(TestReportToResultsDB.test_records_results_against_the_branch_the_change_targets):\n(TestReportToResultsDB.test_reports_nothing_without_a_version):\n(TestReportToResultsDB.test_reports_nothing_without_an_architecture):\n(TestReportToResultsDB.test_reports_the_architecture_the_tests_ran_on):\n(TestReportToResultsDB.test_reports_nothing_for_several_architectures_at_once):\n(TestReportToResultsDB.test_reports_for_a_wildcard_builder_that_resolves_to_apple):\n(TestReportToResultsDB.test_a_step_that_provokes_flakiness_reports_nothing):\n(TestReportToResultsDB.test_an_unreachable_results_database_does_not_fail_the_step):\n(TestReportToResultsDB.test_an_unreachable_results_database_does_not_fail_the_step.explode):\n(TestReportToResultsDB.test_uploads_the_platform_name_queries_ask_for):\n(TestReportToResultsDB.test_merges_a_tests_outcomes_across_runs_without_repeating_them):\n(TestLayoutTestStepsReportAsTheyRun):\n(TestLayoutTestStepsReportAsTheyRun.FakeLogObserver):\n(TestLayoutTestStepsReportAsTheyRun.FakeLogObserver.__init__):\n(TestLayoutTestStepsReportAsTheyRun.FakeLogObserver.getStdout):\n(TestLayoutTestStepsReportAsTheyRun.FakeLogObserver.getStderr):\n(TestLayoutTestStepsReportAsTheyRun.FakeLogObserver.getHeaders):\n(TestLayoutTestStepsReportAsTheyRun.setUp):\n(TestLayoutTestStepsReportAsTheyRun.tearDown):\n(TestLayoutTestStepsReportAsTheyRun.configureStep):\n(TestLayoutTestStepsReportAsTheyRun.configureStep.fake_filter):\n(TestLayoutTestStepsReportAsTheyRun.reported):\n(TestLayoutTestStepsReportAsTheyRun.test_the_first_run_reports_its_own_flakes):\n(TestLayoutTestStepsReportAsTheyRun.test_the_first_run_records_its_failures_for_later_reports):\n(TestLayoutTestStepsReportAsTheyRun.test_the_rerun_reports_its_flakes_and_what_differed_from_the_first_run):\n(TestLayoutTestStepsReportAsTheyRun.test_the_rerun_reports_no_inter_step_flakes_when_its_own_run_was_truncated):\n(TestLayoutTestStepsReportAsTheyRun.test_the_rerun_reports_no_inter_step_flakes_when_the_first_run_was_truncated):\n(TestLayoutTestStepsReportAsTheyRun.test_the_rerun_reports_no_inter_step_flakes_without_a_first_run_to_compare):\n(TestLayoutTestStepsReportAsTheyRun.test_the_clean_tree_run_reports_flakes_the_change_cannot_have_caused):\n(TestLayoutTestStepsReportAsTheyRun.test_the_redtree_repeat_run_reports_with_change_flakes):\n(TestLayoutTestStepsReportAsTheyRun.test_the_redtree_clean_tree_repeat_run_reports_without_change_flakes):\n(TestLayoutTestStepsReportAsTheyRun.test_the_analyze_step_reports_the_failures_it_attributes_to_the_change):\n(TestRunWebKitTestsRepeatFailuresRedTree.test_set_properties_when_executed_scope_this_class):\n(TestRunWebKitTestsRepeatFailuresWithoutChangeRedTree.test_set_properties_when_executed_scope_this_class):\n(MockLayoutTestFailures): Deleted.\n(MockLayoutTestFailures.__init__): Deleted.\n* Tools/Scripts/libraries/resultsdbpy/resultsdbpy/model/ews_context.py:\n(EWSContext.EWSFlakesByStartTime): flaky_type joins the clustering key, under a new table name\nsince a clustering column cannot be added to an existing table.\n(EWSContext.__init__):\n(EWSContext.record_results):\n(EWSContext.find_for_test):\n(EWSContext.EWSFlakyTestsByStartTime): Deleted.\n(EWSContext.EWSFlakyTestsByStartTime.unpack): Deleted.\n* Tools/Scripts/libraries/resultsdbpy/resultsdbpy/model/ews_context_unittest.py:\n(EWSContextTest):\n(EWSContextTest.test_both_flaky_types_from_one_run_are_kept):\n\nCanonical link: https://commits.webkit.org/319195@main",
      "email": "issacroy05@gmail.com",
      "hash": "4d47d17af08a370737e69269fb7ad8bd63aa9786",
      "subject": "TLF: Report EWS test failures and flakiness to the results database"
    },
    "319196@main": {
      "author": "Rupin Mittal",
      "avatar": "https://www.gravatar.com/avatar/3e3de9845931d2dc844afb00056ec94e?d=identicon\u0026s=64",
      "cl": "319196@main",
      "clUrl": "https://commits.webkit.org/319196@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321694\nrdar://184840625\n\nReviewed by Chris Dumez.\n\nThe test builds five history entries in a single document, then runs three subtests.\nThe first subtest rejectBeforeCommit traverses back four steps to entries[0],\nintercepts with a precommit handler, and has that handler reject.\n\nIt fails the assertion in the precommit handler which checks that the URL/hash\nhaven't changed yet (they must only change once the precommit handler is done\nand the navigation has committed. Them changing is part of the commit):\nFAIL ... \"Error: assert_equals: hash after first async step expected \"#4\" but got \"\"\"\n\nSo our issue is that part of the commit is happening too early.\n\nWhen the navigation happens, FrameLoader::loadItem() is run and it does:\n\nif (sameDocumentNavigation) {\n    ...\n        if (navigation-\u003edispatchTraversalNavigateEvent(item) == Navigation::DispatchResult::Aborted))\n            return;\n        ...\n    }\n}\n...\nif (sameDocumentNavigation) {\n    ...\n    loadSameDocumentItem(item);     // ← runs for Intercepted too\n}\n\nNavigation::dispatchTraversalNavigateEvent() is the part that fires the navigate\nevent, waits for the precommit handlers to finish running, and then finally calls\nNavigation::setupInterceptionState(), which is the Navigation API commit that\nupdates the URL.\n\nFrameLoader::loadSameDocumentItem() is the normal \"apply the history step\" which also\nchanges the URL. The issue is that when a precommit handler exists,\ninnerDispatchNavigateEvent() returns \"Intercepted\" without actually committing.\n\nThis is wrong, the spec expects us to defer the history step when the navigation is\nintercepted and then actually apply the history step as part of committing:\n\nThe traverse navigate event is fired from \"check if unloading is canceled\"\n(https://html.spec.whatwg.org/multipage/browsing-the-web.html#checking-if-unloading-is-canceled):\n\n\u003e Let navigateEventResult be the result of firing a traverse navigate event ...\n  If navigateEventResult is false, return [a non continue status]\n\nFire a traverse navigate event returns false whenever the event was intercepted\n(https://html.spec.whatwg.org/multipage/nav-history-apis.html#fire-a-traverse-navigate-event)\n\nApply the history step then bails on that result\n(https://html.spec.whatwg.org/multipage/browsing-the-web.html#apply-the-history-step)\n\n\u003e The result of checking if unloading is canceled is not continue, then early return.\n\nCommit a navigate event then picks it back up\n(https://html.spec.whatwg.org/multipage/nav-history-apis.html#commit-a-navigate-event)\n\n\u003e Resume applying the traverse history step.\n\nSo we fix this by implementing this deferred commit. When the navigate event is\nfiring, if it is intercepted and has precommit handlers, innerDispatchNavigateEvent()\nwill return \"DeferredCommit\" instead of \"Intercepted\", which lets FrameLoader::loadItem()\nknow that it should stash this item so the history step can be resumed later when we\ncommit after the precommit handlers are done running.\n\nAfter we make this change, the subtest progresses but still fails:\n\nFAIL ... reject before commit  assert_false: navigatesuccess fired expected false got true\n\nWhen tracing the rejectBeforeCommit, we see that both promises are indeed rejected\nand a navigate success is not actually coming from it. It's coming from the initial setup:\n\nThere are 4 history.pushState() calls back to back, each one cancels the navigate event\nof the one before it, except the last one, whose navigate success event is not cancelled\nsince there is no subsequent pushState().\n\nThe issue is that this navigate success arrives a whole task late.\nNavigation::handleSameDocumentNavigation() special-cased exactly pushState's shape —\nnot intercepted, no API method tracker — and scheduled it with\nqueueTask(TaskSource::DOMManipulation, ...) instead of a microtask.\n\nFor a same document navigation (like pushState), the spec says to run the intercept\ncommit handler steps, which fire the navigate success from wait-for-all whcih uses\na microtask:\n(https://html.spec.whatwg.org/multipage/nav-history-apis.html#update-the-navigation-api-entries-for-a-same-document-navigation).\n\nThis special case was initially added by 310748@main which had concerns about creating\na wrapper DeferredPromise which looks to have been resolved by 317203@main. So we\nfix this by removing the special case that uses a task, so that a microtask is used\nas per spec. The tests added in those two commits still pass after this change.\n\nThis makes the rejectBeforeCommit test pass, as well as other tests.\n\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/precommit-handler/precommitHandler-traversal-window-stop-before-commit-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/navigation-api/precommit-handler/precommitHandler-traverse-expected.txt:\n* Source/WebCore/loader/FrameLoader.cpp:\n(WebCore::FrameLoader::clearDeferredTraversal):\n(WebCore::FrameLoader::resumeDeferredTraversal):\n(WebCore::FrameLoader::loadItem):\n* Source/WebCore/loader/FrameLoader.h:\n* Source/WebCore/page/Navigation.cpp:\n(WebCore::Navigation::clearDeferredTraversalIfNeeded):\n(WebCore::Navigation::resumeDeferredTraversalIfNeeded):\n(WebCore::Navigation::abortOngoingNavigation):\n(WebCore::Navigation::setupInterceptionState):\n(WebCore::Navigation::handleSameDocumentNavigation):\n(WebCore::Navigation::runNavigatePrecommitHandlers):\n(WebCore::Navigation::innerDispatchNavigateEvent):\n* Source/WebCore/page/Navigation.h:\n\nCanonical link: https://commits.webkit.org/319196@main",
      "email": "rupin@apple.com",
      "hash": "6ee1aef89dac209e9afdfda943d5585b5ac291e6",
      "subject": "[Navigation API] precommitHandler-traverse.html is failing"
    },
    "319197@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "319197@main",
      "clUrl": "https://commits.webkit.org/319197@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321701\nrdar://184946857\n\nUnreviewed test gardening\n\n* LayoutTests/platform/ios/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319197@main",
      "email": "darbinyan@apple.com",
      "hash": "7f9e9f807dafe69f78f4965c7e0475656a7aab77",
      "subject": "[Gardening]: [iOS] imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/button-in-popover.html is a flaky test failure"
    },
    "319198@main": {
      "author": "Dan Hecht",
      "avatar": "https://www.gravatar.com/avatar/080f47d912b1b34d0be8293f825d132d?d=identicon\u0026s=64",
      "cl": "319198@main",
      "clUrl": "https://commits.webkit.org/319198@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321803\nrdar://184938292\n\nReviewed by Yijia Huang.\n\nRemove some dead code.\n\n* Source/JavaScriptCore/profiler/ProfilerJettisonReason.cpp:\n(WTF::printInternal):\n* Source/JavaScriptCore/profiler/ProfilerJettisonReason.h:\n(JSC::Profiler::isSpeculationFailure):\n\nCanonical link: https://commits.webkit.org/319198@main",
      "email": "dan.hecht@apple.com",
      "hash": "b9d3ef9f6a0fe8ef9770f79a71738902f0e82ae3",
      "subject": "[JSC] Remove dead JettisonDueToProfiledWatchpoint"
    },
    "319199@main": {
      "author": "Franco Vieira de Souza",
      "avatar": "https://www.gravatar.com/avatar/14ed77684c1591a07649be8495cc0ddb?d=identicon\u0026s=64",
      "cl": "319199@main",
      "clUrl": "https://commits.webkit.org/319199@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321737\nrdar://184867143\n\nReviewed by Megan Gardner and Tim Nguyen.\n\nThis patch adds `Style::InheritedRareData::usedUserSelect` as the source\nof truth for `usedUserSelect()``, which used to read\n`Style::InheritedRareData::webkitUserSelect` instead. This is only\nplumbing for a future `-webkit-user-select` unprefixing effort:\n`usedUserSelect` and `webkitUserSelect` here should always remain in\nsync, so no changes is behavior are expected.\n\nusedUserSelect is updated by `Adjuster::adjustUsedUserSelect()`, called by\n`Adjuster::adjust()`. For cases in which `resolveCustomStyle()` might\ncause `adjust()` to be skipped, `adjustUsedUserSelect()` is called\nmanually (on TextControlInnerElement and HTMLTextFormControlElement).\nTest coverage was added specifically for this.\n\nTests: editing/selection/user-select-in-text-control.html\n\n* LayoutTests/editing/selection/user-select-in-text-control-expected.txt: Added.\n* LayoutTests/editing/selection/user-select-in-text-control.html: Added.\n* Source/WebCore/html/HTMLTextFormControlElement.cpp:\n(WebCore::HTMLTextFormControlElement::adjustInnerTextStyle const):\n* Source/WebCore/html/shadow/TextControlInnerElements.cpp:\n(WebCore::TextControlInnerElement::resolveCustomStyle):\n* Source/WebCore/style/StyleAdjuster.cpp:\n(WebCore::Style::Adjuster::adjust const):\n(WebCore::Style::Adjuster::adjustUsedUserSelect const):\n* Source/WebCore/style/StyleAdjuster.h:\n* Source/WebCore/style/StyleDifference.cpp:\n* Source/WebCore/style/computed/StyleComputedStyle.cpp:\n(WebCore::Style::ComputedStyle::usedUserSelect const):\n* Source/WebCore/style/computed/StyleComputedStyleBase+SettersInlines.h:\n(WebCore::Style::ComputedStyleBase::setUsedUserSelect):\n* Source/WebCore/style/computed/StyleComputedStyleBase.h:\n* Source/WebCore/style/computed/data/StyleInheritedRareData.cpp:\n(WebCore::Style::InheritedRareData::InheritedRareData):\n(WebCore::Style::InheritedRareData::operator== const):\n(WebCore::Style::InheritedRareData::dumpDifferences const):\n* Source/WebCore/style/computed/data/StyleInheritedRareData.h:\n\ntemp\n\nCanonical link: https://commits.webkit.org/319199@main",
      "email": "franco_vieira@apple.com",
      "hash": "5c7f87f8da391622fe1cd4d26e99baa86c14c514",
      "subject": "[CSS] Add Style::InheritedRareData::usedUserSelect"
    },
    "319200@main": {
      "author": "Tyler Wilcock",
      "avatar": "https://www.gravatar.com/avatar/9545082e6bed96158a9f52dac6e4b869?d=identicon\u0026s=64",
      "cl": "319200@main",
      "clUrl": "https://commits.webkit.org/319200@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316148\nrdar://178573374\n\nReviewed by Andres Gonzalez.\n\nBefore this change, every main-thread writer acquired m_changeLogLock briefly\nto mutate m_pendingChanges directly. Because the lock was acquired and released\nper-mutation rather than once per logical work cycle, the AX thread could take\na snapshot mid-update-cycle and observe partial state. As an example,\nperformDeferredCacheUpdate calls tree-\u003esetFocusedNodeID(X) (publishing focus\nimmediately), but X's append into m_pendingChanges-\u003eappends is still queued in\nm_unresolvedPendingAppends and only materialized later by\nprocessQueuedNodeUpdates. If the AX thread takes the snapshot between these two writes,\nit observes focusedNodeID = X with no corresponding appends entry and reports\nfocus on a node that isn't in m_readerThreadNodeMap.\n\nThis commit reshapes main-thread writes so the AX thread can never observe a\npartial update. Introduce a two-buffer model:\n\n  - m_workingChanges: main-thread-only, no lock. Writes accumulate here via\n    markDirtyAndGetWorkingChanges().\n  - m_committedChanges: cross-thread, guarded by m_changeLogLock. The AX thread\n    reads only this buffer, via takeCommittedChangesLocked().\n\ncommitWorkingChanges() merges working into committed in a single critical\nsection via PendingChanges::merge(), so a logical work cycle becomes one\nindivisible state change. Field-specific merge semantics mirror how\napplyCommittedChanges consumes each field. Vectors concatenate, sets and maps\nunion, and last-write-wins fields only overwrite when the source wrote this\ncycle.\n\nThe one-shot scheduleQueuedNodeUpdateProcessing() timer drops from 100ms to 17ms, so a\nbatch is processed roughly one frame after its first change.\n\nThe eager-apply dedup flag (m_appliedOrApplyingCommittedChanges) becomes a plain bool\nguarded by m_changeLogLock, and is modified inside the same lock-section that commits\nthe working changes.\n\n* Source/WTF/wtf/SystemTracing.h:\n* Source/WebCore/accessibility/AXCoreObject.cpp:\n(WebCore::AXCoreObject::unignoredChildren):\n* Source/WebCore/accessibility/AXObjectCache.cpp:\n(WebCore::AXObjectCache::onAccessibilityPaintFinished):\n(WebCore::AXObjectCache::dirtyIsolatedTreeRelations):\n(WebCore::AXObjectCache::startUpdateTreeSnapshotTimer):\n(WebCore::AXObjectCache::updateTreeSnapshotTimerFired):\n* Source/WebCore/accessibility/AXObjectCache.h:\n* Source/WebCore/accessibility/AXTreeStore.cpp:\n(WebCore::AXTreeStore\u003cAXIsolatedTree\u003e::applyPendingChangesForAllIsolatedTrees):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:\n(WebCore::AXIsolatedObject::approximateHitTest const):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:\n(WebCore::AXIsolatedTree::createEmpty):\n(WebCore::AXIsolatedTree::createEmptyContent):\n(WebCore::AXIsolatedTree::create):\n(WebCore::AXIsolatedTree::storeTree):\n(WebCore::AXIsolatedTree::removeTreeForFrameID):\n(WebCore::AXIsolatedTree::queueChange):\n(WebCore::AXIsolatedTree::addUnconnectedNode):\n(WebCore::AXIsolatedTree::queueRemovals):\n(WebCore::AXIsolatedTree::queueAppendsAndRemovals):\n(WebCore::AXIsolatedTree::updateNode):\n(WebCore::AXIsolatedTree::updateNodeProperties):\n(WebCore::AXIsolatedTree::overrideNodeProperties):\n(WebCore::AXIsolatedTree::pendingRootNodeID):\n(WebCore::AXIsolatedTree::setPendingRootNodeID):\n(WebCore::AXIsolatedTree::setFocusedNodeID):\n(WebCore::AXIsolatedTree::updateRelations):\n(WebCore::AXIsolatedTree::setSelectedTextMarkerRange):\n(WebCore::AXIsolatedTree::setFrameGeometry):\n(WebCore::AXIsolatedTree::updateFrame):\n(WebCore::AXIsolatedTree::applyPendingChanges):\n(WebCore::AXIsolatedTree::applyPendingChangesUnlessQueuedForDestruction):\n(WebCore::AXIsolatedTree::applyPendingChangesOrTearDown):\n(WebCore::AXIsolatedTree::clearTreeContentsLocked):\n(WebCore::AXIsolatedTree::commitWorkingChanges):\n(WebCore::AXIsolatedTree::takeCommittedChangesLocked):\n(WebCore::AXIsolatedTree::applyCommittedChanges):\n(WebCore::AXIsolatedTree::sortedLiveRegionsDidChange):\n(WebCore::AXIsolatedTree::sortedNonRootWebAreasDidChange):\n(WebCore::AXIsolatedTree::queueNodeUpdate):\n(WebCore::AXIsolatedTree::queueNodeRemoval):\n(WebCore::AXIsolatedTree::processQueuedNodeUpdates):\n(WebCore::AXIsolatedTree::queueRemovalsLocked): Deleted.\n(WebCore::AXIsolatedTree::setPendingRootNodeIDLocked): Deleted.\n(WebCore::AXIsolatedTree::takePendingChangesLocked): Deleted.\n(WebCore::AXIsolatedTree::applyPendingChangesFromSnapshot): Deleted.\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:\n(WebCore::AXIsolatedTree::markRelationsDirty):\n(WebCore::AXIsolatedTree::markMostRecentlyPaintedTextDirty):\n(WebCore::AXIsolatedTree::PendingChanges::setFocusedNodeID):\n(WebCore::AXIsolatedTree::markDirtyAndGetWorkingChanges):\n(WebCore::AXIsolatedTree::PendingChangesAccessor::PendingChangesAccessor): Deleted.\n(WebCore::AXIsolatedTree::PendingChangesAccessor::~PendingChangesAccessor): Deleted.\n(WebCore::AXIsolatedTree::PendingChangesAccessor::operator-\u003e): Deleted.\n(WebCore::AXIsolatedTree::WTF_REQUIRES_LOCK): Deleted.\n\nCanonical link: https://commits.webkit.org/319200@main",
      "email": "tyler_w@apple.com",
      "hash": "30446586d80c473d54cc344b85404af37e1f536c",
      "subject": "AX: Atomically transfer pending tree updates from main thread to AX thread"
    },
    "319201@main": {
      "author": "Gerald Squelart",
      "avatar": "https://www.gravatar.com/avatar/894904f08d85651bf2a76868a4d2f1b3?d=identicon\u0026s=64",
      "cl": "319201@main",
      "clUrl": "https://commits.webkit.org/319201@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321625\nrdar://184755917\n\nReviewed by Mike Wyrzykowski.\n\nThe only missing parts were to ensure that we create an ImageBuffer with\nthe same pixel format as the current context, so that HDR data is not\nclamped.\nAnd ImageBuffer now supports the RGBA16F pixel format.\n\nAdd tests for all combinations of SDR/HDR canvas to SDR/HDR canvas,\ndifferent composition operations, with/without GPU process, and with\naccelerated or unaccelerated rendering.\n\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-display-p3-expected.txt: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-display-p3.html: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-expected.txt: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-no-gpu-process-expected.txt: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated-no-gpu-process.html: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-accelerated.html: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-expected.txt: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-no-gpu-process-expected.txt: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated-no-gpu-process.html: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas-unaccelerated.html: Added.\n* LayoutTests/fast/canvas/hdr/float16-canvas-drawimage-canvas.js: Added.\n(toleranceFor):\n(createContext):\n(fill):\n(verifyPixel):\n(expectedRed):\n(testCrossCanvas):\n(testSelfDraw):\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:\n(WebCore::CanvasRenderingContext2DBase::drawImage):\n(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):\n(WebCore::CanvasRenderingContext2DBase::createCompatibleImageBuffer const):\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:\n* Source/WebCore/platform/graphics/GraphicsContext.cpp:\n(WebCore::GraphicsContext::createImageBuffer const):\n* Source/WebCore/platform/graphics/GraphicsContext.h:\n* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:\n(WebCore::bitmapInfoForPixelFormat):\n(WebCore::ImageBufferCGBitmapBackend::create):\n(WebCore::ImageBufferCGBitmapBackend::createNativeImageReference):\n\nCanonical link: https://commits.webkit.org/319201@main",
      "email": "g_squelart@apple.com",
      "hash": "4067adafd0c995efd469d79f7ad8fc4fc2160ced",
      "subject": "Complete HDR CanvasRenderingContext2DBase::drawImage from 2d canvas"
    },
    "319202@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319202@main",
      "clUrl": "https://commits.webkit.org/319202@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321793\nrdar://184928316\n\nReviewed by Vassili Bykov and Dan Hecht.\n\nmemcpy does not inline itself when count is unknown. And wasm\nmemory.copy is concentrated into operationMemoryCopy instruction even if\nthe size can be small enough. This patch adds super fast copying before\noperationMemoryCopy's `memcpy` to accelerate memory.copy performance.\n\n* Source/JavaScriptCore/b3/B3Operations.cpp:\n(JSC::B3::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):\n\nCanonical link: https://commits.webkit.org/319202@main",
      "email": "ysuzuki@apple.com",
      "hash": "53517eb3a2b824d9cad0e95b1263ee68c8cd9762",
      "subject": "[JSC] Add small-sized fast copy before memcpy in operationMemoryCopy"
    }
  },
  "date": "2026-08-14",
  "days": 1,
  "generatedAt": "2026-08-14T22:05:59Z",
  "markdown": "## Highlights\n- **Web Platform** WebCodecs Image API ships by default, opening image decode and encode paths to the web without flags. [commit 319179@main](https://commits.webkit.org/319179@main)\n- **Web Platform** CSS anchor positioning drops its feature flag, a strong signal the implementation is ready for broader real-world use. [commit 319156@main](https://commits.webkit.org/319156@main)\n- **Rendering** HDR drawImage support lands for 2D canvas, improving fidelity when moving HDR content through canvas pipelines. [commit 319201@main](https://commits.webkit.org/319201@main)\n- **A11y** Accessibility tree updates now transfer atomically from the main thread to the AX thread, which should cut inconsistent snapshots and racey assistive-tech state. [commit 319200@main](https://commits.webkit.org/319200@main)\n- **Networking** WebTransport gains headers and responseHeaders support, filling in a meaningful gap for request metadata and response inspection. [commit 319182@main](https://commits.webkit.org/319182@main)\n- **Security** Site isolation work adds a persistent backend for IsolatedSiteStore, strengthening process isolation state across sessions. [commit 319151@main](https://commits.webkit.org/319151@main)\n- **UI** Cross-site iframe history navigation after persisted session restore is fixed, plugging a nasty silent-drop bug in back-forward behavior. [commit 319165@main](https://commits.webkit.org/319165@main)\n- **DevTools** Web Inspector's Canvas tooling gets better WebGPU visibility with image-copy snapshots, named bitfields, and syntax-highlighted recording actions. [commit 319176@main](https://commits.webkit.org/319176@main) [commit 319174@main](https://commits.webkit.org/319174@main) [commit 319189@main](https://commits.webkit.org/319189@main)\n\n## What landed by area\n\n### CSS and layout\n- **Web Platform** CSS random-item() is now enabled by default. [commit 319180@main](https://commits.webkit.org/319180@main)\n- **Web Platform** random-item() now scopes auto random keys correctly so elements no longer all share one chosen item. [commit 319153@main](https://commits.webkit.org/319153@main)\n- **Web Platform** Anchor positioning removes its feature flag, moving the feature into normal platform surface area. [commit 319156@main](https://commits.webkit.org/319156@main)\n- **Rendering** Grid track growth limits are clamped to base size for non-spanning items, fixing sizing behavior in Grid Formatting Context. [commit 319184@main](https://commits.webkit.org/319184@main)\n- **Rendering** A block-in-inline clearance edge case no longer pushes following content down by its margin incorrectly. [commit 319160@main](https://commits.webkit.org/319160@main)\n- **Rendering** corner-shape gains oppositeCornerScaleFactor, advancing implementation coverage for the feature. [commit 319157@main](https://commits.webkit.org/319157@main)\n- **Rendering** Container style queries on a pseudo-element host stop reading stale style data. [commit 319186@main](https://commits.webkit.org/319186@main)\n- **UI** usedUserSelect is now tracked in inherited rare style data, tightening user-select behavior and follow-on correctness. [commit 319199@main](https://commits.webkit.org/319199@main)\n- **UI** Media controls tests now verify the used value of user-select instead of the computed value, matching the implementation shift. [commit 319170@main](https://commits.webkit.org/319170@main)\n- **Rendering** A Zillow-specific floorplan margin quirk is removed, trimming site-specific compatibility debt. [commit 319158@main](https://commits.webkit.org/319158@main)\n- **Refactor** ConstantPropertyMap is renamed to Style::EnvironmentVariables, making the style system terminology more accurate. [commit 319194@main](https://commits.webkit.org/319194@main)\n\n### Canvas, graphics, and media\n- **Rendering** 2D canvas drawImage is completed for HDR paths, improving end-to-end high dynamic range rendering. [commit 319201@main](https://commits.webkit.org/319201@main)\n- **Rendering** GLib gains Display-P3 canvas color space support, extending wide-gamut canvas work to that port. [commit 319168@main](https://commits.webkit.org/319168@main)\n- **Web Platform** WebCodecs Image API is enabled by default. [commit 319179@main](https://commits.webkit.org/319179@main)\n- **Web Platform** WebCodecs ImageDecoder now rejects its promise for unsupported MIME types instead of failing less cleanly. [commit 319171@main](https://commits.webkit.org/319171@main)\n- **UI** Extension-created offscreen web views are now placed into a window so audio playback can actually start. [commit 319193@main](https://commits.webkit.org/319193@main)\n- **DevTools** Web Inspector Canvas recording now syntax-highlights recorded actions. [commit 319189@main](https://commits.webkit.org/319189@main)\n- **DevTools** Web Inspector Canvas can snapshot WebGPU element image-copy operations. [commit 319176@main](https://commits.webkit.org/319176@main)\n- **DevTools** Web Inspector now shows symbolic names for recorded WebGPU bitfields. [commit 319174@main](https://commits.webkit.org/319174@main)\n- **UI** WebPDFView picks up the simplified regex-based PDF script runner that previously landed elsewhere. [commit 319185@main](https://commits.webkit.org/319185@main)\n\n### JavaScriptCore and Intl\n- **Perf** operationMemoryCopy gets a small-size fast copy path before falling back to memcpy. [commit 319202@main](https://commits.webkit.org/319202@main)\n- **Perf** Parser::useVariable gets a fast path, shaving work from parsing hot paths. [commit 319191@main](https://commits.webkit.org/319191@main)\n- **Refactor** Dead JettisonDueToProfiledWatchpoint code is removed. [commit 319198@main](https://commits.webkit.org/319198@main)\n- **Refactor** The visitWeak naming family is renamed to reconcileWeakReferencesAtGCEnd, which better states the GC phase semantics. [commit 319150@main](https://commits.webkit.org/319150@main)\n- **Refactor** Status and Variant finalize predicates are renamed to isStillLive for clearer lifetime language. [commit 319146@main](https://commits.webkit.org/319146@main)\n- **Web Platform** Intl Hijri calendar handling now computes \"Before Hijra\" from calendar data instead of ICU-rendered text. [commit 319172@main](https://commits.webkit.org/319172@main)\n- **Refactor** Temporal removes constrainMonthCodeInternal and inlines constrainMonthCodeGivenContainment. [commit 319162@main](https://commits.webkit.org/319162@main)\n\n### Navigation, events, and DOM behavior\n- **UI** Cross-site iframe back-forward navigation no longer disappears after restoring a persisted session. [commit 319165@main](https://commits.webkit.org/319165@main)\n- **Web Platform** Focus restore behavior is corrected to match the spec. [commit 319173@main](https://commits.webkit.org/319173@main)\n- **UI** AppKit gesture events now fire correctly when listeners are attached on document. [commit 319177@main](https://commits.webkit.org/319177@main)\n- **UI** Confirming an IME composition can now safely remove its containing positioned element. [commit 319167@main](https://commits.webkit.org/319167@main)\n- **Rendering** Custom Highlight repaints correctly after CSS rule changes. [commit 319169@main](https://commits.webkit.org/319169@main)\n- **Rendering** Custom Highlight also repaints when a highlight range changes via CSS.highlights.set(). [commit 319154@main](https://commits.webkit.org/319154@main)\n\n### Networking, IPC, and process model\n- **Networking** WebTransport adds request headers and responseHeaders support. [commit 319182@main](https://commits.webkit.org/319182@main)\n- **Networking** WebTransportConnectionStats is updated so required members are actually required. [commit 319145@main](https://commits.webkit.org/319145@main)\n- **Networking** API tests now have an HTTP/2 server, which should unblock better protocol coverage. [commit 319178@main](https://commits.webkit.org/319178@main)\n- **Perf** IPC StreamClientConnection drops blocking on the initialization message, reducing startup stalls in that path. [commit 319181@main](https://commits.webkit.org/319181@main)\n- **Security** NetworkProcess cookie IPC authorization is consolidated into one function, reducing policy sprawl in a sensitive path. [commit 319148@main](https://commits.webkit.org/319148@main)\n- **Security** IsolatedSiteStore gets a persistent backend, extending site isolation bookkeeping beyond a single run. [commit 319151@main](https://commits.webkit.org/319151@main)\n- **UI** potentialTapAtPosition now does the missing coordinate conversion under site isolation. [commit 319187@main](https://commits.webkit.org/319187@main)\n- **Perf** RemoteSharedResourceCache now tracks shared NativeImages by reference, which should tighten ownership and reduce waste. [commit 319163@main](https://commits.webkit.org/319163@main)\n\n### Tooling, build, and infrastructure\n- **Build** CMake now resolves WebCore_Private correctly when ENABLE_BACK_FORWARD_LIST_SWIFT is off. [commit 319166@main](https://commits.webkit.org/319166@main)\n- **Build** A follow-up fixes the build after [commit 319115@main](https://commits.webkit.org/319115@main). [commit 319152@main](https://commits.webkit.org/319152@main)\n- **Build** GTK TestJSC testapi now initializes the main thread explicitly. [commit 319188@main](https://commits.webkit.org/319188@main)\n- **Build** The iOS 27 SDKDB baseline is updated. [commit 319155@main](https://commits.webkit.org/319155@main)\n- **Build** WPE's cross-toolchain helper fixes a serial-getty loop on Raspberry Pi bots. [commit 319147@main](https://commits.webkit.org/319147@main)\n- **DevTools** Web Inspector cleans up existing ESLint errors. [commit 319175@main](https://commits.webkit.org/319175@main)\n- **Build** git-webkit apply gains a --reset-author flag for patch application workflows. [commit 319159@main](https://commits.webkit.org/319159@main)\n- **Refactor** TLF now reports EWS failures and flakiness to the results database, improving signal for infrastructure triage. [commit 319195@main](https://commits.webkit.org/319195@main)\n- **Build** Results JSON now reports the correct SP4 version string. [commit 319190@main](https://commits.webkit.org/319190@main)\n\n### Test and gardening fixes\n- **Build** A flaky customizable select popover WPT on iOS is marked and tracked. [bug 321701](https://bugs.webkit.org/show_bug.cgi?id=321701) [commit 319197@main](https://commits.webkit.org/319197@main)\n- **Build** Navigation API precommitHandler-traverse.html failure gets test gardening attention. [bug 321694](https://bugs.webkit.org/show_bug.cgi?id=321694) [commit 319196@main](https://commits.webkit.org/319196@main)\n- **Build** ipc/serialized-type-info.html constant failure is addressed around WebWheelEvent::Phase and MessageName. [bug 321773](https://bugs.webkit.org/show_bug.cgi?id=321773) [commit 319192@main](https://commits.webkit.org/319192@main)\n- **Build** Navigation API traverseTo-detach-between-navigate-and-navigatesuccess.html failure is fixed up. [bug 321639](https://bugs.webkit.org/show_bug.cgi?id=321639) [commit 319183@main](https://commits.webkit.org/319183@main)\n- **Build** Unreviewed test gardening sweeps through the tree for 2026-08-14. [commit 319164@main](https://commits.webkit.org/319164@main)\n- **Build** GLib layout test gardening lands for port-specific stability. [commit 319161@main](https://commits.webkit.org/319161@main)\n- **Build** largest-contentful-paint observe-svg-data-uri-image.html flakiness is tracked on macOS and iOS. [bug 321726](https://bugs.webkit.org/show_bug.cgi?id=321726) [commit 319149@main](https://commits.webkit.org/319149@main)\n\n## Reverts \u0026 Reapplies",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [],
  "since": "2026-08-14",
  "totals": {
    "commits": 58,
    "features": 58,
    "rolls": 0
  },
  "until": "2026-08-14"
}