Title: [272910] trunk
Revision
272910
Author
you...@apple.com
Date
2021-02-16 09:56:52 -0800 (Tue, 16 Feb 2021)

Log Message

Set a default path for device ID hash salts
https://bugs.webkit.org/show_bug.cgi?id=221955

Reviewed by Eric Carlson.

Source/WebKit:

The default path was the empty string, which leads to not persist device IDs.
Update this to provide a valid default path like for other persisting data types.
Covered by API test.

* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:

Tools:

* TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
(TestWebKitAPI::TEST):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (272909 => 272910)


--- trunk/Source/WebKit/ChangeLog	2021-02-16 17:26:02 UTC (rev 272909)
+++ trunk/Source/WebKit/ChangeLog	2021-02-16 17:56:52 UTC (rev 272910)
@@ -1,3 +1,18 @@
+2021-02-16  Youenn Fablet  <you...@apple.com>
+
+        Set a default path for device ID hash salts
+        https://bugs.webkit.org/show_bug.cgi?id=221955
+
+        Reviewed by Eric Carlson.
+
+        The default path was the empty string, which leads to not persist device IDs.
+        Update this to provide a valid default path like for other persisting data types.
+        Covered by API test.
+
+        * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+        (WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):
+        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+
 2021-02-16  Alex Christensen  <achristen...@webkit.org>
 
         Synthesize range responses if needed in WebCoreNSURLSession

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (272909 => 272910)


--- trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm	2021-02-16 17:26:02 UTC (rev 272909)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm	2021-02-16 17:56:52 UTC (rev 272910)
@@ -309,6 +309,11 @@
     return websiteDataDirectoryFileSystemRepresentation("MediaKeys");
 }
 
+WTF::String WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory()
+{
+    return websiteDataDirectoryFileSystemRepresentation("DeviceIdHashSalts");
+}
+
 WTF::String WebsiteDataStore::defaultWebSQLDatabaseDirectory()
 {
     return websiteDataDirectoryFileSystemRepresentation("WebSQL");

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (272909 => 272910)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2021-02-16 17:26:02 UTC (rev 272909)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2021-02-16 17:56:52 UTC (rev 272910)
@@ -2300,7 +2300,7 @@
 }
 #endif // !PLATFORM(COCOA)
 
-#if !USE(GLIB)
+#if !USE(GLIB) && !PLATFORM(COCOA)
 WTF::String WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory()
 {
     // Not implemented.

Modified: trunk/Tools/ChangeLog (272909 => 272910)


--- trunk/Tools/ChangeLog	2021-02-16 17:26:02 UTC (rev 272909)
+++ trunk/Tools/ChangeLog	2021-02-16 17:56:52 UTC (rev 272910)
@@ -1,3 +1,13 @@
+2021-02-16  Youenn Fablet  <you...@apple.com>
+
+        Set a default path for device ID hash salts
+        https://bugs.webkit.org/show_bug.cgi?id=221955
+
+        Reviewed by Eric Carlson.
+
+        * TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
+        (TestWebKitAPI::TEST):
+
 2021-02-16  Alex Christensen  <achristen...@webkit.org>
 
         Synthesize range responses if needed in WebCoreNSURLSession

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm (272909 => 272910)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm	2021-02-16 17:26:02 UTC (rev 272909)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm	2021-02-16 17:56:52 UTC (rev 272910)
@@ -101,6 +101,39 @@
     TestWebKitAPI::Util::run(&okToProceed);
 }
 
+TEST(WebKit, DefaultDeviceIdHashSaltsDirectory)
+{
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+
+    auto websiteDataStoreConfiguration = adoptNS([[_WKWebsiteDataStoreConfiguration alloc] init]);
+    auto *path = [websiteDataStoreConfiguration deviceIdHashSaltsStorageDirectory].path;
+
+    if ([fileManager fileExistsAtPath:path]) {
+        NSError *error = nil;
+        [fileManager removeItemAtPath:path error:&error];
+        EXPECT_FALSE(error);
+    }
+
+    auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+    [configuration setWebsiteDataStore:[[[WKWebsiteDataStore alloc] _initWithConfiguration:websiteDataStoreConfiguration.get()] autorelease]];
+    auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
+    auto preferences = [configuration preferences];
+    preferences._mediaCaptureRequiresSecureConnection = NO;
+    configuration.get()._mediaCaptureEnabled = YES;
+    preferences._mockCaptureDevicesEnabled = YES;
+    auto webView = [[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()];
+    auto delegate = adoptNS([[NavigationWhileGetUserMediaPromptDisplayedUIDelegate alloc] init]);
+    webView.UIDelegate = delegate.get();
+
+    [webView loadTestPageNamed:@"enumerateMediaDevices"];
+
+    while (![fileManager fileExistsAtPath:path])
+        Util::spinRunLoop();
+    NSError *error = nil;
+    [fileManager removeItemAtPath:path error:&error];
+    EXPECT_FALSE(error);
+}
+
 TEST(WebKit, DeviceIdHashSaltsDirectory)
 {
     NSURL *tempDir = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"CustomPathsTest"] isDirectory:YES];
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to