Index: chrome/test/chromedriver/chrome/browser_info.cc |
diff --git a/chrome/test/chromedriver/chrome/browser_info.cc b/chrome/test/chromedriver/chrome/browser_info.cc |
index c790bfd5d6de310e73e5ff24d4d721de4ec0c562..5ec042d6caedb3f0d08d86b92bfa7b26328b121c 100644 |
--- a/chrome/test/chromedriver/chrome/browser_info.cc |
+++ b/chrome/test/chromedriver/chrome/browser_info.cc |
@@ -19,6 +19,9 @@ namespace { |
const char kVersionPrefix[] = "Chrome/"; |
const size_t kVersionPrefixLen = sizeof(kVersionPrefix) - 1; |
+const char kHeadlessVersionPrefix[] = "HeadlessChrome/"; |
+const size_t kHeadlessVersionPrefixLen = sizeof(kHeadlessVersionPrefix) - 1; |
+ |
} // namespace |
BrowserInfo::BrowserInfo() |
@@ -86,10 +89,21 @@ Status ParseBrowserString(bool has_android_package, |
return Status(kOk); |
} |
+ const Status error = |
+ Status(kUnknownError, "unrecognized Chrome version: " + browser_string); |
+ |
int build_no = 0; |
if (base::StartsWith(browser_string, kVersionPrefix, |
+ base::CompareCase::SENSITIVE) || |
+ base::StartsWith(browser_string, kHeadlessVersionPrefix, |
base::CompareCase::SENSITIVE)) { |
std::string version = browser_string.substr(kVersionPrefixLen); |
+ bool headless = false; |
+ if (base::StartsWith(browser_string, kHeadlessVersionPrefix, |
+ base::CompareCase::SENSITIVE)) { |
+ version = browser_string.substr(kHeadlessVersionPrefixLen); |
+ headless = true; |
+ } |
Status status = ParseBrowserVersionString( |
version, &browser_info->major_version, &build_no); |
@@ -97,7 +111,10 @@ Status ParseBrowserString(bool has_android_package, |
return status; |
if (build_no != 0) { |
- browser_info->browser_name = "chrome"; |
+ if (headless) |
+ browser_info->browser_name = "headless chrome"; |
+ else |
+ browser_info->browser_name = "chrome"; |
browser_info->browser_version = version; |
browser_info->build_no = build_no; |
return Status(kOk); |
@@ -118,8 +135,7 @@ Status ParseBrowserString(bool has_android_package, |
return Status(kOk); |
} |
- return Status(kUnknownError, |
- "unrecognized Chrome version: " + browser_string); |
+ return error; |
} |
Status ParseBrowserVersionString(const std::string& browser_version, |