WebKit Bugzilla
Attachment 341030 Details for
Bug 185835
: Unable to remove IndexedDB Databases with Cocoa API removeDataOfTypes
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185835-20180522144207.patch (text/plain), 5.10 KB, created by
Sihui Liu
on 2018-05-22 14:42:08 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Sihui Liu
Created:
2018-05-22 14:42:08 PDT
Size:
5.10 KB
patch
obsolete
>Subversion Revision: 232071 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 545439bf4e71e242821e21896310fb0adf8e257f..e0f46260214509808d625f5b3825a0260f0ed6be 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,17 @@ >+2018-05-22 Sihui Liu <sihui_liu@apple.com> >+ >+ Unable to remove IndexedDB Databases with Cocoa API removeDataOfTypes >+ https://bugs.webkit.org/show_bug.cgi?id=185835 >+ <rdar://problem/39142257> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Fix a wrong if condition: databases should be closed and deleted if websiteDataTypes contains >+ WebsiteDataType::IndexedDBDatabases. >+ >+ * StorageProcess/StorageProcess.cpp: >+ (WebKit::StorageProcess::deleteWebsiteDataForOrigins): >+ > 2018-05-22 Ryan Haddad <ryanhaddad@apple.com> > > Unreviewed, rolling out r232052. >diff --git a/Source/WebKit/StorageProcess/StorageProcess.cpp b/Source/WebKit/StorageProcess/StorageProcess.cpp >index 6a98d1ad8d910b8ba40368a88b0a2eba696ce609..9bb489a9a4f260191bce0062c5816812d359c601 100644 >--- a/Source/WebKit/StorageProcess/StorageProcess.cpp >+++ b/Source/WebKit/StorageProcess/StorageProcess.cpp >@@ -347,7 +347,7 @@ void StorageProcess::deleteWebsiteDataForOrigins(PAL::SessionID sessionID, Optio > #endif > > #if ENABLE(INDEXED_DATABASE) >- if (!websiteDataTypes.contains(WebsiteDataType::IndexedDBDatabases)) >+ if (websiteDataTypes.contains(WebsiteDataType::IndexedDBDatabases)) > idbServer(sessionID).closeAndDeleteDatabasesForOrigins(securityOrigins, [callbackAggregator = WTFMove(callbackAggregator)] { }); > #endif > } >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 6a36cd3c441f7d9cea4bcb8dead528f4d23c4901..2e79a76be8b6a225074e636b524f237591311d12 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,16 @@ >+2018-05-22 Sihui Liu <sihui_liu@apple.com> >+ >+ Unable to remove IndexedDB Databases with Cocoa API removeDataOfTypes >+ https://bugs.webkit.org/show_bug.cgi?id=185835 >+ <rdar://problem/39142257> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add API test coverage. >+ >+ * TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm: >+ (TEST): >+ > 2018-05-22 Sihui Liu <sihui_liu@apple.com> > > Unreviewed, added myself as a WebKit committer. >diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm >index da6f924d15c940519d349ddd58449e3e978f8454..afa944611c4f8f5917fdf06bafbc2c4bed290461 100644 >--- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm >+++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm >@@ -37,6 +37,7 @@ > > #if WK_API_ENABLED > >+static bool readyToContinue; > static bool receivedScriptMessage; > static RetainPtr<WKScriptMessage> lastScriptMessage; > >@@ -93,4 +94,47 @@ TEST(IndexedDB, IndexedDBPersistence) > EXPECT_WK_STREQ(@"2 TestObjectStore", string3.get()); > } > >+TEST(IndexedDB, IndexedDBDataRemoval) >+{ >+ auto websiteDataTypes = adoptNS([[NSSet alloc] initWithArray:@[WKWebsiteDataTypeIndexedDBDatabases]]); >+ >+ readyToContinue = false; >+ [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes.get() modifiedSince:[NSDate distantPast] completionHandler:^() { >+ readyToContinue = true; >+ }]; >+ TestWebKitAPI::Util::run(&readyToContinue); >+ >+ readyToContinue = false; >+ [[WKWebsiteDataStore defaultDataStore] fetchDataRecordsOfTypes:websiteDataTypes.get() completionHandler:^(NSArray<WKWebsiteDataRecord *> *dataRecords) { >+ readyToContinue = true; >+ ASSERT_EQ(0u, dataRecords.count); >+ }]; >+ TestWebKitAPI::Util::run(&readyToContinue); >+ >+ receivedScriptMessage = false; >+ auto handler = adoptNS([[IndexedDBMessageHandler alloc] init]); >+ auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); >+ [[configuration userContentController] addScriptMessageHandler:handler.get() name:@"testHandler"]; >+ auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); >+ NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"IndexedDBPersistence-1" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]; >+ [webView loadRequest:request]; >+ TestWebKitAPI::Util::run(&receivedScriptMessage); >+ >+ readyToContinue = false; >+ [[WKWebsiteDataStore defaultDataStore] fetchDataRecordsOfTypes:websiteDataTypes.get() completionHandler:^(NSArray<WKWebsiteDataRecord *> *dataRecords) { >+ ASSERT_EQ(1u, dataRecords.count); >+ [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes.get() forDataRecords:dataRecords completionHandler:^() { >+ readyToContinue = true; >+ }]; >+ }]; >+ TestWebKitAPI::Util::run(&readyToContinue); >+ >+ readyToContinue = false; >+ [[WKWebsiteDataStore defaultDataStore] fetchDataRecordsOfTypes:websiteDataTypes.get() completionHandler:^(NSArray<WKWebsiteDataRecord *> *dataRecords) { >+ readyToContinue = true; >+ ASSERT_EQ(0u, dataRecords.count); >+ }]; >+ 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 185835
:
340883
|
341030
|
341474
|
341475