Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream advanced privacy protections for private browsing in Safari #14677

Merged
merged 1 commit into from Jun 7, 2023

Conversation

whsieh
Copy link
Member

@whsieh whsieh commented Jun 5, 2023

7584d30

Upstream advanced privacy protections for private browsing in Safari
https://bugs.webkit.org/show_bug.cgi?id=257699
rdar://110238364

Reviewed by Aditya Keerthi, Charlie Wolfe and Matthew Finkel.

Upstream support for the suite of advanced privacy protections in Private Browsing in Safari 17.
Among other features, this includes:

    • Link decoration defenses (filtering and hiding on cross-origin navigation)
    • Tracker blocking in various forms
    • Improved fingerprinting protections (2D canvas, WebGL, web audio, screen/window geometry)
    • Opting into network-level system privacy enhancements

Covered by tests:

    • http/tests/resourceLoadStatistics/omit-document-referrer-nested-third-party-iframe-ephemeral.html
    • http/tests/resourceLoadStatistics/omit-document-referrer-third-party-iframe-ephemeral.html
    • http/tests/resourceLoadStatistics/omit-referrer-for-navigation-ephemeral.html
    • AdvancedPrivacyProtections.DoNotRemoveTrackingQueryParametersWhenPrivacyProtectionsAreDisabled
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenNavigating
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenNavigatingWithContentBlockersDisabled
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenCopyingURL
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersFromDataTransferWhenPastingURL
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenPastingURL
    • AdvancedPrivacyProtections.UpdateTrackingQueryParametersAfterInitialization
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenDecidingNavigationPolicy
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersForMainResourcesOnly
    • AdvancedPrivacyProtections.HideQueryParametersAfterCrossSiteNavigation
    • AdvancedPrivacyProtections.DoNotHideQueryParametersForFirstPartyScript
    • AdvancedPrivacyProtections.DoNotHideQueryParametersAfterEffectiveSameSiteNavigation
    • AdvancedPrivacyProtections.LinkPreconnectUsesEnhancedPrivacy
    • AdvancedPrivacyProtections.DoNotHideReferrerAfterReducingPrivacyProtections
    • AdvancedPrivacyProtections.DoNotRemoveTrackingParametersAfterReducingPrivacyProtections
    • AdvancedPrivacyProtections.HideScreenMetricsFromBindings
    • AdvancedPrivacyProtections.HideScreenSizeWithScaledPage
    • AdvancedPrivacyProtections.ClampScreenSizeToFixedValues
    • AdvancedPrivacyProtections.AddNoiseToWebAudioAPIs
    • AdvancedPrivacyProtections.VerifyHashFromNoisyCanvas2DAPI
    • AdvancedPrivacyProtections.VerifyPixelsFromNoisyCanvas2DAPI
    • AdvancedPrivacyProtections.VerifyDataURLFromNoisyWebGLAPI
    • Preconnect.PrivacyProxyRequestFlags
    • WebpagePreferences.ToggleAdvancedPrivacyProtections
    • WebpagePreferences.ExtensionPageAdvancedPrivacyProtectionsReferrer

* LayoutTests/http/tests/resourceLoadStatistics/omit-document-referrer-nested-third-party-iframe-ephemeral.html:
* LayoutTests/http/tests/resourceLoadStatistics/omit-document-referrer-third-party-iframe-ephemeral.html:
* LayoutTests/http/tests/resourceLoadStatistics/omit-referrer-for-navigation-ephemeral.html:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Modules/async-clipboard/Clipboard.cpp:
(WebCore::Clipboard::getType):
* Source/WebCore/Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):
* Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
* Source/WebCore/PAL/pal/cocoa/NetworkConnectionIntegritySoftLink.h: Removed.
* Source/WebCore/PAL/pal/cocoa/WebPrivacySoftLink.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/NetworkConnectionIntegritySPI.h.
* Source/WebCore/PAL/pal/cocoa/WebPrivacySoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/NetworkConnectionIntegritySoftLink.mm.
* Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:
* Source/WebCore/PAL/pal/spi/cocoa/WebPrivacySPI.h: Added.
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::customTrackerBlockingMessageForConsole):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::customLoadBlockingMessageForConsole): Deleted.
* Source/WebCore/contentextensions/ContentExtensionsBackend.h:
(WebCore::ContentExtensions::customTrackerBlockingMessageForConsole):
(WebCore::ContentExtensions::customLoadBlockingMessageForConsole): Deleted.
* Source/WebCore/dom/DataTransfer.cpp:
(WebCore::readURLsFromPasteboardAsString):
(WebCore::DataTransfer::readStringFromPasteboard const):
(WebCore::DataTransfer::setDataFromItemList):
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::urlForBindings const):
(WebCore::Document::adjustedURL const):
(WebCore::Document::referrerForBindings):
(WebCore::Document::noiseInjectionPolicy const):
* Source/WebCore/dom/Document.h:
* Source/WebCore/editing/Editor.cpp:
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::copyURL):
* Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::WebContentReader::readPlainText):
(WebCore::WebContentReader::readURL):
* Source/WebCore/inspector/agents/WebConsoleAgent.cpp:
(WebCore::blockedTrackerErrorMessage):
(WebCore::WebConsoleAgent::didFailLoading):
(WebCore::networkConnectionIntegrityErrorMessage): Deleted.
* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::fingerprintingProtectionsEnabled const):
(WebCore::DocumentLoader::isLoadingInHeadlessMode const): Deleted.
* Source/WebCore/loader/DocumentLoader.h:
(WebCore::DocumentLoader::setAdvancedPrivacyProtections):
(WebCore::DocumentLoader::advancedPrivacyProtections const):
(WebCore::DocumentLoader::setOriginatorAdvancedPrivacyProtections):
(WebCore::DocumentLoader::originatorAdvancedPrivacyProtections const):
(WebCore::DocumentLoader::setNetworkConnectionIntegrityPolicy): Deleted.
(WebCore::DocumentLoader::networkConnectionIntegrityPolicy const): Deleted.
(WebCore::DocumentLoader::setOriginatorNetworkConnectionIntegrityPolicy): Deleted.
(WebCore::DocumentLoader::originatorNetworkConnectionIntegrityPolicy const): Deleted.
* Source/WebCore/loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::setAdvancedPrivacyProtections):
(WebCore::FrameLoadRequest::advancedPrivacyProtections const):
(WebCore::FrameLoadRequest::setNetworkConnectionIntegrityPolicy): Deleted.
(WebCore::FrameLoadRequest::networkConnectionIntegrityPolicy const): Deleted.
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::upgradeRequestforHTTPSOnlyIfNeeded const):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::updateRequestAndAddExtraFields):
* Source/WebCore/loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::applyLinkDecorationFiltering const):
(WebCore::ChromeClient::allowedQueryParametersForAdvancedPrivacyProtections const):
(WebCore::ChromeClient::sanitizeLookalikeCharacters const): Deleted.
(WebCore::ChromeClient::allowedLookalikeCharacters const): Deleted.
* Source/WebCore/page/LinkDecorationFilteringData.h: Renamed from Source/WebCore/page/LookalikeCharactersSanitizationData.h.
(WebCore::LinkDecorationFilteringData::LinkDecorationFilteringData):
(WebCore::LinkDecorationFilteringData::linkDecoration):
(WebCore::LinkDecorationFilteringData::operator=):
(WebCore::LinkDecorationFilteringData::encode const):
(WebCore::LinkDecorationFilteringData::decode):
* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::LocalDOMWindow::outerHeight const):
(WebCore::LocalDOMWindow::outerWidth const):
(WebCore::LocalDOMWindow::screenX const):
(WebCore::LocalDOMWindow::screenY const):
* Source/WebCore/page/LocalFrame.cpp:
(WebCore::LocalFrame::screenSize const):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::fingerprintingProtectionsEnabled const):
(WebCore::Page::applyLinkDecorationFiltering const):
(WebCore::Page::allowedQueryParametersForAdvancedPrivacyProtections const):
(WebCore::Page::isLoadingInHeadlessMode const): Deleted.
(WebCore::Page::sanitizeLookalikeCharacters const): Deleted.
(WebCore::Page::allowedLookalikeCharacters const): Deleted.
* Source/WebCore/page/Page.h:
* Source/WebCore/page/Screen.cpp:
(WebCore::isLoadingInHeadlessMode):
* Source/WebCore/page/UserContentProvider.cpp:
(WebCore::applyLinkDecorationFilteringIfNeeded):
(WebCore::UserContentProvider::processContentRuleListsForLoad):
(WebCore::sanitizeLookalikeCharactersIfNeeded): Deleted.
* Source/WebCore/platform/network/AdvancedPrivacyProtections.h: Renamed from Source/WebCore/platform/network/NetworkConnectionIntegrity.h.
* Source/WebCore/platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setAsIsolatedCopy):
(WebCore::ResourceRequestBase::setUseAdvancedPrivacyProtections):
(WebCore::ResourceRequestBase::setUseNetworkConnectionIntegrity): Deleted.
* Source/WebCore/platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::RequestData::RequestData):
(WebCore::ResourceRequestBase::useAdvancedPrivacyProtections const):
(WebCore::ResourceRequestBase::useNetworkConnectionIntegrity const): Deleted.
* Source/WebCore/platform/network/cf/ResourceError.h:
(WebCore::ResourceError::blockedKnownTracker const):
(WebCore::ResourceError::compromisedNetworkConnectionIntegrity const): Deleted.
* Source/WebCore/platform/network/cf/ResourceRequest.h:
* Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
* Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::getResourceRequestPlatformData const):
(WebCore::configureRequestWithData):
* Source/WebCore/platform/network/mac/ResourceErrorMac.mm:
(failureIsDueToTrackerBlocking):
(WebCore::ResourceError::platformLazyInit):
(dueToCompromisingNetworkConnectionIntegrity): Deleted.
* Source/WebCore/rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absoluteImageURL const):
(WebCore::HitTestResult::absoluteMediaURL const):
(WebCore::HitTestResult::absoluteLinkURL const):
* Source/WebKit/NetworkProcess/BackgroundFetchLoad.cpp:
(WebKit::BackgroundFetchLoad::BackgroundFetchLoad):
* Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::startPreflight):
* Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):
* Source/WebKit/NetworkProcess/NetworkLoadChecker.h:
* Source/WebKit/NetworkProcess/NetworkLoadParameters.h:
(WebKit::NetworkLoadParameters::NetworkLoadParameters):
* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didFailLoading):
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createWebSocketTask):
* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
* Source/WebKit/NetworkProcess/NetworkSocketChannel.h:
* Source/WebKit/NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:
(WebKit::ServiceWorkerNavigationPreloader::start):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::ServiceWorkerSoftUpdateLoader):
* Source/WebKit/NetworkProcess/cache/AsyncRevalidation.cpp:
(WebKit::NetworkCache::AsyncRevalidation::AsyncRevalidation):
* Source/WebKit/NetworkProcess/cache/AsyncRevalidation.h:
* Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded):
(WebKit::NetworkCache::Cache::retrieve):
* Source/WebKit/NetworkProcess/cache/NetworkCache.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::shouldBlockTrackersForThirdPartyCloaking):
(WebKit::enableAdvancedPrivacyProtections):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::enableNetworkConnectionIntegrity): Deleted.
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):
* Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* Source/WebKit/Platform/cocoa/NetworkConnectionIntegrityHelpers.mm: Removed.
* Source/WebKit/Platform/cocoa/WebPrivacyHelpers.h: Renamed from Source/WebKit/Platform/cocoa/NetworkConnectionIntegrityHelpers.h.
(WebKit::LinkDecorationFilteringDataObserver::LinkDecorationFilteringDataObserver):
(WebKit::LinkDecorationFilteringDataObserver::create):
(WebKit::LinkDecorationFilteringDataObserver::invokeCallback):
(WebKit::LinkDecorationFilteringController::cachedStrings const):
* Source/WebKit/Platform/cocoa/WebPrivacyHelpers.mm: Added.
(-[WKWebPrivacyNotificationListener init]):
(-[WKWebPrivacyNotificationListener listenForLinkFilteringDataChanges:]):
(-[WKWebPrivacyNotificationListener dealloc]):
(-[WKWebPrivacyNotificationListener didUpdate:]):
(WebKit::LinkDecorationFilteringController::shared):
(WebKit::LinkDecorationFilteringController::observeUpdates):
(WebKit::LinkDecorationFilteringController::setCachedStrings):
(WebKit::LinkDecorationFilteringController::updateStrings):
(WebKit::requestLinkDecorationFilteringData):
(WebKit::ipAddress):
(WebKit::TrackerAddressLookupInfo::TrackerAddressLookupInfo):
(WebKit::TrackerAddressLookupInfo::owner const):
(WebKit::TrackerAddressLookupInfo::host const):
(WebKit::TrackerAddressLookupInfo::canBlock const):
(WebKit::TrackerAddressLookupInfo::populateIfNeeded):
(WebKit::TrackerAddressLookupInfo::find):
(WebKit::TrackerAddressLookupInfo::version4List):
(WebKit::TrackerAddressLookupInfo::version6List):
(WebKit::TrackerAddressLookupInfo::contains const):
(WebKit::TrackerDomainLookupInfo::TrackerDomainLookupInfo):
(WebKit::TrackerDomainLookupInfo::owner const):
(WebKit::TrackerDomainLookupInfo::canBlock const):
(WebKit::TrackerDomainLookupInfo::populateIfNeeded):
(WebKit::TrackerDomainLookupInfo::find):
(WebKit::TrackerDomainLookupInfo::list):
(WebKit::configureForAdvancedPrivacyProtections):
* Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in:
* Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.serialization.in:
* Source/WebKit/Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
* Source/WebKit/Shared/LoadParameters.h:
* Source/WebKit/Shared/NavigationActionData.h:
* Source/WebKit/Shared/NavigationActionData.serialization.in:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
* Source/WebKit/Shared/WebPageCreationParameters.h:
* Source/WebKit/Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
* Source/WebKit/Shared/WebsitePoliciesData.h:
* Source/WebKit/Shared/WebsitePoliciesData.serialization.in:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/APINavigation.h:
(API::Navigation::setOriginatorAdvancedPrivacyProtections):
(API::Navigation::originatorAdvancedPrivacyProtections const):
(API::Navigation::setOriginatorNetworkConnectionIntegrityPolicy): Deleted.
(API::Navigation::originatorNetworkConnectionIntegrityPolicy const): Deleted.
* Source/WebKit/UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didBlockLoadToKnownTracker):
(API::NavigationClient::didApplyLinkDecorationFiltering):
(API::NavigationClient::didFailLoadDueToNetworkConnectionIntegrity): Deleted.
(API::NavigationClient::didChangeLookalikeCharacters): Deleted.
* Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
(API::WebsitePolicies::data):
* Source/WebKit/UIProcess/API/APIWebsitePolicies.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences _networkConnectionIntegrityEnabled]):
(-[WKWebpagePreferences _setNetworkConnectionIntegrityEnabled:]):
(-[WKWebpagePreferences _networkConnectionIntegrityPolicy]):
(-[WKWebpagePreferences _setNetworkConnectionIntegrityPolicy:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
* Source/WebKit/UIProcess/Cocoa/NavigationState.h:
* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError):
(WebKit::NavigationState::NavigationClient::didBlockLoadToKnownTracker):
(WebKit::NavigationState::NavigationClient::didApplyLinkDecorationFiltering):
(WebKit::NavigationState::NavigationClient::didFailLoadDueToNetworkConnectionIntegrity): Deleted.
(WebKit::NavigationState::NavigationClient::didChangeLookalikeCharacters): Deleted.
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didBlockLoadToKnownTracker):
(WebKit::NetworkProcessProxy::didFailLoadDueToNetworkConnectionIntegrity): Deleted.
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in:
* Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp:
(WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy):
(WebKit::WebFramePolicyListenerProxy::didReceiveAppBoundDomainResult):
(WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults):
(WebKit::WebFramePolicyListenerProxy::didReceiveInitialLinkDecorationFilteringData):
(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::didReceiveInitialLookalikeCharacterStrings): Deleted.
* Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h:
(WebKit::WebFramePolicyListenerProxy::create):
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::setUpPolicyListenerProxy):
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::didBlockLoadToKnownTracker):
(WebKit::WebPageProxy::didApplyLinkDecorationFiltering):
(WebKit::WebPageProxy::cachedAllowedQueryParametersForAdvancedPrivacyProtections):
(WebKit::WebPageProxy::updateAllowedQueryParametersForAdvancedPrivacyProtectionsIfNeeded):
(WebKit::WebPageProxy::sendCachedLinkDecorationFilteringData):
(WebKit::WebPageProxy::waitForInitialLinkDecorationFilteringData):
(WebKit::WebPageProxy::didFailLoadDueToNetworkConnectionIntegrity): Deleted.
(WebKit::WebPageProxy::didChangeLookalikeCharacters): Deleted.
(WebKit::WebPageProxy::cachedAllowedLookalikeStrings): Deleted.
(WebKit::WebPageProxy::updateAllowedLookalikeCharacterStringsIfNeeded): Deleted.
(WebKit::WebPageProxy::sendCachedLookalikeCharacterStrings): Deleted.
(WebKit::WebPageProxy::waitForInitialLookalikeCharacterStrings): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView continueContextMenuInteraction:]):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::addParametersShared):
(WebKit::WebLoaderStrategy::preconnectTo):
* Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::connect):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
(WebKit::WebChromeClient::applyLinkDecorationFiltering const):
(WebKit::WebChromeClient::allowedQueryParametersForAdvancedPrivacyProtections const):
(WebKit::WebChromeClient::sanitizeLookalikeCharacters const): Deleted.
(WebKit::WebChromeClient::allowedLookalikeCharacters const): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::didSameDocumentNavigationForFrameViaJSHistoryAPI):
(WebKit::WebLocalFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::applyLinkDecorationFiltering):
(WebKit::WebPage::allowedQueryParametersForAdvancedPrivacyProtections):
(WebKit::WebPage::sanitizeLookalikeCharacters): Deleted.
(WebKit::WebPage::allowedLookalikeCharacters): Deleted.
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::advancedPrivacyProtections const):
(WebKit::WebFrame::networkConnectionIntegrityPolicy const): Deleted.
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::setLinkDecorationFilteringData):
(WebKit::WebPage::setAllowedQueryParametersForAdvancedPrivacyProtections):
(WebKit::WebPage::setLookalikeCharacterStrings): Deleted.
(WebKit::WebPage::setAllowedLookalikeCharacterStrings): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::applyLinkDecorationFiltering):
(WebKit::WebPage::allowedQueryParametersForAdvancedPrivacyProtections):
(WebKit::WebPage::sanitizeLookalikeCharacters): Deleted.
(WebKit::WebPage::allowedLookalikeCharacters): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::imagePositionInformation):
(WebKit::elementPositionInformation):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKit/AdvancedPrivacyProtections.mm: Added.
(-[TestWKWebView computeScreenSizeForBindings]):
(-[TestWKWebView callAsyncJavaScriptAndWait:]):
(-[TestWKWebView callAsyncJavaScriptAndWait:arguments:]):
(-[TestWKWebView collectLogsForNewConnections]):
(TestWebKitAPI::makeQueryParameterRequestHandler):
(TestWebKitAPI::makeAllowedLinkFilteringDataRequestHandler):
(TestWebKitAPI::AllowedLinkFilteringDataRequestSwizzler::AllowedLinkFilteringDataRequestSwizzler):
(TestWebKitAPI::QueryParameterRequestSwizzler::QueryParameterRequestSwizzler):
(TestWebKitAPI::QueryParameterRequestSwizzler::update):
(TestWebKitAPI::QueryParameterRequestSwizzler::waitUntilDidHandleRequest):
(TestWebKitAPI::createWebViewWithAdvancedPrivacyProtections):
(TestWebKitAPI::copyURLWithQueryParameters):
(TestWebKitAPI::setUpWebViewForTestingQueryParameterHiding):
(TestWebKitAPI::webViewAfterCrossSiteNavigationWithReducedPrivacy):
(TestWebKitAPI::makeScreenSizeSwizzler):
* Tools/TestWebKitAPI/Tests/WebKit/NetworkConnectionIntegrityTests.mm: Removed.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/audio-fingerprinting.html: Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/canvas-fingerprinting.html: Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/fingerprint-audio-worklet.js: Added.
(FingerprintGenerator):
(FingerprintGenerator.prototype.process):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/webgl-support.js: Added.
(getCanvasDataURL):
(createMatrix):
(drawScene):
(setPositionAttribute):
(setColorAttribute):
(initBuffers):
(initPositionBuffer):
(initColorBuffer):
(initShaderProgram):
(loadShader):
(main):
* Tools/WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
* Tools/WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::advancedPrivacyProtectionsEnabled const):
(WTR::TestOptions::networkConnectionIntegrityEnabled const): Deleted.
* Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::configureWebpagePreferences):

Canonical link: https://commits.webkit.org/264942@main

5d307f3

Misc iOS, tvOS & watchOS macOS Linux Windows
✅ 🧪 style ✅ 🛠 ios ✅ 🛠 mac ✅ 🛠 wpe ✅ 🛠 wincairo
✅ 🧪 bindings ✅ 🛠 ios-sim ✅ 🛠 mac-AS-debug ✅ 🧪 wpe-wk2
✅ 🧪 webkitperl ❌ 🧪 ios-wk2 🧪 api-mac ✅ 🛠 gtk
✅ 🧪 ios-wk2-wpt ✅ 🧪 mac-wk1 ✅ 🧪 gtk-wk2
✅ 🛠 🧪 jsc ✅ 🧪 api-ios ✅ 🧪 mac-wk2 ✅ 🧪 api-gtk
✅ 🛠 🧪 jsc-arm64 ✅ 🛠 tv ✅ 🧪 mac-AS-debug-wk2 ✅ 🛠 jsc-armv7
✅ 🛠 tv-sim ✅ 🧪 mac-wk2-stress ✅ 🧪 jsc-armv7-tests
✅ 🛠 🧪 merge ✅ 🛠 watch ✅ 🛠 jsc-mips
✅ 🛠 watch-sim ✅ 🧪 jsc-mips-tests

@whsieh whsieh self-assigned this Jun 5, 2023
@whsieh whsieh added the Platform Portability improvements and other general platform improvements not driven directly by site bugs. label Jun 5, 2023
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Jun 5, 2023
@whsieh whsieh removed the merging-blocked Applied to prevent a change from being merged label Jun 5, 2023
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Jun 5, 2023
@whsieh whsieh removed the merging-blocked Applied to prevent a change from being merged label Jun 5, 2023
@whsieh whsieh changed the title [iOS 17, macOS Sonoma] Upstream advanced privacy protections for private browsing in Safari Upstream advanced privacy protections for private browsing in Safari Jun 5, 2023
@webkit-early-warning-system
Copy link
Collaborator

Starting EWS tests for 230d4ad. Live statuses available at the PR page, #14677

@charliewolfe
Copy link
Member

Renamed files should also probably be changed in ./Source/WebCore/PAL/pal/PlatformMac.cmake.

@webkit-early-warning-system
Copy link
Collaborator

Starting EWS tests for e96d0b9. Live statuses available at the PR page, #14677

@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Jun 5, 2023
@charliewolfe
Copy link
Member

The function isLoadingInHeadlessMode() in Screen.cpp should also be renamed.

@whsieh whsieh removed the merging-blocked Applied to prevent a change from being merged label Jun 5, 2023
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Jun 5, 2023
Copy link
Contributor

@sysrqb sysrqb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing looks wrong to me.

@@ -2627,7 +2627,7 @@ void FrameLoader::checkLoadCompleteForThisFrame()
}
}

bool isHTTPSFirstApplicable = protector->networkConnectionIntegrityPolicy().contains(NetworkConnectionIntegrity::HTTPSFirst) && !protector->networkConnectionIntegrityPolicy().contains(NetworkConnectionIntegrity::HTTPSOnly) && !isHTTPFallbackInProgress() && (!protector->mainResourceLoader() || !protector->mainResourceLoader()->redirectCount());
bool isHTTPSFirstApplicable = protector->advancedPrivacyProtections().contains(AdvancedPrivacyProtections::HTTPSFirst) && !protector->advancedPrivacyProtections().contains(AdvancedPrivacyProtections::HTTPSOnly) && !isHTTPFallbackInProgress() && (!protector->mainResourceLoader() || !protector->mainResourceLoader()->redirectCount());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is correct, but we should think about moving these out of "Advanced Privacy Protections" now.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good point — filed https://webkit.org/b/257726.

@@ -74,7 +74,6 @@ typedef NS_OPTIONS(NSUInteger, _WKWebsiteColorSchemePreference) {
_WKWebsiteColorSchemePreferenceDark,
} WK_API_AVAILABLE(macos(13.0), ios(16.0));

// Allow controlling a per-page network connection integrity policy.
typedef NS_OPTIONS(NSUInteger, _WKWebsiteNetworkConnectionIntegrityPolicy) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we follow up this PR with another one that adds new SPI with the correct naming scheme?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep! Filed https://webkit.org/b/257725 for this.

@whsieh whsieh removed the merging-blocked Applied to prevent a change from being merged label Jun 6, 2023
Source/WebKit/SourcesCocoa.txt Outdated Show resolved Hide resolved
Source/WebCore/PAL/pal/spi/cocoa/WebPrivacySPI.h Outdated Show resolved Hide resolved
Source/WebCore/PAL/pal/spi/cocoa/WebPrivacySPI.h Outdated Show resolved Hide resolved
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Jun 7, 2023
@whsieh whsieh added merge-queue Applied to send a pull request to merge-queue and removed merging-blocked Applied to prevent a change from being merged labels Jun 7, 2023
https://bugs.webkit.org/show_bug.cgi?id=257699
rdar://110238364

Reviewed by Aditya Keerthi, Charlie Wolfe and Matthew Finkel.

Upstream support for the suite of advanced privacy protections in Private Browsing in Safari 17.
Among other features, this includes:

    • Link decoration defenses (filtering and hiding on cross-origin navigation)
    • Tracker blocking in various forms
    • Improved fingerprinting protections (2D canvas, WebGL, web audio, screen/window geometry)
    • Opting into network-level system privacy enhancements

Covered by tests:

    • http/tests/resourceLoadStatistics/omit-document-referrer-nested-third-party-iframe-ephemeral.html
    • http/tests/resourceLoadStatistics/omit-document-referrer-third-party-iframe-ephemeral.html
    • http/tests/resourceLoadStatistics/omit-referrer-for-navigation-ephemeral.html
    • AdvancedPrivacyProtections.DoNotRemoveTrackingQueryParametersWhenPrivacyProtectionsAreDisabled
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenNavigating
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenNavigatingWithContentBlockersDisabled
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenCopyingURL
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersFromDataTransferWhenPastingURL
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenPastingURL
    • AdvancedPrivacyProtections.UpdateTrackingQueryParametersAfterInitialization
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersWhenDecidingNavigationPolicy
    • AdvancedPrivacyProtections.RemoveTrackingQueryParametersForMainResourcesOnly
    • AdvancedPrivacyProtections.HideQueryParametersAfterCrossSiteNavigation
    • AdvancedPrivacyProtections.DoNotHideQueryParametersForFirstPartyScript
    • AdvancedPrivacyProtections.DoNotHideQueryParametersAfterEffectiveSameSiteNavigation
    • AdvancedPrivacyProtections.LinkPreconnectUsesEnhancedPrivacy
    • AdvancedPrivacyProtections.DoNotHideReferrerAfterReducingPrivacyProtections
    • AdvancedPrivacyProtections.DoNotRemoveTrackingParametersAfterReducingPrivacyProtections
    • AdvancedPrivacyProtections.HideScreenMetricsFromBindings
    • AdvancedPrivacyProtections.HideScreenSizeWithScaledPage
    • AdvancedPrivacyProtections.ClampScreenSizeToFixedValues
    • AdvancedPrivacyProtections.AddNoiseToWebAudioAPIs
    • AdvancedPrivacyProtections.VerifyHashFromNoisyCanvas2DAPI
    • AdvancedPrivacyProtections.VerifyPixelsFromNoisyCanvas2DAPI
    • AdvancedPrivacyProtections.VerifyDataURLFromNoisyWebGLAPI
    • Preconnect.PrivacyProxyRequestFlags
    • WebpagePreferences.ToggleAdvancedPrivacyProtections
    • WebpagePreferences.ExtensionPageAdvancedPrivacyProtectionsReferrer

* LayoutTests/http/tests/resourceLoadStatistics/omit-document-referrer-nested-third-party-iframe-ephemeral.html:
* LayoutTests/http/tests/resourceLoadStatistics/omit-document-referrer-third-party-iframe-ephemeral.html:
* LayoutTests/http/tests/resourceLoadStatistics/omit-referrer-for-navigation-ephemeral.html:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Modules/async-clipboard/Clipboard.cpp:
(WebCore::Clipboard::getType):
* Source/WebCore/Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):
* Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
* Source/WebCore/PAL/pal/cocoa/NetworkConnectionIntegritySoftLink.h: Removed.
* Source/WebCore/PAL/pal/cocoa/WebPrivacySoftLink.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/NetworkConnectionIntegritySPI.h.
* Source/WebCore/PAL/pal/cocoa/WebPrivacySoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/NetworkConnectionIntegritySoftLink.mm.
* Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:
* Source/WebCore/PAL/pal/spi/cocoa/WebPrivacySPI.h: Added.
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::customTrackerBlockingMessageForConsole):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::customLoadBlockingMessageForConsole): Deleted.
* Source/WebCore/contentextensions/ContentExtensionsBackend.h:
(WebCore::ContentExtensions::customTrackerBlockingMessageForConsole):
(WebCore::ContentExtensions::customLoadBlockingMessageForConsole): Deleted.
* Source/WebCore/dom/DataTransfer.cpp:
(WebCore::readURLsFromPasteboardAsString):
(WebCore::DataTransfer::readStringFromPasteboard const):
(WebCore::DataTransfer::setDataFromItemList):
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::urlForBindings const):
(WebCore::Document::adjustedURL const):
(WebCore::Document::referrerForBindings):
(WebCore::Document::noiseInjectionPolicy const):
* Source/WebCore/dom/Document.h:
* Source/WebCore/editing/Editor.cpp:
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::copyURL):
* Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::WebContentReader::readPlainText):
(WebCore::WebContentReader::readURL):
* Source/WebCore/inspector/agents/WebConsoleAgent.cpp:
(WebCore::blockedTrackerErrorMessage):
(WebCore::WebConsoleAgent::didFailLoading):
(WebCore::networkConnectionIntegrityErrorMessage): Deleted.
* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::fingerprintingProtectionsEnabled const):
(WebCore::DocumentLoader::isLoadingInHeadlessMode const): Deleted.
* Source/WebCore/loader/DocumentLoader.h:
(WebCore::DocumentLoader::setAdvancedPrivacyProtections):
(WebCore::DocumentLoader::advancedPrivacyProtections const):
(WebCore::DocumentLoader::setOriginatorAdvancedPrivacyProtections):
(WebCore::DocumentLoader::originatorAdvancedPrivacyProtections const):
(WebCore::DocumentLoader::setNetworkConnectionIntegrityPolicy): Deleted.
(WebCore::DocumentLoader::networkConnectionIntegrityPolicy const): Deleted.
(WebCore::DocumentLoader::setOriginatorNetworkConnectionIntegrityPolicy): Deleted.
(WebCore::DocumentLoader::originatorNetworkConnectionIntegrityPolicy const): Deleted.
* Source/WebCore/loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::setAdvancedPrivacyProtections):
(WebCore::FrameLoadRequest::advancedPrivacyProtections const):
(WebCore::FrameLoadRequest::setNetworkConnectionIntegrityPolicy): Deleted.
(WebCore::FrameLoadRequest::networkConnectionIntegrityPolicy const): Deleted.
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::upgradeRequestforHTTPSOnlyIfNeeded const):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::updateRequestAndAddExtraFields):
* Source/WebCore/loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::applyLinkDecorationFiltering const):
(WebCore::ChromeClient::allowedQueryParametersForAdvancedPrivacyProtections const):
(WebCore::ChromeClient::sanitizeLookalikeCharacters const): Deleted.
(WebCore::ChromeClient::allowedLookalikeCharacters const): Deleted.
* Source/WebCore/page/LinkDecorationFilteringData.h: Renamed from Source/WebCore/page/LookalikeCharactersSanitizationData.h.
(WebCore::LinkDecorationFilteringData::LinkDecorationFilteringData):
(WebCore::LinkDecorationFilteringData::linkDecoration):
(WebCore::LinkDecorationFilteringData::operator=):
(WebCore::LinkDecorationFilteringData::encode const):
(WebCore::LinkDecorationFilteringData::decode):
* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::LocalDOMWindow::outerHeight const):
(WebCore::LocalDOMWindow::outerWidth const):
(WebCore::LocalDOMWindow::screenX const):
(WebCore::LocalDOMWindow::screenY const):
* Source/WebCore/page/LocalFrame.cpp:
(WebCore::LocalFrame::screenSize const):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::fingerprintingProtectionsEnabled const):
(WebCore::Page::applyLinkDecorationFiltering const):
(WebCore::Page::allowedQueryParametersForAdvancedPrivacyProtections const):
(WebCore::Page::isLoadingInHeadlessMode const): Deleted.
(WebCore::Page::sanitizeLookalikeCharacters const): Deleted.
(WebCore::Page::allowedLookalikeCharacters const): Deleted.
* Source/WebCore/page/Page.h:
* Source/WebCore/page/Screen.cpp:
(WebCore::isLoadingInHeadlessMode):
* Source/WebCore/page/UserContentProvider.cpp:
(WebCore::applyLinkDecorationFilteringIfNeeded):
(WebCore::UserContentProvider::processContentRuleListsForLoad):
(WebCore::sanitizeLookalikeCharactersIfNeeded): Deleted.
* Source/WebCore/platform/network/AdvancedPrivacyProtections.h: Renamed from Source/WebCore/platform/network/NetworkConnectionIntegrity.h.
* Source/WebCore/platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setAsIsolatedCopy):
(WebCore::ResourceRequestBase::setUseAdvancedPrivacyProtections):
(WebCore::ResourceRequestBase::setUseNetworkConnectionIntegrity): Deleted.
* Source/WebCore/platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::RequestData::RequestData):
(WebCore::ResourceRequestBase::useAdvancedPrivacyProtections const):
(WebCore::ResourceRequestBase::useNetworkConnectionIntegrity const): Deleted.
* Source/WebCore/platform/network/cf/ResourceError.h:
(WebCore::ResourceError::blockedKnownTracker const):
(WebCore::ResourceError::compromisedNetworkConnectionIntegrity const): Deleted.
* Source/WebCore/platform/network/cf/ResourceRequest.h:
* Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
* Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::getResourceRequestPlatformData const):
(WebCore::configureRequestWithData):
* Source/WebCore/platform/network/mac/ResourceErrorMac.mm:
(failureIsDueToTrackerBlocking):
(WebCore::ResourceError::platformLazyInit):
(dueToCompromisingNetworkConnectionIntegrity): Deleted.
* Source/WebCore/rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absoluteImageURL const):
(WebCore::HitTestResult::absoluteMediaURL const):
(WebCore::HitTestResult::absoluteLinkURL const):
* Source/WebKit/NetworkProcess/BackgroundFetchLoad.cpp:
(WebKit::BackgroundFetchLoad::BackgroundFetchLoad):
* Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::startPreflight):
* Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):
* Source/WebKit/NetworkProcess/NetworkLoadChecker.h:
* Source/WebKit/NetworkProcess/NetworkLoadParameters.h:
(WebKit::NetworkLoadParameters::NetworkLoadParameters):
* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didFailLoading):
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createWebSocketTask):
* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
* Source/WebKit/NetworkProcess/NetworkSocketChannel.h:
* Source/WebKit/NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:
(WebKit::ServiceWorkerNavigationPreloader::start):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::ServiceWorkerSoftUpdateLoader):
* Source/WebKit/NetworkProcess/cache/AsyncRevalidation.cpp:
(WebKit::NetworkCache::AsyncRevalidation::AsyncRevalidation):
* Source/WebKit/NetworkProcess/cache/AsyncRevalidation.h:
* Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded):
(WebKit::NetworkCache::Cache::retrieve):
* Source/WebKit/NetworkProcess/cache/NetworkCache.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::shouldBlockTrackersForThirdPartyCloaking):
(WebKit::enableAdvancedPrivacyProtections):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::enableNetworkConnectionIntegrity): Deleted.
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):
* Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* Source/WebKit/Platform/cocoa/NetworkConnectionIntegrityHelpers.mm: Removed.
* Source/WebKit/Platform/cocoa/WebPrivacyHelpers.h: Renamed from Source/WebKit/Platform/cocoa/NetworkConnectionIntegrityHelpers.h.
(WebKit::LinkDecorationFilteringDataObserver::LinkDecorationFilteringDataObserver):
(WebKit::LinkDecorationFilteringDataObserver::create):
(WebKit::LinkDecorationFilteringDataObserver::invokeCallback):
(WebKit::LinkDecorationFilteringController::cachedStrings const):
* Source/WebKit/Platform/cocoa/WebPrivacyHelpers.mm: Added.
(-[WKWebPrivacyNotificationListener init]):
(-[WKWebPrivacyNotificationListener listenForLinkFilteringDataChanges:]):
(-[WKWebPrivacyNotificationListener dealloc]):
(-[WKWebPrivacyNotificationListener didUpdate:]):
(WebKit::LinkDecorationFilteringController::shared):
(WebKit::LinkDecorationFilteringController::observeUpdates):
(WebKit::LinkDecorationFilteringController::setCachedStrings):
(WebKit::LinkDecorationFilteringController::updateStrings):
(WebKit::requestLinkDecorationFilteringData):
(WebKit::ipAddress):
(WebKit::TrackerAddressLookupInfo::TrackerAddressLookupInfo):
(WebKit::TrackerAddressLookupInfo::owner const):
(WebKit::TrackerAddressLookupInfo::host const):
(WebKit::TrackerAddressLookupInfo::canBlock const):
(WebKit::TrackerAddressLookupInfo::populateIfNeeded):
(WebKit::TrackerAddressLookupInfo::find):
(WebKit::TrackerAddressLookupInfo::version4List):
(WebKit::TrackerAddressLookupInfo::version6List):
(WebKit::TrackerAddressLookupInfo::contains const):
(WebKit::TrackerDomainLookupInfo::TrackerDomainLookupInfo):
(WebKit::TrackerDomainLookupInfo::owner const):
(WebKit::TrackerDomainLookupInfo::canBlock const):
(WebKit::TrackerDomainLookupInfo::populateIfNeeded):
(WebKit::TrackerDomainLookupInfo::find):
(WebKit::TrackerDomainLookupInfo::list):
(WebKit::configureForAdvancedPrivacyProtections):
* Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in:
* Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.serialization.in:
* Source/WebKit/Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
* Source/WebKit/Shared/LoadParameters.h:
* Source/WebKit/Shared/NavigationActionData.h:
* Source/WebKit/Shared/NavigationActionData.serialization.in:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
* Source/WebKit/Shared/WebPageCreationParameters.h:
* Source/WebKit/Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
* Source/WebKit/Shared/WebsitePoliciesData.h:
* Source/WebKit/Shared/WebsitePoliciesData.serialization.in:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/APINavigation.h:
(API::Navigation::setOriginatorAdvancedPrivacyProtections):
(API::Navigation::originatorAdvancedPrivacyProtections const):
(API::Navigation::setOriginatorNetworkConnectionIntegrityPolicy): Deleted.
(API::Navigation::originatorNetworkConnectionIntegrityPolicy const): Deleted.
* Source/WebKit/UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didBlockLoadToKnownTracker):
(API::NavigationClient::didApplyLinkDecorationFiltering):
(API::NavigationClient::didFailLoadDueToNetworkConnectionIntegrity): Deleted.
(API::NavigationClient::didChangeLookalikeCharacters): Deleted.
* Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
(API::WebsitePolicies::data):
* Source/WebKit/UIProcess/API/APIWebsitePolicies.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences _networkConnectionIntegrityEnabled]):
(-[WKWebpagePreferences _setNetworkConnectionIntegrityEnabled:]):
(-[WKWebpagePreferences _networkConnectionIntegrityPolicy]):
(-[WKWebpagePreferences _setNetworkConnectionIntegrityPolicy:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
* Source/WebKit/UIProcess/Cocoa/NavigationState.h:
* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError):
(WebKit::NavigationState::NavigationClient::didBlockLoadToKnownTracker):
(WebKit::NavigationState::NavigationClient::didApplyLinkDecorationFiltering):
(WebKit::NavigationState::NavigationClient::didFailLoadDueToNetworkConnectionIntegrity): Deleted.
(WebKit::NavigationState::NavigationClient::didChangeLookalikeCharacters): Deleted.
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didBlockLoadToKnownTracker):
(WebKit::NetworkProcessProxy::didFailLoadDueToNetworkConnectionIntegrity): Deleted.
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in:
* Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp:
(WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy):
(WebKit::WebFramePolicyListenerProxy::didReceiveAppBoundDomainResult):
(WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults):
(WebKit::WebFramePolicyListenerProxy::didReceiveInitialLinkDecorationFilteringData):
(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::didReceiveInitialLookalikeCharacterStrings): Deleted.
* Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h:
(WebKit::WebFramePolicyListenerProxy::create):
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::setUpPolicyListenerProxy):
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::didBlockLoadToKnownTracker):
(WebKit::WebPageProxy::didApplyLinkDecorationFiltering):
(WebKit::WebPageProxy::cachedAllowedQueryParametersForAdvancedPrivacyProtections):
(WebKit::WebPageProxy::updateAllowedQueryParametersForAdvancedPrivacyProtectionsIfNeeded):
(WebKit::WebPageProxy::sendCachedLinkDecorationFilteringData):
(WebKit::WebPageProxy::waitForInitialLinkDecorationFilteringData):
(WebKit::WebPageProxy::didFailLoadDueToNetworkConnectionIntegrity): Deleted.
(WebKit::WebPageProxy::didChangeLookalikeCharacters): Deleted.
(WebKit::WebPageProxy::cachedAllowedLookalikeStrings): Deleted.
(WebKit::WebPageProxy::updateAllowedLookalikeCharacterStringsIfNeeded): Deleted.
(WebKit::WebPageProxy::sendCachedLookalikeCharacterStrings): Deleted.
(WebKit::WebPageProxy::waitForInitialLookalikeCharacterStrings): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView continueContextMenuInteraction:]):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::addParametersShared):
(WebKit::WebLoaderStrategy::preconnectTo):
* Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::connect):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
(WebKit::WebChromeClient::applyLinkDecorationFiltering const):
(WebKit::WebChromeClient::allowedQueryParametersForAdvancedPrivacyProtections const):
(WebKit::WebChromeClient::sanitizeLookalikeCharacters const): Deleted.
(WebKit::WebChromeClient::allowedLookalikeCharacters const): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::didSameDocumentNavigationForFrameViaJSHistoryAPI):
(WebKit::WebLocalFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::applyLinkDecorationFiltering):
(WebKit::WebPage::allowedQueryParametersForAdvancedPrivacyProtections):
(WebKit::WebPage::sanitizeLookalikeCharacters): Deleted.
(WebKit::WebPage::allowedLookalikeCharacters): Deleted.
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::advancedPrivacyProtections const):
(WebKit::WebFrame::networkConnectionIntegrityPolicy const): Deleted.
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::setLinkDecorationFilteringData):
(WebKit::WebPage::setAllowedQueryParametersForAdvancedPrivacyProtections):
(WebKit::WebPage::setLookalikeCharacterStrings): Deleted.
(WebKit::WebPage::setAllowedLookalikeCharacterStrings): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::applyLinkDecorationFiltering):
(WebKit::WebPage::allowedQueryParametersForAdvancedPrivacyProtections):
(WebKit::WebPage::sanitizeLookalikeCharacters): Deleted.
(WebKit::WebPage::allowedLookalikeCharacters): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::imagePositionInformation):
(WebKit::elementPositionInformation):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKit/AdvancedPrivacyProtections.mm: Added.
(-[TestWKWebView computeScreenSizeForBindings]):
(-[TestWKWebView callAsyncJavaScriptAndWait:]):
(-[TestWKWebView callAsyncJavaScriptAndWait:arguments:]):
(-[TestWKWebView collectLogsForNewConnections]):
(TestWebKitAPI::makeQueryParameterRequestHandler):
(TestWebKitAPI::makeAllowedLinkFilteringDataRequestHandler):
(TestWebKitAPI::AllowedLinkFilteringDataRequestSwizzler::AllowedLinkFilteringDataRequestSwizzler):
(TestWebKitAPI::QueryParameterRequestSwizzler::QueryParameterRequestSwizzler):
(TestWebKitAPI::QueryParameterRequestSwizzler::update):
(TestWebKitAPI::QueryParameterRequestSwizzler::waitUntilDidHandleRequest):
(TestWebKitAPI::createWebViewWithAdvancedPrivacyProtections):
(TestWebKitAPI::copyURLWithQueryParameters):
(TestWebKitAPI::setUpWebViewForTestingQueryParameterHiding):
(TestWebKitAPI::webViewAfterCrossSiteNavigationWithReducedPrivacy):
(TestWebKitAPI::makeScreenSizeSwizzler):
* Tools/TestWebKitAPI/Tests/WebKit/NetworkConnectionIntegrityTests.mm: Removed.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/audio-fingerprinting.html: Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/canvas-fingerprinting.html: Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/fingerprint-audio-worklet.js: Added.
(FingerprintGenerator):
(FingerprintGenerator.prototype.process):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/webgl-support.js: Added.
(getCanvasDataURL):
(createMatrix):
(drawScene):
(setPositionAttribute):
(setColorAttribute):
(initBuffers):
(initPositionBuffer):
(initColorBuffer):
(initShaderProgram):
(loadShader):
(main):
* Tools/WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
* Tools/WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::advancedPrivacyProtectionsEnabled const):
(WTR::TestOptions::networkConnectionIntegrityEnabled const): Deleted.
* Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::configureWebpagePreferences):

Canonical link: https://commits.webkit.org/264942@main
@webkit-commit-queue
Copy link
Collaborator

Committed 264942@main (7584d30): https://commits.webkit.org/264942@main

Reviewed commits have been landed. Closing PR #14677 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit 7584d30 into WebKit:main Jun 7, 2023
@webkit-commit-queue webkit-commit-queue removed the merge-queue Applied to send a pull request to merge-queue label Jun 7, 2023
@whsieh whsieh deleted the eng/257699 branch June 7, 2023 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Platform Portability improvements and other general platform improvements not driven directly by site bugs.
Projects
None yet
7 participants