Title: [140219] trunk/Source
Revision
140219
Author
alecfl...@chromium.org
Date
2013-01-18 16:43:58 -0800 (Fri, 18 Jan 2013)

Log Message

IndexedDB: Switch to new createTransaction call
https://bugs.webkit.org/show_bug.cgi?id=107311

Reviewed by Tony Chang.

Source/WebCore:

Convert frontend callers to use the new backend createTransaction
call which is the final divorce between the frontend and backend
transaction objects. This allows an asynchronous call in Chromium
and allows the front and backend to have their own lifecycle,
allowing the backend to be cleaned up as soon as a transaction is complete,
rather than waiting for the JS object to get cleaned up.

No new tests, this is a refactor covered by existing tests.

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::commit):
(WebCore::IDBDatabaseBackendImpl::abort):
(WebCore::IDBDatabaseBackendImpl::createTransaction):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
(WebCore::IDBDatabaseCallbacksImpl::onAbort):
(WebCore::IDBDatabaseCallbacksImpl::onComplete):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::setActive):
(WebCore::IDBTransaction::abort):
* Modules/indexeddb/IDBTransaction.h:
(WebCore):
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::create):
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::setCallbacks):

Source/WebKit/chromium:

* public/WebIDBTransaction.h:

Remove an old method that nobody calls.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (140218 => 140219)


--- trunk/Source/WebCore/ChangeLog	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebCore/ChangeLog	2013-01-19 00:43:58 UTC (rev 140219)
@@ -1,3 +1,48 @@
+2013-01-18  Alec Flett  <alecfl...@chromium.org>
+
+        IndexedDB: Switch to new createTransaction call
+        https://bugs.webkit.org/show_bug.cgi?id=107311
+
+        Reviewed by Tony Chang.
+
+        Convert frontend callers to use the new backend createTransaction
+        call which is the final divorce between the frontend and backend
+        transaction objects. This allows an asynchronous call in Chromium
+        and allows the front and backend to have their own lifecycle,
+        allowing the backend to be cleaned up as soon as a transaction is complete,
+        rather than waiting for the JS object to get cleaned up.
+
+        No new tests, this is a refactor covered by existing tests.
+
+        * Modules/indexeddb/IDBDatabase.cpp:
+        (WebCore::IDBDatabase::transaction):
+        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+        (WebCore::IDBDatabaseBackendImpl::commit):
+        (WebCore::IDBDatabaseBackendImpl::abort):
+        (WebCore::IDBDatabaseBackendImpl::createTransaction):
+        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
+        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
+        (WebCore::IDBDatabaseCallbacksImpl::onAbort):
+        (WebCore::IDBDatabaseCallbacksImpl::onComplete):
+        * Modules/indexeddb/IDBOpenDBRequest.cpp:
+        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
+        * Modules/indexeddb/IDBTransaction.cpp:
+        (WebCore::IDBTransaction::create):
+        (WebCore::IDBTransaction::IDBTransaction):
+        (WebCore::IDBTransaction::setActive):
+        (WebCore::IDBTransaction::abort):
+        * Modules/indexeddb/IDBTransaction.h:
+        (WebCore):
+        (IDBTransaction):
+        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
+        (WebCore::IDBTransactionBackendImpl::create):
+        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
+        (WebCore::IDBTransactionBackendImpl::abort):
+        (WebCore::IDBTransactionBackendImpl::commit):
+        * Modules/indexeddb/IDBTransactionBackendImpl.h:
+        (IDBTransactionBackendImpl):
+        (WebCore::IDBTransactionBackendImpl::setCallbacks):
+
 2013-01-18  Brady Eidson  <beid...@apple.com>
 
         Rework NetworkProcess resource load identifiers.

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp (140218 => 140219)


--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-01-19 00:43:58 UTC (rev 140219)
@@ -243,19 +243,10 @@
         objectStoreIds.append(objectStoreId);
     }
 
-    // We need to create a new transaction synchronously. Locks are acquired asynchronously. Operations
-    // can be queued against the transaction at any point. They will start executing as soon as the
-    // appropriate locks have been acquired.
-    // Also note that each backend object corresponds to exactly one IDBTransaction object.
     int64_t transactionId = nextTransactionId();
-    RefPtr<IDBTransactionBackendInterface> transactionBackend = m_backend->createTransaction(transactionId, objectStoreIds, mode);
-    if (!transactionBackend) {
-        ASSERT(ec);
-        return 0;
-    }
+    m_backend->createTransaction(transactionId, m_databaseCallbacks, objectStoreIds, mode);
 
-    RefPtr<IDBTransaction> transaction = IDBTransaction::create(context, transactionId, transactionBackend, scope, mode, this);
-    transactionBackend->setCallbacks(transaction.get());
+    RefPtr<IDBTransaction> transaction = IDBTransaction::create(context, transactionId, scope, mode, this);
     return transaction.release();
 }
 

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp (140218 => 140219)


--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-01-19 00:43:58 UTC (rev 140219)
@@ -660,14 +660,16 @@
 
 void IDBDatabaseBackendImpl::commit(int64_t transactionId)
 {
-    ASSERT(m_transactions.contains(transactionId));
-    m_transactions.get(transactionId)->commit();
+    // The frontend suggests that we commit, but we may have previously initiated an abort, and so have disposed of the transaction. onAbort has already been dispatched to the frontend, so it will find out about that asynchronously.
+    if (m_transactions.contains(transactionId))
+        m_transactions.get(transactionId)->commit();
 }
 
 void IDBDatabaseBackendImpl::abort(int64_t transactionId)
 {
-    ASSERT(m_transactions.contains(transactionId));
-    m_transactions.get(transactionId)->abort();
+    // If the transaction is unknown, then it has already been aborted by the backend before this call so it is safe to ignore it.
+    if (m_transactions.contains(transactionId))
+        m_transactions.get(transactionId)->abort();
 }
 
 void IDBDatabaseBackendImpl::get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, bool keyOnly, PassRefPtr<IDBCallbacks> callbacks)
@@ -1157,15 +1159,15 @@
 // FIXME: Remove this method in https://bugs.webkit.org/show_bug.cgi?id=103923.
 PassRefPtr<IDBTransactionBackendInterface> IDBDatabaseBackendImpl::createTransaction(int64_t transactionId, const Vector<int64_t>& objectStoreIds, IDBTransaction::Mode mode)
 {
-    RefPtr<IDBTransactionBackendImpl> transaction = IDBTransactionBackendImpl::create(transactionId, objectStoreIds, mode, this);
-    ASSERT(!m_transactions.contains(transactionId));
-    m_transactions.add(transactionId, transaction.get());
-    return transaction.release();
+    ASSERT_NOT_REACHED();
+    return 0;
 }
 
 void IDBDatabaseBackendImpl::createTransaction(int64_t transactionId, PassRefPtr<IDBDatabaseCallbacks> callbacks, const Vector<int64_t>& objectStoreIds, unsigned short mode)
 {
-    ASSERT_NOT_REACHED();
+    RefPtr<IDBTransactionBackendImpl> transaction = IDBTransactionBackendImpl::create(transactionId, callbacks, objectStoreIds, static_cast<IDBTransaction::Mode>(mode), this);
+    ASSERT(!m_transactions.contains(transactionId));
+    m_transactions.add(transactionId, transaction.get());
 }
 
 void IDBDatabaseBackendImpl::openConnection(PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<IDBDatabaseCallbacks> prpDatabaseCallbacks, int64_t transactionId, int64_t version)
@@ -1255,8 +1257,8 @@
     }
 
     Vector<int64_t> objectStoreIds;
-    RefPtr<IDBTransactionBackendInterface> transactionInterface = createTransaction(transactionId, objectStoreIds, IDBTransaction::VERSION_CHANGE);
-    RefPtr<IDBTransactionBackendImpl> transaction = IDBTransactionBackendImpl::from(transactionInterface.get());
+    createTransaction(transactionId, databaseCallbacks, objectStoreIds, IDBTransaction::VERSION_CHANGE);
+    RefPtr<IDBTransactionBackendImpl> transaction = m_transactions.get(transactionId);
 
     if (!transaction->scheduleTask(VersionChangeOperation::create(this, transactionId, requestedVersion, callbacks, databaseCallbacks), VersionChangeAbortOperation::create(this, m_metadata.version, m_metadata.intVersion))) {
         ASSERT_NOT_REACHED();

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp (140218 => 140219)


--- trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp	2013-01-19 00:43:58 UTC (rev 140219)
@@ -69,13 +69,12 @@
     enqueueEvent(IDBUpgradeNeededEvent::create(oldVersion, m_version, eventNames().blockedEvent));
 }
 
-void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBTransactionBackendInterface> prpTransactionBackend, PassRefPtr<IDBDatabaseBackendInterface> prpDatabaseBackend)
+void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBTransactionBackendInterface>, PassRefPtr<IDBDatabaseBackendInterface> prpDatabaseBackend)
 {
     IDB_TRACE("IDBOpenDBRequest::onUpgradeNeeded()");
     if (m_contextStopped || !scriptExecutionContext()) {
-        RefPtr<IDBTransactionBackendInterface> transaction = prpTransactionBackend;
-        transaction->abort();
         RefPtr<IDBDatabaseBackendInterface> db = prpDatabaseBackend;
+        db->abort(m_transactionId);
         db->close(m_databaseCallbacks);
         return;
     }
@@ -89,7 +88,6 @@
     // were passed in during the (asynchronous) onUpgradeNeeded call from the backend. http://wkbug.com/103920
     IDBDatabaseMetadata metadata = databaseBackend->metadata();
 
-    RefPtr<IDBTransactionBackendInterface> transactionBackend = prpTransactionBackend;
     RefPtr<IDBDatabase> idbDatabase = IDBDatabase::create(scriptExecutionContext(), databaseBackend, m_databaseCallbacks);
     idbDatabase->setMetadata(metadata);
     m_databaseCallbacks->connect(idbDatabase.get());
@@ -101,9 +99,7 @@
     }
     metadata.intVersion = oldVersion;
 
-    RefPtr<IDBTransaction> frontend = IDBTransaction::create(scriptExecutionContext(), m_transactionId, transactionBackend, idbDatabase.get(), this, metadata);
-    transactionBackend->setCallbacks(frontend.get());
-    m_transaction = frontend;
+    m_transaction = IDBTransaction::create(scriptExecutionContext(), m_transactionId, idbDatabase.get(), this, metadata);
     m_result = IDBAny::create(idbDatabase.release());
 
     if (m_version == IDBDatabaseMetadata::NoIntVersion)

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp (140218 => 140219)


--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2013-01-19 00:43:58 UTC (rev 140219)
@@ -43,17 +43,17 @@
 
 namespace WebCore {
 
-PassRefPtr<IDBTransaction> IDBTransaction::create(ScriptExecutionContext* context, int64_t id, PassRefPtr<IDBTransactionBackendInterface> backend, const Vector<String>& objectStoreNames, IDBTransaction::Mode mode, IDBDatabase* db)
+PassRefPtr<IDBTransaction> IDBTransaction::create(ScriptExecutionContext* context, int64_t id, const Vector<String>& objectStoreNames, IDBTransaction::Mode mode, IDBDatabase* db)
 {
     IDBOpenDBRequest* openDBRequest = 0;
-    RefPtr<IDBTransaction> transaction(adoptRef(new IDBTransaction(context, id, backend, objectStoreNames, mode, db, openDBRequest, IDBDatabaseMetadata())));
+    RefPtr<IDBTransaction> transaction(adoptRef(new IDBTransaction(context, id, objectStoreNames, mode, db, openDBRequest, IDBDatabaseMetadata())));
     transaction->suspendIfNeeded();
     return transaction.release();
 }
 
-PassRefPtr<IDBTransaction> IDBTransaction::create(ScriptExecutionContext* context, int64_t id, PassRefPtr<IDBTransactionBackendInterface> backend, IDBDatabase* db, IDBOpenDBRequest* openDBRequest, const IDBDatabaseMetadata& previousMetadata)
+PassRefPtr<IDBTransaction> IDBTransaction::create(ScriptExecutionContext* context, int64_t id, IDBDatabase* db, IDBOpenDBRequest* openDBRequest, const IDBDatabaseMetadata& previousMetadata)
 {
-    RefPtr<IDBTransaction> transaction(adoptRef(new IDBTransaction(context, id, backend, Vector<String>(), VERSION_CHANGE, db, openDBRequest, previousMetadata)));
+    RefPtr<IDBTransaction> transaction(adoptRef(new IDBTransaction(context, id, Vector<String>(), VERSION_CHANGE, db, openDBRequest, previousMetadata)));
     transaction->suspendIfNeeded();
     return transaction.release();
 }
@@ -89,9 +89,8 @@
 }
 
 
-IDBTransaction::IDBTransaction(ScriptExecutionContext* context, int64_t id, PassRefPtr<IDBTransactionBackendInterface> backend, const Vector<String>& objectStoreNames, IDBTransaction::Mode mode, IDBDatabase* db, IDBOpenDBRequest* openDBRequest, const IDBDatabaseMetadata& previousMetadata)
+IDBTransaction::IDBTransaction(ScriptExecutionContext* context, int64_t id, const Vector<String>& objectStoreNames, IDBTransaction::Mode mode, IDBDatabase* db, IDBOpenDBRequest* openDBRequest, const IDBDatabaseMetadata& previousMetadata)
     : ActiveDOMObject(context, this)
-    , m_backend(backend)
     , m_id(id)
     , m_database(db)
     , m_objectStoreNames(objectStoreNames)
@@ -102,8 +101,6 @@
     , m_contextStopped(false)
     , m_previousMetadata(previousMetadata)
 {
-    ASSERT(m_backend);
-
     if (mode == VERSION_CHANGE) {
         // Not active until the callback.
         m_state = Inactive;
@@ -210,7 +207,7 @@
     m_state = active ? Active : Inactive;
 
     if (!active && m_requestList.isEmpty())
-        m_backend->commit();
+        backendDB()->commit(m_id);
 }
 
 void IDBTransaction::abort(ExceptionCode& ec)
@@ -229,8 +226,7 @@
     }
 
     RefPtr<IDBTransaction> selfRef = this;
-    if (m_backend)
-        m_backend->abort();
+    backendDB()->abort(m_id);
 }
 
 IDBTransaction::OpenCursorNotifier::OpenCursorNotifier(PassRefPtr<IDBTransaction> transaction, IDBCursor* cursor)

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h (140218 => 140219)


--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h	2013-01-19 00:43:58 UTC (rev 140219)
@@ -46,7 +46,6 @@
 class IDBDatabase;
 class IDBObjectStore;
 class IDBOpenDBRequest;
-class IDBTransactionBackendInterface;
 class IDBDatabaseBackendInterface;
 struct IDBObjectStoreMetadata;
 
@@ -58,8 +57,8 @@
         VERSION_CHANGE = 2
     };
 
-    static PassRefPtr<IDBTransaction> create(ScriptExecutionContext*, int64_t, PassRefPtr<IDBTransactionBackendInterface>, const Vector<String>& objectStoreNames, Mode, IDBDatabase*);
-    static PassRefPtr<IDBTransaction> create(ScriptExecutionContext*, int64_t, PassRefPtr<IDBTransactionBackendInterface>, IDBDatabase*, IDBOpenDBRequest*, const IDBDatabaseMetadata& previousMetadata);
+    static PassRefPtr<IDBTransaction> create(ScriptExecutionContext*, int64_t, const Vector<String>& objectStoreNames, Mode, IDBDatabase*);
+    static PassRefPtr<IDBTransaction> create(ScriptExecutionContext*, int64_t, IDBDatabase*, IDBOpenDBRequest*, const IDBDatabaseMetadata& previousMetadata);
     virtual ~IDBTransaction();
 
     static const AtomicString& modeReadOnly();
@@ -128,7 +127,7 @@
     using RefCounted<IDBTransactionCallbacks>::deref;
 
 private:
-    IDBTransaction(ScriptExecutionContext*, int64_t, PassRefPtr<IDBTransactionBackendInterface>, const Vector<String>&, Mode, IDBDatabase*, IDBOpenDBRequest*, const IDBDatabaseMetadata&);
+    IDBTransaction(ScriptExecutionContext*, int64_t, const Vector<String>&, Mode, IDBDatabase*, IDBOpenDBRequest*, const IDBDatabaseMetadata&);
 
     void enqueueEvent(PassRefPtr<Event>);
     void closeOpenCursors();
@@ -149,8 +148,6 @@
         Finished, // No more events will fire and no new requests may be filed.
     };
 
-    // FIXME: Remove references to the backend when the backend is fully flattened: https://bugs.webkit.org/show_bug.cgi?id=99774
-    RefPtr<IDBTransactionBackendInterface> m_backend;
     int64_t m_id;
     RefPtr<IDBDatabase> m_database;
     const Vector<String> m_objectStoreNames;

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp (140218 => 140219)


--- trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp	2013-01-19 00:43:58 UTC (rev 140219)
@@ -37,21 +37,22 @@
 
 namespace WebCore {
 
-PassRefPtr<IDBTransactionBackendImpl> IDBTransactionBackendImpl::create(int64_t id, const Vector<int64_t>& objectStoreIds, IDBTransaction::Mode mode, IDBDatabaseBackendImpl* database)
+PassRefPtr<IDBTransactionBackendImpl> IDBTransactionBackendImpl::create(int64_t id, PassRefPtr<IDBDatabaseCallbacks> callbacks, const Vector<int64_t>& objectStoreIds, IDBTransaction::Mode mode, IDBDatabaseBackendImpl* database)
 {
     HashSet<int64_t> objectStoreHashSet;
     for (size_t i = 0; i < objectStoreIds.size(); ++i)
         objectStoreHashSet.add(objectStoreIds[i]);
 
-    return adoptRef(new IDBTransactionBackendImpl(id, objectStoreHashSet, mode, database));
+    return adoptRef(new IDBTransactionBackendImpl(id, callbacks, objectStoreHashSet, mode, database));
 }
 
-IDBTransactionBackendImpl::IDBTransactionBackendImpl(int64_t id, const HashSet<int64_t>& objectStoreIds, IDBTransaction::Mode mode, IDBDatabaseBackendImpl* database)
+IDBTransactionBackendImpl::IDBTransactionBackendImpl(int64_t id, PassRefPtr<IDBDatabaseCallbacks> callbacks, const HashSet<int64_t>& objectStoreIds, IDBTransaction::Mode mode, IDBDatabaseBackendImpl* database)
     : m_id(id)
     , m_objectStoreIds(objectStoreIds)
     , m_mode(mode)
     , m_state(Unused)
     , m_commitPending(false)
+    , m_callbacks(callbacks)
     , m_database(database)
     , m_transaction(database->backingStore().get())
     , m_taskTimer(this, &IDBTransactionBackendImpl::taskTimerFired)
@@ -133,7 +134,7 @@
     m_database->transactionFinished(this);
 
     if (m_callbacks)
-        m_callbacks->onAbort(error);
+        m_callbacks->onAbort(m_id, error);
 
     m_database->transactionFinishedAndAbortFired(this);
 
@@ -219,10 +220,10 @@
     m_database->transactionFinished(this);
 
     if (committed) {
-        m_callbacks->onComplete();
+        m_callbacks->onComplete(m_id);
         m_database->transactionFinishedAndCompleteFired(this);
     } else {
-        m_callbacks->onAbort(IDBDatabaseError::create(IDBDatabaseException::UnknownError, "Internal error committing transaction."));
+        m_callbacks->onAbort(m_id, IDBDatabaseError::create(IDBDatabaseException::UnknownError, "Internal error committing transaction."));
         m_database->transactionFinishedAndAbortFired(this);
     }
 

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h (140218 => 140219)


--- trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h	2013-01-19 00:43:58 UTC (rev 140219)
@@ -44,7 +44,7 @@
 
 class IDBTransactionBackendImpl : public IDBTransactionBackendInterface {
 public:
-    static PassRefPtr<IDBTransactionBackendImpl> create(int64_t transactionId, const Vector<int64_t>&, IDBTransaction::Mode, IDBDatabaseBackendImpl*);
+    static PassRefPtr<IDBTransactionBackendImpl> create(int64_t transactionId, PassRefPtr<IDBDatabaseCallbacks>, const Vector<int64_t>&, IDBTransaction::Mode, IDBDatabaseBackendImpl*);
     static IDBTransactionBackendImpl* from(IDBTransactionBackendInterface* interface)
     {
         return static_cast<IDBTransactionBackendImpl*>(interface);
@@ -54,7 +54,7 @@
     // IDBTransactionBackendInterface
     virtual void abort();
     void commit();
-    virtual void setCallbacks(IDBTransactionCallbacks* callbacks) { m_callbacks = callbacks; }
+    virtual void setCallbacks(IDBTransactionCallbacks* callbacks) { ASSERT_NOT_REACHED(); }
 
     class Operation {
     public:
@@ -79,7 +79,7 @@
     IDBDatabaseBackendImpl* database() const { return m_database.get(); }
 
 private:
-    IDBTransactionBackendImpl(int64_t id, const HashSet<int64_t>& objectStoreIds, IDBTransaction::Mode, IDBDatabaseBackendImpl*);
+    IDBTransactionBackendImpl(int64_t id, PassRefPtr<IDBDatabaseCallbacks>, const HashSet<int64_t>& objectStoreIds, IDBTransaction::Mode, IDBDatabaseBackendImpl*);
 
     enum State {
         Unused, // Created, but no tasks yet.
@@ -102,7 +102,7 @@
 
     State m_state;
     bool m_commitPending;
-    RefPtr<IDBTransactionCallbacks> m_callbacks;
+    RefPtr<IDBDatabaseCallbacks> m_callbacks;
     RefPtr<IDBDatabaseBackendImpl> m_database;
 
     typedef Deque<OwnPtr<Operation> > TaskQueue;

Modified: trunk/Source/WebKit/chromium/ChangeLog (140218 => 140219)


--- trunk/Source/WebKit/chromium/ChangeLog	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-01-19 00:43:58 UTC (rev 140219)
@@ -1,3 +1,14 @@
+2013-01-18  Alec Flett  <alecfl...@chromium.org>
+
+        IndexedDB: Switch to new createTransaction call
+        https://bugs.webkit.org/show_bug.cgi?id=107311
+
+        Reviewed by Tony Chang.
+
+        * public/WebIDBTransaction.h:
+
+        Remove an old method that nobody calls.
+
 2013-01-18  Alpha Lam  <hc...@chromium.org>
 
         [chromium] Roll Chromium DEPS to 177676

Modified: trunk/Source/WebKit/chromium/public/WebIDBTransaction.h (140218 => 140219)


--- trunk/Source/WebKit/chromium/public/WebIDBTransaction.h	2013-01-19 00:41:44 UTC (rev 140218)
+++ trunk/Source/WebKit/chromium/public/WebIDBTransaction.h	2013-01-19 00:43:58 UTC (rev 140219)
@@ -47,7 +47,6 @@
 
     virtual void commit() { WEBKIT_ASSERT_NOT_REACHED(); }
     virtual void abort() { WEBKIT_ASSERT_NOT_REACHED(); }
-    virtual void didCompleteTaskEvents() { WEBKIT_ASSERT_NOT_REACHED(); }
     virtual void setCallbacks(WebIDBTransactionCallbacks*) { WEBKIT_ASSERT_NOT_REACHED(); }
 
     // FIXME: this is never called from WebCore. Find a cleaner solution.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to