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

Unified Diff: chrome/test/chromedriver/chrome/devtools_http_client.cc

Issue 605143002: [chromedriver] Accept git hashes in blink version strings from devtools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Forgot to git add new files Created 6 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
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

Powered by Google App Engine
This is Rietveld 408576698