Changeset 246569 in webkit


Ignore:
Timestamp:
Jun 18, 2019 2:40:27 PM (5 years ago)
Author:
commit-queue@webkit.org
Message:

NetworkSession::networkStorageSession can return null
https://bugs.webkit.org/show_bug.cgi?id=198947
<rdar://problem/51394449>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-06-18
Reviewed by Youenn Fablet.

We are seeing evidence of crashes from the map owning NetworkSessions and the map owning NetworkStorageSessions becoming out of sync
because NetworkSession is refcounted but NetworkStorageSession is not. I started the complete fix in https://bugs.webkit.org/show_bug.cgi?id=194926
but for now let's add less risky null checks to prevent fallout.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::updateClientSideCookiesAgeCap):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::hasStorageAccessForFrame):
(WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap):
(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):
(WebKit::WebResourceLoadStatisticsStore::removePrevalentDomains):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::networkStorageSession const):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::tryPasswordBasedAuthentication):

Location:
trunk/Source/WebKit
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r246568 r246569  
     12019-06-18  Alex Christensen  <achristensen@webkit.org>
     2
     3        NetworkSession::networkStorageSession can return null
     4        https://bugs.webkit.org/show_bug.cgi?id=198947
     5        <rdar://problem/51394449>
     6
     7        Reviewed by Youenn Fablet.
     8
     9        We are seeing evidence of crashes from the map owning NetworkSessions and the map owning NetworkStorageSessions becoming out of sync
     10        because NetworkSession is refcounted but NetworkStorageSession is not.  I started the complete fix in https://bugs.webkit.org/show_bug.cgi?id=194926
     11        but for now let's add less risky null checks to prevent fallout.
     12
     13        * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
     14        (WebKit::ResourceLoadStatisticsStore::updateClientSideCookiesAgeCap):
     15        * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
     16        (WebKit::WebResourceLoadStatisticsStore::hasStorageAccessForFrame):
     17        (WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler):
     18        (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess):
     19        (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess):
     20        (WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap):
     21        (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):
     22        (WebKit::WebResourceLoadStatisticsStore::removePrevalentDomains):
     23        * NetworkProcess/NetworkProcess.cpp:
     24        (WebKit::NetworkProcess::initializeNetworkProcess):
     25        * NetworkProcess/NetworkSession.cpp:
     26        (WebKit::NetworkSession::networkStorageSession const):
     27        * NetworkProcess/NetworkSession.h:
     28        * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
     29        (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy):
     30        (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
     31        (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
     32        (WebKit::NetworkDataTaskCocoa::tryPasswordBasedAuthentication):
     33
    1342019-06-18  Brady Eidson  <beidson@apple.com>
    235
  • trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp

    r246561 r246569  
    384384#if ENABLE(RESOURCE_LOAD_STATISTICS)
    385385    RunLoop::main().dispatch([store = makeRef(m_store), seconds = m_parameters.clientSideCookiesAgeCapTime] () {
    386         if (auto* networkSession = store->networkSession())
    387             networkSession->networkStorageSession().setAgeCapForClientSideCookies(seconds);
     386        if (auto* networkSession = store->networkSession()) {
     387            if (auto* storageSession = networkSession->networkStorageSession())
     388                storageSession->setAgeCapForClientSideCookies(seconds);
     389        }
    388390    });
    389391#endif
  • trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp

    r246449 r246569  
    301301bool WebResourceLoadStatisticsStore::hasStorageAccessForFrame(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, uint64_t frameID, PageIdentifier pageID)
    302302{
    303     return m_networkSession ? m_networkSession->networkStorageSession().hasStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID) : false;
     303    if (m_networkSession) {
     304        if (auto* storageSession = m_networkSession->networkStorageSession())
     305            return storageSession->hasStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID);
     306    }
     307    return false;
    304308}
    305309
     
    309313
    310314    if (m_networkSession) {
    311         callback(m_networkSession->networkStorageSession().hasStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID));
    312         return;
     315        if (auto* storageSession = m_networkSession->networkStorageSession()) {
     316            callback(storageSession->hasStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID));
     317            return;
     318        }
    313319    }
    314320
     
    402408
    403409    if (m_networkSession) {
    404         m_networkSession->networkStorageSession().grantStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID);
    405         ASSERT(m_networkSession->networkStorageSession().hasStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID));
    406         isStorageGranted = true;
     410        if (auto* storageSession = m_networkSession->networkStorageSession()) {
     411            storageSession->grantStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID);
     412            ASSERT(storageSession->hasStorageAccess(resourceDomain, firstPartyDomain, frameID, pageID));
     413            isStorageGranted = true;
     414        }
    407415    }
    408416
     
    432440    ASSERT(RunLoop::isMain());
    433441
    434     if (m_networkSession)
    435         m_networkSession->networkStorageSession().removeAllStorageAccess();
     442    if (m_networkSession) {
     443        if (auto* storageSession = m_networkSession->networkStorageSession())
     444            storageSession->removeAllStorageAccess();
     445    }
    436446
    437447    completionHandler();
     
    937947    ASSERT(seconds >= 0_s);
    938948   
    939     if (m_networkSession)
    940         m_networkSession->networkStorageSession().setCacheMaxAgeCapForPrevalentResources(seconds);
     949    if (m_networkSession) {
     950        if (auto* storageSession = m_networkSession->networkStorageSession())
     951            storageSession->setCacheMaxAgeCapForPrevalentResources(seconds);
     952    }
    941953
    942954    completionHandler();
     
    947959    ASSERT(RunLoop::isMain());
    948960
    949     if (m_networkSession)
    950         m_networkSession->networkStorageSession().setPrevalentDomainsToBlockCookiesFor(domainsToBlock);
     961    if (m_networkSession) {
     962        if (auto* storageSession = m_networkSession->networkStorageSession())
     963            storageSession->setPrevalentDomainsToBlockCookiesFor(domainsToBlock);
     964    }
    951965
    952966    completionHandler();
     
    955969void WebResourceLoadStatisticsStore::removePrevalentDomains(const Vector<RegistrableDomain>& domains)
    956970{
    957     if (m_networkSession)
    958         m_networkSession->networkStorageSession().removePrevalentDomains(domains);
     971    if (m_networkSession) {
     972        if (auto* storageSession = m_networkSession->networkStorageSession())
     973            storageSession->removePrevalentDomains(domains);
     974    }
    959975}
    960976
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp

    r246530 r246569  
    336336
    337337    auto* defaultSession = networkSession(PAL::SessionID::defaultSessionID());
     338    auto* defaultStorageSession = defaultSession->networkStorageSession();
    338339    for (const auto& cookie : parameters.defaultDataStoreParameters.pendingCookies)
    339         defaultSession->networkStorageSession().setCookie(cookie);
     340        defaultStorageSession->setCookie(cookie);
    340341
    341342    for (auto& supplement : m_supplements.values())
  • trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp

    r246449 r246569  
    6969}
    7070
    71 NetworkStorageSession& NetworkSession::networkStorageSession() const
    72 {
     71NetworkStorageSession* NetworkSession::networkStorageSession() const
     72{
     73    // FIXME: https://bugs.webkit.org/show_bug.cgi?id=194926 NetworkSession should own NetworkStorageSession
     74    // instead of having separate maps with the same key and different management.
    7375    auto* storageSession = m_networkProcess->storageSession(m_sessionID);
    74     RELEASE_ASSERT(storageSession);
    75     return *storageSession;
     76    ASSERT(storageSession);
     77    return storageSession;
    7678}
    7779
  • trunk/Source/WebKit/NetworkProcess/NetworkSession.h

    r246449 r246569  
    7373    PAL::SessionID sessionID() const { return m_sessionID; }
    7474    NetworkProcess& networkProcess() { return m_networkProcess; }
    75     WebCore::NetworkStorageSession& networkStorageSession() const;
     75    WebCore::NetworkStorageSession* networkStorageSession() const;
    7676
    7777    void registerNetworkDataTask(NetworkDataTask& task) { m_dataTaskSet.add(&task); }
  • trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm

    r245979 r246569  
    139139        return;
    140140
    141     NSHTTPCookieStorage *storage = shouldBlock ? statelessCookieStorage() : m_session->networkStorageSession().nsCookieStorage();
    142     [m_task _setExplicitCookieStorage:storage._cookieStorage];
    143     m_hasBeenSetToUseStatelessCookieStorage = shouldBlock;
     141    NSHTTPCookieStorage *storage = nil;
     142    if (shouldBlock)
     143        storage = statelessCookieStorage();
     144    else if (auto* storageSession = m_session->networkStorageSession())
     145        storage = storageSession->nsCookieStorage();
     146    if (storage) {
     147        [m_task _setExplicitCookieStorage:storage._cookieStorage];
     148        m_hasBeenSetToUseStatelessCookieStorage = shouldBlock;
     149    }
    144150}
    145151#endif
     
    181187   
    182188#if USE(CREDENTIAL_STORAGE_WITH_NETWORK_SESSION)
    183         if (m_user.isEmpty() && m_password.isEmpty())
    184             m_initialCredential = m_session->networkStorageSession().credentialStorage().get(m_partition, url);
    185         else
    186             m_session->networkStorageSession().credentialStorage().set(m_partition, WebCore::Credential(m_user, m_password, WebCore::CredentialPersistenceNone), url);
     189        if (auto* storageSession = m_session->networkStorageSession()) {
     190            if (m_user.isEmpty() && m_password.isEmpty())
     191                m_initialCredential = storageSession->credentialStorage().get(m_partition, url);
     192            else
     193                storageSession->credentialStorage().set(m_partition, WebCore::Credential(m_user, m_password, WebCore::CredentialPersistenceNone), url);
     194        }
    187195#endif
    188196    }
     
    197205    bool shouldBlockCookies = false;
    198206#if ENABLE(RESOURCE_LOAD_STATISTICS)
    199     shouldBlockCookies = storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::EphemeralStatelessCookieless || session.networkStorageSession().shouldBlockCookies(request, frameID, pageID);
     207    shouldBlockCookies = storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::EphemeralStatelessCookieless
     208        || (session.networkStorageSession() && session.networkStorageSession()->shouldBlockCookies(request, frameID, pageID));
    200209#endif
    201210    restrictRequestReferrerToOriginIfNeeded(request, shouldBlockCookies);
     
    352361        // URL didn't include credentials of its own.
    353362        if (m_user.isEmpty() && m_password.isEmpty() && !redirectResponse.isNull()) {
    354             auto credential = m_session->networkStorageSession().credentialStorage().get(m_partition, request.url());
     363            auto credential = m_session->networkStorageSession() ? m_session->networkStorageSession()->credentialStorage().get(m_partition, request.url()) : WebCore::Credential();
    355364            if (!credential.isEmpty()) {
    356365                m_initialCredential = credential;
     
    367376
    368377#if ENABLE(RESOURCE_LOAD_STATISTICS)
    369     bool shouldBlockCookies = m_storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::EphemeralStatelessCookieless || m_session->networkStorageSession().shouldBlockCookies(request, m_frameID, m_pageID);
     378    bool shouldBlockCookies = m_storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::EphemeralStatelessCookieless
     379        || (m_session->networkStorageSession() && m_session->networkStorageSession()->shouldBlockCookies(request, m_frameID, m_pageID));
    370380#if !RELEASE_LOG_DISABLED
    371381    if (m_session->shouldLogCookieInformation())
     
    398408            if (!request.isNull()) {
    399409#if ENABLE(RESOURCE_LOAD_STATISTICS)
    400                 bool shouldBlockCookies = m_session->networkStorageSession().shouldBlockCookies(request, m_frameID, m_pageID);
     410                bool shouldBlockCookies = m_session->networkStorageSession() && m_session->networkStorageSession()->shouldBlockCookies(request, m_frameID, m_pageID);
    401411#else
    402412                bool shouldBlockCookies = false;
     
    446456            // There is a race condition here, since a different credential might have already been stored by another ResourceHandle,
    447457            // but the observable effect should be very minor, if any.
    448             m_session->networkStorageSession().credentialStorage().remove(m_partition, challenge.protectionSpace());
     458            if (auto* storageSession = m_session->networkStorageSession())
     459                storageSession->credentialStorage().remove(m_partition, challenge.protectionSpace());
    449460        }
    450461
    451462        if (!challenge.previousFailureCount()) {
    452             auto credential = m_session->networkStorageSession().credentialStorage().get(m_partition, challenge.protectionSpace());
     463            auto credential = m_session->networkStorageSession() ? m_session->networkStorageSession()->credentialStorage().get(m_partition, challenge.protectionSpace()) : WebCore::Credential();
    453464            if (!credential.isEmpty() && credential != m_initialCredential) {
    454465                ASSERT(credential.persistence() == WebCore::CredentialPersistenceNone);
    455466                if (challenge.failureResponse().httpStatusCode() == 401) {
    456467                    // Store the credential back, possibly adding it as a default for this directory.
    457                     m_session->networkStorageSession().credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
     468                    if (auto* storageSession = m_session->networkStorageSession())
     469                        storageSession->credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
    458470                }
    459471                completionHandler(AuthenticationChallengeDisposition::UseCredential, credential);
  • trunk/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp

    r246401 r246569  
    6060
    6161            if (m_user.isEmpty() && m_password.isEmpty())
    62                 m_initialCredential = m_session->networkStorageSession().credentialStorage().get(m_partition, request.url());
     62                m_initialCredential = m_session->networkStorageSession()->credentialStorage().get(m_partition, request.url());
    6363            else
    64                 m_session->networkStorageSession().credentialStorage().set(m_partition, Credential(m_user, m_password, CredentialPersistenceNone), request.url());
     64                m_session->networkStorageSession()->credentialStorage().set(m_partition, Credential(m_user, m_password, CredentialPersistenceNone), request.url());
    6565        }
    6666    }
     
    288288        // URL didn't include credentials of its own.
    289289        if (m_user.isEmpty() && m_password.isEmpty()) {
    290             auto credential = m_session->networkStorageSession().credentialStorage().get(m_partition, request.url());
     290            auto credential = m_session->networkStorageSession()->credentialStorage().get(m_partition, request.url());
    291291            if (!credential.isEmpty()) {
    292292                m_initialCredential = credential;
     
    338338            // here, since a different credential might have already been stored by another
    339339            // NetworkDataTask, but the observable effect should be very minor, if any.
    340             m_session->networkStorageSession().credentialStorage().remove(m_partition, challenge.protectionSpace());
     340            m_session->networkStorageSession()->credentialStorage().remove(m_partition, challenge.protectionSpace());
    341341        }
    342342
    343343        if (!challenge.previousFailureCount()) {
    344             auto credential = m_session->networkStorageSession().credentialStorage().get(m_partition, challenge.protectionSpace());
     344            auto credential = m_session->networkStorageSession()->credentialStorage().get(m_partition, challenge.protectionSpace());
    345345            if (!credential.isEmpty() && credential != m_initialCredential) {
    346346                ASSERT(credential.persistence() == CredentialPersistenceNone);
    347347                if (challenge.failureResponse().isUnauthorized()) {
    348348                    // Store the credential back, possibly adding it as a default for this directory.
    349                     m_session->networkStorageSession().credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
     349                    m_session->networkStorageSession()->credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
    350350                }
    351351                restartWithCredential(challenge.protectionSpace(), credential);
     
    368368            if (m_storedCredentialsPolicy == StoredCredentialsPolicy::Use) {
    369369                if (credential.persistence() == CredentialPersistenceForSession || credential.persistence() == CredentialPersistencePermanent)
    370                     m_session->networkStorageSession().credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
     370                    m_session->networkStorageSession()->credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
    371371            }
    372372
     
    445445void NetworkDataTaskCurl::appendCookieHeader(WebCore::ResourceRequest& request)
    446446{
    447     const auto& storageSession = m_session->networkStorageSession();
    448     const auto& cookieJar = storageSession.cookieStorage();
     447    const auto* storageSession = m_session->networkStorageSession();
     448    const auto& cookieJar = storageSession->cookieStorage();
    449449    auto includeSecureCookies = request.url().protocolIs("https") ? IncludeSecureCookies::Yes : IncludeSecureCookies::No;
    450     auto cookieHeaderField = cookieJar.cookieRequestHeaderFieldValue(storageSession, request.firstPartyForCookies(), WebCore::SameSiteInfo::create(request), request.url(), WTF::nullopt, WTF::nullopt, includeSecureCookies).first;
     450    auto cookieHeaderField = cookieJar.cookieRequestHeaderFieldValue(*storageSession, request.firstPartyForCookies(), WebCore::SameSiteInfo::create(request), request.url(), WTF::nullopt, WTF::nullopt, includeSecureCookies).first;
    451451    if (!cookieHeaderField.isEmpty())
    452452        request.addHTTPHeaderField(HTTPHeaderName::Cookie, cookieHeaderField);
     
    457457    static const auto setCookieHeader = "set-cookie: ";
    458458
    459     const auto& storageSession = m_session->networkStorageSession();
    460     const auto& cookieJar = storageSession.cookieStorage();
     459    const auto* storageSession = m_session->networkStorageSession();
     460    const auto& cookieJar = storageSession->cookieStorage();
    461461    for (auto header : response.headers) {
    462462        if (header.startsWithIgnoringASCIICase(setCookieHeader)) {
    463463            String setCookieString = header.right(header.length() - strlen(setCookieHeader));
    464             cookieJar.setCookiesFromHTTPResponse(storageSession, request.firstPartyForCookies(), response.url, setCookieString);
     464            cookieJar.setCookiesFromHTTPResponse(*storageSession, request.firstPartyForCookies(), response.url, setCookieString);
    465465        }
    466466    }
  • trunk/Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp

    r245540 r246569  
    4242{
    4343    if (!parameters.cookiePersistentStorageFile.isEmpty())
    44         networkStorageSession().setCookieDatabase(makeUniqueRef<CookieJarDB>(parameters.cookiePersistentStorageFile));
    45     networkStorageSession().setProxySettings(WTFMove(parameters.proxySettings));
     44        networkStorageSession()->setCookieDatabase(makeUniqueRef<CookieJarDB>(parameters.cookiePersistentStorageFile));
     45    networkStorageSession()->setProxySettings(WTFMove(parameters.proxySettings));
    4646}
    4747
  • trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp

    r241317 r246569  
    6969
    7070            if (m_user.isEmpty() && m_password.isEmpty())
    71                 m_initialCredential = m_session->networkStorageSession().credentialStorage().get(m_partition, request.url());
     71                m_initialCredential = m_session->networkStorageSession()->credentialStorage().get(m_partition, request.url());
    7272            else
    73                 m_session->networkStorageSession().credentialStorage().set(m_partition, Credential(m_user, m_password, CredentialPersistenceNone), request.url());
     73                m_session->networkStorageSession()->credentialStorage().set(m_partition, Credential(m_user, m_password, CredentialPersistenceNone), request.url());
    7474        }
    7575        applyAuthenticationToRequest(request);
     
    471471            // here, since a different credential might have already been stored by another
    472472            // NetworkDataTask, but the observable effect should be very minor, if any.
    473             m_session->networkStorageSession().credentialStorage().remove(m_partition, challenge.protectionSpace());
     473            m_session->networkStorageSession()->credentialStorage().remove(m_partition, challenge.protectionSpace());
    474474        }
    475475
    476476        if (!challenge.previousFailureCount()) {
    477             auto credential = m_session->networkStorageSession().credentialStorage().get(m_partition, challenge.protectionSpace());
     477            auto credential = m_session->networkStorageSession()->credentialStorage().get(m_partition, challenge.protectionSpace());
    478478            if (!credential.isEmpty() && credential != m_initialCredential) {
    479479                ASSERT(credential.persistence() == CredentialPersistenceNone);
     
    481481                if (isAuthenticationFailureStatusCode(challenge.failureResponse().httpStatusCode())) {
    482482                    // Store the credential back, possibly adding it as a default for this directory.
    483                     m_session->networkStorageSession().credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
     483                    m_session->networkStorageSession()->credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
    484484                }
    485485                soup_auth_authenticate(challenge.soupAuth(), credential.user().utf8().data(), credential.password().utf8().data());
     
    497497    if (m_storedCredentialsPolicy == StoredCredentialsPolicy::Use) {
    498498        auto protectionSpace = challenge.protectionSpace();
    499         m_session->networkStorageSession().getCredentialFromPersistentStorage(protectionSpace, m_cancellable.get(),
     499        m_session->networkStorageSession()->getCredentialFromPersistentStorage(protectionSpace, m_cancellable.get(),
    500500            [this, protectedThis = makeRef(*this), authChallenge = WTFMove(challenge)] (Credential&& credential) mutable {
    501501                if (m_state == State::Canceling || m_state == State::Completed || !m_client) {
     
    532532                // this protection space.
    533533                if (credential.persistence() == CredentialPersistenceForSession || credential.persistence() == CredentialPersistencePermanent)
    534                     m_session->networkStorageSession().credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
     534                    m_session->networkStorageSession()->credentialStorage().set(m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());
    535535
    536536                if (credential.persistence() == CredentialPersistencePermanent) {
     
    664664    } else if (url.protocolIsInHTTPFamily() && m_storedCredentialsPolicy == StoredCredentialsPolicy::Use) {
    665665        if (m_user.isEmpty() && m_password.isEmpty()) {
    666             auto credential = m_session->networkStorageSession().credentialStorage().get(m_partition, request.url());
     666            auto credential = m_session->networkStorageSession()->credentialStorage().get(m_partition, request.url());
    667667            if (!credential.isEmpty())
    668668                m_initialCredential = credential;
     
    831831    // incorrect credentials or polluting the keychain with invalid credentials.
    832832    if (!isAuthenticationFailureStatusCode(m_soupMessage->status_code) && m_soupMessage->status_code < 500) {
    833         m_session->networkStorageSession().saveCredentialToPersistentStorage(m_protectionSpaceForPersistentStorage, m_credentialForPersistentStorage);
     833        m_session->networkStorageSession()->saveCredentialToPersistentStorage(m_protectionSpaceForPersistentStorage, m_credentialForPersistentStorage);
    834834        m_protectionSpaceForPersistentStorage = ProtectionSpace();
    835835        m_credentialForPersistentStorage = Credential();
  • trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp

    r245540 r246569  
    4040    : NetworkSession(networkProcess, parameters.sessionID, parameters.localStorageDirectory, parameters.localStorageDirectoryExtensionHandle)
    4141{
    42     networkStorageSession().setCookieObserverHandler([this] {
     42    networkStorageSession()->setCookieObserverHandler([this] {
    4343        this->networkProcess().supplement<WebCookieManager>()->notifyCookiesDidChange(m_sessionID);
    4444    });
     
    5656SoupSession* NetworkSessionSoup::soupSession() const
    5757{
    58     return networkStorageSession().soupNetworkSession().soupSession();
     58    return networkStorageSession()->soupNetworkSession().soupSession();
    5959}
    6060
Note: See TracChangeset for help on using the changeset viewer.