Title: [273916] trunk/Source
Revision
273916
Author
achristen...@apple.com
Date
2021-03-04 13:43:33 -0800 (Thu, 04 Mar 2021)

Log Message

Remove the HTTPSUpgradeEnabled experimental feature
https://bugs.webkit.org/show_bug.cgi?id=222706

Reviewed by Simon Fraser.

Source/WebKit:

* NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: Removed.
* NetworkProcess/NetworkHTTPSUpgradeChecker.h: Removed.
* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const): Deleted.
* NetworkProcess/NetworkLoadChecker.h:
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
* NetworkProcess/NetworkResourceLoadParameters.h:
* NetworkProcess/NetworkResourceLoader.cpp:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::networkHTTPSUpgradeChecker): Deleted.
* Sources.txt:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::addParametersShared):

Source/WTF:

It was a good experimental implementation, but the feature is now implemented in makeSecureIfNecessary
and turned on and off by WKWebViewConfiguration.upgradeKnownHostsToHTTPS.

* Scripts/Preferences/WebPreferencesExperimental.yaml:

Modified Paths

Removed Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (273915 => 273916)


--- trunk/Source/WTF/ChangeLog	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WTF/ChangeLog	2021-03-04 21:43:33 UTC (rev 273916)
@@ -1,3 +1,15 @@
+2021-03-04  Alex Christensen  <achristen...@webkit.org>
+
+        Remove the HTTPSUpgradeEnabled experimental feature
+        https://bugs.webkit.org/show_bug.cgi?id=222706
+
+        Reviewed by Simon Fraser.
+
+        It was a good experimental implementation, but the feature is now implemented in makeSecureIfNecessary
+        and turned on and off by WKWebViewConfiguration.upgradeKnownHostsToHTTPS.
+
+        * Scripts/Preferences/WebPreferencesExperimental.yaml:
+
 2021-03-04  Chris Dumez  <cdu...@apple.com>
 
         [macOS][WK2] Changing the system language does not update navigator.language

Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (273915 => 273916)


--- trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml	2021-03-04 21:43:33 UTC (rev 273916)
@@ -380,19 +380,6 @@
     WebKit:
       default: false
 
-# FIXME: This is not implemented for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
-HTTPSUpgradeEnabled:
-  type: bool
-  humanReadableName: "Automatic HTTPS upgrade"
-  humanReadableDescription: "Automatic HTTPS upgrade for known supported sites"
-  defaultValue:
-    WebKitLegacy:
-      default: false
-    WebKit:
-      default: false
-    WebCore:
-      default: false
-
 HighlightAPIEnabled:
   type: bool
   humanReadableName: "Highlight API"

Modified: trunk/Source/WebKit/ChangeLog (273915 => 273916)


--- trunk/Source/WebKit/ChangeLog	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/ChangeLog	2021-03-04 21:43:33 UTC (rev 273916)
@@ -1,3 +1,30 @@
+2021-03-04  Alex Christensen  <achristen...@webkit.org>
+
+        Remove the HTTPSUpgradeEnabled experimental feature
+        https://bugs.webkit.org/show_bug.cgi?id=222706
+
+        Reviewed by Simon Fraser.
+
+        * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: Removed.
+        * NetworkProcess/NetworkHTTPSUpgradeChecker.h: Removed.
+        * NetworkProcess/NetworkLoadChecker.cpp:
+        (WebKit::NetworkLoadChecker::NetworkLoadChecker):
+        (WebKit::NetworkLoadChecker::checkRequest):
+        (WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const): Deleted.
+        * NetworkProcess/NetworkLoadChecker.h:
+        * NetworkProcess/NetworkProcess.h:
+        * NetworkProcess/NetworkResourceLoadParameters.cpp:
+        (WebKit::NetworkResourceLoadParameters::encode const):
+        (WebKit::NetworkResourceLoadParameters::decode):
+        * NetworkProcess/NetworkResourceLoadParameters.h:
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+        (WebKit::NetworkProcess::networkHTTPSUpgradeChecker): Deleted.
+        * Sources.txt:
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/Network/WebLoaderStrategy.cpp:
+        (WebKit::addParametersShared):
+
 2021-03-04  Wenson Hsieh  <wenson_hs...@apple.com>
 
         [iOS] Add support for a new image-extraction-related responder action

Deleted: trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp	2021-03-04 21:43:33 UTC (rev 273916)
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2018 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "NetworkHTTPSUpgradeChecker.h"
-
-#include "Logging.h"
-#include <WebCore/SQLiteDatabase.h>
-#include <WebCore/SQLiteStatement.h>
-#include <pal/SessionID.h>
-#include <wtf/CompletionHandler.h>
-#include <wtf/NeverDestroyed.h>
-#include <wtf/RunLoop.h>
-
-#undef RELEASE_LOG_IF_ALLOWED
-#undef RELEASE_LOG_ERROR_IF_ALLOWED
-#define RELEASE_LOG_IF_ALLOWED(sessionID, fmt, ...) RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), Network, "%p - NetworkHTTPSUpgradeChecker::" fmt, this, ##__VA_ARGS__)
-#define RELEASE_LOG_ERROR_IF_ALLOWED(sessionID, fmt, ...) RELEASE_LOG_ERROR_IF(sessionID.isAlwaysOnLoggingAllowed(), Network, "%p - NetworkHTTPSUpgradeChecker::" fmt, this, ##__VA_ARGS__)
-
-namespace WebKit {
-
-constexpr auto httpsUpgradeCheckerQuery = "SELECT host FROM hosts WHERE host = ?"_s;
-
-static const String& networkHTTPSUpgradeCheckerDatabasePath()
-{
-    static NeverDestroyed<String> networkHTTPSUpgradeCheckerDatabasePath;
-#if PLATFORM(COCOA)
-    if (networkHTTPSUpgradeCheckerDatabasePath.get().isNull()) {
-        CFBundleRef webKitBundle = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.WebKit"));
-        auto resourceURL = adoptCF(CFBundleCopyResourceURL(webKitBundle, CFSTR("HTTPSUpgradeList"), CFSTR("db"), nullptr));
-        if (resourceURL)
-            networkHTTPSUpgradeCheckerDatabasePath.get() = CFURLGetString(resourceURL.get());
-    }
-#endif // PLATFORM(COCOA)
-    return networkHTTPSUpgradeCheckerDatabasePath;
-}
-
-NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker()
-    : m_workQueue(WorkQueue::create("HTTPS Upgrade Checker Thread"))
-{
-    ASSERT(RunLoop::isMain());
-
-    m_workQueue->dispatch([this] {
-        auto path = networkHTTPSUpgradeCheckerDatabasePath();
-        if (path.isEmpty()) {
-            RELEASE_LOG_ERROR(Network, "%p - NetworkHTTPSUpgradeChecker failed to initialize because the database path is empty", this);
-            return;
-        }
-
-        m_database = makeUnique<WebCore::SQLiteDatabase>();
-        bool isDatabaseOpen = m_database->open(path, WebCore::SQLiteDatabase::OpenMode::ReadOnly);
-        if (!isDatabaseOpen) {
-#if PLATFORM(COCOA)
-            RELEASE_LOG_ERROR(Network, "%p - NetworkHTTPSUpgradeChecker::open failed, error message: %{public}s, database path: %{public}s", this, m_database->lastErrorMsg(), path.utf8().data());
-#endif
-            ASSERT_NOT_REACHED();
-            return;
-        }
-
-        // Since we are using a workerQueue, the sequential dispatch blocks may be called by different threads.
-        m_database->disableThreadingChecks();
-
-        m_statement = makeUnique<WebCore::SQLiteStatement>(*m_database, httpsUpgradeCheckerQuery);
-        int isStatementPrepared = (m_statement->prepare() == SQLITE_OK);
-        ASSERT(isStatementPrepared);
-        if (!isStatementPrepared)
-            return;
-
-        m_didSetupCompleteSuccessfully = true;
-    });
-}
-
-NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker()
-{
-    if (m_database)
-        m_workQueue->dispatch([database = WTFMove(m_database), statement = WTFMove(m_statement)] { });
-}
-
-void NetworkHTTPSUpgradeChecker::query(String&& host, PAL::SessionID sessionID, CompletionHandler<void(bool)>&& callback)
-{
-    ASSERT(RunLoop::isMain());
-
-    m_workQueue->dispatch([this, host = host.isolatedCopy(), sessionID, callback = WTFMove(callback)] () mutable {
-        ASSERT(m_didSetupCompleteSuccessfully);
-
-        int bindTextResult = m_statement->bindText(1, WTFMove(host));
-        ASSERT_UNUSED(bindTextResult, bindTextResult == SQLITE_OK);
-
-        int stepResult = m_statement->step();
-        if (stepResult != SQLITE_ROW && stepResult != SQLITE_DONE) {
-#if PLATFORM(COCOA)
-            RELEASE_LOG_ERROR_IF_ALLOWED(sessionID, "step failed with error code %d, error message: %{public}s, database path: %{public}s", stepResult, m_database->lastErrorMsg(), networkHTTPSUpgradeCheckerDatabasePath().utf8().data());
-#else
-            UNUSED_VARIABLE(sessionID);
-#endif
-            ASSERT_NOT_REACHED();
-            RunLoop::main().dispatch([callback = WTFMove(callback)] () mutable {
-                callback(false);
-            });
-            return;
-        }
-
-        int resetResult = m_statement->reset();
-        ASSERT_UNUSED(resetResult, resetResult == SQLITE_OK);
-
-        bool foundHost = (stepResult == SQLITE_ROW);
-        RELEASE_LOG_IF_ALLOWED(sessionID, "query - Ran successfully. Result = %s", (foundHost ? "true" : "false"));
-        RunLoop::main().dispatch([foundHost, callback = WTFMove(callback)] () mutable {
-            callback(foundHost);
-        });
-    });
-}
-
-} // namespace WebKit
-

Deleted: trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h	2021-03-04 21:43:33 UTC (rev 273916)
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2018 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include <atomic>
-#include <wtf/Forward.h>
-#include <wtf/UniqueRef.h>
-#include <wtf/WorkQueue.h>
-
-namespace WebCore {
-class SQLiteDatabase;
-class SQLiteStatement;
-}
-
-namespace PAL {
-class SessionID;
-}
-
-namespace WebKit {
-
-class NetworkHTTPSUpgradeChecker {
-    WTF_MAKE_FAST_ALLOCATED;
-public:
-    NetworkHTTPSUpgradeChecker();
-    ~NetworkHTTPSUpgradeChecker();
-
-    // Returns `true` after internal setup is successfully completed. If there is an error with setup, or if setup is in-progress, it will return `false`.
-    bool didSetupCompleteSuccessfully() const { return m_didSetupCompleteSuccessfully; };
-
-    // Queries database after setup is complete.
-    void query(String&&, PAL::SessionID, CompletionHandler<void(bool)>&&);
-
-private:
-    Ref<WorkQueue> m_workQueue;
-    std::unique_ptr<WebCore::SQLiteDatabase> m_database;
-    std::unique_ptr<WebCore::SQLiteStatement> m_statement;
-    std::atomic<bool> m_didSetupCompleteSuccessfully { false };
-};
-
-} // namespace WebKit
-

Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp	2021-03-04 21:43:33 UTC (rev 273916)
@@ -39,6 +39,7 @@
 #include <WebCore/LegacySchemeRegistry.h>
 #include <wtf/Scope.h>
 
+#undef RELEASE_LOG_IF_ALLOWED
 #define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(m_sessionID.isAlwaysOnLoggingAllowed(), Network, "%p - NetworkLoadChecker::" fmt, this, ##__VA_ARGS__)
 
 namespace WebKit {
@@ -50,7 +51,7 @@
     return url.protocolIsData() || url.protocolIsBlob() || !origin || origin->canRequest(url);
 }
 
-NetworkLoadChecker::NetworkLoadChecker(NetworkProcess& networkProcess, NetworkResourceLoader* networkResourceLoader, NetworkSchemeRegistry* schemeRegistry, FetchOptions&& options, PAL::SessionID sessionID, WebPageProxyIdentifier webPageProxyID, HTTPHeaderMap&& originalRequestHeaders, URL&& url, DocumentURL&& documentURL, RefPtr<SecurityOrigin>&& sourceOrigin, RefPtr<SecurityOrigin>&& topOrigin, PreflightPolicy preflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled, bool shouldCaptureExtraNetworkLoadMetrics, LoadType requestLoadType)
+NetworkLoadChecker::NetworkLoadChecker(NetworkProcess& networkProcess, NetworkResourceLoader* networkResourceLoader, NetworkSchemeRegistry* schemeRegistry, FetchOptions&& options, PAL::SessionID sessionID, WebPageProxyIdentifier webPageProxyID, HTTPHeaderMap&& originalRequestHeaders, URL&& url, DocumentURL&& documentURL, RefPtr<SecurityOrigin>&& sourceOrigin, RefPtr<SecurityOrigin>&& topOrigin, PreflightPolicy preflightPolicy, String&& referrer, bool shouldCaptureExtraNetworkLoadMetrics, LoadType requestLoadType)
     : m_options(WTFMove(options))
     , m_sessionID(sessionID)
     , m_networkProcess(networkProcess)
@@ -63,17 +64,10 @@
     , m_preflightPolicy(preflightPolicy)
     , m_referrer(WTFMove(referrer))
     , m_shouldCaptureExtraNetworkLoadMetrics(shouldCaptureExtraNetworkLoadMetrics)
-#if PLATFORM(COCOA)
-    , m_isHTTPSUpgradeEnabled(isHTTPSUpgradeEnabled)
-#endif
     , m_requestLoadType(requestLoadType)
     , m_schemeRegistry(schemeRegistry)
     , m_networkResourceLoader(makeWeakPtr(networkResourceLoader))
 {
-#if !PLATFORM(COCOA)
-    UNUSED_PARAM(isHTTPSUpgradeEnabled);
-#endif
-
     m_isSameOriginRequest = isSameOrigin(m_url, m_origin.get());
     switch (options.credentials) {
     case FetchOptions::Credentials::Include:
@@ -209,83 +203,39 @@
     return ResourceError { String { }, 0, m_url, WTFMove(message), ResourceError::Type::AccessControl };
 }
 
-void NetworkLoadChecker::applyHTTPSUpgradeIfNeeded(ResourceRequest&& request, CompletionHandler<void(ResourceRequest&&)>&& handler) const
+void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurityPolicyClient* client, ValidationHandler&& handler)
 {
-#if PLATFORM(COCOA)
-    if (!m_isHTTPSUpgradeEnabled || m_requestLoadType != LoadType::MainFrame) {
-        handler(WTFMove(request));
-        return;
-    }
+    ResourceRequest originalRequest = request;
 
-    auto& url = ""
-
-    // Only upgrade http urls.
-    if (!url.protocolIs("http")) {
-        handler(WTFMove(request));
-        return;
+    if (auto* contentSecurityPolicy = this->contentSecurityPolicy()) {
+        if (this->isRedirected()) {
+            auto type = m_options.mode == FetchOptions::Mode::Navigate ? ContentSecurityPolicy::InsecureRequestType::Navigation : ContentSecurityPolicy::InsecureRequestType::Load;
+            contentSecurityPolicy->upgradeInsecureRequestIfNeeded(request, type);
+        }
+        if (!this->isAllowedByContentSecurityPolicy(request, client)) {
+            handler(this->accessControlErrorForValidationHandler("Blocked by Content Security Policy."_s));
+            return;
+        }
     }
 
-    auto& httpsUpgradeChecker = m_networkProcess->networkHTTPSUpgradeChecker();
-
-    // Do not wait for httpsUpgradeChecker to complete its setup.
-    if (!httpsUpgradeChecker.didSetupCompleteSuccessfully()) {
-        handler(WTFMove(request));
-        return;
-    }
-
-    httpsUpgradeChecker.query(url.host().toString(), m_sessionID, [request = WTFMove(request), handler = WTFMove(handler)] (bool foundHost) mutable {
-        if (foundHost) {
-            auto newURL = request.url();
-            newURL.setProtocol("https");
-            request.setURL(newURL);
+#if ENABLE(CONTENT_EXTENSIONS)
+    this->processContentRuleListsForLoad(WTFMove(request), [weakThis = makeWeakPtr(*this), handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto&& result) mutable {
+        if (!result.has_value()) {
+            ASSERT(result.error().isCancellation());
+            handler(WTFMove(result.error()));
+            return;
         }
-
-        handler(WTFMove(request));
-    });
-#else
-    handler(WTFMove(request));
-#endif
-}
-
-void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurityPolicyClient* client, ValidationHandler&& handler)
-{
-    ResourceRequest originalRequest = request;
-
-    applyHTTPSUpgradeIfNeeded(WTFMove(request), [this, weakThis = makeWeakPtr(*this), client, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto&& request) mutable {
         if (!weakThis)
             return handler({ ResourceError { ResourceError::Type::Cancellation }});
-
-        if (auto* contentSecurityPolicy = this->contentSecurityPolicy()) {
-            if (this->isRedirected()) {
-                auto type = m_options.mode == FetchOptions::Mode::Navigate ? ContentSecurityPolicy::InsecureRequestType::Navigation : ContentSecurityPolicy::InsecureRequestType::Load;
-                contentSecurityPolicy->upgradeInsecureRequestIfNeeded(request, type);
-            }
-            if (!this->isAllowedByContentSecurityPolicy(request, client)) {
-                handler(this->accessControlErrorForValidationHandler("Blocked by Content Security Policy."_s));
-                return;
-            }
+        if (result.value().results.summary.blockedLoad) {
+            handler(weakThis->accessControlErrorForValidationHandler("Blocked by content extension"_s));
+            return;
         }
-
-#if ENABLE(CONTENT_EXTENSIONS)
-        this->processContentRuleListsForLoad(WTFMove(request), [this, weakThis = WTFMove(weakThis), handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto&& result) mutable {
-            if (!result.has_value()) {
-                ASSERT(result.error().isCancellation());
-                handler(WTFMove(result.error()));
-                return;
-            }
-            if (result.value().results.summary.blockedLoad) {
-                handler(this->accessControlErrorForValidationHandler("Blocked by content extension"_s));
-                return;
-            }
-
-            if (!weakThis)
-                return handler({ ResourceError { ResourceError::Type::Cancellation }});
-            this->continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(result.value().request), WTFMove(handler));
-        });
+        weakThis->continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(result.value().request), WTFMove(handler));
+    });
 #else
-        this->continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(request), WTFMove(handler));
+    this->continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(request), WTFMove(handler));
 #endif
-    });
 }
 
 void NetworkLoadChecker::continueCheckingRequestOrDoSyntheticRedirect(ResourceRequest&& originalRequest, ResourceRequest&& currentRequest, ValidationHandler&& handler)

Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h	2021-03-04 21:43:33 UTC (rev 273916)
@@ -60,7 +60,7 @@
 public:
     enum class LoadType : bool { MainFrame, Other };
 
-    NetworkLoadChecker(NetworkProcess&, NetworkResourceLoader*, NetworkSchemeRegistry*, WebCore::FetchOptions&&, PAL::SessionID, WebPageProxyIdentifier, WebCore::HTTPHeaderMap&&, URL&&, DocumentURL&&,  RefPtr<WebCore::SecurityOrigin>&&, RefPtr<WebCore::SecurityOrigin>&& topOrigin, WebCore::PreflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled = false, bool shouldCaptureExtraNetworkLoadMetrics = false, LoadType requestLoadType = LoadType::Other);
+    NetworkLoadChecker(NetworkProcess&, NetworkResourceLoader*, NetworkSchemeRegistry*, WebCore::FetchOptions&&, PAL::SessionID, WebPageProxyIdentifier, WebCore::HTTPHeaderMap&&, URL&&, DocumentURL&&,  RefPtr<WebCore::SecurityOrigin>&&, RefPtr<WebCore::SecurityOrigin>&& topOrigin, WebCore::PreflightPolicy, String&& referrer, bool shouldCaptureExtraNetworkLoadMetrics = false, LoadType requestLoadType = LoadType::Other);
     ~NetworkLoadChecker();
 
     struct RedirectionTriplet {
@@ -127,8 +127,6 @@
     void processContentRuleListsForLoad(WebCore::ResourceRequest&&, ContentExtensionCallback&&);
 #endif
 
-    void applyHTTPSUpgradeIfNeeded(WebCore::ResourceRequest&&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&) const;
-
     WebCore::FetchOptions m_options;
     WebCore::StoredCredentialsPolicy m_storedCredentialsPolicy;
     PAL::SessionID m_sessionID;
@@ -157,10 +155,6 @@
     bool m_checkContentExtensions { false };
     bool m_shouldCaptureExtraNetworkLoadMetrics { false };
 
-#if PLATFORM(COCOA)
-    bool m_isHTTPSUpgradeEnabled { false };
-#endif
-
     WebCore::NetworkLoadInformation m_loadInformation;
 
     LoadType m_requestLoadType;

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2021-03-04 21:43:33 UTC (rev 273916)
@@ -32,7 +32,6 @@
 #include "DownloadManager.h"
 #include "LocalStorageDatabaseTracker.h"
 #include "NetworkContentRuleListManager.h"
-#include "NetworkHTTPSUpgradeChecker.h"
 #include "SandboxExtension.h"
 #include "WebIDBServer.h"
 #include "WebPageProxyIdentifier.h"
@@ -322,10 +321,6 @@
     bool parentProcessHasServiceWorkerEntitlement() const { return true; }
 #endif
 
-#if PLATFORM(COCOA)
-    NetworkHTTPSUpgradeChecker& networkHTTPSUpgradeChecker();
-#endif
-
     const String& uiProcessBundleIdentifier() const { return m_uiProcessBundleIdentifier; }
 
     void ref() const override { ThreadSafeRefCounted<NetworkProcess>::ref(); }
@@ -586,10 +581,6 @@
     HashMap<PAL::SessionID, ServiceWorkerInfo> m_serviceWorkerInfo;
     HashMap<PAL::SessionID, std::unique_ptr<WebCore::SWServer>> m_swServers;
 #endif
-
-#if PLATFORM(COCOA)
-    std::unique_ptr<NetworkHTTPSUpgradeChecker> m_networkHTTPSUpgradeChecker;
-#endif
     
     Lock m_sessionStorageQuotaManagersLock;
     HashMap<PAL::SessionID, std::unique_ptr<SessionStorageQuotaManager>> m_sessionStorageQuotaManagers;

Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp	2021-03-04 21:43:33 UTC (rev 273916)
@@ -105,7 +105,6 @@
     encoder << shouldEnableCrossOriginResourcePolicy;
 
     encoder << frameAncestorOrigins;
-    encoder << isHTTPSUpgradeEnabled;
     encoder << pageHasResourceLoadClient;
     encoder << parentFrameID;
     encoder << crossOriginAccessControlCheckEnabled;
@@ -253,12 +252,6 @@
     if (!decoder.decode(result.frameAncestorOrigins))
         return WTF::nullopt;
 
-    Optional<bool> isHTTPSUpgradeEnabled;
-    decoder >> isHTTPSUpgradeEnabled;
-    if (!isHTTPSUpgradeEnabled)
-        return WTF::nullopt;
-    result.isHTTPSUpgradeEnabled = *isHTTPSUpgradeEnabled;
-
     Optional<bool> pageHasResourceLoadClient;
     decoder >> pageHasResourceLoadClient;
     if (!pageHasResourceLoadClient)

Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h	2021-03-04 21:43:33 UTC (rev 273916)
@@ -60,7 +60,6 @@
     WebCore::PreflightPolicy preflightPolicy { WebCore::PreflightPolicy::Consider };
     bool shouldEnableCrossOriginResourcePolicy { false };
     Vector<RefPtr<WebCore::SecurityOrigin>> frameAncestorOrigins;
-    bool isHTTPSUpgradeEnabled { false };
     bool pageHasResourceLoadClient { false };
     Optional<WebCore::FrameIdentifier> parentFrameID;
     bool crossOriginAccessControlCheckEnabled { true };

Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp	2021-03-04 21:43:33 UTC (rev 273916)
@@ -118,7 +118,7 @@
 
     if (synchronousReply || parameters.shouldRestrictHTTPResponseAccess || parameters.options.keepAlive) {
         NetworkLoadChecker::LoadType requestLoadType = isMainFrameLoad() ? NetworkLoadChecker::LoadType::MainFrame : NetworkLoadChecker::LoadType::Other;
-        m_networkLoadChecker = makeUnique<NetworkLoadChecker>(connection.networkProcess(), this,  &connection.schemeRegistry(), FetchOptions { m_parameters.options }, sessionID(), m_parameters.webPageProxyID, HTTPHeaderMap { m_parameters.originalRequestHeaders }, URL { m_parameters.request.url() }, URL { m_parameters.documentURL }, m_parameters.sourceOrigin.copyRef(), m_parameters.topOrigin.copyRef(), m_parameters.preflightPolicy, originalRequest().httpReferrer(), m_parameters.isHTTPSUpgradeEnabled, shouldCaptureExtraNetworkLoadMetrics(), requestLoadType);
+        m_networkLoadChecker = makeUnique<NetworkLoadChecker>(connection.networkProcess(), this,  &connection.schemeRegistry(), FetchOptions { m_parameters.options }, sessionID(), m_parameters.webPageProxyID, HTTPHeaderMap { m_parameters.originalRequestHeaders }, URL { m_parameters.request.url() }, URL { m_parameters.documentURL }, m_parameters.sourceOrigin.copyRef(), m_parameters.topOrigin.copyRef(), m_parameters.preflightPolicy, originalRequest().httpReferrer(), shouldCaptureExtraNetworkLoadMetrics(), requestLoadType);
         if (m_parameters.cspResponseHeaders)
             m_networkLoadChecker->setCSPResponseHeaders(ContentSecurityPolicyResponseHeaders { m_parameters.cspResponseHeaders.value() });
 #if ENABLE(CONTENT_EXTENSIONS)

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm (273915 => 273916)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm	2021-03-04 21:43:33 UTC (rev 273916)
@@ -243,11 +243,4 @@
 {
 }
 
-NetworkHTTPSUpgradeChecker& NetworkProcess::networkHTTPSUpgradeChecker()
-{
-    if (!m_networkHTTPSUpgradeChecker)
-        m_networkHTTPSUpgradeChecker = makeUnique<NetworkHTTPSUpgradeChecker>();
-    return *m_networkHTTPSUpgradeChecker;
-}
-
 } // namespace WebKit

Modified: trunk/Source/WebKit/Sources.txt (273915 => 273916)


--- trunk/Source/WebKit/Sources.txt	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/Sources.txt	2021-03-04 21:43:33 UTC (rev 273916)
@@ -64,7 +64,6 @@
 NetworkProcess/NetworkContentRuleListManager.cpp
 NetworkProcess/NetworkDataTask.cpp
 NetworkProcess/NetworkDataTaskBlob.cpp
-NetworkProcess/NetworkHTTPSUpgradeChecker.cpp
 NetworkProcess/NetworkLoad.cpp
 NetworkProcess/NetworkLoadChecker.cpp
 NetworkProcess/NetworkLoadScheduler.cpp

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (273915 => 273916)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-03-04 21:43:33 UTC (rev 273916)
@@ -1219,7 +1219,6 @@
 		57FD318622B3516C008D0E8B /* SubFrameSOAuthorizationSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FD317D22B3514A008D0E8B /* SubFrameSOAuthorizationSession.h */; };
 		57FD318722B35170008D0E8B /* WKSOAuthorizationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FD317122B35148008D0E8B /* WKSOAuthorizationDelegate.h */; };
 		587743A621C30BBE00AE9084 /* HTTPSUpgradeList.db in Resources */ = {isa = PBXBuildFile; fileRef = 587743A421C30AD800AE9084 /* HTTPSUpgradeList.db */; };
-		58E977DF21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 58E977DD21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h */; };
 		5C0B17781E7C880E00E9123C /* NetworkSocketStreamMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B17741E7C879C00E9123C /* NetworkSocketStreamMessageReceiver.cpp */; };
 		5C0B17791E7C882100E9123C /* WebSocketStreamMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B17761E7C879C00E9123C /* WebSocketStreamMessageReceiver.cpp */; };
 		5C121E842410208D00486F9B /* FrameTreeNodeData.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C121E8324101F7000486F9B /* FrameTreeNodeData.h */; };
@@ -4325,8 +4324,6 @@
 		57FD317E22B3514A008D0E8B /* WKSOAuthorizationDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKSOAuthorizationDelegate.mm; sourceTree = "<group>"; };
 		57FD317F22B3514A008D0E8B /* SOAuthorizationSession.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SOAuthorizationSession.mm; sourceTree = "<group>"; };
 		587743A421C30AD800AE9084 /* HTTPSUpgradeList.db */ = {isa = PBXFileReference; lastKnownFileType = file; name = HTTPSUpgradeList.db; path = DerivedSources/WebKit2/HTTPSUpgradeList.db; sourceTree = BUILT_PRODUCTS_DIR; };
-		58E977DC21C499FE005D92A6 /* NetworkHTTPSUpgradeChecker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkHTTPSUpgradeChecker.cpp; sourceTree = "<group>"; };
-		58E977DD21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkHTTPSUpgradeChecker.h; sourceTree = "<group>"; };
 		5C00993B2417FB7E00D53C25 /* ResourceLoadStatisticsParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadStatisticsParameters.h; sourceTree = "<group>"; };
 		5C0A10C1235241A30053E2CA /* NetworkSchemeRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkSchemeRegistry.cpp; sourceTree = "<group>"; };
 		5C0B17741E7C879C00E9123C /* NetworkSocketStreamMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkSocketStreamMessageReceiver.cpp; path = DerivedSources/WebKit2/NetworkSocketStreamMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -8449,8 +8446,6 @@
 				5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */,
 				539EB5461DC2EE40009D48CF /* NetworkDataTaskBlob.cpp */,
 				539EB5471DC2EE40009D48CF /* NetworkDataTaskBlob.h */,
-				58E977DC21C499FE005D92A6 /* NetworkHTTPSUpgradeChecker.cpp */,
-				58E977DD21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h */,
 				839901FF1BE9A01B000F3653 /* NetworkLoad.cpp */,
 				839901FE1BE9A01B000F3653 /* NetworkLoad.h */,
 				4103FBA22061BDB800C2EAF8 /* NetworkLoadChecker.cpp */,
@@ -11905,7 +11900,6 @@
 				5CBC9B8E1C652CA000A8FDCF /* NetworkDataTask.h in Headers */,
 				53BA47D11DC2EF5E004DF4AD /* NetworkDataTaskBlob.h in Headers */,
 				532159561DBAE72D0054AA3C /* NetworkDataTaskCocoa.h in Headers */,
-				58E977DF21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h in Headers */,
 				839902031BE9A02B000F3653 /* NetworkLoad.h in Headers */,
 				83D454D71BE9D3C4006C93BD /* NetworkLoadClient.h in Headers */,
 				839149651BEA838500D2D953 /* NetworkLoadParameters.h in Headers */,

Modified: trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp (273915 => 273916)


--- trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp	2021-03-04 21:06:56 UTC (rev 273915)
+++ trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp	2021-03-04 21:43:33 UTC (rev 273916)
@@ -281,8 +281,6 @@
     if (!frame)
         return;
 
-    parameters.isHTTPSUpgradeEnabled = frame->settings().HTTPSUpgradeEnabled();
-
     if (auto* page = frame->page()) {
         parameters.pageHasResourceLoadClient = page->hasResourceLoadClient();
         parameters.shouldRelaxThirdPartyCookieBlocking = page->shouldRelaxThirdPartyCookieBlocking();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to