Changeset 239727 in webkit


Ignore:
Timestamp:
Jan 8, 2019, 10:08:55 AM (7 years ago)
Author:
achristensen@apple.com
Message:

Stop using NetworkStorageSession in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=193236

Reviewed by Don Olmstead.

Source/WebCore:

No change in behavior. Some code was only used for ResourceHandle, which isn't used in modern WebKit,
and for cookies, which are handled in the NetworkProcess in modern WebKit.

  • loader/CookieJar.cpp:

(WebCore::storageSession):

  • loader/EmptyClients.cpp:
  • platform/network/NetworkingContext.h:
  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
(WebCore::ResourceHandle::receivedCredential):

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::applyToDocumentLoader):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):
(WebKit::WebProcessPool::processForNavigationInternal):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setPrivateBrowsingEnabled):

  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): Deleted.
(WebKit::WebFrameNetworkingContext::storageSession const): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setSessionID):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::fetchWebsiteData):
(WebKit::WebProcess::addWebsiteDataStore): Deleted.
(WebKit::WebProcess::destroySession): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameNetworkingContext.h:
  • WebCoreSupport/WebFrameNetworkingContext.mm:

(WebFrameNetworkingContext::storageSession const):

  • WebView/WebView.mm:

(-[WebView _cachedResponseForURL:]):
(-[WebView _clearCredentials]):

Location:
trunk/Source
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r239726 r239727  
     12019-01-08  Alex Christensen  <achristensen@webkit.org>
     2
     3        Stop using NetworkStorageSession in WebProcess
     4        https://bugs.webkit.org/show_bug.cgi?id=193236
     5
     6        Reviewed by Don Olmstead.
     7
     8        No change in behavior.  Some code was only used for ResourceHandle, which isn't used in modern WebKit,
     9        and for cookies, which are handled in the NetworkProcess in modern WebKit.
     10
     11        * loader/CookieJar.cpp:
     12        (WebCore::storageSession):
     13        * loader/EmptyClients.cpp:
     14        * platform/network/NetworkingContext.h:
     15        * platform/network/mac/ResourceHandleMac.mm:
     16        (WebCore::ResourceHandle::createNSURLConnection):
     17        (WebCore::ResourceHandle::start):
     18        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
     19        (WebCore::ResourceHandle::willSendRequest):
     20        (WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
     21        (WebCore::ResourceHandle::receivedCredential):
     22
    1232019-01-08  Chris Dumez  <cdumez@apple.com>
    224
  • trunk/Source/WebCore/loader/CookieJar.cpp

    r239427 r239727  
    5555{
    5656    NetworkingContext* context = networkingContext(document);
    57     return context ? context->storageSession() : NetworkStorageSession::defaultStorageSession();
     57    return context ? *context->storageSession() : NetworkStorageSession::defaultStorageSession();
    5858}
    5959
  • trunk/Source/WebCore/loader/EmptyClients.cpp

    r239584 r239727  
    288288
    289289    bool shouldClearReferrerOnHTTPSToHTTPRedirect() const { return true; }
    290     NetworkStorageSession& storageSession() const final { return NetworkStorageSession::defaultStorageSession(); }
     290    NetworkStorageSession* storageSession() const final { return &NetworkStorageSession::defaultStorageSession(); }
    291291
    292292#if PLATFORM(COCOA)
  • trunk/Source/WebCore/platform/network/NetworkingContext.h

    r223728 r239727  
    5959    virtual String sourceApplicationIdentifier() const { return emptyString(); }
    6060
    61     virtual NetworkStorageSession& storageSession() const = 0;
     61    virtual NetworkStorageSession* storageSession() const = 0;
    6262
    6363#if PLATFORM(WIN)
  • trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp

    r238298 r239727  
    150150            // <rdar://problem/7174050> - For URLs that match the paths of those previously challenged for HTTP Basic authentication,
    151151            // try and reuse the credential preemptively, as allowed by RFC 2617.
    152             d->m_initialCredential = d->m_context->storageSession().credentialStorage().get(partition, firstRequest().url());
     152            d->m_initialCredential = d->m_context->storageSession()->credentialStorage().get(partition, firstRequest().url());
    153153        } else {
    154154            // If there is already a protection space known for the URL, update stored credentials before sending a request.
    155155            // This makes it possible to implement logout by sending an XMLHttpRequest with known incorrect credentials, and aborting it immediately
    156156            // (so that an authentication dialog doesn't pop up).
    157             d->m_context->storageSession().credentialStorage().set(partition, Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url());
     157            d->m_context->storageSession()->credentialStorage().set(partition, Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url());
    158158        }
    159159    }
     
    262262        return false;
    263263
    264     d->m_storageSession = d->m_context->storageSession().platformSession();
     264    d->m_storageSession = d->m_context->storageSession()->platformSession();
    265265
    266266    bool shouldUseCredentialStorage = !client() || client()->shouldUseCredentialStorage(this);
     
    308308        // URL didn't include credentials of its own.
    309309        if (d->m_user.isEmpty() && d->m_pass.isEmpty() && !redirectResponse.isNull()) {
    310             Credential credential = d->m_context->storageSession().credentialStorage().get(partition, request.url());
     310            Credential credential = d->m_context->storageSession()->credentialStorage().get(partition, request.url());
    311311            if (!credential.isEmpty()) {
    312312                d->m_initialCredential = credential;
     
    383383        if (challenge.failureResponse().httpStatusCode() == 401)
    384384            urlToStore = challenge.failureResponse().url();
    385         d->m_context->storageSession().credentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore);
     385        d->m_context->storageSession()->credentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore);
    386386       
    387387        CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef());
     
    397397            // There is a race condition here, since a different credential might have already been stored by another ResourceHandle,
    398398            // but the observable effect should be very minor, if any.
    399             d->m_context->storageSession().credentialStorage().remove(partition, challenge.protectionSpace());
     399            d->m_context->storageSession()->credentialStorage().remove(partition, challenge.protectionSpace());
    400400        }
    401401
    402402        if (!challenge.previousFailureCount()) {
    403             Credential credential = d->m_context->storageSession().credentialStorage().get(partition, challenge.protectionSpace());
     403            Credential credential = d->m_context->storageSession()->credentialStorage().get(partition, challenge.protectionSpace());
    404404            if (!credential.isEmpty() && credential != d->m_initialCredential) {
    405405                ASSERT(credential.persistence() == CredentialPersistenceNone);
    406406                if (challenge.failureResponse().httpStatusCode() == 401) {
    407407                    // Store the credential back, possibly adding it as a default for this directory.
    408                     d->m_context->storageSession().credentialStorage().set(partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
     408                    d->m_context->storageSession()->credentialStorage().set(partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
    409409                }
    410410#if PLATFORM(COCOA)
     
    456456            urlToStore = challenge.failureResponse().url();
    457457
    458         d->m_context->storageSession().credentialStorage().set(firstRequest().cachePartition(), webCredential, challenge.protectionSpace(), urlToStore);
     458        d->m_context->storageSession()->credentialStorage().set(firstRequest().cachePartition(), webCredential, challenge.protectionSpace(), urlToStore);
    459459
    460460        if (d->m_connection) {
     
    572572    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(context, request, &client, defersLoading, shouldContentSniff, shouldContentEncodingSniff));
    573573
    574     handle->d->m_storageSession = context->storageSession().platformSession();
     574    handle->d->m_storageSession = context->storageSession()->platformSession();
    575575
    576576    if (handle->d->m_scheduledFailureType != NoFailure) {
  • trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm

    r238891 r239727  
    158158            // <rdar://problem/7174050> - For URLs that match the paths of those previously challenged for HTTP Basic authentication,
    159159            // try and reuse the credential preemptively, as allowed by RFC 2617.
    160             d->m_initialCredential = d->m_context->storageSession().credentialStorage().get(firstRequest().cachePartition(), firstRequest().url());
     160            d->m_initialCredential = d->m_context->storageSession()->credentialStorage().get(firstRequest().cachePartition(), firstRequest().url());
    161161        } else {
    162162            // If there is already a protection space known for the URL, update stored credentials before sending a request.
    163163            // This makes it possible to implement logout by sending an XMLHttpRequest with known incorrect credentials, and aborting it immediately
    164164            // (so that an authentication dialog doesn't pop up).
    165             d->m_context->storageSession().credentialStorage().set(firstRequest().cachePartition(), Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url());
     165            d->m_context->storageSession()->credentialStorage().set(firstRequest().cachePartition(), Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url());
    166166        }
    167167    }
     
    241241        return false;
    242242
    243     d->m_storageSession = d->m_context->storageSession().platformSession();
     243    d->m_storageSession = d->m_context->storageSession()->platformSession();
    244244
    245245    // FIXME: Do not use the sync version of shouldUseCredentialStorage when the client returns true from usesAsyncCallbacks.
     
    368368    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(context, request, &client, defersLoading, shouldContentSniff, shouldContentEncodingSniff));
    369369
    370     handle->d->m_storageSession = context->storageSession().platformSession();
     370    handle->d->m_storageSession = context->storageSession()->platformSession();
    371371
    372372    if (context && handle->d->m_scheduledFailureType != NoFailure) {
     
    450450        // URL didn't include credentials of its own.
    451451        if (d->m_user.isEmpty() && d->m_pass.isEmpty() && !redirectResponse.isNull()) {
    452             Credential credential = d->m_context->storageSession().credentialStorage().get(request.cachePartition(), request.url());
     452            Credential credential = d->m_context->storageSession()->credentialStorage().get(request.cachePartition(), request.url());
    453453            if (!credential.isEmpty()) {
    454454                d->m_initialCredential = credential;
     
    541541            // There is a race condition here, since a different credential might have already been stored by another ResourceHandle,
    542542            // but the observable effect should be very minor, if any.
    543             d->m_context->storageSession().credentialStorage().remove(d->m_partition, challenge.protectionSpace());
     543            d->m_context->storageSession()->credentialStorage().remove(d->m_partition, challenge.protectionSpace());
    544544        }
    545545
    546546        if (!challenge.previousFailureCount()) {
    547             Credential credential = d->m_context->storageSession().credentialStorage().get(d->m_partition, challenge.protectionSpace());
     547            Credential credential = d->m_context->storageSession()->credentialStorage().get(d->m_partition, challenge.protectionSpace());
    548548            if (!credential.isEmpty() && credential != d->m_initialCredential) {
    549549                ASSERT(credential.persistence() == CredentialPersistenceNone);
    550550                if (challenge.failureResponse().httpStatusCode() == 401) {
    551551                    // Store the credential back, possibly adding it as a default for this directory.
    552                     d->m_context->storageSession().credentialStorage().set(d->m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
     552                    d->m_context->storageSession()->credentialStorage().set(d->m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
    553553                }
    554554                [challenge.sender() useCredential:credential.nsCredential() forAuthenticationChallenge:mac(challenge)];
     
    592592        if (challenge.failureResponse().httpStatusCode() == 401)
    593593            urlToStore = challenge.failureResponse().url();
    594         d->m_context->storageSession().credentialStorage().set(d->m_partition, webCredential, ProtectionSpace([d->m_currentMacChallenge protectionSpace]), urlToStore);
     594        d->m_context->storageSession()->credentialStorage().set(d->m_partition, webCredential, ProtectionSpace([d->m_currentMacChallenge protectionSpace]), urlToStore);
    595595        [[d->m_currentMacChallenge sender] useCredential:webCredential.nsCredential() forAuthenticationChallenge:d->m_currentMacChallenge];
    596596    } else
  • trunk/Source/WebKit/ChangeLog

    r239725 r239727  
     12019-01-08  Alex Christensen  <achristensen@webkit.org>
     2
     3        Stop using NetworkStorageSession in WebProcess
     4        https://bugs.webkit.org/show_bug.cgi?id=193236
     5
     6        Reviewed by Don Olmstead.
     7
     8        * Shared/WebProcessCreationParameters.cpp:
     9        (WebKit::WebProcessCreationParameters::encode const):
     10        (WebKit::WebProcessCreationParameters::decode):
     11        * Shared/WebProcessCreationParameters.h:
     12        * Shared/WebsitePoliciesData.cpp:
     13        (WebKit::WebsitePoliciesData::applyToDocumentLoader):
     14        * UIProcess/WebProcessPool.cpp:
     15        (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
     16        (WebKit::WebProcessPool::tryTakePrewarmedProcess):
     17        (WebKit::WebProcessPool::initializeNewWebProcess):
     18        (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
     19        (WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):
     20        (WebKit::WebProcessPool::processForNavigationInternal):
     21        * WebProcess/InjectedBundle/InjectedBundle.cpp:
     22        (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
     23        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
     24        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
     25        (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): Deleted.
     26        (WebKit::WebFrameNetworkingContext::storageSession const): Deleted.
     27        * WebProcess/WebPage/WebPage.cpp:
     28        (WebKit::WebPage::setSessionID):
     29        * WebProcess/WebProcess.cpp:
     30        (WebKit::WebProcess::initializeWebProcess):
     31        (WebKit::WebProcess::fetchWebsiteData):
     32        (WebKit::WebProcess::addWebsiteDataStore): Deleted.
     33        (WebKit::WebProcess::destroySession): Deleted.
     34        * WebProcess/WebProcess.h:
     35        * WebProcess/WebProcess.messages.in:
     36
    1372019-01-08  Alex Christensen  <achristensen@webkit.org>
    238
  • trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp

    r239427 r239727  
    7373    encoder << shouldCaptureDisplayInUIProcess;
    7474#endif
    75     encoder << shouldUseTestingNetworkSession;
    7675    encoder << urlSchemesRegisteredAsEmptyDocument;
    7776    encoder << urlSchemesRegisteredAsSecure;
     
    268267        return false;
    269268#endif
    270     if (!decoder.decode(parameters.shouldUseTestingNetworkSession))
    271         return false;
    272269    if (!decoder.decode(parameters.urlSchemesRegisteredAsEmptyDocument))
    273270        return false;
  • trunk/Source/WebKit/Shared/WebProcessCreationParameters.h

    r238909 r239727  
    125125    double defaultRequestTimeoutInterval { INT_MAX };
    126126
    127     bool shouldUseTestingNetworkSession { false };
    128127    bool shouldAlwaysUseComplexTextCodePath { false };
    129128    bool shouldEnableMemoryPressureReliefLogging { false };
  • trunk/Source/WebKit/Shared/WebsitePoliciesData.cpp

    r239639 r239727  
    162162    if (websitePolicies.websiteDataStoreParameters) {
    163163        if (auto* frame = documentLoader.frame()) {
    164             if (auto* page = frame->page()) {
    165                 auto sessionID = websitePolicies.websiteDataStoreParameters->networkSessionParameters.sessionID;
    166                 WebProcess::singleton().addWebsiteDataStore(WTFMove(*websitePolicies.websiteDataStoreParameters));
    167                 page->setSessionID(sessionID);
    168             }
     164            if (auto* page = frame->page())
     165                page->setSessionID(websitePolicies.websiteDataStoreParameters->networkSessionParameters.sessionID);
    169166        }
    170167    }
  • trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

    r239632 r239727  
    690690    if (privateBrowsingEnabled) {
    691691        sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()));
    692         sendToAllProcesses(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()));
    693692    } else {
    694693        networkProcess()->removeSession(PAL::SessionID::legacyPrivateSessionID());
    695         sendToAllProcesses(Messages::WebProcess::DestroySession(PAL::SessionID::legacyPrivateSessionID()));
    696694    }
    697695}
     
    766764    ASSERT(m_prewarmedProcess->isPrewarmed());
    767765    m_prewarmedProcess->markIsNoLongerInPrewarmedPool();
    768     if (&m_prewarmedProcess->websiteDataStore() != &websiteDataStore)
    769         m_prewarmedProcess->send(Messages::WebProcess::AddWebsiteDataStore(websiteDataStore.parameters()), 0);
    770766
    771767    return std::exchange(m_prewarmedProcess, nullptr);
     
    854850            SandboxExtension::createHandleWithoutResolvingPath(parameters.javaScriptConfigurationDirectory, SandboxExtension::Type::ReadWrite, parameters.javaScriptConfigurationDirectoryExtensionHandle);
    855851    }
    856 
    857     parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
    858852
    859853    parameters.cacheModel = cacheModel();
     
    943937#endif
    944938
    945     if (WebPreferences::anyPagesAreUsingPrivateBrowsing())
    946         process.send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()), 0);
    947 
    948939    if (m_automationSession)
    949940        process.send(Messages::WebProcess::EnsureAutomationSessionProxy(m_automationSession->sessionIdentifier()), 0);
     
    11891180        if (m_networkProcess)
    11901181            m_networkProcess->addSession(makeRef(page.websiteDataStore()));
    1191         page.process().send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::privateSessionParameters(sessionID)), 0);
    11921182        page.websiteDataStore().clearPendingCookies();
    11931183    } else if (sessionID != PAL::SessionID::defaultSessionID()) {
    11941184        if (m_networkProcess)
    11951185            m_networkProcess->addSession(makeRef(page.websiteDataStore()));
    1196         page.process().send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0);
    11971186        page.websiteDataStore().clearPendingCookies();
    11981187    }
     
    12251214        if (networkProcess())
    12261215            networkProcess()->removeSession(sessionID);
    1227         page.process().send(Messages::WebProcess::DestroySession(sessionID), 0);
    12281216    }
    12291217}
     
    22392227            m_suspendedPages.remove(it);
    22402228
    2241         if (&process->websiteDataStore() != &page.websiteDataStore())
    2242             process->send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0);
    2243 
    22442229        return completionHandler(WTFMove(process), nullptr, reason);
    22452230    }
  • trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp

    r239098 r239727  
    358358    if (enabled) {
    359359        WebProcess::singleton().ensureLegacyPrivateBrowsingSessionInNetworkProcess();
    360         WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters::legacyPrivateSessionParameters());
    361360    } else
    362361        SessionTracker::destroySession(PAL::SessionID::legacyPrivateSessionID());
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp

    r228373 r239727  
    5757}
    5858
    59 NetworkStorageSession& WebFrameNetworkingContext::storageSession() const
    60 {
    61     if (frame()) {
    62         if (auto* storageSession = NetworkStorageSession::storageSession(frame()->page()->sessionID()))
    63             return *storageSession;
    64     }
    65     return NetworkStorageSession::defaultStorageSession();
    66 }
    67 
    6859WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const
    6960{
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h

    r239366 r239727  
    5454    WebFrameNetworkingContext(WebFrame*);
    5555
    56     WebCore::NetworkStorageSession& storageSession() const override;
     56    WebCore::NetworkStorageSession* storageSession() const override { return nullptr; }
    5757};
    5858
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h

    r229480 r239727  
    5757    String sourceApplicationIdentifier() const override;
    5858    WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override;
    59     WebCore::NetworkStorageSession& storageSession() const override;
     59    WebCore::NetworkStorageSession* storageSession() const override { return nullptr; }
    6060};
    6161
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm

    r239683 r239727  
    4444using namespace WebCore;
    4545
    46 void WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)
    47 {
    48     ASSERT(!hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));
    49     auto sessionID = parameters.networkSessionParameters.sessionID;
    50     if (NetworkStorageSession::storageSession(sessionID))
    51         return;
    52 
    53     String base = WebProcess::singleton().uiProcessBundleIdentifier();
    54     if (base.isNull())
    55         base = [[NSBundle mainBundle] bundleIdentifier];
    56 
    57     NetworkStorageSession::ensureSession(sessionID, base + '.' + String::number(sessionID.sessionID()));
    58 }
    59 
    6046bool WebFrameNetworkingContext::localFileContentSniffingEnabled() const
    6147{
     
    8571}
    8672
    87 NetworkStorageSession& WebFrameNetworkingContext::storageSession() const
    88 {
    89     ASSERT(RunLoop::isMain());
    90     ASSERT(!hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));
    91     if (frame()) {
    92         if (auto* storageSession = WebCore::NetworkStorageSession::storageSession(frame()->page()->sessionID()))
    93             return *storageSession;
    94         // Some requests may still be coming shortly after WebProcess was told to destroy its session.
    95         LOG_ERROR("WEB Invalid session ID. Please file a bug unless you just disabled private browsing, in which case it's an expected race.");
    96     }
    97     return NetworkStorageSession::defaultStorageSession();
    98 }
    99 
    10073WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const
    10174{
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp

    r239680 r239727  
    5959}
    6060
    61 NetworkStorageSession& WebFrameNetworkingContext::storageSession() const
    62 {
    63     if (frame()) {
    64         if (auto* storageSession = NetworkStorageSession::storageSession(frame()->page()->sessionID()))
    65             return *storageSession;
    66     }
    67     return NetworkStorageSession::defaultStorageSession();
    68 }
    69 
    7061WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const
    7162{
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h

    r223791 r239727  
    5252    WebFrameNetworkingContext(WebFrame*);
    5353
    54     WebCore::NetworkStorageSession& storageSession() const override;
     54    WebCore::NetworkStorageSession* storageSession() const override { return nullptr; }
    5555};
    5656
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r239694 r239727  
    30443044void WebPage::setSessionID(PAL::SessionID sessionID)
    30453045{
    3046     if (sessionID.isEphemeral())
    3047         WebProcess::singleton().addWebsiteDataStore(WebsiteDataStoreParameters::privateSessionParameters(sessionID));
    30483046    m_page->setSessionID(sessionID);
    30493047}
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r239671 r239727  
    382382    setShouldUseFontSmoothing(parameters.shouldUseFontSmoothing);
    383383
    384     if (parameters.shouldUseTestingNetworkSession)
    385         NetworkStorageSession::switchToNewTestingSession();
    386 
    387384    ensureNetworkProcessConnection();
    388385
     
    539536{
    540537    m_fullKeyboardAccessEnabled = fullKeyboardAccessEnabled;
    541 }
    542 
    543 void WebProcess::addWebsiteDataStore(WebsiteDataStoreParameters&& parameters)
    544 {
    545     WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WTFMove(parameters));
    546 }
    547 
    548 void WebProcess::destroySession(PAL::SessionID sessionID)
    549 {
    550     SessionTracker::destroySession(sessionID);
    551538}
    552539
     
    12951282            websiteData.entries.append(WebsiteData::Entry { origin->data(), WebsiteDataType::MemoryCache, 0 });
    12961283    }
    1297 
    1298     if (websiteDataTypes.contains(WebsiteDataType::Credentials)) {
    1299         if (NetworkStorageSession::storageSession(sessionID))
    1300             websiteData.originsWithCredentials = NetworkStorageSession::storageSession(sessionID)->credentialStorage().originsWithCredentials();
    1301     }
    13021284}
    13031285
  • trunk/Source/WebKit/WebProcess/WebProcess.h

    r239683 r239727  
    179179
    180180    void ensureLegacyPrivateBrowsingSessionInNetworkProcess();
    181     void addWebsiteDataStore(WebsiteDataStoreParameters&&);
    182     void destroySession(PAL::SessionID);
    183181
    184182    void pageDidEnterWindow(uint64_t pageID);
  • trunk/Source/WebKit/WebProcess/WebProcess.messages.in

    r239671 r239727  
    5353
    5454    ClearCachedCredentials()
    55 
    56     AddWebsiteDataStore(struct WebKit::WebsiteDataStoreParameters websiteDataStoreParameters);
    57     DestroySession(PAL::SessionID sessionID)
    5855
    5956    # Plug-ins.
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r239709 r239727  
     12019-01-08  Alex Christensen  <achristensen@webkit.org>
     2
     3        Stop using NetworkStorageSession in WebProcess
     4        https://bugs.webkit.org/show_bug.cgi?id=193236
     5
     6        Reviewed by Don Olmstead.
     7
     8        * WebCoreSupport/WebFrameNetworkingContext.h:
     9        * WebCoreSupport/WebFrameNetworkingContext.mm:
     10        (WebFrameNetworkingContext::storageSession const):
     11        * WebView/WebView.mm:
     12        (-[WebView _cachedResponseForURL:]):
     13        (-[WebView _clearCredentials]):
     14
    1152019-01-07  David Kilzer  <ddkilzer@apple.com>
    216
  • trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.h

    r210845 r239727  
    5050    String sourceApplicationIdentifier() const override;
    5151    WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override;
    52     WebCore::NetworkStorageSession& storageSession() const override;
     52    WebCore::NetworkStorageSession* storageSession() const override;
    5353};
  • trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.mm

    r237266 r239727  
    9191}
    9292
    93 NetworkStorageSession& WebFrameNetworkingContext::storageSession() const
     93NetworkStorageSession* WebFrameNetworkingContext::storageSession() const
    9494{
    9595    ASSERT(isMainThread());
    9696    if (frame() && frame()->page() && frame()->page()->sessionID().isEphemeral()) {
    9797        if (auto* session = NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID()))
    98             return *session;
     98            return session;
    9999        // Some requests may still be coming shortly before WebCore updates the session ID and after WebKit destroys the private browsing session.
    100100        LOG_ERROR("Invalid session ID. Please file a bug unless you just disabled private browsing, in which case it's an expected race.");
    101101    }
    102     return NetworkStorageSession::defaultStorageSession();
     102    return &NetworkStorageSession::defaultStorageSession();
    103103}
  • trunk/Source/WebKitLegacy/mac/WebView/WebView.mm

    r239709 r239727  
    36693669        return nil;
    36703670
    3671     if (CFURLStorageSessionRef storageSession = _private->page->mainFrame().loader().networkingContext()->storageSession().platformSession())
     3671    if (auto storageSession = _private->page->mainFrame().loader().networkingContext()->storageSession()->platformSession())
    36723672        cachedResponse = cachedResponseForRequest(storageSession, request.get());
    36733673    else
     
    92529252        return;
    92539253
    9254     networkingContext->storageSession().credentialStorage().clearCredentials();
     9254    networkingContext->storageSession()->credentialStorage().clearCredentials();
    92559255}
    92569256
  • trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.cpp

    r238298 r239727  
    100100}
    101101
    102 NetworkStorageSession& WebFrameNetworkingContext::storageSession() const
     102NetworkStorageSession* WebFrameNetworkingContext::storageSession() const
    103103{
    104104    ASSERT(isMainThread());
    105105
    106106    if (frame() && frame()->page()->usesEphemeralSession())
    107         return *NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID());
     107        return NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID());
    108108
    109     return NetworkStorageSession::defaultStorageSession();
     109    return &NetworkStorageSession::defaultStorageSession();
    110110}
  • trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.h

    r210845 r239727  
    4848
    4949    WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override;
    50     WebCore::NetworkStorageSession& storageSession() const override;
     50    WebCore::NetworkStorageSession* storageSession() const override;
    5151};
Note: See TracChangeset for help on using the changeset viewer.