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 2b70960889e3b7995aaeb95a8b5ab5de3913245d..30bfe308fb9298e67788ba86aaf327d142bc33f7 100644 |
--- a/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp |
+++ b/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp |
@@ -88,7 +88,7 @@ namespace { |
class GetDatabaseNamesCallback final : public EventListener { |
WTF_MAKE_NONCOPYABLE(GetDatabaseNamesCallback); |
public: |
- static PassRefPtrWillBeRawPtr<GetDatabaseNamesCallback> create(PassRefPtr<RequestDatabaseNamesCallback> requestCallback, const String& securityOrigin) |
+ static PassRefPtrWillBeRawPtr<GetDatabaseNamesCallback> create(PassOwnPtr<RequestDatabaseNamesCallback> requestCallback, const String& securityOrigin) |
{ |
return adoptRefWillBeNoop(new GetDatabaseNamesCallback(requestCallback, securityOrigin)); |
} |
@@ -102,8 +102,6 @@ public: |
void handleEvent(ExecutionContext*, Event* event) override |
{ |
- if (!m_requestCallback->isActive()) |
- return; |
if (event->type() != EventTypeNames::success) { |
m_requestCallback->sendFailure("Unexpected event type."); |
return; |
@@ -129,11 +127,11 @@ public: |
} |
private: |
- GetDatabaseNamesCallback(PassRefPtr<RequestDatabaseNamesCallback> requestCallback, const String& securityOrigin) |
+ GetDatabaseNamesCallback(PassOwnPtr<RequestDatabaseNamesCallback> requestCallback, const String& securityOrigin) |
: EventListener(EventListener::CPPEventListenerType) |
, m_requestCallback(requestCallback) |
, m_securityOrigin(securityOrigin) { } |
- RefPtr<RequestDatabaseNamesCallback> m_requestCallback; |
+ OwnPtr<RequestDatabaseNamesCallback> m_requestCallback; |
String m_securityOrigin; |
}; |
@@ -300,7 +298,7 @@ static PassOwnPtr<KeyPath> keyPathFromIDBKeyPath(const IDBKeyPath& idbKeyPath) |
class DatabaseLoader final : public ExecutableWithDatabase { |
public: |
- static PassRefPtr<DatabaseLoader> create(ScriptState* scriptState, PassRefPtr<RequestDatabaseCallback> requestCallback) |
+ static PassRefPtr<DatabaseLoader> create(ScriptState* scriptState, PassOwnPtr<RequestDatabaseCallback> requestCallback) |
{ |
return adoptRef(new DatabaseLoader(scriptState, requestCallback)); |
} |
@@ -309,9 +307,6 @@ public: |
void execute(IDBDatabase* idbDatabase) override |
{ |
- if (!requestCallback()->isActive()) |
- return; |
- |
const IDBDatabaseMetadata databaseMetadata = idbDatabase->metadata(); |
OwnPtr<protocol::Array<protocol::IndexedDB::ObjectStore>> objectStores = protocol::Array<protocol::IndexedDB::ObjectStore>::create(); |
@@ -349,10 +344,10 @@ public: |
RequestCallback* requestCallback() override { return m_requestCallback.get(); } |
private: |
- DatabaseLoader(ScriptState* scriptState, PassRefPtr<RequestDatabaseCallback> requestCallback) |
+ DatabaseLoader(ScriptState* scriptState, PassOwnPtr<RequestDatabaseCallback> requestCallback) |
: ExecutableWithDatabase(scriptState) |
, m_requestCallback(requestCallback) { } |
- RefPtr<RequestDatabaseCallback> m_requestCallback; |
+ OwnPtr<RequestDatabaseCallback> m_requestCallback; |
}; |
static IDBKey* idbKeyFromInspectorObject(protocol::IndexedDB::Key* key) |
@@ -412,7 +407,7 @@ class DataLoader; |
class OpenCursorCallback final : public EventListener { |
public: |
- static PassRefPtrWillBeRawPtr<OpenCursorCallback> create(ScriptState* scriptState, PassRefPtr<RequestDataCallback> requestCallback, int skipCount, unsigned pageSize) |
+ static PassRefPtrWillBeRawPtr<OpenCursorCallback> create(ScriptState* scriptState, PassOwnPtr<RequestDataCallback> requestCallback, int skipCount, unsigned pageSize) |
{ |
return adoptRefWillBeNoop(new OpenCursorCallback(scriptState, requestCallback, skipCount, pageSize)); |
} |
@@ -489,8 +484,6 @@ public: |
void end(bool hasMore) |
{ |
- if (!m_requestCallback->isActive()) |
- return; |
m_requestCallback->sendSuccess(m_result.release(), hasMore); |
} |
@@ -500,7 +493,7 @@ public: |
} |
private: |
- OpenCursorCallback(ScriptState* scriptState, PassRefPtr<RequestDataCallback> requestCallback, int skipCount, unsigned pageSize) |
+ OpenCursorCallback(ScriptState* scriptState, PassOwnPtr<RequestDataCallback> requestCallback, int skipCount, unsigned pageSize) |
: EventListener(EventListener::CPPEventListenerType) |
, m_scriptState(scriptState) |
, m_requestCallback(requestCallback) |
@@ -511,7 +504,7 @@ private: |
} |
RefPtr<ScriptState> m_scriptState; |
- RefPtr<RequestDataCallback> m_requestCallback; |
+ OwnPtr<RequestDataCallback> m_requestCallback; |
int m_skipCount; |
unsigned m_pageSize; |
OwnPtr<Array<DataEntry>> m_result; |
@@ -519,7 +512,7 @@ private: |
class DataLoader final : public ExecutableWithDatabase { |
public: |
- static PassRefPtr<DataLoader> create(ScriptState* scriptState, PassRefPtr<RequestDataCallback> requestCallback, const String& objectStoreName, const String& indexName, IDBKeyRange* idbKeyRange, int skipCount, unsigned pageSize) |
+ static PassRefPtr<DataLoader> create(ScriptState* scriptState, PassOwnPtr<RequestDataCallback> requestCallback, const String& objectStoreName, const String& indexName, IDBKeyRange* idbKeyRange, int skipCount, unsigned pageSize) |
{ |
return adoptRef(new DataLoader(scriptState, requestCallback, objectStoreName, indexName, idbKeyRange, skipCount, pageSize)); |
} |
@@ -528,8 +521,6 @@ public: |
void execute(IDBDatabase* idbDatabase) override |
{ |
- if (!requestCallback()->isActive()) |
- return; |
IDBTransaction* idbTransaction = transactionForDatabase(scriptState(), idbDatabase, m_objectStoreName); |
if (!idbTransaction) { |
m_requestCallback->sendFailure("Could not get transaction"); |
@@ -541,8 +532,6 @@ public: |
return; |
} |
- RefPtrWillBeRawPtr<OpenCursorCallback> openCursorCallback = OpenCursorCallback::create(scriptState(), m_requestCallback, m_skipCount, m_pageSize); |
- |
IDBRequest* idbRequest; |
if (!m_indexName.isEmpty()) { |
IDBIndex* idbIndex = indexForObjectStore(idbObjectStore, m_indexName); |
@@ -555,11 +544,12 @@ public: |
} else { |
idbRequest = idbObjectStore->openCursor(scriptState(), m_idbKeyRange.get(), WebIDBCursorDirectionNext); |
} |
+ RefPtrWillBeRawPtr<OpenCursorCallback> openCursorCallback = OpenCursorCallback::create(scriptState(), m_requestCallback.release(), m_skipCount, m_pageSize); |
idbRequest->addEventListener(EventTypeNames::success, openCursorCallback, false); |
} |
RequestCallback* requestCallback() override { return m_requestCallback.get(); } |
- DataLoader(ScriptState* scriptState, PassRefPtr<RequestDataCallback> requestCallback, const String& objectStoreName, const String& indexName, IDBKeyRange* idbKeyRange, int skipCount, unsigned pageSize) |
+ DataLoader(ScriptState* scriptState, PassOwnPtr<RequestDataCallback> requestCallback, const String& objectStoreName, const String& indexName, IDBKeyRange* idbKeyRange, int skipCount, unsigned pageSize) |
: ExecutableWithDatabase(scriptState) |
, m_requestCallback(requestCallback) |
, m_objectStoreName(objectStoreName) |
@@ -570,7 +560,7 @@ public: |
{ |
} |
- RefPtr<RequestDataCallback> m_requestCallback; |
+ OwnPtr<RequestDataCallback> m_requestCallback; |
String m_objectStoreName; |
String m_indexName; |
Persistent<IDBKeyRange> m_idbKeyRange; |
@@ -639,7 +629,7 @@ static IDBFactory* assertIDBFactory(ErrorString* errorString, Document* document |
return idbFactory; |
} |
-void InspectorIndexedDBAgent::requestDatabaseNames(ErrorString* errorString, const String& securityOrigin, PassRefPtr<RequestDatabaseNamesCallback> requestCallback) |
+void InspectorIndexedDBAgent::requestDatabaseNames(ErrorString* errorString, const String& securityOrigin, PassOwnPtr<RequestDatabaseNamesCallback> requestCallback) |
{ |
LocalFrame* frame = m_inspectedFrames->frameWithSecurityOrigin(securityOrigin); |
Document* document = assertDocument(errorString, frame); |
@@ -662,7 +652,7 @@ void InspectorIndexedDBAgent::requestDatabaseNames(ErrorString* errorString, con |
idbRequest->addEventListener(EventTypeNames::success, GetDatabaseNamesCallback::create(requestCallback, document->securityOrigin()->toRawString()), false); |
} |
-void InspectorIndexedDBAgent::requestDatabase(ErrorString* errorString, const String& securityOrigin, const String& databaseName, PassRefPtr<RequestDatabaseCallback> requestCallback) |
+void InspectorIndexedDBAgent::requestDatabase(ErrorString* errorString, const String& securityOrigin, const String& databaseName, PassOwnPtr<RequestDatabaseCallback> requestCallback) |
{ |
LocalFrame* frame = m_inspectedFrames->frameWithSecurityOrigin(securityOrigin); |
Document* document = assertDocument(errorString, frame); |
@@ -688,7 +678,7 @@ void InspectorIndexedDBAgent::requestData(ErrorString* errorString, |
int skipCount, |
int pageSize, |
const Maybe<protocol::IndexedDB::KeyRange>& keyRange, |
- const PassRefPtr<RequestDataCallback> requestCallback) |
+ const PassOwnPtr<RequestDataCallback> requestCallback) |
{ |
LocalFrame* frame = m_inspectedFrames->frameWithSecurityOrigin(securityOrigin); |
Document* document = assertDocument(errorString, frame); |
@@ -715,7 +705,7 @@ void InspectorIndexedDBAgent::requestData(ErrorString* errorString, |
class ClearObjectStoreListener final : public EventListener { |
WTF_MAKE_NONCOPYABLE(ClearObjectStoreListener); |
public: |
- static PassRefPtrWillBeRawPtr<ClearObjectStoreListener> create(PassRefPtr<ClearObjectStoreCallback> requestCallback) |
+ static PassRefPtrWillBeRawPtr<ClearObjectStoreListener> create(PassOwnPtr<ClearObjectStoreCallback> requestCallback) |
{ |
return adoptRefWillBeNoop(new ClearObjectStoreListener(requestCallback)); |
} |
@@ -729,8 +719,6 @@ public: |
void handleEvent(ExecutionContext*, Event* event) override |
{ |
- if (!m_requestCallback->isActive()) |
- return; |
if (event->type() != EventTypeNames::complete) { |
m_requestCallback->sendFailure("Unexpected event type."); |
return; |
@@ -745,24 +733,24 @@ public: |
} |
private: |
- ClearObjectStoreListener(PassRefPtr<ClearObjectStoreCallback> requestCallback) |
+ ClearObjectStoreListener(PassOwnPtr<ClearObjectStoreCallback> requestCallback) |
: EventListener(EventListener::CPPEventListenerType) |
, m_requestCallback(requestCallback) |
{ |
} |
- RefPtr<ClearObjectStoreCallback> m_requestCallback; |
+ OwnPtr<ClearObjectStoreCallback> m_requestCallback; |
}; |
class ClearObjectStore final : public ExecutableWithDatabase { |
public: |
- static PassRefPtr<ClearObjectStore> create(ScriptState* scriptState, const String& objectStoreName, PassRefPtr<ClearObjectStoreCallback> requestCallback) |
+ static PassRefPtr<ClearObjectStore> create(ScriptState* scriptState, const String& objectStoreName, PassOwnPtr<ClearObjectStoreCallback> requestCallback) |
{ |
return adoptRef(new ClearObjectStore(scriptState, objectStoreName, requestCallback)); |
} |
- ClearObjectStore(ScriptState* scriptState, const String& objectStoreName, PassRefPtr<ClearObjectStoreCallback> requestCallback) |
+ ClearObjectStore(ScriptState* scriptState, const String& objectStoreName, PassOwnPtr<ClearObjectStoreCallback> requestCallback) |
: ExecutableWithDatabase(scriptState) |
, m_objectStoreName(objectStoreName) |
, m_requestCallback(requestCallback) |
@@ -771,8 +759,6 @@ public: |
void execute(IDBDatabase* idbDatabase) override |
{ |
- if (!requestCallback()->isActive()) |
- return; |
IDBTransaction* idbTransaction = transactionForDatabase(scriptState(), idbDatabase, m_objectStoreName, IndexedDBNames::readwrite); |
if (!idbTransaction) { |
m_requestCallback->sendFailure("Could not get transaction"); |
@@ -792,16 +778,16 @@ public: |
m_requestCallback->sendFailure(String::format("Could not clear object store '%s': %d", m_objectStoreName.utf8().data(), ec)); |
return; |
} |
- idbTransaction->addEventListener(EventTypeNames::complete, ClearObjectStoreListener::create(m_requestCallback), false); |
+ idbTransaction->addEventListener(EventTypeNames::complete, ClearObjectStoreListener::create(m_requestCallback.release()), false); |
} |
RequestCallback* requestCallback() override { return m_requestCallback.get(); } |
private: |
const String m_objectStoreName; |
- RefPtr<ClearObjectStoreCallback> m_requestCallback; |
+ OwnPtr<ClearObjectStoreCallback> m_requestCallback; |
}; |
-void InspectorIndexedDBAgent::clearObjectStore(ErrorString* errorString, const String& securityOrigin, const String& databaseName, const String& objectStoreName, PassRefPtr<ClearObjectStoreCallback> requestCallback) |
+void InspectorIndexedDBAgent::clearObjectStore(ErrorString* errorString, const String& securityOrigin, const String& databaseName, const String& objectStoreName, PassOwnPtr<ClearObjectStoreCallback> requestCallback) |
{ |
LocalFrame* frame = m_inspectedFrames->frameWithSecurityOrigin(securityOrigin); |
Document* document = assertDocument(errorString, frame); |