Title: [160659] trunk/Source
- Revision
- 160659
- Author
- beid...@apple.com
- Date
- 2013-12-16 13:26:59 -0800 (Mon, 16 Dec 2013)
Log Message
DatabaseProcess: Fix a few bugs with opening an IDB connection
https://bugs.webkit.org/show_bug.cgi?id=125798
Reviewed by Alexey Proskuryakov.
Source/WebCore:
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::processPendingCalls): As the comment says, we should only
early return when there *are* pending delete calls. The logic here was backwards,
preventing the backend from ever getting to processPendingOpenCalls().
Source/WebKit2:
Database metadata always needs a non-zero database identifier, unique at runtime.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::generateDatabaseId):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (160658 => 160659)
--- trunk/Source/WebCore/ChangeLog 2013-12-16 21:23:53 UTC (rev 160658)
+++ trunk/Source/WebCore/ChangeLog 2013-12-16 21:26:59 UTC (rev 160659)
@@ -1,3 +1,15 @@
+2013-12-16 Brady Eidson <beid...@apple.com>
+
+ DatabaseProcess: Fix a few bugs with opening an IDB connection
+ https://bugs.webkit.org/show_bug.cgi?id=125798
+
+ Reviewed by Alexey Proskuryakov.
+
+ * Modules/indexeddb/IDBDatabaseBackend.cpp:
+ (WebCore::IDBDatabaseBackend::processPendingCalls): As the comment says, we should only
+ early return when there *are* pending delete calls. The logic here was backwards,
+ preventing the backend from ever getting to processPendingOpenCalls().
+
2013-12-16 Alex Christensen <achristen...@webkit.org>
Fixed Win64 build on VS2013.
Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp (160658 => 160659)
--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp 2013-12-16 21:23:53 UTC (rev 160658)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp 2013-12-16 21:26:59 UTC (rev 160659)
@@ -391,7 +391,7 @@
// If there are any database deletions waiting for completion, we're done for now.
// Further callbacks will be handled in a future call to processPendingCalls().
- if (m_deleteCallbacksWaitingCompletion.isEmpty())
+ if (!m_deleteCallbacksWaitingCompletion.isEmpty())
return;
if (m_runningVersionChangeTransaction)
Modified: trunk/Source/WebKit2/ChangeLog (160658 => 160659)
--- trunk/Source/WebKit2/ChangeLog 2013-12-16 21:23:53 UTC (rev 160658)
+++ trunk/Source/WebKit2/ChangeLog 2013-12-16 21:26:59 UTC (rev 160659)
@@ -1,3 +1,16 @@
+2013-12-16 Brady Eidson <beid...@apple.com>
+
+ DatabaseProcess: Fix a few bugs with opening an IDB connection
+ https://bugs.webkit.org/show_bug.cgi?id=125798
+
+ Reviewed by Alexey Proskuryakov.
+
+ Database metadata always needs a non-zero database identifier, unique at runtime.
+
+ * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
+ (WebKit::generateDatabaseId):
+ (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata):
+
2013-12-16 Anders Carlsson <ander...@apple.com>
UserData should encode and decode API::Data objects
Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp (160658 => 160659)
--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp 2013-12-16 21:23:53 UTC (rev 160658)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp 2013-12-16 21:26:59 UTC (rev 160659)
@@ -41,6 +41,14 @@
// Current version of the metadata schema being used in the metadata database.
static const int currentMetadataVersion = 1;
+static int64_t generateDatabaseId()
+{
+ static int64_t databaseID = 0;
+
+ ASSERT(!isMainThread());
+ return ++databaseID;
+}
+
UniqueIDBDatabaseBackingStoreSQLite::UniqueIDBDatabaseBackingStoreSQLite(const UniqueIDBDatabaseIdentifier& identifier, const String& databaseDirectory)
: m_identifier(identifier)
, m_absoluteDatabaseDirectory(databaseDirectory)
@@ -173,6 +181,9 @@
if (!metadata)
LOG_ERROR("Unable to establish IDB database at path '%s'", metadataDBFilename.utf8().data());
+ // The database id is a runtime concept and doesn't need to be stored in the metadata database.
+ metadata->id = generateDatabaseId();
+
return metadata;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes