Title: [194859] trunk
Revision
194859
Author
beid...@apple.com
Date
2016-01-11 12:18:29 -0800 (Mon, 11 Jan 2016)

Log Message

Modern IDB: storage/indexeddb/lazy-index-population.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152976

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

We were restoring objectstores/indexes incorrectly on transaction abort.

* Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::removeObjectStoreForVersionChangeAbort):

LayoutTests:

* platform/mac-wk1/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (194858 => 194859)


--- trunk/LayoutTests/ChangeLog	2016-01-11 18:13:36 UTC (rev 194858)
+++ trunk/LayoutTests/ChangeLog	2016-01-11 20:18:29 UTC (rev 194859)
@@ -1,3 +1,12 @@
+2016-01-11  Brady Eidson  <beid...@apple.com>
+
+        Modern IDB: storage/indexeddb/lazy-index-population.html fails.
+        https://bugs.webkit.org/show_bug.cgi?id=152976
+
+        Reviewed by Alex Christensen.
+
+        * platform/mac-wk1/TestExpectations:
+
 2016-01-11  Michael Catanzaro  <mcatanz...@igalia.com>
 
         [GTK] Update test expectations after r194845

Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (194858 => 194859)


--- trunk/LayoutTests/platform/mac-wk1/TestExpectations	2016-01-11 18:13:36 UTC (rev 194858)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations	2016-01-11 20:18:29 UTC (rev 194859)
@@ -79,9 +79,6 @@
 # Modern IDB doesn't properly handle 2^53 as a key generator value
 storage/indexeddb/key-generator.html [ Skip ]
 
-# ASSERT in MemoryIDBBackingStore::restoreObjectStoreForVersionChangeAbort
-storage/indexeddb/lazy-index-population.html [ Skip ]
-
 # Crashes with GuardMalloc or ASan
 storage/indexeddb/index-multientry.html [ Skip ]
 

Modified: trunk/Source/WebCore/ChangeLog (194858 => 194859)


--- trunk/Source/WebCore/ChangeLog	2016-01-11 18:13:36 UTC (rev 194858)
+++ trunk/Source/WebCore/ChangeLog	2016-01-11 20:18:29 UTC (rev 194859)
@@ -1,5 +1,21 @@
 2016-01-11  Brady Eidson  <beid...@apple.com>
 
+        Modern IDB: storage/indexeddb/lazy-index-population.html fails.
+        https://bugs.webkit.org/show_bug.cgi?id=152976
+
+        Reviewed by Alex Christensen.
+
+        No new tests (At least one failing test now passes).
+
+        We were restoring objectstores/indexes incorrectly on transaction abort.
+
+        * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
+        (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
+        * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
+        (WebCore::IDBServer::MemoryIDBBackingStore::removeObjectStoreForVersionChangeAbort):
+
+2016-01-11  Brady Eidson  <beid...@apple.com>
+
         Modern IDB: Make MemoryIndex and MemoryObjectStore RefCounted.
         https://bugs.webkit.org/show_bug.cgi?id=152966
 

Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp (194858 => 194859)


--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp	2016-01-11 18:13:36 UTC (rev 194858)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp	2016-01-11 20:18:29 UTC (rev 194859)
@@ -180,6 +180,10 @@
 
     TemporaryChange<bool> change(m_isAborting, true);
 
+    for (auto objectStore : m_versionChangeAddedObjectStores)
+        m_backingStore.removeObjectStoreForVersionChangeAbort(*objectStore);
+    m_versionChangeAddedObjectStores.clear();
+
     for (auto& objectStore : m_deletedObjectStores.values()) {
         m_backingStore.restoreObjectStoreForVersionChangeAbort(*objectStore);
         ASSERT(!m_objectStores.contains(objectStore.get()));
@@ -223,9 +227,6 @@
     m_deletedIndexes.clear();
 
     finish();
-
-    for (auto objectStore : m_versionChangeAddedObjectStores)
-        m_backingStore.removeObjectStoreForVersionChangeAbort(*objectStore);
 }
 
 void MemoryBackingStoreTransaction::commit()

Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp (194858 => 194859)


--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp	2016-01-11 18:13:36 UTC (rev 194858)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp	2016-01-11 20:18:29 UTC (rev 194859)
@@ -220,7 +220,9 @@
 {
     LOG(IndexedDB, "MemoryIDBBackingStore::removeObjectStoreForVersionChangeAbort");
 
-    ASSERT(m_objectStoresByIdentifier.contains(objectStore.info().identifier()));
+    if (!m_objectStoresByIdentifier.contains(objectStore.info().identifier()))
+        return;
+
     ASSERT(m_objectStoresByIdentifier.get(objectStore.info().identifier()) == &objectStore);
 
     unregisterObjectStore(objectStore);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to