Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ac05e4cafed5aa893fdfb19a86d27ad1583ef366 https://github.com/WebKit/WebKit/commit/ac05e4cafed5aa893fdfb19a86d27ad1583ef366 Author: Sihui Liu <sihui_...@apple.com> Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths: M Source/WebCore/Headers.cmake M Source/WebCore/Sources.txt M Source/WebCore/SourcesCocoa.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/dom/Document.cpp M Source/WebCore/loader/ResourceLoadStatistics.cpp M Source/WebCore/loader/cache/MemoryCache.cpp M Source/WebCore/page/Quirks.cpp M Source/WebCore/page/SecurityOrigin.cpp M Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp M Source/WebCore/platform/Curl.cmake R Source/WebCore/platform/PublicSuffix.h A Source/WebCore/platform/PublicSuffixStore.cpp A Source/WebCore/platform/PublicSuffixStore.h M Source/WebCore/platform/RegistrableDomain.h M Source/WebCore/platform/SourcesSoup.txt R Source/WebCore/platform/cocoa/PublicSuffixCocoa.mm A Source/WebCore/platform/cocoa/PublicSuffixStoreCocoa.mm M Source/WebCore/platform/glib/UserAgentQuirks.cpp M Source/WebCore/platform/graphics/skia/PathSkia.cpp M Source/WebCore/platform/network/NetworkStorageSession.cpp M Source/WebCore/platform/network/ResourceRequestBase.cpp M Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp M Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp M Source/WebCore/platform/network/curl/CookieJarDB.cpp R Source/WebCore/platform/network/curl/PublicSuffixCurl.cpp A Source/WebCore/platform/network/curl/PublicSuffixStoreCurl.cpp R Source/WebCore/platform/soup/PublicSuffixSoup.cpp A Source/WebCore/platform/soup/PublicSuffixStoreSoup.cpp M Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm M Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp M Source/WebKit/Shared/GoToBackForwardItemParameters.h M Source/WebKit/Shared/GoToBackForwardItemParameters.serialization.in M Source/WebKit/Shared/LoadParameters.h M Source/WebKit/Shared/LoadParameters.serialization.in M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebsiteData/WebsiteDataRecord.cpp M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm M Tools/TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp Log Message: ----------- Introduce PublicSuffixStore with cache https://bugs.webkit.org/show_bug.cgi?id=271188 rdar://124971859 Reviewed by Per Arne Vollan and Chris Dumez. Intoduce a new class PublicSuffixStore and move existing public suffix related functions into it. PublicSuffixStore can have a cache for public suffix. When the cache is in use, PublicSuffixStore searches public suffix in it before invoking platform specific code (this may help us to tighten sandbox in some process later). Currently the cache is only enabled in web process on Cocoa platforms. Before this patch, web process has a cache for finding top privately controlled domain of a given host. UI process sends (host, domain) pair to web process on load time, and web process will add the entry in cache (256605@main). This patch makes UI process send the public suffix the to web process, and makes web process store it in the new public suffix cache, since the domain cache has a size limit, and it only benefits search for the given host. Also, this patch fixes the regression from 270762@main, that web process does not update the cache on receiving LoadParameters (since setTopPrivatelyControlledDomain is dropped from LoadParameters::decode), by adding addPublicSuffix to WebPage::platformDidReceiveLoadParameters. * Source/WebCore/Headers.cmake: * Source/WebCore/Sources.txt: * Source/WebCore/SourcesCocoa.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/dom/Document.cpp: (WebCore::Document::urlForBindings const): * Source/WebCore/loader/ResourceLoadStatistics.cpp: * Source/WebCore/loader/cache/MemoryCache.cpp: * Source/WebCore/page/Quirks.cpp: (WebCore::isYahooMail): (WebCore::Quirks::shouldHideSearchFieldResultsButton const): (WebCore::Quirks::isAmazon const): (WebCore::Quirks::isGoogleMaps const): * Source/WebCore/page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::isSameSiteAs const): (WebCore::SecurityOrigin::isMatchingRegistrableDomainSuffix const): * Source/WebCore/page/csp/ContentSecurityPolicySourceList.cpp: (WebCore::ContentSecurityPolicySourceList::isValidSourceForExtensionMode): * Source/WebCore/platform/Curl.cmake: * Source/WebCore/platform/PublicSuffixStore.cpp: Added. (WebCore::PublicSuffixStore::singleton): (WebCore::PublicSuffixStore::clearHostTopPrivatelyControlledDomainCache): (WebCore::PublicSuffixStore::isPublicSuffix const): (WebCore::PublicSuffixStore::publicSuffix const): (WebCore::PublicSuffixStore::topPrivatelyControlledDomain const): * Source/WebCore/platform/PublicSuffixStore.h: Renamed from Source/WebCore/platform/PublicSuffix.h. * Source/WebCore/platform/RegistrableDomain.h: (WebCore::RegistrableDomain::uncheckedCreateFromHost): (WebCore::RegistrableDomain::registrableDomainFromHost): * Source/WebCore/platform/SourcesSoup.txt: * Source/WebCore/platform/cocoa/PublicSuffixCocoa.mm: Removed. * Source/WebCore/platform/cocoa/PublicSuffixStoreCocoa.mm: Added. (WebCore::isPublicSuffixCF): (WebCore::PublicSuffixStore::platformIsPublicSuffix const): (WebCore::PublicSuffixStore::platformTopPrivatelyControlledDomain const): (WebCore::PublicSuffixStore::enablePublicSuffixCache): (WebCore::PublicSuffixStore::addPublicSuffix): * Source/WebCore/platform/glib/UserAgentQuirks.cpp: (WebCore::UserAgentQuirks::quirksForURL): * Source/WebCore/platform/graphics/skia/PathSkia.cpp: * Source/WebCore/platform/network/NetworkStorageSession.cpp: * Source/WebCore/platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::partitionName): * Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp: * Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp: * Source/WebCore/platform/network/curl/CookieJarDB.cpp: (WebCore::CookieJarDB::hasCookies): (WebCore::CookieJarDB::canAcceptCookie): * Source/WebCore/platform/network/curl/PublicSuffixStoreCurl.cpp: Renamed from Source/WebCore/platform/network/curl/PublicSuffixCurl.cpp. (WebCore::PublicSuffixStore::platformIsPublicSuffix const): (WebCore::topPrivatelyControlledDomainInternal): (WebCore::PublicSuffixStore::platformTopPrivatelyControlledDomain const): * Source/WebCore/platform/soup/PublicSuffixStoreSoup.cpp: Renamed from Source/WebCore/platform/soup/PublicSuffixSoup.cpp. (WebCore::PublicSuffixStore::platformIsPublicSuffix const): (WebCore::permissiveTopPrivateDomain): (WebCore::PublicSuffixStore::platformTopPrivatelyControlledDomain const): * Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm: * Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp: (WebKit::NetworkDataTaskSoup::shouldAllowHSTSPolicySetting const): * Source/WebKit/Shared/GoToBackForwardItemParameters.h: * Source/WebKit/Shared/GoToBackForwardItemParameters.serialization.in: * Source/WebKit/Shared/LoadParameters.h: * Source/WebKit/Shared/LoadParameters.serialization.in: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm: (WebKit::WebExtensionMatchPattern::hostIsPublicSuffix const): * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::goToBackForwardItem): * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::launchProcessForReload): (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::goToBackForwardItem): (WebKit::WebPageProxy::resetStateAfterProcessTermination): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): (WebKit::WebProcessProxy::didExceedMemoryFootprintThreshold): * Source/WebKit/UIProcess/WebsiteData/WebsiteDataRecord.cpp: (WebKit::WebsiteDataRecord::displayNameForHostName): (WebKit::WebsiteDataRecord::displayNameForOrigin): (WebKit::WebsiteDataRecord::topPrivatelyControlledDomain): * Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters): * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::goToBackForwardItem): * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::prewarmLogs): (WebKit::WebProcess::platformInitializeProcess): * Tools/TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp: (TestWebKitAPI::TEST_F): Canonical link: https://commits.webkit.org/276505@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes