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

Unified Diff: chrome/browser/ui/webui/inspect_ui.cc

Issue 12586010: DevTools: extract ADB command classes, change objects' lifetimes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Win build fixed. Created 7 years, 9 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/ui/webui/inspect_ui.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/inspect_ui.cc
diff --git a/chrome/browser/ui/webui/inspect_ui.cc b/chrome/browser/ui/webui/inspect_ui.cc
index 0562d1231380a34a4844abc667da2258cd7d211c..437f3aaf6970c2ddf836b7e32311f6edac772c96 100644
--- a/chrome/browser/ui/webui/inspect_ui.cc
+++ b/chrome/browser/ui/webui/inspect_ui.cc
@@ -42,6 +42,7 @@
#include "grit/browser_resources.h"
#include "grit/generated_resources.h"
#include "net/base/escape.h"
+#include "net/base/net_errors.h"
#include "ui/base/resource/resource_bundle.h"
using content::BrowserThread;
@@ -62,12 +63,13 @@ namespace {
static const char kDataFile[] = "targets-data.json";
static const char kAdbQuery[] = "adb-query/";
-static const char kAdbDevices[] = "adb-devices";
+static const char kAdbPages[] = "adb-pages";
static const char kLocalXhr[] = "local-xhr/";
static const char kExtensionTargetType[] = "extension";
static const char kPageTargetType[] = "page";
static const char kWorkerTargetType[] = "worker";
+static const char kAdbTargetType[] = "adb_page";
static const char kInspectCommand[] = "inspect";
static const char kTerminateCommand[] = "terminate";
@@ -78,8 +80,12 @@ static const char kProcessIdField[] = "processId";
static const char kRouteIdField[] = "routeId";
static const char kUrlField[] = "url";
static const char kNameField[] = "name";
-static const char kFaviconUrlField[] = "favicon_url";
+static const char kFaviconUrlField[] = "faviconUrl";
static const char kPidField[] = "pid";
+static const char kAdbSerialField[] = "adbSerial";
+static const char kAdbModelField[] = "adbModel";
+static const char kAdbPageIdField[] = "adbPageId";
+static const char kAdbDebugUrl[] = "adbDebugUrl";
DictionaryValue* BuildTargetDescriptor(
const std::string& target_type,
@@ -169,7 +175,6 @@ void SendDescriptors(
std::string json_string;
base::JSONWriter::Write(rvh_list, &json_string);
-
callback.Run(base::RefCountedString::TakeString(&json_string));
}
@@ -338,7 +343,7 @@ InspectUI::InspectUI(content::WebUI* web_ui)
web_ui->AddMessageHandler(new InspectMessageHandler());
Profile* profile = Profile::FromWebUI(web_ui);
- adb_bridge_ = DevToolsAdbBridge::Start();
+ adb_bridge_.reset(new DevToolsAdbBridge(profile));
content::WebUIDataSource::Add(profile, CreateInspectUIHTMLSource());
registrar_.Add(this,
@@ -383,10 +388,7 @@ void InspectUI::StopListeningNotifications()
{
if (!observer_)
return;
- if (adb_bridge_) {
- adb_bridge_->Stop();
- adb_bridge_ = NULL;
- }
+ adb_bridge_.reset();
observer_->InspectUIDestroyed();
observer_ = NULL;
registrar_.RemoveAll();
@@ -408,8 +410,8 @@ bool InspectUI::HandleRequestCallback(
const content::WebUIDataSource::GotDataCallback& callback) {
if (path == kDataFile)
return HandleDataRequestCallback(path, callback);
- if (path.find(kAdbDevices) == 0)
- return HandleAdbDevicesCallback(path, callback);
+ if (path.find(kAdbPages) == 0)
+ return HandleAdbPagesCallback(path, callback);
if (path.find(kAdbQuery) == 0)
return HandleAdbQueryCallback(path, callback);
if (path.find(kLocalXhr) == 0)
@@ -429,13 +431,39 @@ bool InspectUI::HandleAdbQueryCallback(
return true;
}
-bool InspectUI::HandleAdbDevicesCallback(
+bool InspectUI::HandleAdbPagesCallback(
const std::string& path,
const content::WebUIDataSource::GotDataCallback& callback) {
- adb_bridge_->Devices();
+ adb_bridge_->Pages(base::Bind(&InspectUI::OnAdbPages,
+ weak_factory_.GetWeakPtr(),
+ callback));
+ return true;
+}
+
+void InspectUI::OnAdbPages(
+ const content::WebUIDataSource::GotDataCallback& callback,
+ int result,
+ DevToolsAdbBridge::RemotePages* pages) {
+ if (result != net::OK)
+ return;
+ ListValue targets;
+ scoped_ptr<DevToolsAdbBridge::RemotePages> my_pages(pages);
+ for (DevToolsAdbBridge::RemotePages::iterator it = my_pages->begin();
+ it != my_pages->end(); ++it) {
+ DevToolsAdbBridge::RemotePage* page = it->get();
+ DictionaryValue* target_data = BuildTargetDescriptor(kAdbTargetType,
+ false, GURL(page->url()), page->title(), GURL(page->favicon_url()), 0,
+ 0);
+ target_data->SetString(kAdbSerialField, page->serial());
+ target_data->SetString(kAdbModelField, page->model());
+ target_data->SetString(kAdbPageIdField, page->id());
+ target_data->SetString(kAdbDebugUrl, page->debug_url());
+ targets.Append(target_data);
+ }
+
std::string json_string = "";
+ base::JSONWriter::Write(&targets, &json_string);
callback.Run(base::RefCountedString::TakeString(&json_string));
- return true;
}
bool InspectUI::HandleLocalXhrCallback(
« no previous file with comments | « chrome/browser/ui/webui/inspect_ui.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698