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

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

Issue 23441060: DevTools: Improve design of WebViews available for inspection in chrome://inspect (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 3 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_adb_bridge.h ('k') | chrome/browser/resources/inspect/inspect.css » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/devtools/devtools_adb_bridge.cc
diff --git a/chrome/browser/devtools/devtools_adb_bridge.cc b/chrome/browser/devtools/devtools_adb_bridge.cc
index 489e95a1f6b26087816ffd536dff3efac2764f46..c6701bf4b4d2d365cf8c361a41fccceea451ade1 100644
--- a/chrome/browser/devtools/devtools_adb_bridge.cc
+++ b/chrome/browser/devtools/devtools_adb_bridge.cc
@@ -51,6 +51,8 @@ static const char kLocalChrome[] = "Local Chrome";
static const char kChrome[] = "Chrome";
static const char kOpenedUnixSocketsCommand[] = "shell:cat /proc/net/unix";
static const char kListProcessesCommand[] = "shell:ps";
+static const char kDumpsysCommand[] = "shell:dumpsys window policy";
+static const char kDumpsysScreenSizePrefix[] = "mStable=";
static const char kPageListRequest[] = "GET /json HTTP/1.1\r\n\r\n";
static const char kVersionRequest[] = "GET /json/version HTTP/1.1\r\n\r\n";
@@ -295,6 +297,16 @@ class AdbPagesCommand : public base::RefCountedThreadSafe<
ParseSocketsList(response);
scoped_refptr<DevToolsAdbBridge::AndroidDevice> device = devices_.back();
+ device->RunCommand(kDumpsysCommand,
+ base::Bind(&AdbPagesCommand::ReceivedDumpsys, this));
+ }
+
+ void ReceivedDumpsys(int result, const std::string& response) {
+ DCHECK_EQ(bridge_->GetAdbMessageLoop(), base::MessageLoop::current());
+ if (result >= 0)
+ ParseDumpsysResponse(response);
+
+ scoped_refptr<DevToolsAdbBridge::AndroidDevice> device = devices_.back();
device->RunCommand(kListProcessesCommand,
base::Bind(&AdbPagesCommand::ReceivedProcesses, this));
}
@@ -465,6 +477,38 @@ class AdbPagesCommand : public base::RefCountedThreadSafe<
}
}
+ void ParseDumpsysResponse(const std::string& response) {
+ std::vector<std::string> lines;
+ Tokenize(response, "\r", &lines);
+ for (size_t i = 0; i < lines.size(); ++i) {
+ std::string line = lines[i];
+ size_t pos = line.find(kDumpsysScreenSizePrefix);
+ if (pos != std::string::npos) {
+ ParseScreenSize(
+ line.substr(pos + std::string(kDumpsysScreenSizePrefix).size()));
+ break;
+ }
+ }
+ }
+
+ void ParseScreenSize(const std::string& str) {
+ std::vector<std::string> pairs;
+ Tokenize(str, "-", &pairs);
+ if (pairs.size() != 2)
+ return;
+
+ int width;
+ int height;
+ std::vector<std::string> numbers;
+ Tokenize(pairs[1].substr(1, pairs[1].size() - 2), ",", &numbers);
+ if (numbers.size() != 2 ||
+ !base::StringToInt(numbers[0], &width) ||
+ !base::StringToInt(numbers[1], &height))
+ return;
+
+ remote_devices_->back()->SetScreenSize(gfx::Size(width, height));
+}
+
scoped_refptr<DevToolsAdbBridge> bridge_;
Callback callback_;
AndroidDevices devices_;
« no previous file with comments | « chrome/browser/devtools/devtools_adb_bridge.h ('k') | chrome/browser/resources/inspect/inspect.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698