| Index: third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
|
| diff --git a/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp b/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
|
| index 45da6bcac5d04d287ddca43c439ae5fa6e9550ad..819155622e869f3e962f706d9c1ac332fe786bc2 100644
|
| --- a/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
|
| +++ b/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
|
| @@ -70,7 +70,6 @@ using blink::protocol::IndexedDB::KeyRange;
|
| using blink::protocol::IndexedDB::ObjectStore;
|
| using blink::protocol::IndexedDB::ObjectStoreIndex;
|
|
|
| -typedef blink::protocol::BackendCallback RequestCallback;
|
| typedef blink::protocol::IndexedDB::Backend::RequestDatabaseNamesCallback
|
| RequestDatabaseNamesCallback;
|
| typedef blink::protocol::IndexedDB::Backend::RequestDatabaseCallback
|
| @@ -141,12 +140,37 @@ class GetDatabaseNamesCallback final : public EventListener {
|
| String m_securityOrigin;
|
| };
|
|
|
| -class ExecutableWithDatabase : public RefCounted<ExecutableWithDatabase> {
|
| +template <typename RequestCallback>
|
| +class OpenDatabaseCallback;
|
| +template <typename RequestCallback>
|
| +class UpgradeDatabaseCallback;
|
| +
|
| +template <typename RequestCallback>
|
| +class ExecutableWithDatabase
|
| + : public RefCounted<ExecutableWithDatabase<RequestCallback>> {
|
| public:
|
| ExecutableWithDatabase(ScriptState* scriptState)
|
| : m_scriptState(scriptState) {}
|
| virtual ~ExecutableWithDatabase() {}
|
| - void start(IDBFactory*, SecurityOrigin*, const String& databaseName);
|
| + void start(IDBFactory* idbFactory,
|
| + SecurityOrigin*,
|
| + const String& databaseName) {
|
| + OpenDatabaseCallback<RequestCallback>* openCallback =
|
| + OpenDatabaseCallback<RequestCallback>::create(this);
|
| + UpgradeDatabaseCallback<RequestCallback>* upgradeCallback =
|
| + UpgradeDatabaseCallback<RequestCallback>::create(this);
|
| + TrackExceptionState exceptionState;
|
| + IDBOpenDBRequest* idbOpenDBRequest =
|
| + idbFactory->open(getScriptState(), databaseName, exceptionState);
|
| + if (exceptionState.hadException()) {
|
| + getRequestCallback()->sendFailure("Could not open database.");
|
| + return;
|
| + }
|
| + idbOpenDBRequest->addEventListener(EventTypeNames::upgradeneeded,
|
| + upgradeCallback, false);
|
| + idbOpenDBRequest->addEventListener(EventTypeNames::success, openCallback,
|
| + false);
|
| + }
|
| virtual void execute(IDBDatabase*) = 0;
|
| virtual RequestCallback* getRequestCallback() = 0;
|
| ExecutionContext* context() const {
|
| @@ -158,10 +182,11 @@ class ExecutableWithDatabase : public RefCounted<ExecutableWithDatabase> {
|
| RefPtr<ScriptState> m_scriptState;
|
| };
|
|
|
| +template <typename RequestCallback>
|
| class OpenDatabaseCallback final : public EventListener {
|
| public:
|
| static OpenDatabaseCallback* create(
|
| - ExecutableWithDatabase* executableWithDatabase) {
|
| + ExecutableWithDatabase<RequestCallback>* executableWithDatabase) {
|
| return new OpenDatabaseCallback(executableWithDatabase);
|
| }
|
|
|
| @@ -196,16 +221,18 @@ class OpenDatabaseCallback final : public EventListener {
|
| }
|
|
|
| private:
|
| - OpenDatabaseCallback(ExecutableWithDatabase* executableWithDatabase)
|
| + OpenDatabaseCallback(
|
| + ExecutableWithDatabase<RequestCallback>* executableWithDatabase)
|
| : EventListener(EventListener::CPPEventListenerType),
|
| m_executableWithDatabase(executableWithDatabase) {}
|
| - RefPtr<ExecutableWithDatabase> m_executableWithDatabase;
|
| + RefPtr<ExecutableWithDatabase<RequestCallback>> m_executableWithDatabase;
|
| };
|
|
|
| +template <typename RequestCallback>
|
| class UpgradeDatabaseCallback final : public EventListener {
|
| public:
|
| static UpgradeDatabaseCallback* create(
|
| - ExecutableWithDatabase* executableWithDatabase) {
|
| + ExecutableWithDatabase<RequestCallback>* executableWithDatabase) {
|
| return new UpgradeDatabaseCallback(executableWithDatabase);
|
| }
|
|
|
| @@ -234,31 +261,13 @@ class UpgradeDatabaseCallback final : public EventListener {
|
| }
|
|
|
| private:
|
| - UpgradeDatabaseCallback(ExecutableWithDatabase* executableWithDatabase)
|
| + UpgradeDatabaseCallback(
|
| + ExecutableWithDatabase<RequestCallback>* executableWithDatabase)
|
| : EventListener(EventListener::CPPEventListenerType),
|
| m_executableWithDatabase(executableWithDatabase) {}
|
| - RefPtr<ExecutableWithDatabase> m_executableWithDatabase;
|
| + RefPtr<ExecutableWithDatabase<RequestCallback>> m_executableWithDatabase;
|
| };
|
|
|
| -void ExecutableWithDatabase::start(IDBFactory* idbFactory,
|
| - SecurityOrigin*,
|
| - const String& databaseName) {
|
| - OpenDatabaseCallback* openCallback = OpenDatabaseCallback::create(this);
|
| - UpgradeDatabaseCallback* upgradeCallback =
|
| - UpgradeDatabaseCallback::create(this);
|
| - TrackExceptionState exceptionState;
|
| - IDBOpenDBRequest* idbOpenDBRequest =
|
| - idbFactory->open(getScriptState(), databaseName, exceptionState);
|
| - if (exceptionState.hadException()) {
|
| - getRequestCallback()->sendFailure("Could not open database.");
|
| - return;
|
| - }
|
| - idbOpenDBRequest->addEventListener(EventTypeNames::upgradeneeded,
|
| - upgradeCallback, false);
|
| - idbOpenDBRequest->addEventListener(EventTypeNames::success, openCallback,
|
| - false);
|
| -}
|
| -
|
| static IDBTransaction* transactionForDatabase(
|
| ScriptState* scriptState,
|
| IDBDatabase* idbDatabase,
|
| @@ -324,7 +333,8 @@ static std::unique_ptr<KeyPath> keyPathFromIDBKeyPath(
|
| return keyPath;
|
| }
|
|
|
| -class DatabaseLoader final : public ExecutableWithDatabase {
|
| +class DatabaseLoader final
|
| + : public ExecutableWithDatabase<RequestDatabaseCallback> {
|
| public:
|
| static PassRefPtr<DatabaseLoader> create(
|
| ScriptState* scriptState,
|
| @@ -381,7 +391,7 @@ class DatabaseLoader final : public ExecutableWithDatabase {
|
| m_requestCallback->sendSuccess(std::move(result));
|
| }
|
|
|
| - RequestCallback* getRequestCallback() override {
|
| + RequestDatabaseCallback* getRequestCallback() override {
|
| return m_requestCallback.get();
|
| }
|
|
|
| @@ -563,7 +573,7 @@ class OpenCursorCallback final : public EventListener {
|
| std::unique_ptr<Array<DataEntry>> m_result;
|
| };
|
|
|
| -class DataLoader final : public ExecutableWithDatabase {
|
| +class DataLoader final : public ExecutableWithDatabase<RequestDataCallback> {
|
| public:
|
| static PassRefPtr<DataLoader> create(
|
| v8_inspector::V8InspectorSession* v8Session,
|
| @@ -616,7 +626,7 @@ class DataLoader final : public ExecutableWithDatabase {
|
| false);
|
| }
|
|
|
| - RequestCallback* getRequestCallback() override {
|
| + RequestDataCallback* getRequestCallback() override {
|
| return m_requestCallback.get();
|
| }
|
| DataLoader(v8_inspector::V8InspectorSession* v8Session,
|
| @@ -843,7 +853,8 @@ class ClearObjectStoreListener final : public EventListener {
|
| std::unique_ptr<ClearObjectStoreCallback> m_requestCallback;
|
| };
|
|
|
| -class ClearObjectStore final : public ExecutableWithDatabase {
|
| +class ClearObjectStore final
|
| + : public ExecutableWithDatabase<ClearObjectStoreCallback> {
|
| public:
|
| static PassRefPtr<ClearObjectStore> create(
|
| ScriptState* scriptState,
|
| @@ -890,7 +901,7 @@ class ClearObjectStore final : public ExecutableWithDatabase {
|
| ClearObjectStoreListener::create(std::move(m_requestCallback)), false);
|
| }
|
|
|
| - RequestCallback* getRequestCallback() override {
|
| + ClearObjectStoreCallback* getRequestCallback() override {
|
| return m_requestCallback.get();
|
| }
|
|
|
|
|