Title: [275401] trunk/Source
Revision
275401
Author
[email protected]
Date
2021-04-01 20:19:40 -0700 (Thu, 01 Apr 2021)

Log Message

Clear network website data when a user clears history/website data
https://bugs.webkit.org/show_bug.cgi?id=224030
<rdar://problem/75288338>

Reviewed by David Kilzer.

Source/WebKit:

Clear network-related website data for domains when clearing history/
website data.

No new tests. Unable to test due to recent changes in a dependent
framework's infrastructure for setting network website data for
testing. Will post a followup test once that is resolved.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteData):
* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::removeNetworkWebsiteData):
* NetworkProcess/cocoa/NetworkSessionCocoa.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(NetworkSessionCocoa::removeNetworkWebsiteData):
* Scripts/process-entitlements.sh:

Source/WTF:

* wtf/cocoa/SoftLinking.h:
Add a new soft link macro to link umbrella private frameworks. We need
this to support internal additions we need to clear network domain data.

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (275400 => 275401)


--- trunk/Source/WTF/ChangeLog	2021-04-02 01:37:09 UTC (rev 275400)
+++ trunk/Source/WTF/ChangeLog	2021-04-02 03:19:40 UTC (rev 275401)
@@ -1,3 +1,15 @@
+2021-04-01  Kate Cheney  <[email protected]>
+
+        Clear network website data when a user clears history/website data
+        https://bugs.webkit.org/show_bug.cgi?id=224030
+        <rdar://problem/75288338>
+
+        Reviewed by David Kilzer.
+
+        * wtf/cocoa/SoftLinking.h:
+        Add a new soft link macro to link umbrella private frameworks. We need
+        this to support internal additions we need to clear network domain data.
+
 2021-04-01  Chris Dumez  <[email protected]>
 
         REGRESSION(r275267): [GTK][WPE] 12 new crashes on service-workers layout tests

Modified: trunk/Source/WTF/wtf/cocoa/SoftLinking.h (275400 => 275401)


--- trunk/Source/WTF/wtf/cocoa/SoftLinking.h	2021-04-02 01:37:09 UTC (rev 275400)
+++ trunk/Source/WTF/wtf/cocoa/SoftLinking.h	2021-04-02 03:19:40 UTC (rev 275401)
@@ -117,6 +117,13 @@
         return frameworkLibrary; \
     }
 
+#define SOFT_LINK_PRIVATE_FRAMEWORK_IN_UMBRELLA_OPTIONAL(umbrella, framework) \
+    static void* framework##Library() \
+    { \
+        static void* frameworkLibrary = dlopen("/System/Library/PrivateFrameworks/" #umbrella ".framework/Frameworks/" #framework ".framework/" #framework, RTLD_NOW); \
+        return frameworkLibrary; \
+    }
+
 #define SOFT_LINK(framework, functionName, resultType, parameterDeclarations, parameterNames) \
     WTF_EXTERN_C_BEGIN \
     resultType functionName parameterDeclarations; \

Modified: trunk/Source/WebKit/ChangeLog (275400 => 275401)


--- trunk/Source/WebKit/ChangeLog	2021-04-02 01:37:09 UTC (rev 275400)
+++ trunk/Source/WebKit/ChangeLog	2021-04-02 03:19:40 UTC (rev 275401)
@@ -1,3 +1,27 @@
+2021-04-01  Kate Cheney  <[email protected]>
+
+        Clear network website data when a user clears history/website data
+        https://bugs.webkit.org/show_bug.cgi?id=224030
+        <rdar://problem/75288338>
+
+        Reviewed by David Kilzer.
+
+        Clear network-related website data for domains when clearing history/
+        website data.
+
+        No new tests. Unable to test due to recent changes in a dependent
+        framework's infrastructure for setting network website data for
+        testing. Will post a followup test once that is resolved.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::deleteWebsiteData):
+        * NetworkProcess/NetworkSession.h:
+        (WebKit::NetworkSession::removeNetworkWebsiteData):
+        * NetworkProcess/cocoa/NetworkSessionCocoa.h:
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (NetworkSessionCocoa::removeNetworkWebsiteData):
+        * Scripts/process-entitlements.sh:
+
 2021-04-01  Wenson Hsieh  <[email protected]>
 
         [watchOS] Contact AutoFill suggestions no longer show up in non-username or password fields

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (275400 => 275401)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2021-04-02 01:37:09 UTC (rev 275400)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2021-04-02 03:19:40 UTC (rev 275401)
@@ -1607,6 +1607,9 @@
     }
 #endif
 
+    if (auto* networkSession = this->networkSession(sessionID))
+        networkSession->removeNetworkWebsiteData(modifiedSince, [clearTasksHandler] { });
+
     if (websiteDataTypes.contains(WebsiteDataType::DiskCache) && !sessionID.isEphemeral())
         clearDiskCache(modifiedSince, [clearTasksHandler = WTFMove(clearTasksHandler)] { });
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.h (275400 => 275401)


--- trunk/Source/WebKit/NetworkProcess/NetworkSession.h	2021-04-02 01:37:09 UTC (rev 275400)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.h	2021-04-02 03:19:40 UTC (rev 275401)
@@ -166,6 +166,8 @@
     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(); }
+
 protected:
     NetworkSession(NetworkProcess&, const NetworkSessionCreationParameters&);
 

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (275400 => 275401)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h	2021-04-02 01:37:09 UTC (rev 275400)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h	2021-04-02 03:19:40 UTC (rev 275401)
@@ -106,6 +106,8 @@
     
     _NSHSTSStorage *hstsStorage() const;
 
+    void removeNetworkWebsiteData(WallTime, CompletionHandler<void()>&&) override;
+
 private:
     void invalidateAndCancel() override;
     void clearCredentials() override;

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (275400 => 275401)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2021-04-02 01:37:09 UTC (rev 275400)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2021-04-02 03:19:40 UTC (rev 275401)
@@ -65,6 +65,7 @@
 #else
 #define NETWORK_SESSION_COCOA_ADDITIONS_1
 #define NETWORK_SESSION_COCOA_HTTP_REDIRECT_ADDITIONS
+void WebKit::NetworkSessionCocoa::removeNetworkWebsiteData(WallTime, CompletionHandler<void()>&& completionHandler) { completionHandler(); }
 #endif
 
 #import "DeviceManagementSoftLink.h"

Modified: trunk/Source/WebKit/Scripts/process-entitlements.sh (275400 => 275401)


--- trunk/Source/WebKit/Scripts/process-entitlements.sh	2021-04-02 01:37:09 UTC (rev 275400)
+++ trunk/Source/WebKit/Scripts/process-entitlements.sh	2021-04-02 03:19:40 UTC (rev 275401)
@@ -98,6 +98,7 @@
         plistbuddy Add :com.apple.private.launchservices.allowedtochangethesekeysinotherapplications:1 string LSDisplayName
         plistbuddy Add :com.apple.private.webkit.use-xpc-endpoint bool YES
         plistbuddy Add :com.apple.rootless.storage.WebKitNetworkingSandbox bool YES
+        plistbuddy Add :com.apple.symptom_analytics.configure bool YES
     fi
 }
 
@@ -313,6 +314,7 @@
 
     plistbuddy Add :seatbelt-profiles array
     plistbuddy Add :seatbelt-profiles:0 string com.apple.WebKit.Networking
+    plistbuddy Add :com.apple.symptom_analytics.configure bool YES
 }
 
 function ios_family_process_plugin_entitlements()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to