{
  "commits": {
    "318709@main": {
      "author": "Justin Michaud",
      "avatar": "https://www.gravatar.com/avatar/36e0433ee725a08f7e1122a6bc584b57?d=identicon\u0026s=64",
      "cl": "318709@main",
      "clUrl": "https://commits.webkit.org/318709@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319535\n\nReviewed by Carlos Garcia Campos.\n\n(reland due to macOS regression; now there is no behaviour change on darwin)\n\nPatch 1 of 2, the second removes sched_yield.\n\nRT threads showed a 10% win on MotionMark clamped to two cores. This\ngoes away if you turn off DVFS, so I believe the biggest mechanism\nbehind this is the increased effective clock speed.\n\nWe can recover that by setting the min clamp for DVFS directly. Most WPE\nworkloads probably won't be using DVFS (that is, they will be set to\nperformance), but this seems like the right call to me for desktop anyway.\n\nFinally, in this 2-core case, we use nice to lower the priority of the\njit workers, and this gives us a small but noticable bump on SP3.\nWe use RTKit still to raise the priority of the former RT threads, which\ngives a further small boost.\n\nCanonical link: https://commits.webkit.org/318709@main\n\n* Source/JavaScriptCore/jit/JITWorklistThread.cpp:\n(JSC::JITWorklistThread::JITWorklistThread):\n* Source/JavaScriptCore/wasm/WasmWorklist.cpp:\n* Source/WTF/wtf/AutomaticThread.cpp:\n(WTF::AutomaticThread::AutomaticThread):\n(WTF::AutomaticThread::start):\n* Source/WTF/wtf/AutomaticThread.h:\n* Source/WTF/wtf/PlatformGTK.cmake:\n* Source/WTF/wtf/PlatformJSCOnly.cmake:\n* Source/WTF/wtf/PlatformWPE.cmake:\n* Source/WTF/wtf/Threading.cpp:\n(WTF::Thread::entryPoint):\n(WTF::Thread::create):\n(WTF::Thread::setCurrentThreadIsUserInteractive):\n(WTF::Thread::setCurrentThreadIsUserInitiated):\n(WTF::Thread::setCurrentThreadQOS):\n(WTF::Thread::currentThreadQOS):\n(WTF::Thread::currentThreadIsRealtime):\n* Source/WTF/wtf/Threading.h:\n* Source/WTF/wtf/ThreadingEnums.h:\n(WTF::compilerThreadQOS):\n* Source/WTF/wtf/linux/HighPriorityThreads.cpp: Added.\n(WTF::HighPriorityThreads::singleton):\n(WTF::HighPriorityThreads::HighPriorityThreads):\n(WTF::HighPriorityThreads::registerThread):\n(WTF::HighPriorityThreads::setEnabled):\n(WTF::HighPriorityThreads::applyState):\n(WTF::realTimeKitGetProperty):\n(WTF::HighPriorityThreads::realTimeKitMakeThreadHighPriority):\n(WTF::HighPriorityThreads::scheduleDiscardRealTimeKitProxy):\n(WTF::HighPriorityThreads::discardRealTimeKitProxyTimerFired):\n* Source/WTF/wtf/linux/HighPriorityThreads.h: Renamed from Source/WTF/wtf/linux/RealTimeThreads.h.\n* Source/WTF/wtf/linux/RealTimeThreads.cpp: Removed.\n* Source/WTF/wtf/posix/ThreadingPOSIX.cpp:\n(WTF::schedulingAttributesForQOS):\n(WTF::logSchedulingAttributesFailure):\n(WTF::Thread::establishHandle):\n(WTF::Thread::updateSchedulingAttributes const):\n(WTF::Thread::initializeSchedulingAttributes):\n(WTF::Thread::initializeCurrentTLS):\n* Source/WTF/wtf/win/ThreadingWin.cpp:\n(WTF::Thread::updateSchedulingAttributes const):\n(WTF::Thread::initializeSchedulingAttributes):\n(WTF::Thread::initializeCurrentTLS):\n* Source/WebCore/platform/audio/RealtimeAudioThread.cpp:\n(WebCore::shouldCreateRealtimeThread):\n(WebCore::createMaybeRealtimeAudioThread):\n(): Deleted.\n* Source/WebKit/WebProcess/WebProcess.cpp:\n(WebKit::WebProcess::createWebPage):\n(WebKit::WebProcess::removeWebPage):\n(WebKit::WebProcess::pageActivityStateDidChange):\n* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp:\n(WebKit::WebProcess::platformInitializeProcess):\n* Tools/TestWebKitAPI/Tests/WTF/Threading.cpp:\n(TestWebKitAPI::TEST(WTF_Thread, SchedulingAttributesFollowQOS)):\n(TestWebKitAPI::TEST(WTF_Thread, HighPriorityThreadsRestoresClampWhenReenabled)):\n\nCanonical link: https://commits.webkit.org/319617@main",
      "email": "jmichaud@igalia.com",
      "hash": "9a18171a13fbfc3aea4c53e341edb856eed21f02",
      "subject": "[Linux] Remove RT threads"
    },
    "319549@main": {
      "author": "Cole Carley",
      "avatar": "https://www.gravatar.com/avatar/091dd5641909acc46e581355f491ed34?d=identicon\u0026s=64",
      "cl": "319549@main",
      "clUrl": "https://commits.webkit.org/319549@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322216\nrdar://185452046\n\nReviewed by Zak Ridouh.\n\n319533@main added Quirks::activeQuirks and 319478@main added\nQuirks::activeQuirksForTesting. They have the exact same body.\n\nI removed Quirks::activeQuirksForTesting.\n\n* Source/WebCore/page/Quirks.cpp:\n* Source/WebCore/page/Quirks.h:\n* Source/WebCore/testing/Internals.cpp:\n(WebCore::Internals::activeQuirks const):\n\nCanonical link: https://commits.webkit.org/319549@main",
      "email": "ccarley2@apple.com",
      "hash": "f8256db4f7285a0197304be365633f507bf3977e",
      "subject": "Remove duplicate activeQuirks function"
    },
    "319550@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "319550@main",
      "clUrl": "https://commits.webkit.org/319550@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322223\nrdar://185455432\n\nUnreviewed test gardening.\n\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/319550@main",
      "email": "jespinal23@apple.com",
      "hash": "513cd1b5839d0eef8570e1368d3ec8efb4b78974",
      "subject": "[GARDENING][DEBUG]REGRESSION(318495@main): 3x TestWebKitAPI.SiteIsolation.BrowsingContext*/CrossOriginPopup* (api-tests) is a constant crash."
    },
    "319551@main": {
      "author": "Alex Christensen",
      "avatar": "https://www.gravatar.com/avatar/b087c5dfcb1233e80cad9105fd5a1ac6?d=identicon\u0026s=64",
      "cl": "319551@main",
      "clUrl": "https://commits.webkit.org/319551@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320945\nrdar://166719636\n\nReviewed by Brady Eidson.\n\nThis is the beginning of the implementation of 2-QWACs.\nSee https://www.etsi.org/deliver/etsi_ts/119400_119499/11941105/02.01.01_60/ts_11941105v020101p.pdf\nThis inspects the link header fields of the response to a main resource request,\nand if there's a URL with a rel value of tls-certificate-binding we fetch it and evaluate the response.\nIf the resposne is valid, we will populate WKWebView.qualifiedServerTrust.\nSince the validity check isn't implemented yet, we just reuse the TLS trust for now when testing, but as a\nfollow-up we'll need to do the check and populate WKWebView.qualifiedServerTrust with a trust from the\nfetched response data when testing.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewServerTrustKVC.mm\n\n* Source/WTF/wtf/spi/cocoa/SecuritySPI.h:\n* Source/WebCore/html/LinkRelAttribute.cpp:\n(WebCore::LinkRelAttribute::LinkRelAttribute):\n(WebCore::LinkRelAttribute::isSupported):\n* Source/WebCore/html/LinkRelAttribute.h:\n* Source/WebKit/Configurations/AllowedSPI.toml:\n* Source/WebKit/NetworkProcess/NetworkLoadParameters.h:\n* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:\n(WebKit::NetworkResourceLoader::didFinishLoading):\n(WebKit::NetworkResourceLoader::checkForQualifiedServerTrust):\n* Source/WebKit/NetworkProcess/NetworkResourceLoader.h:\n* Source/WebKit/NetworkProcess/NetworkSession.cpp:\n(WebKit::NetworkSession::NetworkSession):\n* Source/WebKit/NetworkProcess/NetworkSession.h:\n(WebKit::NetworkSession::qualifiedServerTrustDebugEnabledForTesting const):\n* Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h:\n* Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.serialization.in:\n* Source/WebKit/NetworkProcess/QualifiedServerTrustFetch.cpp: Added.\n(WebKit::globalQualifiedServerTrustFetchMap):\n(WebKit::QualifiedServerTrustFetch::keepAliveUntilCompletion):\n(WebKit::QualifiedServerTrustFetch::didReachCompletion):\n(WebKit::qualifiedServerTrustParameters):\n(WebKit::QualifiedServerTrustFetch::QualifiedServerTrustFetch):\n(WebKit::QualifiedServerTrustFetch::willSendRedirectedRequest):\n(WebKit::QualifiedServerTrustFetch::didReceiveResponse):\n(WebKit::QualifiedServerTrustFetch::didReceiveBuffer):\n(WebKit::QualifiedServerTrustFetch::didFinishLoading):\n(WebKit::QualifiedServerTrustFetch::didFailLoading):\n(WebKit::QualifiedServerTrustFetch::cancel):\n(WebKit::QualifiedServerTrustFetch::didSendData):\n* Source/WebKit/NetworkProcess/QualifiedServerTrustFetch.h: Added.\n* Source/WebKit/NetworkProcess/cocoa/SecuritySoftLink.h: Added.\n* Source/WebKit/NetworkProcess/cocoa/SecuritySoftLink.mm: Added.\n* Source/WebKit/PlatformCocoa.cmake:\n* Source/WebKit/Sources.txt:\n* Source/WebKit/SourcesCMakeCocoa.txt:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:\n(-[WKWebView valueForUndefinedKey:]):\n(-[WKWebView qualifiedServerTrust]):\n* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:\n* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:\n(-[_WKWebsiteDataStoreConfiguration qualifiedServerTrustDebugEnabledForTesting]):\n(-[_WKWebsiteDataStoreConfiguration setQualifiedServerTrustDebugEnabledForTesting:]):\n* Source/WebKit/UIProcess/API/Swift/WebPage.swift:\n(qualifiedServerTrust):\n* Source/WebKit/UIProcess/Cocoa/NavigationState.h:\n* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:\n(WebKit::NavigationState::willChangeQualifiedServerTrust):\n(WebKit::NavigationState::didChangeQualifiedServerTrust):\n* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:\n(WebKit::NetworkProcessProxy::receivedQualifiedServerTrust):\n* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:\n* Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in:\n* Source/WebKit/UIProcess/PageLoadState.cpp:\n(WebKit::PageLoadState::commitChanges):\n(WebKit::PageLoadState::didCommitLoad):\n(WebKit::PageLoadState::receivedQualifiedServerTrust):\n* Source/WebKit/UIProcess/PageLoadState.h:\n(WebKit::PageLoadStateObserverBase::willChangeQualifiedServerTrust):\n(WebKit::PageLoadStateObserverBase::didChangeQualifiedServerTrust):\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::receivedQualifiedServerTrust):\n* Source/WebKit/UIProcess/WebPageProxy.h:\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:\n(WebKit::WebsiteDataStore::parameters):\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:\n(WebKit::WebsiteDataStoreConfiguration::copy const):\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:\n(WebKit::WebsiteDataStoreConfiguration::qualifiedServerTrustDebugEnabledForTesting const):\n(WebKit::WebsiteDataStoreConfiguration::setQualifiedServerTrustDebugEnabledForTesting):\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Helpers/cocoa/HTTPServer.h:\n(TestWebKitAPI::HTTPResponse::setHeaderField):\n* Tools/TestWebKitAPI/Helpers/cocoa/HTTPServer.swift:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewServerTrustKVC.mm:\n(-[QualifiedServerTrustObserver observeValueForKeyPath:ofObject:change:context:]):\n(-[QualifiedServerTrustObserver waitUntilQualifiedServerTrustChanged]):\n(TEST(WKWebView, QualifiedServerTrustKVC)):\n* Tools/TestWebKitAPI/Tests/WebKit/WebPage/WebPageTests.swift:\n(WebPageTests.observableProperties):\n(WebPageTests.qualifiedServerTrust):\n\nCanonical link: https://commits.webkit.org/319551@main",
      "email": "achristensen@apple.com",
      "hash": "3dfdbed8e4f07513f241af3aa56fac6a3d2b7810",
      "subject": "Implement 2-QWAC fetching"
    },
    "319552@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319552@main",
      "clUrl": "https://commits.webkit.org/319552@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322211\nrdar://185448059\n\nReviewed by Mark Lam.\n\nx64 needs to extract 128bit result from rdx:rax, but if register\nallocator assigns resultLo = rdx and resultHi = rax, we clobber them.\nThis is the similar pattern to Mod/Div. So let's use PREPARE_FOR_MOD_OR_DIV\nto clobber them and lock them so they are not selected for scratch registers.\n\nTest: JSTests/wasm/stress/bbq-mul-wide-register-pressure.js\n\n* JSTests/wasm/stress/bbq-mul-wide-register-pressure.js: Added.\n(computeExpected):\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::addI64MulWideU):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addI64MulWideS):\n\nCanonical link: https://commits.webkit.org/319552@main",
      "email": "ysuzuki@apple.com",
      "hash": "e88b92e29f0753e644abe33fdbc2b78c051ebf59",
      "subject": "[JSC] Fix BBQ i64.mul_wide register assignment in x64"
    },
    "319553@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319553@main",
      "clUrl": "https://commits.webkit.org/319553@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322212\nrdar://185448549\n\nReviewed by Mark Lam.\n\nFix a wrong assertion here.\n\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.h:\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitModOrDiv):\n\nCanonical link: https://commits.webkit.org/319553@main",
      "email": "ysuzuki@apple.com",
      "hash": "c25fbbd346c41a623bd62984d004b727eccbc605",
      "subject": "[JSC] Fix stale assertion in BBQ"
    },
    "319554@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "319554@main",
      "clUrl": "https://commits.webkit.org/319554@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320186\nrdar://183735232\n\nReviewed by Sam Weinig and Antti Koivisto.\n\nSetting a property to a value that contains an arbitrary substitution function\n(var(), env(), attr(), ...) through the CSSOM kept any trailing whitespace in\nthe serialized value:\n\n    element.style.color = '    var(--a)   ';\n    element.style.color; // \"var(--a)   \" instead of \"var(--a)\"\n\nSuch a value cannot be parsed into a CSSValue, so it is stored as the original\ntoken sequence in a CSSSubstitutionValue and serialized back from those tokens.\nCSSPropertyParser::parseValue only consumed leading whitespace, so the trailing\nwhitespace tokens ended up in the sequence and in its serialization. Values\nthat do parse (e.g. \"red \") were unaffected, as was any value coming from\na style attribute or a style sheet, since CSSParser::consumeDeclaration trims\ntrailing whitespace per the \"consume a declaration\" algorithm, and so does the\nCSSOM path for custom properties in CSSParser::parseCustomPropertyValue.\n\nTrim trailing whitespace in CSSPropertyParser::parseValue as well, which covers\nboth the longhand and the shorthand case. Firefox and Chrome both trim here.\n\nTest: imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference-whitespace.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference-whitespace-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference-whitespace.html: Added.\n* Source/WebCore/css/parser/CSSPropertyParser.cpp:\n(WebCore::CSSPropertyParser::parseValue):\n\nCanonical link: https://commits.webkit.org/319554@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "d140987bf3e107e7bda5dca4eca9082b7569f289",
      "subject": "Trailing whitespace is not trimmed when setting a value containing var() through the CSSOM"
    },
    "319555@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "319555@main",
      "clUrl": "https://commits.webkit.org/319555@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=264037\n\u003crdar://problem/118115749\u003e\n\nReviewed by Qianlang Chen.\n\n* Source/WebInspectorUI/UserInterface/Base/Main.js:\n(WI.showSourceCode):\nAlso add handling for `textRangeToSelect` alongside the existing `positionToReveal`.\n\nCanonical link: https://commits.webkit.org/319555@main",
      "email": "hi@devinrousso.com",
      "hash": "097e21a2ffc49f99f2dba93305cc5b24f2f37554",
      "subject": "Web Inspector: Search results don't select source code line in fetch json"
    },
    "319556@main": {
      "author": "Brent Fulgham",
      "avatar": "https://www.gravatar.com/avatar/c6989a65afef0d015b55c65406e37ccc?d=identicon\u0026s=64",
      "cl": "319556@main",
      "clUrl": "https://commits.webkit.org/319556@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321246\n\u003crdar://180227130\u003e\n\nReviewed by Vitor Roriz.\n\nComplexTextController::adjustGlyphsAndAdvances() replaces CoreText's base advance with the\nfont's space width for treatAsSpace glyphs, but leaves CoreText's glyph origins untouched.\nCoreText only guarantees the sum of its advances and origins, so for a [space, combining mark]\ngrapheme cluster (where it attributes the cluster's whole advance to the space and gives\nthe mark a negative origin) the substitution slides the mark relative to its base instead\nof moving the cluster as a whole.\n\nWith a one-em-wide mark such as U+0336 COMBINING LONG STROKE OVERLAY in Hiragino, the mark\nlands a full em to the left of where CoreText placed it, striking through the preceding glyph.\n\nThis patch addresses this by adding the opposite amount to the origins of the cluster's\ntrailing zero-advance glyphs, so the cluster moves as a unit. Layout advances but ink bounds\nand m_adjustedGlyphs are untouched.\n\nCoreText emits glyphs in visual order, so a right-to-left cluster's marks precede their base\nand the substitution never moves the pen they are positioned against. We do not need to\nmake special corrections for RTL cases. The two new API tests pin that reasoning down: they\nrun the same [space, wide mark] geometry through an LTR and an RTL run, and the RTL one is\nthe case the direction check exists for, since there the glyph preceding a mark is the\nneighboring cluster's base rather than the mark's own.\n\nTests: fast/text/combining-mark-on-space-paint-offset.html\n       TestWebKitAPI.ComplexTextControllerTest.SubstitutedSpaceAdvanceCompensatesFollowingMarkInLTR\n       TestWebKitAPI.ComplexTextControllerTest.SubstitutedSpaceAdvanceDoesNotCompensateInRTL\n\n* LayoutTests/fast/text/combining-mark-on-space-paint-offset-expected.txt: Added.\n* LayoutTests/fast/text/combining-mark-on-space-paint-offset.html: Added.\n* Source/WebCore/platform/graphics/ComplexTextController.cpp:\n(WebCore::ComplexTextController::adjustGlyphsAndAdvances):\n* Tools/TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:\n(TestWebKitAPI::TEST_F):\n\nCanonical link: https://commits.webkit.org/319556@main",
      "email": "bfulgham@apple.com",
      "hash": "8554625dd5ad243cee47dbfb3aaab6a22adebdc0",
      "subject": "[CoreText] Compensate glyph origins when substituting a space's base advance"
    },
    "319557@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "319557@main",
      "clUrl": "https://commits.webkit.org/319557@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321323\nrdar://184362509\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319557@main",
      "email": "jespinal23@apple.com",
      "hash": "08596432dc6484c2058c0448c7e379bf7c867aa2",
      "subject": "[GARDENING][Tahoe]REGRESSION(318278@main): http/tests/websocket/tests/hybi/inspector/before-load.html (layout-tests) is a constant text Failure."
    },
    "319558@main": {
      "author": "Jessica Lee",
      "avatar": "https://www.gravatar.com/avatar/fc717c99321d09f31fb9187418a8ffc5?d=identicon\u0026s=64",
      "cl": "319558@main",
      "clUrl": "https://commits.webkit.org/319558@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322234\nrdar://185463164\n\nReviewed by Ben Nham.\n\nThis function is unused.\n\nNo new tests needed.\n\n* Source/WebKit/webpushd/WebPushDaemon.h:\n* Source/WebKit/webpushd/WebPushDaemon.mm:\n(WebPushD::WebPushDaemon::toPushClientConnection): Deleted.\n\nCanonical link: https://commits.webkit.org/319558@main",
      "email": "jlee53@apple.com",
      "hash": "874800d82e858dc7ee2ab6c8b565d6274add8910",
      "subject": "Remove WebPushDaemon::toPushClientConnection"
    },
    "319559@main": {
      "author": "Sihui Liu",
      "avatar": "https://www.gravatar.com/avatar/fea095a2fb34b599fa6e7d581666903b?d=identicon\u0026s=64",
      "cl": "319559@main",
      "clUrl": "https://commits.webkit.org/319559@main",
      "description": "rdar://172706201\n\nReviewed by Chris Dumez.\n\nEnable WebsiteDataStore::m_storageSiteValidationEnabled by default so NetworkStorageManager validates the site on\nmessages it receives.\n\nReplace MESSAGE_CHECK with STORAGE_MESSAGE_CHECK for site validation checks. STORAGE_MESSAGE_CHECK generates a simulated\ncrash and returns an error instead of terminating the sender process. This blocks storage access from compromised\nprocesses while allowing us to monitor for false positives before upgrading to MESSAGE_CHECK.\n\n* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:\n(WebKit::NetworkStorageManager::persisted):\n(WebKit::NetworkStorageManager::persist):\n(WebKit::NetworkStorageManager::estimate):\n(WebKit::NetworkStorageManager::fileSystemGetDirectory):\n(WebKit::NetworkStorageManager::connectToStorageArea):\n(WebKit::NetworkStorageManager::cancelConnectToStorageArea):\n(WebKit::NetworkStorageManager::disconnectFromStorageArea):\n(WebKit::NetworkStorageManager::setItem):\n(WebKit::NetworkStorageManager::removeItem):\n(WebKit::NetworkStorageManager::clear):\n(WebKit::NetworkStorageManager::openDBRequestCancelled):\n(WebKit::NetworkStorageManager::deleteDatabase):\n(WebKit::NetworkStorageManager::databaseConnectionClosed):\n(WebKit::NetworkStorageManager::getAllDatabaseNamesAndVersions):\n(WebKit::NetworkStorageManager::cacheStorageOpenCache):\n(WebKit::NetworkStorageManager::cacheStorageRemoveCache):\n(WebKit::NetworkStorageManager::cacheStorageAllCaches):\n(WebKit::NetworkStorageManager::cacheStorageReference):\n(WebKit::NetworkStorageManager::cacheStorageDereference):\n(WebKit::NetworkStorageManager::lockCacheStorage):\n(WebKit::NetworkStorageManager::unlockCacheStorage):\n(WebKit::NetworkStorageManager::cacheStorageRetrieveRecords):\n(WebKit::NetworkStorageManager::cacheStorageRemoveRecords):\n(WebKit::NetworkStorageManager::cacheStoragePutRecords):\n(WebKit::NetworkStorageManager::cacheStorageClearMemoryRepresentation):\n* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:\n\nOriginally-landed-as: 305413.905@safari-7624-branch (b2b34862739c). rdar://184745201\nCanonical link: https://commits.webkit.org/319559@main",
      "email": "sihui_liu@apple.com",
      "hash": "df8786e8b6a8fabb2ad9574914a4f33117f8950e",
      "subject": "Enable storage site validation"
    },
    "319560@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "319560@main",
      "clUrl": "https://commits.webkit.org/319560@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321409\n\nReviewed by Yusuke Suzuki.\n\nIn tryConsumeBackReference, the Forward direction speculatively advances the\ninput by matchSize before comparing. When the captured character is non-BMP and\nthe input at that offset is not a valid surrogate pair, readSurrogatePairChecked\nreturns errorCodePoint and we took an early return that only restored the\nposition for Backward, leaving Forward matchSize code units ahead. FixedCount and\nNonGreedy callers overwrite the position afterwards, but the Greedy loop relies\non tryConsumeBackReference to restore it, so a failed iteration consumed input:\n\n    /(\\u{1F601})\\1*$/u.exec(\"\\u{1F601}ab\")        // [\"\\u{1F601}ab\", ...], should be null\n    /(\\u{1F601})(\\1*)?/u.exec(\"\\u{1F601}\\n\\u{1F601}\") // splits the second surrogate pair\n\n280563@main introduced the early return so that errorCodePoint is not passed to\nareCanonicallyEquivalent; 313026@main added the Backward restore. This patch\ninstead guards the comparison with the errorCodePoint check and falls through to\nthe existing mismatch path, which restores the position for both directions.\n\nTest: JSTests/stress/regexp-backreference-greedy-non-bmp-capture-restore-pos.js\n\n* JSTests/stress/regexp-backreference-greedy-non-bmp-capture-restore-pos.js: Added.\n(shouldBe):\n* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:\n(JSC::Yarr::Interpreter::tryConsumeBackReference):\n\nCanonical link: https://commits.webkit.org/319560@main",
      "email": "sosuke@bun.sh",
      "hash": "2165451fd3ee573c8dec57c8e05aac5910ffe877",
      "subject": "[YARR] `tryConsumeBackReference` should restore input position when a surrogate pair read fails in interpreter"
    },
    "319561@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "319561@main",
      "clUrl": "https://commits.webkit.org/319561@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321867\n\nReviewed by Daniel Liu.\n\nA backreference inside a lookbehind sent the whole pattern to the interpreter.\n\nMatched backward, a backreference succeeds when the captured text ends at the current position.\nThe comparison loop runs down instead of up: the capture cursor starts at the capture end, the\nsubject cursor at the current position, each step reads the unit before its cursor and\ndecrements both, and the loop stops at the capture start. The availability check becomes\nindex \u003e= length. The case-insensitive comparisons, the duplicate named group lookup, the\nunicode reads (readCharacter() already decodes backward) and the quantifier bookkeeping are\nthe forward code with the sign of the index moves flipped. Forward code generation is\nunchanged.\n\n                                                 Baseline                  Patched\n\nregexp-lookbehind-backreference             571.5494+-5.9829     ^     52.8080+-0.6471        ^ definitely 10.8232x faster\n\nTests: JSTests/microbenchmarks/regexp-lookbehind-backreference.js\n       JSTests/stress/regexp-lookbehind-jit-backreferences-unicode.js\n       JSTests/stress/regexp-lookbehind-jit-backreferences.js\n\n* JSTests/microbenchmarks/regexp-lookbehind-backreference.js: Added.\n* JSTests/stress/regexp-lookbehind-jit-backreferences-unicode.js: Added.\n(shouldBe):\n(matchOf):\n(indicesOf):\n(matchAllOf):\n* JSTests/stress/regexp-lookbehind-jit-backreferences.js: Added.\n(shouldBe):\n(matchOf):\n(indicesOf):\n(matchAllOf):\n* Source/JavaScriptCore/yarr/YarrJIT.cpp:\n\nCanonical link: https://commits.webkit.org/319561@main",
      "email": "sosuke@bun.sh",
      "hash": "01f04c4fb45608321ce6be8237a0e90a2f487f86",
      "subject": "[YARR] Compile lookbehinds containing backreferences in the JIT"
    },
    "319562@main": {
      "author": "Franco Vieira de Souza",
      "avatar": "https://www.gravatar.com/avatar/14ed77684c1591a07649be8495cc0ddb?d=identicon\u0026s=64",
      "cl": "319562@main",
      "clUrl": "https://commits.webkit.org/319562@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321825\nrdar://184964807\n\nReviewed by Tim Nguyen and Megan Gardner.\n\nSet CSSUserSelectEnabled to stable.\n\nThis also adapts a pair of API test that specifically exercises both\nvalues of this flag, with no change of behavior.\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/CopyRTF.mm:\n(copyAttributedStringFromHTML):\n(TEST(CopyRTF, StripsUserSelectNone)): now assumes the flag is true\n(TEST(CopyRTF, StripsUserSelectNonewithLegacyUserSelectBehavior)): flag off behavior\n(TEST(CopyRTF, StripsUserSelectNoneWithUnprefixedUserSelectEnabled)): Deleted.\n\nCanonical link: https://commits.webkit.org/319562@main",
      "email": "franco_vieira@apple.com",
      "hash": "2f072fbfecffc76a8567e87be967fbb8653e9472",
      "subject": "[CSS] Set CSSUserSelectEnabled to stable"
    },
    "319563@main": {
      "author": "Karl Dubost",
      "avatar": "https://www.gravatar.com/avatar/0c2b3d380fb637f3dd51eda704634b6f?d=identicon\u0026s=64",
      "cl": "319563@main",
      "clUrl": "https://commits.webkit.org/319563@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=313374\nrdar://176146717\n\nReviewed by Nikolas Zimmermann.\n\nSVG 2 lists text-overflow among the presentation attributes that apply to any\nelement in the SVG namespace, so \u003ctext text-overflow=\"ellipsis\"\u003e in markup should\nset the CSS property, the way fill and text-anchor already do. WebKit drops the\nattribute before it reaches style: cssPropertyIdForSVGAttributeName() has no case\nfor it, and svgattrs.in does not carry the name at all.\n\nFix by adding both. The visible effect is narrow but real. foreignObject takes overflow\nhidden from the SVG UA stylesheet and lays out its children with CSS, so\n\u003cforeignObject text-overflow=\"ellipsis\"\u003e ellipsizes an overflowing line where the\nattribute used to be inert, with no style sheet involved. On SVG text nothing renders\ndifferently, because SVG 2 gives text-overflow an effect only where the text element has\na wrapping area, and neither inline-size nor shape-inside is implemented in any engine.\n\nwhite-space, the other attribute named in this bug, is left for bug 293213: the\nsame treatment there would fight the existing xml:space presentational hint, and\nwhich one won would depend on the order the two attributes appear in.\n\nAdd a reftest for the foreignObject case, since the existing upstream coverage only\nreads getComputedStyle and would not notice whether the value reaches the paint. The\ntest sets the attribute and the reference sets the same value in CSS, so the two differ\nonly in how the property arrives. Before the fix the test renders a hard cut and the\nreference an ellipsis; after it they match.\n\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-irrelevant-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-relevant-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/presentation-attributes-unknown-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/text-overflow-presentation-attribute-foreignobject-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/text-overflow-presentation-attribute-foreignobject-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/styling/text-overflow-presentation-attribute-foreignobject.html: Added.\n* Source/WebCore/svg/SVGElement.cpp:\n(WebCore::SVGElement::cssPropertyIdForSVGAttributeName const):\n* Source/WebCore/svg/svgattrs.in:\n\nCanonical link: https://commits.webkit.org/319563@main",
      "email": "karlcow@apple.com",
      "hash": "68d3bd351bbf4df2d7ac0dd477d4093f5410eb5c",
      "subject": "text-overflow should be supported as an SVG presentation attribute"
    },
    "319564@main": {
      "author": "Cole Carley",
      "avatar": "https://www.gravatar.com/avatar/091dd5641909acc46e581355f491ed34?d=identicon\u0026s=64",
      "cl": "319564@main",
      "clUrl": "https://commits.webkit.org/319564@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322151\nrdar://185373690\n\nReviewed by Brent Fulgham.\n\nThis patch has two purposes:\n1. move away from the dispatch map and quirk handler pattern\n2. make it more clear how quirks determine what sites to quirk\n\nInstead of handlers, we keep a static constexpr mapping from the site(s)\nwe want to quirk to the quirked behavior we want for the matches. This\nmaps much better to our eventual goal of representing all the quirks\nin a datafile.\n\nPreviously, URLs were matched in myriad ways, making it difficult to\nrepresent statically. I opted for a structural factory pattern to\ndeclaratively describe matches, which is the new QuirkMatch class.\nThis maps well to a simple syntax that we can enforce and parse in our\ndatafile.\n\nI have started with only the site specific quirks because they migrate\neasily. I believe some of the other global quirks can be converted to this\nnew format in the future.\n\nThis new approach found two dead quirks, that have been re-enabled. Some\nfollow up work is probably necessary to determine if they are actually\nnecessary. Both NeedsGeforcenowWarningDisplayNoneQuirk, and\nNeedsFormControlToBeMouseFocusableQuirk were being skipped in the handler\nunconditionally.\n\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/page/QuirkMatch.h: Added.\n(WebCore::QuirkMatchContext::QuirkMatchContext):\n(WebCore::QuirkMatch::domain):\n(WebCore::QuirkMatch::domains):\n(WebCore::QuirkMatch::host):\n(WebCore::QuirkMatch::hostOrSubdomainOf):\n(WebCore::QuirkMatch::hostEndingWith):\n(WebCore::QuirkMatch::anyTopLevelDomain):\n(WebCore::QuirkMatch::pathContains):\n(WebCore::QuirkMatch::pathStartsWith):\n(WebCore::QuirkMatch::pathOrFragmentContains):\n(WebCore::QuirkMatch::onlyIf):\n(WebCore::QuirkMatch::documentDomainIsOneOf):\n(WebCore::QuirkMatch::matches const):\n(WebCore::QuirkMatch::QuirkMatch):\n(WebCore::QuirkMatch::setPathConstraint):\n(WebCore::QuirkMatch::anyPattern const):\n(WebCore::QuirkMatch::matchesSite const):\n(WebCore::QuirkMatch::matchesPathConstraint const):\n(WebCore::QuirkMatch::matchesDocumentDomain const):\n(WebCore::quirkBehaviors):\n(WebCore::Quirk::apply const):\n(WebCore::QuirkMatch::PatternList::PatternList):\n* Source/WebCore/page/Quirks.cpp:\n* Source/WebCore/page/Quirks.h:\n* Source/WebCore/page/QuirksData.h:\n(WebCore::QuirksData::isSite const):\n(WebCore::QuirksData::addSite):\n* LayoutTests/fast/quirks/active-quirks-by-domain-expected.txt:\n* Tools/TestWebKitAPI/CMakeLists.txt:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WebCore/QuirkMatch.cpp: Added.\n(TestWebKitAPI::matchesURL):\n(TestWebKitAPI::matchesEmbeddedURL):\n(TestWebKitAPI::TEST(QuirkMatchTest, DomainMatchesRegistrableDomain)):\n(TestWebKitAPI::TEST(QuirkMatchTest, DomainUnderstandsMultiLabelPublicSuffixes)):\n(TestWebKitAPI::TEST(QuirkMatchTest, DomainsMatchesAnyPatternInTheList)):\n(TestWebKitAPI::TEST(QuirkMatchTest, HostMatchesExactHostOnly)):\n(TestWebKitAPI::TEST(QuirkMatchTest, HostOrSubdomainOfRespectsLabelBoundaries)):\n(TestWebKitAPI::TEST(QuirkMatchTest, HostEndingWithIgnoresLabelBoundaries)):\n(TestWebKitAPI::TEST(QuirkMatchTest, AnyTopLevelDomainMatchesEveryPublicSuffix)):\n(TestWebKitAPI::TEST(QuirkMatchTest, PathContainsMatchesAnywhereInThePath)):\n(TestWebKitAPI::TEST(QuirkMatchTest, PathStartsWithIsAnchored)):\n(TestWebKitAPI::TEST(QuirkMatchTest, PathOrFragmentContainsSearchesBoth)):\n(TestWebKitAPI::TEST(QuirkMatchTest, OnlyTheLastPathConstraintIsKept)):\n(TestWebKitAPI::TEST(QuirkMatchTest, ConditionIsANDedWithTheSiteMatch)):\n(TestWebKitAPI::TEST(QuirkMatchTest, DocumentDomainIsOneOfMatchesEmbeddedDocuments)):\n(TestWebKitAPI::TEST(QuirkMatchTest, MatchesIgnoreTheDocumentURLByDefault)):\n(TestWebKitAPI::TEST(QuirkMatchTest, RefinementsOfDifferentKindsAreAllANDed)):\n(TestWebKitAPI::TEST(QuirkMatchTest, ConditionStacksWithAPathRefinement)):\n(TestWebKitAPI::TEST(QuirkMatchTest, ContextDerivesValuesFromTheRightURL)):\n(TestWebKitAPI::TEST(QuirkMatchTest, ContextCachesDerivedValues)):\n(TestWebKitAPI::TEST(QuirkMatchTest, HostsWithoutAPublicSuffixFallBackToTheHost)):\n(TestWebKitAPI::TEST(QuirkMatchTest, URLsWithoutAHostMatchNothing)):\n\nCanonical link: https://commits.webkit.org/319564@main",
      "email": "ccarley2@apple.com",
      "hash": "1cbe050130f63c5e6ed103f346a997e8ab8ab251",
      "subject": "Remove handlers for site specific quirks"
    },
    "319565@main": {
      "author": "Basuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/5192a1151c7575317affb7a4633f8d63?d=identicon\u0026s=64",
      "cl": "319565@main",
      "clUrl": "https://commits.webkit.org/319565@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322112\nrdar://185330809\n\nReviewed by Elliott Williams.\n\nConfigurations/CommonBase.xcconfig defines ENGINEERING_BUILD=1 for Debug and Release and 0 for\nProduction, and JSC gates Config::enableRestrictedOptions() on it. Nothing under Source/cmake/\ndefines the macro, so JSC Restricted options (useDollarVM, functionOverrides, dumpJITMemoryPath,\nvalidateAbstractInterpreterState, ...) cannot be set through JSC_* environment variables in a CMake\nbuild. The jsc shell and WebKitTestRunner reach into JSC directly and are unaffected; the broken\ncase is running MiniBrowser or another client against a CMake-built WebKit.\n\nExpose ENGINEERING_BUILD from OptionsCocoa.cmake, unconditionally. CMake does not build the Cocoa\nport for Production, so every configuration it can produce today corresponds to an Xcode\nconfiguration where the macro is 1. The FIXME marks this as the line to revisit if that changes.\n\nNo new tests (build configuration change, no behavior change in shipping builds).\n\n* Source/cmake/OptionsCocoa.cmake:\n\nCanonical link: https://commits.webkit.org/319565@main",
      "email": "basuke@apple.com",
      "hash": "e322518ca67badebab1e4aacd5adb84b6f6eaa47",
      "subject": "[CMake][Cocoa] ENGINEERING_BUILD is never defined, disabling JSC restricted options in all CMake builds"
    },
    "319566@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "319566@main",
      "clUrl": "https://commits.webkit.org/319566@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322188\nrdar://185245461\n\nReviewed by Abrar Rahman Protyasha.\n\nMake several adjustments to DOM-exposed APIs, in the case where both (1) background text extraction\nis enabled, and (2) the requested content mode is `desktop`-class:\n\n• Make `maxTouchPoints` report `0`.\n• Hide TouchEvent-related bindings from JavaScript.\n• Fix the screen dimensions (`screen.{width|height}`) to `window.inner{Width|Height}`.\n\n...to ensure that websites loaded in this configuration on iPhone behave more similarly to Mac.\n\nTest: TextExtractionTests.DesktopClassHardwareEmulationInDesktopContentMode\n\n* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:\n* Source/WebCore/page/LocalFrame.cpp:\n(WebCore::LocalFrame::screenSize const):\n* Source/WebCore/page/Navigator.cpp:\n(WebCore::Navigator::maxTouchPoints const):\n* Source/WebCore/page/Screen.cpp:\n(WebCore::shouldReportScreenSizeAsAvailableScreenSize):\n(WebCore::Screen::availHeight const):\n(WebCore::Screen::availWidth const):\n* Source/WebKit/Shared/WebsitePoliciesData.cpp:\n(WebKit::WebsitePoliciesData::applyToSettings):\n(WebKit::WebsitePoliciesData::applyToDocumentLoader):\n* Source/WebKit/Shared/WebsitePoliciesData.h:\n* Source/WebKit/Shared/WebsitePoliciesData.serialization.in:\n* Source/WebKit/UIProcess/API/APIWebsitePolicies.h:\n* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:\n(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextExtractionTests.mm:\n(TestWebKitAPI::(TextExtractionTests, DesktopClassHardwareEmulationInDesktopContentMode)):\n\nCanonical link: https://commits.webkit.org/319566@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "94f879afe62d38e10d67527e7831a194d568438e",
      "subject": "[Text Extraction] Fix maxTouchPoints, touch-related bindings, and screen size when emulating desktop-class content"
    },
    "319567@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319567@main",
      "clUrl": "https://commits.webkit.org/319567@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322222\nrdar://185455041\n\nReviewed by Yijia Huang.\n\nThis patch optimizes WasmGC array.copy and array.fill.\n\n1. We noticed that they are called frequently with count = 0. So we do\n   bound check etc. in the JIT code and skip calling a function when\n   count = 0. This optimization is done in BBQ and OMG both.\n2. For non-ref types, array.copy can use B3 MemoryCopy operation, which\n   is introduced for `memory.copy` too. For ref-types, we need to call\n   GC-safe memory move operations, so we cannot use it.\n3. For non-ref types, array.fill uses very fast memset operations, using\n   memset_pattern16 / memset_pattern8 / memset_pattern4. For ref-types,\n   we have naive loop as it needs to be GC-safe.\n\nTest: JSTests/wasm/gc/bulk-array-element-types.js\n\n* JSTests/wasm/gc/bulk-array-element-types.js: Added.\n(module):\n(get return):\n(get string_appeared_here):\n(const.cases.get string_appeared_here):\n* JSTests/wasm/gc/bulk-array.js:\n* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayCopy):\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitZeroExtendI32):\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitArrayRangeCheck):\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitGetArraySizeWithNullCheck):\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitArrayElementAddress):\n* Source/JavaScriptCore/wasm/WasmBBQJIT.h:\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayFill):\n* Source/JavaScriptCore/wasm/WasmExceptionType.h:\n(JSC::Wasm::isTypeErrorExceptionType):\n* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:\n(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n(JSC::Wasm::OMGIRGenerator::emitGetArraySize):\n(JSC::Wasm::OMGIRGenerator::emitGetArraySizeWithNullCheck):\n(JSC::Wasm::OMGIRGenerator::emitArrayRangeCheck):\n(JSC::Wasm::OMGIRGenerator::emitArrayElementAddress):\n(JSC::Wasm::repeatedFillByte):\n(JSC::Wasm::OMGIRGenerator::emitArrayFillRange):\n(JSC::Wasm::OMGIRGenerator::addArrayFill):\n(JSC::Wasm::OMGIRGenerator::addArrayCopy):\n* Source/JavaScriptCore/wasm/WasmOperations.cpp:\n(JSC::Wasm::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):\n* Source/JavaScriptCore/wasm/WasmOperations.h:\n\nCanonical link: https://commits.webkit.org/319567@main",
      "email": "ysuzuki@apple.com",
      "hash": "3c0f403d81c9ce38a7f5256f0209f941610de414",
      "subject": "[JSC] Optimize wasm array.copy and array.fill"
    },
    "319569@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "319569@main",
      "clUrl": "https://commits.webkit.org/319569@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=296676\nrdar://157080340\n\nReviewed by Yusuke Suzuki.\n\n`deprecatedReportExtraMemory` and `reportExtraMemoryAllocated` are not\ninterchangeable. `deprecatedReportExtraMemory` adds the cost to\n`m_deprecatedExtraMemorySize`, which keeps contributing to `extraMemorySize()`\nuntil the next full collection zeroes it. `reportExtraMemoryAllocated` adds\nnothing to that total by itself -- it only does `didAllocate()` plus\n`collectIfNecessaryOrDefer()` (and re-reports through the barrier if the owning\ncell is already black). The cost only enters `extraMemorySize()` via the matching\n`reportExtraMemoryVisited()` performed while the owning cell is visited.\n\nSo swapping one for the other without a visit counterpart hides the memory from\nthe collector for good, which is what the comment on\n`Heap::reportExtraMemoryAllocated` warns about: \"Be sure to call both of these\nfunctions: Calling only one may trigger catastropic memory growth.\"\n\nThis patch therefore only converts the call sites whose owning wrapper already\nreports the same cost while being visited. `SourceBuffer`, `HTMLCollection` and\n`NodeList` are annotated `[ReportExtraMemoryCost]`, so CodeGeneratorJS.pm emits\n`visitor.reportExtraMemoryVisited(thisObject-\u003ewrapped().memoryCost())` into their\n`visitChildren()`, and `memoryCost()` already covers exactly what these call\nsites report. They were double counting until now: once into the deprecated\nbucket at allocation time, and again into `m_extraMemorySize` on every\ncollection. `ImageData` adopts `[ReportExtraMemoryCost]` here so its pixel data\nis paired the same way.\n\n* Source/WebCore/Modules/mediasource/SourceBuffer.cpp:\n(WebCore::SourceBuffer::reportExtraMemoryAllocated):\n`SourceBuffer.idl` is `[ReportExtraMemoryCost]` and `memoryCost()` returns\n`sizeof(SourceBuffer) + m_extraMemoryCost`, which is the total this function has\njust recorded, so reporting the delta as allocated is correctly paired.\n\n* Source/WebCore/dom/CollectionIndexCache.cpp:\n(WebCore::reportExtraMemoryAllocatedForCollectionIndexCache):\nEvery `CollectionIndexCache` owner is a `CachedHTMLCollection`, `ChildNodeList`\nor `LiveNodeList`, and both `HTMLCollection.idl` and `NodeList.idl` are\n`[ReportExtraMemoryCost]` with a `memoryCost()` that returns the index cache and\nnamed element cache costs. The capacity deltas reported here are already covered\non the visit side.\n\n* Source/WebCore/html/ImageData.idl:\nAnnotate the interface `[ReportExtraMemoryCost]` so `JSImageData` reports the\npixel data in `finishCreation()` and re-reports it in `visitChildren()`.\n\n* Source/WebCore/html/ImageData.h:\n(WebCore::ImageData::memoryCost const):\n* Source/WebCore/html/ImageData.cpp:\n(WebCore::ImageData::ImageData):\nAdd `memoryCost()`. The generated `visitChildren()` calls it from a GC thread, so\nthe byte length is computed once in the constructor instead of being read off the\narray buffer view on demand: `ArrayBufferView::byteLength()` consults\n`isDetached()` and, for a resizable or growable-shared buffer, dereferences\n`m_buffer`, neither of which is safe to race with a detach. `m_data` is assigned\nonly in the constructor, so a `const size_t` snapshot is accurate for the\nlifetime of the object.\n\n* Source/WebCore/bindings/js/JSImageDataCustom.cpp:\n(WebCore::toJSNewlyCreated):\nDrop the manual report now that the generated wrapper does it, and note where the\nreporting moved to.\n\nCanonical link: https://commits.webkit.org/319569@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "aa27d10f9deaaa9ca8c5e4aec0cfc1cfd4af05eb",
      "subject": "Pair reportExtraMemoryAllocated with reportExtraMemoryVisited for SourceBuffer, collection index caches and ImageData"
    },
    "319570@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319570@main",
      "clUrl": "https://commits.webkit.org/319570@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322226\nrdar://184993354\n\nReviewed by Yijia Huang.\n\nWhen Heap::deleteAllCodeBlocks is called, CodeBlock is forcefully\ndetached from the ScriptExecutable. As a result, many of CallLinkInfo\ncache's Executable -\u003e CodeBlock pair gets broken. When using CachedCall\n/ MicrotaskCall on the stack, this is fine since we use them only after\nentering VMEntryScope, and Heap::deleteAllCodeBlocks cannot be called\nwith VMEntryScope. But MicrotaskCallCache in VM is not scoped with\nVMEntryScope, thus its pairing is important and needs to be cleared when\nHeap::deleteAllCodeBlocks is called.\n\nWe are doing the same thing for Wasm's DataIC below, and we need to do\nthe same for VM's MicrotaskCallCache. This patch clears that cache in\nHeap::deleteAllCodeBlocks.\n\nTest: JSTests/stress/microtask-call-cache-delete-all-code.js\n\n* JSTests/stress/microtask-call-cache-delete-all-code.js: Added.\n(shouldBe):\n(async generator):\n(async sum):\n(sum.then):\n* Source/JavaScriptCore/heap/Heap.cpp:\n(JSC::Heap::deleteAllCodeBlocks):\n* Source/JavaScriptCore/interpreter/MicrotaskCall.cpp:\n(JSC::MicrotaskCall::clear):\n(JSC::MicrotaskCall::reconcileWeakReferencesAtGCEnd):\n* Source/JavaScriptCore/interpreter/MicrotaskCall.h:\n* Source/JavaScriptCore/runtime/CodeCache.h:\n(JSC::CodeCache::clear):\n* Source/JavaScriptCore/runtime/MicrotaskQueue.cpp:\n(JSC::MicrotaskQueue::drainImpl):\n* Source/JavaScriptCore/runtime/VM.cpp:\n(JSC::VM::clearMicrotaskCallCaches):\n* Source/JavaScriptCore/runtime/VM.h:\n\nCanonical link: https://commits.webkit.org/319570@main",
      "email": "ysuzuki@apple.com",
      "hash": "75a9d414a4a8b98d26840162d103eb16227eaeb6",
      "subject": "[JSC] Clear MicrotaskCallCache in VM when CodeBlock gets detached"
    },
    "319571@main": {
      "author": "Ben Nham",
      "avatar": "https://www.gravatar.com/avatar/dc0914eabf69047ee3397794c2d17bf7?d=identicon\u0026s=64",
      "cl": "319571@main",
      "clUrl": "https://commits.webkit.org/319571@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321947\nrdar://185124281\n\nReviewed by Per Arne Vollan.\n\nAfter 318650@main, we now mark the site for processes associated with a process swap on navigation\nresponse correctly (e.g. swap due to COOP response header or forced EnhancedSecurity mode). This\nmeans findReusableSuspendedPageProcess can now select those processes for reuse, while it could not\nin the past.\n\nThis causes issues if one of those processes is subsequently selected for reuse in\nperformProcessSwapForNavigationResponse. That method does not clear suspended pages associated with\nthe current navigating page from the destination WebProcess. This can leave the destination\nWebProcess in a state where it has both a suspended WebPage and a non-suspended WebPage associated\nwith the same identifier, which causes multiple asserts to trip in debug API tests.\n\nFix this by making performProcessSwapForNavigationResponse clear any suspended pages from the\nprocess completing the navigation. This replicates logic that already exists in\ndecidePolicyForNavigationAction.\n\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):\n(WebKit::WebPageProxy::removeSuspendedPagesBeforeNavigation):\n(WebKit::WebPageProxy::performProcessSwapForNavigationResponse):\n* Source/WebKit/UIProcess/WebPageProxy.h:\n* TestExpectations/apitests:\n\nCanonical link: https://commits.webkit.org/319571@main",
      "email": "nham@apple.com",
      "hash": "c73014505affe2bd1a831719b86068cc07dcde4a",
      "subject": "REGRESSION(318650@main): process swap on navigation response can reuse a process that already hosts the navigating page"
    },
    "319572@main": {
      "author": "Sergey Rubanov",
      "avatar": "https://www.gravatar.com/avatar/d04164fa4e06ce85533085f24c766e17?d=identicon\u0026s=64",
      "cl": "319572@main",
      "clUrl": "https://commits.webkit.org/319572@main",
      "description": "Reviewed by Yusuke Suzuki.\n\nUpstream wasm-js-api.idl matches the JS API: Exception.getArg takes\n(Tag, unsigned long). The imported snapshot still has getArg(unsigned\nlong), so idlharness expects length 1.\n\nAlso picks up AllowSharedBufferSource on compile, validate, and\ninstantiate.\n\nUpstream: https://github.com/web-platform-tests/wpt/commit/db80bd24a77f1b5f8ba40a5b320dec3720a37c8d\n\n* LayoutTests/imported/w3c/web-platform-tests/interfaces/wasm-js-api.idl:\n* LayoutTests/imported/w3c/web-platform-tests/wasm/jsapi/idlharness.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/wasm/jsapi/idlharness.any.worker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/wasm/webapi/idlharness.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/wasm/webapi/idlharness.any.worker-expected.txt:\n\nCanonical link: https://commits.webkit.org/319572@main",
      "email": "chi187@gmail.com",
      "hash": "c546092ed0e8df28c6bd9c8a18b8a247fa9b68be",
      "subject": "[WPT] Import wasm-js-api.idl from upstream"
    },
    "319573@main": {
      "author": "Kristian Monsen",
      "avatar": "https://www.gravatar.com/avatar/d9b02ca94d143b7dd6118be4dbc4aa06?d=identicon\u0026s=64",
      "cl": "319573@main",
      "clUrl": "https://commits.webkit.org/319573@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315529\nrdar://177692338\n\nReviewed by Per Arne Vollan, Zak Ridouh, and Chris Dumez.\n\nActiveDOMObject::stop() and suspend() are called from within ScriptExecutionContext::forEachActiveDOMObject, which holds a\nScriptDisallowedScope that prohibits JavaScript from running. The previous SpeechSynthesis::stop() and suspend() implementations both called\ncancel(), which synchronously fires error events on every queued utterance. In a debug build this trips the ScriptDisallowedScope assertion;\nin a release build it silently executes JS listeners during a scope that is supposed to forbid it.\n\nThe fix introduces stopPlatformSpeech(), called by both stop() and suspend(), which clears the utterance queue and nulls\nm_currentSpeechUtterance without firing any events, then tells the platform/client to cancel. Any subsequent completion callbacks from the\nplatform find m_currentSpeechUtterance null and return early in handleSpeakingCompleted().\n\nA secondary crash was found where PlatformSpeechSynthesizerMock::cancel() calls speakingErrorOccurred() synchronously, re-entering\nhandleSpeakingCompleted() before the caller has returned. Since stopPlatformSpeech() nulls m_currentSpeechUtterance before calling cancel, the\nre-entrant call arrived with a null current utterance and hit the ASSERT(m_currentSpeechUtterance) in handleSpeakingCompleted(). The assert is\nreplaced with an early return for the null case.\n\nTwo layout tests are added: one verifying that speech is silently cancelled when a page enters the back/forward cache (triggering suspend()), and\none verifying no crash when stop() is called on a SpeechSynthesis that holds an utterance created in a different document. An existing fuzzer-crash\ntest is also fixed: it was previously passing only because a teardown crash happened to occur after notifyDone() was already called, masking the\ncrash. It is rewritten to wait for the utterance's end or error event before calling notifyDone(), so any crash in the speech completion path is\ncaught as a real failure.\n\nTest: fast/speechsynthesis/speech-synthesis-stop-cross-document-utterance-crash.html\n\n* LayoutTests/fast/speechsynthesis/speech-synthesis-speak-fuzzer-crash.html:\n* LayoutTests/fast/speechsynthesis/speech-synthesis-stop-cross-document-utterance-crash-expected.txt: Added.\n* LayoutTests/fast/speechsynthesis/speech-synthesis-stop-cross-document-utterance-crash.html: Added.\n* LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak-fuzzer-crash-expected.png: Added.\n* Source/WebCore/Modules/speech/SpeechSynthesis.cpp:\n(WebCore::SpeechSynthesis::handleSpeakingCompleted):\n(WebCore::SpeechSynthesis::suspend):\n(WebCore::SpeechSynthesis::stop):\n(WebCore::SpeechSynthesis::stopPlatformSpeech):\n* Source/WebCore/Modules/speech/SpeechSynthesis.h:\n\nOriginally-landed-as: 305413.1055@safari-7624.5-branch (f1fe25fdbdb4). rdar://184744736\nCanonical link: https://commits.webkit.org/319573@main",
      "email": "k_monsen@apple.com",
      "hash": "527353138b7cb1b6d6f8b5c8c9fe5bf52c63c266",
      "subject": "SpeechSynthesis::stop() must not synchronously dispatch error events; fix crash when platform cancel() calls back synchronously"
    },
    "319574@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "319574@main",
      "clUrl": "https://commits.webkit.org/319574@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322149\nrdar://185369722\n\nReviewed by Chris Dumez.\n\nstd::abs() on INT_MIN is undefined behavior, since the result is not\nrepresentable in int. Both area() and unclampedArea() call it directly on\nm_width and m_height.\n\nINT_MIN is reachable: OffscreenCanvas exposes its dimensions as [EnforceRange]\nunsigned long and narrows them to int, so new OffscreenCanvas(0x80000000, 1)\nstores a width of INT_MIN, and drawing into it reaches unclampedArea() through\nCanvasBase::validateArea(). unclampedArea() then returns a garbage value, and\narea() crashes because Checked\u003cunsigned, CrashOnOverflow\u003e rejects the negative\nresult.\n\nMultiply in int64_t before taking the absolute value. The product of two ints\nalways fits in int64_t, so std::abs() is well defined for every input, and\narea() can just bounds-check that product on its way into Checked\u003cunsigned\u003e.\nCanvas behavior is unchanged: both the old and corrected areas exceed\nmaxCanvasArea(), so allocation still fails.\n\nTest: Tools/TestWebKitAPI/Tests/WebCore/IntSizeTests.cpp\n\n* Source/WebCore/platform/graphics/IntSize.h:\n(WebCore::IntSize::area const):\n(WebCore::IntSize::unclampedArea const):\n* Tools/TestWebKitAPI/Tests/WebCore/IntSizeTests.cpp:\n(TestWebKitAPI::TEST(IntSize, UnclampedArea)):\n\nCanonical link: https://commits.webkit.org/319574@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "0fd61004f1b1dcb44797e0e0059910b47be12b85",
      "subject": "IntSize::area() and IntSize::unclampedArea() invoke undefined behavior via std::abs(INT_MIN)"
    },
    "319575@main": {
      "author": "Vitor Roriz",
      "avatar": "https://www.gravatar.com/avatar/5dafdad90c36e85902302c3a586a531c?d=identicon\u0026s=64",
      "cl": "319575@main",
      "clUrl": "https://commits.webkit.org/319575@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322233\nrdar://185462848\n\nReviewed by Brent Fulgham.\n\nTwo clients implement fontStateChanged:\n\nA: FontFace, backing new FontFace('A', 'local(Helvetica)'). It resolves the\nface.loaded promise, so notifying it can run author script.\nB: CSSFontFaceSet, backing document.fonts. It validates the transition it is\nhanded.\n\nsetStatus() passed the m_status member to each client and assigned newStatus only\nafter the loop ended. Script run from A re-enters pump(), which still sees Loading\nand drives setStatus(Success) again, committing m_status. B, visited after that,\ngets Success as its oldState and hits its assertion.\n\nCommitting m_status first gives every client the same pair and makes the nested\npump() skip a transition that is already done.\n\n* Source/WebCore/css/CSSFontFace.cpp:\n(WebCore::CSSFontFace::setStatus):\n* LayoutTests/fast/text/font-face/css-font-face-setstatus-reentrancy-crash.html: Added.\n* LayoutTests/fast/text/font-face/css-font-face-setstatus-reentrancy-crash-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/319575@main",
      "email": "vitor.roriz@apple.com",
      "hash": "64a55fd574c40d8fda92b4f114d2a2afb9f0ec71",
      "subject": "CSSFontFace::setStatus should commit m_status before notifying clients"
    },
    "319576@main": {
      "author": "Kimmo Kinnunen",
      "avatar": "https://www.gravatar.com/avatar/7f063a2c9e40666bfe998109608180b7?d=identicon\u0026s=64",
      "cl": "319576@main",
      "clUrl": "https://commits.webkit.org/319576@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321790\nrdar://184913852\n\nReviewed by Dan Glastonbury.\n\nChange copyNativeImageYFlipped to copyNativeImage. In later commits,\nthis enables the NativeImage be used directly instead of yet another\nNativeImage -\u003e ImageBuffer draw.\n\nThis is work towards being able to use NativeImages for fast\naccess between context types (2d, WebGL, WebGPU, bitmaprenderer).\n\nBefore, the WebGL drawing or display buffer would be used directly\nin the CGImage created by wrapping the CGIOSurfaceContext. Then\nall WebGL draw commands would invoke copy-on-write explicitly through\nthat context. This had the downside that the image was flipped and\nhad to be drawn flipped to extra ImageBuffer and then copied out.\n\nInstead, do a copy + flip at the copyNativeImage() moment.\nBenefits:\n- This is quite much faster than non-copy + flip draw to new copy\n- Does not suffer from copy during next WebGL draw or WebGL\n  context discard.\n- Keeps the data in an IOSurface for later commits to add direct\n  consumption from IOSurfaces.\n\nRequires adding a CG image provider API that is able to return\nIOSurfaces to CA.\n\nMoves CVUtilities.mm createImageFrom32BGRAPixelBuffer to\nmore complete reusable NativeImage::create(CVPixelBufferRef, ...)\nconstructor. Uses CG SPI to be able to return IOSurfaces to CA.\n\nFor contents stored in the NativeImage copy:\n1. Create a IOSurface -backed CVPixelBuffer.\n2. Flip the WebGL rendering with BlitFramebuffer to the IOSurface.\n3. Mark the CVPixelBuffer and its underlying IOSurface as having\n   unpremultiplied content, if needed.\n\n* Source/WebCore/Configurations/AllowedSPI.toml:\n* Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h:\n* Source/WebCore/PlatformCocoa.cmake:\n* Source/WebCore/SourcesCocoa.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:\n(WebCore::WebGLRenderingContextBase::surfaceBufferToImageBuffer):\n(WebCore::WebGLRenderingContextBase::transferToImageBuffer):\n* Source/WebCore/platform/graphics/GraphicsContextGL.cpp:\n(WebCore::GraphicsContextGL::paintToCanvas):\n* Source/WebCore/platform/graphics/GraphicsContextGL.h:\n* Source/WebCore/platform/graphics/NativeImage.h:\n* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:\n(WebCore::GraphicsContextGLANGLE::resolveMultisamplingIfNecessary):\n(WebCore::GraphicsContextGLANGLE::prepareTexture):\n(WebCore::GraphicsContextGLANGLE::clear):\n(WebCore::GraphicsContextGLANGLE::drawArrays):\n(WebCore::GraphicsContextGLANGLE::drawElements):\n(WebCore::GraphicsContextGLANGLE::drawArraysInstanced):\n(WebCore::GraphicsContextGLANGLE::drawElementsInstanced):\n(WebCore::GraphicsContextGLANGLE::blitFramebuffer):\n(WebCore::GraphicsContextGLANGLE::invalidateFramebuffer):\n(WebCore::GraphicsContextGLANGLE::invalidateSubFramebuffer):\n(WebCore::GraphicsContextGLANGLE::drawRangeElements):\n(WebCore::GraphicsContextGLANGLE::clearBufferiv):\n(WebCore::GraphicsContextGLANGLE::clearBufferuiv):\n(WebCore::GraphicsContextGLANGLE::clearBufferfv):\n(WebCore::GraphicsContextGLANGLE::multiDrawArraysANGLE):\n(WebCore::GraphicsContextGLANGLE::multiDrawArraysInstancedANGLE):\n(WebCore::GraphicsContextGLANGLE::multiDrawElementsANGLE):\n(WebCore::GraphicsContextGLANGLE::multiDrawElementsInstancedANGLE):\n(WebCore::GraphicsContextGLANGLE::drawArraysInstancedBaseInstanceANGLE):\n(WebCore::GraphicsContextGLANGLE::drawElementsInstancedBaseVertexBaseInstanceANGLE):\n(WebCore::GraphicsContextGLANGLE::multiDrawArraysInstancedBaseInstanceANGLE):\n(WebCore::GraphicsContextGLANGLE::multiDrawElementsInstancedBaseVertexBaseInstanceANGLE):\n(WebCore::flipPixelBufferRows):\n(WebCore::GraphicsContextGLANGLE::copyNativeImage):\n(WebCore::GraphicsContextGLANGLE::copyNativeImageYFlipped): Deleted.\n(WebCore::GraphicsContextGLANGLE::drawingBufferToPixelBuffer): Deleted.\n(WebCore::GraphicsContextGLANGLE::prepareForDrawingBufferWriteIfBound): Deleted.\n(WebCore::GraphicsContextGLANGLE::prepareForDrawingBufferWrite): Deleted.\n* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:\n* Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm:\n(WebCore::AudioVideoRendererAVFObjC::currentNativeImage const):\n* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:\n(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):\n* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:\n(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):\n* Source/WebCore/platform/graphics/cg/NativeImageCG.cpp:\n(WebCore::releaseImageBlock):\n(WebCore::canSatisfyBlockSetOptions):\n(WebCore::copyImageBlockSet):\n(WebCore::copyIOSurface):\n(WebCore::releaseProviderInfo):\n(WebCore::NativeImage::create):\n* Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h:\n* Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm:\n(WebCore::GraphicsContextGLCocoa::platformInitializeExtensions):\n(WebCore::GraphicsContextGLCocoa::copySurfaceBuffer):\n(WebCore::GraphicsContextGLCocoa::drawingBuffer):\n(WebCore::GraphicsContextGLCocoa::displayBuffer):\n(WebCore::GraphicsContextGLCocoa::copyBuffer):\n(WebCore::GraphicsContextGLCocoa::surfaceBuffer):\n(WebCore::GraphicsContextGLCocoa::createDrawingBuffer):\n(WebCore::GraphicsContextGLCocoa::bindNextDrawingBuffer):\n(WebCore::GraphicsContextGLCocoa::surfaceBufferToVideoFrame):\n(WebCore::alphaInfoForSurfaceBufferContents):\n(WebCore::GraphicsContextGLCocoa::copyNativeImage):\n(WebCore::GraphicsContextGLCocoa::copyNativeImageYFlipped): Deleted.\n(WebCore::GraphicsContextGLCocoa::prepareForDrawingBufferWrite): Deleted.\n* Source/WebCore/platform/graphics/cocoa/IOSurfaceDrawingBuffer.cpp: Removed.\n* Source/WebCore/platform/graphics/cocoa/IOSurfaceDrawingBuffer.h:\n(WebCore::IOSurfaceDrawingBuffer::IOSurfaceDrawingBuffer):\n(WebCore::IOSurfaceDrawingBuffer::operator=):\n(WebCore::IOSurfaceDrawingBuffer::prepareForWrite): Deleted.\n* Source/WebCore/platform/graphics/cv/CVUtilities.h:\n* Source/WebCore/platform/graphics/cv/CVUtilities.mm:\n(WebCore::createImageFrom32BGRAPixelBuffer): Deleted.\n* Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp:\n(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer):\n* Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.h:\n* Source/WebCore/platform/graphics/cv/VideoFrameCV.mm:\n(WebCore::VideoFrame::copyNativeImage const):\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:\n(WebKit::RemoteGraphicsContextGL::copyNativeImage):\n(WebKit::RemoteGraphicsContextGL::copyNativeImageYFlipped): Deleted.\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:\n(WebKit::RemoteGraphicsContextGLProxy::copyNativeImage):\n(WebKit::RemoteGraphicsContextGLProxy::copyNativeImageYFlipped): Deleted.\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:\n* Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:\n(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::getNativeImage):\n* Tools/Scripts/generate-gpup-webgl:\n* Tools/TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:\n(TestWebKitAPI::WebCore::AnyContextAttributeTest::alphaMode const):\n(TestWebKitAPI::WebCore::AnyContextAttributeTest::hasAlpha const):\n(TestWebKitAPI::WebCore::AnyContextAttributeTest::contentsAlphaPremultiplication const):\n(TestWebKitAPI::WebCore::AnyContextAttributeTest::attributes):\n(TestWebKitAPI::TEST_F(GraphicsContextGLCocoaTest, CopyNativeImageNoDrawingBufferReturnsNullptr)):\n(TestWebKitAPI::TEST_F(GraphicsContextGLCocoaTest, CopyNativeImageAfterReshape)):\n(TestWebKitAPI::clearBottomHalf):\n(TestWebKitAPI::TEST_P):\n(TestWebKitAPI::TEST_F(GraphicsContextGLCocoaTest, CopyImageAndMutateDrawingBuffer)):\n(TestWebKitAPI::anyContextAttributeTestName):\n* Tools/TestWebKitAPI/Tests/WebCore/glib/GraphicsContextGLTextureMapper.cpp:\n(TestWebKitAPI::TEST_F(GraphicsContextGLTextureMapperTest, CopyNativeImageNoDrawingBufferReturnsNullptr)):\n(TestWebKitAPI::TEST_F(GraphicsContextGLTextureMapperTest, CopyNativeImageIsNotYFlipped)):\n(TestWebKitAPI::TEST_F(GraphicsContextGLTextureMapperTest, CopyImageAndMutateDrawingBuffer)):\n\nCanonical link: https://commits.webkit.org/319576@main",
      "email": "kkinnunen@apple.com",
      "hash": "fbe51f1e5d75c40d718a1a39ec5f2ca479d9c183",
      "subject": "WebGL: Copy context to NativeImage in straight orientation"
    },
    "319577@main": {
      "author": "Jessica Cheung",
      "avatar": "https://www.gravatar.com/avatar/5c102f093ce6bc01424466a4cfdf1d1f?d=identicon\u0026s=64",
      "cl": "319577@main",
      "clUrl": "https://commits.webkit.org/319577@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322197\nrdar://185436571\n\nReviewed by Aditya Keerthi and Abrar Rahman Protyasha.\n\nCurrrently, when dynamically changing the interactive-widget\nvalue after the keyboard is up, the value will change internally\nbut nothing acts upon the changed value. This is because only events\nwill trigger the update (e.g. bound changing, keyboard invoking).\n\nSo, if detected that the value has differed from the previous\ninteractive-widget value, re-dispatch the view layout size and\nschedule a visible content rect update.\n\nAdd a layout test for this issue and verify it fails without the fix.\nThe test goes through these value changes:\n1. Starts off initially with no value specified\n2. Changes to resizes-content\n3. Changes to overlays-content\n4. Tries to change to resize-content but is invalid, thus falling back\nto resizes-visual\n5. Changes back to resizes-content\n\n* LayoutTests/fast/visual-viewport/ios/interactive-widget/dynamic-meta-tag-mutation-expected.txt: Added.\n* LayoutTests/fast/visual-viewport/ios/interactive-widget/dynamic-meta-tag-mutation.html: Added.\n* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:\n(-[WKWebView _didCommitLayerTree:mainFrameData:pageData:transactionID:]):\n\nCanonical link: https://commits.webkit.org/319577@main",
      "email": "jcheung23@apple.com",
      "hash": "be13f86bc9486fe2d629ea46b67496da3e1057d2",
      "subject": "[interactive-widget] Viewport does not reflect dynamically changed value"
    },
    "319578@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "319578@main",
      "clUrl": "https://commits.webkit.org/319578@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=304068\nrdar://166881240\n\nReviewed by Ryosuke Niwa.\n\nPressing a dead key in an editable element starts a composition, and clicking\noutside the element aborts it, leaving the dead key character in the document. Two\nseparate problems in Editor::setComposition() meant a page could not observe what\nhad happened.\n\nFirst, compositionend was dispatched to document-\u003efocusedElement(). Clicking\noutside the editable element fires focusout before the composition is torn down,\nso there is no focused element left by then and the event was dropped entirely:\nthe composition state was cleared and the text left behind with nothing\ndispatched. Fall back to the element the composition belongs to when focus has\nalready moved. A composition inside a text form control lives in a shadow tree, so\nretarget to the form control rather than to the inner text element.\n\nSecond, on the paths where the event was dispatched, its data was the empty\nstring. Cancelling a composition does not remove the pending composition text from\nthe document: setComposition() skips the deleteSelection() call when the mode is\nCancelComposition, and insertTextForConfirmedComposition() early-returns for the\nempty string it is handed. Report the composition text instead, captured before\nm_compositionNode is cleared.\n\nChrome and Firefox both fire compositionend with the character left in the\ndocument.\n\nThe tests only pass on macOS. Aborting a composition when the selection moves out\nof it is driven by Editor::selectionWillChange(), which calls cancelComposition()\nin EditorMac.mm and is an empty stub for every other port, so nothing tears the\ncomposition down and setComposition() is never reached. That is the same gap\nfast/events/ime-compositionend-on-selection-change.html already tracks as a\nfailure on the GLib ports and iOS, so mark the new tests accordingly.\n\nTests: editing/input/compositionend-after-clicking-outside-editable.html\n       editing/input/compositionend-data-after-aborting-composition.html\n\n* LayoutTests/editing/input/compositionend-after-clicking-outside-editable-expected.txt: Added.\n* LayoutTests/editing/input/compositionend-after-clicking-outside-editable.html: Added.\n* LayoutTests/editing/input/compositionend-data-after-aborting-composition-expected.txt: Added.\n* LayoutTests/editing/input/compositionend-data-after-aborting-composition.html: Added.\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/ios/TestExpectations:\n* Source/WebCore/editing/Editor.cpp:\n(WebCore::Editor::setComposition):\n\nCanonical link: https://commits.webkit.org/319578@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "36cbace2163012041a2e59ae7ad39394b8123775",
      "subject": "Aborting a dead key composition fires no compositionend event, or one with empty data"
    },
    "319579@main": {
      "author": "Phinehas Fuachie",
      "avatar": "https://www.gravatar.com/avatar/900d85de8c325e38975f39115c36bb75?d=identicon\u0026s=64",
      "cl": "319579@main",
      "clUrl": "https://commits.webkit.org/319579@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322145\nrdar://185362319\n\nReviewed by Alex Christensen.\n\nIn-window fullscreen is sized by UA styles in viewport units, which resolve against the element's own\ndocument — the iframe's box under Site Isolation. willEnterFullscreen() normally expands the enclosing\niframe by fullscreening ancestor owner elements, but it walks Frame::ownerElement() and stops at a\nRemoteFrame. Send EnterInWindowFullScreen so the in-window path calls the existing cross-process\nequivalent, enterFullScreenForOwnerElementsInOtherProcesses(). Exit already worked via\nBeganExitFullScreen.\n\nelementEnterFullscreen() only resolves style, so also lay out before replying; otherwise the\nrequesting process's first layout still uses the inline size.\n\nHTMLMediaElement::displayType() did not handle VideoFullscreenModeInWindow and hit\nASSERT_NOT_REACHED(). In-window has no separate presentation surface, so report Normal.\n\nTest: http/tests/site-isolation/viewer-mode-fullscreens-owner-iframe.html\n\n* LayoutTests/http/tests/site-isolation/resources/viewer-mode-fullscreens-owner-iframe-frame.html: Added.\n* LayoutTests/http/tests/site-isolation/viewer-mode-fullscreens-owner-iframe-expected.txt: Added.\n* LayoutTests/http/tests/site-isolation/viewer-mode-fullscreens-owner-iframe.html: Added.\n* LayoutTests/platform/ios/TestExpectations:\n* Source/WebCore/html/HTMLMediaElement.cpp:\n(WebCore::HTMLMediaElement::displayType const):\n* Source/WebKit/Platform/IPC/Connection.h:\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:\n(WebKit::WebFullScreenManagerProxy::enterInWindowFullScreen):\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:\n* Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in:\n* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:\n(WebKit::WebFullScreenManager::performEnterFullScreen):\n(WebKit::WebFullScreenManager::enterFullScreenForOwnerElements):\n\nCanonical link: https://commits.webkit.org/319579@main",
      "email": "pfuachie2@apple.com",
      "hash": "9bf21c1a9cf50180658b540b346fed5fae16bc7d",
      "subject": "[macOS][Site Isolation] Video Viewer is confined to the inline iframe rect instead of filling the web view"
    },
    "319580@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319580@main",
      "clUrl": "https://commits.webkit.org/319580@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322248\nrdar://185480166\n\nReviewed by Sosuke Suzuki.\n\nIf this constant is large enough, addPtr uses scratchRegister, and it\ncan clobber this value which is used before. This does not affect on the\nactual behavior since clobbered one is just used for\nCallProfile::Polymorphic detection, so this just makes affected\ncallsites non optimized state.\n\n* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitIndirectCall):\n\nCanonical link: https://commits.webkit.org/319580@main",
      "email": "ysuzuki@apple.com",
      "hash": "958a13ecadda5806cf85cc0b61904b1d6cb6e868",
      "subject": "[JSC] Avoid clobbering scratchRegister"
    },
    "319581@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319581@main",
      "clUrl": "https://commits.webkit.org/319581@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322246\nrdar://185480157\n\nReviewed by Sosuke Suzuki.\n\nEven if the stored values are constant, we should still emit\nmutatorFence since it can be visited by the concurrent collector.\nThis patch fixes it in BBQ JIT. Fence is correctly emitted in the other\ntiers.\n\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::addStructNewDefault):\n(JSC::Wasm::BBQJITImpl::BBQJIT::addStructNew):\n\nCanonical link: https://commits.webkit.org/319581@main",
      "email": "ysuzuki@apple.com",
      "hash": "ce60d5d618367a814de46344cb0e45696bf27786",
      "subject": "[JSC] Emit mutatorFence in BBQ JIT for WasmGC"
    },
    "319582@main": {
      "author": "Dan Glastonbury",
      "avatar": "https://www.gravatar.com/avatar/fb7cb28bf9f1bc9fc0c3bbf65566efdc?d=identicon\u0026s=64",
      "cl": "319582@main",
      "clUrl": "https://commits.webkit.org/319582@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321761\nrdar://184883077\n\nReviewed by Matt Woodrow.\n\nRenderView::frameView() is a single-line accessor (`return m_frameView.get();`)\nbut was declared WEBCORE_EXPORT and defined out-of-line in RenderView.cpp, so\nevery call site outside that file paid a real call/ret for what should be one\nload.\n\nMoved the definition to LocalFrameViewInlines.h.\n\nNo behavior change.\n\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/page/LocalFrameViewInlines.h:\n(WebCore::RenderView::frameView const):\n* Source/WebCore/rendering/RenderObjectInlines.h:\n* Source/WebCore/rendering/RenderView.cpp:\n(WebCore::RenderView::frameView const): Deleted.\n* Source/WebCore/rendering/RenderView.h:\n* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITest.cpp:\n* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:\n* Source/WebKitLegacy/mac/WebView/WebFullScreenController.mm:\n* Source/WebCore/PlatformCocoa.cmake:\n* Source/WebCore/editing/FrameSelection.cpp:\n* Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:\n* Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp:\n* Source/WebCore/rendering/svg/SVGRenderingContext.cpp:\n\nCanonical link: https://commits.webkit.org/319582@main",
      "email": "djg@apple.com",
      "hash": "50dcb44dfe5ef348e2606337d3536b5a32c63ef4",
      "subject": "Make RenderView::frameView() inline"
    },
    "319583@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "319583@main",
      "clUrl": "https://commits.webkit.org/319583@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322247\n\nReviewed by Yusuke Suzuki.\n\nWTF::weekDay computed (days + 4) % 7, which is signed overflow for\ndays \u003e INT32_MAX - 4. No caller reaches that today because days is\nclipped to +-1e8, but the function is declared for any int32_t.\nISO8601::dayOfWeek carried its own copy of the same modulo, converting\nthe day count through double and Int128 on the way.\n\nCompute the weekday with the multiply-and-shift from Ben Joffe's\narticle [1]: since 7 = 2^3 - 1, x mod 7 equals floor(x * 8 / 7) mod 8,\nso a 64-bit multiply by ceil(2^40 / 7) \u003c\u003c 24, an add of the Thursday\noffset and a shift by 61 yield the weekday. Every step is unsigned\narithmetic, so the result is defined for the whole int32_t range; all\n2^32 inputs were checked against the old formula evaluated in int64_t.\nOn arm64 this is sxtw / madd / lsr instead of a magic-number division\nwith cmp/csel.\n\nMake ISO8601::dayOfWeek build the day count with daysFromYearMonth, as\nTemporalZonedDateTimePrototype already does, and call WTF::weekDay.\nRemove msToWeekDay, which has no callers.\n\n[1]: https://www.benjoffe.com/fast-day-of-week\n\nTests: JSTests/stress/date-get-day-full-range.js\n       JSTests/stress/temporal-plaindate-dayofweek-full-range.js\n\n* JSTests/stress/date-get-day-full-range.js: Added.\n(shouldBe):\n* JSTests/stress/temporal-plaindate-dayofweek-full-range.js: Added.\n(shouldBe):\n(expected.of.cases.dayOfWeekFromLegacy):\n* Source/JavaScriptCore/runtime/ISO8601.cpp:\n(JSC::ISO8601::dayOfWeek):\n* Source/WTF/wtf/DateMath.h:\n(WTF::weekDay):\n(WTF::msToWeekDay): Deleted.\n\nCanonical link: https://commits.webkit.org/319583@main",
      "email": "sosuke@bun.sh",
      "hash": "e1fdc80a34f021efa512e23d136c5727b18687e8",
      "subject": "[JSC] `WTF::weekDay` overflows for days near `INT32_MAX` and is duplicated in Temporal"
    },
    "319584@main": {
      "author": "Kiet Ho",
      "avatar": "https://www.gravatar.com/avatar/d9058b37006dce1f55f91b8ccc82f9a3?d=identicon\u0026s=64",
      "cl": "319584@main",
      "clUrl": "https://commits.webkit.org/319584@main",
      "description": "rdar://185461491\nhttps://bugs.webkit.org/show_bug.cgi?id=322230\n\nReviewed by Tim Nguyen.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/fbb56f5460abe38f6c43d3d3e389eb15b91e0e6b\n\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/charset-2-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/charset-2.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/charset-bom-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/charset-bom.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/charset-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/charset.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/content-type-checking-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/content-type-checking.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/cors-crossorigin-requests-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-parse-error-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-parse-error.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-dynamic-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-dynamic.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/integrity-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/integrity.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/load-error-events-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/load-error-events.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/redirect-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/redirect-relative-urls-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/redirect-relative-urls.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/redirect.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/referrer-policies.sub-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/referrer-policies.sub.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/relative-urls-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/relative-urls.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/credentials-iframe.sub.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/crossorigin-import-parse-error-with-cors.sub.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/crossorigin-import-with-cors.sub.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/crossorigin-import-without-cors.sub.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/css-module-without-attribute-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/css-module-without-assertion-iframe.html.\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/integrity-matches.js:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/integrity-mismatches.js:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/load-error-events.py:\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/redirect-target.css: Added.\n(#target):\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/worker-dynamic-import.sub.js:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/worker.sub.js:\n* LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/w3c-import.log:\n\nCanonical link: https://commits.webkit.org/319584@main",
      "email": "kiet.ho@apple.com",
      "hash": "4920ba85ebfb550373d6239918703cf49fa9bf61",
      "subject": "[CSS Module Scripts] Re-import WPT tests"
    },
    "319585@main": {
      "author": "Ryosuke Niwa",
      "avatar": "https://www.gravatar.com/avatar/ed2c71248fe3ea15d9129f6e9a2a1e85?d=identicon\u0026s=64",
      "cl": "319585@main",
      "clUrl": "https://commits.webkit.org/319585@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322237\n\nReviewed by Geoffrey Garen.\n\nUse __builtin_trap in WTFCrashWithInfo so that static analyzer treats it as \"nodelete\".\n\n* Source/WTF/wtf/Assertions.h:\n\nCanonical link: https://commits.webkit.org/319585@main",
      "email": "rniwa@webkit.org",
      "hash": "386c27f0809cd7f7ab32fdd99d89351c6495489e",
      "subject": "WTFCrashWithInfo should use __builtin_trap under static analysis"
    },
    "319586@main": {
      "author": "Diego Pino Garcia",
      "avatar": "https://www.gravatar.com/avatar/e8cce88637f1a6e79155e8371e24b2e8?d=identicon\u0026s=64",
      "cl": "319586@main",
      "clUrl": "https://commits.webkit.org/319586@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=315925\n\nReviewed by Alexey Proskuryakov.\n\nAt the moment of running the test 'GetRemoteObjectCollectedObject', the\n'maps' collection always contains two elements. The code assummes that\nit's always the element in 'maps' with the highest 'id' the one who\ncorresponds to the global object 'myMap', the target object the test\nneeds to later inspect.\n\nThe test was flaky because the heuristic to retrieve the\n'myMap' object was not correct and sometimes the other map object in the\ncollection was returned instead. Since that object still exists, the test\nfails.\n\nThe test has been refactored to guarantee always the 'myMap' object is\nreturned. To do that, the collection of retainer objects is iterated.\nThe property or variable object with name equals to 'myMap' will be the\none used for inspection.\n\n* LayoutTests/inspector/heap/getRemoteObject.html:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319586@main",
      "email": "dpino@igalia.com",
      "hash": "c8774020913be0fbd355d7e147e1f48389d1ce55",
      "subject": "inspector/heap/getRemoteObject.html is a flaky text failure"
    },
    "319587@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "319587@main",
      "clUrl": "https://commits.webkit.org/319587@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321179\nrdar://184230601\n\nReviewed by Richard Robinson.\n\nWe're building primitives to allow ranges of bytes to be passed safely from C++\nto Swift. Swift will now crash cleanly if a C++ vector is structurally modified\nwhile its data is in scope in Swift.\n\nThis only works for Vectors, not raw spans. Modify PAL crypto to pass vectors\naround instead of spans wherever possible, so that we get the benefit of this\ndynamic lifetime enforcement.\n\n* Source/WebCore/PAL/pal/crypto/CryptoEDKeyBridging.cpp:\n(PAL::Crypto::EdKey::privateToPublic):\n(PAL::Crypto::EdKey::privateToPublicKeyAgreement):\n(PAL::Crypto::EdKey::validateKeyPair):\n(PAL::Crypto::EdKey::validateKeyPairKeyAgreement):\n* Source/WebCore/PAL/pal/crypto/CryptoEDKeyBridging.h:\n* Source/WebCore/PAL/pal/crypto/PlatformECKey.cpp:\n(PAL::Crypto::PlatformECKey::sign const):\n(PAL::Crypto::PlatformECKey::doVerify const):\n(PAL::Crypto::PlatformECKey::importX963Pub):\n(PAL::Crypto::PlatformECKey::importX963Private):\n(PAL::Crypto::PlatformECKey::importCompressedPub):\n* Source/WebCore/PAL/pal/crypto/PlatformECKey.h:\n* Source/WebCore/crypto/cocoa/CryptoAlgorithmECDSACocoa.cpp:\n(WebCore::signECDSACryptoKit):\n(WebCore::verifyECDSACryptoKit):\n* Source/WebCore/crypto/cocoa/CryptoKeyECCocoa.cpp:\n(WebCore::CryptoKeyEC::platformImportRaw):\n(WebCore::CryptoKeyEC::platformImportJWKPrivate):\n(WebCore::CryptoKeyEC::platformImportSpki):\n(WebCore::CryptoKeyEC::platformImportPkcs8):\n* Source/WebCore/crypto/cocoa/CryptoKeyOKPCocoa.cpp:\n(WebCore::CryptoKeyOKP::platformGeneratePair):\n(WebCore::CryptoKeyOKP::platformCheckPairedKeys):\n(WebCore::CryptoKeyOKP::generateJwkX const):\n\nCanonical link: https://commits.webkit.org/319587@main",
      "email": "adrian_taylor@apple.com",
      "hash": "74b4c68442b679c01593c67966182f01e0650948",
      "subject": "Borrow vectors wherever possible in PAL Crypto"
    },
    "319588@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "319588@main",
      "clUrl": "https://commits.webkit.org/319588@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322191\nrdar://185424040\n\nReviewed by Richard Robinson.\n\nThis fixes a couple of things for Windows Swift builds related to\nWebKit_SWIFT_INTEROP_SOURCES.\n\nFirst, one of the C++ files is not compiled on Windows at all, so we need to\ngate that. Secondly, this variable is used to exclude files from unified builds\nusing a regex match that includes the path separator, so we need to include the\nbackslash in that regex.\n\nCanonical link: https://commits.webkit.org/319588@main",
      "email": "adrian_taylor@apple.com",
      "hash": "3dea0502ac2e9c30d4a9b38a6152e0e09c1cb705",
      "subject": "Fix Windows problems with WebKit_SWIFT_INTEROP_SOURCES"
    },
    "319589@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "319589@main",
      "clUrl": "https://commits.webkit.org/319589@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322148\nrdar://185368624\n\nReviewed by Richard Robinson.\n\nTwo improvements to the swiftc wrapper under Windows.\n\n1) Allow flags like /INCREMENTAL to pass through.\n2) Avoid CreateProcess' 32767 character limit.\n\nCanonical link: https://commits.webkit.org/319589@main",
      "email": "adrian_taylor@apple.com",
      "hash": "b296b1e1a8775e072ed3bcb3519b41e1bd83beed",
      "subject": "swiftc-wrapper changes for Windows"
    },
    "319590@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "319590@main",
      "clUrl": "https://commits.webkit.org/319590@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322142\nrdar://185365889\n\nReviewed by Richard Robinson.\n\nEnsure that the Swift C++ importer has dllimport declarations for those data\nsymbols exported from WebCore and JavaScriptCore libraries, such that the Swift\nimporter generates suitable import thunks.\n\nCanonical link: https://commits.webkit.org/319590@main",
      "email": "adrian_taylor@apple.com",
      "hash": "df42e706c77683170210a591f7a49f295ff393c6",
      "subject": "Define dllimport for Windows Swift"
    },
    "319591@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "319591@main",
      "clUrl": "https://commits.webkit.org/319591@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322174\nrdar://185404560\n\nReviewed by Gerald Squelart.\n\nnormalizeSpaces() replaces U+0009 through U+000D with U+0020 for every\nfillText(), strokeText() and measureText() call. It unconditionally built a\nVector\u003cchar16_t\u003e, so Latin-1 input came back 16-bit even though every replaced\ncharacter, and the replacement, is ASCII. That cost two fast paths on every draw\ncall: FontCascade::codePath() returns CodePath::Simple immediately for an 8-bit\nrun rather than scanning every character, and\nTextUtil::containsStrongDirectionalityText(), which gates\ncanUseCachedShapedText(), skips its SIMD bidi scan for 8-bit text.\n\nThe Vector was copied twice as well: String::adopt(Vector\u0026\u0026) only adopts the\nbuffer when the vector's Malloc is StringImplMalloc, and Vector's default is\nVectorBufferMalloc, so it fell through to create(vector.span()).\n\nDispatch on is8Bit() and build the result with String::createUninitialized(),\nfollowing StringImpl::createByReplacingInCharacters(): memcpy the prefix before\nthe first character needing replacement, then copy the remainder with the\nreplacement applied. 8-bit input stays 8-bit, in one allocation and one copy.\n\nAlso collapse isSpaceThatNeedsReplacing() to a range check, since U+0009 through\nU+000D are contiguous. The same characters are matched; the range check is just\nsimpler to read, and clang already compiles both forms to the same code.\n\nNo change in behavior. Covered by existing tests, including\nhtml/canvas/element/text/2d.text.draw.space.collapse.space.html, which is the\nreason U+000B is matched despite not being a space character in the\nspecification.\n\nAdded cases to 2d.text.measure.width.space for strings whose only character\nneeding replacement is the last one, so the index returned by find() is the\nfinal index and the prefix memcpy covers everything before it, down to a lone\nU+0009 where the index is 0 and the prefix is empty. One case measures a\nnon-Latin-1 string both ways to cover the 16-bit path.\n2d.text.measure.actualBoundingBox.whitespace.html already reaches that boundary\nthrough measureText('A' + whitespace), but nothing pinned the resulting width.\n\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/text/2d.text.measure.width.space.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/text/2d.text.measure.width.space.html:\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/text/2d.text.measure.width.space.worker.js:\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/tools/yaml-new/text.yaml:\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:\n(WebCore::isSpaceThatNeedsReplacing):\n(WebCore::createStringByNormalizingSpaces):\n(WebCore::CanvasRenderingContext2DBase::normalizeSpaces):\n\nCanonical link: https://commits.webkit.org/319591@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "effd80c0d048afbb4cf0bb9a67eefa50f392d474",
      "subject": "[Canvas] CanvasRenderingContext2DBase::normalizeSpaces() widens Latin-1 text to UTF-16 and copies it twice"
    },
    "319592@main": {
      "author": "tannal",
      "avatar": "https://www.gravatar.com/avatar/440e4046bc26811d72aa4a34e08385f5?d=identicon\u0026s=64",
      "cl": "319592@main",
      "clUrl": "https://commits.webkit.org/319592@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321998\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/4eeb06f9241da36ca3543dcbd25ce67727262238\n\nReviewed by Frédéric Wang Nélar.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/304-response-recorded.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/META.yml:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-case-insensitive-null-opaque-origin.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-case-insensitive-null-opaque-origin.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-crossorigin-port.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-crossorigin-port.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-match.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-null-opaque-origin-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-null-opaque-origin.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-null-opaque-origin.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-null-opaque-origin.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/__init__.py:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/body-size-cross-origin.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback-that-drop.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-add-then-clear.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-decrease-buffer-during-callback.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-eventually.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-inspect-buffer-during-callback.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-then-decreased.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-then-increased.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/cached-image-gets-single-entry.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/clear-resource-timings.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/clear_resource_timing_functionality-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/clear_resource_timing_functionality.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/connection-reuse.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/connection-reuse.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/content-encoding.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/content-type-minimization.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/content-type.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/cors-preflight.any.js:\n(promise_test.async const):\n(promise_test):\n(checkResourceSizes): Deleted.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-iframe.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-redirects.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/crossorigin-sandwich-TAO.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/crossorigin-sandwich-TAO.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/crossorigin-sandwich-no-TAO.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/crossorigin-sandwich-no-TAO.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/crossorigin-sandwich-partial-TAO.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/crossorigin-sandwich-partial-TAO.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/decoded-body-size-compressed.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any.js: Added.\n(const.fetchAndEatBody):\n(const.accumulateEntries):\n(const.checkDeliveryTypeBase):\n(promise_test):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any.serviceworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/document-domain-no-impact-loader.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/document-domain-no-impact-loader.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/encoded-body-size-cached.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/entries-for-network-errors.sub.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/entry-attributes.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/event-source-timing.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/fetch-cross-origin-redirect.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/frameset-timing.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-failed-commit.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-non-html.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-redirect-without-location.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-sequence-of-events.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-with-download.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/image-sequence-of-events.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/audio.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/dynamic-insertion.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/embed.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/frameset.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/iframe.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/img-srcset.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/img.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/input.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/link.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/misc.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/picture.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/resources/dummy.svg: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/resources/initiator-type-test.js: Added.\n(const.initiator_type_test):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/resources/w3c-import.log: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/script.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/style.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/svg.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/video.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/w3c-import.log: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/workers.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/input-sequence-of-events.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/interim-response-times.h2.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/interim-response-times.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/internal-resources-not-counted.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/link-sequence-of-events.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/load-from-mem-cache-transfer-size.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nested-context-navigations-embed.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nested-context-navigations-iframe.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nested-context-navigations-object.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nested-nav-fallback-timing.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nextHopProtocol-tao-protected.https-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nextHopProtocol-tao-protected.https.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/object-not-found-adds-entry.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/object-not-found-after-cross-origin-redirect.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/opaque-origin.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/ping-rt-entries.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/queue-entry-regardless-buffer-size.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/redirects.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/redirects.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/render-blocking-status-link.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/render-blocking-status-script.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-reload-TAO.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-reload-TAO.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-reload-TAO.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-timing-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-timing-failed-fetch-web-bundle.tentative.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-timing-failed-fetch.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-timing-level1.js:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-timing-tojson-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-timing-tojson.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_match_origin-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_match_origin.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_match_wildcard-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_match_wildcard.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_multi-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_multi.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_multi_wildcard-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_multi_wildcard.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_null-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_null.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_origin-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_origin.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_origin_uppercase-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_origin_uppercase.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_space-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_space.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_wildcard-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_wildcard.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_zero-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_zero.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_cached-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_cached.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_cached.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_connection_reuse-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_connection_reuse.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_connection_reuse.https-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_connection_reuse.https.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_dedicated_worker.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_dynamic_insertion-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_dynamic_insertion.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_hash-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_hash.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_ignore_data_url-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_ignore_data_url.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_initiator_types-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_initiator_types.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_reuse.sub-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_reuse.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_script_types-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_script_types.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_TAO_cross_origin_redirect-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_TAO_cross_origin_redirect.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_buffer_full_when_shrink_buffer_size-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_buffer_full_when_shrink_buffer_size.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_cross_origin_redirect-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_cross_origin_redirect.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_cross_origin_redirect_chain-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_cross_origin_redirect_chain.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_same_origin_redirect-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_same_origin_redirect.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/200.https.asis: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/204_empty.asis: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/205_empty.asis: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/all_resource_types.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/all_resource_types.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/blank_page_green.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/blank_page_green.htm.headers: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/buffer-full-utilities.js:\n(let.appendScript): Deleted.\n(let.waitUntilConditionIsMet.cond.return.new.Promise.resolve.let.checkCondition): Deleted.\n(let.waitForEventToFire.return.new.Promise): Deleted.\n(let.waitForEventToFire): Deleted.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/cacheable-and-validated.py:\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/child_script.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/close.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/compressed-data.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/compressed-js.py: Added.\n(read):\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/connection-reuse-test.js:\n(const.connection_reuse_test.async attribute_test):\n(const.connection_reuse_test):\n(attribute_test.async client): Deleted.\n(attribute_test): Deleted.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/content-encoding-headers.py: Added.\n(read):\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/content-type.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/delay-css.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/delay-load.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/display_paragraph.js: Added.\n(display_paragraph):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/document-domain-no-impact.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/document-navigated.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/document-refreshed.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/document-that-navigates.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/document-that-refreshes.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/download.asis: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/dummy.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/embed-navigate-back.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/embed-navigate.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/embed-refresh.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/empty_style.css: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/entry-invariants.js:\n(const.await_with_timeout.async delay):\n(cleanup):\n(const.attribute_test_internal):\n(const.network_error_entry_test):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/fake_responses.py:\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/foo.text.br: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/foo.text.br.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/foo.text.gz: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/foo.text.gz.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/foo.text.zst: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/foo.text.zst.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/frame-timing.js: Added.\n(test_frame_timing_before_load_event):\n(promise_test):\n(async test_frame_timing_change_src):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/frameset-timing-frame.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/get-resourceID.js: Added.\n(getResourceID):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/green_frame.htm: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/gzip_xml.py:\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/header-delay.h2.py: Added.\n(handle_headers):\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/header-delay.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe-load-from-mem-cache-transfer-size.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe-navigate-back.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe-navigate.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe-post-message.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe-refresh.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe-reload-TAO.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe-reload-TAO.sub.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe-with-delay.sub.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_match_wildcard.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_multi.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_multi_wildcard.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_null.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_origin.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_origin_uppercase.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_space.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_wildcard.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/iframe_TAO_zero.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/import.sub.css: Added.\n(@import \"delay-css.py?delay=):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/importer.css: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/importer.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/importer_async.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/importer_dynamic.css: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/importer_print.css: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/invalid.jpg: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/loading-resource-lib.js: Added.\n(async load_image):\n(fetch_in_function):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/loading-resources-in-posted-task.js: Added.\n(load_resources):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/loading-resources.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/manifest.json: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/message-handler-in-shared-worker.js: Added.\n(const.observe_entry_no_timeout.entryName.const.entry.new.Promise.resolve.new.PerformanceObserver):\n(self.onconnect.async fetch_in_function):\n(self.onconnect.port.onmessage):\n(self.onconnect):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/message-handler-in-worker.js: Added.\n(const.observe_entry_no_timeout.entryName.const.entry.new.Promise.resolve.new.PerformanceObserver):\n(async fetch_in_function):\n(self.onmessage):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/module-script-appender.js: Added.\n(appendModuleScript):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/module-script-imported.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/module-script-importer-classic.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/module-script-importer-module-dynamic.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/module-script-importer-module-static.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/module-script-worker.js: Added.\n(const.observe_entry_no_timeout.entryName.new.Promise.resolve.new.PerformanceObserver):\n(self.onmessage.async await):\n(self.onmessage):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/nested-contexts.js:\n(else):\n(const.setup_navigate_or_refresh):\n(const.setup_navigate_test):\n(const.setup_refresh_test):\n(const.setup_back_navigation.pushed_url.const.verify_document_navigate_not_observable.navigated_back.performance.getEntriesByName):\n(const.setup_back_navigation.pushed_url.e.e.data.string_appeared_here.else.setTimeout):\n(const.open_test_window):\n(verify_document_navigate_not_observable): Deleted.\n(setup_navigate_or_refresh): Deleted.\n(): Deleted.\n(setup_refresh_test): Deleted.\n(setup_back_navigation.verify_document_navigate_not_observable): Deleted.\n(setup_back_navigation): Deleted.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/nested-dynamic-initiator.css: Added.\n(@import \"resource_timing_test0.css?label=dynamic-initiator\";):\n(ol):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/nested-initiator.css: Added.\n(@import \"resource_timing_test0.css?label=initiator\";):\n(ol):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/no-entries-for-cross-origin-css-fetched-memory-cache-iframe.sub.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/object-navigate-back.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/object-navigate.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/object-refresh.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/observe-entry.js: Added.\n(const.observe_entry.entry_name.const.entry.new.Promise.resolve.new.PerformanceObserver):\n(const.observe_entry.entry_name.const.timeout.new.Promise):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/parent_script.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/redirect-cors.py:\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/redirect-without-location.py: Added.\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/resource-loaders.js:\n(const.load.image_with_attrs.async path):\n(const.load.stylesheet_with_attrs.async path):\n(const.load.stylesheet.async path):\n(const.load.iframe_with_attrs.async path):\n(const.load.iframe.async path):\n(const.load.script_with_attrs.async path):\n(const.load.script.async path):\n(const.load.object.async path):\n(const.load.xhr_sync.async path):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/resource-timing-content-length.py:\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/resource_timing_test0.js.headers: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/shared-worker.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/status-code.py:\n(main):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/sw-install.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/tao-response.js: Added.\n(const.tao_response):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/test-initiator.js: Added.\n(const.with_timeout_message.async promise):\n(const.observe_entry_no_timeout.entry_name.const.entry.new.Promise.resolve.new.PerformanceObserver):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/response-status-code.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/script-rt-entries.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/secure-iframe-in-insecure-context.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/shared-worker-rt-entry.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/single-entry-per-resource-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/single-entry-per-resource.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-cache.any.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-cache.any.serviceworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-cache.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-cache.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect-img.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect.any.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect.any.serviceworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/status-codes-create-entry.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/direct.any.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/direct.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/direct.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/event-handler-overwritten.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/event-handler.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/external-script-in-posted-task.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/external-script.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/iframe-post-message.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/inline-document-write.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/inline-script.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/module-script-from-document.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/module-script-from-dynamic-importer.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/module-script-from-static-importer.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/module-script-from-worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-message-shared-worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-message-worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-task.any.js: Added.\n(scheduler.postTask):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-task.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-task.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-task.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/promise.any.js: Added.\n(Promise.resolve.then):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/promise.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/promise.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/promise.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/queue-microtask.any.js: Added.\n(queueMicrotask):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/queue-microtask.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/queue-microtask.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/queue-microtask.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/request-animation-frame.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/request-idle-callback.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-interval.any.js: Added.\n(setInterval):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-interval.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-interval.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-interval.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-timeout.any.js: Added.\n(setTimeout):\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-timeout.any.sharedworker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-timeout.any.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-timeout.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/static-resource.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/stylesheet-dynamic.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/stylesheet-static.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/w3c-import.log: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/xml-http-request.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/w3c-import.log: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tojson.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/workerStart-tao-protected.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/worklet-rt-entries.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/xhr-resource-timing.html: Added.\n* LayoutTests/platform/win/TestExpectations:\n* LayoutTests/tests-options.json:\n* LayoutTests/imported/w3c/web-platform-tests/lint.ignore:\n* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/a-ping-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/304-response-recorded-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/body-size-cross-origin.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-eventually-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer-full-then-decreased-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/cached-image-gets-single-entry-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/clear-resource-timings-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/connection-reuse-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/connection-reuse.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/content-encoding.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/content-type-minimization-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-iframe-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-redirects-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/decoded-body-size-compressed.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any.serviceworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/delivery-type.tentative.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/encoded-body-size-cached.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/entries-for-network-errors.sub.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/event-source-timing-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-non-html-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-redirect-without-location-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-sequence-of-events-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/iframe-with-download-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/image-sequence-of-events-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/audio-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/dynamic-insertion-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/embed-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/frameset-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/iframe-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/img-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/img-srcset-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/input-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/link-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/misc-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/picture-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/script-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/style-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/svg-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/video-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/initiator-type/workers-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/input-sequence-of-events-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/interim-response-times.h2-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/internal-resources-not-counted-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/link-sequence-of-events-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/load-from-mem-cache-transfer-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/no-entries-for-cross-origin-css-fetched-memory-cache.sub-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/object-not-found-adds-entry-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/opaque-origin-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/ping-rt-entries-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/queue-entry-regardless-buffer-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/render-blocking-status-link-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/render-blocking-status-script-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-reload-TAO-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-timing-failed-fetch-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource-timing-failed-fetch-web-bundle.tentative-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_dedicated_worker-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/script-rt-entries-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/secure-iframe-in-insecure-context-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/shared-worker-rt-entry-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-cache.any-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-cache.any.serviceworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-cache.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-cache.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect-img-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect.any-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect.any.serviceworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/sizes-redirect.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/direct.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/direct.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/event-handler-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/event-handler-overwritten-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/external-script-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/external-script-in-posted-task-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/iframe-post-message-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/inline-document-write-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/inline-script-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/module-script-from-document-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/module-script-from-dynamic-importer-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/module-script-from-static-importer-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/module-script-from-worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-message-shared-worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-message-worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-task-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-task.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/post-task.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/promise-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/promise.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/promise.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/queue-microtask-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/queue-microtask.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/queue-microtask.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/request-animation-frame-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/request-idle-callback-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-interval-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-interval.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-interval.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-timeout-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-timeout.any.sharedworker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/set-timeout.any.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/static-resource-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/stylesheet-dynamic-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/stylesheet-static-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tentative/initiator-url/xml-http-request-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/tojson-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/workerStart-tao-protected.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/worklet-rt-entries.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/xhr-resource-timing-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/svg/linking/scripted/a.ping-functionality-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/content-type-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/interim-response-times-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/nested-nav-fallback-timing-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/resource-timing/response-status-code-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/319592@main",
      "email": "mtan@igalia.com",
      "hash": "9666de8c8a8fe2a369426b53365b0ab192800234",
      "subject": "Resync `resource-timing` from WPT Upstream"
    },
    "319593@main": {
      "author": "Diego Pino Garcia",
      "avatar": "https://www.gravatar.com/avatar/e8cce88637f1a6e79155e8371e24b2e8?d=identicon\u0026s=64",
      "cl": "319593@main",
      "clUrl": "https://commits.webkit.org/319593@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322262\n\nReviewed by Carlos Garcia Campos.\n\nWhen running layout tests on a WPE build which used JHBuild to build its\ndependencies, WPEPort's parent class tries to access property\n'_wpe_legacy_api' before it was set on WPEPort's constructor, resulting on a\nruntime error.\n\nTo prevent this error, property '_wpe_legacy_api' was added to WPEPort\nclass with a default value of 'False'.\n\n* Tools/Scripts/webkitpy/port/wpe.py:\n(WPEPort.__init__):\n(WPEPort):\n\nCanonical link: https://commits.webkit.org/319593@main",
      "email": "dpino@igalia.com",
      "hash": "e6f28dd5268e1d7c2d749794fb6bf7953538da33",
      "subject": "REGRESSION(297329@main): [JHBuild][WPE] Runtime error when running layout tests"
    },
    "319594@main": {
      "author": "Claudio Saavedra",
      "avatar": "https://www.gravatar.com/avatar/376a6edb56b8e52de407ea171c869bcf?d=identicon\u0026s=64",
      "cl": "319594@main",
      "clUrl": "https://commits.webkit.org/319594@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322162\n\nReviewed by Carlos Garcia Campos.\n\nMigrate ArgumentCoder\u003cGRefPtr\u003cGByteArray\u003e\u003e to a generated serializer\nusing GRefPtrWrapped, as 319460@main did for GVariant. The wire format is\nunchanged. Its only user, the GTlsCertificate coder, now picks up the\ngenerated coder from GeneratedSerializers.h.\n\n* Source/WebKit/PlatformGTK.cmake:\n* Source/WebKit/PlatformWPE.cmake:\n* Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in:\n* Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp:\n(IPC::ArgumentCoder\u003cGRefPtr\u003cGByteArray\u003e\u003e::encode): Deleted.\n(IPC::ArgumentCoder\u003cGRefPtr\u003cGByteArray\u003e\u003e::decode): Deleted.\n* Source/WebKit/Shared/glib/ArgumentCodersGLib.h:\n* Source/WebKit/Shared/glib/CoreIPCGByteArray.cpp: Copied from Source/WebKit/Shared/glib/ArgumentCodersGLib.h.\n(WebKit::CoreIPCGByteArray::CoreIPCGByteArray):\n(WebKit::CoreIPCGByteArray::data const):\n(WebKit::CoreIPCGByteArray::operator GRefPtr\u003cGByteArray\u003e const):\n* Source/WebKit/Shared/glib/CoreIPCGByteArray.h: Copied from Source/WebKit/Shared/glib/ArgumentCodersGLib.h.\n* Source/WebKit/Shared/glib/CoreIPCGByteArray.serialization.in: Added.\n* Source/WebKit/SourcesGTK.txt:\n* Source/WebKit/SourcesWPE.txt:\n\nCanonical link: https://commits.webkit.org/319594@main",
      "email": "csaavedra@igalia.com",
      "hash": "a50c194e77c113a8d63da3b86444b5d8ec246d84",
      "subject": "[GLIB] Use GRefPtrWrapped for the GByteArray IPC serializer"
    },
    "319595@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "319595@main",
      "clUrl": "https://commits.webkit.org/319595@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322152\nrdar://179030051\n\nReviewed by Jer Noble.\n\nWe guard against non-monotonically increasing timestamps within a cluster as an error.\nIf from one cluster to another it's treated as a discontinuity.\n\nTests: Tools/TestWebKitAPI/Tests/WebCore/SampleMap.cpp\n       media/media-source/media-source-real-webm-backwards-timecode.html\n\n* LayoutTests/media/media-source/media-source-real-webm-backwards-timecode-expected.txt: Added.\n* LayoutTests/media/media-source/media-source-real-webm-backwards-timecode.html: Added.\n* LayoutTests/media/media-source/webm-generator.js:\n(const.WebM):\n* Source/WebCore/Modules/mediasource/SampleMap.cpp:\n* Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:\n(WebCore::WebMParser::OnClusterBegin):\n(WebCore::WebMParser::OnFrame):\n(WebCore::WebMParser::VideoTrackData::consumeFrameData):\n(WebCore::WebMParser::VideoTrackData::processPendingMediaSamples):\n* Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.h:\n(WebCore::WebMParser::TrackData::updateLastAbsoluteTimecode):\n(WebCore::WebMParser::TrackData::resetLastAbsoluteTimecode):\n* Tools/TestWebKitAPI/Tests/WebCore/SampleMap.cpp:\n(TestWebKitAPI::TEST_F(SampleMapTest, findSamplesBetweenPresentationTimes)):\n(TestWebKitAPI::TEST_F(SampleMapTest, findSamplesBetweenPresentationTimesFromEnd)):\n\nCanonical link: https://commits.webkit.org/319595@main",
      "email": "jya@apple.com",
      "hash": "bc0b5db0e5d31ca7a15a2bf334188ed71004e553",
      "subject": "SourceBufferParserWebM can emit negative MediaSample.duration"
    },
    "319596@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "319596@main",
      "clUrl": "https://commits.webkit.org/319596@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322194\n\nReviewed by Antti Koivisto.\n\nFix an issue with overly aggressive style sharing by ensuring that StyleLengthResolution's\nequalForLengthResolution checks line-height unit related properties, specifiedLineHeight\nand the font metric line-spacing which can be used in fallback cases.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/lh-unit-005-expected.txt:\n* Source/WebCore/style/values/primitives/StyleLengthResolution.cpp:\n\nCanonical link: https://commits.webkit.org/319596@main",
      "email": "sam@webkit.org",
      "hash": "400ecbca3bfcffab4c80f2278dbdf2c73825eda4",
      "subject": "Fix false style sharing seen in WPT test css/css-values/lh-unit-005.html"
    },
    "319597@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "319597@main",
      "clUrl": "https://commits.webkit.org/319597@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322122\n\u003crdar://problem/185348784\u003e\n\nReviewed by Antti Koivisto.\n\n  \u003cdiv style=\"display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3;\n    width: 50px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap\"\u003e\n    This content overflows\n  \u003c/div\u003e\n\nThere is one line and room for three, so nothing is clamped and text-overflow should end\nthe line with an ellipsis. Instead the line was clipped mid-glyph with no ellipsis at all.\n\nSee https://github.com/w3c/csswg-drafts/issues/10823\n\n* Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.cpp:\n(WebCore::Layout::InlineFormattingUtils::lineEndingTruncationPolicy):\n* LayoutTests/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319597@main",
      "email": "zalan@apple.com",
      "hash": "12920a284e78c330070d9a3264014f84b18df8c9",
      "subject": "[line-clamp] text-overflow ellipsis should show on non-clamped content"
    },
    "319598@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "319598@main",
      "clUrl": "https://commits.webkit.org/319598@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322218\n\u003crdar://problem/185452641\u003e\n\nReviewed by Sam Weinig.\n\nA document's render tree is in one of three states: not built, built, or being taken down. Taking one down is not\ninstantaneous - destroyRenderTree() walks the tree destroying renderers - so for that duration the tree is still\nthere but must not be walked or added to, which is a different situation from there being no tree at all.\n\nTwo booleans covered those three states between them, and neither named the third. hasLivingRenderTree() was\nrenderView() \u0026\u0026 !renderTreeBeingDestroyed(), so a false answer meant either of the other two and callers could not\ntell which; anyone who needed to went around it and read renderView() directly. \"Living\" invites the question of\nwhether a tree being destroyed counts, which is exactly the ambiguity.\n\n(RenderObject::renderTreeBeingDestroyed() stays for now. It is a forwarder on a different class rather than a second way of\nasking the same question of a Document, and it reads well at its 59 call sites, so only its body moves to the new state.)\n\nNo change in behavior.\n\n* Source/WebCore/dom/Document.h:\n(WebCore::Document::renderTreeState const):\n(WebCore::Document::renderTreeBeingDestroyed const): Deleted.\n(WebCore::Document::hasLivingRenderTree const): Deleted.\n* Source/WebCore/dom/Document.cpp:\n(WebCore::Document::createRenderTree):\n(WebCore::Document::destroyRenderTree):\n(WebCore::Document::topDocument const):\n(WebCore::Document::removedLastRef):\n(WebCore::Document::caretPositionFromPoint):\n(WebCore::Document::updateTextRenderer):\n(WebCore::Document::updateSVGRenderer):\n(WebCore::Document::ensurePendingRenderTreeUpdate):\n(WebCore::Document::styleForElementIgnoringPendingStylesheets):\n(WebCore::Document::didBecomeCurrentDocumentInFrame):\n(WebCore::Document::willBeRemovedFromFrame):\n(WebCore::Document::implicitClose):\n(WebCore::Document::prepareMouseEvent):\n(WebCore::Document::mainFrameDocument const):\n* Source/WebCore/rendering/RenderObjectDocument.h:\n(WebCore::RenderObject::renderTreeBeingDestroyed const):\n* Source/WebCore/rendering/RenderObject.h: Fix a stale comment naming the wrong header.\n* Source/WebCore/accessibility/AXObjectCache.cpp:\n(WebCore::AXObjectCache::notificationPostTimerFired):\n* Source/WebCore/accessibility/AXSearchManager.cpp:\n(WebCore::appendAccessibilityObject):\n* Source/WebCore/accessibility/AccessibilityScrollView.cpp:\n(WebCore::AccessibilityScrollView::webAreaObject const):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:\n(WebCore::AXIsolatedTree::updateChildren):\n* Source/WebCore/animation/KeyframeEffect.cpp:\n(WebCore::KeyframeEffect::applyPendingAcceleratedActions):\n* Source/WebCore/dom/Element.cpp:\n(WebCore::Element::clientWidth):\n(WebCore::Element::clientHeight):\n* Source/WebCore/dom/Node.cpp:\n(WebCore::Node::computeEditabilityWithStyle const):\n(WebCore::Node::inRenderedDocument const):\n* Source/WebCore/dom/TreeScope.cpp:\n(WebCore::absolutePointIfNotClipped):\n(WebCore::TreeScope::elementFromPoint):\n(WebCore::TreeScope::elementsFromPoint):\n* Source/WebCore/editing/FrameSelection.cpp:\n(WebCore::FrameSelection::updateSelectionAppearanceNow):\n* Source/WebCore/editing/mac/EditorMac.mm:\n(WebCore::Editor::selectionWillChange):\n* Source/WebCore/html/MediaElementSession.cpp:\n(WebCore::isElementMainContentForPurposesOfAutoplay):\n* Source/WebCore/layout/integration/LayoutIntegrationBoxTreeUpdater.cpp:\n(WebCore::LayoutIntegration::BoxTreeUpdater::tearDown):\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:\n(WebCore::LayoutIntegration::LineLayout::~LineLayout):\n* Source/WebCore/loader/FrameLoader.cpp:\n(WebCore::FrameLoader::clear):\n* Source/WebCore/loader/HistoryController.cpp:\n(WebCore::HistoryController::saveDocumentState):\n* Source/WebCore/loader/ImageLoader.cpp:\n(WebCore::ImageLoader::updateFromElement):\n(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):\n(WebCore::ImageLoader::dispatchPendingLoadEvent):\n(WebCore::ImageLoader::dispatchPendingErrorEvent):\n* Source/WebCore/page/LocalFrame.cpp:\n(WebCore::LocalFrame::setView):\n* Source/WebCore/page/Page.cpp:\n(WebCore::Page::destroyRenderTrees):\n* Source/WebCore/page/text-extraction/TextExtraction.cpp:\n(WebCore::TextExtraction::resolveMouseTarget):\n* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceContainer.cpp:\n(WebCore::LegacyRenderSVGResourceContainer::markAllClientLayersForInvalidation):\n* Source/WebCore/style/StyleResolveForDocument.cpp:\n(WebCore::Style::resolveForDocument):\n* Source/WebCore/style/StyleScope.cpp:\n(WebCore::Style::Scope::updateActiveStyleSheets):\n(WebCore::Style::Scope::styleSheetsForStyleSheetList):\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::didChangeSelection):\n(WebKit::WebPage::discardedComposition):\n(WebKit::WebPage::sendEditorStateUpdate):\n* Source/WebKit/WebProcess/cocoa/VideoPresentationManager.mm:\n(WebKit::inlineVideoFrame):\n\nCanonical link: https://commits.webkit.org/319598@main",
      "email": "zalan@apple.com",
      "hash": "fdbc1f896f5865455335e43a63137772389ed54c",
      "subject": "[cleanup] Replace Document's two render tree booleans with an explicit RenderTreeState"
    },
    "319599@main": {
      "author": "Claudio Saavedra",
      "avatar": "https://www.gravatar.com/avatar/376a6edb56b8e52de407ea171c869bcf?d=identicon\u0026s=64",
      "cl": "319599@main",
      "clUrl": "https://commits.webkit.org/319599@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322269\n\nReviewed by Carlos Garcia Campos.\n\nMigrate ArgumentCoder\u003cGRefPtr\u003cGTlsCertificate\u003e\u003e to a generated serializer\nusing GRefPtrWrapped. The wire format is unchanged: the certificate chain\nand private key (de)serialize as GByteArray members, so this builds on the\ngenerated GByteArray coder.\n\n* Source/WebKit/PlatformGTK.cmake:\n* Source/WebKit/PlatformWPE.cmake:\n* Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp:\n* Source/WebKit/Shared/glib/ArgumentCodersGLib.h:\n* Source/WebKit/Shared/glib/CoreIPCGTlsCertificate.cpp: Added.\n(WebKit::CoreIPCGTlsCertificate::CoreIPCGTlsCertificate):\n(WebKit::CoreIPCGTlsCertificate::operator GRefPtr\u003cGTlsCertificate\u003e const):\n* Source/WebKit/Shared/glib/CoreIPCGTlsCertificate.h: Added.\n* Source/WebKit/Shared/glib/CoreIPCGTlsCertificate.serialization.in: Added.\n* Source/WebKit/SourcesGTK.txt:\n* Source/WebKit/SourcesWPE.txt:\n\nCanonical link: https://commits.webkit.org/319599@main",
      "email": "csaavedra@igalia.com",
      "hash": "12b9f977fe4cc62ab847e52c1968a529ead2b6b8",
      "subject": "[GLIB] Use GRefPtrWrapped for the GTlsCertificate IPC serializer"
    },
    "319600@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "319600@main",
      "clUrl": "https://commits.webkit.org/319600@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322183\n\u003crdar://problem/185419069\u003e\n\nReviewed by Antti Koivisto.\n\nNo behavior change.\n\n* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:\n(WebCore::AccessibilityNodeObject::stringValue const):\n* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:\n(WebCore::AccessibilityRenderObject::textUnderElement const):\n(WebCore::AccessibilityRenderObject::stringValue const):\n(WebCore::AccessibilityRenderObject::listMarkerText const):\n* Source/WebCore/accessibility/AccessibilityObject.cpp:\n(WebCore::lineStartListMarkerText):\n(WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):\n* Source/WebCore/rendering/RenderListItem.cpp:\n(WebCore::RenderListItem::markerText const):\n* Source/WebCore/rendering/RenderListItem.h:\n* Source/WebCore/rendering/RenderListMarker.cpp:\n(WebCore::RenderListMarker::layout):\n(WebCore::RenderListMarker::layoutContentContainer):\n* Source/WebCore/rendering/RenderListMarker.h:\n(WebCore::RenderListMarker::textContent const):\n* Source/WebCore/rendering/RenderTreeAsText.cpp:\n(WebCore::RenderTreeAsText::writeRenderObject):\n(WebCore::markerTextForListItem):\n\nCanonical link: https://commits.webkit.org/319600@main",
      "email": "zalan@apple.com",
      "hash": "77327f67bb617aa82eda8beb0a0b3abc5b3cb728",
      "subject": "[cleanup] Ask the list marker for its text through one accessor"
    },
    "319601@main": {
      "author": "Sihui Liu",
      "avatar": "https://www.gravatar.com/avatar/fea095a2fb34b599fa6e7d581666903b?d=identicon\u0026s=64",
      "cl": "319601@main",
      "clUrl": "https://commits.webkit.org/319601@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322156\nrdar://185382380\n\nReviewed by Ryosuke Niwa.\n\nRunning the SiteIsolation API tests in shared process mode makes some of them fail because they expect to be running in\nfull isolation mode, for instance by asserting that two different sites are in two different processes. Those tests need\nto opt out of shared process mode explicitly. This is a step towards making shared process mode the default.\n\nAdd setFeatureEnabled(), which replaces enableFeature() and takes the value rather than hardcoding YES, and build\ndisableSharedProcess() and siteIsolatedViewAndDelegateWithoutSharedProcess() on top of it. Switch NavigationWithIFrames,\nCancelProvisionalLoad and CrossProcessHistoryTraversalCoalesce to the latter. None of their expectations change, and the\nopt-out is a no-op in the current default configuration.\n\nTo keep targeted coverage of shared process mode, add a variant of each of those tests that opts in instead.\nCrossProcessHistoryTraversalCoalesceWithSharedProcess keeps apple.com out of the shared process through the user\ninteraction override, because the traversal it coalesces is only a cross-process one if the two subframes are in\ndifferent processes.\n\n* Tools/Scripts/webkitpy/api_tests/allowlist.txt:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::enableSiteIsolation):\n(TestWebKitAPI::disableSharedProcess):\n(TestWebKitAPI::siteIsolatedViewWithSharedProcess):\n(TestWebKitAPI::siteIsolatedViewAndDelegateWithoutSharedProcess):\n(TestWebKitAPI::TEST(SiteIsolation, QueryFramesStateAfterGoingBackToCachedPageWithIframe)):\n(TestWebKitAPI::TEST(SiteIsolation, NavigationWithIFrames)):\n(TestWebKitAPI::TEST(SiteIsolation, NavigationWithIFramesWithSharedProcess)):\n(TestWebKitAPI::TEST(SiteIsolation, CancelProvisionalLoad)):\n(TestWebKitAPI::TEST(SiteIsolation, CancelProvisionalLoadWithSharedProcess)):\n(TestWebKitAPI::TEST(SiteIsolation, BFCacheSameSitePageChangesTopDocumentURL)):\n(TestWebKitAPI::TEST(SiteIsolation, BFCacheCrossSitePageKeepsTopDocumentURL)):\n(TestWebKitAPI::(SiteIsolation, SharedProcessExcludesLoopback)):\n(TestWebKitAPI::(SiteIsolation, SelectElementPopupAfterFocusChangesDuringTracking)):\n(TestWebKitAPI::(SiteIsolation, MultiProcessBFCacheCrossSiteEvictionDoesNotCrashIframe)):\n(TestWebKitAPI::(SiteIsolation, MultiProcessBFCacheRestoreWithCrossSiteIframeDoesNotCrash)):\n(TestWebKitAPI::(SiteIsolation, ProvisionalSubframeCommitAfterMainFrameSwapDoesNotCrash)):\n(TestWebKitAPI::(SiteIsolation, MultiProcessBFCacheSameSiteReusedIframeNotFrozen)):\n(TestWebKitAPI::(SiteIsolation, MultiProcessBFCacheRestoreRerendersReattachedIframe)):\n(TestWebKitAPI::(SiteIsolation, MultiProcessBFCacheRepeatedSameSiteSuspendCachesEachEntry)):\n(TestWebKitAPI::(SiteIsolation, MultiProcessBFCacheSameSiteEvictionDoesNotCrashIframe)):\n(TestWebKitAPI::(SiteIsolation, UserGesture)):\n(TestWebKitAPI::(SiteIsolation, CrossProcessHistoryTraversalCoalesce)):\n(TestWebKitAPI::(SiteIsolation, CrossProcessHistoryTraversalCoalesceWithSharedProcess)):\n(TestWebKitAPI::(SiteIsolation, RestoredPageIsRenderedAfterCrossSiteBFCacheRoundTrip)):\n(TestWebKitAPI::(SiteIsolation, RestoredPageWithIframeIsRenderedAfterCrossSiteBFCacheRoundTrip)):\n(TestWebKitAPI::enableFeature): Deleted.\n\nCanonical link: https://commits.webkit.org/319601@main",
      "email": "sihui_liu@apple.com",
      "hash": "a74316b16e9a7b2067d23ededbdfebf7741d7e74",
      "subject": "[Site Isolation] Make SiteIsolation tests that need full isolation opt out of shared process mode"
    },
    "319602@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "319602@main",
      "clUrl": "https://commits.webkit.org/319602@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322160\nrdar://185387739\n\nReviewed by Kimmo Kinnunen.\n\nisPointInPath(), isPointInStroke(), drawFocusIfNeeded() and all six CTM\nmutators opened with `if (!effectiveDrawingContext()) return;`. That runs\nbuffer() -\u003e allocateImageBuffer(), so a pure geometry query on a fresh\ncanvas committed width * height * 4 bytes plus an IOSurface. Neither\nhit-testing helper uses the context it fetched: Path::contains() is a CG\npath query, and PathCG::strokeContains() builds its own GraphicsContext\nover the 1x1 scratchContext().\n\nIt is also a correctness bug. validateArea() returns false when the area\nis zero, so a canvas with a zero width or height has no bitmap at all.\nHit tests therefore returned false for points genuinely inside the path,\nand every CTM mutation was silently dropped.\n\nThe spec does not permit this. Per the canvas state [1]: \"The rendering\ncontext's bitmaps are not part of the drawing state, as they depend on\nwhether and how the rendering context is bound to a canvas element.\" The\nsame section lists \"The current transformation matrix.\" as the first\ncomponent of the drawing state. Nor is the CTM merely a painting input:\n\"The current transformation matrix is applied to coordinates when\ncreating the current default path, and when painting text, shapes, and\nPath2D objects\" [2]. Dropping a mutation therefore corrupts the path as\nit is built -- which is what we do, by folding the inverse into m_path --\nso the damage does not depend on there being a bitmap to paint into.\n\nBoth hit-testing algorithms are likewise pure geometry once the\nnon-finite check has run [3][4], over inputs that all exist without a\nbacking store: the current default path, of which \"There is only one\ncurrent default path, it is not part of the drawing state\" [5], the CTM,\nand for isPointInStroke() the line styles of the CanvasPathDrawingStyles\nmixin. Firefox already behaves this way; Chrome matches our old behavior.\n\nDrop the check outright in the two hit-testing helpers, move the fetch to\nthe point of use behind `if (auto* c = effectiveDrawingContext())` in the\nmutators so the state update happens either way, and hoist the cheap\nearly-outs above the fetch in drawFocusIfNeededInternal() so the common\nunfocused case no longer allocates.\n\nReordering cannot let state().transform drift from the context CTM:\nm_hasCreatedImageBuffer is only cleared by didUpdateCanvasSizeProperties()\non a size change, which also resets the state stack and clears the path.\n\n[1] https://html.spec.whatwg.org/multipage/canvas.html#the-canvas-state\n[2] https://html.spec.whatwg.org/multipage/canvas.html#transformations\n[3] https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ispointinpath\n[4] https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ispointinstroke\n[5] https://html.spec.whatwg.org/multipage/canvas.html#current-default-path\n\nTests: 2d.path.isPointInPath.nobitmap{,.path2d,.winding,.transform}\n       2d.path.isPointInStroke.nobitmap{,.path2d,.transform}\n\nThose live under html/canvas/{element,offscreen}/path-objects/ and are\ngenerated by /html/canvas/tools/gentest.py from tools/yaml/path-objects.yaml,\nso the seven new YAML entries emit the HTMLCanvasElement, OffscreenCanvas and\nworker flavor of each. All 21 baselines are a FAIL before this change.\n\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.nobitmap-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.nobitmap.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.nobitmap.path2d-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.nobitmap.path2d.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.nobitmap.transform-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.nobitmap.transform.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.nobitmap.winding-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.nobitmap.winding.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInStroke.nobitmap-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInStroke.nobitmap.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInStroke.nobitmap.path2d-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInStroke.nobitmap.path2d.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInStroke.nobitmap.transform-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInStroke.nobitmap.transform.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.path2d-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.path2d.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.path2d.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.path2d.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.path2d.worker.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.transform-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.transform.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.transform.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.transform.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.transform.worker.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.winding-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.winding.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.winding.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.winding.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.winding.worker.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInPath.nobitmap.worker.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.path2d-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.path2d.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.path2d.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.path2d.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.path2d.worker.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.transform-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.transform.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.transform.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.transform.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.transform.worker.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.worker-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.worker.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.nobitmap.worker.js: Added.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/isPointInPath-without-bitmap-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/isPointInPath-without-bitmap.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/isPointInStroke-without-bitmap-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/html/canvas/isPointInStroke-without-bitmap.html: Removed.\n* Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:\n(WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal):\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:\n(WebCore::CanvasRenderingContext2DBase::scale):\n(WebCore::CanvasRenderingContext2DBase::rotate):\n(WebCore::CanvasRenderingContext2DBase::translate):\n(WebCore::CanvasRenderingContext2DBase::transform):\n(WebCore::CanvasRenderingContext2DBase::setTransform):\n(WebCore::CanvasRenderingContext2DBase::resetTransform):\n(WebCore::CanvasRenderingContext2DBase::isPointInPathInternal):\n(WebCore::CanvasRenderingContext2DBase::isPointInStrokeInternal):\n\nCanonical link: https://commits.webkit.org/319602@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "25340120c860b6d135d7b6fc7a36d8cbd17ca0dd",
      "subject": "Canvas 2D hit testing and transform mutations should not require the canvas bitmap"
    },
    "319603@main": {
      "author": "Mike Wyrzykowski",
      "avatar": "https://www.gravatar.com/avatar/4b1bc9e238714f95e22d5d2454c07066?d=identicon\u0026s=64",
      "cl": "319603@main",
      "clUrl": "https://commits.webkit.org/319603@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322155\nrdar://185379686\n\nReviewed by Dan Glastonbury.\n\nAdd missing format now required by the specification.\n\n* Source/WebCore/Modules/WebGPU/GPUVertexFormat.h:\n(WebCore::convertToBacking):\n* Source/WebCore/Modules/WebGPU/GPUVertexFormat.idl:\n* Source/WebCore/Modules/WebGPU/Implementation/WebGPUConvertToBackingContext.cpp:\n(WebCore::WebGPU::ConvertToBackingContext::convertToBacking):\n* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPU.serialization.in:\n* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUVertexFormat.h:\n* Source/WebGPU/WebGPU/RenderPipeline.mm:\n(WebGPU::vertexFormat):\n(WebGPU::vertexFormatSize):\n(WebGPU::name):\n(WebGPU::formatType):\n* Source/WebGPU/WebGPU/WebGPU.h:\n* Source/WebKit/GPUProcess/graphics/Model/WebKitMesh.mm:\n(WebModel::toMetal):\n* Source/WebKit/WebProcess/Model/ModelInlineConverters.h:\n(WebKit::toVertexFormat):\n\nTest:\n\n* LayoutTests/http/tests/webgpu/webgpu/api/operation/vertex_state/correctness.spec.js:\n(makeRgb10a2Signed):\n(normalizeRgb10a2Signed):\n(VertexStateTest.prototype.generateTestData):\n* LayoutTests/http/tests/webgpu/webgpu/capability_info.js:\n\nCanonical link: https://commits.webkit.org/319603@main",
      "email": "mwyrzykowski@apple.com",
      "hash": "d08b07cb04750fb136385b8f89616aca494429a4",
      "subject": "Add \"snorm10-10-10-2\" to enum GPUVertexFormat."
    },
    "319604@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "319604@main",
      "clUrl": "https://commits.webkit.org/319604@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322209\n\nReviewed by Alan Baradlay.\n\nRemove non-standard Blend node from Style::Calculation tree. The standard\nnodes can be used just as well.\n\n* Source/WebCore/css/calc/CSSCalcOperator.cpp:\n* Source/WebCore/css/calc/CSSCalcOperator.h:\n* Source/WebCore/style/calc/StyleCalculationTree+Conversion.cpp:\n* Source/WebCore/style/calc/StyleCalculationTree+Copy.cpp:\n* Source/WebCore/style/calc/StyleCalculationTree+Evaluation.cpp:\n* Source/WebCore/style/calc/StyleCalculationTree.cpp:\n* Source/WebCore/style/calc/StyleCalculationTree.h:\n\nCanonical link: https://commits.webkit.org/319604@main",
      "email": "sam@webkit.org",
      "hash": "0d599a87fc423ce58ec92d1b77326b6ce96007c6",
      "subject": "Remove non-standard Blend node from Style::Calculation tree"
    },
    "319605@main": {
      "author": "Matthew Finkel",
      "avatar": "https://www.gravatar.com/avatar/656f8950aefb56f553c899418e06b351?d=identicon\u0026s=64",
      "cl": "319605@main",
      "clUrl": "https://commits.webkit.org/319605@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=313220\nrdar://175498842\n\nReviewed by Charlie Wolfe.\n\nWhen we set firstPartyForCookies on a subframe, we check if either:\n\n1) shouldInheritSecurityOriginFromOwner is true for the current document's URL, or\n2) if the current document's URL is same-registrable-domain as the top-level document URL\n\nIn the case of an iframe with srcdoc, shouldInheritSecurityOriginFromOwner\nreturns true (as documented), and this causes us to set the page's mainFrameURL\nas the firstPartyForCookies. We need a conditional exception for\nshouldInheritSecurityOriginFromOwner, but it should take nested iframes into\naccount. This patch adjusts the logic so we inherit the ancestor frame's\nsiteForCookies instead of the page's URL. The same-registrable-domain check\nremains unchanged.\n\nTest: http/tests/cookies/same-site/fetch-in-srcdoc-iframe-inside-cross-origin-iframe.html\n\n* LayoutTests/http/tests/cookies/same-site/fetch-in-srcdoc-iframe-inside-cross-origin-iframe-expected.txt: Added.\n* LayoutTests/http/tests/cookies/same-site/fetch-in-srcdoc-iframe-inside-cross-origin-iframe.html: Added.\n* LayoutTests/http/tests/cookies/same-site/img-from-srcdoc-iframe-inside-cross-origin-iframe-expected.txt: Added.\n* LayoutTests/http/tests/cookies/same-site/img-from-srcdoc-iframe-inside-cross-origin-iframe.html: Added.\n* LayoutTests/http/tests/cookies/same-site/resources/record-image-cookies.py: Added.\n* LayoutTests/http/tests/cookies/same-site/resources/srcdoc-creator-img-inside-cross-origin-iframe.html: Added.\n* LayoutTests/http/tests/cookies/same-site/resources/srcdoc-creator-inside-cross-origin-iframe.html: Added.\n* Source/WebCore/loader/FrameLoader.cpp:\n(WebCore::FrameLoader::setFirstPartyForCookies):\n\nOriginally-landed-as: 305413.948@safari-7624.4-branch (edd74642a6ef). rdar://184744188\nCanonical link: https://commits.webkit.org/319605@main",
      "email": "m_finkel@apple.com",
      "hash": "c52bbb5187e1602b26568547b57440f196bba56a",
      "subject": "Srcdoc iframes bypass SameSite Strict and Lax cookies"
    },
    "319606@main": {
      "author": "lilly",
      "avatar": "https://www.gravatar.com/avatar/d0533d52eeb271270df480f37629a407?d=identicon\u0026s=64",
      "cl": "319606@main",
      "clUrl": "https://commits.webkit.org/319606@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322215\nrdar://185452130\n\nReviewed by Simon Fraser.\n\nFixes and adds tests for the case when a box mixes a finite superellipse corner\n(scoop, squircle, superellipse(0.6)) with a square or notch corner, the outline and\nbox-shadow spread contours draw the square and notch corners as round and scoop,\nwith rippling along the adjoining edges.\n\nTests: imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel-round-scoop-square-outset-ref.html\n       imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel-round-scoop-square-outset.html\n       imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-squircle-outset-ref.html\n       imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-squircle-outset.html\n       imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-concave-outset-ref.html\n       imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-concave-outset.html\n       imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-convex-outset-ref.html\n       imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-convex-outset.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel-round-scoop-square-outset-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel-round-scoop-square-outset-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-bevel-round-scoop-square-outset.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-squircle-outset-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-squircle-outset-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-notch-squircle-outset.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-concave-outset-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-concave-outset-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-concave-outset.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-convex-outset-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-convex-outset-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-superellipse-convex-outset.html: Added.\n* Source/WebCore/platform/graphics/CornerShapeUtilities.cpp:\n(WebCore::borderContourPath):\n\nCanonical link: https://commits.webkit.org/319606@main",
      "email": "173393835+cupidsity@users.noreply.github.com",
      "hash": "eb5951ff3b182564d777694d41bf308b5d422e5b",
      "subject": "corner-shape: square and notch corners are built as round and scoop on outlines and box-shadow spread"
    },
    "319607@main": {
      "author": "Tim Nguyen",
      "avatar": "https://www.gravatar.com/avatar/208c05ac2decdf818a4a08ada568328e?d=identicon\u0026s=64",
      "cl": "319607@main",
      "clUrl": "https://commits.webkit.org/319607@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322202\nrdar://168622112\n\nReviewed by Simon Fraser, Wenson Hsieh, Sihui Liu, and Abrar Rahman Protyasha.\n\nWhen going to https://www.cnn.com/account/log-in and then clicking \"Continue with Google\", WebKit initially opens a popup\nin the same process as cnn.com, but then does a process swap to google.com. When the process swap is performed, the top content\ninset is not carried over, resulting in the top part of the popup getting cut-off.\n\nFix this by carrying over the content insets in WebPage::reinitializeWebPage when swapping processes.\n\nTest: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm\n\n* Source/WebCore/testing/Internals.cpp:\n(WebCore::Internals::obscuredContentInsetTop):\n* Source/WebCore/testing/Internals.h:\n* Source/WebCore/testing/Internals.idl:\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::reinitializeWebPage):\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:\n(TestWebKitAPI::TEST(SiteIsolation, ObscuredContentInsetsSurviveWindowOpenProcessSwap)):\n\nCanonical link: https://commits.webkit.org/319607@main",
      "email": "ntim@apple.com",
      "hash": "4f28f72d3c957b2fe1ee7e28dd6ab4e604273d3f",
      "subject": "[Site Isolation] cnn.com \"Sign-in with Google\" popup displays with top content cut off"
    },
    "319608@main": {
      "author": "Patrick Griffis",
      "avatar": "https://www.gravatar.com/avatar/2233c3a857004b126158572af9fe36f7?d=identicon\u0026s=64",
      "cl": "319608@main",
      "clUrl": "https://commits.webkit.org/319608@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321834\n\nReviewed by Philippe Normand.\n\n- Every call to getUserMedia() or enumerateDevices() made a new connection\nand sent a request to the portal. So it was very easy for 5 dialogs to\npop up opening one site. This keeps a single connection and reuses it.\n\n- accessCamera() used to wait for responses by using a nested mainloop,\nthis causes reentrancy issues that are impossible to reason about,\njust remove the mainloop as everything is async anyway.\n\nThis re-enables this feature on WPE which incorrectly asserted nobody\nuses WPE with portals.\n\n* Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.cpp:\n(WebCore::DesktopPortal::~DesktopPortal):\n(WebCore::DesktopPortal::notifyResponse):\n(WebCore::DesktopPortalCamera::accessCamera):\n* Source/WebCore/platform/mediastream/gstreamer/DesktopPortal.h:\n(WebCore::DesktopPortal::notifyResponse): Deleted.\n* Source/WebCore/platform/mediastream/gstreamer/PipeWireCaptureDeviceManager.cpp:\n(WebCore::PipeWireCaptureDeviceManager::~PipeWireCaptureDeviceManager):\n(WebCore::PipeWireCaptureDeviceManager::notifyDevicesComputed):\n(WebCore::PipeWireCaptureDeviceManager::provisionDevices):\n(WebCore::PipeWireCaptureDeviceManager::computeCaptureDevices):\n* Source/WebCore/platform/mediastream/gstreamer/PipeWireCaptureDeviceManager.h:\n\nCanonical link: https://commits.webkit.org/319608@main",
      "email": "pgriffis@igalia.com",
      "hash": "32aac5dacfa53cb1d89423f91f2e49e1210a3952",
      "subject": "[GStreamer] Fix issues with pipewire device capture"
    },
    "319609@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319609@main",
      "clUrl": "https://commits.webkit.org/319609@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322252\nrdar://185487391\n\nReviewed by Keith Miller.\n\nnon ARM64 architecture's roundevenf / roundeven implementations have a\nproblem that it returns roundevenf(-0.5) =\u003e +0.0 instead of -0.0. This\npatch fixes it.\n\nTest: Tools/TestWebKitAPI/Tests/WTF/MathExtras.cpp\n\n* Source/WTF/wtf/MathExtras.h:\n(roundevenf):\n(roundeven):\n* Tools/TestWebKitAPI/Tests/WTF/MathExtras.cpp:\n(TestWebKitAPI::isNegativeZero):\n(TestWebKitAPI::TEST(WTF, roundeven)):\n\nCanonical link: https://commits.webkit.org/319609@main",
      "email": "ysuzuki@apple.com",
      "hash": "b74760b1824cecb3c476eee726a722e558f633a2",
      "subject": "[WTF] Fix roundevenf / roundeven sign for 0"
    },
    "319610@main": {
      "author": "Andy Estes",
      "avatar": "https://www.gravatar.com/avatar/643f10f01b26fd94d03482a2013b2ea0?d=identicon\u0026s=64",
      "cl": "319610@main",
      "clUrl": "https://commits.webkit.org/319610@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322256\nrdar://184547900\n\nReviewed by Eric Carlson.\n\nAfter switching to a MediaDeviceRoute, WebKit issues a seek to the current playback position.\nMediaPlayerPrivateWirelessPlayback::readyDidChange advanced the ready state to HaveEnoughData as\nsoon as the route reported itself ready, without regard for whether the route had yet published a\nseekable time range. HTMLMediaElement::seekTask treats an empty seekable range as \"no seek required\"\nand returns early; since the target time differs from the current time, it does so without firing\nseeking, seeked, or timeupdate, so a page waiting on seeked stalls indefinitely.\n\nResolved this by gating the transition to HaveEnoughData on the route having published a non-empty\nseekable range in addition to being ready, and re-evaluate that condition from both readyDidChange\nand timeRangeDidChange so whichever arrives second completes the transition.\n\nWebMockMediaDeviceRoute previously left timeRange default-initialized. Gave it a valid default so\nthat existing tests which set `route.ready = true` without specifying a time range continue to\nbecome playable.\n\nTest: media/wireless-playback-media-player/ready-state-requires-seekable-range.html\n\n* LayoutTests/media/wireless-playback-media-player/ready-state-requires-seekable-range-expected.txt: Added.\n* LayoutTests/media/wireless-playback-media-player/ready-state-requires-seekable-range.html: Added.\n* Source/WebCore/platform/graphics/MediaPlayerPrivateWirelessPlayback.cpp:\n(WebCore::MediaPlayerPrivateWirelessPlayback::updateReadyState):\n(WebCore::MediaPlayerPrivateWirelessPlayback::timeRangeDidChange):\n(WebCore::MediaPlayerPrivateWirelessPlayback::readyDidChange):\n* Source/WebCore/platform/graphics/MediaPlayerPrivateWirelessPlayback.h:\n* Source/WebCore/testing/cocoa/WebMockMediaDeviceRoute.mm:\n(-[WebMockMediaDeviceRoute init]):\n\nCanonical link: https://commits.webkit.org/319610@main",
      "email": "aestes@apple.com",
      "hash": "d960e0221dda2a1db726c47230cbbdbcd3031be2",
      "subject": "[iOS] Current time stops updating on youtube.com after switching playback to an AVSystemRoute"
    },
    "319611@main": {
      "author": "Diego Pino Garcia",
      "avatar": "https://www.gravatar.com/avatar/e8cce88637f1a6e79155e8371e24b2e8?d=identicon\u0026s=64",
      "cl": "319611@main",
      "clUrl": "https://commits.webkit.org/319611@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=207209\n\nReviewed by Alexey Proskuryakov.\n\nThe test picked its target heap-snapshot node using an unreliable\nheuristic: the instance with the highest 'id' among all instances of\na given class. That is not guaranteed to be the specific object the\ntest just created (window.myString/myFunction/myMap), since other\nincidental allocations of the same class can happen in the same\nsnapshot window and end up with a higher id, making the test flaky.\n\nReplaced all four occurrences of this heuristic (GetPreviewForString,\nGetPreviewForFunction, GetPreviewForObject, and the collected-object\ncase) with a deterministic findNodeByPropertyName() helper: walk each\ncandidate node's retainer edges and pick the one actually referenced\nby the expected property/variable name.\n\nLocal reproduction went from failing in roughly 16-18% of iterations\nbefore this change to 0 failures in 400 iterations after it.\n\nAlso removed the now-stale flaky-test expectations for GTK and\nmac-wk2.\n\n* LayoutTests/inspector/heap/getPreview.html:\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319611@main",
      "email": "dpino@igalia.com",
      "hash": "1d20142e3c43b9199c3db94eb963d84c64bc4ae0",
      "subject": "inspector/heap/getPreview.html is a flaky failure"
    },
    "319612@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "319612@main",
      "clUrl": "https://commits.webkit.org/319612@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321104\nrdar://184215336\n\nReviewed by Alan Baradlay.\n\nThe CSSWG resolved that margin-trim does not affect the resolved value of the margin\nproperties, so a trimmed margin must still be reported by getComputedStyle.\n\nhttps://github.com/w3c/csswg-drafts/issues/11506\n\nWe wrote 0 into the child's margin box when trimming it, and Style::Extractor reads the\nused margin off the renderer, so trimming leaked into the computed value.\n\nMargin collapsing also has similar behavior with regards to this so we\ncan resolve this problem by making the underlying trimming logic similar\nto the collapsing logic. The code stores various information with\nregards to margin collapsing in a helper struct and uses that\ninformation to compute the position of the box but the actual value of\nthe renderer's margin box field remains the same.\n\nDiscarding the margins as they are consumed also fixes a pre-existing bug. The old code only\nzeroed the child's margin box, but the collapsed-through margin that reaches the container's\nheight comes from the child's rare data, so a trimming container that cannot collapse with its\nchildren (one with a block-end border, say) still grew by a margin that margin-trim had\ndiscarded, even though the child itself was repositioned flush to the trimmed edge. That\nmargin is now discarded before MarginInfo sees it.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/margin-trim-computed-value-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/margin-trim-computed-value.html: Added.\nReplaced the existing tests with a new one that contains some subtests\nto make sure the new behavior holds.\n\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::RenderBlockFlow::adjustBlockEndChildrenForMarginTrim):\ntrimBlockEndChildrenMargins becomes adjustBlockEndChildrenForMarginTrim: its margin\nbox writes ran after every child had been laid out and after MarginInfo had already consumed\ntheir margins, and for block flow descendants the parent reads the collapsed margins out of\nrare data rather than the margin box, so they no longer had any bearing on the container's\nblock size by the time they ran. The self-collapsing repositioning it performs is still needed\nto pull such a child back to the trimmed block-end edge when a preceding sibling's margin has\ncollapsed through it.\n\nThat preceding sibling's margin is itself adjoining the trimmed edge and should be trimmed as\nwell, but MarginInfo has already accumulated it, so a container that cannot collapse with its\nchildren still grows by it. This is not a regression: with the same content the old code grew\nby the larger of that margin and the trimmed child's own margin, so the value can only get\nsmaller here (41px before, 32px now, 27px once the FIXME added to\nadjustBlockEndChildrenForMarginTrim is addressed). The block-start edge already handles the\nequivalent case through LayoutState::marginTrimBlockStart.\n\n(WebCore::RenderBlockFlow::marginValuesForChild):\nDiscard the trimmed sides as it hands the child's margins to the collapsing code. Every\nblock axis consumer of a child's margins goes through it, so the child's logical top is\ncomputed with the margin discarded without anything mutating the child. Which side is trimmed\nis answered by shouldTrimChildMargin for a first or last in-flow child, plus the existing\nLayoutState::marginTrimBlockStart flag for a margin that collapses through to a trimming\nancestor's block-start edge.\n\n(WebCore::RenderBlockFlow::marginBeforeEstimateForChild):\nBail out when the child's block-start margin is trimmed, including when it collapses through to\na trimming ancestor's edge, so that the estimate agrees with what marginValuesForChild computes\nonce the margins are actually consumed. The estimate previously used the untrimmed margin in the\ncollapsed-through case and then walked into the grandchildren to collapse margins that are\ntrimmed along with it.\n\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::RenderBox::computeBlockDirectionMargins):\nDo not return 0 for a trimmed margin but let the caller determine if\ntrimming is happening and perform the appropriate logic in that\nsituation.\n\nCanonical link: https://commits.webkit.org/319612@main",
      "email": "sammy.gill@apple.com",
      "hash": "8345bb765b035fd3de5d91f13c637367cf142e92",
      "subject": "[margin-trim] Trimmed margins should not be reflected in computed style"
    },
    "319613@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "319613@main",
      "clUrl": "https://commits.webkit.org/319613@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=203320\n\nReviewed by Alan Baradlay and Tim Nguyen.\n\nimported/w3c/web-platform-tests/css/css-values/percentage-rem-low.html is now passing.\n\n* LayoutTests/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319613@main",
      "email": "sam@webkit.org",
      "hash": "c5153973ea3f0f32499c47df9504284b259a59bd",
      "subject": "Remove imported/w3c/web-platform-tests/css/css-values/percentage-rem-low.html from TestExpectations"
    },
    "319614@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "319614@main",
      "clUrl": "https://commits.webkit.org/319614@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322284\n\nReviewed by Darin Adler.\n\nAdd support for additional simplification rules in calc():\n  - clamp(none, a, b) -\u003e max(a, b)\n  - clamp(a, b, none) -\u003e min(a, b)\n\nThis was resolved on by the CSSWG in https://github.com/w3c/csswg-drafts/issues/13535.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-values/clamp-partial-serialize.tentative-expected.txt:\n* Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp:\n\nCanonical link: https://commits.webkit.org/319614@main",
      "email": "sam@webkit.org",
      "hash": "61fc55e15fb67f6df7f4a525568c98123aad3f59",
      "subject": "Simplify clamp(none, a, b) to max(a, b) and clamp(a, b, none) to min(a, b)"
    },
    "319615@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "319615@main",
      "clUrl": "https://commits.webkit.org/319615@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322187\n\u003crdar://problem/185422271\u003e\n\nReviewed by Antti Koivisto.\n\n  \u003cstyle\u003e\n  li { list-style-type: \"\\627\\644\\641\" }\n  \u003c/style\u003e\n  \u003cul\u003e\u003cli id=item\u003eItem Five\n  \u003ca role=button aria-labelledby=\"button item\" id=button\u003eReply\n\nWhether a marker's text belongs in a name is the caller's to decide, and IncludeListMarkerText is how\nit says so: aria-labelledby name computation passes No, and textUnderElement() answers for the marker\nonly when it is Yes.\n\nA marker whose text needs bidi resolution does not draw that text itself, it keeps it in content\nrenderers, and those are reachable through AccessibilityRenderObject::firstChild(), which answers from\nthe render tree before it consults canHaveChildren(). The walk that builds a name reaches them that\nway and takes their text, so the flag stops governing what the caller asked about. The name computed\nfor the button above comes out as \"Reply الفItem Five\", and the list item's own value with it. Neither\nthe string above nor a right-to-left list of plain decimals is exotic, so this is what any\naria-labelledby pointing at such a list item reports today.\n\n* LayoutTests/accessibility/list-marker-content-renderers-text-expected.txt: Added.\n* LayoutTests/accessibility/list-marker-content-renderers-text.html: Added.\n* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:\n(WebCore::AccessibilityNodeObject::canHaveChildren const):\n* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:\n(WebCore::AccessibilityRenderObject::textUnderElement const):\n\nCanonical link: https://commits.webkit.org/319615@main",
      "email": "zalan@apple.com",
      "hash": "86d27022072df830a2b8749ca4a685fd900677d8",
      "subject": "[list-marker] A list marker's text reaches names and values that asked for text without list markers"
    },
    "319616@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "319616@main",
      "clUrl": "https://commits.webkit.org/319616@main",
      "description": "rdar://157892382\nhttps://bugs.webkit.org/show_bug.cgi?id=318291\n\nReviewed by Aakash Jain.\n\n`claude` summary:\n\nEWS reports test failures and flakiness to results.webkit.org but never reads\nany of it back, so a test already known to flake still fails the build and\nblames whoever happened to be testing. `flaky_verdicts_for` consults that\nhistory for every failure a step surfaced. A clean-tree flake convicts on one\nbuild, since the change cannot have caused it. Convicting with the change in\nthe tree takes `PRS_FOR_DIRTY_TREE_FLAKE` pull requests, and blaming other\npeople's patches takes `PRS_FOR_BETWEEN_BUILD_FLAKE` and\n`AUTHORS_FOR_BETWEEN_BUILD_FLAKE`. Counting builds would not do: `build_url`\ncarries the build number, so retrying one pull request would let a change that\ngenuinely made a test non-deterministic excuse its own failure.\n\nBoth rules tally the same three sets over the same rows, so they share\n`_evidence_in`, `_convict` and `_rows_by_flaky_type`, and both report\n`build_urls` — `results_db_details` always wrote them and only the reader\nignored them. A row with a null `flaky_type` no longer raises from `sorted()`\ninside the code meant to make bad data visible.\n\nTest names ride in the query string, and a step's worth of long WPT paths\noverflows nginx's 8k request line, so `_query_flaky` asks about\n`TESTS_PER_FLAKY_QUERY` at a time, each chunk allowed\n`FLAKY_QUERY_TIMEOUT_SECONDS` rather than the 10s default that used to cover a\nsingle test. A failed chunk fails the whole query, since a partial answer reads\nas an absence of history for the rest. `TwistedAdditions.request` builds the\nquery with `urlencode(doseq=True)`, which repeats a key for a list value and\nescapes names that carry their own query string.\n\nNothing is ignored yet. `SHOULD_IGNORE_FLAKY_TESTS` is False, so a verdict is\nrecorded and logged but no test leaves the failing set and no build changes\ncolour. `SetBuildSummary` reads a `force_build_success` property rather than\nmatching `SUCCESS_MSGS` against a step's summary text, so turning that flag on\ndoes not depend on wording. `FlakyVerdict.intra_build_evidence` records whether\nany build saw the test behave inconsistently, exported per run as\n`results-db_*_run_flaky`, `_flaky_unsupported` and `_flaky_unknown`: the\nbetween-builds rule is the only one that can convict without that evidence, so\nwhether it earns its place is a property query rather than a log scrape.\n\n* Tools/CISupport/Shared/steps.py:\n(SetBuildSummary):\n(SetBuildSummary.run):\n* Tools/CISupport/ews-build/results_db.py:\n(FlakyVerdict):\n(FlakyVerdict.is_flaky):\n(FlakyVerdict.evidence):\n(ResultsDatabase):\n(ResultsDatabase._evidence_in):\n(ResultsDatabase._convict):\n(ResultsDatabase._rows_by_flaky_type):\n(ResultsDatabase._is_intra_build_flake):\n(ResultsDatabase._is_inter_build_flake):\n(ResultsDatabase._parse_results_ews_response):\n(ResultsDatabase._query_flaky):\n(ResultsDatabase.flaky_verdicts_for):\n(ResultsDatabase.flaky_verdicts_for.logger):\n* Tools/CISupport/ews-build/steps.py:\n(RunWebKitTests):\n(RunWebKitTests.__init__):\n(RunWebKitTests.runCommand):\n(RunWebKitTests.filter_failures_using_results_db):\n(RunWebKitTests.results_db_ignore_message):\n(RunWebKitTests.evaluateCommand):\n(RunWebKitTests.getResultSummary):\n(ReRunWebKitTests.evaluateCommand):\n(ReRunWebKitTests.runCommand):\n* Tools/CISupport/ews-build/steps_unittest.py:\n(TestFilterLayoutTestFailuresUsingResultsDB._configure):\n(TestFilterLayoutTestFailuresUsingResultsDB):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_a_flaky_verdict_is_recorded_without_ignoring_the_failure):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_a_test_with_no_verdict_is_not_treated_as_sound):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_the_ignore_message_covers_both_categories):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_set_build_summary_restores_success_from_the_property):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_ignoring_every_failure_sets_the_property_set_build_summary_reads):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_ignoring_every_failure_sets_the_property_set_build_summary_reads.Cmd):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_wpe_platform_is_translated_to_uppercase_for_results_db):\n(TestFilterLayoutTestFailuresUsingResultsDB.test_caps_number_of_results_db_queries):\n(TestLayoutTestStepsReportAsTheyRun):\n(TestLayoutTestStepsReportAsTheyRun.test_the_first_run_exports_the_verdicts_it_relied_on):\n(TestLayoutTestStepsReportAsTheyRun.test_the_first_run_exports_the_verdicts_it_relied_on.fake_filter):\n* Tools/CISupport/ews-build/twisted_additions.py:\n(TwistedAdditions.request):\n\nCanonical link: https://commits.webkit.org/319616@main",
      "email": "issacroy05@gmail.com",
      "hash": "24279dccdd79ccf2e03c043ea4c499f8738530a2",
      "subject": "TLF: Use historical flakiness information from EWS to ignore flaky tests"
    },
    "319618@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "319618@main",
      "clUrl": "https://commits.webkit.org/319618@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322289\nrdar://185532644\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/visionos/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319618@main",
      "email": "jespinal23@apple.com",
      "hash": "f9e2fad6eb7281828c695afa74ec7372cb506a3f",
      "subject": "[GARDENING]REGRESSION(317307@main): [visionOS] media/modern-media-controls/icon-service/icon-service-bundle-load.html (layout-tests) is a constant text failure."
    },
    "319619@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "319619@main",
      "clUrl": "https://commits.webkit.org/319619@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322287\nrdar://problem/185524214\n\nReviewed by Ryosuke Niwa and Zak Ridouh.\n\nWhen run-webkit-tests finished a run with unexpected results it opened\nresults.html in a browser. Depending on your workflow this can be\nslightly jarring and disruptive since it will happen on any invocation\nwith unexpected results - even if you are expecting those unexpected\nresults! Some informal conversations suggest that most people prefer the\nbehavior where the results file is not opened up by default.\n\nTo improve the ergonomics a bit let's make --no-show-results the default\nand introduce a --show-results to allow users to have the previous\nbehavior.\n\n--no-show-results is still accepted so that the existing invocations which\npass it explicitly.\n\n* Introduction.md:\nMake sure that the Introduction documentation is updated to reflect this\nnew behavior along with how to get the old one back.\n\n* Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:\n(Manager._end_test_run):\nWhen the test run has finished print out the the location of the results\nfile if there are any unexpected results.\n\nCanonical link: https://commits.webkit.org/319619@main",
      "email": "sammy.gill@apple.com",
      "hash": "f6f4e6b51aaefb7e34969e0fdac979a3d4c519b0",
      "subject": "run-webkit-tests should not launch a browser with results by default"
    },
    "319620@main": {
      "author": "Jetzel Espinal",
      "avatar": "https://www.gravatar.com/avatar/2edd78d5d9f2f2e2e695465277634921?d=identicon\u0026s=64",
      "cl": "319620@main",
      "clUrl": "https://commits.webkit.org/319620@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322296\nrdar://185536403\n\nUnreviewed test gardening.\n\n* LayoutTests/platform/visionos/TestExpectations:\n\nCanonical link: https://commits.webkit.org/319620@main",
      "email": "jespinal23@apple.com",
      "hash": "32377c7c9a09a52407a72c927fcf6e909207018e",
      "subject": "[GARDENING][visionOS]REGRESSION(317307@main): interaction-region/paused-video-regions.html is a constant text failure."
    },
    "319621@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "319621@main",
      "clUrl": "https://commits.webkit.org/319621@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322255\nrdar://185488178\n\nReviewed by Yijia Huang.\n\n1. ref.cast's trapping null check should be used only when\n   Options::useWasmFaultSignalHandler() is true. (in practice, currently\n   all wasm environment is having useWasmFaultSignalHandler = true).\n2. Instead of offset, we should use boundary for check skipping. But\n   actually this does not matter in practice since we end up crossing\n   trapping zone, so anyway, we get a trap correctly. But anyway,\n   computation was slightly wrong and slightly conservative.\n\nTests: JSTests/wasm/stress/ref-cast-null-without-fault-signal-handler.js\n       JSTests/wasm/stress/signaling-memory-large-offset-bounds-check.js\n\n* JSTests/wasm/stress/ref-cast-null-without-fault-signal-handler.js: Added.\n* JSTests/wasm/stress/signaling-memory-large-offset-bounds-check.js: Added.\n(loadExpression):\n(instantiateForPages):\n(async testPages):\n(async test):\n* Source/JavaScriptCore/b3/B3LowerMacros.cpp:\n* Source/JavaScriptCore/wasm/WasmBBQJIT.h:\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitCheckAndPreparePointer):\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitRefTestOrCast):\n* Source/JavaScriptCore/wasm/WasmBBQJIT64.h:\n(JSC::Wasm::BBQJITImpl::BBQJIT::emitCheckAndPrepareAndMaterializePointerApply):\n* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:\n(JSC::Wasm::OMGIRGenerator::emitCheckAndPreparePointer):\n\nCanonical link: https://commits.webkit.org/319621@main",
      "email": "ysuzuki@apple.com",
      "hash": "3b9afb2b4f23fc2eb9555835a2ce0c6ebdb26056",
      "subject": "[JSC] Fix boundary related code in BBQ / OMG"
    },
    "319622@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "319622@main",
      "clUrl": "https://commits.webkit.org/319622@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322106\nrdar://185527437\n\nReviewed by Alan Baradlay.\n\nThe CSSWG resolved that margin-trim no longer applies to flex and grid\ncontainers (w3c/csswg-drafts#14284). With those layout systems out of scope the\nproperty only applies to block containers and multi-column containers, where it\nhas no effect on the inline-axis margins of its children, so the inline,\ninline-start and inline-end keywords could never do anything. The syntax is now:\n\n    none | block | [ block-start || block-end ]\n\nIn this patch we basically remove it from the style and layout code so\nthat it is now consistent with the new grammar. With respect to the\nlayout code it was basically dead code anyways since the inline values\ndid not have any effect outside of flex and grid.\n\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Box.cpp:\n(WebCore::CSSPropertyParserHelpers::consumeMarginTrim):\nNo longer needs to build a value list: a single side\nserializes as itself and both sides collapse to block, so the four-keyword\n\"block inline\" case and the canonical-order FIXME both go away.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-inline-001-expected.html: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-inline-001.html: Removed.\nThis test asserted that margin-trim: inline does not trim\nthe inline margins of block-level children; that declaration no longer parses, so\nthe test would pass vacuously and is removed.\n\n* Source/WebCore/style/values/box/StyleMarginTrim.cpp:\n(WebCore::Style::CSSValueConversion\u003cMarginTrim\u003e::operator):\nSince all we get get is a keyword value now the logic related to the\nCSSValueList is dead and can be removed as well.\n\nCanonical link: https://commits.webkit.org/319622@main",
      "email": "sammy.gill@apple.com",
      "hash": "c2cb2f43b38d604aa1ad69640e342ce7156c68a4",
      "subject": "[margin-trim] Drop inline values from syntax"
    },
    "319623@main": {
      "author": "Claudio Saavedra",
      "avatar": "https://www.gravatar.com/avatar/376a6edb56b8e52de407ea171c869bcf?d=identicon\u0026s=64",
      "cl": "319623@main",
      "clUrl": "https://commits.webkit.org/319623@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322270\n\nReviewed by Carlos Garcia Campos.\n\nMigrate ArgumentCoder\u003cGRefPtr\u003cGUnixFDList\u003e\u003e to a generated serializer\nusing GRefPtrWrapped. The wire format is unchanged: the file descriptors\n(de)serialize as a Vector\u003cUnixFileDescriptor\u003e.\n\n* Source/WebKit/PlatformGTK.cmake:\n* Source/WebKit/PlatformWPE.cmake:\n* Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp:\n* Source/WebKit/Shared/glib/ArgumentCodersGLib.h:\n* Source/WebKit/Shared/glib/CoreIPCGUnixFDList.cpp: Added.\n(WebKit::CoreIPCGUnixFDList::CoreIPCGUnixFDList):\n(WebKit::CoreIPCGUnixFDList::fileDescriptors const):\n* Source/WebKit/Shared/glib/CoreIPCGUnixFDList.h: Added.\n* Source/WebKit/Shared/glib/CoreIPCGUnixFDList.serialization.in: Added.\n* Source/WebKit/SourcesGTK.txt:\n* Source/WebKit/SourcesWPE.txt:\n\nCanonical link: https://commits.webkit.org/319623@main",
      "email": "csaavedra@igalia.com",
      "hash": "8704a40051233695d3453eb4965b5e6653493b96",
      "subject": "[GLIB] Use GRefPtrWrapped for the GUnixFDList IPC serializer"
    },
    "319624@main": {
      "author": "Sammy Gill",
      "avatar": "https://www.gravatar.com/avatar/715a3cfee5d85ee90ccfdaa2a4a7a5a3?d=identicon\u0026s=64",
      "cl": "319624@main",
      "clUrl": "https://commits.webkit.org/319624@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=322291\nrdar://185533476\n\nReviewed by Vitor Roriz and Tim Nguyen.\n\nThe CSSWG resolved to rename the \"masonry layout\" feature to \"Grid Lanes\".\nSome of the code was already renamed but the layout code was still\nreferring to the old Masonry name and terms. Some notable changes that\nwere not a pure masonry -\u003e grid lanes remapping:\n\n- The spec renamed \"masonry axis,\" to \"stacking axis,\" so that is\n  changed as well.\n- Similarly, areMasonryColumns/Rows is changed to hasStackingAxisColumns/Rows\n  along with other functions/code with the same idea.\n- masonryGridAreaFromGridAxisSpan -\u003e gridAreaFromGridAxisSpan because\n  this is a lot more concise and is still accurate and clear.\n\nAlso a lot of the comments have been updated with the new terms and\nlinks to the new section in the spec.\n\nCanonical link: https://commits.webkit.org/319624@main",
      "email": "sammy.gill@apple.com",
      "hash": "e1e532f4f12ffb9a5afe3b573f4268364d994eb8",
      "subject": "[Grid Lanes] Rename remaining references to masonry in the code."
    },
    "319625@main": {
      "author": "Jer Noble",
      "avatar": "https://www.gravatar.com/avatar/6d2cde9be23b98223ca964cb3b7813a0?d=identicon\u0026s=64",
      "cl": "319625@main",
      "clUrl": "https://commits.webkit.org/319625@main",
      "description": "rdar://178167054\nhttps://bugs.webkit.org/show_bug.cgi?id=322239\n\nReviewed by Eric Carlson.\n\nSpotify gates music video playback on whether the following call returns true:\n\u003e WebKitMediaKeys.isTypeSupported(\"com.apple.fps.1_0\", \"video/mp2t; ...\");\n\nHowever, 312373@main fixed a bug where the MSE MediaPlayer would report that it\nwas capable of playing back MIME types like \"video/mp2t\", and web-facing APIs\nlike HTMLMediaElement.canPlayType() and WebKitMediaKeys.isTypeSupported() would\nfalsely return that those MIME types were playable.\n\nFixing this bug broke Spotify's query, which was always incorrect. Restore the\nbehavior prior to 312373@main by quirking WebKitMediaKeys.isTypeSupported()\nto return `true` when asked about MPEG-2 transport streams.\n\n* Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeys.cpp:\n(WebCore::WebKitMediaKeys::isTypeSupported):\n* Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeys.h:\n* Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeys.idl:\n* Source/WebCore/page/Quirks.cpp:\n* Source/WebCore/page/Quirks.h:\n* Source/WebCore/page/QuirksData.h:\n\nCanonical link: https://commits.webkit.org/319625@main",
      "email": "jer.noble@apple.com",
      "hash": "ef91821a05e7c4bc43099f8c20aa29fab35d6e95",
      "subject": "REGRESSION(312373@main): [iPad] Spotify music videos fail to play"
    }
  },
  "date": "2026-08-21",
  "days": 1,
  "generatedAt": "2026-08-21T22:06:15Z",
  "markdown": "## Highlights\n- **Security** Fixed a SameSite bypass where srcdoc iframes could send Strict and Lax cookies, closing a real cross-site cookie isolation hole. [commit 319605@main](https://commits.webkit.org/319605@main)\n- **UI** Unblocked Spotify music videos on iPad, a visible media regression fix for a major site. [commit 319625@main](https://commits.webkit.org/319625@main)\n- **Media** Fixed process reuse during navigation response after process swap, preventing a bad Site Isolation regression with page-hosting conflicts. [commit 319571@main](https://commits.webkit.org/319571@main)\n- **Networking** Added 2-QWAC fetching, extending certificate and transport plumbing for higher-assurance network identity flows. [commit 319551@main](https://commits.webkit.org/319551@main)\n- **Web Platform** Enabled storage site validation, tightening storage scoping behavior in a meaningful platform-facing security and privacy change. [commit 319559@main](https://commits.webkit.org/319559@main)\n- **Rendering** Shipped CSSUserSelectEnabled to stable, moving user-select behavior out of gated status and into the default platform surface. [commit 319562@main](https://commits.webkit.org/319562@main)\n- **V8** Landed a dense batch of JSC and YARR fixes and optimizations across WasmGC, regex lookbehinds, Temporal-related date math, and JIT register handling. [commit 319581@main](https://commits.webkit.org/319581@main)\n- **GPU** Added \"snorm10-10-10-2\" to GPUVertexFormat, expanding WebGPU vertex format coverage. [commit 319603@main](https://commits.webkit.org/319603@main)\n- **DevTools** Fixed Web Inspector search so JSON fetched sources correctly select the matching source line again. [commit 319555@main](https://commits.webkit.org/319555@main)\n\n## What landed by area\n\n### CSS and Rendering\n- **Rendering** Renamed remaining Grid Lanes masonry references, finishing terminology cleanup around the feature. [commit 319624@main](https://commits.webkit.org/319624@main)\n- **Web Platform** Dropped inline values from margin-trim syntax to match the current spec shape. [commit 319622@main](https://commits.webkit.org/319622@main)\n- **Rendering** Fixed margin-trim so trimmed margins do not leak into computed style. [commit 319612@main](https://commits.webkit.org/319612@main)\n- **Rendering** Simplified clamp(none, a, b) and clamp(a, b, none) into max/min forms in the style math pipeline. [commit 319614@main](https://commits.webkit.org/319614@main)\n- **A11y** Fixed list marker text exposure so names and values requests do not accidentally include marker text. [commit 319615@main](https://commits.webkit.org/319615@main)\n- **Refactor** Centralized list marker text access behind one accessor. [commit 319600@main](https://commits.webkit.org/319600@main)\n- **Rendering** Fixed line-clamp and text-overflow so ellipses still appear for non-clamped content where expected. [commit 319597@main](https://commits.webkit.org/319597@main)\n- **Rendering** Fixed false style sharing exposed by WPT lh-unit-005.html. [commit 319596@main](https://commits.webkit.org/319596@main)\n- **Rendering** Fixed corner-shape so square and notch corners no longer render like round and scoop in outlines and box-shadow spread. [commit 319606@main](https://commits.webkit.org/319606@main)\n- **Refactor** Removed the non-standard Blend node from the Style::Calculation tree. [commit 319604@main](https://commits.webkit.org/319604@main)\n- **Rendering** Made text-overflow available as an SVG presentation attribute. [commit 319563@main](https://commits.webkit.org/319563@main)\n- **Rendering** Fixed trailing whitespace trimming when setting values containing var() through CSSOM. [commit 319554@main](https://commits.webkit.org/319554@main)\n- **Rendering** Committed CSSFontFace status before client notification, fixing ordering bugs around font load state changes. [commit 319575@main](https://commits.webkit.org/319575@main)\n- **Rendering** Compensated glyph origins when substituting a space's base advance in CoreText text shaping. [commit 319556@main](https://commits.webkit.org/319556@main)\n- **Refactor** Replaced Document's two render tree booleans with an explicit RenderTreeState. [commit 319598@main](https://commits.webkit.org/319598@main)\n- **Perf** Made RenderView::frameView() inline. [commit 319582@main](https://commits.webkit.org/319582@main)\n\n### JavaScriptCore, Wasm, and Regex\n- **V8** Fixed boundary-related code in BBQ and OMG JIT paths. [commit 319621@main](https://commits.webkit.org/319621@main)\n- **V8** Fixed roundevenf and roundeven sign handling for zero in WTF math helpers used by JSC. [commit 319609@main](https://commits.webkit.org/319609@main)\n- **V8** Fixed weekDay overflow near INT32_MAX and removed duplicated logic in Temporal-related code. [commit 319583@main](https://commits.webkit.org/319583@main)\n- **V8** Emitted mutatorFence in BBQ JIT for WasmGC. [commit 319581@main](https://commits.webkit.org/319581@main)\n- **V8** Stopped clobbering scratchRegister in JIT codegen. [commit 319580@main](https://commits.webkit.org/319580@main)\n- **V8** Cleared MicrotaskCallCache when CodeBlock detaches from the VM, fixing stale cache state. [commit 319570@main](https://commits.webkit.org/319570@main)\n- **Perf** Optimized wasm array.copy and array.fill. [commit 319567@main](https://commits.webkit.org/319567@main)\n- **Build** Fixed CMake Cocoa builds so ENGINEERING_BUILD is defined and JSC restricted options are not silently disabled. [commit 319565@main](https://commits.webkit.org/319565@main)\n- **V8** Compiled regex lookbehinds containing backreferences in the YARR JIT. [commit 319561@main](https://commits.webkit.org/319561@main)\n- **V8** Fixed YARR interpreter backreference handling so failed surrogate-pair reads restore input position. [commit 319560@main](https://commits.webkit.org/319560@main)\n- **V8** Fixed a stale assertion in BBQ. [commit 319553@main](https://commits.webkit.org/319553@main)\n- **V8** Fixed BBQ i64.mul_wide register assignment on x64. [commit 319552@main](https://commits.webkit.org/319552@main)\n\n### Media, WebGL, and Graphics\n- **Media** Fixed iOS YouTube current time updates after switching playback to an AVSystemRoute. [commit 319610@main](https://commits.webkit.org/319610@main)\n- **Media** Fixed PipeWire device capture issues in the GStreamer stack. [commit 319608@main](https://commits.webkit.org/319608@main)\n- **Media** Stopped SourceBufferParserWebM from emitting negative MediaSample.duration values. [commit 319595@main](https://commits.webkit.org/319595@main)\n- **Perf** Avoided widening Latin-1 Canvas 2D text to UTF-16 and copying it twice in normalizeSpaces(). [commit 319591@main](https://commits.webkit.org/319591@main)\n- **Rendering** Made Canvas 2D hit testing and transform mutations stop depending on the canvas bitmap being materialized. [commit 319602@main](https://commits.webkit.org/319602@main)\n- **GPU** Fixed WebGL NativeImage copies to preserve straight orientation. [commit 319576@main](https://commits.webkit.org/319576@main)\n- **Mobile** Fixed macOS Site Isolation behavior where Video Viewer was clipped to the inline iframe rect instead of filling the web view. [commit 319579@main](https://commits.webkit.org/319579@main)\n- **Media** Fixed SpeechSynthesis::stop() so synchronous platform cancel callbacks do not crash and do not dispatch error events reentrantly. [commit 319573@main](https://commits.webkit.org/319573@main)\n\n### Networking, Security, and Site Isolation\n- **Security** Made Site Isolation tests that require full isolation explicitly opt out of shared process mode. [commit 319601@main](https://commits.webkit.org/319601@main)\n- **UI** Fixed cnn.com \"Sign-in with Google\" popup clipping under Site Isolation. [commit 319607@main](https://commits.webkit.org/319607@main)\n- **Networking** Resynced resource-timing from upstream WPT, pulling in current conformance coverage. [commit 319592@main](https://commits.webkit.org/319592@main)\n- **Networking** Removed handlers for site-specific quirks. [commit 319564@main](https://commits.webkit.org/319564@main)\n- **Refactor** Removed a duplicate activeQuirks function. [commit 319549@main](https://commits.webkit.org/319549@main)\n- **Security** Borrowed vectors wherever possible in PAL Crypto, reducing copying in crypto plumbing. [commit 319587@main](https://commits.webkit.org/319587@main)\n\n### Web Platform APIs, Input, and DOM Behavior\n- **Web Platform** Re-imported WPT tests for CSS Module Scripts. [commit 319584@main](https://commits.webkit.org/319584@main)\n- **Web Platform** Imported wasm-js-api.idl from upstream WPT. [commit 319572@main](https://commits.webkit.org/319572@main)\n- **Mobile** Fixed interactive-widget so the viewport updates when the value changes dynamically. [commit 319577@main](https://commits.webkit.org/319577@main)\n- **Web Platform** Fixed dead key composition abort behavior so compositionend fires correctly with proper data semantics. [commit 319578@main](https://commits.webkit.org/319578@main)\n- **Mobile** Fixed desktop-class content emulation for text extraction so maxTouchPoints, touch bindings, and screen size reflect the right model. [commit 319566@main](https://commits.webkit.org/319566@main)\n- **Privacy** Removed WebPushDaemon::toPushClientConnection. [commit 319558@main](https://commits.webkit.org/319558@main)\n\n### DevTools, Testing, and Infrastructure\n- **Build** run-webkit-tests no longer launches a browser with results by default. [commit 319619@main](https://commits.webkit.org/319619@main)\n- **Build** TLF now uses historical EWS flakiness data to ignore known flaky tests. [commit 319616@main](https://commits.webkit.org/319616@main)\n- **DevTools** Marked inspector/heap/getPreview.html as a flaky failure. [commit 319611@main](https://commits.webkit.org/319611@main)\n- **DevTools** Marked inspector/heap/getRemoteObject.html as a flaky text failure. [commit 319586@main](https://commits.webkit.org/319586@main)\n- **Security** WTFCrashWithInfo now uses __builtin_trap under static analysis. [commit 319585@main](https://commits.webkit.org/319585@main)\n- **Build** Removed imported WPT percentage-rem-low.html from TestExpectations after behavior caught up. [commit 319613@main](https://commits.webkit.org/319613@main)\n\n### Platform Ports and Build System\n- **Build** Removed RT threads on Linux. [commit 318709@main](https://commits.webkit.org/318709@main)\n- **Build** Defined dllimport for Windows Swift interop. [commit 319590@main](https://commits.webkit.org/319590@main)\n- **Build** Updated swiftc-wrapper behavior for Windows. [commit 319589@main](https://commits.webkit.org/319589@main)\n- **Build** Fixed Windows issues with WebKit_SWIFT_INTEROP_SOURCES. [commit 319588@main](https://commits.webkit.org/319588@main)\n- **Build** Fixed a JHBuild WPE runtime error when running layout tests. [commit 319593@main](https://commits.webkit.org/319593@main)\n- **Refactor** Switched GLib IPC serializers to GRefPtrWrapped for GUnixFDList. [commit 319623@main](https://commits.webkit.org/319623@main)\n- **Refactor** Switched GLib IPC serializers to GRefPtrWrapped for GTlsCertificate. [commit 319599@main](https://commits.webkit.org/319599@main)\n- **Refactor** Switched GLib IPC serializers to GRefPtrWrapped for GByteArray. [commit 319594@main](https://commits.webkit.org/319594@main)\n- **Build** Fixed IntSize::area() and unclampedArea() undefined behavior on INT_MIN. [commit 319574@main](https://commits.webkit.org/319574@main)\n\n### Test Gardening and Stability\n- **Build** Fixed a constant text failure for visionOS paused-video-regions.html. [commit 319620@main](https://commits.webkit.org/319620@main)\n- **Build** Fixed a constant text failure for visionOS icon-service-bundle-load.html. [commit 319618@main](https://commits.webkit.org/319618@main)\n- **Build** Fixed a Tahoe constant text failure in websocket inspector before-load.html. [commit 319557@main](https://commits.webkit.org/319557@main)\n- **Build** Fixed a DEBUG constant crash in SiteIsolation CrossOriginPopup API tests. [commit 319550@main](https://commits.webkit.org/319550@main)\n\n## Reverts \u0026 Reapplies",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [
    {
      "name": "Unreviewed",
      "count": 1
    }
  ],
  "since": "2026-08-21",
  "totals": {
    "commits": 77,
    "features": 76,
    "rolls": 1
  },
  "until": "2026-08-21"
}