diff options
Diffstat (limited to 'Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp')
-rw-r--r-- | Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp index 7f794d9..2a97923 100644 --- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp +++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp @@ -29,8 +29,10 @@ #include "DOMStringList.h" #include "IDBCallbacksProxy.h" #include "IDBDatabaseBackendInterface.h" +#include "IDBDatabaseCallbacksProxy.h" #include "IDBTransactionBackendInterface.h" #include "WebIDBCallbacks.h" +#include "WebIDBDatabaseCallbacks.h" #include "WebIDBObjectStoreImpl.h" #include "WebIDBTransactionImpl.h" @@ -81,7 +83,7 @@ void WebIDBDatabaseImpl::deleteObjectStore(const WebString& name, const WebIDBTr void WebIDBDatabaseImpl::setVersion(const WebString& version, WebIDBCallbacks* callbacks, WebExceptionCode& ec) { - m_databaseBackend->setVersion(version, IDBCallbacksProxy::create(callbacks), ec); + m_databaseBackend->setVersion(version, IDBCallbacksProxy::create(callbacks), m_databaseCallbacks, ec); } WebIDBTransaction* WebIDBDatabaseImpl::transaction(const WebDOMStringList& names, unsigned short mode, WebExceptionCode& ec) @@ -97,7 +99,17 @@ WebIDBTransaction* WebIDBDatabaseImpl::transaction(const WebDOMStringList& names void WebIDBDatabaseImpl::close() { - m_databaseBackend->close(); + // Use the callbacks that ::open gave us so that the backend in + // multi-process chromium knows which database connection is closing. + ASSERT(m_databaseCallbacks); + m_databaseBackend->close(m_databaseCallbacks); +} + +void WebIDBDatabaseImpl::open(WebIDBDatabaseCallbacks* callbacks) +{ + ASSERT(!m_databaseCallbacks); + m_databaseCallbacks = IDBDatabaseCallbacksProxy::create(callbacks); + m_databaseBackend->open(m_databaseCallbacks); } } // namespace WebCore |