[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