Index: chrome/browser/extensions/updater/manifest_fetch_data.cc |
diff --git a/chrome/browser/extensions/updater/manifest_fetch_data.cc b/chrome/browser/extensions/updater/manifest_fetch_data.cc |
index a5f8dda9b4b05c7564c07e1baf787555b39108f7..b8d3a7008549b20598bde34b2bad8af3985fc019 100644 |
--- a/chrome/browser/extensions/updater/manifest_fetch_data.cc |
+++ b/chrome/browser/extensions/updater/manifest_fetch_data.cc |
@@ -23,6 +23,29 @@ const int kExtensionsManifestMaxURLSize = 2000; |
namespace extensions { |
+ManifestFetchExtensionInfo::ManifestFetchExtensionInfo( |
+ const std::string& id, const std::string& version, |
+ const std::string& update_url_data, const std::string& install_source, |
+ bool is_sync) |
+ : id(id), |
+ version(version), |
+ update_url_data(update_url_data), |
+ install_source(install_source), |
+ is_sync(is_sync) { |
+} |
+ |
+ManifestFetchExtensionInfo::ManifestFetchExtensionInfo() |
+ : id(""), |
+ version(""), |
+ update_url_data(""), |
+ install_source(""), |
+ is_sync(false) { |
+} |
+ |
+ManifestFetchExtensionInfo::~ManifestFetchExtensionInfo() { |
+} |
+ |
+ |
ManifestFetchData::ManifestFetchData(const GURL& update_url) |
: base_url_(update_url), |
full_url_(update_url) { |
@@ -55,8 +78,9 @@ ManifestFetchData::~ManifestFetchData() {} |
bool ManifestFetchData::AddExtension(std::string id, std::string version, |
const PingData* ping_data, |
const std::string& update_url_data, |
- const std::string& install_source) { |
- if (extension_ids_.find(id) != extension_ids_.end()) { |
+ const std::string& install_source, |
+ const bool is_sync) { |
+ if (extension_infos_.find(id) != extension_infos_.end()) { |
NOTREACHED() << "Duplicate extension id " << id; |
return false; |
} |
@@ -111,20 +135,23 @@ bool ManifestFetchData::AddExtension(std::string id, std::string version, |
// Check against our max url size, exempting the first extension added. |
int new_size = full_url_.possibly_invalid_spec().size() + extra.size(); |
- if (!extension_ids_.empty() && new_size > kExtensionsManifestMaxURLSize) { |
+ if (!extension_infos_.empty() && new_size > kExtensionsManifestMaxURLSize) { |
UMA_HISTOGRAM_PERCENTAGE("Extensions.UpdateCheckHitUrlSizeLimit", 1); |
return false; |
} |
UMA_HISTOGRAM_PERCENTAGE("Extensions.UpdateCheckHitUrlSizeLimit", 0); |
// We have room so go ahead and add the extension. |
- extension_ids_.insert(id); |
+ extension_infos_[id] = ManifestFetchExtensionInfo(id, version, |
+ update_url_data, |
+ install_source, |
+ is_sync); |
full_url_ = GURL(full_url_.possibly_invalid_spec() + extra); |
return true; |
} |
bool ManifestFetchData::Includes(const std::string& extension_id) const { |
- return extension_ids_.find(extension_id) != extension_ids_.end(); |
+ return extension_infos_.find(extension_id) != extension_infos_.end(); |
} |
bool ManifestFetchData::DidPing(std::string extension_id, PingType type) const { |