Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp

Issue 2154103002: [DevTools] Remove toProtocolValue from v8_inspector/public. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 #include "modules/indexeddb/IDBIndex.h" 49 #include "modules/indexeddb/IDBIndex.h"
50 #include "modules/indexeddb/IDBKey.h" 50 #include "modules/indexeddb/IDBKey.h"
51 #include "modules/indexeddb/IDBKeyPath.h" 51 #include "modules/indexeddb/IDBKeyPath.h"
52 #include "modules/indexeddb/IDBKeyRange.h" 52 #include "modules/indexeddb/IDBKeyRange.h"
53 #include "modules/indexeddb/IDBMetadata.h" 53 #include "modules/indexeddb/IDBMetadata.h"
54 #include "modules/indexeddb/IDBObjectStore.h" 54 #include "modules/indexeddb/IDBObjectStore.h"
55 #include "modules/indexeddb/IDBOpenDBRequest.h" 55 #include "modules/indexeddb/IDBOpenDBRequest.h"
56 #include "modules/indexeddb/IDBRequest.h" 56 #include "modules/indexeddb/IDBRequest.h"
57 #include "modules/indexeddb/IDBTransaction.h" 57 #include "modules/indexeddb/IDBTransaction.h"
58 #include "platform/inspector_protocol/Values.h" 58 #include "platform/inspector_protocol/Values.h"
59 #include "platform/v8_inspector/public/V8ToProtocolValue.h" 59 #include "platform/v8_inspector/public/V8InspectorSession.h"
60 #include "platform/weborigin/SecurityOrigin.h" 60 #include "platform/weborigin/SecurityOrigin.h"
61 #include "public/platform/modules/indexeddb/WebIDBCursor.h" 61 #include "public/platform/modules/indexeddb/WebIDBCursor.h"
62 #include "public/platform/modules/indexeddb/WebIDBTypes.h" 62 #include "public/platform/modules/indexeddb/WebIDBTypes.h"
63 #include "wtf/Vector.h" 63 #include "wtf/Vector.h"
64 64
65 using blink::protocol::Array; 65 using blink::protocol::Array;
66 using blink::protocol::IndexedDB::DatabaseWithObjectStores; 66 using blink::protocol::IndexedDB::DatabaseWithObjectStores;
67 using blink::protocol::IndexedDB::DataEntry; 67 using blink::protocol::IndexedDB::DataEntry;
68 using blink::protocol::IndexedDB::Key; 68 using blink::protocol::IndexedDB::Key;
69 using blink::protocol::IndexedDB::KeyPath; 69 using blink::protocol::IndexedDB::KeyPath;
70 using blink::protocol::IndexedDB::KeyRange; 70 using blink::protocol::IndexedDB::KeyRange;
71 using blink::protocol::IndexedDB::ObjectStore; 71 using blink::protocol::IndexedDB::ObjectStore;
72 using blink::protocol::IndexedDB::ObjectStoreIndex; 72 using blink::protocol::IndexedDB::ObjectStoreIndex;
73 73
74 typedef blink::protocol::BackendCallback RequestCallback; 74 typedef blink::protocol::BackendCallback RequestCallback;
75 typedef blink::protocol::IndexedDB::Backend::RequestDatabaseNamesCallback Reques tDatabaseNamesCallback; 75 typedef blink::protocol::IndexedDB::Backend::RequestDatabaseNamesCallback Reques tDatabaseNamesCallback;
76 typedef blink::protocol::IndexedDB::Backend::RequestDatabaseCallback RequestData baseCallback; 76 typedef blink::protocol::IndexedDB::Backend::RequestDatabaseCallback RequestData baseCallback;
77 typedef blink::protocol::IndexedDB::Backend::RequestDataCallback RequestDataCall back; 77 typedef blink::protocol::IndexedDB::Backend::RequestDataCallback RequestDataCall back;
78 typedef blink::protocol::IndexedDB::Backend::ClearObjectStoreCallback ClearObjec tStoreCallback; 78 typedef blink::protocol::IndexedDB::Backend::ClearObjectStoreCallback ClearObjec tStoreCallback;
79 79
80 namespace blink { 80 namespace blink {
81 81
82 namespace IndexedDBAgentState { 82 namespace IndexedDBAgentState {
83 static const char indexedDBAgentEnabled[] = "indexedDBAgentEnabled"; 83 static const char indexedDBAgentEnabled[] = "indexedDBAgentEnabled";
84 }; 84 };
85 85
86 namespace { 86 namespace {
87 87
88 static const char indexedDBObjectGroup[] = "indexeddb";
89
88 class GetDatabaseNamesCallback final : public EventListener { 90 class GetDatabaseNamesCallback final : public EventListener {
89 WTF_MAKE_NONCOPYABLE(GetDatabaseNamesCallback); 91 WTF_MAKE_NONCOPYABLE(GetDatabaseNamesCallback);
90 public: 92 public:
91 static GetDatabaseNamesCallback* create(std::unique_ptr<RequestDatabaseNames Callback> requestCallback, const String& securityOrigin) 93 static GetDatabaseNamesCallback* create(std::unique_ptr<RequestDatabaseNames Callback> requestCallback, const String& securityOrigin)
92 { 94 {
93 return new GetDatabaseNamesCallback(std::move(requestCallback), security Origin); 95 return new GetDatabaseNamesCallback(std::move(requestCallback), security Origin);
94 } 96 }
95 97
96 ~GetDatabaseNamesCallback() override { } 98 ~GetDatabaseNamesCallback() override { }
97 99
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 402
401 IDBKeyRange::LowerBoundType lowerBoundType = keyRange->getLowerOpen() ? IDBK eyRange::LowerBoundOpen : IDBKeyRange::LowerBoundClosed; 403 IDBKeyRange::LowerBoundType lowerBoundType = keyRange->getLowerOpen() ? IDBK eyRange::LowerBoundOpen : IDBKeyRange::LowerBoundClosed;
402 IDBKeyRange::UpperBoundType upperBoundType = keyRange->getUpperOpen() ? IDBK eyRange::UpperBoundOpen : IDBKeyRange::UpperBoundClosed; 404 IDBKeyRange::UpperBoundType upperBoundType = keyRange->getUpperOpen() ? IDBK eyRange::UpperBoundOpen : IDBKeyRange::UpperBoundClosed;
403 return IDBKeyRange::create(idbLower, idbUpper, lowerBoundType, upperBoundTyp e); 405 return IDBKeyRange::create(idbLower, idbUpper, lowerBoundType, upperBoundTyp e);
404 } 406 }
405 407
406 class DataLoader; 408 class DataLoader;
407 409
408 class OpenCursorCallback final : public EventListener { 410 class OpenCursorCallback final : public EventListener {
409 public: 411 public:
410 static OpenCursorCallback* create(ScriptState* scriptState, std::unique_ptr< RequestDataCallback> requestCallback, int skipCount, unsigned pageSize) 412 static OpenCursorCallback* create(V8InspectorSession* v8Session, ScriptState * scriptState, std::unique_ptr<RequestDataCallback> requestCallback, int skipCou nt, unsigned pageSize)
411 { 413 {
412 return new OpenCursorCallback(scriptState, std::move(requestCallback), s kipCount, pageSize); 414 return new OpenCursorCallback(v8Session, scriptState, std::move(requestC allback), skipCount, pageSize);
413 } 415 }
414 416
415 ~OpenCursorCallback() override { } 417 ~OpenCursorCallback() override { }
416 418
417 bool operator==(const EventListener& other) const override 419 bool operator==(const EventListener& other) const override
418 { 420 {
419 return this == &other; 421 return this == &other;
420 } 422 }
421 423
422 void handleEvent(ExecutionContext*, Event* event) override 424 void handleEvent(ExecutionContext*, Event* event) override
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 TrackExceptionState exceptionState; 459 TrackExceptionState exceptionState;
458 idbCursor->continueFunction(nullptr, nullptr, exceptionState); 460 idbCursor->continueFunction(nullptr, nullptr, exceptionState);
459 if (exceptionState.hadException()) { 461 if (exceptionState.hadException()) {
460 m_requestCallback->sendFailure("Could not continue cursor."); 462 m_requestCallback->sendFailure("Could not continue cursor.");
461 return; 463 return;
462 } 464 }
463 465
464 Document* document = toDocument(m_scriptState->getExecutionContext()); 466 Document* document = toDocument(m_scriptState->getExecutionContext());
465 if (!document) 467 if (!document)
466 return; 468 return;
467 // FIXME: There are no tests for this error showing when a recursive
468 // object is inspected.
469 const String16 errorMessage("\"Inspection error. Maximum depth reached?\ "");
470 ScriptState* scriptState = m_scriptState.get(); 469 ScriptState* scriptState = m_scriptState.get();
471 ScriptState::Scope scope(scriptState); 470 ScriptState::Scope scope(scriptState);
472 std::unique_ptr<protocol::Value> keyJsonValue = toProtocolValue(scriptSt ate->context(), idbCursor->key(scriptState).v8Value()); 471 v8::Local<v8::Context> context = scriptState->context();
473 std::unique_ptr<protocol::Value> primaryKeyJsonValue = toProtocolValue(s criptState->context(), idbCursor->primaryKey(scriptState).v8Value());
474 std::unique_ptr<protocol::Value> valueJsonValue = toProtocolValue(script State->context(), idbCursor->value(scriptState).v8Value());
475 String16 key = keyJsonValue ? keyJsonValue->toJSONString() : errorMessag e;
476 String16 value = valueJsonValue ? valueJsonValue->toJSONString() : error Message;
477 String primaryKey = primaryKeyJsonValue ? primaryKeyJsonValue->toJSONStr ing() : errorMessage;
478 std::unique_ptr<DataEntry> dataEntry = DataEntry::create() 472 std::unique_ptr<DataEntry> dataEntry = DataEntry::create()
479 .setKey(key) 473 .setKey(m_v8Session->wrapObject(context, idbCursor->key(scriptState) .v8Value(), indexedDBObjectGroup, false))
480 .setPrimaryKey(primaryKey) 474 .setPrimaryKey(m_v8Session->wrapObject(context, idbCursor->primaryKe y(scriptState).v8Value(), indexedDBObjectGroup, false))
481 .setValue(value).build(); 475 .setValue(m_v8Session->wrapObject(context, idbCursor->value(scriptSt ate).v8Value(), indexedDBObjectGroup, false))
476 .build();
482 m_result->addItem(std::move(dataEntry)); 477 m_result->addItem(std::move(dataEntry));
483 } 478 }
484 479
485 void end(bool hasMore) 480 void end(bool hasMore)
486 { 481 {
487 m_requestCallback->sendSuccess(std::move(m_result), hasMore); 482 m_requestCallback->sendSuccess(std::move(m_result), hasMore);
488 } 483 }
489 484
490 DEFINE_INLINE_VIRTUAL_TRACE() 485 DEFINE_INLINE_VIRTUAL_TRACE()
491 { 486 {
492 EventListener::trace(visitor); 487 EventListener::trace(visitor);
493 } 488 }
494 489
495 private: 490 private:
496 OpenCursorCallback(ScriptState* scriptState, std::unique_ptr<RequestDataCall back> requestCallback, int skipCount, unsigned pageSize) 491 OpenCursorCallback(V8InspectorSession* v8Session, ScriptState* scriptState, std::unique_ptr<RequestDataCallback> requestCallback, int skipCount, unsigned pa geSize)
497 : EventListener(EventListener::CPPEventListenerType) 492 : EventListener(EventListener::CPPEventListenerType)
493 , m_v8Session(v8Session)
498 , m_scriptState(scriptState) 494 , m_scriptState(scriptState)
499 , m_requestCallback(std::move(requestCallback)) 495 , m_requestCallback(std::move(requestCallback))
500 , m_skipCount(skipCount) 496 , m_skipCount(skipCount)
501 , m_pageSize(pageSize) 497 , m_pageSize(pageSize)
502 { 498 {
503 m_result = Array<DataEntry>::create(); 499 m_result = Array<DataEntry>::create();
504 } 500 }
505 501
502 V8InspectorSession* m_v8Session;
506 RefPtr<ScriptState> m_scriptState; 503 RefPtr<ScriptState> m_scriptState;
507 std::unique_ptr<RequestDataCallback> m_requestCallback; 504 std::unique_ptr<RequestDataCallback> m_requestCallback;
508 int m_skipCount; 505 int m_skipCount;
509 unsigned m_pageSize; 506 unsigned m_pageSize;
510 std::unique_ptr<Array<DataEntry>> m_result; 507 std::unique_ptr<Array<DataEntry>> m_result;
511 }; 508 };
512 509
513 class DataLoader final : public ExecutableWithDatabase { 510 class DataLoader final : public ExecutableWithDatabase {
514 public: 511 public:
515 static PassRefPtr<DataLoader> create(ScriptState* scriptState, std::unique_p tr<RequestDataCallback> requestCallback, const String& objectStoreName, const St ring& indexName, IDBKeyRange* idbKeyRange, int skipCount, unsigned pageSize) 512 static PassRefPtr<DataLoader> create(V8InspectorSession* v8Session, ScriptSt ate* scriptState, std::unique_ptr<RequestDataCallback> requestCallback, const St ring& objectStoreName, const String& indexName, IDBKeyRange* idbKeyRange, int sk ipCount, unsigned pageSize)
516 { 513 {
517 return adoptRef(new DataLoader(scriptState, std::move(requestCallback), objectStoreName, indexName, idbKeyRange, skipCount, pageSize)); 514 return adoptRef(new DataLoader(v8Session, scriptState, std::move(request Callback), objectStoreName, indexName, idbKeyRange, skipCount, pageSize));
518 } 515 }
519 516
520 ~DataLoader() override { } 517 ~DataLoader() override { }
521 518
522 void execute(IDBDatabase* idbDatabase) override 519 void execute(IDBDatabase* idbDatabase) override
523 { 520 {
524 IDBTransaction* idbTransaction = transactionForDatabase(getScriptState() , idbDatabase, m_objectStoreName); 521 IDBTransaction* idbTransaction = transactionForDatabase(getScriptState() , idbDatabase, m_objectStoreName);
525 if (!idbTransaction) { 522 if (!idbTransaction) {
526 m_requestCallback->sendFailure("Could not get transaction"); 523 m_requestCallback->sendFailure("Could not get transaction");
527 return; 524 return;
528 } 525 }
529 IDBObjectStore* idbObjectStore = objectStoreForTransaction(idbTransactio n, m_objectStoreName); 526 IDBObjectStore* idbObjectStore = objectStoreForTransaction(idbTransactio n, m_objectStoreName);
530 if (!idbObjectStore) { 527 if (!idbObjectStore) {
531 m_requestCallback->sendFailure("Could not get object store"); 528 m_requestCallback->sendFailure("Could not get object store");
532 return; 529 return;
533 } 530 }
534 531
535 IDBRequest* idbRequest; 532 IDBRequest* idbRequest;
536 if (!m_indexName.isEmpty()) { 533 if (!m_indexName.isEmpty()) {
537 IDBIndex* idbIndex = indexForObjectStore(idbObjectStore, m_indexName ); 534 IDBIndex* idbIndex = indexForObjectStore(idbObjectStore, m_indexName );
538 if (!idbIndex) { 535 if (!idbIndex) {
539 m_requestCallback->sendFailure("Could not get index"); 536 m_requestCallback->sendFailure("Could not get index");
540 return; 537 return;
541 } 538 }
542 539
543 idbRequest = idbIndex->openCursor(getScriptState(), m_idbKeyRange.ge t(), WebIDBCursorDirectionNext); 540 idbRequest = idbIndex->openCursor(getScriptState(), m_idbKeyRange.ge t(), WebIDBCursorDirectionNext);
544 } else { 541 } else {
545 idbRequest = idbObjectStore->openCursor(getScriptState(), m_idbKeyRa nge.get(), WebIDBCursorDirectionNext); 542 idbRequest = idbObjectStore->openCursor(getScriptState(), m_idbKeyRa nge.get(), WebIDBCursorDirectionNext);
546 } 543 }
547 OpenCursorCallback* openCursorCallback = OpenCursorCallback::create(getS criptState(), std::move(m_requestCallback), m_skipCount, m_pageSize); 544 OpenCursorCallback* openCursorCallback = OpenCursorCallback::create(m_v8 Session, getScriptState(), std::move(m_requestCallback), m_skipCount, m_pageSize );
548 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback , false); 545 idbRequest->addEventListener(EventTypeNames::success, openCursorCallback , false);
549 } 546 }
550 547
551 RequestCallback* getRequestCallback() override { return m_requestCallback.ge t(); } 548 RequestCallback* getRequestCallback() override { return m_requestCallback.ge t(); }
552 DataLoader(ScriptState* scriptState, std::unique_ptr<RequestDataCallback> re questCallback, const String& objectStoreName, const String& indexName, IDBKeyRan ge* idbKeyRange, int skipCount, unsigned pageSize) 549 DataLoader(V8InspectorSession* v8Session, ScriptState* scriptState, std::uni que_ptr<RequestDataCallback> requestCallback, const String& objectStoreName, con st String& indexName, IDBKeyRange* idbKeyRange, int skipCount, unsigned pageSize )
553 : ExecutableWithDatabase(scriptState) 550 : ExecutableWithDatabase(scriptState)
551 , m_v8Session(v8Session)
554 , m_requestCallback(std::move(requestCallback)) 552 , m_requestCallback(std::move(requestCallback))
555 , m_objectStoreName(objectStoreName) 553 , m_objectStoreName(objectStoreName)
556 , m_indexName(indexName) 554 , m_indexName(indexName)
557 , m_idbKeyRange(idbKeyRange) 555 , m_idbKeyRange(idbKeyRange)
558 , m_skipCount(skipCount) 556 , m_skipCount(skipCount)
559 , m_pageSize(pageSize) 557 , m_pageSize(pageSize)
560 { 558 {
561 } 559 }
562 560
561 V8InspectorSession* m_v8Session;
563 std::unique_ptr<RequestDataCallback> m_requestCallback; 562 std::unique_ptr<RequestDataCallback> m_requestCallback;
564 String m_objectStoreName; 563 String m_objectStoreName;
565 String m_indexName; 564 String m_indexName;
566 Persistent<IDBKeyRange> m_idbKeyRange; 565 Persistent<IDBKeyRange> m_idbKeyRange;
567 int m_skipCount; 566 int m_skipCount;
568 unsigned m_pageSize; 567 unsigned m_pageSize;
569 }; 568 };
570 569
571 } // namespace 570 } // namespace
572 571
573 // static 572 // static
574 InspectorIndexedDBAgent* InspectorIndexedDBAgent::create(InspectedFrames* inspec tedFrames) 573 InspectorIndexedDBAgent::InspectorIndexedDBAgent(InspectedFrames* inspectedFrame s, V8InspectorSession* v8Session)
575 {
576 return new InspectorIndexedDBAgent(inspectedFrames);
577 }
578
579 InspectorIndexedDBAgent::InspectorIndexedDBAgent(InspectedFrames* inspectedFrame s)
580 : m_inspectedFrames(inspectedFrames) 574 : m_inspectedFrames(inspectedFrames)
575 , m_v8Session(v8Session)
581 { 576 {
582 } 577 }
583 578
584 InspectorIndexedDBAgent::~InspectorIndexedDBAgent() 579 InspectorIndexedDBAgent::~InspectorIndexedDBAgent()
585 { 580 {
586 } 581 }
587 582
588 void InspectorIndexedDBAgent::restore() 583 void InspectorIndexedDBAgent::restore()
589 { 584 {
590 if (m_state->booleanProperty(IndexedDBAgentState::indexedDBAgentEnabled, fal se)) { 585 if (m_state->booleanProperty(IndexedDBAgentState::indexedDBAgentEnabled, fal se)) {
591 ErrorString error; 586 ErrorString error;
592 enable(&error); 587 enable(&error);
593 } 588 }
594 } 589 }
595 590
591 void InspectorIndexedDBAgent::didCommitLoadForLocalFrame(LocalFrame* frame)
592 {
593 if (frame == m_inspectedFrames->root())
594 m_v8Session->releaseObjectGroup(indexedDBObjectGroup);
595 }
596
596 void InspectorIndexedDBAgent::enable(ErrorString*) 597 void InspectorIndexedDBAgent::enable(ErrorString*)
597 { 598 {
598 m_state->setBoolean(IndexedDBAgentState::indexedDBAgentEnabled, true); 599 m_state->setBoolean(IndexedDBAgentState::indexedDBAgentEnabled, true);
599 } 600 }
600 601
601 void InspectorIndexedDBAgent::disable(ErrorString*) 602 void InspectorIndexedDBAgent::disable(ErrorString*)
602 { 603 {
603 m_state->setBoolean(IndexedDBAgentState::indexedDBAgentEnabled, false); 604 m_state->setBoolean(IndexedDBAgentState::indexedDBAgentEnabled, false);
605 m_v8Session->releaseObjectGroup(indexedDBObjectGroup);
604 } 606 }
605 607
606 static Document* assertDocument(ErrorString* errorString, LocalFrame* frame) 608 static Document* assertDocument(ErrorString* errorString, LocalFrame* frame)
607 { 609 {
608 Document* document = frame ? frame->document() : nullptr; 610 Document* document = frame ? frame->document() : nullptr;
609 611
610 if (!document) 612 if (!document)
611 *errorString = "No document for given frame found"; 613 *errorString = "No document for given frame found";
612 614
613 return document; 615 return document;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 IDBKeyRange* idbKeyRange = keyRange.isJust() ? idbKeyRangeFromKeyRange(keyRa nge.fromJust()) : nullptr; 692 IDBKeyRange* idbKeyRange = keyRange.isJust() ? idbKeyRangeFromKeyRange(keyRa nge.fromJust()) : nullptr;
691 if (keyRange.isJust() && !idbKeyRange) { 693 if (keyRange.isJust() && !idbKeyRange) {
692 *errorString = "Can not parse key range."; 694 *errorString = "Can not parse key range.";
693 return; 695 return;
694 } 696 }
695 697
696 ScriptState* scriptState = ScriptState::forMainWorld(frame); 698 ScriptState* scriptState = ScriptState::forMainWorld(frame);
697 if (!scriptState) 699 if (!scriptState)
698 return; 700 return;
699 ScriptState::Scope scope(scriptState); 701 ScriptState::Scope scope(scriptState);
700 RefPtr<DataLoader> dataLoader = DataLoader::create(scriptState, std::move(re questCallback), objectStoreName, indexName, idbKeyRange, skipCount, pageSize); 702 RefPtr<DataLoader> dataLoader = DataLoader::create(m_v8Session, scriptState, std::move(requestCallback), objectStoreName, indexName, idbKeyRange, skipCount, pageSize);
701 dataLoader->start(idbFactory, document->getSecurityOrigin(), databaseName); 703 dataLoader->start(idbFactory, document->getSecurityOrigin(), databaseName);
702 } 704 }
703 705
704 class ClearObjectStoreListener final : public EventListener { 706 class ClearObjectStoreListener final : public EventListener {
705 WTF_MAKE_NONCOPYABLE(ClearObjectStoreListener); 707 WTF_MAKE_NONCOPYABLE(ClearObjectStoreListener);
706 public: 708 public:
707 static ClearObjectStoreListener* create(std::unique_ptr<ClearObjectStoreCall back> requestCallback) 709 static ClearObjectStoreListener* create(std::unique_ptr<ClearObjectStoreCall back> requestCallback)
708 { 710 {
709 return new ClearObjectStoreListener(std::move(requestCallback)); 711 return new ClearObjectStoreListener(std::move(requestCallback));
710 } 712 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 clearObjectStore->start(idbFactory, document->getSecurityOrigin(), databaseN ame); 806 clearObjectStore->start(idbFactory, document->getSecurityOrigin(), databaseN ame);
805 } 807 }
806 808
807 DEFINE_TRACE(InspectorIndexedDBAgent) 809 DEFINE_TRACE(InspectorIndexedDBAgent)
808 { 810 {
809 visitor->trace(m_inspectedFrames); 811 visitor->trace(m_inspectedFrames);
810 InspectorBaseAgent::trace(visitor); 812 InspectorBaseAgent::trace(visitor);
811 } 813 }
812 814
813 } // namespace blink 815 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698