Title: [232258] trunk
- Revision
- 232258
- Author
- [email protected]
- Date
- 2018-05-29 09:12:22 -0700 (Tue, 29 May 2018)
Log Message
Unable to remove IndexedDB Databases with Cocoa API removeDataOfTypes
https://bugs.webkit.org/show_bug.cgi?id=185835
<rdar://problem/39142257>
Reviewed by Chris Dumez.
Source/WebKit:
Fix a wrong if condition: databases should be closed and deleted if websiteDataTypes contains
WebsiteDataType::IndexedDBDatabases.
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):
Tools:
Add API test coverage.
* TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
(TEST):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (232257 => 232258)
--- trunk/Source/WebKit/ChangeLog 2018-05-29 15:19:49 UTC (rev 232257)
+++ trunk/Source/WebKit/ChangeLog 2018-05-29 16:12:22 UTC (rev 232258)
@@ -1,3 +1,17 @@
+2018-05-29 Sihui Liu <[email protected]>
+
+ Unable to remove IndexedDB Databases with Cocoa API removeDataOfTypes
+ https://bugs.webkit.org/show_bug.cgi?id=185835
+ <rdar://problem/39142257>
+
+ Reviewed by Chris Dumez.
+
+ Fix a wrong if condition: databases should be closed and deleted if websiteDataTypes contains
+ WebsiteDataType::IndexedDBDatabases.
+
+ * StorageProcess/StorageProcess.cpp:
+ (WebKit::StorageProcess::deleteWebsiteDataForOrigins):
+
2018-05-28 Sam Weinig <[email protected]>
Modernize SVGRenderStyleDefs.h
Modified: trunk/Source/WebKit/StorageProcess/StorageProcess.cpp (232257 => 232258)
--- trunk/Source/WebKit/StorageProcess/StorageProcess.cpp 2018-05-29 15:19:49 UTC (rev 232257)
+++ trunk/Source/WebKit/StorageProcess/StorageProcess.cpp 2018-05-29 16:12:22 UTC (rev 232258)
@@ -349,7 +349,7 @@
#endif
#if ENABLE(INDEXED_DATABASE)
- if (!websiteDataTypes.contains(WebsiteDataType::IndexedDBDatabases))
+ if (websiteDataTypes.contains(WebsiteDataType::IndexedDBDatabases))
idbServer(sessionID).closeAndDeleteDatabasesForOrigins(securityOrigins, [callbackAggregator = WTFMove(callbackAggregator)] { });
#endif
}
Modified: trunk/Tools/ChangeLog (232257 => 232258)
--- trunk/Tools/ChangeLog 2018-05-29 15:19:49 UTC (rev 232257)
+++ trunk/Tools/ChangeLog 2018-05-29 16:12:22 UTC (rev 232258)
@@ -1,3 +1,16 @@
+2018-05-29 Sihui Liu <[email protected]>
+
+ Unable to remove IndexedDB Databases with Cocoa API removeDataOfTypes
+ https://bugs.webkit.org/show_bug.cgi?id=185835
+ <rdar://problem/39142257>
+
+ Reviewed by Chris Dumez.
+
+ Add API test coverage.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
+ (TEST):
+
2018-05-29 Wenson Hsieh <[email protected]>
[Extra zoom mode] "Significant area painted" rendering progress event is rarely fired
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm (232257 => 232258)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm 2018-05-29 15:19:49 UTC (rev 232257)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm 2018-05-29 16:12:22 UTC (rev 232258)
@@ -37,6 +37,7 @@
#if WK_API_ENABLED
+static bool readyToContinue;
static bool receivedScriptMessage;
static RetainPtr<WKScriptMessage> lastScriptMessage;
@@ -93,4 +94,47 @@
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes