Title: [187758] trunk/Source/WebCore
Revision
187758
Author
[email protected]
Date
2015-08-03 13:40:38 -0700 (Mon, 03 Aug 2015)

Log Message

Safari is failing to remove SQLite Databases via Remove All Website Data
https://bugs.webkit.org/show_bug.cgi?id=147584
rdar://problem/22095006

Reviewed by Brady Eidson.

If we end up deleting every single database for an origin, make sure to also delete the origin.

* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::deleteDatabasesModifiedSince):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (187757 => 187758)


--- trunk/Source/WebCore/ChangeLog	2015-08-03 20:29:55 UTC (rev 187757)
+++ trunk/Source/WebCore/ChangeLog	2015-08-03 20:40:38 UTC (rev 187758)
@@ -1,3 +1,16 @@
+2015-08-03  Anders Carlsson  <[email protected]>
+
+        Safari is failing to remove SQLite Databases via Remove All Website Data
+        https://bugs.webkit.org/show_bug.cgi?id=147584
+        rdar://problem/22095006
+
+        Reviewed by Brady Eidson.
+
+        If we end up deleting every single database for an origin, make sure to also delete the origin.
+
+        * Modules/webdatabase/DatabaseTracker.cpp:
+        (WebCore::DatabaseTracker::deleteDatabasesModifiedSince):
+
 2015-08-03  Zalan Bujtas  <[email protected]>
 
         Move "starting from root" frame flattening logging to the correct place.

Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp (187757 => 187758)


--- trunk/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp	2015-08-03 20:29:55 UTC (rev 187757)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp	2015-08-03 20:40:38 UTC (rev 187758)
@@ -862,6 +862,8 @@
         if (!databaseNamesForOrigin(origin.get(), databaseNames))
             continue;
 
+        size_t deletedDatabases = 0;
+
         for (auto& databaseName : databaseNames) {
             auto fullPath = fullPathForDatabase(origin.get(), databaseName, false);
 
@@ -873,7 +875,11 @@
                 continue;
 
             deleteDatabase(origin.get(), databaseName);
+            ++deletedDatabases;
         }
+
+        if (deletedDatabases == databaseNames.size())
+            deleteOrigin(origin.get());
     }
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to