summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/storage/IDBDatabase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/storage/IDBDatabase.cpp')
-rw-r--r--Source/WebCore/storage/IDBDatabase.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/Source/WebCore/storage/IDBDatabase.cpp b/Source/WebCore/storage/IDBDatabase.cpp
index fe8d350..d54b969 100644
--- a/Source/WebCore/storage/IDBDatabase.cpp
+++ b/Source/WebCore/storage/IDBDatabase.cpp
@@ -29,6 +29,7 @@
#include "Document.h"
#include "EventQueue.h"
#include "IDBAny.h"
+#include "IDBDatabaseCallbacksImpl.h"
#include "IDBDatabaseError.h"
#include "IDBDatabaseException.h"
#include "IDBEventDispatcher.h"
@@ -58,10 +59,12 @@ IDBDatabase::IDBDatabase(ScriptExecutionContext* context, PassRefPtr<IDBDatabase
{
// We pass a reference of this object before it can be adopted.
relaxAdoptionRequirement();
+ m_databaseCallbacks = IDBDatabaseCallbacksImpl::create(this);
}
IDBDatabase::~IDBDatabase()
{
+ m_databaseCallbacks->unregisterDatabase(this);
}
void IDBDatabase::setSetVersionTransaction(IDBTransaction* transaction)
@@ -103,7 +106,7 @@ void IDBDatabase::deleteObjectStore(const String& name, ExceptionCode& ec)
PassRefPtr<IDBVersionChangeRequest> IDBDatabase::setVersion(ScriptExecutionContext* context, const String& version, ExceptionCode& ec)
{
RefPtr<IDBVersionChangeRequest> request = IDBVersionChangeRequest::create(context, IDBAny::create(this), version);
- m_backend->setVersion(version, request, this, ec);
+ m_backend->setVersion(version, request, m_databaseCallbacks, ec);
return request;
}
@@ -154,7 +157,7 @@ void IDBDatabase::close()
}
m_noNewTransactions = true;
- m_backend->close(this);
+ m_backend->close(m_databaseCallbacks);
}
void IDBDatabase::onVersionChange(const String& version)
@@ -174,7 +177,7 @@ bool IDBDatabase::hasPendingActivity() const
void IDBDatabase::open()
{
- m_backend->open(this);
+ m_backend->open(m_databaseCallbacks);
}
void IDBDatabase::enqueueEvent(PassRefPtr<Event> event)