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

Side by Side Diff: components/update_client/utils.cc

Issue 2365523004: Component updater: report the Windows OS and Service Pack separately. (Closed)
Patch Set: Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « base/win/windows_version.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/update_client/utils.h" 5 #include "components/update_client/utils.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 } else { 59 } else {
60 id.append(1, 'a'); 60 id.append(1, 'a');
61 } 61 }
62 } 62 }
63 63
64 DCHECK(crx_file::id_util::IdIsValid(id)); 64 DCHECK(crx_file::id_util::IdIsValid(id));
65 65
66 return id; 66 return id;
67 } 67 }
68 68
69 std::string GetOSVersion() {
70 #if defined(OS_WIN)
71 int32_t major = 0;
72 int32_t minor = 0;
73 int32_t bugfix = 0;
74 base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix);
75 return base::StringPrintf("%d.%d.%d", major, minor, bugfix);
76 #else
77 return base::SysInfo().OperatingSystemVersion();
78 #endif
79 }
80
81 std::string GetServicePack() {
82 #if defined(OS_WIN)
83 return base::win::OSInfo::GetInstance()->service_pack_str();
84 #else
85 return std::string();
86 #endif
87 }
88
69 } // namespace 89 } // namespace
70 90
71 std::string BuildProtocolRequest(const std::string& prod_id, 91 std::string BuildProtocolRequest(const std::string& prod_id,
72 const std::string& browser_version, 92 const std::string& browser_version,
73 const std::string& channel, 93 const std::string& channel,
74 const std::string& lang, 94 const std::string& lang,
75 const std::string& os_long_name, 95 const std::string& os_long_name,
76 const std::string& download_preference, 96 const std::string& download_preference,
77 const std::string& request_body, 97 const std::string& request_body,
78 const std::string& additional_attributes) { 98 const std::string& additional_attributes) {
(...skipping 29 matching lines...) Expand all
108 if (!download_preference.empty()) 128 if (!download_preference.empty())
109 base::StringAppendF(&request, " dlpref=\"%s\"", 129 base::StringAppendF(&request, " dlpref=\"%s\"",
110 download_preference.c_str()); 130 download_preference.c_str());
111 base::StringAppendF(&request, ">"); 131 base::StringAppendF(&request, ">");
112 132
113 // HW platform information. 133 // HW platform information.
114 base::StringAppendF(&request, "<hw physmemory=\"%d\"/>", 134 base::StringAppendF(&request, "<hw physmemory=\"%d\"/>",
115 GetPhysicalMemoryGB()); // "physmem" in GB. 135 GetPhysicalMemoryGB()); // "physmem" in GB.
116 136
117 // OS version and platform information. 137 // OS version and platform information.
138 const std::string os_version = GetOSVersion();
139 const std::string os_sp = GetServicePack();
140
118 base::StringAppendF( 141 base::StringAppendF(
119 &request, "<os platform=\"%s\" version=\"%s\" arch=\"%s\"/>", 142 &request, "<os platform=\"%s\" arch=\"%s\"",
120 os_long_name.c_str(), // "platform" 143 os_long_name.c_str(), // "platform"
121 base::SysInfo().OperatingSystemVersion().c_str(), // "version"
122 base::SysInfo().OperatingSystemArchitecture().c_str()); // "arch" 144 base::SysInfo().OperatingSystemArchitecture().c_str()); // "arch"
145 if (!os_version.empty())
146 base::StringAppendF(&request, " version=\"%s\"", os_version.c_str());
147 if (!os_sp.empty())
148 base::StringAppendF(&request, " sp=\"%s\"", os_sp.c_str());
149 base::StringAppendF(&request, "/>");
123 150
124 // The actual payload of the request. 151 // The actual payload of the request.
125 base::StringAppendF(&request, "%s</request>", request_body.c_str()); 152 base::StringAppendF(&request, "%s</request>", request_body.c_str());
126 153
127 return request; 154 return request;
128 } 155 }
129 156
130 std::unique_ptr<net::URLFetcher> SendProtocolRequest( 157 std::unique_ptr<net::URLFetcher> SendProtocolRequest(
131 const GURL& url, 158 const GURL& url,
132 const std::string& protocol_request, 159 const std::string& protocol_request,
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 304
278 void RemoveUnsecureUrls(std::vector<GURL>* urls) { 305 void RemoveUnsecureUrls(std::vector<GURL>* urls) {
279 DCHECK(urls); 306 DCHECK(urls);
280 urls->erase(std::remove_if( 307 urls->erase(std::remove_if(
281 urls->begin(), urls->end(), 308 urls->begin(), urls->end(),
282 [](const GURL& url) { return !url.SchemeIsCryptographic(); }), 309 [](const GURL& url) { return !url.SchemeIsCryptographic(); }),
283 urls->end()); 310 urls->end());
284 } 311 }
285 312
286 } // namespace update_client 313 } // namespace update_client
OLDNEW
« no previous file with comments | « base/win/windows_version.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698