| 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 typedef blink::InspectorBackendDispatcher::IndexedDBCommandHandler::ClearObjectS
toreCallback ClearObjectStoreCallback; | 80 typedef blink::InspectorBackendDispatcher::IndexedDBCommandHandler::ClearObjectS
toreCallback ClearObjectStoreCallback; |
| 81 | 81 |
| 82 namespace blink { | 82 namespace blink { |
| 83 | 83 |
| 84 namespace IndexedDBAgentState { | 84 namespace IndexedDBAgentState { |
| 85 static const char indexedDBAgentEnabled[] = "indexedDBAgentEnabled"; | 85 static const char indexedDBAgentEnabled[] = "indexedDBAgentEnabled"; |
| 86 }; | 86 }; |
| 87 | 87 |
| 88 namespace { | 88 namespace { |
| 89 | 89 |
| 90 class GetDatabaseNamesCallback FINAL : public EventListener { | 90 class GetDatabaseNamesCallback final : public EventListener { |
| 91 WTF_MAKE_NONCOPYABLE(GetDatabaseNamesCallback); | 91 WTF_MAKE_NONCOPYABLE(GetDatabaseNamesCallback); |
| 92 public: | 92 public: |
| 93 static PassRefPtr<GetDatabaseNamesCallback> create(PassRefPtrWillBeRawPtr<Re
questDatabaseNamesCallback> requestCallback, const String& securityOrigin) | 93 static PassRefPtr<GetDatabaseNamesCallback> create(PassRefPtrWillBeRawPtr<Re
questDatabaseNamesCallback> requestCallback, const String& securityOrigin) |
| 94 { | 94 { |
| 95 return adoptRef(new GetDatabaseNamesCallback(requestCallback, securityOr
igin)); | 95 return adoptRef(new GetDatabaseNamesCallback(requestCallback, securityOr
igin)); |
| 96 } | 96 } |
| 97 | 97 |
| 98 virtual ~GetDatabaseNamesCallback() { } | 98 virtual ~GetDatabaseNamesCallback() { } |
| 99 | 99 |
| 100 virtual bool operator==(const EventListener& other) OVERRIDE | 100 virtual bool operator==(const EventListener& other) override |
| 101 { | 101 { |
| 102 return this == &other; | 102 return this == &other; |
| 103 } | 103 } |
| 104 | 104 |
| 105 virtual void handleEvent(ExecutionContext*, Event* event) OVERRIDE | 105 virtual void handleEvent(ExecutionContext*, Event* event) override |
| 106 { | 106 { |
| 107 if (!m_requestCallback->isActive()) | 107 if (!m_requestCallback->isActive()) |
| 108 return; | 108 return; |
| 109 if (event->type() != EventTypeNames::success) { | 109 if (event->type() != EventTypeNames::success) { |
| 110 m_requestCallback->sendFailure("Unexpected event type."); | 110 m_requestCallback->sendFailure("Unexpected event type."); |
| 111 return; | 111 return; |
| 112 } | 112 } |
| 113 | 113 |
| 114 IDBRequest* idbRequest = static_cast<IDBRequest*>(event->target()); | 114 IDBRequest* idbRequest = static_cast<IDBRequest*>(event->target()); |
| 115 IDBAny* requestResult = idbRequest->resultAsAny(); | 115 IDBAny* requestResult = idbRequest->resultAsAny(); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 141 virtual ~ExecutableWithDatabase() { }; | 141 virtual ~ExecutableWithDatabase() { }; |
| 142 void start(IDBFactory*, SecurityOrigin*, const String& databaseName); | 142 void start(IDBFactory*, SecurityOrigin*, const String& databaseName); |
| 143 virtual void execute(IDBDatabase*) = 0; | 143 virtual void execute(IDBDatabase*) = 0; |
| 144 virtual RequestCallback* requestCallback() = 0; | 144 virtual RequestCallback* requestCallback() = 0; |
| 145 ExecutionContext* context() const { return m_scriptState->executionContext()
; } | 145 ExecutionContext* context() const { return m_scriptState->executionContext()
; } |
| 146 ScriptState* scriptState() const { return m_scriptState.get(); } | 146 ScriptState* scriptState() const { return m_scriptState.get(); } |
| 147 private: | 147 private: |
| 148 RefPtr<ScriptState> m_scriptState; | 148 RefPtr<ScriptState> m_scriptState; |
| 149 }; | 149 }; |
| 150 | 150 |
| 151 class OpenDatabaseCallback FINAL : public EventListener { | 151 class OpenDatabaseCallback final : public EventListener { |
| 152 public: | 152 public: |
| 153 static PassRefPtr<OpenDatabaseCallback> create(ExecutableWithDatabase* execu
tableWithDatabase) | 153 static PassRefPtr<OpenDatabaseCallback> create(ExecutableWithDatabase* execu
tableWithDatabase) |
| 154 { | 154 { |
| 155 return adoptRef(new OpenDatabaseCallback(executableWithDatabase)); | 155 return adoptRef(new OpenDatabaseCallback(executableWithDatabase)); |
| 156 } | 156 } |
| 157 | 157 |
| 158 virtual ~OpenDatabaseCallback() { } | 158 virtual ~OpenDatabaseCallback() { } |
| 159 | 159 |
| 160 virtual bool operator==(const EventListener& other) OVERRIDE | 160 virtual bool operator==(const EventListener& other) override |
| 161 { | 161 { |
| 162 return this == &other; | 162 return this == &other; |
| 163 } | 163 } |
| 164 | 164 |
| 165 virtual void handleEvent(ExecutionContext* context, Event* event) OVERRIDE | 165 virtual void handleEvent(ExecutionContext* context, Event* event) override |
| 166 { | 166 { |
| 167 if (event->type() != EventTypeNames::success) { | 167 if (event->type() != EventTypeNames::success) { |
| 168 m_executableWithDatabase->requestCallback()->sendFailure("Unexpected
event type."); | 168 m_executableWithDatabase->requestCallback()->sendFailure("Unexpected
event type."); |
| 169 return; | 169 return; |
| 170 } | 170 } |
| 171 | 171 |
| 172 IDBOpenDBRequest* idbOpenDBRequest = static_cast<IDBOpenDBRequest*>(even
t->target()); | 172 IDBOpenDBRequest* idbOpenDBRequest = static_cast<IDBOpenDBRequest*>(even
t->target()); |
| 173 IDBAny* requestResult = idbOpenDBRequest->resultAsAny(); | 173 IDBAny* requestResult = idbOpenDBRequest->resultAsAny(); |
| 174 if (requestResult->type() != IDBAny::IDBDatabaseType) { | 174 if (requestResult->type() != IDBAny::IDBDatabaseType) { |
| 175 m_executableWithDatabase->requestCallback()->sendFailure("Unexpected
result type."); | 175 m_executableWithDatabase->requestCallback()->sendFailure("Unexpected
result type."); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 keyPath->setArray(array); | 248 keyPath->setArray(array); |
| 249 break; | 249 break; |
| 250 } | 250 } |
| 251 default: | 251 default: |
| 252 ASSERT_NOT_REACHED(); | 252 ASSERT_NOT_REACHED(); |
| 253 } | 253 } |
| 254 | 254 |
| 255 return keyPath.release(); | 255 return keyPath.release(); |
| 256 } | 256 } |
| 257 | 257 |
| 258 class DatabaseLoader FINAL : public ExecutableWithDatabase { | 258 class DatabaseLoader final : public ExecutableWithDatabase { |
| 259 public: | 259 public: |
| 260 static PassRefPtr<DatabaseLoader> create(ScriptState* scriptState, PassRefPt
rWillBeRawPtr<RequestDatabaseCallback> requestCallback) | 260 static PassRefPtr<DatabaseLoader> create(ScriptState* scriptState, PassRefPt
rWillBeRawPtr<RequestDatabaseCallback> requestCallback) |
| 261 { | 261 { |
| 262 return adoptRef(new DatabaseLoader(scriptState, requestCallback)); | 262 return adoptRef(new DatabaseLoader(scriptState, requestCallback)); |
| 263 } | 263 } |
| 264 | 264 |
| 265 virtual ~DatabaseLoader() { } | 265 virtual ~DatabaseLoader() { } |
| 266 | 266 |
| 267 virtual void execute(IDBDatabase* idbDatabase) OVERRIDE | 267 virtual void execute(IDBDatabase* idbDatabase) override |
| 268 { | 268 { |
| 269 if (!requestCallback()->isActive()) | 269 if (!requestCallback()->isActive()) |
| 270 return; | 270 return; |
| 271 | 271 |
| 272 const IDBDatabaseMetadata databaseMetadata = idbDatabase->metadata(); | 272 const IDBDatabaseMetadata databaseMetadata = idbDatabase->metadata(); |
| 273 | 273 |
| 274 RefPtr<TypeBuilder::Array<TypeBuilder::IndexedDB::ObjectStore> > objectS
tores = TypeBuilder::Array<TypeBuilder::IndexedDB::ObjectStore>::create(); | 274 RefPtr<TypeBuilder::Array<TypeBuilder::IndexedDB::ObjectStore> > objectS
tores = TypeBuilder::Array<TypeBuilder::IndexedDB::ObjectStore>::create(); |
| 275 | 275 |
| 276 for (IDBDatabaseMetadata::ObjectStoreMap::const_iterator it = databaseMe
tadata.objectStores.begin(); it != databaseMetadata.objectStores.end(); ++it) { | 276 for (IDBDatabaseMetadata::ObjectStoreMap::const_iterator it = databaseMe
tadata.objectStores.begin(); it != databaseMetadata.objectStores.end(); ++it) { |
| 277 const IDBObjectStoreMetadata& objectStoreMetadata = it->value; | 277 const IDBObjectStoreMetadata& objectStoreMetadata = it->value; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 298 } | 298 } |
| 299 RefPtr<DatabaseWithObjectStores> result = DatabaseWithObjectStores::crea
te() | 299 RefPtr<DatabaseWithObjectStores> result = DatabaseWithObjectStores::crea
te() |
| 300 .setName(databaseMetadata.name) | 300 .setName(databaseMetadata.name) |
| 301 .setIntVersion(databaseMetadata.intVersion) | 301 .setIntVersion(databaseMetadata.intVersion) |
| 302 .setVersion(databaseMetadata.version) | 302 .setVersion(databaseMetadata.version) |
| 303 .setObjectStores(objectStores); | 303 .setObjectStores(objectStores); |
| 304 | 304 |
| 305 m_requestCallback->sendSuccess(result); | 305 m_requestCallback->sendSuccess(result); |
| 306 } | 306 } |
| 307 | 307 |
| 308 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba
ck.get(); } | 308 virtual RequestCallback* requestCallback() override { return m_requestCallba
ck.get(); } |
| 309 private: | 309 private: |
| 310 DatabaseLoader(ScriptState* scriptState, PassRefPtrWillBeRawPtr<RequestDatab
aseCallback> requestCallback) | 310 DatabaseLoader(ScriptState* scriptState, PassRefPtrWillBeRawPtr<RequestDatab
aseCallback> requestCallback) |
| 311 : ExecutableWithDatabase(scriptState) | 311 : ExecutableWithDatabase(scriptState) |
| 312 , m_requestCallback(requestCallback) { } | 312 , m_requestCallback(requestCallback) { } |
| 313 RefPtrWillBePersistent<RequestDatabaseCallback> m_requestCallback; | 313 RefPtrWillBePersistent<RequestDatabaseCallback> m_requestCallback; |
| 314 }; | 314 }; |
| 315 | 315 |
| 316 static IDBKey* idbKeyFromInspectorObject(JSONObject* key) | 316 static IDBKey* idbKeyFromInspectorObject(JSONObject* key) |
| 317 { | 317 { |
| 318 IDBKey* idbKey; | 318 IDBKey* idbKey; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 bool upperOpen; | 379 bool upperOpen; |
| 380 if (!keyRange->getBoolean("upperOpen", &upperOpen)) | 380 if (!keyRange->getBoolean("upperOpen", &upperOpen)) |
| 381 return 0; | 381 return 0; |
| 382 IDBKeyRange::UpperBoundType upperBoundType = upperOpen ? IDBKeyRange::UpperB
oundOpen : IDBKeyRange::UpperBoundClosed; | 382 IDBKeyRange::UpperBoundType upperBoundType = upperOpen ? IDBKeyRange::UpperB
oundOpen : IDBKeyRange::UpperBoundClosed; |
| 383 | 383 |
| 384 return IDBKeyRange::create(idbLower, idbUpper, lowerBoundType, upperBoundTyp
e); | 384 return IDBKeyRange::create(idbLower, idbUpper, lowerBoundType, upperBoundTyp
e); |
| 385 } | 385 } |
| 386 | 386 |
| 387 class DataLoader; | 387 class DataLoader; |
| 388 | 388 |
| 389 class OpenCursorCallback FINAL : public EventListener { | 389 class OpenCursorCallback final : public EventListener { |
| 390 public: | 390 public: |
| 391 static PassRefPtr<OpenCursorCallback> create(ScriptState* scriptState, PassR
efPtrWillBeRawPtr<RequestDataCallback> requestCallback, int skipCount, unsigned
pageSize) | 391 static PassRefPtr<OpenCursorCallback> create(ScriptState* scriptState, PassR
efPtrWillBeRawPtr<RequestDataCallback> requestCallback, int skipCount, unsigned
pageSize) |
| 392 { | 392 { |
| 393 return adoptRef(new OpenCursorCallback(scriptState, requestCallback, ski
pCount, pageSize)); | 393 return adoptRef(new OpenCursorCallback(scriptState, requestCallback, ski
pCount, pageSize)); |
| 394 } | 394 } |
| 395 | 395 |
| 396 virtual ~OpenCursorCallback() { } | 396 virtual ~OpenCursorCallback() { } |
| 397 | 397 |
| 398 virtual bool operator==(const EventListener& other) OVERRIDE | 398 virtual bool operator==(const EventListener& other) override |
| 399 { | 399 { |
| 400 return this == &other; | 400 return this == &other; |
| 401 } | 401 } |
| 402 | 402 |
| 403 virtual void handleEvent(ExecutionContext*, Event* event) OVERRIDE | 403 virtual void handleEvent(ExecutionContext*, Event* event) override |
| 404 { | 404 { |
| 405 if (event->type() != EventTypeNames::success) { | 405 if (event->type() != EventTypeNames::success) { |
| 406 m_requestCallback->sendFailure("Unexpected event type."); | 406 m_requestCallback->sendFailure("Unexpected event type."); |
| 407 return; | 407 return; |
| 408 } | 408 } |
| 409 | 409 |
| 410 IDBRequest* idbRequest = static_cast<IDBRequest*>(event->target()); | 410 IDBRequest* idbRequest = static_cast<IDBRequest*>(event->target()); |
| 411 IDBAny* requestResult = idbRequest->resultAsAny(); | 411 IDBAny* requestResult = idbRequest->resultAsAny(); |
| 412 if (requestResult->type() == IDBAny::BufferType) { | 412 if (requestResult->type() == IDBAny::BufferType) { |
| 413 end(false); | 413 end(false); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 m_result = Array<DataEntry>::create(); | 480 m_result = Array<DataEntry>::create(); |
| 481 } | 481 } |
| 482 | 482 |
| 483 RefPtr<ScriptState> m_scriptState; | 483 RefPtr<ScriptState> m_scriptState; |
| 484 RefPtrWillBePersistent<RequestDataCallback> m_requestCallback; | 484 RefPtrWillBePersistent<RequestDataCallback> m_requestCallback; |
| 485 int m_skipCount; | 485 int m_skipCount; |
| 486 unsigned m_pageSize; | 486 unsigned m_pageSize; |
| 487 RefPtr<Array<DataEntry> > m_result; | 487 RefPtr<Array<DataEntry> > m_result; |
| 488 }; | 488 }; |
| 489 | 489 |
| 490 class DataLoader FINAL : public ExecutableWithDatabase { | 490 class DataLoader final : public ExecutableWithDatabase { |
| 491 public: | 491 public: |
| 492 static PassRefPtr<DataLoader> create(ScriptState* scriptState, PassRefPtrWil
lBeRawPtr<RequestDataCallback> requestCallback, const String& objectStoreName, c
onst String& indexName, IDBKeyRange* idbKeyRange, int skipCount, unsigned pageSi
ze) | 492 static PassRefPtr<DataLoader> create(ScriptState* scriptState, PassRefPtrWil
lBeRawPtr<RequestDataCallback> requestCallback, const String& objectStoreName, c
onst String& indexName, IDBKeyRange* idbKeyRange, int skipCount, unsigned pageSi
ze) |
| 493 { | 493 { |
| 494 return adoptRef(new DataLoader(scriptState, requestCallback, objectStore
Name, indexName, idbKeyRange, skipCount, pageSize)); | 494 return adoptRef(new DataLoader(scriptState, requestCallback, objectStore
Name, indexName, idbKeyRange, skipCount, pageSize)); |
| 495 } | 495 } |
| 496 | 496 |
| 497 virtual ~DataLoader() { } | 497 virtual ~DataLoader() { } |
| 498 | 498 |
| 499 virtual void execute(IDBDatabase* idbDatabase) OVERRIDE | 499 virtual void execute(IDBDatabase* idbDatabase) override |
| 500 { | 500 { |
| 501 if (!requestCallback()->isActive()) | 501 if (!requestCallback()->isActive()) |
| 502 return; | 502 return; |
| 503 IDBTransaction* idbTransaction = transactionForDatabase(scriptState(), i
dbDatabase, m_objectStoreName); | 503 IDBTransaction* idbTransaction = transactionForDatabase(scriptState(), i
dbDatabase, m_objectStoreName); |
| 504 if (!idbTransaction) { | 504 if (!idbTransaction) { |
| 505 m_requestCallback->sendFailure("Could not get transaction"); | 505 m_requestCallback->sendFailure("Could not get transaction"); |
| 506 return; | 506 return; |
| 507 } | 507 } |
| 508 IDBObjectStore* idbObjectStore = objectStoreForTransaction(idbTransactio
n, m_objectStoreName); | 508 IDBObjectStore* idbObjectStore = objectStoreForTransaction(idbTransactio
n, m_objectStoreName); |
| 509 if (!idbObjectStore) { | 509 if (!idbObjectStore) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 521 return; | 521 return; |
| 522 } | 522 } |
| 523 | 523 |
| 524 idbRequest = idbIndex->openCursor(scriptState(), m_idbKeyRange.get()
, WebIDBCursorDirectionNext); | 524 idbRequest = idbIndex->openCursor(scriptState(), m_idbKeyRange.get()
, WebIDBCursorDirectionNext); |
| 525 } else { | 525 } else { |
| 526 idbRequest = idbObjectStore->openCursor(scriptState(), m_idbKeyRange
.get(), WebIDBCursorDirectionNext); | 526 idbRequest = idbObjectStore->openCursor(scriptState(), m_idbKeyRange
.get(), WebIDBCursorDirectionNext); |
| 527 } | 527 } |
| 528 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback
, false); | 528 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback
, false); |
| 529 } | 529 } |
| 530 | 530 |
| 531 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba
ck.get(); } | 531 virtual RequestCallback* requestCallback() override { return m_requestCallba
ck.get(); } |
| 532 DataLoader(ScriptState* scriptState, PassRefPtrWillBeRawPtr<RequestDataCallb
ack> requestCallback, const String& objectStoreName, const String& indexName, ID
BKeyRange* idbKeyRange, int skipCount, unsigned pageSize) | 532 DataLoader(ScriptState* scriptState, PassRefPtrWillBeRawPtr<RequestDataCallb
ack> requestCallback, const String& objectStoreName, const String& indexName, ID
BKeyRange* idbKeyRange, int skipCount, unsigned pageSize) |
| 533 : ExecutableWithDatabase(scriptState) | 533 : ExecutableWithDatabase(scriptState) |
| 534 , m_requestCallback(requestCallback) | 534 , m_requestCallback(requestCallback) |
| 535 , m_objectStoreName(objectStoreName) | 535 , m_objectStoreName(objectStoreName) |
| 536 , m_indexName(indexName) | 536 , m_indexName(indexName) |
| 537 , m_idbKeyRange(idbKeyRange) | 537 , m_idbKeyRange(idbKeyRange) |
| 538 , m_skipCount(skipCount) | 538 , m_skipCount(skipCount) |
| 539 , m_pageSize(pageSize) | 539 , m_pageSize(pageSize) |
| 540 { | 540 { |
| 541 } | 541 } |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 *errorString = "Can not parse key range."; | 678 *errorString = "Can not parse key range."; |
| 679 return; | 679 return; |
| 680 } | 680 } |
| 681 | 681 |
| 682 ScriptState* scriptState = ScriptState::forMainWorld(frame); | 682 ScriptState* scriptState = ScriptState::forMainWorld(frame); |
| 683 ScriptState::Scope scope(scriptState); | 683 ScriptState::Scope scope(scriptState); |
| 684 RefPtr<DataLoader> dataLoader = DataLoader::create(scriptState, requestCallb
ack, objectStoreName, indexName, idbKeyRange, skipCount, pageSize); | 684 RefPtr<DataLoader> dataLoader = DataLoader::create(scriptState, requestCallb
ack, objectStoreName, indexName, idbKeyRange, skipCount, pageSize); |
| 685 dataLoader->start(idbFactory, document->securityOrigin(), databaseName); | 685 dataLoader->start(idbFactory, document->securityOrigin(), databaseName); |
| 686 } | 686 } |
| 687 | 687 |
| 688 class ClearObjectStoreListener FINAL : public EventListener { | 688 class ClearObjectStoreListener final : public EventListener { |
| 689 WTF_MAKE_NONCOPYABLE(ClearObjectStoreListener); | 689 WTF_MAKE_NONCOPYABLE(ClearObjectStoreListener); |
| 690 public: | 690 public: |
| 691 static PassRefPtr<ClearObjectStoreListener> create(PassRefPtrWillBeRawPtr<Cl
earObjectStoreCallback> requestCallback) | 691 static PassRefPtr<ClearObjectStoreListener> create(PassRefPtrWillBeRawPtr<Cl
earObjectStoreCallback> requestCallback) |
| 692 { | 692 { |
| 693 return adoptRef(new ClearObjectStoreListener(requestCallback)); | 693 return adoptRef(new ClearObjectStoreListener(requestCallback)); |
| 694 } | 694 } |
| 695 | 695 |
| 696 virtual ~ClearObjectStoreListener() { } | 696 virtual ~ClearObjectStoreListener() { } |
| 697 | 697 |
| 698 virtual bool operator==(const EventListener& other) OVERRIDE | 698 virtual bool operator==(const EventListener& other) override |
| 699 { | 699 { |
| 700 return this == &other; | 700 return this == &other; |
| 701 } | 701 } |
| 702 | 702 |
| 703 virtual void handleEvent(ExecutionContext*, Event* event) OVERRIDE | 703 virtual void handleEvent(ExecutionContext*, Event* event) override |
| 704 { | 704 { |
| 705 if (!m_requestCallback->isActive()) | 705 if (!m_requestCallback->isActive()) |
| 706 return; | 706 return; |
| 707 if (event->type() != EventTypeNames::complete) { | 707 if (event->type() != EventTypeNames::complete) { |
| 708 m_requestCallback->sendFailure("Unexpected event type."); | 708 m_requestCallback->sendFailure("Unexpected event type."); |
| 709 return; | 709 return; |
| 710 } | 710 } |
| 711 | 711 |
| 712 m_requestCallback->sendSuccess(); | 712 m_requestCallback->sendSuccess(); |
| 713 } | 713 } |
| 714 private: | 714 private: |
| 715 ClearObjectStoreListener(PassRefPtrWillBeRawPtr<ClearObjectStoreCallback> re
questCallback) | 715 ClearObjectStoreListener(PassRefPtrWillBeRawPtr<ClearObjectStoreCallback> re
questCallback) |
| 716 : EventListener(EventListener::CPPEventListenerType) | 716 : EventListener(EventListener::CPPEventListenerType) |
| 717 , m_requestCallback(requestCallback) | 717 , m_requestCallback(requestCallback) |
| 718 { | 718 { |
| 719 } | 719 } |
| 720 | 720 |
| 721 RefPtrWillBePersistent<ClearObjectStoreCallback> m_requestCallback; | 721 RefPtrWillBePersistent<ClearObjectStoreCallback> m_requestCallback; |
| 722 }; | 722 }; |
| 723 | 723 |
| 724 | 724 |
| 725 class ClearObjectStore FINAL : public ExecutableWithDatabase { | 725 class ClearObjectStore final : public ExecutableWithDatabase { |
| 726 public: | 726 public: |
| 727 static PassRefPtr<ClearObjectStore> create(ScriptState* scriptState, const S
tring& objectStoreName, PassRefPtrWillBeRawPtr<ClearObjectStoreCallback> request
Callback) | 727 static PassRefPtr<ClearObjectStore> create(ScriptState* scriptState, const S
tring& objectStoreName, PassRefPtrWillBeRawPtr<ClearObjectStoreCallback> request
Callback) |
| 728 { | 728 { |
| 729 return adoptRef(new ClearObjectStore(scriptState, objectStoreName, reque
stCallback)); | 729 return adoptRef(new ClearObjectStore(scriptState, objectStoreName, reque
stCallback)); |
| 730 } | 730 } |
| 731 | 731 |
| 732 ClearObjectStore(ScriptState* scriptState, const String& objectStoreName, Pa
ssRefPtrWillBeRawPtr<ClearObjectStoreCallback> requestCallback) | 732 ClearObjectStore(ScriptState* scriptState, const String& objectStoreName, Pa
ssRefPtrWillBeRawPtr<ClearObjectStoreCallback> requestCallback) |
| 733 : ExecutableWithDatabase(scriptState) | 733 : ExecutableWithDatabase(scriptState) |
| 734 , m_objectStoreName(objectStoreName) | 734 , m_objectStoreName(objectStoreName) |
| 735 , m_requestCallback(requestCallback) | 735 , m_requestCallback(requestCallback) |
| 736 { | 736 { |
| 737 } | 737 } |
| 738 | 738 |
| 739 virtual void execute(IDBDatabase* idbDatabase) OVERRIDE | 739 virtual void execute(IDBDatabase* idbDatabase) override |
| 740 { | 740 { |
| 741 if (!requestCallback()->isActive()) | 741 if (!requestCallback()->isActive()) |
| 742 return; | 742 return; |
| 743 IDBTransaction* idbTransaction = transactionForDatabase(scriptState(), i
dbDatabase, m_objectStoreName, IndexedDBNames::readwrite); | 743 IDBTransaction* idbTransaction = transactionForDatabase(scriptState(), i
dbDatabase, m_objectStoreName, IndexedDBNames::readwrite); |
| 744 if (!idbTransaction) { | 744 if (!idbTransaction) { |
| 745 m_requestCallback->sendFailure("Could not get transaction"); | 745 m_requestCallback->sendFailure("Could not get transaction"); |
| 746 return; | 746 return; |
| 747 } | 747 } |
| 748 IDBObjectStore* idbObjectStore = objectStoreForTransaction(idbTransactio
n, m_objectStoreName); | 748 IDBObjectStore* idbObjectStore = objectStoreForTransaction(idbTransactio
n, m_objectStoreName); |
| 749 if (!idbObjectStore) { | 749 if (!idbObjectStore) { |
| 750 m_requestCallback->sendFailure("Could not get object store"); | 750 m_requestCallback->sendFailure("Could not get object store"); |
| 751 return; | 751 return; |
| 752 } | 752 } |
| 753 | 753 |
| 754 TrackExceptionState exceptionState; | 754 TrackExceptionState exceptionState; |
| 755 idbObjectStore->clear(scriptState(), exceptionState); | 755 idbObjectStore->clear(scriptState(), exceptionState); |
| 756 ASSERT(!exceptionState.hadException()); | 756 ASSERT(!exceptionState.hadException()); |
| 757 if (exceptionState.hadException()) { | 757 if (exceptionState.hadException()) { |
| 758 ExceptionCode ec = exceptionState.code(); | 758 ExceptionCode ec = exceptionState.code(); |
| 759 m_requestCallback->sendFailure(String::format("Could not clear objec
t store '%s': %d", m_objectStoreName.utf8().data(), ec)); | 759 m_requestCallback->sendFailure(String::format("Could not clear objec
t store '%s': %d", m_objectStoreName.utf8().data(), ec)); |
| 760 return; | 760 return; |
| 761 } | 761 } |
| 762 idbTransaction->addEventListener(EventTypeNames::complete, ClearObjectSt
oreListener::create(m_requestCallback), false); | 762 idbTransaction->addEventListener(EventTypeNames::complete, ClearObjectSt
oreListener::create(m_requestCallback), false); |
| 763 } | 763 } |
| 764 | 764 |
| 765 virtual RequestCallback* requestCallback() OVERRIDE { return m_requestCallba
ck.get(); } | 765 virtual RequestCallback* requestCallback() override { return m_requestCallba
ck.get(); } |
| 766 private: | 766 private: |
| 767 const String m_objectStoreName; | 767 const String m_objectStoreName; |
| 768 RefPtrWillBePersistent<ClearObjectStoreCallback> m_requestCallback; | 768 RefPtrWillBePersistent<ClearObjectStoreCallback> m_requestCallback; |
| 769 }; | 769 }; |
| 770 | 770 |
| 771 void InspectorIndexedDBAgent::clearObjectStore(ErrorString* errorString, const S
tring& securityOrigin, const String& databaseName, const String& objectStoreName
, PassRefPtrWillBeRawPtr<ClearObjectStoreCallback> requestCallback) | 771 void InspectorIndexedDBAgent::clearObjectStore(ErrorString* errorString, const S
tring& securityOrigin, const String& databaseName, const String& objectStoreName
, PassRefPtrWillBeRawPtr<ClearObjectStoreCallback> requestCallback) |
| 772 { | 772 { |
| 773 LocalFrame* frame = findFrameWithSecurityOrigin(m_page, securityOrigin); | 773 LocalFrame* frame = findFrameWithSecurityOrigin(m_page, securityOrigin); |
| 774 Document* document = assertDocument(errorString, frame); | 774 Document* document = assertDocument(errorString, frame); |
| 775 if (!document) | 775 if (!document) |
| 776 return; | 776 return; |
| 777 IDBFactory* idbFactory = assertIDBFactory(errorString, document); | 777 IDBFactory* idbFactory = assertIDBFactory(errorString, document); |
| 778 if (!idbFactory) | 778 if (!idbFactory) |
| 779 return; | 779 return; |
| 780 | 780 |
| 781 ScriptState* scriptState = ScriptState::forMainWorld(frame); | 781 ScriptState* scriptState = ScriptState::forMainWorld(frame); |
| 782 ScriptState::Scope scope(scriptState); | 782 ScriptState::Scope scope(scriptState); |
| 783 RefPtr<ClearObjectStore> clearObjectStore = ClearObjectStore::create(scriptS
tate, objectStoreName, requestCallback); | 783 RefPtr<ClearObjectStore> clearObjectStore = ClearObjectStore::create(scriptS
tate, objectStoreName, requestCallback); |
| 784 clearObjectStore->start(idbFactory, document->securityOrigin(), databaseName
); | 784 clearObjectStore->start(idbFactory, document->securityOrigin(), databaseName
); |
| 785 } | 785 } |
| 786 | 786 |
| 787 void InspectorIndexedDBAgent::trace(Visitor* visitor) | 787 void InspectorIndexedDBAgent::trace(Visitor* visitor) |
| 788 { | 788 { |
| 789 visitor->trace(m_page); | 789 visitor->trace(m_page); |
| 790 InspectorBaseAgent::trace(visitor); | 790 InspectorBaseAgent::trace(visitor); |
| 791 } | 791 } |
| 792 | 792 |
| 793 } // namespace blink | 793 } // namespace blink |
| OLD | NEW |