Index: third_party/WebKit/Source/modules/webdatabase/InspectorDatabaseAgent.cpp |
diff --git a/third_party/WebKit/Source/modules/webdatabase/InspectorDatabaseAgent.cpp b/third_party/WebKit/Source/modules/webdatabase/InspectorDatabaseAgent.cpp |
index 804de09171cb7d21735369d56c191890e3fff5fe..2281d9872ba666db3db017f5270716c978f9f16c 100644 |
--- a/third_party/WebKit/Source/modules/webdatabase/InspectorDatabaseAgent.cpp |
+++ b/third_party/WebKit/Source/modules/webdatabase/InspectorDatabaseAgent.cpp |
@@ -233,8 +233,8 @@ void InspectorDatabaseAgent::didOpenDatabase(blink::Database* database, const St |
InspectorDatabaseResource* resource = InspectorDatabaseResource::create(database, domain, name, version); |
m_resources.set(resource->id(), resource); |
// Resources are only bound while visible. |
- if (frontend() && m_enabled) |
- resource->bind(frontend()); |
+ ASSERT(m_enabled && frontend()); |
+ resource->bind(frontend()); |
} |
void InspectorDatabaseAgent::didCommitLoadForLocalFrame(LocalFrame* frame) |
@@ -251,30 +251,21 @@ InspectorDatabaseAgent::InspectorDatabaseAgent(Page* page) |
, m_page(page) |
, m_enabled(false) |
{ |
- DatabaseClient::fromPage(page)->setInspectorAgent(this); |
- DatabaseTracker::tracker().forEachOpenDatabaseInPage(m_page, bind<blink::Database*>(&InspectorDatabaseAgent::registerDatabaseOnCreation, this)); |
} |
InspectorDatabaseAgent::~InspectorDatabaseAgent() |
{ |
} |
-void InspectorDatabaseAgent::discardAgent() |
-{ |
- if (DatabaseClient* client = DatabaseClient::fromPage(m_page)) |
- client->setInspectorAgent(nullptr); |
-} |
- |
void InspectorDatabaseAgent::enable(ErrorString*) |
{ |
if (m_enabled) |
return; |
m_enabled = true; |
m_state->setBoolean(DatabaseAgentState::databaseAgentEnabled, m_enabled); |
- |
- DatabaseResourcesHeapMap::iterator databasesEnd = m_resources.end(); |
- for (DatabaseResourcesHeapMap::iterator it = m_resources.begin(); it != databasesEnd; ++it) |
- it->value->bind(frontend()); |
+ if (DatabaseClient* client = DatabaseClient::fromPage(m_page)) |
+ client->setInspectorAgent(this); |
+ DatabaseTracker::tracker().forEachOpenDatabaseInPage(m_page, bind<blink::Database*>(&InspectorDatabaseAgent::registerDatabaseOnCreation, this)); |
} |
void InspectorDatabaseAgent::disable(ErrorString*) |
@@ -283,11 +274,17 @@ void InspectorDatabaseAgent::disable(ErrorString*) |
return; |
m_enabled = false; |
m_state->setBoolean(DatabaseAgentState::databaseAgentEnabled, m_enabled); |
+ if (DatabaseClient* client = DatabaseClient::fromPage(m_page)) |
+ client->setInspectorAgent(nullptr); |
+ m_resources.clear(); |
} |
void InspectorDatabaseAgent::restore() |
{ |
- m_enabled = m_state->booleanProperty(DatabaseAgentState::databaseAgentEnabled, false); |
+ if (m_state->booleanProperty(DatabaseAgentState::databaseAgentEnabled, false)) { |
+ ErrorString error; |
+ enable(&error); |
+ } |
} |
void InspectorDatabaseAgent::getDatabaseTableNames(ErrorString* error, const String& databaseId, OwnPtr<protocol::Array<String>>* names) |