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

Side by Side Diff: chrome/browser/extensions/updater/manifest_fetch_data.cc

Issue 516293007: Enable forced extension updates on NaCl arch mismatch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clean-up per discussed solution Created 6 years, 3 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
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 "chrome/browser/extensions/updater/manifest_fetch_data.h" 5 #include "chrome/browser/extensions/updater/manifest_fetch_data.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 // Extension 2- id:bbbb version:2.0 60 // Extension 2- id:bbbb version:2.0
61 // 61 //
62 // the full update url would be: 62 // the full update url would be:
63 // http://somehost/path?x=id%3Daaaa%26v%3D1.1%26uc&x=id%3Dbbbb%26v%3D2.0%26uc 63 // http://somehost/path?x=id%3Daaaa%26v%3D1.1%26uc&x=id%3Dbbbb%26v%3D2.0%26uc
64 // 64 //
65 // (Note that '=' is %3D and '&' is %26 when urlencoded.) 65 // (Note that '=' is %3D and '&' is %26 when urlencoded.)
66 bool ManifestFetchData::AddExtension(const std::string& id, 66 bool ManifestFetchData::AddExtension(const std::string& id,
67 const std::string& version, 67 const std::string& version,
68 const PingData* ping_data, 68 const PingData* ping_data,
69 const std::string& update_url_data, 69 const std::string& update_url_data,
70 const std::string& install_source) { 70 const std::string& install_source,
71 bool force_update) {
71 if (extension_ids_.find(id) != extension_ids_.end()) { 72 if (extension_ids_.find(id) != extension_ids_.end()) {
72 NOTREACHED() << "Duplicate extension id " << id; 73 NOTREACHED() << "Duplicate extension id " << id;
73 return false; 74 return false;
74 } 75 }
75 76
77 if (force_update) {
Yoyo Zhou 2014/09/02 19:30:04 nit: no braces
Ken Rockot(use gerrit already) 2014/09/02 20:04:30 Done.
78 forced_updates_.insert(id);
79 }
80
81 // If we want to force an update, we send 0.0.0.0 as the installed version
82 // number.
83 std::string installed_version = force_update ? "0.0.0.0" : version;
Sorin Jianu 2014/09/02 20:06:39 could be made const.
Ken Rockot(use gerrit already) 2014/09/02 20:19:20 Done.
84
76 // Compute the string we'd append onto the full_url_, and see if it fits. 85 // Compute the string we'd append onto the full_url_, and see if it fits.
77 std::vector<std::string> parts; 86 std::vector<std::string> parts;
78 parts.push_back("id=" + id); 87 parts.push_back("id=" + id);
79 parts.push_back("v=" + version); 88 parts.push_back("v=" + installed_version);
80 if (!install_source.empty()) 89 if (!install_source.empty())
81 parts.push_back("installsource=" + install_source); 90 parts.push_back("installsource=" + install_source);
82 parts.push_back("uc"); 91 parts.push_back("uc");
83 92
84 if (!update_url_data.empty()) { 93 if (!update_url_data.empty()) {
85 // Make sure the update_url_data string is escaped before using it so that 94 // Make sure the update_url_data string is escaped before using it so that
86 // there is no chance of overriding the id or v other parameter value 95 // there is no chance of overriding the id or v other parameter value
87 // we place into the x= value. 96 // we place into the x= value.
88 parts.push_back("ap=" + net::EscapeQueryParamValue(update_url_data, true)); 97 parts.push_back("ap=" + net::EscapeQueryParamValue(update_url_data, true));
89 } 98 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 else 165 else
157 NOTREACHED(); 166 NOTREACHED();
158 return value == kNeverPinged || value > 0; 167 return value == kNeverPinged || value > 0;
159 } 168 }
160 169
161 void ManifestFetchData::Merge(const ManifestFetchData& other) { 170 void ManifestFetchData::Merge(const ManifestFetchData& other) {
162 DCHECK(full_url() == other.full_url()); 171 DCHECK(full_url() == other.full_url());
163 request_ids_.insert(other.request_ids_.begin(), other.request_ids_.end()); 172 request_ids_.insert(other.request_ids_.begin(), other.request_ids_.end());
164 } 173 }
165 174
175 bool ManifestFetchData::DidForceUpdate(const std::string& extension_id) const {
176 return forced_updates_.find(extension_id) != forced_updates_.end();
177 }
178
166 } // namespace extensions 179 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698