summaryrefslogtreecommitdiff
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.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/Source/WebCore/storage/IDBDatabase.cpp b/Source/WebCore/storage/IDBDatabase.cpp
index c4b73cec5..cc53a882a 100644
--- a/Source/WebCore/storage/IDBDatabase.cpp
+++ b/Source/WebCore/storage/IDBDatabase.cpp
@@ -26,6 +26,8 @@
#include "config.h"
#include "IDBDatabase.h"
+#if ENABLE(INDEXED_DATABASE)
+
#include "EventQueue.h"
#include "ExceptionCode.h"
#include "EventQueue.h"
@@ -38,19 +40,20 @@
#include "IDBIndex.h"
#include "IDBKeyPath.h"
#include "IDBObjectStore.h"
+#include "IDBTracing.h"
+#include "IDBTransaction.h"
#include "IDBVersionChangeEvent.h"
#include "IDBVersionChangeRequest.h"
-#include "IDBTransaction.h"
#include "ScriptExecutionContext.h"
#include <limits>
-#if ENABLE(INDEXED_DATABASE)
-
namespace WebCore {
PassRefPtr<IDBDatabase> IDBDatabase::create(ScriptExecutionContext* context, PassRefPtr<IDBDatabaseBackendInterface> database)
{
- return adoptRef(new IDBDatabase(context, database));
+ RefPtr<IDBDatabase> idbDatabase(adoptRef(new IDBDatabase(context, database)));
+ idbDatabase->suspendIfNeeded();
+ return idbDatabase.release();
}
IDBDatabase::IDBDatabase(ScriptExecutionContext* context, PassRefPtr<IDBDatabaseBackendInterface> backend)
@@ -219,6 +222,7 @@ void IDBDatabase::enqueueEvent(PassRefPtr<Event> event)
bool IDBDatabase::dispatchEvent(PassRefPtr<Event> event)
{
+ IDB_TRACE("IDBDatabase::dispatchEvent");
ASSERT(event->type() == eventNames().versionchangeEvent);
for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) {
if (m_enqueuedEvents[i].get() == event.get())