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

Unified Diff: chrome/browser/component_updater/component_updater_utils.cc

Issue 113633006: testrequest is ignored. Also added wow64 attribute. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: moved wow64 to request element. Created 7 years 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/browser/component_updater/component_updater_utils.cc
diff --git a/chrome/browser/component_updater/component_updater_utils.cc b/chrome/browser/component_updater/component_updater_utils.cc
index e86f72c8a998807080881fc2d0254850bad66545..7f57f5bf0bc314fc2000bd0db4cd201c8a47a165 100644
--- a/chrome/browser/component_updater/component_updater_utils.cc
+++ b/chrome/browser/component_updater/component_updater_utils.cc
@@ -16,34 +16,49 @@
namespace component_updater {
-std::string BuildProtocolRequest(const std::string& request_body) {
- const char request_format[] =
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- "<request protocol=\"3.0\" version=\"%s-%s\" prodversion=\"%s\" "
- "requestid=\"{%s}\" updaterchannel=\"%s\" arch=\"%s\" nacl_arch=\"%s\">"
- "<os platform=\"%s\" version=\"%s\" arch=\"%s\"/>"
- "%s"
- "</request>";
-
+std::string BuildProtocolRequest(const std::string& request_body,
+ const std::string& additional_attributes) {
const std::string prod_id(chrome::OmahaQueryParams::GetProdIdString(
chrome::OmahaQueryParams::CHROME));
const std::string chrome_version(chrome::VersionInfo().Version().c_str());
- const std::string request(base::StringPrintf(request_format,
- // Chrome version and platform information.
+ std::string request(
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<request protocol=\"3.0\" ");
+
+ if (!additional_attributes.empty())
+ base::StringAppendF(&request, "%s ", additional_attributes.c_str());
+
+ // Chrome version and platform information.
+ base::StringAppendF(
+ &request,
+ "version=\"%s-%s\" prodversion=\"%s\" "
+ "requestid=\"{%s}\" updaterchannel=\"%s\" arch=\"%s\" nacl_arch=\"%s\"",
prod_id.c_str(), chrome_version.c_str(), // "version"
chrome_version.c_str(), // "prodversion"
base::GenerateGUID().c_str(), // "requestid"
chrome::OmahaQueryParams::GetChannelString(), // "updaterchannel"
chrome::OmahaQueryParams::getArch(), // "arch"
- chrome::OmahaQueryParams::getNaclArch(), // "nacl_arch"
-
- // OS version and platform information.
+ chrome::OmahaQueryParams::getNaclArch()); // "nacl_arch"
+#if defined(OS_WIN)
+ const bool is_wow64(
+ base::win::OSInfo::GetInstance()->wow64_status() ==
+ base::win::OSInfo::WOW64_ENABLED);
+ if (is_wow64)
+ base::StringAppendF(&request, " wow64=\"1\"");
+#endif
+ base::StringAppendF(&request, ">");
+
+ // OS version and platform information.
+ base::StringAppendF(
+ &request,
+ "<os platform=\"%s\" version=\"%s\" arch=\"%s\"/>",
chrome::VersionInfo().OSType().c_str(), // "platform"
base::SysInfo().OperatingSystemVersion().c_str(), // "version"
- base::SysInfo().OperatingSystemArchitecture().c_str(), // "arch"
+ base::SysInfo().OperatingSystemArchitecture().c_str()); // "arch"
- request_body.c_str())); // The actual payload of the request.
+ // The actual payload of the request.
+ base::StringAppendF(&request, "%s</request>", request_body.c_str());
return request;
}

Powered by Google App Engine
This is Rietveld 408576698