Diff
Modified: trunk/Source/WebCore/ChangeLog (251145 => 251146)
--- trunk/Source/WebCore/ChangeLog 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebCore/ChangeLog 2019-10-15 17:19:08 UTC (rev 251146)
@@ -1,3 +1,16 @@
+2019-10-15 Alex Christensen <achristen...@webkit.org>
+
+ Unreviewed, rolling out r251138.
+
+ Broke API tests
+
+ Reverted changeset:
+
+ "Pass CORS-enabled schemes through WebProcess instead of
+ having them NetworkProcess-global"
+ https://bugs.webkit.org/show_bug.cgi?id=202891
+ https://trac.webkit.org/changeset/251138
+
2019-10-15 Chris Dumez <cdu...@apple.com>
Stop using inheritance for WebBackForwardCacheEntry
Modified: trunk/Source/WebCore/platform/LegacySchemeRegistry.cpp (251145 => 251146)
--- trunk/Source/WebCore/platform/LegacySchemeRegistry.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebCore/platform/LegacySchemeRegistry.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -26,7 +26,6 @@
#include "config.h"
#include "LegacySchemeRegistry.h"
-#include "RuntimeApplicationChecks.h"
#include <wtf/Lock.h>
#include <wtf/Locker.h>
#include <wtf/MainThread.h>
@@ -422,7 +421,6 @@
void LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(const String& scheme)
{
- ASSERT(!isInNetworkProcess());
if (scheme.isNull())
return;
CORSEnabledSchemes().add(scheme);
@@ -430,16 +428,9 @@
bool LegacySchemeRegistry::shouldTreatURLSchemeAsCORSEnabled(const String& scheme)
{
- ASSERT(!isInNetworkProcess());
return !scheme.isNull() && CORSEnabledSchemes().contains(scheme);
}
-Vector<String> LegacySchemeRegistry::allURLSchemesRegisteredAsCORSEnabled()
-{
- ASSERT(!isInNetworkProcess());
- return copyToVector(CORSEnabledSchemes());
-}
-
void LegacySchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy(const String& scheme)
{
if (scheme.isNull())
Modified: trunk/Source/WebCore/platform/LegacySchemeRegistry.h (251145 => 251146)
--- trunk/Source/WebCore/platform/LegacySchemeRegistry.h 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebCore/platform/LegacySchemeRegistry.h 2019-10-15 17:19:08 UTC (rev 251146)
@@ -81,7 +81,6 @@
// Allow non-HTTP schemes to be registered to allow CORS requests.
WEBCORE_EXPORT static void registerURLSchemeAsCORSEnabled(const String& scheme);
WEBCORE_EXPORT static bool shouldTreatURLSchemeAsCORSEnabled(const String& scheme);
- WEBCORE_EXPORT static Vector<String> allURLSchemesRegisteredAsCORSEnabled();
// Allow resources from some schemes to load on a page, regardless of its
// Content Security Policy.
Modified: trunk/Source/WebKit/ChangeLog (251145 => 251146)
--- trunk/Source/WebKit/ChangeLog 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/ChangeLog 2019-10-15 17:19:08 UTC (rev 251146)
@@ -1,3 +1,16 @@
+2019-10-15 Alex Christensen <achristen...@webkit.org>
+
+ Unreviewed, rolling out r251138.
+
+ Broke API tests
+
+ Reverted changeset:
+
+ "Pass CORS-enabled schemes through WebProcess instead of
+ having them NetworkProcess-global"
+ https://bugs.webkit.org/show_bug.cgi?id=202891
+ https://trac.webkit.org/changeset/251138
+
2019-10-15 Chris Dumez <cdu...@apple.com>
Stop using inheritance for WebBackForwardCacheEntry
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -42,7 +42,6 @@
#include "NetworkResourceLoadParameters.h"
#include "NetworkResourceLoader.h"
#include "NetworkResourceLoaderMessages.h"
-#include "NetworkSchemeRegistry.h"
#include "NetworkSession.h"
#include "NetworkSocketChannel.h"
#include "NetworkSocketChannelMessages.h"
@@ -94,7 +93,6 @@
, m_mdnsRegister(*this)
#endif
, m_webProcessIdentifier(webProcessIdentifier)
- , m_schemeRegistry(NetworkSchemeRegistry::create())
{
RELEASE_ASSERT(RunLoop::isMain());
@@ -443,7 +441,7 @@
};
// PingLoad manages its own lifetime, deleting itself when its purpose has been fulfilled.
- new PingLoad(*this, WTFMove(loadParameters), WTFMove(completionHandler));
+ new PingLoad(*this, networkProcess(), WTFMove(loadParameters), WTFMove(completionHandler));
}
void NetworkConnectionToWebProcess::setOnLineState(bool isOnLine)
@@ -532,12 +530,6 @@
loader->convertToDownload(downloadID, request, response);
}
-void NetworkConnectionToWebProcess::registerURLSchemesAsCORSEnabled(Vector<String>&& schemes)
-{
- for (auto&& scheme : schemes)
- m_schemeRegistry->registerURLSchemeAsCORSEnabled(WTFMove(scheme));
-}
-
void NetworkConnectionToWebProcess::cookiesForDOM(const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<FrameIdentifier> frameID, Optional<PageIdentifier> pageID, IncludeSecureCookies includeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&& completionHandler)
{
auto* networkStorageSession = storageSession();
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2019-10-15 17:19:08 UTC (rev 251146)
@@ -62,7 +62,6 @@
namespace WebKit {
-class NetworkSchemeRegistry;
class NetworkProcess;
class NetworkResourceLoader;
class NetworkSession;
@@ -160,8 +159,6 @@
void serverToContextConnectionNoLongerNeeded();
#endif
- NetworkSchemeRegistry& schemeRegistry() { return m_schemeRegistry.get(); }
-
private:
NetworkConnectionToWebProcess(NetworkProcess&, WebCore::ProcessIdentifier, PAL::SessionID, IPC::Connection::Identifier);
@@ -191,8 +188,6 @@
void startDownload(DownloadID, const WebCore::ResourceRequest&, const String& suggestedName = { });
void convertMainResourceLoadToDownload(uint64_t mainResourceLoadIdentifier, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
- void registerURLSchemesAsCORSEnabled(Vector<String>&& schemes);
-
void cookiesForDOM(const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<WebCore::FrameIdentifier>, Optional<WebCore::PageIdentifier>, WebCore::IncludeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&&);
void setCookiesFromDOM(const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<WebCore::FrameIdentifier>, Optional<WebCore::PageIdentifier>, const String&);
void cookiesEnabled(CompletionHandler<void(bool)>&&);
@@ -346,7 +341,6 @@
HashSet<WebCore::MessagePortIdentifier> m_processEntangledPorts;
HashMap<uint64_t, Function<void()>> m_messageBatchDeliveryCompletionHandlers;
- Ref<NetworkSchemeRegistry> m_schemeRegistry;
};
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in 2019-10-15 17:19:08 UTC (rev 251146)
@@ -92,5 +92,4 @@
PostMessageToRemote(struct WebCore::MessageWithMessagePorts message, struct WebCore::MessagePortIdentifier remote)
CheckRemotePortForActivity(struct WebCore::MessagePortIdentifier port) -> (bool hasActivity) Async
DidDeliverMessagePortMessages(uint64_t messageBatchIdentifier)
- RegisterURLSchemesAsCORSEnabled(Vector<String> schemes);
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -30,7 +30,6 @@
#include "Logging.h"
#include "NetworkCORSPreflightChecker.h"
#include "NetworkProcess.h"
-#include "NetworkSchemeRegistry.h"
#include <WebCore/ContentRuleListResults.h>
#include <WebCore/ContentSecurityPolicy.h>
#include <WebCore/CrossOriginAccessControl.h>
@@ -49,10 +48,10 @@
return url.protocolIsData() || url.protocolIsBlob() || !origin || origin->canRequest(url);
}
-NetworkLoadChecker::NetworkLoadChecker(Ref<NetworkProcess>&& networkProcess, RefPtr<NetworkSchemeRegistry>&& schemeRegistry, FetchOptions&& options, PAL::SessionID sessionID, WebPageProxyIdentifier webPageProxyID, HTTPHeaderMap&& originalRequestHeaders, URL&& url, RefPtr<SecurityOrigin>&& sourceOrigin, RefPtr<SecurityOrigin>&& topOrigin, PreflightPolicy preflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled, bool shouldCaptureExtraNetworkLoadMetrics, LoadType requestLoadType)
+NetworkLoadChecker::NetworkLoadChecker(NetworkProcess& networkProcess, FetchOptions&& options, PAL::SessionID sessionID, WebPageProxyIdentifier webPageProxyID, HTTPHeaderMap&& originalRequestHeaders, URL&& url, RefPtr<SecurityOrigin>&& sourceOrigin, RefPtr<SecurityOrigin>&& topOrigin, PreflightPolicy preflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled, bool shouldCaptureExtraNetworkLoadMetrics, LoadType requestLoadType)
: m_options(WTFMove(options))
, m_sessionID(sessionID)
- , m_networkProcess(WTFMove(networkProcess))
+ , m_networkProcess(networkProcess)
, m_webPageProxyID(webPageProxyID)
, m_originalRequestHeaders(WTFMove(originalRequestHeaders))
, m_url(WTFMove(url))
@@ -63,7 +62,6 @@
, m_shouldCaptureExtraNetworkLoadMetrics(shouldCaptureExtraNetworkLoadMetrics)
, m_isHTTPSUpgradeEnabled(isHTTPSUpgradeEnabled)
, m_requestLoadType(requestLoadType)
- , m_schemeRegistry(WTFMove(schemeRegistry))
{
m_isSameOriginRequest = isSameOrigin(m_url, m_origin.get());
switch (options.credentials) {
@@ -438,7 +436,7 @@
if (m_options.mode == FetchOptions::Mode::NoCors || m_options.mode == FetchOptions::Mode::Navigate)
return true;
- if (m_schemeRegistry && !m_schemeRegistry->shouldTreatURLSchemeAsCORSEnabled(url.protocol()))
+ if (!LegacySchemeRegistry::shouldTreatURLSchemeAsCORSEnabled(url.protocol().toStringWithoutCopying()))
return true;
return m_isSameOriginRequest;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h 2019-10-15 17:19:08 UTC (rev 251146)
@@ -50,7 +50,6 @@
class NetworkCORSPreflightChecker;
class NetworkProcess;
-class NetworkSchemeRegistry;
class NetworkLoadChecker : public CanMakeWeakPtr<NetworkLoadChecker> {
WTF_MAKE_FAST_ALLOCATED;
@@ -57,7 +56,7 @@
public:
enum class LoadType : bool { MainFrame, Other };
- NetworkLoadChecker(Ref<NetworkProcess>&&, RefPtr<NetworkSchemeRegistry>&&, WebCore::FetchOptions&&, PAL::SessionID, WebPageProxyIdentifier, WebCore::HTTPHeaderMap&&, URL&&, RefPtr<WebCore::SecurityOrigin>&&, RefPtr<WebCore::SecurityOrigin>&& topOrigin, WebCore::PreflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled = false, bool shouldCaptureExtraNetworkLoadMetrics = false, LoadType requestLoadType = LoadType::Other);
+ NetworkLoadChecker(NetworkProcess&, WebCore::FetchOptions&&, PAL::SessionID, WebPageProxyIdentifier, WebCore::HTTPHeaderMap&&, URL&&, RefPtr<WebCore::SecurityOrigin>&&, RefPtr<WebCore::SecurityOrigin>&& topOrigin, WebCore::PreflightPolicy, String&& referrer, bool isHTTPSUpgradeEnabled = false, bool shouldCaptureExtraNetworkLoadMetrics = false, LoadType requestLoadType = LoadType::Other);
~NetworkLoadChecker();
struct RedirectionTriplet {
@@ -156,7 +155,6 @@
WebCore::NetworkLoadInformation m_loadInformation;
LoadType m_requestLoadType;
- RefPtr<NetworkSchemeRegistry> m_schemeRegistry;
};
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -350,6 +350,9 @@
for (auto& scheme : parameters.urlSchemesRegisteredAsNoAccess)
registerURLSchemeAsNoAccess(scheme);
+ for (auto& scheme : parameters.urlSchemesRegisteredAsCORSEnabled)
+ registerURLSchemeAsCORSEnabled(scheme);
+
for (auto& scheme : parameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest)
registerURLSchemeAsCanDisplayOnlyIfCanRequest(scheme);
@@ -2218,6 +2221,11 @@
LegacySchemeRegistry::registerURLSchemeAsNoAccess(scheme);
}
+void NetworkProcess::registerURLSchemeAsCORSEnabled(const String& scheme) const
+{
+ LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(scheme);
+}
+
void NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest(const String& scheme) const
{
LegacySchemeRegistry::registerAsCanDisplayOnlyIfCanRequest(scheme);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2019-10-15 17:19:08 UTC (rev 251146)
@@ -145,6 +145,7 @@
RegisterURLSchemeAsBypassingContentSecurityPolicy(String scheme)
RegisterURLSchemeAsLocal(String scheme)
RegisterURLSchemeAsNoAccess(String scheme)
+ RegisterURLSchemeAsCORSEnabled(String scheme)
RegisterURLSchemeAsCanDisplayOnlyIfCanRequest(String scheme)
SetCacheStorageParameters(PAL::SessionID sessionID, String cacheStorageDirectory, WebKit::SandboxExtension::Handle handle);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -72,6 +72,7 @@
encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy;
encoder << urlSchemesRegisteredAsLocal;
encoder << urlSchemesRegisteredAsNoAccess;
+ encoder << urlSchemesRegisteredAsCORSEnabled;
encoder << urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest;
#if ENABLE(SERVICE_WORKER)
@@ -158,6 +159,8 @@
return false;
if (!decoder.decode(result.urlSchemesRegisteredAsNoAccess))
return false;
+ if (!decoder.decode(result.urlSchemesRegisteredAsCORSEnabled))
+ return false;
if (!decoder.decode(result.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest))
return false;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2019-10-15 17:19:08 UTC (rev 251146)
@@ -90,6 +90,7 @@
Vector<String> urlSchemesRegisteredAsLocal;
Vector<String> urlSchemesRegisteredAsNoAccess;
Vector<String> urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest;
+ Vector<String> urlSchemesRegisteredAsCORSEnabled;
#if ENABLE(SERVICE_WORKER)
String serviceWorkerRegistrationDirectory;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -111,7 +111,7 @@
if (synchronousReply || parameters.shouldRestrictHTTPResponseAccess || parameters.options.keepAlive) {
NetworkLoadChecker::LoadType requestLoadType = isMainFrameLoad() ? NetworkLoadChecker::LoadType::MainFrame : NetworkLoadChecker::LoadType::Other;
- m_networkLoadChecker = makeUnique<NetworkLoadChecker>(connection.networkProcess(), &connection.schemeRegistry(), FetchOptions { m_parameters.options }, sessionID(), m_parameters.webPageProxyID, HTTPHeaderMap { m_parameters.originalRequestHeaders }, URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.topOrigin.copyRef(), m_parameters.preflightPolicy, originalRequest().httpReferrer(), m_parameters.isHTTPSUpgradeEnabled, shouldCaptureExtraNetworkLoadMetrics(), requestLoadType);
+ m_networkLoadChecker = makeUnique<NetworkLoadChecker>(connection.networkProcess(), FetchOptions { m_parameters.options }, sessionID(), m_parameters.webPageProxyID, HTTPHeaderMap { m_parameters.originalRequestHeaders }, URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.topOrigin.copyRef(), m_parameters.preflightPolicy, originalRequest().httpReferrer(), m_parameters.isHTTPSUpgradeEnabled, shouldCaptureExtraNetworkLoadMetrics(), requestLoadType);
if (m_parameters.cspResponseHeaders)
m_networkLoadChecker->setCSPResponseHeaders(ContentSecurityPolicyResponseHeaders { m_parameters.cspResponseHeaders.value() });
#if ENABLE(CONTENT_EXTENSIONS)
Deleted: trunk/Source/WebKit/NetworkProcess/NetworkSchemeRegistry.cpp (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkSchemeRegistry.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSchemeRegistry.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2019 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 "NetworkSchemeRegistry.h"
-
-namespace WebKit {
-
-void NetworkSchemeRegistry::registerURLSchemeAsCORSEnabled(String&& scheme)
-{
- m_corsEnabledSchemes.add(WTFMove(scheme));
-}
-
-bool NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled(StringView scheme)
-{
- return m_corsEnabledSchemes.contains(scheme.toStringWithoutCopying());
-}
-
-} // namespace WebKit
Deleted: trunk/Source/WebKit/NetworkProcess/NetworkSchemeRegistry.h (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/NetworkSchemeRegistry.h 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSchemeRegistry.h 2019-10-15 17:19:08 UTC (rev 251146)
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2019 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 <wtf/HashSet.h>
-#include <wtf/RefCounted.h>
-#include <wtf/text/StringHash.h>
-#include <wtf/text/WTFString.h>
-
-namespace WebKit {
-
-class NetworkSchemeRegistry : public RefCounted<NetworkSchemeRegistry> {
-public:
- static Ref<NetworkSchemeRegistry> create() { return adoptRef(*new NetworkSchemeRegistry); }
-
- // Allow non-HTTP schemes to be registered to allow CORS requests.
- void registerURLSchemeAsCORSEnabled(String&& scheme);
- bool shouldTreatURLSchemeAsCORSEnabled(StringView scheme);
-
-private:
- using URLSchemes = HashSet<String, ASCIICaseInsensitiveHash>;
- URLSchemes m_corsEnabledSchemes;
-};
-
-} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/PingLoad.cpp (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/PingLoad.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/PingLoad.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -45,17 +45,17 @@
, m_parameters(WTFMove(parameters))
, m_completionHandler(WTFMove(completionHandler))
, m_timeoutTimer(*this, &PingLoad::timeoutTimerFired)
- , m_networkLoadChecker(makeUniqueRef<NetworkLoadChecker>(networkProcess, nullptr, FetchOptions { m_parameters.options}, m_sessionID, m_parameters.webPageProxyID, WTFMove(m_parameters.originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.topOrigin.copyRef(), m_parameters.preflightPolicy, m_parameters.request.httpReferrer()))
+ , m_networkLoadChecker(makeUniqueRef<NetworkLoadChecker>(networkProcess, FetchOptions { m_parameters.options}, m_sessionID, m_parameters.webPageProxyID, WTFMove(m_parameters.originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.topOrigin.copyRef(), m_parameters.preflightPolicy, m_parameters.request.httpReferrer()))
{
initialize(networkProcess);
}
-PingLoad::PingLoad(NetworkConnectionToWebProcess& connection, NetworkResourceLoadParameters&& parameters, CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)
+PingLoad::PingLoad(NetworkConnectionToWebProcess& connection, NetworkProcess& networkProcess, NetworkResourceLoadParameters&& parameters, CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)
: m_sessionID(connection.sessionID())
, m_parameters(WTFMove(parameters))
, m_completionHandler(WTFMove(completionHandler))
, m_timeoutTimer(*this, &PingLoad::timeoutTimerFired)
- , m_networkLoadChecker(makeUniqueRef<NetworkLoadChecker>(connection.networkProcess(), &connection.schemeRegistry(), FetchOptions { m_parameters.options}, m_sessionID, m_parameters.webPageProxyID, WTFMove(m_parameters.originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.topOrigin.copyRef(), m_parameters.preflightPolicy, m_parameters.request.httpReferrer()))
+ , m_networkLoadChecker(makeUniqueRef<NetworkLoadChecker>(networkProcess, FetchOptions { m_parameters.options}, m_sessionID, m_parameters.webPageProxyID, WTFMove(m_parameters.originalRequestHeaders), URL { m_parameters.request.url() }, m_parameters.sourceOrigin.copyRef(), m_parameters.topOrigin.copyRef(), m_parameters.preflightPolicy, m_parameters.request.httpReferrer()))
, m_blobFiles(connection.resolveBlobReferences(m_parameters))
{
for (auto& file : m_blobFiles) {
@@ -63,7 +63,7 @@
file->prepareForFileAccess();
}
- initialize(connection.networkProcess());
+ initialize(networkProcess);
}
void PingLoad::initialize(NetworkProcess& networkProcess)
Modified: trunk/Source/WebKit/NetworkProcess/PingLoad.h (251145 => 251146)
--- trunk/Source/WebKit/NetworkProcess/PingLoad.h 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/NetworkProcess/PingLoad.h 2019-10-15 17:19:08 UTC (rev 251146)
@@ -38,12 +38,11 @@
class NetworkConnectionToWebProcess;
class NetworkLoadChecker;
class NetworkProcess;
-class NetworkSchemeRegistry;
class PingLoad final : public CanMakeWeakPtr<PingLoad>, private NetworkDataTaskClient {
public:
PingLoad(NetworkProcess&, PAL::SessionID, NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
- PingLoad(NetworkConnectionToWebProcess&, NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
+ PingLoad(NetworkConnectionToWebProcess&, NetworkProcess&, NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
private:
~PingLoad();
Modified: trunk/Source/WebKit/Sources.txt (251145 => 251146)
--- trunk/Source/WebKit/Sources.txt 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/Sources.txt 2019-10-15 17:19:08 UTC (rev 251146)
@@ -37,7 +37,6 @@
NetworkProcess/NetworkResourceLoadParameters.cpp
NetworkProcess/NetworkResourceLoadMap.cpp
NetworkProcess/NetworkResourceLoader.cpp
-NetworkProcess/NetworkSchemeRegistry.cpp
NetworkProcess/NetworkSession.cpp
NetworkProcess/NetworkSessionCreationParameters.cpp
NetworkProcess/NetworkSocketChannel.cpp
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (251145 => 251146)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -522,6 +522,7 @@
parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy = copyToVector(m_schemesToRegisterAsBypassingContentSecurityPolicy);
parameters.urlSchemesRegisteredAsLocal = copyToVector(m_schemesToRegisterAsLocal);
parameters.urlSchemesRegisteredAsNoAccess = copyToVector(m_schemesToRegisterAsNoAccess);
+ parameters.urlSchemesRegisteredAsCORSEnabled = copyToVector(m_schemesToRegisterAsCORSEnabled);
parameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest = copyToVector(m_schemesToRegisterAsCanDisplayOnlyIfCanRequest);
#if ENABLE(INDEXED_DATABASE)
@@ -1529,6 +1530,7 @@
{
m_schemesToRegisterAsCORSEnabled.add(urlScheme);
sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsCORSEnabled(urlScheme));
+ sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsCORSEnabled(urlScheme));
}
void WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers(const String& urlScheme)
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (251145 => 251146)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2019-10-15 17:19:08 UTC (rev 251146)
@@ -3595,7 +3595,6 @@
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>"; };
- 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; };
5C0B17751E7C879C00E9123C /* NetworkSocketStreamMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSocketStreamMessages.h; path = DerivedSources/WebKit2/NetworkSocketStreamMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
5C0B17761E7C879C00E9123C /* WebSocketStreamMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebSocketStreamMessageReceiver.cpp; path = DerivedSources/WebKit2/WebSocketStreamMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -3673,7 +3672,6 @@
5C9EF2E721F058F9003BDC56 /* NetworkStorageSessionProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkStorageSessionProvider.h; sourceTree = "<group>"; };
5CA26D7F217ABBB600F97A35 /* WKSafeBrowsingWarning.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKSafeBrowsingWarning.mm; sourceTree = "<group>"; };
5CA26D80217ABBB600F97A35 /* WKSafeBrowsingWarning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSafeBrowsingWarning.h; sourceTree = "<group>"; };
- 5CA2F7472350E15400BE5194 /* NetworkSchemeRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkSchemeRegistry.h; sourceTree = "<group>"; };
5CA46E7A21F1A23900CE86B4 /* APIHTTPCookieStoreCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = APIHTTPCookieStoreCocoa.mm; path = UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm; sourceTree = SOURCE_ROOT; };
5CA98549210BEB5A0057EB6B /* SafeBrowsingWarning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SafeBrowsingWarning.h; sourceTree = "<group>"; };
5CA9854B210BEB730057EB6B /* SafeBrowsingWarningCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SafeBrowsingWarningCocoa.mm; sourceTree = "<group>"; };
@@ -6799,8 +6797,6 @@
51240EBE220B6947005CFC63 /* NetworkResourceLoadMap.h */,
5C1426E51C23F80500D41183 /* NetworkResourceLoadParameters.cpp */,
5C1426E61C23F80500D41183 /* NetworkResourceLoadParameters.h */,
- 5C0A10C1235241A30053E2CA /* NetworkSchemeRegistry.cpp */,
- 5CA2F7472350E15400BE5194 /* NetworkSchemeRegistry.h */,
532159521DBAE6FC0054AA3C /* NetworkSession.cpp */,
5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */,
5C89DF5621AF61FF004645E8 /* NetworkSessionCreationParameters.cpp */,
Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (251145 => 251146)
--- trunk/Source/WebKit/WebProcess/WebProcess.cpp 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp 2019-10-15 17:19:08 UTC (rev 251146)
@@ -370,7 +370,7 @@
registerURLSchemeAsDisplayIsolated(scheme);
for (auto& scheme : parameters.urlSchemesRegisteredAsCORSEnabled)
- LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(scheme);
+ registerURLSchemeAsCORSEnabled(scheme);
for (auto& scheme : parameters.urlSchemesRegisteredAsAlwaysRevalidated)
registerURLSchemeAsAlwaysRevalidated(scheme);
@@ -567,10 +567,9 @@
LegacySchemeRegistry::registerURLSchemeAsDisplayIsolated(urlScheme);
}
-void WebProcess::registerURLSchemeAsCORSEnabled(const String& urlScheme)
+void WebProcess::registerURLSchemeAsCORSEnabled(const String& urlScheme) const
{
LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(urlScheme);
- ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::RegisterURLSchemesAsCORSEnabled({ urlScheme }), 0);
}
void WebProcess::registerURLSchemeAsAlwaysRevalidated(const String& urlScheme) const
@@ -1181,7 +1180,6 @@
#if HAVE(AUDIT_TOKEN)
m_networkProcessConnection->setNetworkProcessAuditToken(WTFMove(connectionInfo.auditToken));
#endif
- m_networkProcessConnection->connection().send(Messages::NetworkConnectionToWebProcess::RegisterURLSchemesAsCORSEnabled(WebCore::LegacySchemeRegistry::allURLSchemesRegisteredAsCORSEnabled()), 0);
}
return *m_networkProcessConnection;
Modified: trunk/Source/WebKit/WebProcess/WebProcess.h (251145 => 251146)
--- trunk/Source/WebKit/WebProcess/WebProcess.h 2019-10-15 17:16:05 UTC (rev 251145)
+++ trunk/Source/WebKit/WebProcess/WebProcess.h 2019-10-15 17:19:08 UTC (rev 251146)
@@ -327,7 +327,7 @@
void registerURLSchemeAsLocal(const String&) const;
void registerURLSchemeAsNoAccess(const String&) const;
void registerURLSchemeAsDisplayIsolated(const String&) const;
- void registerURLSchemeAsCORSEnabled(const String&);
+ void registerURLSchemeAsCORSEnabled(const String&) const;
void registerURLSchemeAsAlwaysRevalidated(const String&) const;
void registerURLSchemeAsCachePartitioned(const String&) const;
void registerURLSchemeAsCanDisplayOnlyIfCanRequest(const String&) const;