Changeset 251547 in webkit


Ignore:
Timestamp:
Oct 24, 2019 11:50:26 AM (5 years ago)
Author:
achristensen@apple.com
Message:

Pass CORS-enabled schemes through WebProcess instead of having them NetworkProcess-global
https://bugs.webkit.org/show_bug.cgi?id=202891

Reviewed by Youenn Fablet.

Source/WebCore:

  • platform/LegacySchemeRegistry.cpp:

(WebCore::LegacySchemeRegistry::registerURLSchemeAsCORSEnabled):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):
(WebCore::LegacySchemeRegistry::allURLSchemesRegisteredAsCORSEnabled):

  • platform/LegacySchemeRegistry.h:

Source/WebKit:

No change in behavior. Now the LegacySchemeRegistry is not used as much in the NetworkProcess, a step towards no use at all.
This functionality is currently only available through the glib API webkit_security_manager_register_uri_scheme_as_cors_enabled
but it has been requested in bug 201180 and bug 199064.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::loadPing):
(WebKit::NetworkConnectionToWebProcess::registerURLSchemesAsCORSEnabled):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::schemeRegistry):

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const):

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const): Deleted.

  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::m_shouldCaptureExtraNetworkLoadMetrics):

  • NetworkProcess/NetworkSchemeRegistry.cpp: Added.

(WebKit::NetworkSchemeRegistry::registerURLSchemeAsCORSEnabled):
(WebKit::NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):

  • NetworkProcess/NetworkSchemeRegistry.h: Added.

(WebKit::NetworkSchemeRegistry::create):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):
Use nullptr, indicating that the PingLoad constructor that is used in ad click attribution should not check the custom scheme registry.
This is Ok because ad click attribution is only used for HTTP family schemes.
(WebKit::m_blobFiles):

  • NetworkProcess/PingLoad.h:
  • Sources.txt:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::registerURLSchemeAsCORSEnabled):
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::registerURLSchemeAsCORSEnabled const): Deleted.

  • WebProcess/WebProcess.h:
Location:
trunk/Source
Files:
2 added
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r251546 r251547  
     12019-10-24  Alex Christensen  <achristensen@webkit.org>
     2
     3        Pass CORS-enabled schemes through WebProcess instead of having them NetworkProcess-global
     4        https://bugs.webkit.org/show_bug.cgi?id=202891
     5
     6        Reviewed by Youenn Fablet.
     7
     8        * platform/LegacySchemeRegistry.cpp:
     9        (WebCore::LegacySchemeRegistry::registerURLSchemeAsCORSEnabled):
     10        (WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):
     11        (WebCore::LegacySchemeRegistry::allURLSchemesRegisteredAsCORSEnabled):
     12        * platform/LegacySchemeRegistry.h:
     13
    1142019-10-24  Andy Estes  <aestes@apple.com>
    215
  • trunk/Source/WebCore/platform/LegacySchemeRegistry.cpp

    r251146 r251547  
    2727#include "LegacySchemeRegistry.h"
    2828
     29#include "RuntimeApplicationChecks.h"
    2930#include <wtf/Lock.h>
    3031#include <wtf/Locker.h>
     
    422423void LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(const String& scheme)
    423424{
     425    ASSERT(!isInNetworkProcess());
    424426    if (scheme.isNull())
    425427        return;
     
    429431bool LegacySchemeRegistry::shouldTreatURLSchemeAsCORSEnabled(const String& scheme)
    430432{
     433    ASSERT(!isInNetworkProcess());
    431434    return !scheme.isNull() && CORSEnabledSchemes().contains(scheme);
     435}
     436
     437Vector<String> LegacySchemeRegistry::allURLSchemesRegisteredAsCORSEnabled()
     438{
     439    ASSERT(!isInNetworkProcess());
     440    return copyToVector(CORSEnabledSchemes());
    432441}
    433442
  • trunk/Source/WebCore/platform/LegacySchemeRegistry.h

    r251146 r251547  
    8282    WEBCORE_EXPORT static void registerURLSchemeAsCORSEnabled(const String& scheme);
    8383    WEBCORE_EXPORT static bool shouldTreatURLSchemeAsCORSEnabled(const String& scheme);
     84    WEBCORE_EXPORT static Vector<String> allURLSchemesRegisteredAsCORSEnabled();
    8485
    8586    // Allow resources from some schemes to load on a page, regardless of its
  • trunk/Source/WebKit/ChangeLog

    r251535 r251547  
     12019-10-24  Alex Christensen  <achristensen@webkit.org>
     2
     3        Pass CORS-enabled schemes through WebProcess instead of having them NetworkProcess-global
     4        https://bugs.webkit.org/show_bug.cgi?id=202891
     5
     6        Reviewed by Youenn Fablet.
     7
     8        No change in behavior.  Now the LegacySchemeRegistry is not used as much in the NetworkProcess, a step towards no use at all.
     9        This functionality is currently only available through the glib API webkit_security_manager_register_uri_scheme_as_cors_enabled
     10        but it has been requested in bug 201180 and bug 199064.
     11
     12        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
     13        (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
     14        (WebKit::NetworkConnectionToWebProcess::loadPing):
     15        (WebKit::NetworkConnectionToWebProcess::registerURLSchemesAsCORSEnabled):
     16        * NetworkProcess/NetworkConnectionToWebProcess.h:
     17        (WebKit::NetworkConnectionToWebProcess::schemeRegistry):
     18        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
     19        * NetworkProcess/NetworkLoadChecker.cpp:
     20        (WebKit::NetworkLoadChecker::NetworkLoadChecker):
     21        (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const):
     22        * NetworkProcess/NetworkLoadChecker.h:
     23        * NetworkProcess/NetworkProcess.cpp:
     24        (WebKit::NetworkProcess::initializeNetworkProcess):
     25        (WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const): Deleted.
     26        * NetworkProcess/NetworkProcess.messages.in:
     27        * NetworkProcess/NetworkProcessCreationParameters.cpp:
     28        (WebKit::NetworkProcessCreationParameters::encode const):
     29        (WebKit::NetworkProcessCreationParameters::decode):
     30        * NetworkProcess/NetworkProcessCreationParameters.h:
     31        * NetworkProcess/NetworkResourceLoader.cpp:
     32        (WebKit::m_shouldCaptureExtraNetworkLoadMetrics):
     33        * NetworkProcess/NetworkSchemeRegistry.cpp: Added.
     34        (WebKit::NetworkSchemeRegistry::registerURLSchemeAsCORSEnabled):
     35        (WebKit::NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):
     36        * NetworkProcess/NetworkSchemeRegistry.h: Added.
     37        (WebKit::NetworkSchemeRegistry::create):
     38        * NetworkProcess/PingLoad.cpp:
     39        (WebKit::PingLoad::PingLoad):
     40        Use nullptr, indicating that the PingLoad constructor that is used in ad click attribution should not check the custom scheme registry.
     41        This is Ok because ad click attribution is only used for HTTP family schemes.
     42        (WebKit::m_blobFiles):
     43        * NetworkProcess/PingLoad.h:
     44        * Sources.txt:
     45        * UIProcess/WebProcessPool.cpp:
     46        (WebKit::WebProcessPool::ensureNetworkProcess):
     47        (WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled):
     48        * WebKit.xcodeproj/project.pbxproj:
     49        * WebProcess/WebProcess.cpp:
     50        (WebKit::WebProcess::initializeWebProcess):
     51        (WebKit::WebProcess::registerURLSchemeAsCORSEnabled):
     52        (WebKit::WebProcess::ensureNetworkProcessConnection):
     53        (WebKit::WebProcess::registerURLSchemeAsCORSEnabled const): Deleted.
     54        * WebProcess/WebProcess.h:
     55
    1562019-10-24  Carlos Alberto Lopez Perez  <clopez@igalia.com>
    257
  • trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp

    r251391 r251547  
    4444#include <WebCore/UserGestureIndicator.h>
    4545#include <wtf/CallbackAggregator.h>
     46#include <wtf/CrossThreadCopier.h>
    4647#include <wtf/DateMath.h>
    4748#include <wtf/MathExtras.h>
  • trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp

    r251445 r251547  
    4444#include "NetworkResourceLoader.h"
    4545#include "NetworkResourceLoaderMessages.h"
     46#include "NetworkSchemeRegistry.h"
    4647#include "NetworkSession.h"
    4748#include "NetworkSocketChannel.h"
     
    9596#endif
    9697    , m_webProcessIdentifier(webProcessIdentifier)
     98    , m_schemeRegistry(NetworkSchemeRegistry::create())
    9799{
    98100    RELEASE_ASSERT(RunLoop::isMain());
     
    459461
    460462    // PingLoad manages its own lifetime, deleting itself when its purpose has been fulfilled.
    461     new PingLoad(*this, networkProcess(), WTFMove(loadParameters), WTFMove(completionHandler));
     463    new PingLoad(*this, WTFMove(loadParameters), WTFMove(completionHandler));
    462464}
    463465
     
    548550}
    549551
     552void NetworkConnectionToWebProcess::registerURLSchemesAsCORSEnabled(Vector<String>&& schemes)
     553{
     554    for (auto&& scheme : WTFMove(schemes))
     555        m_schemeRegistry->registerURLSchemeAsCORSEnabled(WTFMove(scheme));
     556}
     557
    550558void 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)
    551559{
  • trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h

    r251445 r251547  
    6666namespace WebKit {
    6767
     68class NetworkSchemeRegistry;
    6869class NetworkProcess;
    6970class NetworkResourceLoader;
     
    165166#endif
    166167
     168    NetworkSchemeRegistry& schemeRegistry() { return m_schemeRegistry.get(); }
     169
    167170private:
    168171    NetworkConnectionToWebProcess(NetworkProcess&, WebCore::ProcessIdentifier, PAL::SessionID, IPC::Connection::Identifier);
     
    193196    void startDownload(DownloadID, const WebCore::ResourceRequest&, const String& suggestedName = { });
    194197    void convertMainResourceLoadToDownload(uint64_t mainResourceLoadIdentifier, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
     198
     199    void registerURLSchemesAsCORSEnabled(Vector<String>&& schemes);
    195200
    196201    void cookiesForDOM(const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<WebCore::FrameIdentifier>, Optional<WebCore::PageIdentifier>, WebCore::IncludeSecureCookies, CompletionHandler<void(String cookieString, bool secureCookiesAccessed)>&&);
     
    347352    HashSet<WebCore::MessagePortIdentifier> m_processEntangledPorts;
    348353    HashMap<uint64_t, Function<void()>> m_messageBatchDeliveryCompletionHandlers;
     354    Ref<NetworkSchemeRegistry> m_schemeRegistry;
    349355};
    350356
  • trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in

    r251409 r251547  
    9292    CheckRemotePortForActivity(struct WebCore::MessagePortIdentifier port) -> (bool hasActivity) Async
    9393    DidDeliverMessagePortMessages(uint64_t messageBatchIdentifier)
     94    RegisterURLSchemesAsCORSEnabled(Vector<String> schemes);
    9495}
  • trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp

    r251146 r251547  
    3131#include "NetworkCORSPreflightChecker.h"
    3232#include "NetworkProcess.h"
     33#include "NetworkSchemeRegistry.h"
    3334#include <WebCore/ContentRuleListResults.h>
    3435#include <WebCore/ContentSecurityPolicy.h>
     
    4950}
    5051
    51 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)
     52NetworkLoadChecker::NetworkLoadChecker(NetworkProcess& networkProcess, 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)
    5253    : m_options(WTFMove(options))
    5354    , m_sessionID(sessionID)
     
    6364    , m_isHTTPSUpgradeEnabled(isHTTPSUpgradeEnabled)
    6465    , m_requestLoadType(requestLoadType)
     66    , m_schemeRegistry(schemeRegistry)
    6567{
    6668    m_isSameOriginRequest = isSameOrigin(m_url, m_origin.get());
     
    437439        return true;
    438440
    439     if (!LegacySchemeRegistry::shouldTreatURLSchemeAsCORSEnabled(url.protocol().toStringWithoutCopying()))
     441    if (m_schemeRegistry && !m_schemeRegistry->shouldTreatURLSchemeAsCORSEnabled(url.protocol()))
    440442        return true;
    441443
  • trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.h

    r251146 r251547  
    5151class NetworkCORSPreflightChecker;
    5252class NetworkProcess;
     53class NetworkSchemeRegistry;
    5354
    5455class NetworkLoadChecker : public CanMakeWeakPtr<NetworkLoadChecker> {
     
    5758    enum class LoadType : bool { MainFrame, Other };
    5859
    59     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);
     60    NetworkLoadChecker(NetworkProcess&, 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);
    6061    ~NetworkLoadChecker();
    6162
     
    156157
    157158    LoadType m_requestLoadType;
     159    RefPtr<NetworkSchemeRegistry> m_schemeRegistry;
    158160};
    159161
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp

    r251467 r251547  
    351351        registerURLSchemeAsNoAccess(scheme);
    352352
    353     for (auto& scheme : parameters.urlSchemesRegisteredAsCORSEnabled)
    354         registerURLSchemeAsCORSEnabled(scheme);
    355 
    356353    for (auto& scheme : parameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest)
    357354        registerURLSchemeAsCanDisplayOnlyIfCanRequest(scheme);
     
    22342231}
    22352232
    2236 void NetworkProcess::registerURLSchemeAsCORSEnabled(const String& scheme) const
    2237 {
    2238     LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(scheme);
    2239 }
    2240 
    22412233void NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest(const String& scheme) const
    22422234{
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in

    r251213 r251547  
    147147    RegisterURLSchemeAsLocal(String scheme)
    148148    RegisterURLSchemeAsNoAccess(String scheme)
    149     RegisterURLSchemeAsCORSEnabled(String scheme)
    150149    RegisterURLSchemeAsCanDisplayOnlyIfCanRequest(String scheme)
    151150
  • trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp

    r251146 r251547  
    7373    encoder << urlSchemesRegisteredAsLocal;
    7474    encoder << urlSchemesRegisteredAsNoAccess;
    75     encoder << urlSchemesRegisteredAsCORSEnabled;
    7675    encoder << urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest;
    7776
     
    160159    if (!decoder.decode(result.urlSchemesRegisteredAsNoAccess))
    161160        return false;
    162     if (!decoder.decode(result.urlSchemesRegisteredAsCORSEnabled))
    163         return false;
    164161    if (!decoder.decode(result.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest))
    165162        return false;
  • trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h

    r251146 r251547  
    9191    Vector<String> urlSchemesRegisteredAsNoAccess;
    9292    Vector<String> urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest;
    93     Vector<String> urlSchemesRegisteredAsCORSEnabled;
    9493
    9594#if ENABLE(SERVICE_WORKER)
  • trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

    r251445 r251547  
    113113    if (synchronousReply || parameters.shouldRestrictHTTPResponseAccess || parameters.options.keepAlive) {
    114114        NetworkLoadChecker::LoadType requestLoadType = isMainFrameLoad() ? NetworkLoadChecker::LoadType::MainFrame : NetworkLoadChecker::LoadType::Other;
    115         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);
     115        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);
    116116        if (m_parameters.cspResponseHeaders)
    117117            m_networkLoadChecker->setCSPResponseHeaders(ContentSecurityPolicyResponseHeaders { m_parameters.cspResponseHeaders.value() });
  • trunk/Source/WebKit/NetworkProcess/PingLoad.cpp

    r251146 r251547  
    4646    , m_completionHandler(WTFMove(completionHandler))
    4747    , m_timeoutTimer(*this, &PingLoad::timeoutTimerFired)
    48     , 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()))
     48    , 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()))
    4949{
    5050    initialize(networkProcess);
    5151}
    5252
    53 PingLoad::PingLoad(NetworkConnectionToWebProcess& connection, NetworkProcess& networkProcess, NetworkResourceLoadParameters&& parameters, CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)
     53PingLoad::PingLoad(NetworkConnectionToWebProcess& connection, NetworkResourceLoadParameters&& parameters, CompletionHandler<void(const ResourceError&, const ResourceResponse&)>&& completionHandler)
    5454    : m_sessionID(connection.sessionID())
    5555    , m_parameters(WTFMove(parameters))
    5656    , m_completionHandler(WTFMove(completionHandler))
    5757    , m_timeoutTimer(*this, &PingLoad::timeoutTimerFired)
    58     , 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()))
     58    , 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()))
    5959    , m_blobFiles(connection.resolveBlobReferences(m_parameters))
    6060{
     
    6464    }
    6565
    66     initialize(networkProcess);
     66    initialize(connection.networkProcess());
    6767}
    6868
  • trunk/Source/WebKit/NetworkProcess/PingLoad.h

    r251146 r251547  
    3939class NetworkLoadChecker;
    4040class NetworkProcess;
     41class NetworkSchemeRegistry;
    4142
    4243class PingLoad final : public CanMakeWeakPtr<PingLoad>, private NetworkDataTaskClient {
    4344public:
    4445    PingLoad(NetworkProcess&, PAL::SessionID, NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
    45     PingLoad(NetworkConnectionToWebProcess&, NetworkProcess&, NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
     46    PingLoad(NetworkConnectionToWebProcess&, NetworkResourceLoadParameters&&, CompletionHandler<void(const WebCore::ResourceError&, const WebCore::ResourceResponse&)>&&);
    4647
    4748private:
  • trunk/Source/WebKit/Sources.txt

    r251494 r251547  
    3838NetworkProcess/NetworkResourceLoadMap.cpp
    3939NetworkProcess/NetworkResourceLoader.cpp
     40NetworkProcess/NetworkSchemeRegistry.cpp
    4041NetworkProcess/NetworkSession.cpp
    4142NetworkProcess/NetworkSessionCreationParameters.cpp
  • trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

    r251467 r251547  
    524524    parameters.urlSchemesRegisteredAsLocal = copyToVector(m_schemesToRegisterAsLocal);
    525525    parameters.urlSchemesRegisteredAsNoAccess = copyToVector(m_schemesToRegisterAsNoAccess);
    526     parameters.urlSchemesRegisteredAsCORSEnabled = copyToVector(m_schemesToRegisterAsCORSEnabled);
    527526    parameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest = copyToVector(m_schemesToRegisterAsCanDisplayOnlyIfCanRequest);
    528527
     
    15171516    m_schemesToRegisterAsCORSEnabled.add(urlScheme);
    15181517    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsCORSEnabled(urlScheme));
    1519     sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsCORSEnabled(urlScheme));
    15201518}
    15211519
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r251494 r251547  
    35973597                58E977DC21C499FE005D92A6 /* NetworkHTTPSUpgradeChecker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkHTTPSUpgradeChecker.cpp; sourceTree = "<group>"; };
    35983598                58E977DD21C49A00005D92A6 /* NetworkHTTPSUpgradeChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkHTTPSUpgradeChecker.h; sourceTree = "<group>"; };
     3599                5C0A10C1235241A30053E2CA /* NetworkSchemeRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkSchemeRegistry.cpp; sourceTree = "<group>"; };
    35993600                5C0B17741E7C879C00E9123C /* NetworkSocketStreamMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkSocketStreamMessageReceiver.cpp; path = DerivedSources/WebKit2/NetworkSocketStreamMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
    36003601                5C0B17751E7C879C00E9123C /* NetworkSocketStreamMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSocketStreamMessages.h; path = DerivedSources/WebKit2/NetworkSocketStreamMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
     
    36743675                5CA26D7F217ABBB600F97A35 /* WKSafeBrowsingWarning.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKSafeBrowsingWarning.mm; sourceTree = "<group>"; };
    36753676                5CA26D80217ABBB600F97A35 /* WKSafeBrowsingWarning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKSafeBrowsingWarning.h; sourceTree = "<group>"; };
     3677                5CA2F7472350E15400BE5194 /* NetworkSchemeRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkSchemeRegistry.h; sourceTree = "<group>"; };
    36763678                5CA46E7A21F1A23900CE86B4 /* APIHTTPCookieStoreCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = APIHTTPCookieStoreCocoa.mm; path = UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm; sourceTree = SOURCE_ROOT; };
    36773679                5CA98549210BEB5A0057EB6B /* SafeBrowsingWarning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SafeBrowsingWarning.h; sourceTree = "<group>"; };
     
    67986800                                5C1426E51C23F80500D41183 /* NetworkResourceLoadParameters.cpp */,
    67996801                                5C1426E61C23F80500D41183 /* NetworkResourceLoadParameters.h */,
     6802                                5C0A10C1235241A30053E2CA /* NetworkSchemeRegistry.cpp */,
     6803                                5CA2F7472350E15400BE5194 /* NetworkSchemeRegistry.h */,
    68006804                                532159521DBAE6FC0054AA3C /* NetworkSession.cpp */,
    68016805                                5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */,
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r251443 r251547  
    372372
    373373    for (auto& scheme : parameters.urlSchemesRegisteredAsCORSEnabled)
    374         registerURLSchemeAsCORSEnabled(scheme);
     374        LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(scheme);
    375375
    376376    for (auto& scheme : parameters.urlSchemesRegisteredAsAlwaysRevalidated)
     
    560560}
    561561
    562 void WebProcess::registerURLSchemeAsCORSEnabled(const String& urlScheme) const
     562void WebProcess::registerURLSchemeAsCORSEnabled(const String& urlScheme)
    563563{
    564564    LegacySchemeRegistry::registerURLSchemeAsCORSEnabled(urlScheme);
     565    ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::RegisterURLSchemesAsCORSEnabled({ urlScheme }), 0);
    565566}
    566567
     
    11731174        m_networkProcessConnection->setNetworkProcessAuditToken(WTFMove(connectionInfo.auditToken));
    11741175#endif
     1176        m_networkProcessConnection->connection().send(Messages::NetworkConnectionToWebProcess::RegisterURLSchemesAsCORSEnabled(WebCore::LegacySchemeRegistry::allURLSchemesRegisteredAsCORSEnabled()), 0);
    11751177    }
    11761178   
  • trunk/Source/WebKit/WebProcess/WebProcess.h

    r251443 r251547  
    330330    void registerURLSchemeAsNoAccess(const String&) const;
    331331    void registerURLSchemeAsDisplayIsolated(const String&) const;
    332     void registerURLSchemeAsCORSEnabled(const String&) const;
     332    void registerURLSchemeAsCORSEnabled(const String&);
    333333    void registerURLSchemeAsAlwaysRevalidated(const String&) const;
    334334    void registerURLSchemeAsCachePartitioned(const String&) const;
Note: See TracChangeset for help on using the changeset viewer.