Index: third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp |
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp |
index a185bada56400b81923430bf9060d55c968bcd7d..bc3ddd1bb2adda2ea5a89b34b9c736dc825e9319 100644 |
--- a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp |
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp |
@@ -34,12 +34,12 @@ |
#include "core/dom/ExecutionContext.h" |
#include "core/events/EventQueue.h" |
#include "modules/indexeddb/IDBAny.h" |
+#include "modules/indexeddb/IDBDatabaseProxy.h" |
#include "modules/indexeddb/IDBEventDispatcher.h" |
#include "modules/indexeddb/IDBIndex.h" |
#include "modules/indexeddb/IDBKeyPath.h" |
#include "modules/indexeddb/IDBTracing.h" |
#include "modules/indexeddb/IDBVersionChangeEvent.h" |
-#include "modules/indexeddb/WebIDBDatabaseCallbacksImpl.h" |
#include "platform/Histogram.h" |
#include "public/platform/modules/indexeddb/WebIDBKeyPath.h" |
#include "public/platform/modules/indexeddb/WebIDBTypes.h" |
@@ -47,7 +47,8 @@ |
#include <limits> |
#include <memory> |
-using blink::WebIDBDatabase; |
+using blink::IDBDatabaseProxy; |
+using indexed_db::mojom::blink::TransactionMode; |
namespace blink { |
@@ -67,26 +68,24 @@ const char IDBDatabase::transactionFinishedErrorMessage[] = "The transaction has |
const char IDBDatabase::transactionReadOnlyErrorMessage[] = "The transaction is read-only."; |
const char IDBDatabase::databaseClosedErrorMessage[] = "The database connection is closed."; |
-IDBDatabase* IDBDatabase::create(ExecutionContext* context, std::unique_ptr<WebIDBDatabase> database, IDBDatabaseCallbacks* callbacks) |
+IDBDatabase* IDBDatabase::create(ExecutionContext* context, std::unique_ptr<IDBDatabaseProxy> database) |
{ |
- IDBDatabase* idbDatabase = new IDBDatabase(context, std::move(database), callbacks); |
+ IDBDatabase* idbDatabase = new IDBDatabase(context, std::move(database)); |
idbDatabase->suspendIfNeeded(); |
return idbDatabase; |
} |
-IDBDatabase::IDBDatabase(ExecutionContext* context, std::unique_ptr<WebIDBDatabase> backend, IDBDatabaseCallbacks* callbacks) |
+IDBDatabase::IDBDatabase(ExecutionContext* context, std::unique_ptr<IDBDatabaseProxy> backend) |
: ActiveScriptWrappable(this) |
, ActiveDOMObject(context) |
, m_backend(std::move(backend)) |
- , m_databaseCallbacks(callbacks) |
{ |
- m_databaseCallbacks->connect(this); |
} |
IDBDatabase::~IDBDatabase() |
{ |
if (!m_closePending && m_backend) |
- m_backend->close(); |
+ m_backend->Close(); |
} |
DEFINE_TRACE(IDBDatabase) |
@@ -94,7 +93,6 @@ DEFINE_TRACE(IDBDatabase) |
visitor->trace(m_versionChangeTransaction); |
visitor->trace(m_transactions); |
visitor->trace(m_enqueuedEvents); |
- visitor->trace(m_databaseCallbacks); |
EventTargetWithInlineData::trace(visitor); |
ActiveDOMObject::trace(visitor); |
} |
@@ -109,14 +107,14 @@ int64_t IDBDatabase::nextTransactionId() |
void IDBDatabase::indexCreated(int64_t objectStoreId, const IDBIndexMetadata& metadata) |
{ |
- IDBDatabaseMetadata::ObjectStoreMap::iterator it = m_metadata.objectStores.find(objectStoreId); |
+ auto it = m_metadata.objectStores.find(objectStoreId); |
ASSERT_WITH_SECURITY_IMPLICATION(it != m_metadata.objectStores.end()); |
it->value.indexes.set(metadata.id, metadata); |
} |
void IDBDatabase::indexDeleted(int64_t objectStoreId, int64_t indexId) |
{ |
- IDBDatabaseMetadata::ObjectStoreMap::iterator it = m_metadata.objectStores.find(objectStoreId); |
+ auto it = m_metadata.objectStores.find(objectStoreId); |
ASSERT_WITH_SECURITY_IMPLICATION(it != m_metadata.objectStores.end()); |
it->value.indexes.remove(indexId); |
} |
@@ -216,9 +214,9 @@ IDBObjectStore* IDBDatabase::createObjectStore(const String& name, const IDBKeyP |
} |
int64_t objectStoreId = m_metadata.maxObjectStoreId + 1; |
- m_backend->createObjectStore(m_versionChangeTransaction->id(), objectStoreId, name, keyPath, autoIncrement); |
+ m_backend->CreateObjectStore(m_versionChangeTransaction->id(), objectStoreId, name, keyPath, autoIncrement); |
- IDBObjectStoreMetadata metadata(name, objectStoreId, keyPath, autoIncrement, WebIDBDatabase::minimumIndexId); |
+ IDBObjectStoreMetadata metadata(name, objectStoreId, keyPath, autoIncrement, indexed_db::mojom::blink::Database::minimumIndexId); |
IDBObjectStore* objectStore = IDBObjectStore::create(metadata, m_versionChangeTransaction.get()); |
m_metadata.objectStores.set(metadata.id, metadata); |
++m_metadata.maxObjectStoreId; |
@@ -255,7 +253,7 @@ void IDBDatabase::deleteObjectStore(const String& name, ExceptionState& exceptio |
return; |
} |
- m_backend->deleteObjectStore(m_versionChangeTransaction->id(), objectStoreId); |
+ m_backend->DeleteObjectStore(m_versionChangeTransaction->id(), objectStoreId); |
m_versionChangeTransaction->objectStoreDeleted(name); |
m_metadata.objectStores.remove(objectStoreId); |
} |
@@ -284,8 +282,8 @@ IDBTransaction* IDBDatabase::transaction(ScriptState* scriptState, const StringO |
return nullptr; |
} |
- WebIDBTransactionMode mode = IDBTransaction::stringToMode(modeString); |
- if (mode != WebIDBTransactionModeReadOnly && mode != WebIDBTransactionModeReadWrite) { |
+ TransactionMode mode = IDBTransaction::stringToMode(modeString); |
+ if (mode != TransactionMode::ReadOnly && mode != TransactionMode::ReadWrite) { |
exceptionState.throwTypeError("The mode provided ('" + modeString + "') is not one of 'readonly' or 'readwrite'."); |
return nullptr; |
} |
@@ -319,7 +317,7 @@ IDBTransaction* IDBDatabase::transaction(ScriptState* scriptState, const StringO |
} |
int64_t transactionId = nextTransactionId(); |
- m_backend->createTransaction(transactionId, WebIDBDatabaseCallbacksImpl::create(m_databaseCallbacks).release(), objectStoreIds, mode); |
+ m_backend->CreateTransaction(transactionId, std::move(objectStoreIds), mode); |
return IDBTransaction::create(scriptState, transactionId, scope, mode, this); |
} |
@@ -350,7 +348,7 @@ void IDBDatabase::closeConnection() |
ASSERT(m_transactions.isEmpty()); |
if (m_backend) { |
- m_backend->close(); |
+ m_backend->Close(); |
m_backend.reset(); |
} |
@@ -371,6 +369,8 @@ void IDBDatabase::closeConnection() |
void IDBDatabase::onVersionChange(int64_t oldVersion, int64_t newVersion) |
{ |
IDB_TRACE("IDBDatabase::onVersionChange"); |
+ // TODO(cmumford): Not currently called - fix this. |
+ NOTREACHED(); |
if (m_contextStopped || !getExecutionContext()) |
return; |
@@ -378,7 +378,7 @@ void IDBDatabase::onVersionChange(int64_t oldVersion, int64_t newVersion) |
// If we're pending, that means there's a busy transaction. We won't |
// fire 'versionchange' but since we're not closing immediately the |
// back-end should still send out 'blocked'. |
- m_backend->versionChangeIgnored(); |
+ m_backend->VersionChangeIgnored(); |
return; |
} |
@@ -409,7 +409,7 @@ DispatchEventResult IDBDatabase::dispatchEventInternal(Event* event) |
DispatchEventResult dispatchResult = EventTarget::dispatchEventInternal(event); |
if (event->type() == EventTypeNames::versionchange && !m_closePending && m_backend) |
- m_backend->versionChangeIgnored(); |
+ m_backend->VersionChangeIgnored(); |
return dispatchResult; |
} |
@@ -439,7 +439,7 @@ void IDBDatabase::stop() |
// normal close() since that may wait on transactions which require a |
// round trip to the back-end to abort. |
if (m_backend) { |
- m_backend->close(); |
+ m_backend->Close(); |
m_backend.reset(); |
} |
} |