Changeset 240031 in webkit
- Timestamp:
- Jan 15, 2019 9:03:07 PM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r240027 r240031 1 2019-01-15 Alex Christensen <achristensen@webkit.org> 2 3 Reduce use of NetworkStorageSession::defaultStorageSession in WebCore 4 https://bugs.webkit.org/show_bug.cgi?id=193368 5 6 Reviewed by Geoff Garen. 7 8 The NetworkStorageSession ownership needs to move to the WebKit/WebKitLegacy layer instead of being a process-global static map. 9 10 * loader/EmptyClients.cpp: 11 * platform/network/CredentialStorage.cpp: 12 (WebCore::CredentialStorage::defaultCredentialStorage): Deleted. 13 * platform/network/CredentialStorage.h: 14 * platform/network/NetworkStorageSession.h: 15 * platform/network/cf/NetworkStorageSessionCFNet.cpp: 16 (WebCore::NetworkStorageSession::switchToNewTestingSession): 17 (WebCore::NetworkStorageSession::ensureSession): 18 * platform/network/cf/NetworkStorageSessionCFNetWin.cpp: 19 (WebCore::createPrivateStorageSession): 20 * platform/network/curl/ResourceHandleCurl.cpp: 21 (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): 22 (WebCore::ResourceHandle::receivedCredential): 23 (WebCore::ResourceHandle::getCredential): 24 1 25 2019-01-15 Ryosuke Niwa <rniwa@webkit.org> 2 26 -
trunk/Source/WebCore/loader/EmptyClients.cpp
r240014 r240031 289 289 290 290 bool shouldClearReferrerOnHTTPSToHTTPRedirect() const { return true; } 291 NetworkStorageSession* storageSession() const final { return &NetworkStorageSession::defaultStorageSession(); }291 NetworkStorageSession* storageSession() const final { return nullptr; } 292 292 293 293 #if PLATFORM(COCOA) -
trunk/Source/WebCore/platform/network/CredentialStorage.cpp
r238771 r240031 35 35 36 36 namespace WebCore { 37 38 CredentialStorage& CredentialStorage::defaultCredentialStorage()39 {40 return NetworkStorageSession::defaultStorageSession().credentialStorage();41 }42 37 43 38 static String originStringFromURL(const URL& url) -
trunk/Source/WebCore/platform/network/CredentialStorage.h
r238771 r240031 39 39 class CredentialStorage { 40 40 public: 41 WEBCORE_EXPORT static CredentialStorage& defaultCredentialStorage();42 43 41 // WebCore session credential storage. 44 42 WEBCORE_EXPORT void set(const String&, const Credential&, const ProtectionSpace&, const URL&); -
trunk/Source/WebCore/platform/network/NetworkStorageSession.h
r239724 r240031 209 209 }; 210 210 211 #if PLATFORM(COCOA) 211 #if PLATFORM(COCOA) || USE(CFURLCONNECTION) 212 212 WEBCORE_EXPORT CFURLStorageSessionRef createPrivateStorageSession(CFStringRef identifier); 213 #elif USE(CFURLCONNECTION)214 CFURLStorageSessionRef createPrivateStorageSession(CFStringRef identifier, CFURLStorageSessionRef defaultStorageSession);215 213 #endif 216 214 -
trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp
r239724 r240031 99 99 String sessionName = String::format("WebKit Test-%u", static_cast<uint32_t>(getCurrentProcessID())); 100 100 101 RetainPtr<CFURLStorageSessionRef> session; 102 #if PLATFORM(COCOA) 103 session = adoptCF(createPrivateStorageSession(sessionName.createCFString().get())); 104 #else 105 session = adoptCF(createPrivateStorageSession(sessionName.createCFString().get(), defaultStorageSession().platformSession())); 106 #endif 101 auto session = adoptCF(createPrivateStorageSession(sessionName.createCFString().get())); 107 102 108 103 RetainPtr<CFHTTPCookieStorageRef> cookieStorage; … … 132 127 133 128 RetainPtr<CFURLStorageSessionRef> storageSession; 134 if (sessionID.isEphemeral()) { 135 #if PLATFORM(COCOA) 129 if (sessionID.isEphemeral()) 136 130 storageSession = adoptCF(createPrivateStorageSession(cfIdentifier.get())); 137 #else 138 storageSession = adoptCF(createPrivateStorageSession(cfIdentifier.get(), defaultNetworkStorageSession()->platformSession())); 139 #endif 140 } else 131 else 141 132 storageSession = createCFStorageSessionForIdentifier(cfIdentifier.get()); 142 133 -
trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp
r240014 r240031 62 62 namespace WebCore { 63 63 64 CFURLStorageSessionRef createPrivateStorageSession(CFStringRef identifier , CFURLStorageSessionRef defaultStorageSession)64 CFURLStorageSessionRef createPrivateStorageSession(CFStringRef identifier) 65 65 { 66 66 const void* sessionPropertyKeys[] = { _kCFURLStorageSessionIsPrivate }; … … 73 73 CFURLCacheRef cache = _CFURLStorageSessionCopyCache(kCFAllocatorDefault, storageSession); 74 74 CFURLCacheSetDiskCapacity(cache, 0); 75 CFURLCacheRef defaultCache; 76 if (defaultStorageSession) 77 defaultCache = _CFURLStorageSessionCopyCache(kCFAllocatorDefault, defaultStorageSession); 78 else 79 defaultCache = CFURLCacheCopySharedURLCache(); 75 CFURLCacheRef defaultCache = CFURLCacheCopySharedURLCache(); 80 76 CFURLCacheSetMemoryCapacity(cache, CFURLCacheMemoryCapacity(defaultCache)); 81 77 CFRelease(defaultCache); … … 83 79 84 80 CFHTTPCookieStorageRef cookieStorage = _CFURLStorageSessionCopyCookieStorage(kCFAllocatorDefault, storageSession); 85 CFHTTPCookieStorageRef defaultCookieStorage; 86 if (defaultStorageSession) 87 defaultCookieStorage = _CFURLStorageSessionCopyCookieStorage(kCFAllocatorDefault, defaultStorageSession); 88 else 89 defaultCookieStorage = _CFHTTPCookieStorageGetDefault(kCFAllocatorDefault); 81 CFHTTPCookieStorageRef defaultCookieStorage = _CFHTTPCookieStorageGetDefault(kCFAllocatorDefault); 90 82 CFHTTPCookieStorageSetCookieAcceptPolicy(cookieStorage, CFHTTPCookieStorageGetCookieAcceptPolicy(defaultCookieStorage)); 91 if (defaultStorageSession)92 CFRelease(defaultCookieStorage);93 83 CFRelease(cookieStorage); 94 84 -
trunk/Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp
r240014 r240031 146 146 addCacheValidationHeaders(request); 147 147 148 auto& storageSession = NetworkStorageSession::defaultStorageSession();148 auto& storageSession = *context()->storageSession(PAL::SessionID::defaultSessionID()); 149 149 auto& cookieJar = storageSession.cookieStorage(); 150 150 auto includeSecureCookies = request.url().protocolIs("https") ? IncludeSecureCookies::Yes : IncludeSecureCookies::No; … … 232 232 if (challenge.failureResponse().httpStatusCode() == 401) 233 233 urlToStore = challenge.failureResponse().url(); 234 CredentialStorage::defaultCredentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore);234 context()->storageSession(PAL::SessionID::defaultSessionID())->credentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore); 235 235 236 236 restartRequestWithCredential(challenge.protectionSpace(), credential); … … 247 247 // There is a race condition here, since a different credential might have already been stored by another ResourceHandle, 248 248 // but the observable effect should be very minor, if any. 249 CredentialStorage::defaultCredentialStorage().remove(partition, challenge.protectionSpace());249 context()->storageSession(PAL::SessionID::defaultSessionID())->credentialStorage().remove(partition, challenge.protectionSpace()); 250 250 } 251 251 252 252 if (!challenge.previousFailureCount()) { 253 Credential credential = CredentialStorage::defaultCredentialStorage().get(partition, challenge.protectionSpace());253 Credential credential = context()->storageSession(PAL::SessionID::defaultSessionID())->credentialStorage().get(partition, challenge.protectionSpace()); 254 254 if (!credential.isEmpty() && credential != d->m_initialCredential) { 255 255 ASSERT(credential.persistence() == CredentialPersistenceNone); 256 256 if (challenge.failureResponse().httpStatusCode() == 401) { 257 257 // Store the credential back, possibly adding it as a default for this directory. 258 CredentialStorage::defaultCredentialStorage().set(partition, credential, challenge.protectionSpace(), challenge.failureResponse().url());258 context()->storageSession(PAL::SessionID::defaultSessionID())->credentialStorage().set(partition, credential, challenge.protectionSpace(), challenge.failureResponse().url()); 259 259 } 260 260 … … 290 290 if (challenge.failureResponse().httpStatusCode() == 401) { 291 291 URL urlToStore = challenge.failureResponse().url(); 292 CredentialStorage::defaultCredentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore);292 context()->storageSession(PAL::SessionID::defaultSessionID())->credentialStorage().set(partition, credential, challenge.protectionSpace(), urlToStore); 293 293 } 294 294 } … … 347 347 // <rdar://problem/7174050> - For URLs that match the paths of those previously challenged for HTTP Basic authentication, 348 348 // try and reuse the credential preemptively, as allowed by RFC 2617. 349 d->m_initialCredential = CredentialStorage::defaultCredentialStorage().get(partition, request.url());349 d->m_initialCredential = context()->storageSession(PAL::SessionID::defaultSessionID())->credentialStorage().get(partition, request.url()); 350 350 } else if (!redirect) { 351 351 // If there is already a protection space known for the URL, update stored credentials … … 353 353 // XMLHttpRequest with known incorrect credentials, and aborting it immediately (so that 354 354 // an authentication dialog doesn't pop up). 355 CredentialStorage::defaultCredentialStorage().set(partition, credential, request.url());355 context()->storageSession(PAL::SessionID::defaultSessionID())->credentialStorage().set(partition, credential, request.url()); 356 356 } 357 357 } -
trunk/Source/WebKit/ChangeLog
r240030 r240031 1 2019-01-15 Alex Christensen <achristensen@webkit.org> 2 3 Reduce use of NetworkStorageSession::defaultStorageSession in WebCore 4 https://bugs.webkit.org/show_bug.cgi?id=193368 5 6 Reviewed by Geoff Garen. 7 8 * WebProcess/Plugins/PluginView.cpp: 9 (WebKit::PluginView::getAuthenticationInfo): 10 1 11 2019-01-15 Alex Christensen <achristensen@webkit.org> 2 12 -
trunk/Source/WebKit/WebProcess/Plugins/PluginView.cpp
r240014 r240031 58 58 #include <WebCore/MouseEvent.h> 59 59 #include <WebCore/NetscapePlugInStreamLoader.h> 60 #include <WebCore/NetworkStorageSession.h> 60 61 #include <WebCore/Page.h> 61 62 #include <WebCore/PlatformMouseEvent.h> … … 1603 1604 1604 1605 String partitionName = contentDocument->topDocument().domainForCachePartition(); 1605 Credential credential = CredentialStorage::defaultCredentialStorage().get(partitionName, protectionSpace);1606 Credential credential = NetworkStorageSession::defaultStorageSession().credentialStorage().get(partitionName, protectionSpace); 1606 1607 if (credential.isEmpty()) 1607 credential = CredentialStorage::defaultCredentialStorage().getFromPersistentStorage(protectionSpace);1608 credential = NetworkStorageSession::defaultStorageSession().credentialStorage().getFromPersistentStorage(protectionSpace); 1608 1609 1609 1610 if (!credential.hasPassword()) -
trunk/Source/WebKitLegacy/mac/ChangeLog
r240014 r240031 1 2019-01-15 Alex Christensen <achristensen@webkit.org> 2 3 Reduce use of NetworkStorageSession::defaultStorageSession in WebCore 4 https://bugs.webkit.org/show_bug.cgi?id=193368 5 6 Reviewed by Geoff Garen. 7 8 * Misc/WebCache.mm: 9 (+[WebCache clearCachedCredentials]): 10 * Misc/WebDownload.mm: 11 (-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]): 12 * Plugins/WebBaseNetscapePluginView.mm: 13 (WebKit::getAuthenticationInfo): 14 1 15 2019-01-15 Alex Christensen <achristensen@webkit.org> 2 16 -
trunk/Source/WebKitLegacy/mac/Misc/WebCache.mm
r240014 r240031 38 38 #import <WebCore/Document.h> 39 39 #import <WebCore/MemoryCache.h> 40 #import <WebCore/NetworkStorageSession.h> 40 41 #import <wtf/MainThread.h> 41 42 #import <wtf/RunLoop.h> … … 214 215 { 215 216 [WebView _makeAllWebViewsPerformSelector:@selector(_clearCredentials)]; 216 WebCore:: CredentialStorage::defaultCredentialStorage().clearCredentials();217 WebCore::NetworkStorageSession::defaultStorageSession().credentialStorage().clearCredentials(); 217 218 } 218 219 -
trunk/Source/WebKitLegacy/mac/Misc/WebDownload.mm
r237266 r240031 33 33 #import <WebCore/Credential.h> 34 34 #import <WebCore/CredentialStorage.h> 35 #import <WebCore/NetworkStorageSession.h> 35 36 #import <WebCore/ProtectionSpace.h> 36 37 #import <WebKitLegacy/WebPanelAuthenticationHandler.h> … … 95 96 // Try previously stored credential first. 96 97 if (![challenge previousFailureCount]) { 97 NSURLCredential *credential = CredentialStorage::defaultCredentialStorage().get(emptyString(), ProtectionSpace([challenge protectionSpace])).nsCredential();98 NSURLCredential *credential = NetworkStorageSession::defaultStorageSession().credentialStorage().get(emptyString(), ProtectionSpace([challenge protectionSpace])).nsCredential(); 98 99 if (credential) { 99 100 [[challenge sender] useCredential:credential forAuthenticationChallenge:challenge]; -
trunk/Source/WebKitLegacy/mac/Plugins/WebBaseNetscapePluginView.mm
r236846 r240031 48 48 #import <WebCore/FrameLoader.h> 49 49 #import <WebCore/HTMLPlugInElement.h> 50 #import <WebCore/NetworkStorageSession.h> 50 51 #import <WebCore/Page.h> 51 52 #import <WebCore/ProtectionSpace.h> … … 872 873 RetainPtr<NSURLProtectionSpace> protectionSpace = adoptNS([[NSURLProtectionSpace alloc] initWithHost:host port:port protocol:protocol realm:realm authenticationMethod:authenticationMethod]); 873 874 874 NSURLCredential *credential = CredentialStorage::defaultCredentialStorage().get(emptyString(), ProtectionSpace(protectionSpace.get())).nsCredential();875 NSURLCredential *credential = WebCore::NetworkStorageSession::defaultStorageSession().credentialStorage().get(emptyString(), ProtectionSpace(protectionSpace.get())).nsCredential(); 875 876 if (!credential) 876 877 credential = [[NSURLCredentialStorage sharedCredentialStorage] defaultCredentialForProtectionSpace:protectionSpace.get()]; -
trunk/Source/WebKitLegacy/win/ChangeLog
r240028 r240031 1 2019-01-15 Alex Christensen <achristensen@webkit.org> 2 3 Reduce use of NetworkStorageSession::defaultStorageSession in WebCore 4 https://bugs.webkit.org/show_bug.cgi?id=193368 5 6 Reviewed by Geoff Garen. 7 8 * WebDownloadCFNet.cpp: 9 (WebDownload::didReceiveAuthenticationChallenge): 10 1 11 2019-01-15 Alex Christensen <achristensen@webkit.org> 2 12 -
trunk/Source/WebKitLegacy/win/WebDownloadCFNet.cpp
r229209 r240031 48 48 #include <WebCore/DownloadBundle.h> 49 49 #include <WebCore/LoaderRunLoopCF.h> 50 #include <WebCore/NetworkStorageSession.h> 50 51 #include <WebCore/ResourceError.h> 51 52 #include <WebCore/ResourceHandle.h> … … 376 377 // Try previously stored credential first. 377 378 if (!CFURLAuthChallengeGetPreviousFailureCount(challenge)) { 378 Credential credential = CredentialStorage::defaultCredentialStorage().get(emptyString(), core(CFURLAuthChallengeGetProtectionSpace(challenge)));379 Credential credential = WebCore::NetworkStorageSession::defaultStorageSession().credentialStorage().get(emptyString(), core(CFURLAuthChallengeGetProtectionSpace(challenge))); 379 380 if (!credential.isEmpty()) { 380 381 RetainPtr<CFURLCredentialRef> cfCredential = adoptCF(createCF(credential));
Note: See TracChangeset
for help on using the changeset viewer.