Index: chrome/test/chromedriver/chrome/devtools_http_client.cc |
diff --git a/chrome/test/chromedriver/chrome/devtools_http_client.cc b/chrome/test/chromedriver/chrome/devtools_http_client.cc |
index 9397872852f2c52be9c78fd6fb46a4586b4074fd..30d34164c4edd8797bff72bbf1bfbaa45f5919c1 100644 |
--- a/chrome/test/chromedriver/chrome/devtools_http_client.cc |
+++ b/chrome/test/chromedriver/chrome/devtools_http_client.cc |
@@ -7,8 +7,6 @@ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/json/json_reader.h" |
-#include "base/strings/string_number_conversions.h" |
-#include "base/strings/string_split.h" |
#include "base/strings/stringprintf.h" |
#include "base/threading/platform_thread.h" |
#include "base/time/time.h" |
@@ -73,68 +71,17 @@ DevToolsHttpClient::~DevToolsHttpClient() {} |
Status DevToolsHttpClient::Init(const base::TimeDelta& timeout) { |
base::TimeTicks deadline = base::TimeTicks::Now() + timeout; |
- std::string browser_version; |
- std::string blink_version; |
- |
- while (true) { |
- Status status = GetVersion(&browser_version, &blink_version); |
- if (status.IsOk()) |
- break; |
- if (status.code() != kChromeNotReachable || |
- base::TimeTicks::Now() > deadline) { |
- return status; |
- } |
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50)); |
- } |
- |
- // |blink_version| is should look something like "537.36 (@159105)", and for |
- // this example |blink_revision| should be 159105 |
- size_t before = blink_version.find('@'); |
- size_t after = blink_version.find(')'); |
- if (before == std::string::npos || after == std::string::npos) { |
- return Status(kUnknownError, |
- "unrecognized Blink version: " + blink_version); |
- } |
- |
- std::string blink_revision_string = blink_version.substr(before + 1, |
- after - before - 1); |
- int blink_revision_int; |
- if (!base::StringToInt(blink_revision_string, &blink_revision_int)) { |
- return Status(kUnknownError, |
- "unrecognized Blink revision: " + blink_revision_string); |
- } |
- |
- browser_info_.blink_revision = blink_revision_int; |
- |
- if (browser_version.empty()) { |
- browser_info_.browser_name = "content shell"; |
- return Status(kOk); |
- } |
- if (browser_version.find("Version/") == 0u) { |
- browser_info_.browser_name = "webview"; |
- return Status(kOk); |
- } |
- std::string prefix = "Chrome/"; |
- if (browser_version.find(prefix) != 0u) { |
- return Status(kUnknownError, |
- "unrecognized Chrome version: " + browser_version); |
- } |
+ std::string version_url = server_url_ + "/json/version"; |
+ std::string data; |
- std::string stripped_version = browser_version.substr(prefix.length()); |
- int temp_build_no; |
- std::vector<std::string> version_parts; |
- base::SplitString(stripped_version, '.', &version_parts); |
- if (version_parts.size() != 4 || |
- !base::StringToInt(version_parts[2], &temp_build_no)) { |
- return Status(kUnknownError, |
- "unrecognized Chrome version: " + browser_version); |
+ while (!FetchUrlAndLog(version_url, context_getter_.get(), &data) |
+ || data.empty()) { |
+ if (base::TimeTicks::Now() > deadline) |
+ return Status(kChromeNotReachable); |
+ base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50)); |
} |
- browser_info_.browser_name = "chrome"; |
- browser_info_.browser_version = stripped_version; |
- browser_info_.build_no = temp_build_no; |
- |
- return Status(kOk); |
+ return ParseBrowserInfo(data, &browser_info_); |
} |
Status DevToolsHttpClient::GetWebViewsInfo(WebViewsInfo* views_info) { |
@@ -195,16 +142,6 @@ const DeviceMetrics* DevToolsHttpClient::device_metrics() { |
return device_metrics_.get(); |
} |
-Status DevToolsHttpClient::GetVersion(std::string* browser_version, |
- std::string* blink_version) { |
- std::string data; |
- if (!FetchUrlAndLog( |
- server_url_ + "/json/version", context_getter_.get(), &data)) |
- return Status(kChromeNotReachable); |
- |
- return internal::ParseVersionInfo(data, browser_version, blink_version); |
-} |
- |
Status DevToolsHttpClient::CloseFrontends(const std::string& for_client_id) { |
WebViewsInfo views_info; |
Status status = GetWebViewsInfo(&views_info); |
@@ -343,26 +280,4 @@ Status ParseWebViewsInfo(const std::string& data, |
return Status(kOk); |
} |
-Status ParseVersionInfo(const std::string& data, |
- std::string* browser_version, |
- std::string* blink_version) { |
- scoped_ptr<base::Value> value(base::JSONReader::Read(data)); |
- if (!value.get()) |
- return Status(kUnknownError, "version info not in JSON"); |
- base::DictionaryValue* dict; |
- if (!value->GetAsDictionary(&dict)) |
- return Status(kUnknownError, "version info not a dictionary"); |
- if (!dict->GetString("Browser", browser_version)) { |
- return Status( |
- kUnknownError, |
- "Chrome version must be >= " + GetMinimumSupportedChromeVersion(), |
- Status(kUnknownError, "version info doesn't include string 'Browser'")); |
- } |
- if (!dict->GetString("WebKit-Version", blink_version)) { |
- return Status(kUnknownError, |
- "version info doesn't include string 'WebKit-Version'"); |
- } |
- return Status(kOk); |
-} |
- |
} // namespace internal |