Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(958)

Unified Diff: third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp

Issue 2320213004: Port IndexedDB open() and database callbacks to Mojo. (Closed)
Patch Set: Make DatabaseClient an associated interface. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp
index 9be4f6b841f3de036df3f91fb97889ee27c4c58d..a2cbe84fff0897f3b38d58986002fe073ce6bcfc 100644
--- a/third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBOpenDBRequest.cpp
@@ -30,7 +30,6 @@
#include "core/dom/ExceptionCode.h"
#include "core/dom/ExecutionContext.h"
#include "modules/indexeddb/IDBDatabase.h"
-#include "modules/indexeddb/IDBDatabaseCallbacks.h"
#include "modules/indexeddb/IDBTracing.h"
#include "modules/indexeddb/IDBVersionChangeEvent.h"
#include <memory>
@@ -39,20 +38,19 @@ using blink::WebIDBDatabase;
namespace blink {
-IDBOpenDBRequest* IDBOpenDBRequest::create(ScriptState* scriptState, IDBDatabaseCallbacks* callbacks, int64_t transactionId, int64_t version)
+IDBOpenDBRequest* IDBOpenDBRequest::create(ScriptState* scriptState, int64_t transactionId, int64_t version)
{
- IDBOpenDBRequest* request = new IDBOpenDBRequest(scriptState, callbacks, transactionId, version);
+ IDBOpenDBRequest* request = new IDBOpenDBRequest(scriptState, transactionId, version);
request->suspendIfNeeded();
return request;
}
-IDBOpenDBRequest::IDBOpenDBRequest(ScriptState* scriptState, IDBDatabaseCallbacks* callbacks, int64_t transactionId, int64_t version)
+IDBOpenDBRequest::IDBOpenDBRequest(ScriptState* scriptState, int64_t transactionId, int64_t version)
: IDBRequest(scriptState, IDBAny::createNull(), nullptr)
- , m_databaseCallbacks(callbacks)
, m_transactionId(transactionId)
, m_version(version)
{
- ASSERT(!resultAsAny());
+ DCHECK(!resultAsAny());
}
IDBOpenDBRequest::~IDBOpenDBRequest()
@@ -61,10 +59,15 @@ IDBOpenDBRequest::~IDBOpenDBRequest()
DEFINE_TRACE(IDBOpenDBRequest)
{
- visitor->trace(m_databaseCallbacks);
IDBRequest::trace(visitor);
}
+void IDBOpenDBRequest::setClientRequest(indexed_db::mojom::blink::DatabaseClientAssociatedRequest clientRequest)
+{
+ DCHECK(!m_clientRequest.is_pending());
+ m_clientRequest = std::move(clientRequest);
+}
+
const AtomicString& IDBOpenDBRequest::interfaceName() const
{
return EventTargetNames::IDBOpenDBRequest;
@@ -91,9 +94,9 @@ void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, std::unique_ptr<WebID
if (!shouldEnqueueEvent())
return;
- ASSERT(m_databaseCallbacks);
+ DCHECK(m_clientRequest.is_pending());
- IDBDatabase* idbDatabase = IDBDatabase::create(getExecutionContext(), std::move(backend), m_databaseCallbacks.release());
+ IDBDatabase* idbDatabase = IDBDatabase::create(getExecutionContext(), std::move(backend), std::move(m_clientRequest));
idbDatabase->setMetadata(metadata);
if (oldVersion == IDBDatabaseMetadata::NoVersion) {
@@ -126,14 +129,14 @@ void IDBOpenDBRequest::onSuccess(std::unique_ptr<WebIDBDatabase> backend, const
IDBDatabase* idbDatabase = nullptr;
if (resultAsAny()) {
// Previous onUpgradeNeeded call delivered the backend.
- ASSERT(!backend.get());
+ DCHECK(!backend.get());
idbDatabase = resultAsAny()->idbDatabase();
- ASSERT(idbDatabase);
- ASSERT(!m_databaseCallbacks);
+ DCHECK(idbDatabase);
+ DCHECK(!m_clientRequest.is_pending());
} else {
- ASSERT(backend.get());
- ASSERT(m_databaseCallbacks);
- idbDatabase = IDBDatabase::create(getExecutionContext(), std::move(backend), m_databaseCallbacks.release());
+ DCHECK(backend.get());
+ DCHECK(m_clientRequest.is_pending());
+ idbDatabase = IDBDatabase::create(getExecutionContext(), std::move(backend), std::move(m_clientRequest));
setResult(IDBAny::create(idbDatabase));
}
idbDatabase->setMetadata(metadata);
@@ -157,7 +160,7 @@ bool IDBOpenDBRequest::shouldEnqueueEvent() const
{
if (m_contextStopped || !getExecutionContext())
return false;
- ASSERT(m_readyState == PENDING || m_readyState == DONE);
+ DCHECK(m_readyState == PENDING || m_readyState == DONE);
if (m_requestAborted)
return false;
return true;

Powered by Google App Engine
This is Rietveld 408576698