Make IDBTransactionCoordinatorLevelDB cross platform
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Oct 2013 00:18:03 +0000 (00:18 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Oct 2013 00:18:03 +0000 (00:18 +0000)
https://bugs.webkit.org/show_bug.cgi?id=123124

Enthusiastically reviewed by Tim Horton.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:

Make more methods pure virtual in the interface:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:

Update the name of the class, and use IDBTransactionBackendInterface instead of IDBTransactionBackendLeveDB:
* Modules/indexeddb/IDBTransactionCoordinator.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp.
(WebCore::IDBTransactionCoordinator::create):
(WebCore::IDBTransactionCoordinator::IDBTransactionCoordinator):
(WebCore::IDBTransactionCoordinator::~IDBTransactionCoordinator):
(WebCore::IDBTransactionCoordinator::didCreateTransaction):
(WebCore::IDBTransactionCoordinator::didStartTransaction):
(WebCore::IDBTransactionCoordinator::didFinishTransaction):
(WebCore::IDBTransactionCoordinator::isActive):
(WebCore::IDBTransactionCoordinator::processStartedTransactions):
(WebCore::doScopesOverlap):
(WebCore::IDBTransactionCoordinator::canRunTransaction):
* Modules/indexeddb/IDBTransactionCoordinator.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.h.

Update the name of the class elsewhere:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
(WebCore::IDBDatabaseBackendLevelDB::transactionCoordinator):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@157766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 files changed:
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.list.am
Source/WebCore/Modules/indexeddb/IDBTransactionBackendInterface.h
Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.cpp [moved from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp with 72% similarity]
Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.h [moved from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.h with 67% similarity]
Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp
Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h
Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp
Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp
Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h
Source/WebCore/WebCore.xcodeproj/project.pbxproj

index 3420b62..c1ca6a5 100644 (file)
@@ -779,6 +779,7 @@ set(WebCore_SOURCES
     Modules/indexeddb/IDBPendingTransactionMonitor.cpp
     Modules/indexeddb/IDBRequest.cpp
     Modules/indexeddb/IDBTransaction.cpp
+    Modules/indexeddb/IDBTransactionCoordinator.cpp
     Modules/indexeddb/IDBVersionChangeEvent.cpp
     Modules/indexeddb/PageGroupIndexedDatabase.cpp
     Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp
@@ -790,7 +791,6 @@ set(WebCore_SOURCES
     Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp
     Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp
     Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp
-    Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp
 
     Modules/mediasource/MediaSource.cpp
     Modules/mediasource/MediaSourceRegistry.cpp
index 3a31083..2d5b951 100644 (file)
@@ -1,3 +1,40 @@
+2013-10-21  Brady Eidson  <beidson@apple.com>
+
+        Make IDBTransactionCoordinatorLevelDB cross platform
+        https://bugs.webkit.org/show_bug.cgi?id=123124
+
+        Enthusiastically reviewed by Tim Horton.
+
+        * CMakeLists.txt:
+        * GNUmakefile.list.am:
+        * WebCore.xcodeproj/project.pbxproj:
+
+        Make more methods pure virtual in the interface:
+        * Modules/indexeddb/IDBTransactionBackendInterface.h:
+        * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
+        * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
+
+        Update the name of the class, and use IDBTransactionBackendInterface instead of IDBTransactionBackendLeveDB:
+        * Modules/indexeddb/IDBTransactionCoordinator.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp.
+        (WebCore::IDBTransactionCoordinator::create):
+        (WebCore::IDBTransactionCoordinator::IDBTransactionCoordinator):
+        (WebCore::IDBTransactionCoordinator::~IDBTransactionCoordinator):
+        (WebCore::IDBTransactionCoordinator::didCreateTransaction):
+        (WebCore::IDBTransactionCoordinator::didStartTransaction):
+        (WebCore::IDBTransactionCoordinator::didFinishTransaction):
+        (WebCore::IDBTransactionCoordinator::isActive):
+        (WebCore::IDBTransactionCoordinator::processStartedTransactions):
+        (WebCore::doScopesOverlap):
+        (WebCore::IDBTransactionCoordinator::canRunTransaction):
+        * Modules/indexeddb/IDBTransactionCoordinator.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.h.
+
+        Update the name of the class elsewhere:
+        * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
+        (WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
+        * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
+        (WebCore::IDBDatabaseBackendLevelDB::transactionCoordinator):
+        * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
+
 2013-10-21  Daniel Bates  <dabates@apple.com>
 
         [iOS] Upstream JSGlobalObject::shouldInterruptScriptBeforeTimeout()
index e2b22bd..d75a0a9 100644 (file)
@@ -1847,11 +1847,11 @@ webcore_modules_sources += \
        Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h \
        Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp \
        Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h \
-       Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp \
-       Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.h \
        Source/WebCore/Modules/indexeddb/IDBTransaction.cpp \
        Source/WebCore/Modules/indexeddb/IDBTransaction.h \
        Source/WebCore/Modules/indexeddb/IDBTransactionBackendInterface.h \
+       Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.cpp \
+       Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.h \
        Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.cpp \
        Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h \
        Source/WebCore/Modules/indexeddb/IndexedDB.h \
index f726b5e..3c00061 100644 (file)
@@ -52,9 +52,11 @@ public:
 
     virtual IndexedDB::TransactionMode mode() const = 0;
 
+    virtual void run() = 0;
     virtual void commit() = 0;
     virtual void abort() = 0;
     virtual void abort(PassRefPtr<IDBDatabaseError>) = 0;
+    virtual const HashSet<int64_t>& scope() const = 0;
 
     virtual void scheduleCreateObjectStoreOperation(const IDBObjectStoreMetadata&) = 0;
     virtual void scheduleDeleteObjectStoreOperation(const IDBObjectStoreMetadata&) = 0;
  */
 
 #include "config.h"
-#include "IDBTransactionCoordinatorLevelDB.h"
+#include "IDBTransactionCoordinator.h"
 
-#if ENABLE(INDEXED_DATABASE) && USE(LEVELDB)
+#if ENABLE(INDEXED_DATABASE)
 
-#include "IDBDatabaseBackendLevelDB.h"
 #include "IDBDatabaseCallbacks.h"
-#include "IDBTransactionBackendLevelDB.h"
+#include "IDBTransactionBackendInterface.h"
 
 namespace WebCore {
 
-PassOwnPtr<IDBTransactionCoordinatorLevelDB> IDBTransactionCoordinatorLevelDB::create()
+PassOwnPtr<IDBTransactionCoordinator> IDBTransactionCoordinator::create()
 {
-    return adoptPtr(new IDBTransactionCoordinatorLevelDB());
+    return adoptPtr(new IDBTransactionCoordinator());
 }
 
-IDBTransactionCoordinatorLevelDB::IDBTransactionCoordinatorLevelDB()
+IDBTransactionCoordinator::IDBTransactionCoordinator()
 {
 }
 
-IDBTransactionCoordinatorLevelDB::~IDBTransactionCoordinatorLevelDB()
+IDBTransactionCoordinator::~IDBTransactionCoordinator()
 {
 }
 
-void IDBTransactionCoordinatorLevelDB::didCreateTransaction(IDBTransactionBackendLevelDB* transaction)
+void IDBTransactionCoordinator::didCreateTransaction(IDBTransactionBackendInterface* transaction)
 {
     ASSERT(!m_transactions.contains(transaction));
     m_transactions.add(transaction, transaction);
 }
 
-void IDBTransactionCoordinatorLevelDB::didStartTransaction(IDBTransactionBackendLevelDB* transaction)
+void IDBTransactionCoordinator::didStartTransaction(IDBTransactionBackendInterface* transaction)
 {
     ASSERT(m_transactions.contains(transaction));
 
@@ -61,7 +60,7 @@ void IDBTransactionCoordinatorLevelDB::didStartTransaction(IDBTransactionBackend
     processStartedTransactions();
 }
 
-void IDBTransactionCoordinatorLevelDB::didFinishTransaction(IDBTransactionBackendLevelDB* transaction)
+void IDBTransactionCoordinator::didFinishTransaction(IDBTransactionBackendInterface* transaction)
 {
     ASSERT(m_transactions.contains(transaction));
 
@@ -78,7 +77,7 @@ void IDBTransactionCoordinatorLevelDB::didFinishTransaction(IDBTransactionBacken
 
 #ifndef NDEBUG
 // Verifies internal consistiency while returning whether anything is found.
-bool IDBTransactionCoordinatorLevelDB::isActive(IDBTransactionBackendLevelDB* transaction)
+bool IDBTransactionCoordinator::isActive(IDBTransactionBackendInterface* transaction)
 {
     bool found = false;
     if (m_queuedTransactions.contains(transaction))
@@ -92,16 +91,16 @@ bool IDBTransactionCoordinatorLevelDB::isActive(IDBTransactionBackendLevelDB* tr
 }
 #endif
 
-void IDBTransactionCoordinatorLevelDB::processStartedTransactions()
+void IDBTransactionCoordinator::processStartedTransactions()
 {
     if (m_queuedTransactions.isEmpty())
         return;
 
     ASSERT(m_startedTransactions.isEmpty() || (*m_startedTransactions.begin())->mode() != IndexedDB::TransactionVersionChange);
 
-    ListHashSet<IDBTransactionBackendLevelDB*>::const_iterator it = m_queuedTransactions.begin();
+    ListHashSet<IDBTransactionBackendInterface*>::const_iterator it = m_queuedTransactions.begin();
     while (it != m_queuedTransactions.end()) {
-        IDBTransactionBackendLevelDB* transaction = *it;
+        IDBTransactionBackendInterface* transaction = *it;
         ++it;
         if (canRunTransaction(transaction)) {
             m_queuedTransactions.remove(transaction);
@@ -120,7 +119,7 @@ static bool doScopesOverlap(const HashSet<int64_t>& scope1, const HashSet<int64_
     return false;
 }
 
-bool IDBTransactionCoordinatorLevelDB::canRunTransaction(IDBTransactionBackendLevelDB* transaction)
+bool IDBTransactionCoordinator::canRunTransaction(IDBTransactionBackendInterface* transaction)
 {
     ASSERT(m_queuedTransactions.contains(transaction));
     switch (transaction->mode()) {
@@ -133,11 +132,11 @@ bool IDBTransactionCoordinatorLevelDB::canRunTransaction(IDBTransactionBackendLe
         return true;
 
     case IndexedDB::TransactionReadWrite:
-        for (HashSet<IDBTransactionBackendLevelDB*>::const_iterator it = m_startedTransactions.begin(); it != m_startedTransactions.end(); ++it) {
+        for (HashSet<IDBTransactionBackendInterface*>::const_iterator it = m_startedTransactions.begin(); it != m_startedTransactions.end(); ++it) {
             if ((*it)->mode() == IndexedDB::TransactionReadWrite && doScopesOverlap(transaction->scope(), (*it)->scope()))
                 return false;
         }
-        for (ListHashSet<IDBTransactionBackendLevelDB*>::const_iterator it = m_queuedTransactions.begin(); *it != transaction; ++it) {
+        for (ListHashSet<IDBTransactionBackendInterface*>::const_iterator it = m_queuedTransactions.begin(); *it != transaction; ++it) {
             ASSERT(it != m_queuedTransactions.end());
             if ((*it)->mode() == IndexedDB::TransactionReadWrite && doScopesOverlap(transaction->scope(), (*it)->scope()))
                 return false;
@@ -150,4 +149,4 @@ bool IDBTransactionCoordinatorLevelDB::canRunTransaction(IDBTransactionBackendLe
 
 };
 
-#endif // ENABLE(INDEXED_DATABASE) && USE(LEVELDB)
+#endif // ENABLE(INDEXED_DATABASE)
@@ -23,8 +23,8 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef IDBTransactionCoordinatorLevelDB_h
-#define IDBTransactionCoordinatorLevelDB_h
+#ifndef IDBTransactionCoordinator_h
+#define IDBTransactionCoordinator_h
 
 #if ENABLE(INDEXED_DATABASE)
 
 
 namespace WebCore {
 
-class IDBTransactionBackendLevelDB;
+class IDBTransactionBackendInterface;
 
 // Transactions are executed in the order the were created.
-class IDBTransactionCoordinatorLevelDB {
+class IDBTransactionCoordinator {
 public:
-    static PassOwnPtr<IDBTransactionCoordinatorLevelDB> create();
-    virtual ~IDBTransactionCoordinatorLevelDB();
+    static PassOwnPtr<IDBTransactionCoordinator> create();
+    virtual ~IDBTransactionCoordinator();
 
     // Called by transactions as they start and finish.
-    void didCreateTransaction(IDBTransactionBackendLevelDB*);
-    void didStartTransaction(IDBTransactionBackendLevelDB*);
-    void didFinishTransaction(IDBTransactionBackendLevelDB*);
+    void didCreateTransaction(IDBTransactionBackendInterface*);
+    void didStartTransaction(IDBTransactionBackendInterface*);
+    void didFinishTransaction(IDBTransactionBackendInterface*);
 
 #ifndef NDEBUG
-    bool isActive(IDBTransactionBackendLevelDB*);
+    bool isActive(IDBTransactionBackendInterface*);
 #endif
 
 private:
-    IDBTransactionCoordinatorLevelDB();
+    IDBTransactionCoordinator();
 
     void processStartedTransactions();
-    bool canRunTransaction(IDBTransactionBackendLevelDB*);
+    bool canRunTransaction(IDBTransactionBackendInterface*);
 
     // This is just an efficient way to keep references to all transactions.
-    HashMap<IDBTransactionBackendLevelDB*, RefPtr<IDBTransactionBackendLevelDB> > m_transactions;
+    HashMap<IDBTransactionBackendInterface*, RefPtr<IDBTransactionBackendInterface> > m_transactions;
     // Transactions in different states are grouped below.
-    ListHashSet<IDBTransactionBackendLevelDB*> m_queuedTransactions;
-    HashSet<IDBTransactionBackendLevelDB*> m_startedTransactions;
+    ListHashSet<IDBTransactionBackendInterface*> m_queuedTransactions;
+    HashSet<IDBTransactionBackendInterface*> m_startedTransactions;
 };
 
 } // namespace WebCore
 
 #endif // ENABLE(INDEXED_DATABASE)
 
-#endif // IDBTransactionCoordinatorLevelDB_h
+#endif // IDBTransactionCoordinator_h
index 5ca86f5..181e250 100644 (file)
@@ -35,7 +35,7 @@
 #include "IDBKeyRange.h"
 #include "IDBObjectStoreBackendLevelDB.h"
 #include "IDBTransactionBackendLevelDB.h"
-#include "IDBTransactionCoordinatorLevelDB.h"
+#include "IDBTransactionCoordinator.h"
 #include "Logging.h"
 #include "SharedBuffer.h"
 #include <wtf/TemporaryChange.h>
@@ -55,7 +55,7 @@ IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB(const String& name, IDBBack
     , m_metadata(name, InvalidId, 0, InvalidId)
     , m_identifier(uniqueIdentifier)
     , m_factory(factory)
-    , m_transactionCoordinator(IDBTransactionCoordinatorLevelDB::create())
+    , m_transactionCoordinator(IDBTransactionCoordinator::create())
     , m_closingConnection(false)
 {
     ASSERT(!m_metadata.name.isNull());
index 3a050f3..0f098ff 100644 (file)
@@ -41,7 +41,7 @@ class IDBBackingStoreInterface;
 class IDBDatabase;
 class IDBFactoryBackendInterface;
 class IDBTransactionBackendInterface;
-class IDBTransactionCoordinatorLevelDB;
+class IDBTransactionCoordinator;
 
 class IDBDatabaseBackendLevelDB : public IDBDatabaseBackendInterface {
 public:
@@ -74,7 +74,7 @@ public:
     virtual void createIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId, const String& name, const IDBKeyPath&, bool unique, bool multiEntry);
     virtual void deleteIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId);
 
-    IDBTransactionCoordinatorLevelDB* transactionCoordinator() const { return m_transactionCoordinator.get(); }
+    IDBTransactionCoordinator* transactionCoordinator() const { return m_transactionCoordinator.get(); }
     void transactionStarted(IDBTransactionBackendInterface*);
     void transactionFinished(IDBTransactionBackendInterface*);
     void transactionFinishedAndCompleteFired(IDBTransactionBackendInterface*);
@@ -110,7 +110,7 @@ private:
     // This might not need to be a RefPtr since the factory's lifetime is that of the page group, but it's better to be conservitive than sorry.
     RefPtr<IDBFactoryBackendInterface> m_factory;
 
-    OwnPtr<IDBTransactionCoordinatorLevelDB> m_transactionCoordinator;
+    OwnPtr<IDBTransactionCoordinator> m_transactionCoordinator;
     RefPtr<IDBTransactionBackendInterface> m_runningVersionChangeTransaction;
 
     typedef HashMap<int64_t, IDBTransactionBackendInterface*> TransactionMap;
index 5fa1acc..04e4c1b 100644 (file)
@@ -34,7 +34,7 @@
 #include "IDBDatabaseBackendLevelDB.h"
 #include "IDBDatabaseException.h"
 #include "IDBTransactionBackendLevelDB.h"
-#include "IDBTransactionCoordinatorLevelDB.h"
+#include "IDBTransactionCoordinator.h"
 #include "Logging.h"
 #include "SecurityOrigin.h"
 
index e4ea4c8..1e66b74 100644 (file)
@@ -35,7 +35,7 @@
 #include "IDBDatabaseException.h"
 #include "IDBKeyRange.h"
 #include "IDBTransactionBackendLevelDBOperations.h"
-#include "IDBTransactionCoordinatorLevelDB.h"
+#include "IDBTransactionCoordinator.h"
 #include "Logging.h"
 
 namespace WebCore {
index 5539d85..148eff7 100644 (file)
@@ -44,7 +44,7 @@ class IDBBackingStoreLevelDB;
 class IDBCursorBackendLevelDB;
 class IDBDatabaseCallbacks;
 
-class IDBTransactionBackendLevelDB : public IDBTransactionBackendInterface {
+class IDBTransactionBackendLevelDB FINAL : public IDBTransactionBackendInterface {
 public:
     static PassRefPtr<IDBTransactionBackendLevelDB> create(IDBDatabaseBackendLevelDB*, int64_t transactionId, PassRefPtr<IDBDatabaseCallbacks>, const Vector<int64_t>& objectStoreIds, IndexedDB::TransactionMode);
     virtual ~IDBTransactionBackendLevelDB();
@@ -59,9 +59,9 @@ public:
         virtual void perform() = 0;
     };
 
-    void run();
+    virtual void run() OVERRIDE;
     virtual IndexedDB::TransactionMode mode() const OVERRIDE FINAL { return m_mode; }
-    const HashSet<int64_t>& scope() const { return m_objectStoreIds; }
+    const HashSet<int64_t>& scope() const OVERRIDE { return m_objectStoreIds; }
     void scheduleTask(PassOwnPtr<Operation> task, PassOwnPtr<Operation> abortTask = nullptr) { scheduleTask(IDBDatabaseBackendInterface::NormalTask, task, abortTask); }
     void scheduleTask(IDBDatabaseBackendInterface::TaskType, PassOwnPtr<Operation>, PassOwnPtr<Operation> abortTask = nullptr);
     void registerOpenCursor(IDBCursorBackendLevelDB*);
index 3b79801..4bd87aa 100644 (file)
                51E3F9D60DA05E1D00250911 /* JSStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51E3F9D40DA05E1D00250911 /* JSStorage.cpp */; };
                51E4143416A6596300C633C7 /* ResourceHandleTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E4143216A6595100C633C7 /* ResourceHandleTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
                51E6821016387302003BBF3C /* LoaderStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E6820F16387302003BBF3C /* LoaderStrategy.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               51EAC5671815ED3E004F1BA4 /* IDBTransactionCoordinator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EAC5651815ED3E004F1BA4 /* IDBTransactionCoordinator.cpp */; };
+               51EAC5681815ED3E004F1BA4 /* IDBTransactionCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EAC5661815ED3E004F1BA4 /* IDBTransactionCoordinator.h */; settings = {ATTRIBUTES = (Private, ); }; };
                51EC92650CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EC925D0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp */; };
                51F6E0A31811D2520058A00A /* IDBTransactionBackendInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F6E08F1811D2520058A00A /* IDBTransactionBackendInterface.h */; settings = {ATTRIBUTES = (Private, ); }; };
                51FA2D78152132B300C1BA0B /* DOMWindowExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 517FBA18151AA71B00B57959 /* DOMWindowExtension.h */; settings = {ATTRIBUTES = (Private, ); }; };
                51E3F9D50DA05E1D00250911 /* JSStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSStorage.h; sourceTree = "<group>"; };
                51E4143216A6595100C633C7 /* ResourceHandleTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceHandleTypes.h; sourceTree = "<group>"; };
                51E6820F16387302003BBF3C /* LoaderStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoaderStrategy.h; sourceTree = "<group>"; };
+               51EAC5651815ED3E004F1BA4 /* IDBTransactionCoordinator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBTransactionCoordinator.cpp; sourceTree = "<group>"; };
+               51EAC5661815ED3E004F1BA4 /* IDBTransactionCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBTransactionCoordinator.h; sourceTree = "<group>"; };
                51EC925D0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLStatementErrorCallback.cpp; sourceTree = "<group>"; };
                51F6A3D50663BF04004D2919 /* HTMLCanvasElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLCanvasElement.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                51F6A3D60663BF04004D2919 /* HTMLCanvasElement.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = HTMLCanvasElement.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                                51D719A5181106E00016DC51 /* IDBTransaction.h */,
                                51D719A6181106E00016DC51 /* IDBTransaction.idl */,
                                51F6E08F1811D2520058A00A /* IDBTransactionBackendInterface.h */,
+                               51EAC5651815ED3E004F1BA4 /* IDBTransactionCoordinator.cpp */,
+                               51EAC5661815ED3E004F1BA4 /* IDBTransactionCoordinator.h */,
                                51D719AB181106E00016DC51 /* IDBVersionChangeEvent.cpp */,
                                51D719AC181106E00016DC51 /* IDBVersionChangeEvent.h */,
                                51D719AD181106E00016DC51 /* IDBVersionChangeEvent.idl */,
                                2E2D99CE10E2BBDA00496337 /* JSBlob.h in Headers */,
                                1449E24C107D4A8400B5793F /* JSCallbackData.h in Headers */,
                                65DF323A09D1DE65000BE325 /* JSCanvasGradient.h in Headers */,
+                               51EAC5681815ED3E004F1BA4 /* IDBTransactionCoordinator.h in Headers */,
                                65DF323C09D1DE65000BE325 /* JSCanvasPattern.h in Headers */,
                                65DF323C09D1DE65001BE325 /* JSCanvasProxy.h in Headers */,
                                E4D58EB517B4DBDC00CBDCA8 /* StyleResolveForDocument.h in Headers */,
                                1AE82FEC0CAB07EE002237AE /* JSSQLResultSet.cpp in Sources */,
                                1AFE11990CBFFCC4003017FA /* JSSQLResultSetRowList.cpp in Sources */,
                                51DCE8020CAC9F1C00488358 /* JSSQLResultSetRowListCustom.cpp in Sources */,
+                               51EAC5671815ED3E004F1BA4 /* IDBTransactionCoordinator.cpp in Sources */,
                                B59DD6A611902A62007E9684 /* JSSQLStatementCallback.cpp in Sources */,
                                B59DD6AA11902A71007E9684 /* JSSQLStatementErrorCallback.cpp in Sources */,
                                514C76380CE9225E007EF3CD /* JSSQLTransaction.cpp in Sources */,