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

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

Issue 15908002: Differential updates for components. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Sync to LKGR revision 207804. Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/component_updater/component_updater_configurator.cc
diff --git a/chrome/browser/component_updater/component_updater_configurator.cc b/chrome/browser/component_updater/component_updater_configurator.cc
index 16fa3e9619752730b02326dba994faf4c14aef10..43e90725a1a59ad428f20f9156162e07581c1fb8 100644
--- a/chrome/browser/component_updater/component_updater_configurator.cc
+++ b/chrome/browser/component_updater/component_updater_configurator.cc
@@ -14,31 +14,39 @@
#include "base/strings/string_util.h"
#include "base/win/windows_version.h"
#include "build/build_config.h"
+#include "chrome/browser/component_updater/component_patcher.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/omaha_query_params/omaha_query_params.h"
#include "net/url_request/url_request_context_getter.h"
+#if defined(OS_WIN)
+#include "chrome/browser/component_updater/component_patcher_win.h"
+#endif
+
namespace {
+
// Default time constants.
const int kDelayOneMinute = 60;
const int kDelayOneHour = kDelayOneMinute * 60;
// Debug values you can pass to --component-updater-debug=value1,value2.
// Speed up component checking.
-const char kDebugFastUpdate[] = "fast-update";
+const char kSwitchFastUpdate[] = "fast-update";
// Force out-of-process-xml parsing.
-const char kDebugOutOfProcess[] = "out-of-process";
+const char kSwitchOutOfProcess[] = "out-of-process";
// Add "testrequest=1" parameter to the update check query.
-const char kDebugRequestParam[] = "test-request";
+const char kSwitchRequestParam[] = "test-request";
+// Disables differential updates.
+const char kSwitchDisableDeltaUpdates[] = "disable-delta-updates";
// The urls from which an update manifest can be fetched.
const char* kUrlSources[] = {
"http://clients2.google.com/service/update2/crx", // BANDAID
"http://omaha.google.com/service/update2/crx", // CWS_PUBLIC
- "http://omaha.sandbox.google.com/service/update2/crx" // CWS_SANDBOX
+ "http://omaha.sandbox.google.com/service/update2/crx", // CWS_SANDBOX
};
-bool HasDebugValue(const std::vector<std::string>& vec, const char* test) {
+bool HasSwitchValue(const std::vector<std::string>& vec, const char* test) {
if (vec.empty())
return 0;
return (std::find(vec.begin(), vec.end(), test) != vec.end());
@@ -64,25 +72,36 @@ class ChromeConfigurator : public ComponentUpdateService::Configurator {
virtual net::URLRequestContextGetter* RequestContext() OVERRIDE;
virtual bool InProcess() OVERRIDE;
virtual void OnEvent(Events event, int val) OVERRIDE;
+ virtual ComponentPatcher* CreateComponentPatcher() OVERRIDE;
+ virtual bool DeltasEnabled() const OVERRIDE;
private:
net::URLRequestContextGetter* url_request_getter_;
std::string extra_info_;
bool fast_update_;
bool out_of_process_;
+ bool deltas_enabled_;
};
ChromeConfigurator::ChromeConfigurator(const CommandLine* cmdline,
net::URLRequestContextGetter* url_request_getter)
: url_request_getter_(url_request_getter),
extra_info_(chrome::OmahaQueryParams::Get(
- chrome::OmahaQueryParams::CHROME)) {
+ chrome::OmahaQueryParams::CHROME)),
+ fast_update_(false),
+ out_of_process_(false),
+ deltas_enabled_(false) {
// Parse comma-delimited debug flags.
- std::vector<std::string> debug_values;
- Tokenize(cmdline->GetSwitchValueASCII(switches::kComponentUpdaterDebug),
- ",", &debug_values);
- fast_update_ = HasDebugValue(debug_values, kDebugFastUpdate);
- out_of_process_ = HasDebugValue(debug_values, kDebugOutOfProcess);
+ std::vector<std::string> switch_values;
+ Tokenize(cmdline->GetSwitchValueASCII(switches::kComponentUpdater),
+ ",", &switch_values);
+ fast_update_ = HasSwitchValue(switch_values, kSwitchFastUpdate);
+ out_of_process_ = HasSwitchValue(switch_values, kSwitchOutOfProcess);
+#if defined(OS_WIN)
+ deltas_enabled_ = !HasSwitchValue(switch_values, kSwitchDisableDeltaUpdates);
+#else
+ deltas_enabled_ = false;
+#endif
// Make the extra request params, they are necessary so omaha does
// not deliver components that are going to be rejected at install time.
@@ -91,7 +110,7 @@ ChromeConfigurator::ChromeConfigurator(const CommandLine* cmdline,
base::win::OSInfo::WOW64_ENABLED)
extra_info_ += "&wow64=1";
#endif
- if (HasDebugValue(debug_values, kDebugRequestParam))
+ if (HasSwitchValue(switch_values, kSwitchRequestParam))
extra_info_ += "&testrequest=1";
}
@@ -161,6 +180,18 @@ void ChromeConfigurator::OnEvent(Events event, int val) {
}
}
+ComponentPatcher* ChromeConfigurator::CreateComponentPatcher() {
+#if defined(OS_WIN)
+ return new ComponentPatcherWin();
+#else
+ return new ComponentPatcherCrossPlatform();
+#endif
+}
+
+bool ChromeConfigurator::DeltasEnabled() const {
+ return deltas_enabled_;
+}
+
ComponentUpdateService::Configurator* MakeChromeComponentUpdaterConfigurator(
const CommandLine* cmdline, net::URLRequestContextGetter* context_getter) {
return new ChromeConfigurator(cmdline, context_getter);
« no previous file with comments | « chrome/browser/component_updater/component_unpacker.cc ('k') | chrome/browser/component_updater/component_updater_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698