#include "config.h"
#include "modules/indexeddb/IDBOpenDBRequest.h"
-#include "bindings/v8/Nullable.h"
+#include "bindings/core/v8/Nullable.h"
#include "core/dom/ExceptionCode.h"
#include "core/dom/ExecutionContext.h"
#include "modules/indexeddb/IDBDatabase.h"
#include "modules/indexeddb/IDBDatabaseCallbacks.h"
-#include "modules/indexeddb/IDBPendingTransactionMonitor.h"
#include "modules/indexeddb/IDBTracing.h"
#include "modules/indexeddb/IDBVersionChangeEvent.h"
using blink::WebIDBDatabase;
-namespace WebCore {
+namespace blink {
-PassRefPtrWillBeRawPtr<IDBOpenDBRequest> IDBOpenDBRequest::create(ExecutionContext* context, PassRefPtrWillBeRawPtr<IDBDatabaseCallbacks> callbacks, int64_t transactionId, int64_t version)
+IDBOpenDBRequest* IDBOpenDBRequest::create(ScriptState* scriptState, IDBDatabaseCallbacks* callbacks, int64_t transactionId, int64_t version)
{
- RefPtrWillBeRawPtr<IDBOpenDBRequest> request(adoptRefWillBeRefCountedGarbageCollected(new IDBOpenDBRequest(context, callbacks, transactionId, version)));
+ IDBOpenDBRequest* request = new IDBOpenDBRequest(scriptState, callbacks, transactionId, version);
request->suspendIfNeeded();
- return request.release();
+ return request;
}
-IDBOpenDBRequest::IDBOpenDBRequest(ExecutionContext* context, PassRefPtrWillBeRawPtr<IDBDatabaseCallbacks> callbacks, int64_t transactionId, int64_t version)
- : IDBRequest(context, IDBAny::createNull(), 0)
+IDBOpenDBRequest::IDBOpenDBRequest(ScriptState* scriptState, IDBDatabaseCallbacks* callbacks, int64_t transactionId, int64_t version)
+ : IDBRequest(scriptState, IDBAny::createNull(), 0)
, m_databaseCallbacks(callbacks)
, m_transactionId(transactionId)
, m_version(version)
{
ASSERT(!resultAsAny());
- ScriptWrappable::init(this);
}
IDBOpenDBRequest::~IDBOpenDBRequest()
enqueueEvent(IDBVersionChangeEvent::create(EventTypeNames::blocked, oldVersion, newVersionNullable));
}
-void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassOwnPtr<WebIDBDatabase> backend, const IDBDatabaseMetadata& metadata, blink::WebIDBDataLoss dataLoss, String dataLossMessage)
+void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassOwnPtr<WebIDBDatabase> backend, const IDBDatabaseMetadata& metadata, WebIDBDataLoss dataLoss, String dataLossMessage)
{
IDB_TRACE("IDBOpenDBRequest::onUpgradeNeeded()");
if (m_contextStopped || !executionContext()) {
ASSERT(m_databaseCallbacks);
- RefPtrWillBeRawPtr<IDBDatabase> idbDatabase = IDBDatabase::create(executionContext(), backend, m_databaseCallbacks.release());
+ IDBDatabase* idbDatabase = IDBDatabase::create(executionContext(), backend, m_databaseCallbacks.release());
idbDatabase->setMetadata(metadata);
if (oldVersion == IDBDatabaseMetadata::NoIntVersion) {
IDBDatabaseMetadata oldMetadata(metadata);
oldMetadata.intVersion = oldVersion;
- m_transaction = IDBTransaction::create(executionContext(), m_transactionId, idbDatabase.get(), this, oldMetadata);
- setResult(IDBAny::create(idbDatabase.release()));
+ m_transaction = IDBTransaction::create(scriptState(), m_transactionId, idbDatabase, this, oldMetadata);
+ setResult(IDBAny::create(idbDatabase));
if (m_version == IDBDatabaseMetadata::NoIntVersion)
m_version = 1;
if (!shouldEnqueueEvent())
return;
- RefPtrWillBeRawPtr<IDBDatabase> idbDatabase;
+ IDBDatabase* idbDatabase = 0;
if (resultAsAny()) {
// Previous onUpgradeNeeded call delivered the backend.
ASSERT(!backend.get());
ASSERT(backend.get());
ASSERT(m_databaseCallbacks);
idbDatabase = IDBDatabase::create(executionContext(), backend, m_databaseCallbacks.release());
- setResult(IDBAny::create(idbDatabase.get()));
+ setResult(IDBAny::create(idbDatabase));
}
idbDatabase->setMetadata(metadata);
enqueueEvent(Event::create(EventTypeNames::success));
// an "error" event should be fired instead.
if (event->type() == EventTypeNames::success && resultAsAny()->type() == IDBAny::IDBDatabaseType && resultAsAny()->idbDatabase()->isClosePending()) {
dequeueEvent(event.get());
- setResult(nullptr);
+ setResult(0);
onError(DOMError::create(AbortError, "The connection was closed."));
return false;
}
return IDBRequest::dispatchEvent(event);
}
-} // namespace WebCore
+} // namespace blink