summaryrefslogtreecommitdiff
path: root/chromium/components/update_client/utils.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-01-04 14:17:57 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-01-05 10:05:06 +0000
commit39d357e3248f80abea0159765ff39554affb40db (patch)
treeaba0e6bfb76de0244bba0f5fdbd64b830dd6e621 /chromium/components/update_client/utils.cc
parent87778abf5a1f89266f37d1321b92a21851d8244d (diff)
downloadqtwebengine-chromium-39d357e3248f80abea0159765ff39554affb40db.tar.gz
BASELINE: Update Chromium to 55.0.2883.105
And updates ninja to 1.7.2 Change-Id: I20d43c737f82764d857ada9a55586901b18b9243 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/components/update_client/utils.cc')
-rw-r--r--chromium/components/update_client/utils.cc41
1 files changed, 33 insertions, 8 deletions
diff --git a/chromium/components/update_client/utils.cc b/chromium/components/update_client/utils.cc
index 717984d8999..39ab431a7b5 100644
--- a/chromium/components/update_client/utils.cc
+++ b/chromium/components/update_client/utils.cc
@@ -66,18 +66,36 @@ std::string HexStringToID(const std::string& hexstr) {
return id;
}
+std::string GetOSVersion() {
+#if defined(OS_WIN)
+ int32_t major = 0;
+ int32_t minor = 0;
+ int32_t bugfix = 0;
+ base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix);
+ return base::StringPrintf("%d.%d.%d", major, minor, bugfix);
+#else
+ return base::SysInfo().OperatingSystemVersion();
+#endif
+}
+
+std::string GetServicePack() {
+#if defined(OS_WIN)
+ return base::win::OSInfo::GetInstance()->service_pack_str();
+#else
+ return std::string();
+#endif
+}
+
} // namespace
-std::string BuildProtocolRequest(const std::string& browser_version,
+std::string BuildProtocolRequest(const std::string& prod_id,
+ const std::string& browser_version,
const std::string& channel,
const std::string& lang,
const std::string& os_long_name,
const std::string& download_preference,
const std::string& request_body,
const std::string& additional_attributes) {
- const std::string prod_id(
- UpdateQueryParams::GetProdIdString(UpdateQueryParams::CHROME));
-
std::string request(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<request protocol=\"3.0\" ");
@@ -91,8 +109,8 @@ std::string BuildProtocolRequest(const std::string& browser_version,
"version=\"%s-%s\" prodversion=\"%s\" "
"requestid=\"{%s}\" lang=\"%s\" updaterchannel=\"%s\" prodchannel=\"%s\" "
"os=\"%s\" arch=\"%s\" nacl_arch=\"%s\"",
- prod_id.c_str(),
- browser_version.c_str(), // "version"
+ prod_id.c_str(), // "version" is prefixed by prod_id.
+ browser_version.c_str(),
browser_version.c_str(), // "prodversion"
base::GenerateGUID().c_str(), // "requestid"
lang.c_str(), // "lang",
@@ -117,11 +135,18 @@ std::string BuildProtocolRequest(const std::string& browser_version,
GetPhysicalMemoryGB()); // "physmem" in GB.
// OS version and platform information.
+ const std::string os_version = GetOSVersion();
+ const std::string os_sp = GetServicePack();
+
base::StringAppendF(
- &request, "<os platform=\"%s\" version=\"%s\" arch=\"%s\"/>",
+ &request, "<os platform=\"%s\" arch=\"%s\"",
os_long_name.c_str(), // "platform"
- base::SysInfo().OperatingSystemVersion().c_str(), // "version"
base::SysInfo().OperatingSystemArchitecture().c_str()); // "arch"
+ if (!os_version.empty())
+ base::StringAppendF(&request, " version=\"%s\"", os_version.c_str());
+ if (!os_sp.empty())
+ base::StringAppendF(&request, " sp=\"%s\"", os_sp.c_str());
+ base::StringAppendF(&request, "/>");
// The actual payload of the request.
base::StringAppendF(&request, "%s</request>", request_body.c_str());