Title: [284304] trunk
Revision
284304
Author
[email protected]
Date
2021-10-15 21:11:59 -0700 (Fri, 15 Oct 2021)

Log Message

Start using adattributiond on iOS
https://bugs.webkit.org/show_bug.cgi?id=231829

Reviewed by Brady Eidson.

Source/WebKit:

This makes one small change to use adattributiond on iOS by default instead of the network process.
The rest of this patch is to keep the tests doing what they used to.

* UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:
(WKWebsiteDataStoreConfigurationCopyPCMMachServiceName):
(WKWebsiteDataStoreConfigurationSetPCMMachServiceName):
* UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
* UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::configurationWithoutUsingDaemon):
(TestWebKitAPI::webViewWithoutUsingDaemon):
(TestWebKitAPI::runBasicPCMTest):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(webViewWithResourceLoadStatisticsEnabledInNetworkProcess):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (284303 => 284304)


--- trunk/Source/WebKit/ChangeLog	2021-10-16 03:17:19 UTC (rev 284303)
+++ trunk/Source/WebKit/ChangeLog	2021-10-16 04:11:59 UTC (rev 284304)
@@ -1,5 +1,22 @@
 2021-10-15  Alex Christensen  <[email protected]>
 
+        Start using adattributiond on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=231829
+
+        Reviewed by Brady Eidson.
+
+        This makes one small change to use adattributiond on iOS by default instead of the network process.
+        The rest of this patch is to keep the tests doing what they used to.
+
+        * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:
+        (WKWebsiteDataStoreConfigurationCopyPCMMachServiceName):
+        (WKWebsiteDataStoreConfigurationSetPCMMachServiceName):
+        * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
+        * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
+        (WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
+
+2021-10-15  Alex Christensen  <[email protected]>
+
         Use attributedBundleIdentifier instead of applicationBundleIdentifier when present for handling PCM attribution
         https://bugs.webkit.org/show_bug.cgi?id=231827
 

Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp (284303 => 284304)


--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp	2021-10-16 03:17:19 UTC (rev 284303)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp	2021-10-16 04:11:59 UTC (rev 284304)
@@ -179,3 +179,13 @@
 {
     WebKit::toImpl(configuration)->setStaleWhileRevalidateEnabled(enabled);
 }
+
+WKStringRef WKWebsiteDataStoreConfigurationCopyPCMMachServiceName(WKWebsiteDataStoreConfigurationRef configuration)
+{
+    return WebKit::toCopiedAPI(WebKit::toImpl(configuration)->pcmMachServiceName());
+}
+
+void WKWebsiteDataStoreConfigurationSetPCMMachServiceName(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef name)
+{
+    WebKit::toImpl(configuration)->setPCMMachServiceName(name ? WebKit::toImpl(name)->string() : String());
+}

Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h (284303 => 284304)


--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h	2021-10-16 03:17:19 UTC (rev 284303)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h	2021-10-16 04:11:59 UTC (rev 284304)
@@ -78,6 +78,9 @@
 WK_EXPORT bool WKWebsiteDataStoreConfigurationGetStaleWhileRevalidateEnabled(WKWebsiteDataStoreConfigurationRef configuration);
 WK_EXPORT void WKWebsiteDataStoreConfigurationSetStaleWhileRevalidateEnabled(WKWebsiteDataStoreConfigurationRef configuration, bool enabled);
 
+WK_EXPORT WKStringRef WKWebsiteDataStoreConfigurationCopyPCMMachServiceName(WKWebsiteDataStoreConfigurationRef configuration);
+WK_EXPORT void WKWebsiteDataStoreConfigurationSetPCMMachServiceName(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef name);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp (284303 => 284304)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp	2021-10-16 03:17:19 UTC (rev 284303)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp	2021-10-16 04:11:59 UTC (rev 284304)
@@ -51,7 +51,9 @@
 #if ENABLE(ARKIT_INLINE_PREVIEW)
         setModelElementCacheDirectory(WebsiteDataStore::defaultModelElementCacheDirectory());
 #endif
-        // FIXME: Give m_pcmMachServiceName a default value and remove PCM::ManagerInterface once rdar://80701098 is closed.
+#if PLATFORM(IOS)
+        setPCMMachServiceName("com.apple.webkit.adattributiond.service");
+#endif
     }
 }
 

Modified: trunk/Tools/ChangeLog (284303 => 284304)


--- trunk/Tools/ChangeLog	2021-10-16 03:17:19 UTC (rev 284303)
+++ trunk/Tools/ChangeLog	2021-10-16 04:11:59 UTC (rev 284304)
@@ -1,5 +1,22 @@
 2021-10-15  Alex Christensen  <[email protected]>
 
+        Start using adattributiond on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=231829
+
+        Reviewed by Brady Eidson.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
+        (TestWebKitAPI::configurationWithoutUsingDaemon):
+        (TestWebKitAPI::webViewWithoutUsingDaemon):
+        (TestWebKitAPI::runBasicPCMTest):
+        (TestWebKitAPI::TEST):
+        * TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
+        (webViewWithResourceLoadStatisticsEnabledInNetworkProcess):
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):
+
+2021-10-15  Alex Christensen  <[email protected]>
+
         Use attributedBundleIdentifier instead of applicationBundleIdentifier when present for handling PCM attribution
         https://bugs.webkit.org/show_bug.cgi?id=231827
 

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm (284303 => 284304)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm	2021-10-16 03:17:19 UTC (rev 284303)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm	2021-10-16 04:11:59 UTC (rev 284304)
@@ -120,6 +120,20 @@
     [[NSFileManager defaultManager] removeItemAtURL:adoptNS([[_WKWebsiteDataStoreConfiguration alloc] init]).get()._resourceLoadStatisticsDirectory error:nil];
 }
 
+static RetainPtr<WKWebViewConfiguration> configurationWithoutUsingDaemon()
+{
+    auto dataStoreConfiguration = adoptNS([_WKWebsiteDataStoreConfiguration new]);
+    dataStoreConfiguration.get().pcmMachServiceName = nil;
+    auto configuration = adoptNS([WKWebViewConfiguration new]);
+    configuration.get().websiteDataStore = adoptNS([[WKWebsiteDataStore alloc] _initWithConfiguration:dataStoreConfiguration.get()]).get();
+    return configuration;
+}
+
+static RetainPtr<WKWebView> webViewWithoutUsingDaemon()
+{
+    return adoptNS([[WKWebView alloc] initWithFrame:CGRectZero configuration:configurationWithoutUsingDaemon().get()]);
+}
+
 void runBasicPCMTest(WKWebViewConfiguration *configuration, Function<void(WKWebView *, const HTTPServer&)>&& addAttributionToWebView, bool setTestAppBundleID = true)
 {
     clearState();
@@ -156,7 +170,7 @@
     }, HTTPServer::Protocol::Https);
     NSURL *serverURL = server.request().URL;
 
-    auto webView = configuration ? adoptNS([[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration]) : adoptNS([WKWebView new]);
+    auto webView = configuration ? adoptNS([[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration]) : webViewWithoutUsingDaemon();
     webView.get().navigationDelegate = delegateAllowingAllTLS();
     addAttributionToWebView(webView.get(), server);
     [[webView configuration].websiteDataStore _setResourceLoadStatisticsEnabled:YES];
@@ -310,7 +324,7 @@
     }, HTTPServer::Protocol::Https);
     NSURL *serverURL = server.request().URL;
 
-    auto webView = adoptNS([WKWebView new]);
+    auto webView = webViewWithoutUsingDaemon();
     webView.get().navigationDelegate = delegateAllowingAllTLS();
     [webView _addEventAttributionWithSourceID:42 destinationURL:exampleURL() sourceDescription:@"test source description" purchaser:@"test purchaser" reportEndpoint:serverURL optionalNonce:@"ABCDEFabcdef0123456789" applicationBundleID:@"test.bundle.id" ephemeral:NO];
     [[webView configuration].websiteDataStore _setResourceLoadStatisticsEnabled:YES];
@@ -362,7 +376,8 @@
     @autoreleasepool {
         auto dataStoreConfiguration = adoptNS([_WKWebsiteDataStoreConfiguration new]);
         dataStoreConfiguration.get().privateClickMeasurementStorageDirectory = tempDir;
-        auto viewConfiguration = adoptNS([WKWebViewConfiguration new]);
+        dataStoreConfiguration.get().pcmMachServiceName = nil;
+        auto viewConfiguration = configurationWithoutUsingDaemon();
         auto dataStore = adoptNS([[WKWebsiteDataStore alloc] _initWithConfiguration:dataStoreConfiguration.get()]);
         viewConfiguration.get().websiteDataStore = dataStore.get();
         runBasicPCMTest(viewConfiguration.get(), [](WKWebView *webView, const HTTPServer& server) {
@@ -506,7 +521,7 @@
 
 TEST(PrivateClickMeasurement, DaemonBasicFunctionality)
 {
-    auto [tempDir, configuration] = setUpDaemon(adoptNS([WKWebViewConfiguration new]).autorelease());
+    auto [tempDir, configuration] = setUpDaemon(configurationWithoutUsingDaemon().autorelease());
     attemptConnectionInProcessWithoutEntitlement();
     runBasicPCMTest(configuration, [](WKWebView *webView, const HTTPServer& server) {
         [webView _addEventAttributionWithSourceID:42 destinationURL:exampleURL() sourceDescription:@"test source description" purchaser:@"test purchaser" reportEndpoint:server.request().URL optionalNonce:nil applicationBundleID:@"test.bundle.id" ephemeral:NO];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to