Diff
Modified: trunk/Source/WebKit/ChangeLog (247624 => 247625)
--- trunk/Source/WebKit/ChangeLog 2019-07-18 23:31:36 UTC (rev 247624)
+++ trunk/Source/WebKit/ChangeLog 2019-07-18 23:46:09 UTC (rev 247625)
@@ -1,5 +1,21 @@
2019-07-18 Alex Christensen <achristen...@webkit.org>
+ Add and test _WKWebsiteDataStoreConfiguration.deviceIdHashSaltsStorageDirectory SPI
+ https://bugs.webkit.org/show_bug.cgi?id=199923
+
+ Reviewed by Youenn Fablet.
+
+ This is a step towards us getting rid of WebsiteDataStore::legacyDefaultDataStoreConfiguration
+
+ * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
+ (-[WKWebsiteDataStore _initWithConfiguration:]):
+ * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
+ * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
+ (-[_WKWebsiteDataStoreConfiguration deviceIdHashSaltsStorageDirectory]):
+ (-[_WKWebsiteDataStoreConfiguration setDeviceIdHashSaltsStorageDirectory:]):
+
+2019-07-18 Alex Christensen <achristen...@webkit.org>
+
Move NetworkCache ownership from NetworkProcess to NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=199817
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (247624 => 247625)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2019-07-18 23:31:36 UTC (rev 247624)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2019-07-18 23:46:09 UTC (rev 247625)
@@ -250,6 +250,8 @@
config->setServiceWorkerRegistrationDirectory(configuration._serviceWorkerRegistrationDirectory.path);
if (configuration.networkCacheDirectory)
config->setNetworkCacheDirectory(configuration.networkCacheDirectory.path);
+ if (configuration.deviceIdHashSaltsStorageDirectory)
+ config->setDeviceIdHashSaltsStorageDirectory(configuration.deviceIdHashSaltsStorageDirectory.path);
} else {
RELEASE_ASSERT(!configuration._webStorageDirectory);
RELEASE_ASSERT(!configuration._webSQLDatabaseDirectory);
@@ -259,6 +261,7 @@
RELEASE_ASSERT(!configuration._cacheStorageDirectory);
RELEASE_ASSERT(!configuration._serviceWorkerRegistrationDirectory);
RELEASE_ASSERT(!configuration.networkCacheDirectory);
+ RELEASE_ASSERT(!configuration.deviceIdHashSaltsStorageDirectory);
}
if (configuration.sourceApplicationBundleIdentifier)
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h (247624 => 247625)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h 2019-07-18 23:31:36 UTC (rev 247624)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h 2019-07-18 23:46:09 UTC (rev 247625)
@@ -54,6 +54,7 @@
@property (nonatomic, copy, setter=_setCacheStorageDirectory:) NSURL *_cacheStorageDirectory WK_API_AVAILABLE(macos(10.13.4), ios(11.3));
@property (nonatomic, copy, setter=_setServiceWorkerRegistrationDirectory:) NSURL *_serviceWorkerRegistrationDirectory WK_API_AVAILABLE(macos(10.13.4), ios(11.3));
@property (nonatomic, nullable, copy) NSURL *networkCacheDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+@property (nonatomic, nullable, copy) NSURL *deviceIdHashSaltsStorageDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
// Testing only.
@property (nonatomic) BOOL allLoadsBlockedByDeviceManagementRestrictionsForTesting WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm (247624 => 247625)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm 2019-07-18 23:31:36 UTC (rev 247624)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm 2019-07-18 23:46:09 UTC (rev 247625)
@@ -102,6 +102,19 @@
_configuration->setNetworkCacheDirectory(url.path);
}
+- (NSURL *)deviceIdHashSaltsStorageDirectory
+{
+ return [NSURL fileURLWithPath:_configuration->deviceIdHashSaltsStorageDirectory() isDirectory:YES];
+}
+
+- (void)setDeviceIdHashSaltsStorageDirectory:(NSURL *)url
+{
+ if (!_configuration->isPersistent())
+ [NSException raise:NSInvalidArgumentException format:@"Cannot set deviceIdHashSaltsStorageDirectory on a non-persistent _WKWebsiteDataStoreConfiguration."];
+ checkURLArgument(url);
+ _configuration->setDeviceIdHashSaltsStorageDirectory(url.path);
+}
+
- (NSURL *)_webSQLDatabaseDirectory
{
return [NSURL fileURLWithPath:_configuration->webSQLDatabaseDirectory() isDirectory:YES];
Modified: trunk/Tools/ChangeLog (247624 => 247625)
--- trunk/Tools/ChangeLog 2019-07-18 23:31:36 UTC (rev 247624)
+++ trunk/Tools/ChangeLog 2019-07-18 23:46:09 UTC (rev 247625)
@@ -1,3 +1,13 @@
+2019-07-18 Alex Christensen <achristen...@webkit.org>
+
+ Add and test _WKWebsiteDataStoreConfiguration.deviceIdHashSaltsStorageDirectory SPI
+ https://bugs.webkit.org/show_bug.cgi?id=199923
+
+ Reviewed by Youenn Fablet.
+
+ * TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
+ (TestWebKitAPI::TEST):
+
2019-07-18 Aakash Jain <aakash_j...@apple.com>
[ews-build] Enable iOS WK2 tester queue on new EWS
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm (247624 => 247625)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm 2019-07-18 23:31:36 UTC (rev 247624)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm 2019-07-18 23:46:09 UTC (rev 247625)
@@ -34,7 +34,9 @@
#import <WebKit/WKUIDelegatePrivate.h>
#import <WebKit/WKWebView.h>
#import <WebKit/WKWebViewConfiguration.h>
+#import <WebKit/WKWebsiteDataStorePrivate.h>
#import <WebKit/_WKProcessPoolConfiguration.h>
+#import <WebKit/_WKWebsiteDataStoreConfiguration.h>
static bool okToProceed = false;
static bool shouldReleaseInEnumerate = false;
@@ -99,6 +101,36 @@
TestWebKitAPI::Util::run(&okToProceed);
}
+TEST(WebKit, DeviceIdHashSaltsDirectory)
+{
+ NSURL *tempDir = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"CustomPathsTest"] isDirectory:YES];
+ NSURL *hashSaltLocation = [tempDir URLByAppendingPathComponent:@"1"];
+ NSFileManager *fileManager = [NSFileManager defaultManager];
+ EXPECT_FALSE([fileManager fileExistsAtPath:hashSaltLocation.path]);
+
+ auto websiteDataStoreConfiguration = adoptNS([[_WKWebsiteDataStoreConfiguration alloc] init]);
+ [websiteDataStoreConfiguration setDeviceIdHashSaltsStorageDirectory:tempDir];
+
+ 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;
+ preferences._mediaDevicesEnabled = 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:hashSaltLocation.path])
+ Util::spinRunLoop();
+ NSError *error = nil;
+ [fileManager removeItemAtPath:tempDir.path error:&error];
+ EXPECT_FALSE(error);
+}
+
} // namespace TestWebKitAPI
#endif // ENABLE(MEDIA_STREAM)