| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 | 63 |
| 64 using blink::protocol::Array; | 64 using blink::protocol::Array; |
| 65 using blink::protocol::IndexedDB::DatabaseWithObjectStores; | 65 using blink::protocol::IndexedDB::DatabaseWithObjectStores; |
| 66 using blink::protocol::IndexedDB::DataEntry; | 66 using blink::protocol::IndexedDB::DataEntry; |
| 67 using blink::protocol::IndexedDB::Key; | 67 using blink::protocol::IndexedDB::Key; |
| 68 using blink::protocol::IndexedDB::KeyPath; | 68 using blink::protocol::IndexedDB::KeyPath; |
| 69 using blink::protocol::IndexedDB::KeyRange; | 69 using blink::protocol::IndexedDB::KeyRange; |
| 70 using blink::protocol::IndexedDB::ObjectStore; | 70 using blink::protocol::IndexedDB::ObjectStore; |
| 71 using blink::protocol::IndexedDB::ObjectStoreIndex; | 71 using blink::protocol::IndexedDB::ObjectStoreIndex; |
| 72 | 72 |
| 73 typedef blink::protocol::BackendCallback RequestCallback; | |
| 74 typedef blink::protocol::IndexedDB::Backend::RequestDatabaseNamesCallback | 73 typedef blink::protocol::IndexedDB::Backend::RequestDatabaseNamesCallback |
| 75 RequestDatabaseNamesCallback; | 74 RequestDatabaseNamesCallback; |
| 76 typedef blink::protocol::IndexedDB::Backend::RequestDatabaseCallback | 75 typedef blink::protocol::IndexedDB::Backend::RequestDatabaseCallback |
| 77 RequestDatabaseCallback; | 76 RequestDatabaseCallback; |
| 78 typedef blink::protocol::IndexedDB::Backend::RequestDataCallback | 77 typedef blink::protocol::IndexedDB::Backend::RequestDataCallback |
| 79 RequestDataCallback; | 78 RequestDataCallback; |
| 80 typedef blink::protocol::IndexedDB::Backend::ClearObjectStoreCallback | 79 typedef blink::protocol::IndexedDB::Backend::ClearObjectStoreCallback |
| 81 ClearObjectStoreCallback; | 80 ClearObjectStoreCallback; |
| 82 | 81 |
| 83 namespace blink { | 82 namespace blink { |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 GetDatabaseNamesCallback( | 133 GetDatabaseNamesCallback( |
| 135 std::unique_ptr<RequestDatabaseNamesCallback> requestCallback, | 134 std::unique_ptr<RequestDatabaseNamesCallback> requestCallback, |
| 136 const String& securityOrigin) | 135 const String& securityOrigin) |
| 137 : EventListener(EventListener::CPPEventListenerType), | 136 : EventListener(EventListener::CPPEventListenerType), |
| 138 m_requestCallback(std::move(requestCallback)), | 137 m_requestCallback(std::move(requestCallback)), |
| 139 m_securityOrigin(securityOrigin) {} | 138 m_securityOrigin(securityOrigin) {} |
| 140 std::unique_ptr<RequestDatabaseNamesCallback> m_requestCallback; | 139 std::unique_ptr<RequestDatabaseNamesCallback> m_requestCallback; |
| 141 String m_securityOrigin; | 140 String m_securityOrigin; |
| 142 }; | 141 }; |
| 143 | 142 |
| 144 class ExecutableWithDatabase : public RefCounted<ExecutableWithDatabase> { | 143 template <typename RequestCallback> |
| 144 class OpenDatabaseCallback; |
| 145 template <typename RequestCallback> |
| 146 class UpgradeDatabaseCallback; |
| 147 |
| 148 template <typename RequestCallback> |
| 149 class ExecutableWithDatabase |
| 150 : public RefCounted<ExecutableWithDatabase<RequestCallback>> { |
| 145 public: | 151 public: |
| 146 ExecutableWithDatabase(ScriptState* scriptState) | 152 ExecutableWithDatabase(ScriptState* scriptState) |
| 147 : m_scriptState(scriptState) {} | 153 : m_scriptState(scriptState) {} |
| 148 virtual ~ExecutableWithDatabase() {} | 154 virtual ~ExecutableWithDatabase() {} |
| 149 void start(IDBFactory*, SecurityOrigin*, const String& databaseName); | 155 void start(IDBFactory* idbFactory, |
| 156 SecurityOrigin*, |
| 157 const String& databaseName) { |
| 158 OpenDatabaseCallback<RequestCallback>* openCallback = |
| 159 OpenDatabaseCallback<RequestCallback>::create(this); |
| 160 UpgradeDatabaseCallback<RequestCallback>* upgradeCallback = |
| 161 UpgradeDatabaseCallback<RequestCallback>::create(this); |
| 162 TrackExceptionState exceptionState; |
| 163 IDBOpenDBRequest* idbOpenDBRequest = |
| 164 idbFactory->open(getScriptState(), databaseName, exceptionState); |
| 165 if (exceptionState.hadException()) { |
| 166 getRequestCallback()->sendFailure("Could not open database."); |
| 167 return; |
| 168 } |
| 169 idbOpenDBRequest->addEventListener(EventTypeNames::upgradeneeded, |
| 170 upgradeCallback, false); |
| 171 idbOpenDBRequest->addEventListener(EventTypeNames::success, openCallback, |
| 172 false); |
| 173 } |
| 150 virtual void execute(IDBDatabase*) = 0; | 174 virtual void execute(IDBDatabase*) = 0; |
| 151 virtual RequestCallback* getRequestCallback() = 0; | 175 virtual RequestCallback* getRequestCallback() = 0; |
| 152 ExecutionContext* context() const { | 176 ExecutionContext* context() const { |
| 153 return m_scriptState->getExecutionContext(); | 177 return m_scriptState->getExecutionContext(); |
| 154 } | 178 } |
| 155 ScriptState* getScriptState() const { return m_scriptState.get(); } | 179 ScriptState* getScriptState() const { return m_scriptState.get(); } |
| 156 | 180 |
| 157 private: | 181 private: |
| 158 RefPtr<ScriptState> m_scriptState; | 182 RefPtr<ScriptState> m_scriptState; |
| 159 }; | 183 }; |
| 160 | 184 |
| 185 template <typename RequestCallback> |
| 161 class OpenDatabaseCallback final : public EventListener { | 186 class OpenDatabaseCallback final : public EventListener { |
| 162 public: | 187 public: |
| 163 static OpenDatabaseCallback* create( | 188 static OpenDatabaseCallback* create( |
| 164 ExecutableWithDatabase* executableWithDatabase) { | 189 ExecutableWithDatabase<RequestCallback>* executableWithDatabase) { |
| 165 return new OpenDatabaseCallback(executableWithDatabase); | 190 return new OpenDatabaseCallback(executableWithDatabase); |
| 166 } | 191 } |
| 167 | 192 |
| 168 ~OpenDatabaseCallback() override {} | 193 ~OpenDatabaseCallback() override {} |
| 169 | 194 |
| 170 bool operator==(const EventListener& other) const override { | 195 bool operator==(const EventListener& other) const override { |
| 171 return this == &other; | 196 return this == &other; |
| 172 } | 197 } |
| 173 | 198 |
| 174 void handleEvent(ExecutionContext* context, Event* event) override { | 199 void handleEvent(ExecutionContext* context, Event* event) override { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 189 | 214 |
| 190 IDBDatabase* idbDatabase = requestResult->idbDatabase(); | 215 IDBDatabase* idbDatabase = requestResult->idbDatabase(); |
| 191 m_executableWithDatabase->execute(idbDatabase); | 216 m_executableWithDatabase->execute(idbDatabase); |
| 192 V8PerIsolateData::from( | 217 V8PerIsolateData::from( |
| 193 m_executableWithDatabase->getScriptState()->isolate()) | 218 m_executableWithDatabase->getScriptState()->isolate()) |
| 194 ->runEndOfScopeTasks(); | 219 ->runEndOfScopeTasks(); |
| 195 idbDatabase->close(); | 220 idbDatabase->close(); |
| 196 } | 221 } |
| 197 | 222 |
| 198 private: | 223 private: |
| 199 OpenDatabaseCallback(ExecutableWithDatabase* executableWithDatabase) | 224 OpenDatabaseCallback( |
| 225 ExecutableWithDatabase<RequestCallback>* executableWithDatabase) |
| 200 : EventListener(EventListener::CPPEventListenerType), | 226 : EventListener(EventListener::CPPEventListenerType), |
| 201 m_executableWithDatabase(executableWithDatabase) {} | 227 m_executableWithDatabase(executableWithDatabase) {} |
| 202 RefPtr<ExecutableWithDatabase> m_executableWithDatabase; | 228 RefPtr<ExecutableWithDatabase<RequestCallback>> m_executableWithDatabase; |
| 203 }; | 229 }; |
| 204 | 230 |
| 231 template <typename RequestCallback> |
| 205 class UpgradeDatabaseCallback final : public EventListener { | 232 class UpgradeDatabaseCallback final : public EventListener { |
| 206 public: | 233 public: |
| 207 static UpgradeDatabaseCallback* create( | 234 static UpgradeDatabaseCallback* create( |
| 208 ExecutableWithDatabase* executableWithDatabase) { | 235 ExecutableWithDatabase<RequestCallback>* executableWithDatabase) { |
| 209 return new UpgradeDatabaseCallback(executableWithDatabase); | 236 return new UpgradeDatabaseCallback(executableWithDatabase); |
| 210 } | 237 } |
| 211 | 238 |
| 212 ~UpgradeDatabaseCallback() override {} | 239 ~UpgradeDatabaseCallback() override {} |
| 213 | 240 |
| 214 bool operator==(const EventListener& other) const override { | 241 bool operator==(const EventListener& other) const override { |
| 215 return this == &other; | 242 return this == &other; |
| 216 } | 243 } |
| 217 | 244 |
| 218 void handleEvent(ExecutionContext* context, Event* event) override { | 245 void handleEvent(ExecutionContext* context, Event* event) override { |
| 219 if (event->type() != EventTypeNames::upgradeneeded) { | 246 if (event->type() != EventTypeNames::upgradeneeded) { |
| 220 m_executableWithDatabase->getRequestCallback()->sendFailure( | 247 m_executableWithDatabase->getRequestCallback()->sendFailure( |
| 221 "Unexpected event type."); | 248 "Unexpected event type."); |
| 222 return; | 249 return; |
| 223 } | 250 } |
| 224 | 251 |
| 225 // If an "upgradeneeded" event comes through then the database that | 252 // If an "upgradeneeded" event comes through then the database that |
| 226 // had previously been enumerated was deleted. We don't want to | 253 // had previously been enumerated was deleted. We don't want to |
| 227 // implicitly re-create it here, so abort the transaction. | 254 // implicitly re-create it here, so abort the transaction. |
| 228 IDBOpenDBRequest* idbOpenDBRequest = | 255 IDBOpenDBRequest* idbOpenDBRequest = |
| 229 static_cast<IDBOpenDBRequest*>(event->target()); | 256 static_cast<IDBOpenDBRequest*>(event->target()); |
| 230 NonThrowableExceptionState exceptionState; | 257 NonThrowableExceptionState exceptionState; |
| 231 idbOpenDBRequest->transaction()->abort(exceptionState); | 258 idbOpenDBRequest->transaction()->abort(exceptionState); |
| 232 m_executableWithDatabase->getRequestCallback()->sendFailure( | 259 m_executableWithDatabase->getRequestCallback()->sendFailure( |
| 233 "Aborted upgrade."); | 260 "Aborted upgrade."); |
| 234 } | 261 } |
| 235 | 262 |
| 236 private: | 263 private: |
| 237 UpgradeDatabaseCallback(ExecutableWithDatabase* executableWithDatabase) | 264 UpgradeDatabaseCallback( |
| 265 ExecutableWithDatabase<RequestCallback>* executableWithDatabase) |
| 238 : EventListener(EventListener::CPPEventListenerType), | 266 : EventListener(EventListener::CPPEventListenerType), |
| 239 m_executableWithDatabase(executableWithDatabase) {} | 267 m_executableWithDatabase(executableWithDatabase) {} |
| 240 RefPtr<ExecutableWithDatabase> m_executableWithDatabase; | 268 RefPtr<ExecutableWithDatabase<RequestCallback>> m_executableWithDatabase; |
| 241 }; | 269 }; |
| 242 | 270 |
| 243 void ExecutableWithDatabase::start(IDBFactory* idbFactory, | |
| 244 SecurityOrigin*, | |
| 245 const String& databaseName) { | |
| 246 OpenDatabaseCallback* openCallback = OpenDatabaseCallback::create(this); | |
| 247 UpgradeDatabaseCallback* upgradeCallback = | |
| 248 UpgradeDatabaseCallback::create(this); | |
| 249 TrackExceptionState exceptionState; | |
| 250 IDBOpenDBRequest* idbOpenDBRequest = | |
| 251 idbFactory->open(getScriptState(), databaseName, exceptionState); | |
| 252 if (exceptionState.hadException()) { | |
| 253 getRequestCallback()->sendFailure("Could not open database."); | |
| 254 return; | |
| 255 } | |
| 256 idbOpenDBRequest->addEventListener(EventTypeNames::upgradeneeded, | |
| 257 upgradeCallback, false); | |
| 258 idbOpenDBRequest->addEventListener(EventTypeNames::success, openCallback, | |
| 259 false); | |
| 260 } | |
| 261 | |
| 262 static IDBTransaction* transactionForDatabase( | 271 static IDBTransaction* transactionForDatabase( |
| 263 ScriptState* scriptState, | 272 ScriptState* scriptState, |
| 264 IDBDatabase* idbDatabase, | 273 IDBDatabase* idbDatabase, |
| 265 const String& objectStoreName, | 274 const String& objectStoreName, |
| 266 const String& mode = IndexedDBNames::readonly) { | 275 const String& mode = IndexedDBNames::readonly) { |
| 267 TrackExceptionState exceptionState; | 276 TrackExceptionState exceptionState; |
| 268 StringOrStringSequenceOrDOMStringList scope; | 277 StringOrStringSequenceOrDOMStringList scope; |
| 269 scope.setString(objectStoreName); | 278 scope.setString(objectStoreName); |
| 270 IDBTransaction* idbTransaction = | 279 IDBTransaction* idbTransaction = |
| 271 idbDatabase->transaction(scriptState, scope, mode, exceptionState); | 280 idbDatabase->transaction(scriptState, scope, mode, exceptionState); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 keyPath->setArray(std::move(array)); | 326 keyPath->setArray(std::move(array)); |
| 318 break; | 327 break; |
| 319 } | 328 } |
| 320 default: | 329 default: |
| 321 ASSERT_NOT_REACHED(); | 330 ASSERT_NOT_REACHED(); |
| 322 } | 331 } |
| 323 | 332 |
| 324 return keyPath; | 333 return keyPath; |
| 325 } | 334 } |
| 326 | 335 |
| 327 class DatabaseLoader final : public ExecutableWithDatabase { | 336 class DatabaseLoader final |
| 337 : public ExecutableWithDatabase<RequestDatabaseCallback> { |
| 328 public: | 338 public: |
| 329 static PassRefPtr<DatabaseLoader> create( | 339 static PassRefPtr<DatabaseLoader> create( |
| 330 ScriptState* scriptState, | 340 ScriptState* scriptState, |
| 331 std::unique_ptr<RequestDatabaseCallback> requestCallback) { | 341 std::unique_ptr<RequestDatabaseCallback> requestCallback) { |
| 332 return adoptRef( | 342 return adoptRef( |
| 333 new DatabaseLoader(scriptState, std::move(requestCallback))); | 343 new DatabaseLoader(scriptState, std::move(requestCallback))); |
| 334 } | 344 } |
| 335 | 345 |
| 336 ~DatabaseLoader() override {} | 346 ~DatabaseLoader() override {} |
| 337 | 347 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 std::unique_ptr<DatabaseWithObjectStores> result = | 384 std::unique_ptr<DatabaseWithObjectStores> result = |
| 375 DatabaseWithObjectStores::create() | 385 DatabaseWithObjectStores::create() |
| 376 .setName(idbDatabase->name()) | 386 .setName(idbDatabase->name()) |
| 377 .setVersion(idbDatabase->version()) | 387 .setVersion(idbDatabase->version()) |
| 378 .setObjectStores(std::move(objectStores)) | 388 .setObjectStores(std::move(objectStores)) |
| 379 .build(); | 389 .build(); |
| 380 | 390 |
| 381 m_requestCallback->sendSuccess(std::move(result)); | 391 m_requestCallback->sendSuccess(std::move(result)); |
| 382 } | 392 } |
| 383 | 393 |
| 384 RequestCallback* getRequestCallback() override { | 394 RequestDatabaseCallback* getRequestCallback() override { |
| 385 return m_requestCallback.get(); | 395 return m_requestCallback.get(); |
| 386 } | 396 } |
| 387 | 397 |
| 388 private: | 398 private: |
| 389 DatabaseLoader(ScriptState* scriptState, | 399 DatabaseLoader(ScriptState* scriptState, |
| 390 std::unique_ptr<RequestDatabaseCallback> requestCallback) | 400 std::unique_ptr<RequestDatabaseCallback> requestCallback) |
| 391 : ExecutableWithDatabase(scriptState), | 401 : ExecutableWithDatabase(scriptState), |
| 392 m_requestCallback(std::move(requestCallback)) {} | 402 m_requestCallback(std::move(requestCallback)) {} |
| 393 std::unique_ptr<RequestDatabaseCallback> m_requestCallback; | 403 std::unique_ptr<RequestDatabaseCallback> m_requestCallback; |
| 394 }; | 404 }; |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 } | 566 } |
| 557 | 567 |
| 558 v8_inspector::V8InspectorSession* m_v8Session; | 568 v8_inspector::V8InspectorSession* m_v8Session; |
| 559 RefPtr<ScriptState> m_scriptState; | 569 RefPtr<ScriptState> m_scriptState; |
| 560 std::unique_ptr<RequestDataCallback> m_requestCallback; | 570 std::unique_ptr<RequestDataCallback> m_requestCallback; |
| 561 int m_skipCount; | 571 int m_skipCount; |
| 562 unsigned m_pageSize; | 572 unsigned m_pageSize; |
| 563 std::unique_ptr<Array<DataEntry>> m_result; | 573 std::unique_ptr<Array<DataEntry>> m_result; |
| 564 }; | 574 }; |
| 565 | 575 |
| 566 class DataLoader final : public ExecutableWithDatabase { | 576 class DataLoader final : public ExecutableWithDatabase<RequestDataCallback> { |
| 567 public: | 577 public: |
| 568 static PassRefPtr<DataLoader> create( | 578 static PassRefPtr<DataLoader> create( |
| 569 v8_inspector::V8InspectorSession* v8Session, | 579 v8_inspector::V8InspectorSession* v8Session, |
| 570 ScriptState* scriptState, | 580 ScriptState* scriptState, |
| 571 std::unique_ptr<RequestDataCallback> requestCallback, | 581 std::unique_ptr<RequestDataCallback> requestCallback, |
| 572 const String& objectStoreName, | 582 const String& objectStoreName, |
| 573 const String& indexName, | 583 const String& indexName, |
| 574 IDBKeyRange* idbKeyRange, | 584 IDBKeyRange* idbKeyRange, |
| 575 int skipCount, | 585 int skipCount, |
| 576 unsigned pageSize) { | 586 unsigned pageSize) { |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 idbRequest = idbObjectStore->openCursor( | 619 idbRequest = idbObjectStore->openCursor( |
| 610 getScriptState(), m_idbKeyRange.get(), WebIDBCursorDirectionNext); | 620 getScriptState(), m_idbKeyRange.get(), WebIDBCursorDirectionNext); |
| 611 } | 621 } |
| 612 OpenCursorCallback* openCursorCallback = OpenCursorCallback::create( | 622 OpenCursorCallback* openCursorCallback = OpenCursorCallback::create( |
| 613 m_v8Session, getScriptState(), std::move(m_requestCallback), | 623 m_v8Session, getScriptState(), std::move(m_requestCallback), |
| 614 m_skipCount, m_pageSize); | 624 m_skipCount, m_pageSize); |
| 615 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback, | 625 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback, |
| 616 false); | 626 false); |
| 617 } | 627 } |
| 618 | 628 |
| 619 RequestCallback* getRequestCallback() override { | 629 RequestDataCallback* getRequestCallback() override { |
| 620 return m_requestCallback.get(); | 630 return m_requestCallback.get(); |
| 621 } | 631 } |
| 622 DataLoader(v8_inspector::V8InspectorSession* v8Session, | 632 DataLoader(v8_inspector::V8InspectorSession* v8Session, |
| 623 ScriptState* scriptState, | 633 ScriptState* scriptState, |
| 624 std::unique_ptr<RequestDataCallback> requestCallback, | 634 std::unique_ptr<RequestDataCallback> requestCallback, |
| 625 const String& objectStoreName, | 635 const String& objectStoreName, |
| 626 const String& indexName, | 636 const String& indexName, |
| 627 IDBKeyRange* idbKeyRange, | 637 IDBKeyRange* idbKeyRange, |
| 628 int skipCount, | 638 int skipCount, |
| 629 unsigned pageSize) | 639 unsigned pageSize) |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 836 | 846 |
| 837 private: | 847 private: |
| 838 ClearObjectStoreListener( | 848 ClearObjectStoreListener( |
| 839 std::unique_ptr<ClearObjectStoreCallback> requestCallback) | 849 std::unique_ptr<ClearObjectStoreCallback> requestCallback) |
| 840 : EventListener(EventListener::CPPEventListenerType), | 850 : EventListener(EventListener::CPPEventListenerType), |
| 841 m_requestCallback(std::move(requestCallback)) {} | 851 m_requestCallback(std::move(requestCallback)) {} |
| 842 | 852 |
| 843 std::unique_ptr<ClearObjectStoreCallback> m_requestCallback; | 853 std::unique_ptr<ClearObjectStoreCallback> m_requestCallback; |
| 844 }; | 854 }; |
| 845 | 855 |
| 846 class ClearObjectStore final : public ExecutableWithDatabase { | 856 class ClearObjectStore final |
| 857 : public ExecutableWithDatabase<ClearObjectStoreCallback> { |
| 847 public: | 858 public: |
| 848 static PassRefPtr<ClearObjectStore> create( | 859 static PassRefPtr<ClearObjectStore> create( |
| 849 ScriptState* scriptState, | 860 ScriptState* scriptState, |
| 850 const String& objectStoreName, | 861 const String& objectStoreName, |
| 851 std::unique_ptr<ClearObjectStoreCallback> requestCallback) { | 862 std::unique_ptr<ClearObjectStoreCallback> requestCallback) { |
| 852 return adoptRef(new ClearObjectStore(scriptState, objectStoreName, | 863 return adoptRef(new ClearObjectStore(scriptState, objectStoreName, |
| 853 std::move(requestCallback))); | 864 std::move(requestCallback))); |
| 854 } | 865 } |
| 855 | 866 |
| 856 ClearObjectStore(ScriptState* scriptState, | 867 ClearObjectStore(ScriptState* scriptState, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 883 m_requestCallback->sendFailure( | 894 m_requestCallback->sendFailure( |
| 884 String::format("Could not clear object store '%s': %d", | 895 String::format("Could not clear object store '%s': %d", |
| 885 m_objectStoreName.utf8().data(), ec)); | 896 m_objectStoreName.utf8().data(), ec)); |
| 886 return; | 897 return; |
| 887 } | 898 } |
| 888 idbTransaction->addEventListener( | 899 idbTransaction->addEventListener( |
| 889 EventTypeNames::complete, | 900 EventTypeNames::complete, |
| 890 ClearObjectStoreListener::create(std::move(m_requestCallback)), false); | 901 ClearObjectStoreListener::create(std::move(m_requestCallback)), false); |
| 891 } | 902 } |
| 892 | 903 |
| 893 RequestCallback* getRequestCallback() override { | 904 ClearObjectStoreCallback* getRequestCallback() override { |
| 894 return m_requestCallback.get(); | 905 return m_requestCallback.get(); |
| 895 } | 906 } |
| 896 | 907 |
| 897 private: | 908 private: |
| 898 const String m_objectStoreName; | 909 const String m_objectStoreName; |
| 899 std::unique_ptr<ClearObjectStoreCallback> m_requestCallback; | 910 std::unique_ptr<ClearObjectStoreCallback> m_requestCallback; |
| 900 }; | 911 }; |
| 901 | 912 |
| 902 void InspectorIndexedDBAgent::clearObjectStore( | 913 void InspectorIndexedDBAgent::clearObjectStore( |
| 903 const String& securityOrigin, | 914 const String& securityOrigin, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 927 clearObjectStore->start(idbFactory, document->getSecurityOrigin(), | 938 clearObjectStore->start(idbFactory, document->getSecurityOrigin(), |
| 928 databaseName); | 939 databaseName); |
| 929 } | 940 } |
| 930 | 941 |
| 931 DEFINE_TRACE(InspectorIndexedDBAgent) { | 942 DEFINE_TRACE(InspectorIndexedDBAgent) { |
| 932 visitor->trace(m_inspectedFrames); | 943 visitor->trace(m_inspectedFrames); |
| 933 InspectorBaseAgent::trace(visitor); | 944 InspectorBaseAgent::trace(visitor); |
| 934 } | 945 } |
| 935 | 946 |
| 936 } // namespace blink | 947 } // namespace blink |
| OLD | NEW |