Title: [277055] trunk/Source/WebKit
Revision
277055
Author
[email protected]
Date
2021-05-05 17:09:44 -0700 (Wed, 05 May 2021)

Log Message

Remove network website data when a user clears an individual domain
https://bugs.webkit.org/show_bug.cgi?id=225350
<rdar://problem/76029480>

Reviewed by Brent Fulgham.

Convert parameters to Optional values now that we use the function
for individual domains.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
We should check all possible website data entries and delete
network domain data if any of them contain a domain.

* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::removeNetworkWebsiteData):
* NetworkProcess/cocoa/NetworkSessionCocoa.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (277054 => 277055)


--- trunk/Source/WebKit/ChangeLog	2021-05-05 23:53:44 UTC (rev 277054)
+++ trunk/Source/WebKit/ChangeLog	2021-05-06 00:09:44 UTC (rev 277055)
@@ -1,3 +1,25 @@
+2021-05-05  Kate Cheney  <[email protected]>
+
+        Remove network website data when a user clears an individual domain
+        https://bugs.webkit.org/show_bug.cgi?id=225350
+        <rdar://problem/76029480>
+
+        Reviewed by Brent Fulgham.
+
+        Convert parameters to Optional values now that we use the function
+        for individual domains.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
+        We should check all possible website data entries and delete
+        network domain data if any of them contain a domain.
+
+        * NetworkProcess/NetworkSession.h:
+        (WebKit::NetworkSession::removeNetworkWebsiteData):
+        * NetworkProcess/cocoa/NetworkSessionCocoa.h:
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):
+
 2021-05-05  Per Arne Vollan  <[email protected]>
 
         Reduce sandbox telemetry

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (277054 => 277055)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2021-05-05 23:53:44 UTC (rev 277054)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2021-05-06 00:09:44 UTC (rev 277055)
@@ -1612,7 +1612,7 @@
 #endif
 
     if (auto* networkSession = this->networkSession(sessionID))
-        networkSession->removeNetworkWebsiteData(modifiedSince, [clearTasksHandler] { });
+        networkSession->removeNetworkWebsiteData(modifiedSince, WTF::nullopt, [clearTasksHandler] { });
 
     if (websiteDataTypes.contains(WebsiteDataType::DiskCache) && !sessionID.isEphemeral())
         clearDiskCache(modifiedSince, [clearTasksHandler = WTFMove(clearTasksHandler)] { });
@@ -1734,6 +1734,20 @@
         }
     }
 #endif
+
+    if (auto* networkSession = this->networkSession(sessionID)) {
+        HashSet<WebCore::RegistrableDomain> domainsToDeleteNetworkDataFor;
+        for (auto& originData : originDatas)
+            domainsToDeleteNetworkDataFor.add(WebCore::RegistrableDomain::uncheckedCreateFromHost(originData.host));
+        for (auto& cookieHostName : cookieHostNames)
+            domainsToDeleteNetworkDataFor.add(WebCore::RegistrableDomain::uncheckedCreateFromHost(cookieHostName));
+        for (auto& cacheHostName : HSTSCacheHostNames)
+            domainsToDeleteNetworkDataFor.add(WebCore::RegistrableDomain::uncheckedCreateFromHost(cacheHostName));
+        for (auto& domain : registrableDomains)
+            domainsToDeleteNetworkDataFor.add(domain);
+
+        networkSession->removeNetworkWebsiteData(WTF::nullopt, WTFMove(domainsToDeleteNetworkDataFor), [clearTasksHandler] { });
+    }
 }
 
 #if ENABLE(RESOURCE_LOAD_STATISTICS)

Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.h (277054 => 277055)


--- trunk/Source/WebKit/NetworkProcess/NetworkSession.h	2021-05-05 23:53:44 UTC (rev 277054)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.h	2021-05-06 00:09:44 UTC (rev 277055)
@@ -165,9 +165,9 @@
 
     void addPrivateClickMeasurementNetworkLoader(std::unique_ptr<PrivateClickMeasurementNetworkLoader>&& loader) { m_privateClickMeasurementNetworkLoaders.add(WTFMove(loader)); }
     void removePrivateClickMeasurementNetworkLoader(PrivateClickMeasurementNetworkLoader* loader) { m_privateClickMeasurementNetworkLoaders.remove(loader); }
-    
-    virtual void removeNetworkWebsiteData(WallTime, CompletionHandler<void()>&& completionHandler) { completionHandler(); }
 
+    virtual void removeNetworkWebsiteData(Optional<WallTime>, Optional<HashSet<WebCore::RegistrableDomain>>&&, CompletionHandler<void()>&& completionHandler) { completionHandler(); }
+
 protected:
     NetworkSession(NetworkProcess&, const NetworkSessionCreationParameters&);
 

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (277054 => 277055)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h	2021-05-05 23:53:44 UTC (rev 277054)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h	2021-05-06 00:09:44 UTC (rev 277055)
@@ -106,7 +106,7 @@
     
     _NSHSTSStorage *hstsStorage() const;
 
-    void removeNetworkWebsiteData(WallTime, CompletionHandler<void()>&&) override;
+    void removeNetworkWebsiteData(Optional<WallTime>, Optional<HashSet<WebCore::RegistrableDomain>>&&, CompletionHandler<void()>&&) override;
 
 private:
     void invalidateAndCancel() override;

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (277054 => 277055)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2021-05-05 23:53:44 UTC (rev 277054)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2021-05-06 00:09:44 UTC (rev 277055)
@@ -66,7 +66,7 @@
 #define NETWORK_SESSION_COCOA_ADDITIONS_1
 #define NETWORK_SESSION_COCOA_ADDITIONS_2
 #define NETWORK_SESSION_COCOA_ADDITIONS_3
-void WebKit::NetworkSessionCocoa::removeNetworkWebsiteData(WallTime, CompletionHandler<void()>&& completionHandler) { completionHandler(); }
+void WebKit::NetworkSessionCocoa::removeNetworkWebsiteData(Optional<WallTime>, Optional<HashSet<WebCore::RegistrableDomain>>&&, CompletionHandler<void()>&& completionHandler) { completionHandler(); }
 #endif
 
 #import "DeviceManagementSoftLink.h"
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to