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

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

Issue 1281913002: Componentize ComponentUpdaterConfigurator (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix iOS compile Created 5 years, 4 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/chrome_component_updater_configurator.cc
diff --git a/chrome/browser/component_updater/chrome_component_updater_configurator.cc b/chrome/browser/component_updater/chrome_component_updater_configurator.cc
index 7a83b82313cfdf95ee103c77f52e56bbf17696bc..e52292dd707637ea99d79ee93413f7537c2a0704 100644
--- a/chrome/browser/component_updater/chrome_component_updater_configurator.cc
+++ b/chrome/browser/component_updater/chrome_component_updater_configurator.cc
@@ -4,109 +4,26 @@
#include "chrome/browser/component_updater/chrome_component_updater_configurator.h"
-#include <algorithm>
#include <string>
-#include <vector>
-#include "base/command_line.h"
-#include "base/compiler_specific.h"
-#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
+#include "base/threading/sequenced_worker_pool.h"
#include "base/version.h"
-#include "build/build_config.h"
#include "chrome/browser/component_updater/component_patcher_operation_out_of_process.h"
-#include "chrome/browser/component_updater/component_updater_url_constants.h"
#include "chrome/browser/update_client/chrome_update_query_params_delegate.h"
-#include "components/component_updater/component_updater_switches.h"
-#include "components/update_client/configurator.h"
-#include "components/version_info/version_info.h"
+#include "chrome/common/channel_info.h"
+#include "components/component_updater/configurator_impl.h"
#include "content/public/browser/browser_thread.h"
-#include "net/url_request/url_request_context_getter.h"
-#include "url/gurl.h"
-
-#if defined(OS_WIN)
-#include "base/win/win_util.h"
-#endif // OS_WIN
-
-using update_client::Configurator;
-using update_client::OutOfProcessPatcher;
namespace component_updater {
namespace {
-// Default time constants.
-const int kDelayOneMinute = 60;
-const int kDelayOneHour = kDelayOneMinute * 60;
-
-// Debug values you can pass to --component-updater=value1,value2.
-// Speed up component checking.
-const char kSwitchFastUpdate[] = "fast-update";
-
-// Add "testrequest=1" attribute to the update check request.
-const char kSwitchRequestParam[] = "test-request";
-
-// Disables pings. Pings are the requests sent to the update server that report
-// the success or the failure of component install or update attempts.
-extern const char kSwitchDisablePings[] = "disable-pings";
-
-// Sets the URL for updates.
-const char kSwitchUrlSource[] = "url-source";
-
-// Disables differential updates.
-const char kSwitchDisableDeltaUpdates[] = "disable-delta-updates";
-
-#if defined(OS_WIN)
-// Disables background downloads.
-const char kSwitchDisableBackgroundDownloads[] = "disable-background-downloads";
-#endif // defined(OS_WIN)
-
-// Returns true if and only if |test| is contained in |vec|.
-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());
-}
-
-// Returns true if falling back on an alternate, unsafe, service URL is
-// allowed. In the fallback case, the security of the component update relies
-// only on the integrity of the CRX payloads, which is self-validating.
-// This is allowed only for some of the pre-Windows Vista versions not including
-// Windows XP SP3. As a side note, pings could be sent to the alternate URL too.
-bool CanUseAltUrlSource() {
-#if defined(OS_WIN)
- return !base::win::MaybeHasSHA256Support();
-#else
- return false;
-#endif // OS_WIN
-}
-
-// If there is an element of |vec| of the form |test|=.*, returns the right-
-// hand side of that assignment. Otherwise, returns an empty string.
-// The right-hand side may contain additional '=' characters, allowing for
-// further nesting of switch arguments.
-std::string GetSwitchArgument(const std::vector<std::string>& vec,
- const char* test) {
- if (vec.empty())
- return std::string();
- for (std::vector<std::string>::const_iterator it = vec.begin();
- it != vec.end();
- ++it) {
- const std::size_t found = it->find("=");
- if (found != std::string::npos) {
- if (it->substr(0, found) == test) {
- return it->substr(found + 1);
- }
- }
- }
- return std::string();
-}
-
-class ChromeConfigurator : public Configurator {
+class ChromeConfigurator : public update_client::Configurator {
public:
ChromeConfigurator(const base::CommandLine* cmdline,
net::URLRequestContextGetter* url_request_getter);
+ // update_client::Configurator overrides.
int InitialDelay() const override;
int NextCheckDelay() const override;
int StepDelay() const override;
@@ -120,7 +37,8 @@ class ChromeConfigurator : public Configurator {
std::string GetOSLongName() const override;
std::string ExtraRequestParams() const override;
net::URLRequestContextGetter* RequestContext() const override;
- scoped_refptr<OutOfProcessPatcher> CreateOutOfProcessPatcher() const override;
+ scoped_refptr<update_client::OutOfProcessPatcher> CreateOutOfProcessPatcher()
+ const override;
bool DeltasEnabled() const override;
bool UseBackgroundDownloader() const override;
scoped_refptr<base::SequencedTaskRunner> GetSequencedTaskRunner()
@@ -131,98 +49,50 @@ class ChromeConfigurator : public Configurator {
private:
friend class base::RefCountedThreadSafe<ChromeConfigurator>;
- ~ChromeConfigurator() override {}
+ ConfiguratorImpl configurator_impl_;
- net::URLRequestContextGetter* url_request_getter_;
- std::string extra_info_;
- GURL url_source_override_;
- bool fast_update_;
- bool pings_enabled_;
- bool deltas_enabled_;
- bool background_downloads_enabled_;
- bool fallback_to_alt_source_url_enabled_;
+ ~ChromeConfigurator() override {}
};
ChromeConfigurator::ChromeConfigurator(
const base::CommandLine* cmdline,
net::URLRequestContextGetter* url_request_getter)
- : url_request_getter_(url_request_getter),
- fast_update_(false),
- pings_enabled_(false),
- deltas_enabled_(false),
- background_downloads_enabled_(false),
- fallback_to_alt_source_url_enabled_(false) {
- // Parse comma-delimited debug flags.
- std::vector<std::string> switch_values = base::SplitString(
- cmdline->GetSwitchValueASCII(switches::kComponentUpdater),
- ",", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
- fast_update_ = HasSwitchValue(switch_values, kSwitchFastUpdate);
- pings_enabled_ = !HasSwitchValue(switch_values, kSwitchDisablePings);
- deltas_enabled_ = !HasSwitchValue(switch_values, kSwitchDisableDeltaUpdates);
-
-#if defined(OS_WIN)
- background_downloads_enabled_ =
- !HasSwitchValue(switch_values, kSwitchDisableBackgroundDownloads);
-#else
- background_downloads_enabled_ = false;
-#endif
-
- const std::string switch_url_source =
- GetSwitchArgument(switch_values, kSwitchUrlSource);
- if (!switch_url_source.empty()) {
- url_source_override_ = GURL(switch_url_source);
- DCHECK(url_source_override_.is_valid());
- }
-
- if (HasSwitchValue(switch_values, kSwitchRequestParam))
- extra_info_ += "testrequest=\"1\"";
-
- fallback_to_alt_source_url_enabled_ = CanUseAltUrlSource();
-}
+ : configurator_impl_(cmdline, url_request_getter) {}
int ChromeConfigurator::InitialDelay() const {
- return fast_update_ ? 10 : (6 * kDelayOneMinute);
+ return configurator_impl_.InitialDelay();
}
int ChromeConfigurator::NextCheckDelay() const {
- return fast_update_ ? 60 : (6 * kDelayOneHour);
+ return configurator_impl_.NextCheckDelay();
}
int ChromeConfigurator::StepDelay() const {
- return fast_update_ ? 1 : 1;
+ return configurator_impl_.StepDelay();
}
int ChromeConfigurator::OnDemandDelay() const {
- return fast_update_ ? 2 : (30 * kDelayOneMinute);
+ return configurator_impl_.OnDemandDelay();
}
int ChromeConfigurator::UpdateDelay() const {
- return fast_update_ ? 10 : (15 * kDelayOneMinute);
+ return configurator_impl_.UpdateDelay();
}
std::vector<GURL> ChromeConfigurator::UpdateUrl() const {
- std::vector<GURL> urls;
- if (url_source_override_.is_valid()) {
- urls.push_back(GURL(url_source_override_));
- } else {
- urls.push_back(GURL(kUpdaterDefaultUrl));
- if (fallback_to_alt_source_url_enabled_) {
- urls.push_back(GURL(kUpdaterAltUrl));
- }
- }
- return urls;
+ return configurator_impl_.UpdateUrl();
}
std::vector<GURL> ChromeConfigurator::PingUrl() const {
- return pings_enabled_ ? UpdateUrl() : std::vector<GURL>();
+ return configurator_impl_.PingUrl();
}
base::Version ChromeConfigurator::GetBrowserVersion() const {
- return base::Version(version_info::GetVersionNumber());
+ return configurator_impl_.GetBrowserVersion();
}
std::string ChromeConfigurator::GetChannel() const {
- return ChromeUpdateQueryParamsDelegate::GetChannelString();
+ return chrome::GetChannelString();
}
std::string ChromeConfigurator::GetLang() const {
@@ -230,28 +100,28 @@ std::string ChromeConfigurator::GetLang() const {
}
std::string ChromeConfigurator::GetOSLongName() const {
- return version_info::GetOSType();
+ return configurator_impl_.GetOSLongName();
}
std::string ChromeConfigurator::ExtraRequestParams() const {
- return extra_info_;
+ return configurator_impl_.ExtraRequestParams();
}
net::URLRequestContextGetter* ChromeConfigurator::RequestContext() const {
- return url_request_getter_;
+ return configurator_impl_.RequestContext();
}
-scoped_refptr<OutOfProcessPatcher>
+scoped_refptr<update_client::OutOfProcessPatcher>
ChromeConfigurator::CreateOutOfProcessPatcher() const {
return make_scoped_refptr(new ChromeOutOfProcessPatcher);
}
bool ChromeConfigurator::DeltasEnabled() const {
- return deltas_enabled_;
+ return configurator_impl_.DeltasEnabled();
}
bool ChromeConfigurator::UseBackgroundDownloader() const {
- return background_downloads_enabled_;
+ return configurator_impl_.UseBackgroundDownloader();
}
scoped_refptr<base::SequencedTaskRunner>

Powered by Google App Engine
This is Rietveld 408576698