Changeset 239737 in webkit
- Timestamp:
- Jan 8, 2019 12:49:39 PM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r239735 r239737 1 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 3 Stop using NetworkStorageSession in WebProcess 4 https://bugs.webkit.org/show_bug.cgi?id=193236 5 6 Reviewed by Don Olmstead. 7 8 No change in behavior. Some code was only used for ResourceHandle, which isn't used in modern WebKit, 9 and for cookies, which are handled in the NetworkProcess in modern WebKit. 10 11 * loader/CookieJar.cpp: 12 (WebCore::storageSession): 13 * loader/EmptyClients.cpp: 14 * platform/network/NetworkingContext.h: 15 * platform/network/mac/ResourceHandleMac.mm: 16 (WebCore::ResourceHandle::createNSURLConnection): 17 (WebCore::ResourceHandle::start): 18 (WebCore::ResourceHandle::platformLoadResourceSynchronously): 19 (WebCore::ResourceHandle::willSendRequest): 20 (WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication): 21 (WebCore::ResourceHandle::receivedCredential): 22 1 23 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 24 -
trunk/Source/WebCore/loader/CookieJar.cpp
r239735 r239737 42 42 namespace WebCore { 43 43 44 static NetworkingContext* networkingContext(const Document& document)45 {46 // FIXME: Returning 0 means falling back to default context. That's not a choice that is appropriate to do at runtime47 Frame* frame = document.frame();48 if (!frame)49 return nullptr;50 51 return frame->loader().networkingContext();52 }53 54 inline NetworkStorageSession& storageSession(const Document& document)55 {56 NetworkingContext* context = networkingContext(document);57 return context ? context->storageSession() : NetworkStorageSession::defaultStorageSession();58 }59 60 44 static IncludeSecureCookies shouldIncludeSecureCookies(const Document& document, const URL& url) 61 45 { … … 79 63 auto frame = document.frame(); 80 64 if (frame) 81 result = platformStrategies()->cookiesStrategy()->cookiesForDOM( storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies);65 result = platformStrategies()->cookiesStrategy()->cookiesForDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies); 82 66 else 83 result = platformStrategies()->cookiesStrategy()->cookiesForDOM( storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies);67 result = platformStrategies()->cookiesStrategy()->cookiesForDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies); 84 68 85 69 if (result.second) … … 94 78 95 79 CookieRequestHeaderFieldProxy proxy; 96 proxy.sessionID = storageSession(document).sessionID();80 proxy.sessionID = document.sessionID(); 97 81 proxy.firstParty = document.firstPartyForCookies(); 98 82 proxy.sameSiteInfo = sameSiteInfo(document); … … 110 94 auto frame = document.frame(); 111 95 if (frame) 112 platformStrategies()->cookiesStrategy()->setCookiesFromDOM( storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookieString);96 platformStrategies()->cookiesStrategy()->setCookiesFromDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookieString); 113 97 else 114 platformStrategies()->cookiesStrategy()->setCookiesFromDOM( storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookieString);98 platformStrategies()->cookiesStrategy()->setCookiesFromDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookieString); 115 99 } 116 100 117 101 bool cookiesEnabled(const Document& document) 118 102 { 119 return platformStrategies()->cookiesStrategy()->cookiesEnabled( storageSession(document));103 return platformStrategies()->cookiesStrategy()->cookiesEnabled(document.sessionID()); 120 104 } 121 105 … … 127 111 auto frame = document.frame(); 128 112 if (frame) 129 result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue( storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies);113 result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies); 130 114 else 131 result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue( storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies);115 result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies); 132 116 133 117 if (result.second) … … 141 125 auto frame = document.frame(); 142 126 if (frame) 143 return platformStrategies()->cookiesStrategy()->getRawCookies( storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookies);127 return platformStrategies()->cookiesStrategy()->getRawCookies(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookies); 144 128 145 return platformStrategies()->cookiesStrategy()->getRawCookies( storageSession(document), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookies);129 return platformStrategies()->cookiesStrategy()->getRawCookies(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookies); 146 130 } 147 131 148 132 void deleteCookie(const Document& document, const URL& url, const String& cookieName) 149 133 { 150 platformStrategies()->cookiesStrategy()->deleteCookie( storageSession(document), url, cookieName);134 platformStrategies()->cookiesStrategy()->deleteCookie(document.sessionID(), url, cookieName); 151 135 } 152 136 -
trunk/Source/WebCore/loader/EmptyClients.cpp
r239735 r239737 288 288 289 289 bool shouldClearReferrerOnHTTPSToHTTPRedirect() const { return true; } 290 NetworkStorageSession & storageSession() const final { returnNetworkStorageSession::defaultStorageSession(); }290 NetworkStorageSession* storageSession() const final { return &NetworkStorageSession::defaultStorageSession(); } 291 291 292 292 #if PLATFORM(COCOA) -
trunk/Source/WebCore/platform/CookiesStrategy.h
r239427 r239737 41 41 class CookiesStrategy { 42 42 public: 43 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; 44 virtual void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString) = 0; 45 virtual bool cookiesEnabled(const NetworkStorageSession&) = 0; 46 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; 47 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; 48 virtual bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>&) = 0; 49 virtual void deleteCookie(const NetworkStorageSession&, const URL&, const String& cookieName) = 0; 43 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; 44 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; 45 virtual bool cookiesEnabled(const PAL::SessionID&) = 0; 46 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; 47 virtual bool getRawCookies(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>&) = 0; 48 virtual void deleteCookie(const PAL::SessionID&, const URL&, const String& cookieName) = 0; 50 49 51 50 protected: … … 54 53 55 54 } // namespace WebCore 56 57 namespace WTF {58 59 template<> struct EnumTraits<WebCore::IncludeSecureCookies> {60 using values = EnumValues<61 WebCore::IncludeSecureCookies,62 WebCore::IncludeSecureCookies::No,63 WebCore::IncludeSecureCookies::Yes64 >;65 };66 67 } // namespace WTF68 -
trunk/Source/WebCore/platform/network/NetworkStorageSession.cpp
r239427 r239737 27 27 #include "NetworkStorageSession.h" 28 28 29 #include "RuntimeApplicationChecks.h" 29 30 #include <pal/SessionID.h> 30 31 #include <wtf/NeverDestroyed.h> -
trunk/Source/WebCore/platform/network/NetworkingContext.h
r239735 r239737 59 59 virtual String sourceApplicationIdentifier() const { return emptyString(); } 60 60 61 virtual NetworkStorageSession &storageSession() const = 0;61 virtual NetworkStorageSession* storageSession() const = 0; 62 62 63 63 #if PLATFORM(WIN) -
trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp
r239735 r239737 150 150 // <rdar://problem/7174050> - For URLs that match the paths of those previously challenged for HTTP Basic authentication, 151 151 // try and reuse the credential preemptively, as allowed by RFC 2617. 152 d->m_initialCredential = d->m_context->storageSession() .credentialStorage().get(partition, firstRequest().url());152 d->m_initialCredential = d->m_context->storageSession()->credentialStorage().get(partition, firstRequest().url()); 153 153 } else { 154 154 // If there is already a protection space known for the URL, update stored credentials before sending a request. 155 155 // This makes it possible to implement logout by sending an XMLHttpRequest with known incorrect credentials, and aborting it immediately 156 156 // (so that an authentication dialog doesn't pop up). 157 d->m_context->storageSession() .credentialStorage().set(partition, Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url());157 d->m_context->storageSession()->credentialStorage().set(partition, Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url()); 158 158 } 159 159 } … … 262 262 return false; 263 263 264 d->m_storageSession = d->m_context->storageSession() .platformSession();264 d->m_storageSession = d->m_context->storageSession()->platformSession(); 265 265 266 266 bool shouldUseCredentialStorage = !client() || client()->shouldUseCredentialStorage(this); … … 308 308 // URL didn't include credentials of its own. 309 309 if (d->m_user.isEmpty() && d->m_pass.isEmpty() && !redirectResponse.isNull()) { 310 Credential credential = d->m_context->storageSession() .credentialStorage().get(partition, request.url());310 Credential credential = d->m_context->storageSession()->credentialStorage().get(partition, request.url()); 311 311 if (!credential.isEmpty()) { 312 312 d->m_initialCredential = credential; … … 383 383 if (challenge.failureResponse().httpStatusCode() == 401) 384 384 urlToStore = challenge.failureResponse().url(); 385 d->m_context->storageSession() .credentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore);385 d->m_context->storageSession()->credentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore); 386 386 387 387 CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef()); … … 397 397 // There is a race condition here, since a different credential might have already been stored by another ResourceHandle, 398 398 // but the observable effect should be very minor, if any. 399 d->m_context->storageSession() .credentialStorage().remove(partition, challenge.protectionSpace());399 d->m_context->storageSession()->credentialStorage().remove(partition, challenge.protectionSpace()); 400 400 } 401 401 402 402 if (!challenge.previousFailureCount()) { 403 Credential credential = d->m_context->storageSession() .credentialStorage().get(partition, challenge.protectionSpace());403 Credential credential = d->m_context->storageSession()->credentialStorage().get(partition, challenge.protectionSpace()); 404 404 if (!credential.isEmpty() && credential != d->m_initialCredential) { 405 405 ASSERT(credential.persistence() == CredentialPersistenceNone); 406 406 if (challenge.failureResponse().httpStatusCode() == 401) { 407 407 // Store the credential back, possibly adding it as a default for this directory. 408 d->m_context->storageSession() .credentialStorage().set(partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());408 d->m_context->storageSession()->credentialStorage().set(partition, credential, challenge.protectionSpace(), challenge.failureResponse().url()); 409 409 } 410 410 #if PLATFORM(COCOA) … … 456 456 urlToStore = challenge.failureResponse().url(); 457 457 458 d->m_context->storageSession() .credentialStorage().set(firstRequest().cachePartition(), webCredential, challenge.protectionSpace(), urlToStore);458 d->m_context->storageSession()->credentialStorage().set(firstRequest().cachePartition(), webCredential, challenge.protectionSpace(), urlToStore); 459 459 460 460 if (d->m_connection) { … … 572 572 RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(context, request, &client, defersLoading, shouldContentSniff, shouldContentEncodingSniff)); 573 573 574 handle->d->m_storageSession = context->storageSession() .platformSession();574 handle->d->m_storageSession = context->storageSession()->platformSession(); 575 575 576 576 if (handle->d->m_scheduledFailureType != NoFailure) { -
trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm
r239735 r239737 158 158 // <rdar://problem/7174050> - For URLs that match the paths of those previously challenged for HTTP Basic authentication, 159 159 // try and reuse the credential preemptively, as allowed by RFC 2617. 160 d->m_initialCredential = d->m_context->storageSession() .credentialStorage().get(firstRequest().cachePartition(), firstRequest().url());160 d->m_initialCredential = d->m_context->storageSession()->credentialStorage().get(firstRequest().cachePartition(), firstRequest().url()); 161 161 } else { 162 162 // If there is already a protection space known for the URL, update stored credentials before sending a request. 163 163 // This makes it possible to implement logout by sending an XMLHttpRequest with known incorrect credentials, and aborting it immediately 164 164 // (so that an authentication dialog doesn't pop up). 165 d->m_context->storageSession() .credentialStorage().set(firstRequest().cachePartition(), Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url());165 d->m_context->storageSession()->credentialStorage().set(firstRequest().cachePartition(), Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url()); 166 166 } 167 167 } … … 241 241 return false; 242 242 243 d->m_storageSession = d->m_context->storageSession() .platformSession();243 d->m_storageSession = d->m_context->storageSession()->platformSession(); 244 244 245 245 // FIXME: Do not use the sync version of shouldUseCredentialStorage when the client returns true from usesAsyncCallbacks. … … 368 368 RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(context, request, &client, defersLoading, shouldContentSniff, shouldContentEncodingSniff)); 369 369 370 handle->d->m_storageSession = context->storageSession() .platformSession();370 handle->d->m_storageSession = context->storageSession()->platformSession(); 371 371 372 372 if (context && handle->d->m_scheduledFailureType != NoFailure) { … … 450 450 // URL didn't include credentials of its own. 451 451 if (d->m_user.isEmpty() && d->m_pass.isEmpty() && !redirectResponse.isNull()) { 452 Credential credential = d->m_context->storageSession() .credentialStorage().get(request.cachePartition(), request.url());452 Credential credential = d->m_context->storageSession()->credentialStorage().get(request.cachePartition(), request.url()); 453 453 if (!credential.isEmpty()) { 454 454 d->m_initialCredential = credential; … … 541 541 // There is a race condition here, since a different credential might have already been stored by another ResourceHandle, 542 542 // but the observable effect should be very minor, if any. 543 d->m_context->storageSession() .credentialStorage().remove(d->m_partition, challenge.protectionSpace());543 d->m_context->storageSession()->credentialStorage().remove(d->m_partition, challenge.protectionSpace()); 544 544 } 545 545 546 546 if (!challenge.previousFailureCount()) { 547 Credential credential = d->m_context->storageSession() .credentialStorage().get(d->m_partition, challenge.protectionSpace());547 Credential credential = d->m_context->storageSession()->credentialStorage().get(d->m_partition, challenge.protectionSpace()); 548 548 if (!credential.isEmpty() && credential != d->m_initialCredential) { 549 549 ASSERT(credential.persistence() == CredentialPersistenceNone); 550 550 if (challenge.failureResponse().httpStatusCode() == 401) { 551 551 // Store the credential back, possibly adding it as a default for this directory. 552 d->m_context->storageSession() .credentialStorage().set(d->m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());552 d->m_context->storageSession()->credentialStorage().set(d->m_partition, credential, challenge.protectionSpace(), challenge.failureResponse().url()); 553 553 } 554 554 [challenge.sender() useCredential:credential.nsCredential() forAuthenticationChallenge:mac(challenge)]; … … 592 592 if (challenge.failureResponse().httpStatusCode() == 401) 593 593 urlToStore = challenge.failureResponse().url(); 594 d->m_context->storageSession() .credentialStorage().set(d->m_partition, webCredential, ProtectionSpace([d->m_currentMacChallenge protectionSpace]), urlToStore);594 d->m_context->storageSession()->credentialStorage().set(d->m_partition, webCredential, ProtectionSpace([d->m_currentMacChallenge protectionSpace]), urlToStore); 595 595 [[d->m_currentMacChallenge sender] useCredential:webCredential.nsCredential() forAuthenticationChallenge:d->m_currentMacChallenge]; 596 596 } else -
trunk/Source/WebKit/ChangeLog
r239736 r239737 1 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 3 Stop using NetworkStorageSession in WebProcess 4 https://bugs.webkit.org/show_bug.cgi?id=193236 5 6 Reviewed by Don Olmstead. 7 8 * Shared/WebProcessCreationParameters.cpp: 9 (WebKit::WebProcessCreationParameters::encode const): 10 (WebKit::WebProcessCreationParameters::decode): 11 * Shared/WebProcessCreationParameters.h: 12 * Shared/WebsitePoliciesData.cpp: 13 (WebKit::WebsitePoliciesData::applyToDocumentLoader): 14 * UIProcess/WebProcessPool.cpp: 15 (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled): 16 (WebKit::WebProcessPool::tryTakePrewarmedProcess): 17 (WebKit::WebProcessPool::initializeNewWebProcess): 18 (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): 19 (WebKit::WebProcessPool::pageEndUsingWebsiteDataStore): 20 (WebKit::WebProcessPool::processForNavigationInternal): 21 * WebProcess/InjectedBundle/InjectedBundle.cpp: 22 (WebKit::InjectedBundle::setPrivateBrowsingEnabled): 23 * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h: 24 * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: 25 (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): Deleted. 26 (WebKit::WebFrameNetworkingContext::storageSession const): Deleted. 27 * WebProcess/WebPage/WebPage.cpp: 28 (WebKit::WebPage::setSessionID): 29 * WebProcess/WebProcess.cpp: 30 (WebKit::WebProcess::initializeWebProcess): 31 (WebKit::WebProcess::fetchWebsiteData): 32 (WebKit::WebProcess::addWebsiteDataStore): Deleted. 33 (WebKit::WebProcess::destroySession): Deleted. 34 * WebProcess/WebProcess.h: 35 * WebProcess/WebProcess.messages.in: 36 1 37 2019-01-08 Michael Catanzaro <mcatanzaro@igalia.com> 2 38 -
trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp
r239735 r239737 73 73 encoder << shouldCaptureDisplayInUIProcess; 74 74 #endif 75 encoder << shouldUseTestingNetworkSession;76 75 encoder << urlSchemesRegisteredAsEmptyDocument; 77 76 encoder << urlSchemesRegisteredAsSecure; … … 268 267 return false; 269 268 #endif 270 if (!decoder.decode(parameters.shouldUseTestingNetworkSession))271 return false;272 269 if (!decoder.decode(parameters.urlSchemesRegisteredAsEmptyDocument)) 273 270 return false; -
trunk/Source/WebKit/Shared/WebProcessCreationParameters.h
r239735 r239737 125 125 double defaultRequestTimeoutInterval { INT_MAX }; 126 126 127 bool shouldUseTestingNetworkSession { false };128 127 bool shouldAlwaysUseComplexTextCodePath { false }; 129 128 bool shouldEnableMemoryPressureReliefLogging { false }; -
trunk/Source/WebKit/Shared/WebsitePoliciesData.cpp
r239735 r239737 162 162 if (websitePolicies.websiteDataStoreParameters) { 163 163 if (auto* frame = documentLoader.frame()) { 164 if (auto* page = frame->page()) { 165 auto sessionID = websitePolicies.websiteDataStoreParameters->networkSessionParameters.sessionID; 166 WebProcess::singleton().addWebsiteDataStore(WTFMove(*websitePolicies.websiteDataStoreParameters)); 167 page->setSessionID(sessionID); 168 } 164 if (auto* page = frame->page()) 165 page->setSessionID(websitePolicies.websiteDataStoreParameters->networkSessionParameters.sessionID); 169 166 } 170 167 } -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r239735 r239737 690 690 if (privateBrowsingEnabled) { 691 691 sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters())); 692 sendToAllProcesses(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()));693 692 } else { 694 693 networkProcess()->removeSession(PAL::SessionID::legacyPrivateSessionID()); 695 sendToAllProcesses(Messages::WebProcess::DestroySession(PAL::SessionID::legacyPrivateSessionID()));696 694 } 697 695 } … … 766 764 ASSERT(m_prewarmedProcess->isPrewarmed()); 767 765 m_prewarmedProcess->markIsNoLongerInPrewarmedPool(); 768 if (&m_prewarmedProcess->websiteDataStore() != &websiteDataStore)769 m_prewarmedProcess->send(Messages::WebProcess::AddWebsiteDataStore(websiteDataStore.parameters()), 0);770 766 771 767 return std::exchange(m_prewarmedProcess, nullptr); … … 854 850 SandboxExtension::createHandleWithoutResolvingPath(parameters.javaScriptConfigurationDirectory, SandboxExtension::Type::ReadWrite, parameters.javaScriptConfigurationDirectoryExtensionHandle); 855 851 } 856 857 parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;858 852 859 853 parameters.cacheModel = cacheModel(); … … 943 937 #endif 944 938 945 if (WebPreferences::anyPagesAreUsingPrivateBrowsing())946 process.send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()), 0);947 948 939 if (m_automationSession) 949 940 process.send(Messages::WebProcess::EnsureAutomationSessionProxy(m_automationSession->sessionIdentifier()), 0); … … 1189 1180 if (m_networkProcess) 1190 1181 m_networkProcess->addSession(makeRef(page.websiteDataStore())); 1191 page.process().send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::privateSessionParameters(sessionID)), 0);1192 1182 page.websiteDataStore().clearPendingCookies(); 1193 1183 } else if (sessionID != PAL::SessionID::defaultSessionID()) { 1194 1184 if (m_networkProcess) 1195 1185 m_networkProcess->addSession(makeRef(page.websiteDataStore())); 1196 page.process().send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0);1197 1186 page.websiteDataStore().clearPendingCookies(); 1198 1187 } … … 1225 1214 if (networkProcess()) 1226 1215 networkProcess()->removeSession(sessionID); 1227 page.process().send(Messages::WebProcess::DestroySession(sessionID), 0);1228 1216 } 1229 1217 } … … 2239 2227 m_suspendedPages.remove(it); 2240 2228 2241 if (&process->websiteDataStore() != &page.websiteDataStore())2242 process->send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0);2243 2244 2229 return completionHandler(WTFMove(process), nullptr, reason); 2245 2230 } -
trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp
r239735 r239737 358 358 if (enabled) { 359 359 WebProcess::singleton().ensureLegacyPrivateBrowsingSessionInNetworkProcess(); 360 WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters::legacyPrivateSessionParameters());361 360 } else 362 361 SessionTracker::destroySession(PAL::SessionID::legacyPrivateSessionID()); -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
r239535 r239737 108 108 // CookiesStrategy 109 109 110 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)110 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) 111 111 { 112 112 String cookieString; 113 113 bool secureCookiesAccessed = false; 114 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesForDOM(session .sessionID(), firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookiesForDOM::Reply(cookieString, secureCookiesAccessed), 0))114 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesForDOM(sessionID, firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookiesForDOM::Reply(cookieString, secureCookiesAccessed), 0)) 115 115 return { String(), false }; 116 116 … … 118 118 } 119 119 120 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)121 { 122 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::SetCookiesFromDOM(session .sessionID(), firstParty, sameSiteInfo, url, frameID, pageID, cookieString), 0);123 } 124 125 bool WebPlatformStrategies::cookiesEnabled(const NetworkStorageSession& session)120 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) 121 { 122 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::SetCookiesFromDOM(sessionID, firstParty, sameSiteInfo, url, frameID, pageID, cookieString), 0); 123 } 124 125 bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID) 126 126 { 127 127 bool result; 128 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesEnabled(session .sessionID()), Messages::NetworkConnectionToWebProcess::CookiesEnabled::Reply(result), 0))128 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesEnabled(sessionID), Messages::NetworkConnectionToWebProcess::CookiesEnabled::Reply(result), 0)) 129 129 return false; 130 130 return result; 131 131 } 132 132 133 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) 134 { 135 return cookieRequestHeaderFieldValue(session.sessionID(), firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); 136 } 137 138 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) 133 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) 139 134 { 140 135 String cookieString; … … 145 140 } 146 141 147 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)148 { 149 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::GetRawCookies(session .sessionID(), firstParty, sameSiteInfo, url, frameID, pageID), Messages::NetworkConnectionToWebProcess::GetRawCookies::Reply(rawCookies), 0))142 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) 143 { 144 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::GetRawCookies(sessionID, firstParty, sameSiteInfo, url, frameID, pageID), Messages::NetworkConnectionToWebProcess::GetRawCookies::Reply(rawCookies), 0)) 150 145 return false; 151 146 return true; 152 147 } 153 148 154 void WebPlatformStrategies::deleteCookie(const NetworkStorageSession& session, const URL& url, const String& cookieName)155 { 156 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::DeleteCookie(session .sessionID(), url, cookieName), 0);149 void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName) 150 { 151 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::DeleteCookie(sessionID, url, cookieName), 0); 157 152 } 158 153 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h
r239427 r239737 48 48 49 49 // WebCore::CookiesStrategy 50 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; 51 void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override; 52 bool cookiesEnabled(const WebCore::NetworkStorageSession&) override; 53 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; 54 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; 55 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; 56 void deleteCookie(const WebCore::NetworkStorageSession&, const URL&, const String&) override; 50 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; 51 void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override; 52 bool cookiesEnabled(const PAL::SessionID&) override; 53 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; 54 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; 55 void deleteCookie(const PAL::SessionID&, const URL&, const String&) override; 57 56 58 57 // WebCore::PasteboardStrategy -
trunk/Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp
r239735 r239737 57 57 } 58 58 59 NetworkStorageSession& WebFrameNetworkingContext::storageSession() const60 {61 if (frame()) {62 if (auto* storageSession = NetworkStorageSession::storageSession(frame()->page()->sessionID()))63 return *storageSession;64 }65 return NetworkStorageSession::defaultStorageSession();66 }67 68 59 WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const 69 60 { -
trunk/Source/WebKit/WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h
r239735 r239737 54 54 WebFrameNetworkingContext(WebFrame*); 55 55 56 WebCore::NetworkStorageSession & storageSession() const override;56 WebCore::NetworkStorageSession* storageSession() const override { return nullptr; } 57 57 }; 58 58 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h
r239735 r239737 57 57 String sourceApplicationIdentifier() const override; 58 58 WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override; 59 WebCore::NetworkStorageSession & storageSession() const override;59 WebCore::NetworkStorageSession* storageSession() const override { return nullptr; } 60 60 }; 61 61 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm
r239735 r239737 44 44 using namespace WebCore; 45 45 46 void WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)47 {48 ASSERT(!hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));49 auto sessionID = parameters.networkSessionParameters.sessionID;50 if (NetworkStorageSession::storageSession(sessionID))51 return;52 53 String base = WebProcess::singleton().uiProcessBundleIdentifier();54 if (base.isNull())55 base = [[NSBundle mainBundle] bundleIdentifier];56 57 NetworkStorageSession::ensureSession(sessionID, base + '.' + String::number(sessionID.sessionID()));58 }59 60 46 bool WebFrameNetworkingContext::localFileContentSniffingEnabled() const 61 47 { … … 85 71 } 86 72 87 NetworkStorageSession& WebFrameNetworkingContext::storageSession() const88 {89 ASSERT(RunLoop::isMain());90 ASSERT(!hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));91 if (frame()) {92 if (auto* storageSession = WebCore::NetworkStorageSession::storageSession(frame()->page()->sessionID()))93 return *storageSession;94 // Some requests may still be coming shortly after WebProcess was told to destroy its session.95 LOG_ERROR("WEB Invalid session ID. Please file a bug unless you just disabled private browsing, in which case it's an expected race.");96 }97 return NetworkStorageSession::defaultStorageSession();98 }99 100 73 WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const 101 74 { -
trunk/Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp
r239735 r239737 59 59 } 60 60 61 NetworkStorageSession& WebFrameNetworkingContext::storageSession() const62 {63 if (frame()) {64 if (auto* storageSession = NetworkStorageSession::storageSession(frame()->page()->sessionID()))65 return *storageSession;66 }67 return NetworkStorageSession::defaultStorageSession();68 }69 70 61 WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const 71 62 { -
trunk/Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h
r239735 r239737 52 52 WebFrameNetworkingContext(WebFrame*); 53 53 54 WebCore::NetworkStorageSession & storageSession() const override;54 WebCore::NetworkStorageSession* storageSession() const override { return nullptr; } 55 55 }; 56 56 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r239735 r239737 3044 3044 void WebPage::setSessionID(PAL::SessionID sessionID) 3045 3045 { 3046 if (sessionID.isEphemeral())3047 WebProcess::singleton().addWebsiteDataStore(WebsiteDataStoreParameters::privateSessionParameters(sessionID));3048 3046 m_page->setSessionID(sessionID); 3049 3047 } -
trunk/Source/WebKit/WebProcess/WebProcess.cpp
r239735 r239737 382 382 setShouldUseFontSmoothing(parameters.shouldUseFontSmoothing); 383 383 384 if (parameters.shouldUseTestingNetworkSession)385 NetworkStorageSession::switchToNewTestingSession();386 387 384 ensureNetworkProcessConnection(); 388 385 … … 539 536 { 540 537 m_fullKeyboardAccessEnabled = fullKeyboardAccessEnabled; 541 }542 543 void WebProcess::addWebsiteDataStore(WebsiteDataStoreParameters&& parameters)544 {545 WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WTFMove(parameters));546 }547 548 void WebProcess::destroySession(PAL::SessionID sessionID)549 {550 SessionTracker::destroySession(sessionID);551 538 } 552 539 … … 1295 1282 websiteData.entries.append(WebsiteData::Entry { origin->data(), WebsiteDataType::MemoryCache, 0 }); 1296 1283 } 1297 1298 if (websiteDataTypes.contains(WebsiteDataType::Credentials)) {1299 if (NetworkStorageSession::storageSession(sessionID))1300 websiteData.originsWithCredentials = NetworkStorageSession::storageSession(sessionID)->credentialStorage().originsWithCredentials();1301 }1302 1284 } 1303 1285 -
trunk/Source/WebKit/WebProcess/WebProcess.h
r239735 r239737 179 179 180 180 void ensureLegacyPrivateBrowsingSessionInNetworkProcess(); 181 void addWebsiteDataStore(WebsiteDataStoreParameters&&);182 void destroySession(PAL::SessionID);183 181 184 182 void pageDidEnterWindow(uint64_t pageID); -
trunk/Source/WebKit/WebProcess/WebProcess.messages.in
r239735 r239737 53 53 54 54 ClearCachedCredentials() 55 56 AddWebsiteDataStore(struct WebKit::WebsiteDataStoreParameters websiteDataStoreParameters);57 DestroySession(PAL::SessionID sessionID)58 55 59 56 # Plug-ins. -
trunk/Source/WebKitLegacy/mac/ChangeLog
r239735 r239737 1 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 3 Stop using NetworkStorageSession in WebProcess 4 https://bugs.webkit.org/show_bug.cgi?id=193236 5 6 Reviewed by Don Olmstead. 7 8 * WebCoreSupport/WebFrameNetworkingContext.h: 9 * WebCoreSupport/WebFrameNetworkingContext.mm: 10 (WebFrameNetworkingContext::storageSession const): 11 * WebCoreSupport/WebPlatformStrategies.h: 12 * WebCoreSupport/WebPlatformStrategies.mm: 13 (WebPlatformStrategies::cookiesForDOM): 14 (WebPlatformStrategies::setCookiesFromDOM): 15 (WebPlatformStrategies::cookiesEnabled): 16 (WebPlatformStrategies::cookieRequestHeaderFieldValue): 17 (WebPlatformStrategies::getRawCookies): 18 (WebPlatformStrategies::deleteCookie): 19 * WebView/WebView.mm: 20 (-[WebView _cachedResponseForURL:]): 21 (-[WebView _clearCredentials]): 22 1 23 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 24 -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.h
r239735 r239737 50 50 String sourceApplicationIdentifier() const override; 51 51 WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override; 52 WebCore::NetworkStorageSession &storageSession() const override;52 WebCore::NetworkStorageSession* storageSession() const override; 53 53 }; -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.mm
r239735 r239737 91 91 } 92 92 93 NetworkStorageSession &WebFrameNetworkingContext::storageSession() const93 NetworkStorageSession* WebFrameNetworkingContext::storageSession() const 94 94 { 95 95 ASSERT(isMainThread()); 96 96 if (frame() && frame()->page() && frame()->page()->sessionID().isEphemeral()) { 97 97 if (auto* session = NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID())) 98 return *session;98 return session; 99 99 // Some requests may still be coming shortly before WebCore updates the session ID and after WebKit destroys the private browsing session. 100 100 LOG_ERROR("Invalid session ID. Please file a bug unless you just disabled private browsing, in which case it's an expected race."); 101 101 } 102 return NetworkStorageSession::defaultStorageSession();102 return &NetworkStorageSession::defaultStorageSession(); 103 103 } -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h
r239427 r239737 49 49 50 50 // WebCore::CookiesStrategy 51 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; 52 void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override; 53 bool cookiesEnabled(const WebCore::NetworkStorageSession&) override; 54 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; 55 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; 56 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; 57 void deleteCookie(const WebCore::NetworkStorageSession&, const URL&, const String&) override; 51 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; 52 void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override; 53 bool cookiesEnabled(const PAL::SessionID&) override; 54 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; 55 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; 56 void deleteCookie(const PAL::SessionID&, const URL&, const String&) override; 58 57 59 58 // WebCore::PasteboardStrategy -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm
r239427 r239737 73 73 } 74 74 75 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) 76 { 75 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) 76 { 77 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 77 78 return session.cookiesForDOM(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); 78 79 } 79 80 80 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) 81 { 81 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) 82 { 83 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 82 84 session.setCookiesFromDOM(firstParty, sameSiteInfo, url, frameID, pageID, cookieString); 83 85 } 84 86 85 bool WebPlatformStrategies::cookiesEnabled(const NetworkStorageSession& session) 86 { 87 bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID) 88 { 89 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 87 90 return session.cookiesEnabled(); 88 91 } 89 92 90 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) 91 { 93 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) 94 { 95 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 92 96 return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); 93 97 } 94 98 95 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) 96 { 97 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 98 return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); 99 } 100 101 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) 102 { 99 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) 100 { 101 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 103 102 return session.getRawCookies(firstParty, sameSiteInfo, url, frameID, pageID, rawCookies); 104 103 } 105 104 106 void WebPlatformStrategies::deleteCookie(const NetworkStorageSession& session, const URL& url, const String& cookieName) 107 { 105 void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName) 106 { 107 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 108 108 session.deleteCookie(url, cookieName); 109 109 } -
trunk/Source/WebKitLegacy/mac/WebView/WebView.mm
r239735 r239737 3669 3669 return nil; 3670 3670 3671 if ( CFURLStorageSessionRef storageSession = _private->page->mainFrame().loader().networkingContext()->storageSession().platformSession())3671 if (auto storageSession = _private->page->mainFrame().loader().networkingContext()->storageSession()->platformSession()) 3672 3672 cachedResponse = cachedResponseForRequest(storageSession, request.get()); 3673 3673 else … … 9252 9252 return; 9253 9253 9254 networkingContext->storageSession() .credentialStorage().clearCredentials();9254 networkingContext->storageSession()->credentialStorage().clearCredentials(); 9255 9255 } 9256 9256 -
trunk/Source/WebKitLegacy/win/ChangeLog
r239735 r239737 1 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 3 Stop using NetworkStorageSession in WebProcess 4 https://bugs.webkit.org/show_bug.cgi?id=193236 5 6 Reviewed by Don Olmstead. 7 8 * WebCoreSupport/WebFrameNetworkingContext.cpp: 9 (WebFrameNetworkingContext::storageSession const): 10 * WebCoreSupport/WebFrameNetworkingContext.h: 11 * WebCoreSupport/WebPlatformStrategies.cpp: 12 (WebPlatformStrategies::cookiesForDOM): 13 (WebPlatformStrategies::setCookiesFromDOM): 14 (WebPlatformStrategies::cookiesEnabled): 15 (WebPlatformStrategies::cookieRequestHeaderFieldValue): 16 (WebPlatformStrategies::getRawCookies): 17 (WebPlatformStrategies::deleteCookie): 18 * WebCoreSupport/WebPlatformStrategies.h: 19 1 20 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 21 -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.cpp
r239735 r239737 100 100 } 101 101 102 NetworkStorageSession &WebFrameNetworkingContext::storageSession() const102 NetworkStorageSession* WebFrameNetworkingContext::storageSession() const 103 103 { 104 104 ASSERT(isMainThread()); 105 105 106 106 if (frame() && frame()->page()->usesEphemeralSession()) 107 return *NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID());107 return NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID()); 108 108 109 return NetworkStorageSession::defaultStorageSession();109 return &NetworkStorageSession::defaultStorageSession(); 110 110 } -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.h
r239735 r239737 48 48 49 49 WebCore::ResourceError blockedError(const WebCore::ResourceRequest&) const override; 50 WebCore::NetworkStorageSession &storageSession() const override;50 WebCore::NetworkStorageSession* storageSession() const override; 51 51 }; -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.cpp
r239427 r239737 70 70 } 71 71 72 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)72 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) 73 73 { 74 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 74 75 return session.cookiesForDOM(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); 75 76 } 76 77 77 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)78 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) 78 79 { 80 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 79 81 session.setCookiesFromDOM(firstParty, sameSiteInfo, url, frameID, pageID, cookieString); 80 82 } 81 83 82 bool WebPlatformStrategies::cookiesEnabled(const NetworkStorageSession& session)84 bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID) 83 85 { 86 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 84 87 return session.cookiesEnabled(); 85 88 } 86 89 87 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) 88 { 89 return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies); 90 } 91 92 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) 90 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) 93 91 { 94 92 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); … … 96 94 } 97 95 98 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)96 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) 99 97 { 98 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 100 99 return session.getRawCookies(firstParty, sameSiteInfo, url, frameID, pageID, rawCookies); 101 100 } 102 101 103 void WebPlatformStrategies::deleteCookie(const NetworkStorageSession& session, const URL& url, const String& cookieName)102 void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName) 104 103 { 104 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 105 105 session.deleteCookie(url, cookieName); 106 106 } -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.h
r239427 r239737 46 46 47 47 // WebCore::CookiesStrategy 48 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; 49 virtual void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&); 50 virtual bool cookiesEnabled(const WebCore::NetworkStorageSession&); 51 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; 52 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; 53 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>&); 54 virtual void deleteCookie(const WebCore::NetworkStorageSession&, const URL&, const String&); 48 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; 49 virtual void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&); 50 virtual bool cookiesEnabled(const PAL::SessionID&); 51 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; 52 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>&); 53 virtual void deleteCookie(const PAL::SessionID&, const URL&, const String&); 55 54 };
Note: See TracChangeset
for help on using the changeset viewer.