Commit 602603cd authored by Johannes Henkel's avatar Johannes Henkel Committed by Commit Bot

Port InspectorDatabaseAgent to InspectorAgentState fields.

There's just one field for the enabled bit so this one's trivial
(with an InnerEnable() function).

For reference the PR that introduced the new
InspectorSessionState / InspectorAgentState / Fields
was https://chromium-review.googlesource.com/c/chromium/src/+/1149201.
We're migrating things from state_ to this new mechanism,
which allows incremental updates to flow back to the browser
process.

Change-Id: I25b61b207354dee8eeeb9718dd5bbf205f769eea
Reviewed-on: https://chromium-review.googlesource.com/1159737Reviewed-by: default avatarAndrey Kosyakov <caseq@chromium.org>
Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
Commit-Queue: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580275}
parent 2a9c0de6
...@@ -48,14 +48,9 @@ typedef blink::protocol::Database::Backend::ExecuteSQLCallback ...@@ -48,14 +48,9 @@ typedef blink::protocol::Database::Backend::ExecuteSQLCallback
ExecuteSQLCallback; ExecuteSQLCallback;
namespace blink { namespace blink {
using protocol::Maybe; using protocol::Maybe;
using protocol::Response; using protocol::Response;
namespace DatabaseAgentState {
static const char kDatabaseAgentEnabled[] = "databaseAgentEnabled";
};
namespace { namespace {
class ExecuteSQLCallbackWrapper : public RefCounted<ExecuteSQLCallbackWrapper> { class ExecuteSQLCallbackWrapper : public RefCounted<ExecuteSQLCallbackWrapper> {
...@@ -230,7 +225,7 @@ void InspectorDatabaseAgent::DidOpenDatabase(blink::Database* database, ...@@ -230,7 +225,7 @@ void InspectorDatabaseAgent::DidOpenDatabase(blink::Database* database,
InspectorDatabaseResource::Create(database, domain, name, version); InspectorDatabaseResource::Create(database, domain, name, version);
resources_.Set(resource->Id(), resource); resources_.Set(resource->Id(), resource);
// Resources are only bound while visible. // Resources are only bound while visible.
DCHECK(enabled_); DCHECK(enabled_.Get());
DCHECK(GetFrontend()); DCHECK(GetFrontend());
resource->Bind(GetFrontend()); resource->Bind(GetFrontend());
} }
...@@ -244,29 +239,31 @@ void InspectorDatabaseAgent::DidCommitLoadForLocalFrame(LocalFrame* frame) { ...@@ -244,29 +239,31 @@ void InspectorDatabaseAgent::DidCommitLoadForLocalFrame(LocalFrame* frame) {
} }
InspectorDatabaseAgent::InspectorDatabaseAgent(Page* page) InspectorDatabaseAgent::InspectorDatabaseAgent(Page* page)
: page_(page), enabled_(false) {} : page_(page), enabled_(&agent_state_, /*default_value=*/false) {}
InspectorDatabaseAgent::~InspectorDatabaseAgent() = default; InspectorDatabaseAgent::~InspectorDatabaseAgent() = default;
Response InspectorDatabaseAgent::enable() { void InspectorDatabaseAgent::InnerEnable() {
if (enabled_)
return Response::OK();
enabled_ = true;
state_->setBoolean(DatabaseAgentState::kDatabaseAgentEnabled, enabled_);
if (DatabaseClient* client = DatabaseClient::FromPage(page_)) if (DatabaseClient* client = DatabaseClient::FromPage(page_))
client->SetInspectorAgent(this); client->SetInspectorAgent(this);
DatabaseTracker::Tracker().ForEachOpenDatabaseInPage( DatabaseTracker::Tracker().ForEachOpenDatabaseInPage(
page_, page_,
WTF::BindRepeating(&InspectorDatabaseAgent::RegisterDatabaseOnCreation, WTF::BindRepeating(&InspectorDatabaseAgent::RegisterDatabaseOnCreation,
WrapPersistent(this))); WrapPersistent(this)));
}
Response InspectorDatabaseAgent::enable() {
if (enabled_.Get())
return Response::OK();
enabled_.Set(true);
InnerEnable();
return Response::OK(); return Response::OK();
} }
Response InspectorDatabaseAgent::disable() { Response InspectorDatabaseAgent::disable() {
if (!enabled_) if (!enabled_.Get())
return Response::OK(); return Response::OK();
enabled_ = false; enabled_.Set(false);
state_->setBoolean(DatabaseAgentState::kDatabaseAgentEnabled, enabled_);
if (DatabaseClient* client = DatabaseClient::FromPage(page_)) if (DatabaseClient* client = DatabaseClient::FromPage(page_))
client->SetInspectorAgent(nullptr); client->SetInspectorAgent(nullptr);
resources_.clear(); resources_.clear();
...@@ -274,16 +271,14 @@ Response InspectorDatabaseAgent::disable() { ...@@ -274,16 +271,14 @@ Response InspectorDatabaseAgent::disable() {
} }
void InspectorDatabaseAgent::Restore() { void InspectorDatabaseAgent::Restore() {
if (state_->booleanProperty(DatabaseAgentState::kDatabaseAgentEnabled, if (enabled_.Get())
false)) { InnerEnable();
enable();
}
} }
Response InspectorDatabaseAgent::getDatabaseTableNames( Response InspectorDatabaseAgent::getDatabaseTableNames(
const String& database_id, const String& database_id,
std::unique_ptr<protocol::Array<String>>* names) { std::unique_ptr<protocol::Array<String>>* names) {
if (!enabled_) if (!enabled_.Get())
return Response::Error("Database agent is not enabled"); return Response::Error("Database agent is not enabled");
*names = protocol::Array<String>::create(); *names = protocol::Array<String>::create();
...@@ -305,7 +300,7 @@ void InspectorDatabaseAgent::executeSQL( ...@@ -305,7 +300,7 @@ void InspectorDatabaseAgent::executeSQL(
std::unique_ptr<ExecuteSQLCallback> request_callback = std::unique_ptr<ExecuteSQLCallback> request_callback =
std::move(prp_request_callback); std::move(prp_request_callback);
if (!enabled_) { if (!enabled_.Get()) {
request_callback->sendFailure( request_callback->sendFailure(
Response::Error("Database agent is not enabled")); Response::Error("Database agent is not enabled"));
return; return;
......
...@@ -74,6 +74,7 @@ class MODULES_EXPORT InspectorDatabaseAgent final ...@@ -74,6 +74,7 @@ class MODULES_EXPORT InspectorDatabaseAgent final
private: private:
explicit InspectorDatabaseAgent(Page*); explicit InspectorDatabaseAgent(Page*);
void InnerEnable();
void RegisterDatabaseOnCreation(blink::Database*); void RegisterDatabaseOnCreation(blink::Database*);
blink::Database* DatabaseForId(const String& database_id); blink::Database* DatabaseForId(const String& database_id);
...@@ -83,7 +84,7 @@ class MODULES_EXPORT InspectorDatabaseAgent final ...@@ -83,7 +84,7 @@ class MODULES_EXPORT InspectorDatabaseAgent final
typedef HeapHashMap<String, Member<InspectorDatabaseResource>> typedef HeapHashMap<String, Member<InspectorDatabaseResource>>
DatabaseResourcesHeapMap; DatabaseResourcesHeapMap;
DatabaseResourcesHeapMap resources_; DatabaseResourcesHeapMap resources_;
bool enabled_; InspectorAgentState::Boolean enabled_;
}; };
} // namespace blink } // namespace blink
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment