Changeset 180892 in webkit
- Timestamp:
- Mar 2, 2015 12:45:18 PM (9 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r180889 r180892 1 2015-03-02 Anders Carlsson <andersca@apple.com> 2 3 WebsiteDataStore should handle deleting cookies 4 https://bugs.webkit.org/show_bug.cgi?id=142185 5 6 Reviewed by Beth Dakin. 7 8 * NetworkProcess/NetworkProcess.cpp: 9 (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): 10 When asked to delete cookies, do so. 11 12 * NetworkProcess/NetworkProcess.h: 13 Update the deleteWebsiteDataForOrigins signature. 14 15 * NetworkProcess/NetworkProcess.messages.in: 16 Add cookieHostNames to DeleteWebsiteDataForOrigins. 17 18 * UIProcess/Network/NetworkProcessProxy.cpp: 19 (WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins): 20 * UIProcess/Network/NetworkProcessProxy.h: 21 Update to take a vector of cookie host names. 22 23 * UIProcess/WebsiteData/WebsiteDataStore.cpp: 24 (WebKit::WebsiteDataStore::removeData): 25 Figure out if we need to ask the network process to delete data. 26 1 27 2015-03-02 Anders Carlsson <andersca@apple.com> 2 28 -
trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp
r180889 r180892 345 345 } 346 346 347 void NetworkProcess::deleteWebsiteDataForOrigins(SessionID sessionID, uint64_t websiteDataTypes, const Vector<SecurityOriginData>& origins, uint64_t callbackID) 348 { 349 // FIXME: Actually delete something. 347 void NetworkProcess::deleteWebsiteDataForOrigins(SessionID sessionID, uint64_t websiteDataTypes, const Vector<SecurityOriginData>& origins, const Vector<String>& cookieHostNames, uint64_t callbackID) 348 { 349 if (websiteDataTypes & WebsiteDataTypeCookies) { 350 if (auto* networkStorageSession = SessionTracker::session(sessionID)) { 351 for (const auto& cookieHostName : cookieHostNames) 352 deleteCookiesForHostname(*networkStorageSession, cookieHostName); 353 } 354 } 350 355 351 356 auto completionHandler = [this, callbackID] { -
trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h
r180773 r180892 124 124 void fetchWebsiteData(WebCore::SessionID, uint64_t websiteDataTypes, uint64_t callbackID); 125 125 void deleteWebsiteData(WebCore::SessionID, uint64_t websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID); 126 void deleteWebsiteDataForOrigins(WebCore::SessionID, uint64_t websiteDataTypes, const Vector<SecurityOriginData>& origins, uint64_t callbackID);126 void deleteWebsiteDataForOrigins(WebCore::SessionID, uint64_t websiteDataTypes, const Vector<SecurityOriginData>& origins, const Vector<String>& cookieHostNames, uint64_t callbackID); 127 127 128 128 // FIXME: This should take a session ID so we can identify which disk cache to delete. -
trunk/Source/WebKit2/NetworkProcess/NetworkProcess.messages.in
r180773 r180892 40 40 FetchWebsiteData(WebCore::SessionID sessionID, uint64_t websiteDataTypes, uint64_t callbackID) 41 41 DeleteWebsiteData(WebCore::SessionID sessionID, uint64_t websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID) 42 DeleteWebsiteDataForOrigins(WebCore::SessionID sessionID, uint64_t websiteDataTypes, Vector<WebKit::SecurityOriginData> origins, uint64_t callbackID)42 DeleteWebsiteDataForOrigins(WebCore::SessionID sessionID, uint64_t websiteDataTypes, Vector<WebKit::SecurityOriginData> origins, Vector<String> cookieHostNames, uint64_t callbackID) 43 43 44 44 DownloadRequest(uint64_t downloadID, WebCore::ResourceRequest request) -
trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
r180773 r180892 133 133 } 134 134 135 void NetworkProcessProxy::deleteWebsiteDataForOrigins(SessionID sessionID, WebsiteDataTypes dataTypes, const Vector<RefPtr<WebCore::SecurityOrigin>>& origins, std::function<void ()> completionHandler)135 void NetworkProcessProxy::deleteWebsiteDataForOrigins(SessionID sessionID, WebsiteDataTypes dataTypes, const Vector<RefPtr<WebCore::SecurityOrigin>>& origins, const Vector<String>& cookieHostNames, std::function<void ()> completionHandler) 136 136 { 137 137 ASSERT(canSendMessage()); … … 144 144 originData.append(SecurityOriginData::fromSecurityOrigin(*origin)); 145 145 146 send(Messages:: WebProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, originData, callbackID), 0);146 send(Messages::NetworkProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, originData, cookieHostNames, callbackID), 0); 147 147 } 148 148 -
trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
r180773 r180892 66 66 void fetchWebsiteData(WebCore::SessionID, WebsiteDataTypes, std::function<void (WebsiteData)> completionHandler); 67 67 void deleteWebsiteData(WebCore::SessionID, WebsiteDataTypes, std::chrono::system_clock::time_point modifiedSince, std::function<void ()> completionHandler); 68 void deleteWebsiteDataForOrigins(WebCore::SessionID, WebsiteDataTypes, const Vector<RefPtr<WebCore::SecurityOrigin>>& origins, std::function<void ()> completionHandler);68 void deleteWebsiteDataForOrigins(WebCore::SessionID, WebsiteDataTypes, const Vector<RefPtr<WebCore::SecurityOrigin>>& origins, const Vector<String>& cookieHostNames, std::function<void ()> completionHandler); 69 69 70 70 #if PLATFORM(COCOA) -
trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp
r180889 r180892 441 441 RefPtr<CallbackAggregator> callbackAggregator = adoptRef(new CallbackAggregator(WTF::move(completionHandler))); 442 442 443 auto networkProcessAccessType = computeNetworkProcessAccessTypeForDataRemoval(dataTypes, isNonPersistent()); 444 if (networkProcessAccessType != ProcessAccessType::None) { 445 HashSet<WebProcessPool*> processPools; 446 for (auto& process : processes()) 447 processPools.add(&process->processPool()); 448 449 for (auto& processPool : processPools) { 450 switch (networkProcessAccessType) { 451 case ProcessAccessType::OnlyIfLaunched: 452 if (!processPool->networkProcess()) 453 continue; 454 break; 455 456 case ProcessAccessType::Launch: 457 processPool->ensureNetworkProcess(); 458 break; 459 460 case ProcessAccessType::None: 461 ASSERT_NOT_REACHED(); 462 } 463 464 Vector<String> cookieHostNames; 465 for (const auto& dataRecord : dataRecords) { 466 for (auto& hostName : dataRecord.cookieHostNames) 467 cookieHostNames.append(hostName); 468 } 469 470 callbackAggregator->addPendingCallback(); 471 processPool->networkProcess()->deleteWebsiteDataForOrigins(m_sessionID, dataTypes, origins, cookieHostNames, [callbackAggregator] { 472 callbackAggregator->removePendingCallback(); 473 }); 474 } 475 } 476 443 477 auto webProcessAccessType = computeWebProcessAccessTypeForDataRemoval(dataTypes, isNonPersistent()); 444 478 if (webProcessAccessType != ProcessAccessType::None) {
Note: See TracChangeset
for help on using the changeset viewer.