[webkit-changes] [WebKit/WebKit] bceb69: Introduce updatable user agent string quirk for st...
Matthew Finkel
noreply at github.com
Sat Dec 9 15:30:52 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bceb6904160f321504dfccf7d2d5fe8f0a91b7bd
https://github.com/WebKit/WebKit/commit/bceb6904160f321504dfccf7d2d5fe8f0a91b7bd
Author: Matthew Finkel <sysrqb at apple.com>
Date: 2023-12-09 (Sat, 09 Dec 2023)
Changed paths:
M Source/WebCore/PAL/pal/cocoa/WebPrivacySoftLink.h
M Source/WebCore/PAL/pal/cocoa/WebPrivacySoftLink.mm
M Source/WebCore/PAL/pal/spi/cocoa/WebPrivacySPI.h
M Source/WebCore/loader/FrameLoader.cpp
M Source/WebCore/page/Quirks.cpp
M Source/WebCore/page/Quirks.h
M Source/WebKit/Platform/cocoa/WebPrivacyHelpers.h
M Source/WebKit/Platform/cocoa/WebPrivacyHelpers.mm
M Source/WebKit/Shared/WebProcessCreationParameters.h
M Source/WebKit/Shared/WebProcessCreationParameters.serialization.in
M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessPool.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
M Source/WebKit/WebProcess/WebProcess.cpp
M Source/WebKit/WebProcess/WebProcess.h
M Source/WebKit/WebProcess/WebProcess.messages.in
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm
Log Message:
-----------
Introduce updatable user agent string quirk for storage access via WebPrivacy
https://bugs.webkit.org/show_bug.cgi?id=265811
rdar://119148523
Reviewed by Wenson Hsieh.
Currently we only have support for hard-coded user agent string quirks. This
patch introduces a new remotely updatable mechanism for quirking a request's
user agent string when it relates to quirking for storage access. On some sites
quirking the storage access prompt isn't sufficient, and those sites require
quirking the user agent string, as well.
* Source/WebCore/PAL/pal/cocoa/WebPrivacySoftLink.h:
* Source/WebCore/PAL/pal/cocoa/WebPrivacySoftLink.mm:
* Source/WebCore/PAL/pal/spi/cocoa/WebPrivacySPI.h:
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::userAgent const):
* Source/WebCore/page/Quirks.cpp:
(WebCore::updatableStorageAccessUserAgentStringQuirks):
(WebCore::Quirks::updateStorageAccessUserAgentStringQuirks):
(WebCore::Quirks::storageAccessUserAgentStringQuirkForDomain):
* Source/WebCore/page/Quirks.h:
* Source/WebKit/Platform/cocoa/WebPrivacyHelpers.h:
(WebKit::StorageAccessUserAgentStringQuirkObserver::create):
(WebKit::StorageAccessUserAgentStringQuirkObserver::invokeCallback):
(WebKit::StorageAccessUserAgentStringQuirkObserver::StorageAccessUserAgentStringQuirkObserver):
(WebKit::StorageAccessUserAgentStringQuirkController::cachedQuirks const):
* Source/WebKit/Platform/cocoa/WebPrivacyHelpers.mm:
(-[WKWebPrivacyNotificationListener listenForStorageAccessUserAgentStringQuirkChanges:]):
(-[WKWebPrivacyNotificationListener didUpdate:]):
(WebKit::StorageAccessUserAgentStringQuirkController::shared):
(WebKit::StorageAccessUserAgentStringQuirkController::observeUpdates):
(WebKit::StorageAccessUserAgentStringQuirkController::setCachedQuirks):
(WebKit::StorageAccessUserAgentStringQuirkController::setCachedQuirksForTesting):
(WebKit::StorageAccessUserAgentStringQuirkController::updateQuirks):
* Source/WebKit/Shared/WebProcessCreationParameters.h:
* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in:
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _setUserAgentStringQuirkForTesting:withUserAgent:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setUserAgentStringQuirkForTesting):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::updateStorageAccessUserAgentStringQuirks):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(TEST):
Canonical link: https://commits.webkit.org/271815@main
More information about the webkit-changes
mailing list