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

Unified Diff: chrome/browser/devtools/devtools_ui_bindings.cc

Issue 375393002: DevTools: factor out InspectorFrontendHost/API as a separate entity (chrome) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/devtools/devtools_ui_bindings.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/devtools/devtools_ui_bindings.cc
diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc
index 1517d2147d0737306c852070e451b93b9eef51bb..5148556e4d410fc110b896544ca6d87db022ac15 100644
--- a/chrome/browser/devtools/devtools_ui_bindings.cc
+++ b/chrome/browser/devtools/devtools_ui_bindings.cc
@@ -63,9 +63,6 @@ static const char kFrontendHostMethod[] = "method";
static const char kFrontendHostParams[] = "params";
static const char kTitleFormat[] = "Developer Tools - %s";
-static const char kDevicesChanged[] = "DevicesChanged";
-static const char kDeviceCountChanged[] = "DeviceCountChanged";
-
std::string SkColorToRGBAString(SkColor color) {
// We avoid StringPrintf because it will use locale specific formatters for
// the double (e.g. ',' instead of '.' in German).
@@ -307,7 +304,8 @@ DevToolsUIBindings::DevToolsUIBindings(content::WebContents* web_contents,
: profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())),
web_contents_(web_contents),
delegate_(new DefaultBindingsDelegate(web_contents_)),
- device_listener_enabled_(false),
+ device_count_updates_enabled_(false),
+ devices_updates_enabled_(false),
url_(url),
weak_factory_(this) {
frontend_contents_observer_.reset(new FrontendWebContentsObserver(this));
@@ -349,9 +347,8 @@ DevToolsUIBindings::~DevToolsUIBindings() {
jobs_it->second->Stop();
}
indexing_jobs_.clear();
-
- while (!subscribers_.empty())
- Unsubscribe(*subscribers_.begin());
+ SetDeviceCountUpdatesEnabled(false);
+ SetDevicesUpdatesEnabled(false);
}
void DevToolsUIBindings::InspectedContentsClosing() {
@@ -571,65 +568,46 @@ void DevToolsUIBindings::OpenUrlOnRemoteDeviceAndInspect(
}
}
-void DevToolsUIBindings::Subscribe(const std::string& event_type) {
- if (subscribers_.find(event_type) != subscribers_.end()) {
- LOG(ERROR) << "Already subscribed for [" << event_type << "].";
- return;
- }
-
- subscribers_.insert(event_type);
-
- if (event_type == kDevicesChanged) {
- remote_targets_handler_ = DevToolsTargetsUIHandler::CreateForAdb(
- base::Bind(&DevToolsUIBindings::PopulateRemoteDevices,
- base::Unretained(this)),
- profile_);
- } else if (event_type == kDeviceCountChanged) {
- EnableRemoteDeviceCounter(true);
- } else {
- LOG(ERROR) << "Attempt to start unknown event listener " << event_type;
- }
-}
-
-void DevToolsUIBindings::Unsubscribe(const std::string& event_type) {
- if (subscribers_.find(event_type) == subscribers_.end()) {
- LOG(ERROR) << "Not yet subscribed for [" << event_type << "]";
+void DevToolsUIBindings::SetDeviceCountUpdatesEnabled(bool enabled) {
+ if (device_count_updates_enabled_ == enabled)
return;
- }
-
- if (event_type == kDevicesChanged) {
- remote_targets_handler_.reset();
- } else if (event_type == kDeviceCountChanged) {
- EnableRemoteDeviceCounter(false);
- } else {
- LOG(ERROR) << "Attempt to stop unknown event listener " << event_type;
- }
-
- subscribers_.erase(event_type);
-}
-
-void DevToolsUIBindings::EnableRemoteDeviceCounter(bool enable) {
DevToolsAndroidBridge* adb_bridge =
DevToolsAndroidBridge::Factory::GetForProfile(profile_);
if (!adb_bridge)
return;
- DCHECK(device_listener_enabled_ != enable);
- device_listener_enabled_ = enable;
- if (enable)
+ device_count_updates_enabled_ = enabled;
+ if (enabled)
adb_bridge->AddDeviceCountListener(this);
else
adb_bridge->RemoveDeviceCountListener(this);
}
+void DevToolsUIBindings::SetDevicesUpdatesEnabled(bool enabled) {
+ if (devices_updates_enabled_ == enabled)
+ return;
+ devices_updates_enabled_ = enabled;
+ if (enabled) {
+ remote_targets_handler_ = DevToolsTargetsUIHandler::CreateForAdb(
+ base::Bind(&DevToolsUIBindings::DevicesUpdated,
+ base::Unretained(this)),
+ profile_);
+ } else {
+ remote_targets_handler_.reset();
+ }
+}
+
void DevToolsUIBindings::DeviceCountChanged(int count) {
- DispatchEventOnFrontend(kDeviceCountChanged, base::FundamentalValue(count));
+ base::FundamentalValue value(count);
+ CallClientFunction("InspectorFrontendAPI.deviceCountUpdated", &value, NULL,
+ NULL);
}
-void DevToolsUIBindings::PopulateRemoteDevices(
+void DevToolsUIBindings::DevicesUpdated(
const std::string& source,
const base::ListValue& targets) {
- DispatchEventOnFrontend(kDevicesChanged, targets);
+ CallClientFunction("InspectorFrontendAPI.devicesUpdated", &targets, NULL,
+ NULL);
}
void DevToolsUIBindings::FileSavedAs(const std::string& url) {
@@ -793,18 +771,6 @@ void DevToolsUIBindings::CallClientFunction(const std::string& function_name,
web_contents_->GetMainFrame()->ExecuteJavaScript(javascript);
}
-void DevToolsUIBindings::DispatchEventOnFrontend(
- const std::string& event_type,
- const base::Value& event_data) {
- if (subscribers_.find(event_type) == subscribers_.end())
- return;
- base::StringValue event_type_value(event_type);
- CallClientFunction("InspectorFrontendAPI.dispatchEventToListeners",
- &event_type_value,
- &event_data,
- NULL);
-}
-
void DevToolsUIBindings::DocumentOnLoadCompletedInMainFrame() {
// Call delegate first - it seeds importants bit of information.
delegate_->OnLoadCompleted();
« no previous file with comments | « chrome/browser/devtools/devtools_ui_bindings.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698