WebKit Bugzilla
Attachment 358623 Details for
Bug 193236
: Stop using NetworkStorageSession in WebProcess
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193236-20190108123928.patch (text/plain), 72.99 KB, created by
Alex Christensen
on 2019-01-08 12:39:29 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2019-01-08 12:39:29 PST
Size:
72.99 KB
patch
obsolete
>Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 239735) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,25 @@ >+2019-01-08 Alex Christensen <achristensen@webkit.org> >+ >+ Stop using NetworkStorageSession in WebProcess >+ https://bugs.webkit.org/show_bug.cgi?id=193236 >+ >+ Reviewed by Don Olmstead. >+ >+ 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): >+ > 2019-01-08 Alex Christensen <achristensen@webkit.org> > > Unreviewed, rolling out r239727. >Index: Source/WebCore/loader/CookieJar.cpp >=================================================================== >--- Source/WebCore/loader/CookieJar.cpp (revision 239735) >+++ Source/WebCore/loader/CookieJar.cpp (working copy) >@@ -41,22 +41,6 @@ > > namespace WebCore { > >-static NetworkingContext* networkingContext(const Document& document) >-{ >- // FIXME: Returning 0 means falling back to default context. That's not a choice that is appropriate to do at runtime >- Frame* frame = document.frame(); >- if (!frame) >- return nullptr; >- >- return frame->loader().networkingContext(); >-} >- >-inline NetworkStorageSession& storageSession(const Document& document) >-{ >- NetworkingContext* context = networkingContext(document); >- return context ? context->storageSession() : NetworkStorageSession::defaultStorageSession(); >-} >- > static IncludeSecureCookies shouldIncludeSecureCookies(const Document& document, const URL& url) > { > return (url.protocolIs("https") && !document.foundMixedContent().contains(SecurityContext::MixedContentType::Active)) ? IncludeSecureCookies::Yes : IncludeSecureCookies::No; >@@ -78,9 +62,9 @@ String cookies(Document& document, const > std::pair<String, bool> result; > auto frame = document.frame(); > if (frame) >- result = platformStrategies()->cookiesStrategy()->cookiesForDOM(storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies); >+ result = platformStrategies()->cookiesStrategy()->cookiesForDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies); > else >- result = platformStrategies()->cookiesStrategy()->cookiesForDOM(storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies); >+ result = platformStrategies()->cookiesStrategy()->cookiesForDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies); > > if (result.second) > document.setSecureCookiesAccessed(); >@@ -93,7 +77,7 @@ CookieRequestHeaderFieldProxy cookieRequ > TraceScope scope(FetchCookiesStart, FetchCookiesEnd); > > CookieRequestHeaderFieldProxy proxy; >- proxy.sessionID = storageSession(document).sessionID(); >+ proxy.sessionID = document.sessionID(); > proxy.firstParty = document.firstPartyForCookies(); > proxy.sameSiteInfo = sameSiteInfo(document); > proxy.url = url; >@@ -109,14 +93,14 @@ void setCookies(Document& document, cons > { > auto frame = document.frame(); > if (frame) >- platformStrategies()->cookiesStrategy()->setCookiesFromDOM(storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookieString); >+ platformStrategies()->cookiesStrategy()->setCookiesFromDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookieString); > else >- platformStrategies()->cookiesStrategy()->setCookiesFromDOM(storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookieString); >+ platformStrategies()->cookiesStrategy()->setCookiesFromDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookieString); > } > > bool cookiesEnabled(const Document& document) > { >- return platformStrategies()->cookiesStrategy()->cookiesEnabled(storageSession(document)); >+ return platformStrategies()->cookiesStrategy()->cookiesEnabled(document.sessionID()); > } > > String cookieRequestHeaderFieldValue(Document& document, const URL& url) >@@ -126,9 +110,9 @@ String cookieRequestHeaderFieldValue(Doc > std::pair<String, bool> result; > auto frame = document.frame(); > if (frame) >- result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies); >+ result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies); > else >- result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies); >+ result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies); > > if (result.second) > document.setSecureCookiesAccessed(); >@@ -140,14 +124,14 @@ bool getRawCookies(const Document& docum > { > auto frame = document.frame(); > if (frame) >- return platformStrategies()->cookiesStrategy()->getRawCookies(storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookies); >+ return platformStrategies()->cookiesStrategy()->getRawCookies(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookies); > >- return platformStrategies()->cookiesStrategy()->getRawCookies(storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookies); >+ return platformStrategies()->cookiesStrategy()->getRawCookies(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookies); > } > > void deleteCookie(const Document& document, const URL& url, const String& cookieName) > { >- platformStrategies()->cookiesStrategy()->deleteCookie(storageSession(document), url, cookieName); >+ platformStrategies()->cookiesStrategy()->deleteCookie(document.sessionID(), url, cookieName); > } > > } >Index: Source/WebCore/loader/EmptyClients.cpp >=================================================================== >--- Source/WebCore/loader/EmptyClients.cpp (revision 239735) >+++ Source/WebCore/loader/EmptyClients.cpp (working copy) >@@ -287,7 +287,7 @@ private: > EmptyFrameNetworkingContext(); > > bool shouldClearReferrerOnHTTPSToHTTPRedirect() const { return true; } >- NetworkStorageSession& storageSession() const final { return NetworkStorageSession::defaultStorageSession(); } >+ NetworkStorageSession* storageSession() const final { return &NetworkStorageSession::defaultStorageSession(); } > > #if PLATFORM(COCOA) > bool localFileContentSniffingEnabled() const { return false; } >Index: Source/WebCore/platform/CookiesStrategy.h >=================================================================== >--- Source/WebCore/platform/CookiesStrategy.h (revision 239733) >+++ Source/WebCore/platform/CookiesStrategy.h (working copy) >@@ -40,29 +40,15 @@ enum class IncludeSecureCookies : bool { > > class CookiesStrategy { > public: >- virtual std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) = 0; >- virtual void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) = 0; >- virtual bool cookiesEnabled(const NetworkStorageSession&) = 0; >- virtual std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) = 0; >- virtual std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) = 0; >- virtual bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>&) = 0; >- virtual void deleteCookie(const NetworkStorageSession&, const URL&, const String& cookieName) = 0; >+ virtual std::pair<String, bool> cookiesForDOM(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) = 0; >+ virtual void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) = 0; >+ virtual bool cookiesEnabled(const PAL::SessionID&) = 0; >+ virtual std::pair<String, bool> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) = 0; >+ virtual bool getRawCookies(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>&) = 0; >+ virtual void deleteCookie(const PAL::SessionID&, const URL&, const String& cookieName) = 0; > > protected: > virtual ~CookiesStrategy() = default; > }; > > } // namespace WebCore >- >-namespace WTF { >- >-template<> struct EnumTraits<WebCore::IncludeSecureCookies> { >- using values = EnumValues< >- WebCore::IncludeSecureCookies, >- WebCore::IncludeSecureCookies::No, >- WebCore::IncludeSecureCookies::Yes >- >; >-}; >- >-} // namespace WTF >- >Index: Source/WebCore/platform/network/NetworkStorageSession.cpp >=================================================================== >--- Source/WebCore/platform/network/NetworkStorageSession.cpp (revision 239733) >+++ Source/WebCore/platform/network/NetworkStorageSession.cpp (working copy) >@@ -26,6 +26,7 @@ > #include "config.h" > #include "NetworkStorageSession.h" > >+#include "RuntimeApplicationChecks.h" > #include <pal/SessionID.h> > #include <wtf/NeverDestroyed.h> > #include <wtf/ProcessPrivilege.h> >Index: Source/WebCore/platform/network/NetworkingContext.h >=================================================================== >--- Source/WebCore/platform/network/NetworkingContext.h (revision 239735) >+++ Source/WebCore/platform/network/NetworkingContext.h (working copy) >@@ -58,7 +58,7 @@ public: > > virtual String sourceApplicationIdentifier() const { return emptyString(); } > >- virtual NetworkStorageSession& storageSession() const = 0; >+ virtual NetworkStorageSession* storageSession() const = 0; > > #if PLATFORM(WIN) > virtual ResourceError blockedError(const ResourceRequest&) const = 0; >Index: Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp >=================================================================== >--- Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp (revision 239735) >+++ Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp (working copy) >@@ -149,12 +149,12 @@ void ResourceHandle::createCFURLConnecti > if (d->m_user.isEmpty() && d->m_pass.isEmpty()) { > // <rdar://problem/7174050> - For URLs that match the paths of those previously challenged for HTTP Basic authentication, > // try and reuse the credential preemptively, as allowed by RFC 2617. >- d->m_initialCredential = d->m_context->storageSession().credentialStorage().get(partition, firstRequest().url()); >+ d->m_initialCredential = d->m_context->storageSession()->credentialStorage().get(partition, firstRequest().url()); > } else { > // If there is already a protection space known for the URL, update stored credentials before sending a request. > // This makes it possible to implement logout by sending an XMLHttpRequest with known incorrect credentials, and aborting it immediately > // (so that an authentication dialog doesn't pop up). >- d->m_context->storageSession().credentialStorage().set(partition, Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url()); >+ d->m_context->storageSession()->credentialStorage().set(partition, Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url()); > } > } > >@@ -261,7 +261,7 @@ bool ResourceHandle::start() > if (!d->m_context->isValid()) > return false; > >- d->m_storageSession = d->m_context->storageSession().platformSession(); >+ d->m_storageSession = d->m_context->storageSession()->platformSession(); > > bool shouldUseCredentialStorage = !client() || client()->shouldUseCredentialStorage(this); > >@@ -307,7 +307,7 @@ void ResourceHandle::willSendRequest(Res > // Only consider applying authentication credentials if this is actually a redirect and the redirect > // URL didn't include credentials of its own. > if (d->m_user.isEmpty() && d->m_pass.isEmpty() && !redirectResponse.isNull()) { >- Credential credential = d->m_context->storageSession().credentialStorage().get(partition, request.url()); >+ Credential credential = d->m_context->storageSession()->credentialStorage().get(partition, request.url()); > if (!credential.isEmpty()) { > d->m_initialCredential = credential; > >@@ -382,7 +382,7 @@ bool ResourceHandle::tryHandlePasswordBa > URL urlToStore; > if (challenge.failureResponse().httpStatusCode() == 401) > urlToStore = challenge.failureResponse().url(); >- d->m_context->storageSession().credentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore); >+ d->m_context->storageSession()->credentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore); > > CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef()); > d->m_user = String(); >@@ -396,16 +396,16 @@ bool ResourceHandle::tryHandlePasswordBa > // The stored credential wasn't accepted, stop using it. > // There is a race condition here, since a different credential might have already been stored by another ResourceHandle, > // but the observable effect should be very minor, if any. >- d->m_context->storageSession().credentialStorage().remove(partition, challenge.protectionSpace()); >+ d->m_context->storageSession()->credentialStorage().remove(partition, challenge.protectionSpace()); > } > > if (!challenge.previousFailureCount()) { >- Credential credential = d->m_context->storageSession().credentialStorage().get(partition, challenge.protectionSpace()); >+ Credential credential = d->m_context->storageSession()->credentialStorage().get(partition, challenge.protectionSpace()); > if (!credential.isEmpty() && credential != d->m_initialCredential) { > ASSERT(credential.persistence() == CredentialPersistenceNone); > if (challenge.failureResponse().httpStatusCode() == 401) { > // Store the credential back, possibly adding it as a default for this directory. >- d->m_context->storageSession().credentialStorage().set(partition, credential, challenge.protectionSpace(), challenge.failureResponse().url()); >+ d->m_context->storageSession()->credentialStorage().set(partition, credential, challenge.protectionSpace(), challenge.failureResponse().url()); > } > #if PLATFORM(COCOA) > CFURLConnectionUseCredential(d->m_connection.get(), credential.cfCredential(), challenge.cfURLAuthChallengeRef()); >@@ -455,7 +455,7 @@ void ResourceHandle::receivedCredential( > if (challenge.failureResponse().httpStatusCode() == 401) > urlToStore = challenge.failureResponse().url(); > >- d->m_context->storageSession().credentialStorage().set(firstRequest().cachePartition(), webCredential, challenge.protectionSpace(), urlToStore); >+ d->m_context->storageSession()->credentialStorage().set(firstRequest().cachePartition(), webCredential, challenge.protectionSpace(), urlToStore); > > if (d->m_connection) { > #if PLATFORM(COCOA) >@@ -571,7 +571,7 @@ void ResourceHandle::platformLoadResourc > bool shouldContentEncodingSniff = true; > RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(context, request, &client, defersLoading, shouldContentSniff, shouldContentEncodingSniff)); > >- handle->d->m_storageSession = context->storageSession().platformSession(); >+ handle->d->m_storageSession = context->storageSession()->platformSession(); > > if (handle->d->m_scheduledFailureType != NoFailure) { > error = context->blockedError(request); >Index: Source/WebCore/platform/network/mac/ResourceHandleMac.mm >=================================================================== >--- Source/WebCore/platform/network/mac/ResourceHandleMac.mm (revision 239735) >+++ Source/WebCore/platform/network/mac/ResourceHandleMac.mm (working copy) >@@ -157,12 +157,12 @@ void ResourceHandle::createNSURLConnecti > if (d->m_user.isEmpty() && d->m_pass.isEmpty()) { > // <rdar://problem/7174050> - For URLs that match the paths of those previously challenged for HTTP Basic authentication, > // try and reuse the credential preemptively, as allowed by RFC 2617. >- d->m_initialCredential = d->m_context->storageSession().credentialStorage().get(firstRequest().cachePartition(), firstRequest().url()); >+ d->m_initialCredential = d->m_context->storageSession()->credentialStorage().get(firstRequest().cachePartition(), firstRequest().url()); > } else { > // If there is already a protection space known for the URL, update stored credentials before sending a request. > // This makes it possible to implement logout by sending an XMLHttpRequest with known incorrect credentials, and aborting it immediately > // (so that an authentication dialog doesn't pop up). >- d->m_context->storageSession().credentialStorage().set(firstRequest().cachePartition(), Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url()); >+ d->m_context->storageSession()->credentialStorage().set(firstRequest().cachePartition(), Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url()); > } > } > >@@ -240,7 +240,7 @@ bool ResourceHandle::start() > if (!d->m_context->isValid()) > return false; > >- d->m_storageSession = d->m_context->storageSession().platformSession(); >+ d->m_storageSession = d->m_context->storageSession()->platformSession(); > > // FIXME: Do not use the sync version of shouldUseCredentialStorage when the client returns true from usesAsyncCallbacks. > bool shouldUseCredentialStorage = !client() || client()->shouldUseCredentialStorage(this); >@@ -367,7 +367,7 @@ void ResourceHandle::platformLoadResourc > bool shouldContentEncodingSniff = true; > RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(context, request, &client, defersLoading, shouldContentSniff, shouldContentEncodingSniff)); > >- handle->d->m_storageSession = context->storageSession().platformSession(); >+ handle->d->m_storageSession = context->storageSession()->platformSession(); > > if (context && handle->d->m_scheduledFailureType != NoFailure) { > error = context->blockedError(request); >@@ -449,7 +449,7 @@ void ResourceHandle::willSendRequest(Res > // Only consider applying authentication credentials if this is actually a redirect and the redirect > // URL didn't include credentials of its own. > if (d->m_user.isEmpty() && d->m_pass.isEmpty() && !redirectResponse.isNull()) { >- Credential credential = d->m_context->storageSession().credentialStorage().get(request.cachePartition(), request.url()); >+ Credential credential = d->m_context->storageSession()->credentialStorage().get(request.cachePartition(), request.url()); > if (!credential.isEmpty()) { > d->m_initialCredential = credential; > >@@ -540,16 +540,16 @@ bool ResourceHandle::tryHandlePasswordBa > // The stored credential wasn't accepted, stop using it. > // There is a race condition here, since a different credential might have already been stored by another ResourceHandle, > // but the observable effect should be very minor, if any. >- d->m_context->storageSession().credentialStorage().remove(d->m_partition, challenge.protectionSpace()); >+ d->m_context->storageSession()->credentialStorage().remove(d->m_partition, challenge.protectionSpace()); > } > > if (!challenge.previousFailureCount()) { >- Credential credential = d->m_context->storageSession().credentialStorage().get(d->m_partition, challenge.protectionSpace()); >+ Credential credential = d->m_context->storageSession()->credentialStorage().get(d->m_partition, challenge.protectionSpace()); > if (!credential.isEmpty() && credential != d->m_initialCredential) { > ASSERT(credential.persistence() == CredentialPersistenceNone); > if (challenge.failureResponse().httpStatusCode() == 401) { > // Store the credential back, possibly adding it as a default for this directory. >- d->m_context->storageSession().credentialStorage().set(d->m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url()); >+ d->m_context->storageSession()->credentialStorage().set(d->m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url()); > } > [challenge.sender() useCredential:credential.nsCredential() forAuthenticationChallenge:mac(challenge)]; > return true; >@@ -591,7 +591,7 @@ void ResourceHandle::receivedCredential( > URL urlToStore; > if (challenge.failureResponse().httpStatusCode() == 401) > urlToStore = challenge.failureResponse().url(); >- d->m_context->storageSession().credentialStorage().set(d->m_partition, webCredential, ProtectionSpace([d->m_currentMacChallenge protectionSpace]), urlToStore); >+ d->m_context->storageSession()->credentialStorage().set(d->m_partition, webCredential, ProtectionSpace([d->m_currentMacChallenge protectionSpace]), urlToStore); > [[d->m_currentMacChallenge sender] useCredential:webCredential.nsCredential() forAuthenticationChallenge:d->m_currentMacChallenge]; > } else > [[d->m_currentMacChallenge sender] useCredential:credential.nsCredential() forAuthenticationChallenge:d->m_currentMacChallenge]; >Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 239735) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,39 @@ >+2019-01-08 Alex Christensen <achristensen@webkit.org> >+ >+ Stop using NetworkStorageSession in WebProcess >+ https://bugs.webkit.org/show_bug.cgi?id=193236 >+ >+ Reviewed by Don Olmstead. >+ >+ * 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: >+ > 2019-01-08 Alex Christensen <achristensen@webkit.org> > > Unreviewed, rolling out r239727. >Index: Source/WebKit/Shared/WebProcessCreationParameters.cpp >=================================================================== >--- Source/WebKit/Shared/WebProcessCreationParameters.cpp (revision 239735) >+++ Source/WebKit/Shared/WebProcessCreationParameters.cpp (working copy) >@@ -72,7 +72,6 @@ void WebProcessCreationParameters::encod > encoder << shouldCaptureVideoInUIProcess; > encoder << shouldCaptureDisplayInUIProcess; > #endif >- encoder << shouldUseTestingNetworkSession; > encoder << urlSchemesRegisteredAsEmptyDocument; > encoder << urlSchemesRegisteredAsSecure; > encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy; >@@ -267,8 +266,6 @@ bool WebProcessCreationParameters::decod > if (!decoder.decode(parameters.shouldCaptureDisplayInUIProcess)) > return false; > #endif >- if (!decoder.decode(parameters.shouldUseTestingNetworkSession)) >- return false; > if (!decoder.decode(parameters.urlSchemesRegisteredAsEmptyDocument)) > return false; > if (!decoder.decode(parameters.urlSchemesRegisteredAsSecure)) >Index: Source/WebKit/Shared/WebProcessCreationParameters.h >=================================================================== >--- Source/WebKit/Shared/WebProcessCreationParameters.h (revision 239735) >+++ Source/WebKit/Shared/WebProcessCreationParameters.h (working copy) >@@ -124,7 +124,6 @@ struct WebProcessCreationParameters { > > double defaultRequestTimeoutInterval { INT_MAX }; > >- bool shouldUseTestingNetworkSession { false }; > bool shouldAlwaysUseComplexTextCodePath { false }; > bool shouldEnableMemoryPressureReliefLogging { false }; > bool shouldSuppressMemoryPressureHandler { false }; >Index: Source/WebKit/Shared/WebsitePoliciesData.cpp >=================================================================== >--- Source/WebKit/Shared/WebsitePoliciesData.cpp (revision 239735) >+++ Source/WebKit/Shared/WebsitePoliciesData.cpp (working copy) >@@ -161,11 +161,8 @@ void WebsitePoliciesData::applyToDocumen > > if (websitePolicies.websiteDataStoreParameters) { > if (auto* frame = documentLoader.frame()) { >- if (auto* page = frame->page()) { >- auto sessionID = websitePolicies.websiteDataStoreParameters->networkSessionParameters.sessionID; >- WebProcess::singleton().addWebsiteDataStore(WTFMove(*websitePolicies.websiteDataStoreParameters)); >- page->setSessionID(sessionID); >- } >+ if (auto* page = frame->page()) >+ page->setSessionID(websitePolicies.websiteDataStoreParameters->networkSessionParameters.sessionID); > } > } > } >Index: Source/WebKit/UIProcess/WebProcessPool.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebProcessPool.cpp (revision 239735) >+++ Source/WebKit/UIProcess/WebProcessPool.cpp (working copy) >@@ -689,10 +689,8 @@ void WebProcessPool::setAnyPageGroupMigh > { > if (privateBrowsingEnabled) { > sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters())); >- sendToAllProcesses(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters())); > } else { > networkProcess()->removeSession(PAL::SessionID::legacyPrivateSessionID()); >- sendToAllProcesses(Messages::WebProcess::DestroySession(PAL::SessionID::legacyPrivateSessionID())); > } > } > >@@ -765,8 +763,6 @@ RefPtr<WebProcessProxy> WebProcessPool:: > > ASSERT(m_prewarmedProcess->isPrewarmed()); > m_prewarmedProcess->markIsNoLongerInPrewarmedPool(); >- if (&m_prewarmedProcess->websiteDataStore() != &websiteDataStore) >- m_prewarmedProcess->send(Messages::WebProcess::AddWebsiteDataStore(websiteDataStore.parameters()), 0); > > return std::exchange(m_prewarmedProcess, nullptr); > } >@@ -854,8 +850,6 @@ void WebProcessPool::initializeNewWebPro > SandboxExtension::createHandleWithoutResolvingPath(parameters.javaScriptConfigurationDirectory, SandboxExtension::Type::ReadWrite, parameters.javaScriptConfigurationDirectoryExtensionHandle); > } > >- parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession; >- > parameters.cacheModel = cacheModel(); > parameters.languages = userPreferredLanguages(); > >@@ -942,9 +936,6 @@ void WebProcessPool::initializeNewWebPro > process.send(Messages::WebProcess::SetQOS(webProcessLatencyQOS(), webProcessThroughputQOS()), 0); > #endif > >- if (WebPreferences::anyPagesAreUsingPrivateBrowsing()) >- process.send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()), 0); >- > if (m_automationSession) > process.send(Messages::WebProcess::EnsureAutomationSessionProxy(m_automationSession->sessionIdentifier()), 0); > >@@ -1188,12 +1179,10 @@ void WebProcessPool::pageBeginUsingWebsi > ASSERT(page.websiteDataStore().parameters().networkSessionParameters.sessionID == sessionID); > if (m_networkProcess) > m_networkProcess->addSession(makeRef(page.websiteDataStore())); >- page.process().send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::privateSessionParameters(sessionID)), 0); > page.websiteDataStore().clearPendingCookies(); > } else if (sessionID != PAL::SessionID::defaultSessionID()) { > if (m_networkProcess) > m_networkProcess->addSession(makeRef(page.websiteDataStore())); >- page.process().send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0); > page.websiteDataStore().clearPendingCookies(); > } > >@@ -1224,7 +1213,6 @@ void WebProcessPool::pageEndUsingWebsite > // The last user of this non-default PAL::SessionID is gone, so clean it up in the child processes. > if (networkProcess()) > networkProcess()->removeSession(sessionID); >- page.process().send(Messages::WebProcess::DestroySession(sessionID), 0); > } > } > >@@ -2238,9 +2226,6 @@ void WebProcessPool::processForNavigatio > if (&(*it)->page() == &page) > m_suspendedPages.remove(it); > >- if (&process->websiteDataStore() != &page.websiteDataStore()) >- process->send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0); >- > return completionHandler(WTFMove(process), nullptr, reason); > } > >Index: Source/WebKit/WebProcess/WebProcess.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebProcess.cpp (revision 239735) >+++ Source/WebKit/WebProcess/WebProcess.cpp (working copy) >@@ -381,9 +381,6 @@ void WebProcess::initializeWebProcess(We > > setShouldUseFontSmoothing(parameters.shouldUseFontSmoothing); > >- if (parameters.shouldUseTestingNetworkSession) >- NetworkStorageSession::switchToNewTestingSession(); >- > ensureNetworkProcessConnection(); > > setTerminationTimeout(parameters.terminationTimeout); >@@ -540,16 +537,6 @@ void WebProcess::fullKeyboardAccessModeC > m_fullKeyboardAccessEnabled = fullKeyboardAccessEnabled; > } > >-void WebProcess::addWebsiteDataStore(WebsiteDataStoreParameters&& parameters) >-{ >- WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WTFMove(parameters)); >-} >- >-void WebProcess::destroySession(PAL::SessionID sessionID) >-{ >- SessionTracker::destroySession(sessionID); >-} >- > void WebProcess::ensureLegacyPrivateBrowsingSessionInNetworkProcess() > { > ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::EnsureLegacyPrivateBrowsingSession(), 0); >@@ -1294,11 +1281,6 @@ void WebProcess::fetchWebsiteData(PAL::S > for (auto& origin : MemoryCache::singleton().originsWithCache(sessionID)) > websiteData.entries.append(WebsiteData::Entry { origin->data(), WebsiteDataType::MemoryCache, 0 }); > } >- >- if (websiteDataTypes.contains(WebsiteDataType::Credentials)) { >- if (NetworkStorageSession::storageSession(sessionID)) >- websiteData.originsWithCredentials = NetworkStorageSession::storageSession(sessionID)->credentialStorage().originsWithCredentials(); >- } > } > > void WebProcess::deleteWebsiteData(PAL::SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, WallTime modifiedSince) >Index: Source/WebKit/WebProcess/WebProcess.h >=================================================================== >--- Source/WebKit/WebProcess/WebProcess.h (revision 239735) >+++ Source/WebKit/WebProcess/WebProcess.h (working copy) >@@ -178,8 +178,6 @@ public: > void setCacheModel(CacheModel); > > void ensureLegacyPrivateBrowsingSessionInNetworkProcess(); >- void addWebsiteDataStore(WebsiteDataStoreParameters&&); >- void destroySession(PAL::SessionID); > > void pageDidEnterWindow(uint64_t pageID); > void pageWillLeaveWindow(uint64_t pageID); >Index: Source/WebKit/WebProcess/WebProcess.messages.in >=================================================================== >--- Source/WebKit/WebProcess/WebProcess.messages.in (revision 239735) >+++ Source/WebKit/WebProcess/WebProcess.messages.in (working copy) >@@ -53,9 +53,6 @@ messages -> WebProcess LegacyReceiver { > > ClearCachedCredentials() > >- AddWebsiteDataStore(struct WebKit::WebsiteDataStoreParameters websiteDataStoreParameters); >- DestroySession(PAL::SessionID sessionID) >- > # Plug-ins. > DidAddPlugInAutoStartOriginHash(uint32_t hash, WallTime expirationTime, PAL::SessionID sessionID) > ResetPlugInAutoStartOriginDefaultHashes(HashMap<uint32_t,WallTime> hashes) >Index: Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp >=================================================================== >--- Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (revision 239735) >+++ Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (working copy) >@@ -357,7 +357,6 @@ void InjectedBundle::setPrivateBrowsingE > ASSERT(!hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); > if (enabled) { > WebProcess::singleton().ensureLegacyPrivateBrowsingSessionInNetworkProcess(); >- WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters::legacyPrivateSessionParameters()); > } else > SessionTracker::destroySession(PAL::SessionID::legacyPrivateSessionID()); > >Index: Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (revision 239733) >+++ Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (working copy) >@@ -107,35 +107,30 @@ BlobRegistry* WebPlatformStrategies::cre > > // CookiesStrategy > >-std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >+std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) > { > String cookieString; > bool secureCookiesAccessed = false; >- if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesForDOM(session.sessionID(), firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookiesForDOM::Reply(cookieString, secureCookiesAccessed), 0)) >+ if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesForDOM(sessionID, firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookiesForDOM::Reply(cookieString, secureCookiesAccessed), 0)) > return { String(), false }; > > return { cookieString, secureCookiesAccessed }; > } > >-void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const WebCore::SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) >+void WebPlatformStrategies::setCookiesFromDOM(const PAL::SessionID& sessionID, const URL& firstParty, const WebCore::SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) > { >- WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::SetCookiesFromDOM(session.sessionID(), firstParty, sameSiteInfo, url, frameID, pageID, cookieString), 0); >+ WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::SetCookiesFromDOM(sessionID, firstParty, sameSiteInfo, url, frameID, pageID, cookieString), 0); > } > >-bool WebPlatformStrategies::cookiesEnabled(const NetworkStorageSession& session) >+bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID) > { > bool result; >- if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesEnabled(session.sessionID()), Messages::NetworkConnectionToWebProcess::CookiesEnabled::Reply(result), 0)) >+ if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesEnabled(sessionID), Messages::NetworkConnectionToWebProcess::CookiesEnabled::Reply(result), 0)) > return false; > return result; > } > >-std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >-{ >- return cookieRequestHeaderFieldValue(session.sessionID(), firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); >-} >- >-std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >+std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) > { > String cookieString; > bool secureCookiesAccessed = false; >@@ -144,16 +139,16 @@ std::pair<String, bool> WebPlatformStrat > return { cookieString, secureCookiesAccessed }; > } > >-bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) >+bool WebPlatformStrategies::getRawCookies(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) > { >- if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::GetRawCookies(session.sessionID(), firstParty, sameSiteInfo, url, frameID, pageID), Messages::NetworkConnectionToWebProcess::GetRawCookies::Reply(rawCookies), 0)) >+ if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::GetRawCookies(sessionID, firstParty, sameSiteInfo, url, frameID, pageID), Messages::NetworkConnectionToWebProcess::GetRawCookies::Reply(rawCookies), 0)) > return false; > return true; > } > >-void WebPlatformStrategies::deleteCookie(const NetworkStorageSession& session, const URL& url, const String& cookieName) >+void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName) > { >- WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::DeleteCookie(session.sessionID(), url, cookieName), 0); >+ WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::DeleteCookie(sessionID, url, cookieName), 0); > } > > #if PLATFORM(COCOA) >Index: Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h (revision 239733) >+++ Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h (working copy) >@@ -47,13 +47,12 @@ private: > WebCore::BlobRegistry* createBlobRegistry() override; > > // WebCore::CookiesStrategy >- std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override; >- bool cookiesEnabled(const WebCore::NetworkStorageSession&) override; >- std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- bool getRawCookies(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&) override; >- void deleteCookie(const WebCore::NetworkStorageSession&, const URL&, const String&) override; >+ std::pair<String, bool> cookiesForDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >+ void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override; >+ bool cookiesEnabled(const PAL::SessionID&) override; >+ std::pair<String, bool> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >+ bool getRawCookies(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&) override; >+ void deleteCookie(const PAL::SessionID&, const URL&, const String&) override; > > // WebCore::PasteboardStrategy > #if PLATFORM(IOS_FAMILY) >Index: Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp (revision 239735) >+++ Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp (working copy) >@@ -56,15 +56,6 @@ WebFrameNetworkingContext::WebFrameNetwo > { > } > >-NetworkStorageSession& WebFrameNetworkingContext::storageSession() const >-{ >- if (frame()) { >- if (auto* storageSession = NetworkStorageSession::storageSession(frame()->page()->sessionID())) >- return *storageSession; >- } >- return NetworkStorageSession::defaultStorageSession(); >-} >- > WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const > { > if (!frame()) >Index: Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h (revision 239735) >+++ Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h (working copy) >@@ -53,7 +53,7 @@ public: > private: > WebFrameNetworkingContext(WebFrame*); > >- WebCore::NetworkStorageSession& storageSession() const override; >+ WebCore::NetworkStorageSession* storageSession() const override { return nullptr; } > }; > > } >Index: Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h (revision 239735) >+++ Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h (working copy) >@@ -56,7 +56,7 @@ private: > RetainPtr<CFDataRef> sourceApplicationAuditData() const override; > String sourceApplicationIdentifier() const override; > WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override; >- WebCore::NetworkStorageSession& storageSession() const override; >+ WebCore::NetworkStorageSession* storageSession() const override { return nullptr; } > }; > > } >Index: Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm (revision 239735) >+++ Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm (working copy) >@@ -43,20 +43,6 @@ > namespace WebKit { > using namespace WebCore; > >-void WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters) >-{ >- ASSERT(!hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); >- auto sessionID = parameters.networkSessionParameters.sessionID; >- if (NetworkStorageSession::storageSession(sessionID)) >- return; >- >- String base = WebProcess::singleton().uiProcessBundleIdentifier(); >- if (base.isNull()) >- base = [[NSBundle mainBundle] bundleIdentifier]; >- >- NetworkStorageSession::ensureSession(sessionID, base + '.' + String::number(sessionID.sessionID())); >-} >- > bool WebFrameNetworkingContext::localFileContentSniffingEnabled() const > { > return frame() && frame()->settings().localFileContentSniffingEnabled(); >@@ -84,19 +70,6 @@ ResourceError WebFrameNetworkingContext: > return frame()->loader().client().blockedError(request); > } > >-NetworkStorageSession& WebFrameNetworkingContext::storageSession() const >-{ >- ASSERT(RunLoop::isMain()); >- ASSERT(!hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); >- if (frame()) { >- if (auto* storageSession = WebCore::NetworkStorageSession::storageSession(frame()->page()->sessionID())) >- return *storageSession; >- // Some requests may still be coming shortly after WebProcess was told to destroy its session. >- LOG_ERROR("WEB Invalid session ID. Please file a bug unless you just disabled private browsing, in which case it's an expected race."); >- } >- return NetworkStorageSession::defaultStorageSession(); >-} >- > WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const > { > if (!frame()) >Index: Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp (revision 239735) >+++ Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp (working copy) >@@ -58,15 +58,6 @@ WebFrameNetworkingContext::WebFrameNetwo > { > } > >-NetworkStorageSession& WebFrameNetworkingContext::storageSession() const >-{ >- if (frame()) { >- if (auto* storageSession = NetworkStorageSession::storageSession(frame()->page()->sessionID())) >- return *storageSession; >- } >- return NetworkStorageSession::defaultStorageSession(); >-} >- > WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const > { > if (!frame()) >Index: Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h (revision 239735) >+++ Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h (working copy) >@@ -51,7 +51,7 @@ public: > private: > WebFrameNetworkingContext(WebFrame*); > >- WebCore::NetworkStorageSession& storageSession() const override; >+ WebCore::NetworkStorageSession* storageSession() const override { return nullptr; } > }; > > } >Index: Source/WebKit/WebProcess/WebPage/WebPage.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebPage/WebPage.cpp (revision 239735) >+++ Source/WebKit/WebProcess/WebPage/WebPage.cpp (working copy) >@@ -3043,8 +3043,6 @@ void WebPage::setLayerHostingMode(LayerH > > void WebPage::setSessionID(PAL::SessionID sessionID) > { >- if (sessionID.isEphemeral()) >- WebProcess::singleton().addWebsiteDataStore(WebsiteDataStoreParameters::privateSessionParameters(sessionID)); > m_page->setSessionID(sessionID); > } > >Index: Source/WebKitLegacy/mac/ChangeLog >=================================================================== >--- Source/WebKitLegacy/mac/ChangeLog (revision 239736) >+++ Source/WebKitLegacy/mac/ChangeLog (working copy) >@@ -1,3 +1,25 @@ >+2019-01-08 Alex Christensen <achristensen@webkit.org> >+ >+ Stop using NetworkStorageSession in WebProcess >+ https://bugs.webkit.org/show_bug.cgi?id=193236 >+ >+ Reviewed by Don Olmstead. >+ >+ * WebCoreSupport/WebFrameNetworkingContext.h: >+ * WebCoreSupport/WebFrameNetworkingContext.mm: >+ (WebFrameNetworkingContext::storageSession const): >+ * WebCoreSupport/WebPlatformStrategies.h: >+ * WebCoreSupport/WebPlatformStrategies.mm: >+ (WebPlatformStrategies::cookiesForDOM): >+ (WebPlatformStrategies::setCookiesFromDOM): >+ (WebPlatformStrategies::cookiesEnabled): >+ (WebPlatformStrategies::cookieRequestHeaderFieldValue): >+ (WebPlatformStrategies::getRawCookies): >+ (WebPlatformStrategies::deleteCookie): >+ * WebView/WebView.mm: >+ (-[WebView _cachedResponseForURL:]): >+ (-[WebView _clearCredentials]): >+ > 2019-01-08 Alex Christensen <achristensen@webkit.org> > > Unreviewed, rolling out r239727. >Index: Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.h >=================================================================== >--- Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.h (revision 239735) >+++ Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.h (working copy) >@@ -49,5 +49,5 @@ private: > RetainPtr<CFDataRef> sourceApplicationAuditData() const override; > String sourceApplicationIdentifier() const override; > WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override; >- WebCore::NetworkStorageSession& storageSession() const override; >+ WebCore::NetworkStorageSession* storageSession() const override; > }; >Index: Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.mm >=================================================================== >--- Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.mm (revision 239735) >+++ Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.mm (working copy) >@@ -90,14 +90,14 @@ ResourceError WebFrameNetworkingContext: > return frame()->loader().client().blockedError(request); > } > >-NetworkStorageSession& WebFrameNetworkingContext::storageSession() const >+NetworkStorageSession* WebFrameNetworkingContext::storageSession() const > { > ASSERT(isMainThread()); > if (frame() && frame()->page() && frame()->page()->sessionID().isEphemeral()) { > if (auto* session = NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID())) >- return *session; >+ return session; > // Some requests may still be coming shortly before WebCore updates the session ID and after WebKit destroys the private browsing session. > LOG_ERROR("Invalid session ID. Please file a bug unless you just disabled private browsing, in which case it's an expected race."); > } >- return NetworkStorageSession::defaultStorageSession(); >+ return &NetworkStorageSession::defaultStorageSession(); > } >Index: Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h >=================================================================== >--- Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h (revision 239733) >+++ Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h (working copy) >@@ -48,13 +48,12 @@ private: > WebCore::BlobRegistry* createBlobRegistry() override; > > // WebCore::CookiesStrategy >- std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override; >- bool cookiesEnabled(const WebCore::NetworkStorageSession&) override; >- std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- bool getRawCookies(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&) override; >- void deleteCookie(const WebCore::NetworkStorageSession&, const URL&, const String&) override; >+ std::pair<String, bool> cookiesForDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >+ void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override; >+ bool cookiesEnabled(const PAL::SessionID&) override; >+ std::pair<String, bool> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >+ bool getRawCookies(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&) override; >+ void deleteCookie(const PAL::SessionID&, const URL&, const String&) override; > > // WebCore::PasteboardStrategy > #if PLATFORM(IOS_FAMILY) >Index: Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm >=================================================================== >--- Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm (revision 239733) >+++ Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm (working copy) >@@ -72,39 +72,39 @@ BlobRegistry* WebPlatformStrategies::cre > return new WebCore::BlobRegistryImpl; > } > >-std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >+std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > return session.cookiesForDOM(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); > } > >-void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) >+void WebPlatformStrategies::setCookiesFromDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > session.setCookiesFromDOM(firstParty, sameSiteInfo, url, frameID, pageID, cookieString); > } > >-bool WebPlatformStrategies::cookiesEnabled(const NetworkStorageSession& session) >+bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > return session.cookiesEnabled(); > } > >-std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >-{ >- return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); >-} >- >-std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >+std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) > { > auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); > } > >-bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) >+bool WebPlatformStrategies::getRawCookies(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > return session.getRawCookies(firstParty, sameSiteInfo, url, frameID, pageID, rawCookies); > } > >-void WebPlatformStrategies::deleteCookie(const NetworkStorageSession& session, const URL& url, const String& cookieName) >+void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > session.deleteCookie(url, cookieName); > } > >Index: Source/WebKitLegacy/mac/WebView/WebView.mm >=================================================================== >--- Source/WebKitLegacy/mac/WebView/WebView.mm (revision 239735) >+++ Source/WebKitLegacy/mac/WebView/WebView.mm (working copy) >@@ -3668,7 +3668,7 @@ - (NSCachedURLResponse *)_cachedResponse > if (!_private->page) > return nil; > >- if (CFURLStorageSessionRef storageSession = _private->page->mainFrame().loader().networkingContext()->storageSession().platformSession()) >+ if (auto storageSession = _private->page->mainFrame().loader().networkingContext()->storageSession()->platformSession()) > cachedResponse = cachedResponseForRequest(storageSession, request.get()); > else > cachedResponse = [[NSURLCache sharedURLCache] cachedResponseForRequest:request.get()]; >@@ -9251,7 +9251,7 @@ - (void)_clearCredentials > if (!networkingContext) > return; > >- networkingContext->storageSession().credentialStorage().clearCredentials(); >+ networkingContext->storageSession()->credentialStorage().clearCredentials(); > } > > - (BOOL)_needsOneShotDrawingSynchronization >Index: Source/WebKitLegacy/win/ChangeLog >=================================================================== >--- Source/WebKitLegacy/win/ChangeLog (revision 239735) >+++ Source/WebKitLegacy/win/ChangeLog (working copy) >@@ -1,3 +1,22 @@ >+2019-01-08 Alex Christensen <achristensen@webkit.org> >+ >+ Stop using NetworkStorageSession in WebProcess >+ https://bugs.webkit.org/show_bug.cgi?id=193236 >+ >+ Reviewed by Don Olmstead. >+ >+ * WebCoreSupport/WebFrameNetworkingContext.cpp: >+ (WebFrameNetworkingContext::storageSession const): >+ * WebCoreSupport/WebFrameNetworkingContext.h: >+ * WebCoreSupport/WebPlatformStrategies.cpp: >+ (WebPlatformStrategies::cookiesForDOM): >+ (WebPlatformStrategies::setCookiesFromDOM): >+ (WebPlatformStrategies::cookiesEnabled): >+ (WebPlatformStrategies::cookieRequestHeaderFieldValue): >+ (WebPlatformStrategies::getRawCookies): >+ (WebPlatformStrategies::deleteCookie): >+ * WebCoreSupport/WebPlatformStrategies.h: >+ > 2019-01-08 Alex Christensen <achristensen@webkit.org> > > Unreviewed, rolling out r239727. >Index: Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.cpp >=================================================================== >--- Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.cpp (revision 239735) >+++ Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.cpp (working copy) >@@ -99,12 +99,12 @@ ResourceError WebFrameNetworkingContext: > return frame()->loader().client().blockedError(request); > } > >-NetworkStorageSession& WebFrameNetworkingContext::storageSession() const >+NetworkStorageSession* WebFrameNetworkingContext::storageSession() const > { > ASSERT(isMainThread()); > > if (frame() && frame()->page()->usesEphemeralSession()) >- return *NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID()); >+ return NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID()); > >- return NetworkStorageSession::defaultStorageSession(); >+ return &NetworkStorageSession::defaultStorageSession(); > } >Index: Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.h >=================================================================== >--- Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.h (revision 239735) >+++ Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.h (working copy) >@@ -47,5 +47,5 @@ private: > } > > WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override; >- WebCore::NetworkStorageSession& storageSession() const override; >+ WebCore::NetworkStorageSession* storageSession() const override; > }; >Index: Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.cpp >=================================================================== >--- Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.cpp (revision 239733) >+++ Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.cpp (working copy) >@@ -69,38 +69,38 @@ BlobRegistry* WebPlatformStrategies::cre > return new BlobRegistryImpl; > } > >-std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >+std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > return session.cookiesForDOM(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); > } > >-void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) >+void WebPlatformStrategies::setCookiesFromDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > session.setCookiesFromDOM(firstParty, sameSiteInfo, url, frameID, pageID, cookieString); > } > >-bool WebPlatformStrategies::cookiesEnabled(const NetworkStorageSession& session) >+bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > return session.cookiesEnabled(); > } > >-std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >-{ >- return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); >-} >- >-std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) >+std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) > { > auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); > } > >-bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) >+bool WebPlatformStrategies::getRawCookies(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > return session.getRawCookies(firstParty, sameSiteInfo, url, frameID, pageID, rawCookies); > } > >-void WebPlatformStrategies::deleteCookie(const NetworkStorageSession& session, const URL& url, const String& cookieName) >+void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName) > { >+ auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); > session.deleteCookie(url, cookieName); > } >Index: Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.h >=================================================================== >--- Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.h (revision 239733) >+++ Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.h (working copy) >@@ -45,11 +45,10 @@ private: > virtual WebCore::BlobRegistry* createBlobRegistry(); > > // WebCore::CookiesStrategy >- std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- virtual void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&); >- virtual bool cookiesEnabled(const WebCore::NetworkStorageSession&); >- std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >- virtual bool getRawCookies(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&); >- virtual void deleteCookie(const WebCore::NetworkStorageSession&, const URL&, const String&); >+ std::pair<String, bool> cookiesForDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >+ virtual void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&); >+ virtual bool cookiesEnabled(const PAL::SessionID&); >+ std::pair<String, bool> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; >+ virtual bool getRawCookies(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&); >+ virtual void deleteCookie(const PAL::SessionID&, const URL&, const String&); > };
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
don.olmstead
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193236
:
358591
|
358596
|
358602
| 358623