Index: chrome/browser/component_updater/component_updater_ping_manager.cc |
diff --git a/chrome/browser/component_updater/component_updater_ping_manager.cc b/chrome/browser/component_updater/component_updater_ping_manager.cc |
index d11f4f348510d4546006611266df996cd2eef7ce..a5c5a14608e4637e41f4e61b16b64a2ecd901f16 100644 |
--- a/chrome/browser/component_updater/component_updater_ping_manager.cc |
+++ b/chrome/browser/component_updater/component_updater_ping_manager.cc |
@@ -5,18 +5,13 @@ |
#include "chrome/browser/component_updater/component_updater_ping_manager.h" |
#include "base/guid.h" |
#include "base/logging.h" |
+#include "base/memory/scoped_ptr.h" |
#include "base/strings/string_util.h" |
#include "base/strings/stringprintf.h" |
-#include "base/sys_info.h" |
-#include "base/win/windows_version.h" |
+#include "chrome/browser/component_updater/component_updater_utils.h" |
#include "chrome/browser/component_updater/crx_update_item.h" |
-#include "chrome/common/chrome_version_info.h" |
-#include "chrome/common/omaha_query_params/omaha_query_params.h" |
-#include "net/base/load_flags.h" |
-#include "net/base/net_errors.h" |
#include "net/url_request/url_fetcher.h" |
#include "net/url_request/url_fetcher_delegate.h" |
-#include "net/url_request/url_request_status.h" |
namespace { |
@@ -69,45 +64,26 @@ void PingSender::SendPing( |
if (!ping_url.is_valid()) |
return; |
- url_fetcher_.reset(net::URLFetcher::Create(0, |
- ping_url, |
- net::URLFetcher::POST, |
- this)); |
- |
- url_fetcher_->SetUploadData("application/xml", BuildPing(item)); |
- url_fetcher_->SetRequestContext(url_request_context_getter); |
- url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | |
- net::LOAD_DO_NOT_SAVE_COOKIES | |
- net::LOAD_DISABLE_CACHE); |
- url_fetcher_->SetAutomaticallyRetryOn5xx(false); |
- url_fetcher_->Start(); |
+ url_fetcher_.reset(SendProtocolRequest(ping_url, |
+ BuildPing(item), |
+ this, |
+ url_request_context_getter)); |
} |
// Builds a ping message for the specified update item. |
std::string PingSender::BuildPing(const CrxUpdateItem* item) { |
- const std::string prod_id(chrome::OmahaQueryParams::GetProdIdString( |
- chrome::OmahaQueryParams::CHROME)); |
- |
- const char request_format[] = |
- "<o:gupdate xmlns:o=\"http://www.google.com/update2/request\" " |
- "protocol=\"2.0\" version=\"%s-%s\" requestid=\"{%s}\" " |
- "updaterchannel=\"%s\"> " |
- "<o:os platform=\"%s\" version=\"%s\"/> " |
- "<o:app appid=\"%s\" version=\"%s\">" |
+ const char app_element_format[] = |
+ "<app appid=\"%s\" version=\"%s\" nextversion=\"%s\">" |
"%s" |
- "</o:app></o:gupdate>"; |
- const std::string request( |
- base::StringPrintf(request_format, |
- prod_id.c_str(), |
- chrome::VersionInfo().Version().c_str(), |
- base::GenerateGUID().c_str(), |
- chrome::OmahaQueryParams::GetChannelString(), |
- chrome::VersionInfo().OSType().c_str(), |
- base::SysInfo().OperatingSystemVersion().c_str(), |
- item->id.c_str(), |
- item->component.version.GetString().c_str(), |
- BuildPingEventElement(item).c_str())); |
- return request; |
+ "</app>"; |
+ const std::string app_element(base::StringPrintf( |
+ app_element_format, |
+ item->id.c_str(), // "appid" |
+ item->previous_version.GetString().c_str(), // "version" |
+ item->next_version.GetString().c_str(), // "nextversion" |
+ BuildPingEventElement(item).c_str())); |
+ |
+ return BuildProtocolRequest(app_element); |
} |
// Returns a string representing one ping event xml element for an update item. |
@@ -117,13 +93,9 @@ std::string PingSender::BuildPingEventElement(const CrxUpdateItem* item) { |
using base::StringAppendF; |
- std::string ping_event("<o:event eventtype=\"3\""); |
+ std::string ping_event("<event eventtype=\"3\""); |
const int event_result = item->status == CrxUpdateItem::kUpdated; |
StringAppendF(&ping_event, " eventresult=\"%d\"", event_result); |
- StringAppendF(&ping_event, " previousversion=\"%s\"", |
- item->previous_version.GetString().c_str()); |
- StringAppendF(&ping_event, " nextversion=\"%s\"", |
- item->next_version.GetString().c_str()); |
if (item->error_category) |
StringAppendF(&ping_event, " errorcat=\"%d\"", item->error_category); |
if (item->error_code) |