WebKit Bugzilla
Attachment 362756 Details for
Bug 194958
: Stop using legacy IDB path by default when creating WebProcessPool from websiteDataStore
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194958-20190222132108.patch (text/plain), 10.13 KB, created by
Sihui Liu
on 2019-02-22 13:21:09 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Sihui Liu
Created:
2019-02-22 13:21:09 PST
Size:
10.13 KB
patch
obsolete
>Subversion Revision: 241873 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 4cfd434b7dacad40c08524bf282633aea3395739..dc8a32f98fc86a20b7365c147dc4c9d6373361d3 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,24 @@ >+2019-02-22 Sihui Liu <sihui_liu@apple.com> >+ >+ Stop using legacy IDB path by default when creating WebProcessPool from websiteDataStore >+ https://bugs.webkit.org/show_bug.cgi?id=194958 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration should not use fixed IDB path. >+ >+ * UIProcess/API/APIProcessPoolConfiguration.cpp: >+ (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): >+ * UIProcess/API/APIWebsiteDataStore.cpp: >+ (API::WebsiteDataStore::createLegacy): >+ (API::indexedDBDatabaseDirectory): >+ * UIProcess/API/APIWebsiteDataStore.h: >+ * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: >+ (-[WKWebsiteDataStore _indexedDBDatabaseDirectory]): >+ * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: >+ * UIProcess/WebProcessPool.cpp: >+ (WebKit::legacyWebsiteDataStoreConfiguration): >+ > 2019-02-21 Chris Dumez <cdumez@apple.com> > > Unreviewed API test fix after r241855. >diff --git a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp >index 23cf03519895b9d38c42bb09944b45725a6659f3..48c05058402973025f0f8a26f4cb488c8805edf7 100644 >--- a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp >+++ b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp >@@ -54,7 +54,7 @@ Ref<ProcessPoolConfiguration> ProcessPoolConfiguration::createWithWebsiteDataSto > configuration->m_applicationCacheFlatFileSubdirectoryName = legacyConfiguration.applicationCacheFlatFileSubdirectoryName(); > configuration->m_diskCacheDirectory = legacyConfiguration.networkCacheDirectory(); > configuration->m_mediaCacheDirectory = legacyConfiguration.mediaCacheDirectory(); >- configuration->m_indexedDBDatabaseDirectory = WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory(); >+ configuration->m_indexedDBDatabaseDirectory = legacyConfiguration.indexedDBDatabaseDirectory(); > configuration->m_localStorageDirectory = legacyConfiguration.localStorageDirectory(); > configuration->m_deviceIdHashSaltsStorageDirectory = legacyConfiguration.deviceIdHashSaltsStorageDirectory(); > configuration->m_mediaKeysStorageDirectory = legacyConfiguration.mediaKeysStorageDirectory(); >diff --git a/Source/WebKit/UIProcess/API/APIWebsiteDataStore.cpp b/Source/WebKit/UIProcess/API/APIWebsiteDataStore.cpp >index 22740a73eaa950190ae308f5c84cb0130b7f18c2..2797c8c2412907ab1691be565dc0d44b3b385699 100644 >--- a/Source/WebKit/UIProcess/API/APIWebsiteDataStore.cpp >+++ b/Source/WebKit/UIProcess/API/APIWebsiteDataStore.cpp >@@ -66,6 +66,7 @@ Ref<WebsiteDataStore> WebsiteDataStore::createNonPersistentDataStore() > > Ref<WebsiteDataStore> WebsiteDataStore::createLegacy(Ref<WebKit::WebsiteDataStoreConfiguration>&& configuration) > { >+ configuration->setIndexedDBDatabaseDirectory(legacyDefaultIndexedDBDatabaseDirectory()); > return adoptRef(*new WebsiteDataStore(WTFMove(configuration), PAL::SessionID::defaultSessionID())); > } > >@@ -88,6 +89,11 @@ HTTPCookieStore& WebsiteDataStore::httpCookieStore() > return m_websiteDataStore->cookieStore(); > } > >+WTF::String WebsiteDataStore:: indexedDBDatabaseDirectory() >+{ >+ return m_websiteDataStore->configuration().indexedDBDatabaseDirectory(); >+} >+ > bool WebsiteDataStore::isPersistent() > { > return m_websiteDataStore->isPersistent(); >diff --git a/Source/WebKit/UIProcess/API/APIWebsiteDataStore.h b/Source/WebKit/UIProcess/API/APIWebsiteDataStore.h >index 6789eb288b08cc2a86ecf5d8559b33475c57654f..9c9a43b73c43dd6d2b32b7e860d85e61ba810bf2 100644 >--- a/Source/WebKit/UIProcess/API/APIWebsiteDataStore.h >+++ b/Source/WebKit/UIProcess/API/APIWebsiteDataStore.h >@@ -54,6 +54,8 @@ public: > WebKit::WebsiteDataStore& websiteDataStore() { return m_websiteDataStore.get(); } > HTTPCookieStore& httpCookieStore(); > >+ WTF::String indexedDBDatabaseDirectory(); >+ > static WTF::String defaultApplicationCacheDirectory(); > static WTF::String defaultCacheStorageDirectory(); > static WTF::String defaultNetworkCacheDirectory(); >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm >index 01890e5570884775322666c27098dbe00192fbe0..9540d724d0520caa81331020195c5e8408d5c851 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm >@@ -368,6 +368,11 @@ - (NSDictionary *)_proxyConfiguration > return (__bridge NSDictionary *)_websiteDataStore->websiteDataStore().proxyConfiguration(); > } > >+- (NSURL *)_indexedDBDatabaseDirectory >+{ >+ return [NSURL fileURLWithPath:_websiteDataStore->indexedDBDatabaseDirectory() isDirectory:YES]; >+} >+ > - (void)_resourceLoadStatisticsSetShouldSubmitTelemetry:(BOOL)value > { > #if ENABLE(RESOURCE_LOAD_STATISTICS) >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h >index fed2425dbb5a89e24ded55d76c561d7c001d0ab2..88de4f3b6cf54cf50c2fdcb9f67fee01b59e0cd5 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h >@@ -58,6 +58,8 @@ typedef NS_OPTIONS(NSUInteger, _WKWebsiteDataStoreFetchOptions) { > @property (nonatomic, setter=_setAllowsCellularAccess:) BOOL _allowsCellularAccess WK_API_AVAILABLE(macosx(10.13.4), ios(11.3)); > @property (nonatomic, setter=_setProxyConfiguration:) NSDictionary *_proxyConfiguration WK_API_AVAILABLE(macosx(10.14), ios(12.0)); > >+@property (nonatomic, readonly) NSURL *_indexedDBDatabaseDirectory; >+ > - (void)_resourceLoadStatisticsSetShouldSubmitTelemetry:(BOOL)value WK_API_AVAILABLE(macosx(10.13), ios(11.0)); > - (void)_setResourceLoadStatisticsTestingCallback:(nullable void (^)(WKWebsiteDataStore *, NSString *))callback WK_API_AVAILABLE(macosx(10.13), ios(11.0)); > - (void)_getAllStorageAccessEntriesFor:(WKWebView *)webView completionHandler:(void (^)(NSArray<NSString *> *domains))completionHandler WK_API_AVAILABLE(macosx(10.14), ios(12.0)); >diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp >index b2f9afca218717b1c20cdb30dc0bcc2c8a32034c..eead486b70328ab593db42b5a7dba59d082f1a3b 100644 >--- a/Source/WebKit/UIProcess/WebProcessPool.cpp >+++ b/Source/WebKit/UIProcess/WebProcessPool.cpp >@@ -219,6 +219,7 @@ static Ref<WebsiteDataStoreConfiguration> legacyWebsiteDataStoreConfiguration(AP > configuration->setApplicationCacheFlatFileSubdirectoryName(String(processPoolConfiguration.applicationCacheFlatFileSubdirectoryName())); > configuration->setMediaCacheDirectory(String(processPoolConfiguration.mediaCacheDirectory())); > configuration->setMediaKeysStorageDirectory(String(processPoolConfiguration.mediaKeysStorageDirectory())); >+ configuration->setIndexedDBDatabaseDirectory(String(processPoolConfiguration.indexedDBDatabaseDirectory())); > configuration->setResourceLoadStatisticsDirectory(String(processPoolConfiguration.resourceLoadStatisticsDirectory())); > configuration->setNetworkCacheDirectory(String(processPoolConfiguration.diskCacheDirectory())); > configuration->setJavaScriptConfigurationDirectory(String(processPoolConfiguration.javaScriptConfigurationDirectory())); >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index e178f87c096708d8f42f9dc7a515380d509d368d..7a496e87106a7ddad9ce2eb12d48d4bb9e55e481 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,13 @@ >+2019-02-22 Sihui Liu <sihui_liu@apple.com> >+ >+ Stop using legacy IDB path by default when creating WebProcessPool from websiteDataStore >+ https://bugs.webkit.org/show_bug.cgi?id=194958 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm: >+ (TEST): >+ > 2019-02-21 Zalan Bujtas <zalan@apple.com> > > [LFC][Floats] Add support for placing formatting roots in-between floats. >diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm >index ae61ef8cbdba2ffe741f6933701444297b1e5927..a601fafba4f01e85262dded1596a8b2f0d86fccd 100644 >--- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm >+++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm >@@ -31,9 +31,11 @@ > #import <WebKit/WKProcessPoolPrivate.h> > #import <WebKit/WKUserContentControllerPrivate.h> > #import <WebKit/WKWebViewConfigurationPrivate.h> >+#import <WebKit/WKWebsiteDataStorePrivate.h> > #import <WebKit/WebKit.h> > #import <WebKit/_WKProcessPoolConfiguration.h> > #import <WebKit/_WKUserStyleSheet.h> >+#import <WebKit/_WKWebsiteDataStoreConfiguration.h> > #import <wtf/RetainPtr.h> > > #if WK_API_ENABLED >@@ -79,4 +81,20 @@ TEST(IndexedDB, IndexedDBUserDelete) > EXPECT_WK_STREQ(@"Continue", string.get()); > } > >+TEST(IndexedDB, IndexedDBUserDeleteBeforeLoading) >+{ >+ NSURL *idbURL = [[WKWebsiteDataStore defaultDataStore] _indexedDBDatabaseDirectory]; >+ NSURL *fileIDBURL = [[idbURL URLByAppendingPathComponent:@"file__0"] URLByAppendingPathComponent:@"IndexedDBUserDeleteBeforeLoading"]; >+ NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"IndexedDB" withExtension:@"sqlite3" subdirectory:@"TestWebKitAPI.resources"]; >+ [[NSFileManager defaultManager] createDirectoryAtURL:fileIDBURL withIntermediateDirectories:YES attributes:nil error:nil]; >+ [[NSFileManager defaultManager] copyItemAtURL:fileURL toURL:[fileIDBURL URLByAppendingPathComponent:@"IndexedDB.sqlite3"] error:nil]; >+ EXPECT_TRUE([[NSFileManager defaultManager] fileExistsAtPath:fileIDBURL.path]); >+ >+ [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:[NSSet setWithObjects:WKWebsiteDataTypeIndexedDBDatabases, nil] modifiedSince:[NSDate distantPast] completionHandler:^() { >+ EXPECT_FALSE([[NSFileManager defaultManager] fileExistsAtPath:fileIDBURL.path]); >+ readyToContinue = true; >+ }]; >+ readyToContinue = false; >+ TestWebKitAPI::Util::run(&readyToContinue); >+} > #endif
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194958
: 362756