[webkit-changes] [WebKit/WebKit] 634cc1: Support <link rel=dns-prefetch> on iOS and remove ...

Anne van Kesteren noreply at github.com
Wed Feb 12 23:42:11 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 634cc1e388c3f0650e412272e431a84b395303ea
      https://github.com/WebKit/WebKit/commit/634cc1e388c3f0650e412272e431a84b395303ea
  Author: Anne van Kesteren <annevk at annevk.nl>
  Date:   2025-02-12 (Wed, 12 Feb 2025)

  Changed paths:
    M LayoutTests/http/tests/misc/dns-prefetch-control-expected.txt
    M LayoutTests/http/tests/misc/dns-prefetch-control.html
    R LayoutTests/http/tests/misc/resources/dns-prefetch-control.py
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/Document.h
    M Source/WebCore/html/HTMLAnchorElement.cpp
    M Source/WebCore/html/LinkRelAttribute.cpp
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/LinkLoader.cpp
    M Source/WebCore/page/Chrome.cpp
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    M Source/WebCore/page/SettingsBase.cpp
    M Source/WebCore/page/SettingsBase.h
    M Source/WebCore/platform/network/HTTPHeaderNames.in
    M Source/WebCore/platform/network/ResourceResponseBase.cpp
    M Source/WebKit/UIProcess/API/C/WKPreferences.cpp
    M Source/WebKit/UIProcess/API/C/WKPreferencesRef.h
    M Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h
    M Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitSettings.h.in
    M Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestRule.mm
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
    M Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h
    M Source/WebKitLegacy/mac/WebView/WebPreferences.mm
    M Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h
    M Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp

  Log Message:
  -----------
  Support <link rel=dns-prefetch> on iOS and remove privacy-invasive DNS prefetching features
https://bugs.webkit.org/show_bug.cgi?id=285744
rdar://144699889

Reviewed by Alex Christensen.

This was initially landed as 288915 at main and backed out in 288920 at main
because it was not understood all functionality was enabled for macOS.

This commit wants to reland 288915 at main as-is, but now with the
understanding that this removes privacy-invasive and proprietary DNS
prefetching features from macOS, while continuing to support the
standardized <link rel=dns-prefetch> and extending that support to iOS
and other WebKit ports.

* LayoutTests/http/tests/misc/dns-prefetch-control-expected.txt:
* LayoutTests/http/tests/misc/dns-prefetch-control.html:
* LayoutTests/http/tests/misc/resources/dns-prefetch-control.py: Removed.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::processMetaHttpEquiv):
(WebCore::Document::initDNSPrefetch): Deleted.
(WebCore::Document::isDNSPrefetchEnabled const): Deleted.
(WebCore::Document::parseDNSPrefetchControlHeader): Deleted.
* Source/WebCore/dom/Document.h:
* Source/WebCore/html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::attributeChanged):
* Source/WebCore/html/LinkRelAttribute.cpp:
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
* Source/WebCore/loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLink):
* Source/WebCore/page/Chrome.cpp:
(WebCore::Chrome::mouseDidMoveOverElement):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::dnsPrefetchingStateChanged): Deleted.
* Source/WebCore/page/Page.h:
* Source/WebCore/page/SettingsBase.cpp:
(WebCore::SettingsBase::dnsPrefetchingEnabledChanged): Deleted.
* Source/WebCore/page/SettingsBase.h:
* Source/WebCore/platform/network/HTTPHeaderNames.in:
* Source/WebCore/platform/network/ResourceResponseBase.cpp:
(WebCore::isSafeCrossOriginResponseHeader):
* Source/WebKit/UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetDNSPrefetchingEnabled):
(WKPreferencesGetDNSPrefetchingEnabled):
(WKPreferencesSetRestrictedHTTPResponseAccess):
* Source/WebKit/UIProcess/API/C/WKPreferencesRef.h:
* Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setDNSPrefetchingEnabled:]):
(-[WKPreferences _dnsPrefetchingEnabled]):
* Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:
(webkit_settings_class_init):
(webkit_settings_get_enable_dns_prefetching):
(webkit_settings_set_enable_dns_prefetching):
* Source/WebKit/UIProcess/API/glib/WebKitSettings.h.in:
* Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestRule.mm:
(isHeaderNameValid):
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
* Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h:
* Source/WebKitLegacy/mac/WebView/WebPreferences.mm:
(-[WebPreferences isDNSPrefetchingEnabled]):
(-[WebPreferences setDNSPrefetchingEnabled:]):
* Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:
* Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettings):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list