| Index: third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp
|
| diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp
|
| index 737435363e2c49374c8f701e580bee84ac3ef43b..f485e1133654a1fb549e5569abb6de966ec9419f 100644
|
| --- a/third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp
|
| +++ b/third_party/WebKit/Source/modules/indexeddb/IDBFactory.cpp
|
| @@ -34,18 +34,15 @@
|
| #include "core/dom/Document.h"
|
| #include "core/dom/ExceptionCode.h"
|
| #include "modules/indexeddb/IDBDatabase.h"
|
| -#include "modules/indexeddb/IDBDatabaseCallbacks.h"
|
| +#include "modules/indexeddb/IDBDatabaseObserverImpl.h"
|
| #include "modules/indexeddb/IDBKey.h"
|
| #include "modules/indexeddb/IDBTracing.h"
|
| #include "modules/indexeddb/IndexedDBClient.h"
|
| -#include "modules/indexeddb/WebIDBCallbacksImpl.h"
|
| -#include "modules/indexeddb/WebIDBDatabaseCallbacksImpl.h"
|
| #include "platform/Histogram.h"
|
| #include "platform/weborigin/SecurityOrigin.h"
|
| +#include "public/platform/InterfaceProvider.h"
|
| #include "public/platform/Platform.h"
|
| #include "public/platform/WebSecurityOrigin.h"
|
| -#include "public/platform/modules/indexeddb/WebIDBFactory.h"
|
| -#include <memory>
|
|
|
| namespace blink {
|
|
|
| @@ -53,6 +50,15 @@ static const char permissionDeniedErrorMessage[] = "The user denied permission t
|
|
|
| IDBFactory::IDBFactory()
|
| {
|
| + // TODO(cmumford): I'm sure this can fail.
|
| + // TODO(cmumford): Should we connect (lazily) once and share the Mojo
|
| + // factory between all IDBFactory's?
|
| + Platform::current()->interfaceProvider()->getInterface(mojo::GetProxy(&m_proxy));
|
| + DCHECK(m_proxy);
|
| +}
|
| +
|
| +IDBFactory::~IDBFactory()
|
| +{
|
| }
|
|
|
| static bool isContextValid(ExecutionContext* context)
|
| @@ -82,7 +88,7 @@ IDBRequest* IDBFactory::getDatabaseNames(ScriptState* scriptState, ExceptionStat
|
| return request;
|
| }
|
|
|
| - Platform::current()->idbFactory()->getDatabaseNames(WebIDBCallbacksImpl::create(request).release(), WebSecurityOrigin(scriptState->getExecutionContext()->getSecurityOrigin()));
|
| + m_proxy->GetDatabaseNames(scriptState->getExecutionContext()->getSecurityOrigin());
|
| return request;
|
| }
|
|
|
| @@ -107,16 +113,19 @@ IDBOpenDBRequest* IDBFactory::openInternal(ScriptState* scriptState, const Strin
|
| return nullptr;
|
| }
|
|
|
| - IDBDatabaseCallbacks* databaseCallbacks = IDBDatabaseCallbacks::create();
|
| int64_t transactionId = IDBDatabase::nextTransactionId();
|
| - IDBOpenDBRequest* request = IDBOpenDBRequest::create(scriptState, databaseCallbacks, transactionId, version);
|
| + indexed_db::mojom::blink::OpenRequestObserverPtr openRequestObserver;
|
| + IDBOpenDBRequest* request = IDBOpenDBRequest::create(scriptState, transactionId, version, GetProxy(&openRequestObserver));
|
| + indexed_db::mojom::blink::DatabaseObserverPtr databaseObserver = IDBDatabaseObserverImpl::Create(request);
|
|
|
| if (!IndexedDBClient::from(scriptState->getExecutionContext())->allowIndexedDB(scriptState->getExecutionContext(), name)) {
|
| request->onError(DOMException::create(UnknownError, permissionDeniedErrorMessage));
|
| return request;
|
| }
|
|
|
| - Platform::current()->idbFactory()->open(name, version, transactionId, WebIDBCallbacksImpl::create(request).release(), WebIDBDatabaseCallbacksImpl::create(databaseCallbacks).release(), WebSecurityOrigin(scriptState->getExecutionContext()->getSecurityOrigin()));
|
| + indexed_db::mojom::blink::DatabaseFactory::OpenCallback openCallback = convertToBaseCallback(WTF::bind(&IDBOpenDBRequest::onOpenResult, wrapWeakPersistent(request)));
|
| +
|
| + m_proxy->Open(name, version, transactionId, scriptState->getExecutionContext()->getSecurityOrigin(), std::move(openRequestObserver), std::move(databaseObserver), openCallback);
|
| return request;
|
| }
|
|
|
| @@ -137,14 +146,15 @@ IDBOpenDBRequest* IDBFactory::deleteDatabase(ScriptState* scriptState, const Str
|
| return nullptr;
|
| }
|
|
|
| - IDBOpenDBRequest* request = IDBOpenDBRequest::create(scriptState, nullptr, 0, IDBDatabaseMetadata::DefaultVersion);
|
| + indexed_db::mojom::blink::OpenRequestObserverPtr openRequestObserver;
|
| + IDBOpenDBRequest* request = IDBOpenDBRequest::create(scriptState, 0, IDBDatabaseMetadata::DefaultVersion, GetProxy(&openRequestObserver));
|
|
|
| if (!IndexedDBClient::from(scriptState->getExecutionContext())->allowIndexedDB(scriptState->getExecutionContext(), name)) {
|
| request->onError(DOMException::create(UnknownError, permissionDeniedErrorMessage));
|
| return request;
|
| }
|
|
|
| - Platform::current()->idbFactory()->deleteDatabase(name, WebIDBCallbacksImpl::create(request).release(), WebSecurityOrigin(scriptState->getExecutionContext()->getSecurityOrigin()));
|
| + m_proxy->DeleteDatabase(name, scriptState->getExecutionContext()->getSecurityOrigin());
|
| return request;
|
| }
|
|
|
|
|