Skip to content

Commit 798b820

Browse files
Alex Christensenwebkit-commit-queue
authored andcommitted
Remove WebsiteDataStore::setServiceWorkerRegistrationDirectory
https://bugs.webkit.org/show_bug.cgi?id=205754 Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-06 Reviewed by Youenn Fablet. Source/WebKit: The directory is now only set in the configuration, which will prevent misuse of the misplaced SPI. Updated API tests, which still work. * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: (WKWebsiteDataStoreConfigurationCopyServiceWorkerRegistrationDirectory): (WKWebsiteDataStoreConfigurationSetServiceWorkerRegistrationDirectory): * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory): Deleted. (WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory): Deleted. * UIProcess/API/C/WKWebsiteDataStoreRef.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): (-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]): Deleted. (-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]): Deleted. * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: * UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::setCacheStorageDirectory): (WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const): Deleted. (WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory): Deleted. Tools: * TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: * WebKitTestRunner/TestController.cpp: (WTR::TestController::websiteDataStore): (WTR::TestController::platformAdjustContext): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::initializeWebViewConfiguration): Canonical link: https://commits.webkit.org/218955@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254085 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 1596c5a commit 798b820

12 files changed

Lines changed: 63 additions & 44 deletions

File tree

Source/WebKit/ChangeLog

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,31 @@
1+
2020-01-06 Alex Christensen <achristensen@webkit.org>
2+
3+
Remove WebsiteDataStore::setServiceWorkerRegistrationDirectory
4+
https://bugs.webkit.org/show_bug.cgi?id=205754
5+
6+
Reviewed by Youenn Fablet.
7+
8+
The directory is now only set in the configuration, which will prevent misuse of the misplaced SPI.
9+
Updated API tests, which still work.
10+
11+
* UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:
12+
(WKWebsiteDataStoreConfigurationCopyServiceWorkerRegistrationDirectory):
13+
(WKWebsiteDataStoreConfigurationSetServiceWorkerRegistrationDirectory):
14+
* UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
15+
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
16+
(WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory): Deleted.
17+
(WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory): Deleted.
18+
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
19+
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
20+
(-[WKWebsiteDataStore _hasRegisteredServiceWorker]):
21+
(-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]): Deleted.
22+
(-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]): Deleted.
23+
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
24+
* UIProcess/WebsiteData/WebsiteDataStore.h:
25+
(WebKit::WebsiteDataStore::setCacheStorageDirectory):
26+
(WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const): Deleted.
27+
(WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory): Deleted.
28+
129
2020-01-06 Alex Christensen <achristensen@webkit.org>
230

331
Remove _WKProcessPoolConfiguration.CTDataConnectionServiceType and suppressesConnectionTerminationOnSystemChange

Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,16 @@ void WKWebsiteDataStoreConfigurationSetResourceLoadStatisticsDirectory(WKWebsite
110110
WebKit::toImpl(configuration)->setResourceLoadStatisticsDirectory(WebKit::toImpl(directory)->string());
111111
}
112112

113+
WKStringRef WKWebsiteDataStoreConfigurationCopyServiceWorkerRegistrationDirectory(WKWebsiteDataStoreConfigurationRef configuration)
114+
{
115+
return WebKit::toCopiedAPI(WebKit::toImpl(configuration)->serviceWorkerRegistrationDirectory());
116+
}
117+
118+
void WKWebsiteDataStoreConfigurationSetServiceWorkerRegistrationDirectory(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef directory)
119+
{
120+
WebKit::toImpl(configuration)->setServiceWorkerRegistrationDirectory(WebKit::toImpl(directory)->string());
121+
}
122+
113123
uint64_t WKWebsiteDataStoreConfigurationGetPerOriginStorageQuota(WKWebsiteDataStoreConfigurationRef configuration)
114124
{
115125
return WebKit::toImpl(configuration)->perOriginStorageQuota();

Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ WK_EXPORT void WKWebsiteDataStoreConfigurationSetMediaKeysStorageDirectory(WKWeb
5757
WK_EXPORT WKStringRef WKWebsiteDataStoreConfigurationCopyResourceLoadStatisticsDirectory(WKWebsiteDataStoreConfigurationRef configuration);
5858
WK_EXPORT void WKWebsiteDataStoreConfigurationSetResourceLoadStatisticsDirectory(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef directory);
5959

60+
WK_EXPORT WKStringRef WKWebsiteDataStoreConfigurationCopyServiceWorkerRegistrationDirectory(WKWebsiteDataStoreConfigurationRef configuration);
61+
WK_EXPORT void WKWebsiteDataStoreConfigurationSetServiceWorkerRegistrationDirectory(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef directory);
62+
6063
WK_EXPORT uint64_t WKWebsiteDataStoreConfigurationGetPerOriginStorageQuota(WKWebsiteDataStoreConfigurationRef configuration);
6164
WK_EXPORT void WKWebsiteDataStoreConfigurationSetPerOriginStorageQuota(WKWebsiteDataStoreConfigurationRef configuration, uint64_t quota);
6265

Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -665,16 +665,6 @@ void WKWebsiteDataStoreGetFetchCacheSizeForOrigin(WKWebsiteDataStoreRef dataStor
665665
});
666666
}
667667

668-
WKStringRef WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory(WKWebsiteDataStoreRef dataStoreRef)
669-
{
670-
return WebKit::toCopiedAPI(WebKit::toImpl(dataStoreRef)->serviceWorkerRegistrationDirectory());
671-
}
672-
673-
void WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory(WKWebsiteDataStoreRef dataStoreRef, WKStringRef serviceWorkerRegistrationDirectory)
674-
{
675-
WebKit::toImpl(dataStoreRef)->setServiceWorkerRegistrationDirectory(WebKit::toImpl(serviceWorkerRegistrationDirectory)->string());
676-
}
677-
678668
void WKWebsiteDataStoreSetPerOriginStorageQuota(WKWebsiteDataStoreRef, uint64_t)
679669
{
680670
}

Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,6 @@ WK_EXPORT void WKWebsiteDataStoreRemoveLocalStorage(WKWebsiteDataStoreRef dataSt
145145
typedef void (*WKWebsiteDataStoreGetFetchCacheSizeForOriginFunction)(uint64_t, void*);
146146
WK_EXPORT void WKWebsiteDataStoreGetFetchCacheSizeForOrigin(WKWebsiteDataStoreRef dataStoreRef, WKStringRef origin, void* context, WKWebsiteDataStoreGetFetchCacheSizeForOriginFunction function);
147147

148-
WK_EXPORT WKStringRef WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory(WKWebsiteDataStoreRef dataStoreRef);
149-
WK_EXPORT void WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory(WKWebsiteDataStoreRef dataStoreRef, WKStringRef serviceWorkerRegistrationDirectory);
150-
151148
WK_EXPORT void WKWebsiteDataStoreSetPerOriginStorageQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota) WK_C_API_DEPRECATED_WITH_REPLACEMENT(WKWebsiteDataStoreConfigurationSetPerOriginStorageQuota);
152149

153150
WK_EXPORT void WKWebsiteDataStoreClearAllDeviceOrientationPermissions(WKWebsiteDataStoreRef dataStoreRef);

Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -329,16 +329,6 @@ - (void)_setCacheStorageDirectory:(NSString *)directory
329329
_websiteDataStore->setCacheStorageDirectory(directory);
330330
}
331331

332-
- (NSString *)_serviceWorkerRegistrationDirectory
333-
{
334-
return _websiteDataStore->serviceWorkerRegistrationDirectory();
335-
}
336-
337-
- (void)_setServiceWorkerRegistrationDirectory:(NSString *)directory
338-
{
339-
_websiteDataStore->setServiceWorkerRegistrationDirectory(directory);
340-
}
341-
342332
- (void)_setBoundInterfaceIdentifier:(NSString *)identifier
343333
{
344334
_websiteDataStore->setBoundInterfaceIdentifier(identifier);
@@ -570,7 +560,7 @@ - (void)_processStatisticsAndDataRecords:(void (^)(void))completionHandler
570560
- (bool)_hasRegisteredServiceWorker
571561
{
572562
#if ENABLE(SERVICE_WORKER)
573-
return FileSystem::fileExists(WebCore::serviceWorkerRegistrationDatabaseFilename(_websiteDataStore->serviceWorkerRegistrationDirectory()));
563+
return FileSystem::fileExists(WebCore::serviceWorkerRegistrationDatabaseFilename(_websiteDataStore->configuration().serviceWorkerRegistrationDirectory()));
574564
#else
575565
return NO;
576566
#endif

Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ typedef NS_OPTIONS(NSUInteger, _WKWebsiteDataStoreFetchOptions) {
5151
@property (nonatomic, setter=_setResourceLoadStatisticsDebugMode:) BOOL _resourceLoadStatisticsDebugMode WK_API_AVAILABLE(macos(10.14), ios(12.0));
5252
@property (nonatomic, setter=_setPerOriginStorageQuota:) NSUInteger _perOriginStorageQuota WK_API_DEPRECATED_WITH_REPLACEMENT("_WKWebsiteDataStoreConfiguration.perOriginStorageQuota", macos(10.13.4, WK_MAC_TBA), ios(11.3, WK_IOS_TBA));
5353
@property (nonatomic, setter=_setCacheStorageDirectory:) NSString* _cacheStorageDirectory WK_API_DEPRECATED_WITH_REPLACEMENT("_WKWebsiteDataStoreConfiguration.cacheStorageDirectory", macos(10.13.4, WK_MAC_TBA), ios(11.3, WK_IOS_TBA));
54-
@property (nonatomic, setter=_setServiceWorkerRegistrationDirectory:) NSString* _serviceWorkerRegistrationDirectory WK_API_DEPRECATED_WITH_REPLACEMENT("_WKWebsiteDataStoreConfiguration.serviceWorkerRegistrationDirectory", macos(10.13.4, WK_MAC_TBA), ios(11.3, WK_IOS_TBA));
5554

5655
@property (nonatomic, setter=_setBoundInterfaceIdentifier:) NSString *_boundInterfaceIdentifier WK_API_DEPRECATED_WITH_REPLACEMENT("_WKWebsiteDataStoreConfiguration.boundInterfaceIdentifier", macos(10.13.4, WK_MAC_TBA), ios(11.3, WK_IOS_TBA));
5756
@property (nonatomic, setter=_setAllowsCellularAccess:) BOOL _allowsCellularAccess WK_API_DEPRECATED_WITH_REPLACEMENT("_WKWebsiteDataStoreConfiguration.allowsCellularAccess", macos(10.13.4, WK_MAC_TBA), ios(11.3, WK_IOS_TBA));

Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,6 @@ class WebsiteDataStore : public API::ObjectImpl<API::Object::Type::WebsiteDataSt
127127
uint64_t perThirdPartyOriginStorageQuota() const;
128128
const String& cacheStorageDirectory() const { return m_resolvedConfiguration->cacheStorageDirectory(); }
129129
void setCacheStorageDirectory(String&& directory) { m_resolvedConfiguration->setCacheStorageDirectory(WTFMove(directory)); }
130-
const String& serviceWorkerRegistrationDirectory() const { return m_resolvedConfiguration->serviceWorkerRegistrationDirectory(); }
131-
void setServiceWorkerRegistrationDirectory(String&& directory) { m_resolvedConfiguration->setServiceWorkerRegistrationDirectory(WTFMove(directory)); }
132130

133131
#if ENABLE(RESOURCE_LOAD_STATISTICS)
134132
WebResourceLoadStatisticsStore* resourceLoadStatistics() const { return m_resourceLoadStatistics.get(); }

Tools/ChangeLog

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
2020-01-06 Alex Christensen <achristensen@webkit.org>
2+
3+
Remove WebsiteDataStore::setServiceWorkerRegistrationDirectory
4+
https://bugs.webkit.org/show_bug.cgi?id=205754
5+
6+
Reviewed by Youenn Fablet.
7+
8+
* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
9+
* WebKitTestRunner/TestController.cpp:
10+
(WTR::TestController::websiteDataStore):
11+
(WTR::TestController::platformAdjustContext):
12+
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
13+
(WTR::initializeWebViewConfiguration):
14+
115
2020-01-06 Alex Christensen <achristensen@webkit.org>
216

317
Allow wildcard scheme in UserContentURLPattern

Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1351,16 +1351,15 @@ ServiceWorkerTCPServer server({
13511351

13521352
TEST(ServiceWorkers, ServiceWorkerAndCacheStorageSpecificDirectories)
13531353
{
1354-
[WKWebsiteDataStore defaultDataStore];
13551354
[WKWebsiteDataStore _allowWebsiteDataRecordsForAllOrigins];
13561355

1357-
RetainPtr<WKWebViewConfiguration> configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
1358-
1359-
configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
1356+
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
13601357
setConfigurationInjectedBundlePath(configuration.get());
1361-
auto websiteDataStore = [configuration websiteDataStore];
1358+
auto dataStoreConfiguration = adoptNS([_WKWebsiteDataStoreConfiguration new]);
1359+
[dataStoreConfiguration _setServiceWorkerRegistrationDirectory:[NSURL fileURLWithPath:@"/var/tmp"]];
1360+
auto websiteDataStore = adoptNS([[WKWebsiteDataStore alloc] _initWithConfiguration:dataStoreConfiguration.get()]);
13621361
[websiteDataStore _setCacheStorageDirectory:@"/var/tmp"];
1363-
[websiteDataStore _setServiceWorkerRegistrationDirectory:@"/var/tmp"];
1362+
[configuration setWebsiteDataStore:websiteDataStore.get()];
13641363

13651364
RetainPtr<DirectoryPageMessageHandler> directoryPageMessageHandler = adoptNS([[DirectoryPageMessageHandler alloc] init]);
13661365
[[configuration userContentController] addScriptMessageHandler:directoryPageMessageHandler.get() name:@"sw"];
@@ -1900,7 +1899,7 @@ ServiceWorkerTCPServer server({
19001899
done = false;
19011900

19021901
auto store = [configuration websiteDataStore];
1903-
auto path = store._serviceWorkerRegistrationDirectory;
1902+
auto path = store._configuration._serviceWorkerRegistrationDirectory.path;
19041903

19051904
NSURL* directory = [NSURL fileURLWithPath:path isDirectory:YES];
19061905
NSURL *swDBPath = [directory URLByAppendingPathComponent:@"ServiceWorkerRegistrations-4.sqlite3"];

0 commit comments

Comments
 (0)