| Index: update_attempter.h
|
| diff --git a/update_attempter.h b/update_attempter.h
|
| index 3a4ff49960b1b2bbc98a007b2b50d7e2fc4caa3a..ba0bd941c43133ab605069125c983961cca8df22 100644
|
| --- a/update_attempter.h
|
| +++ b/update_attempter.h
|
| @@ -16,9 +16,11 @@
|
| #include <gtest/gtest_prod.h> // for FRIEND_TEST
|
|
|
| #include "update_engine/action_processor.h"
|
| +#include "update_engine/chrome_proxy_resolver.h"
|
| #include "update_engine/download_action.h"
|
| #include "update_engine/omaha_request_params.h"
|
| #include "update_engine/omaha_response_handler_action.h"
|
| +#include "update_engine/proxy_resolver.h"
|
|
|
| class MetricsLibraryInterface;
|
| struct UpdateEngineService;
|
| @@ -47,14 +49,19 @@ class UpdateAttempter : public ActionProcessorDelegate,
|
| public:
|
| static const int kMaxDeltaUpdateFailures;
|
|
|
| - UpdateAttempter(PrefsInterface* prefs, MetricsLibraryInterface* metrics_lib);
|
| + UpdateAttempter(PrefsInterface* prefs,
|
| + MetricsLibraryInterface* metrics_lib,
|
| + DbusGlibInterface* dbus_iface);
|
| virtual ~UpdateAttempter();
|
|
|
| // Checks for update and, if a newer version is available, attempts
|
| // to update the system. Non-empty |in_app_version| or
|
| // |in_update_url| prevents automatic detection of the parameter.
|
| + // If |obey_proxies| is true, the update will likely respect Chrome's
|
| + // proxy setting. For security reasons, we may still not honor them.
|
| virtual void Update(const std::string& app_version,
|
| - const std::string& omaha_url);
|
| + const std::string& omaha_url,
|
| + bool obey_proxies);
|
|
|
| // ActionProcessorDelegate methods:
|
| void ProcessingDone(const ActionProcessor* processor, ActionExitCode code);
|
| @@ -153,6 +160,12 @@ class UpdateAttempter : public ActionProcessorDelegate,
|
| // If this was a delta update attempt that failed, count it so that a full
|
| // update can be tried when needed.
|
| void MarkDeltaUpdateFailure();
|
| +
|
| + ProxyResolver* GetProxyResolver() {
|
| + return obeying_proxies_ ?
|
| + reinterpret_cast<ProxyResolver*>(&chrome_proxy_resolver_) :
|
| + reinterpret_cast<ProxyResolver*>(&direct_proxy_resolver_);
|
| + }
|
|
|
| // Last status notification timestamp used for throttling. Use monotonic
|
| // TimeTicks to ensure that notifications are sent even if the system clock is
|
| @@ -208,6 +221,17 @@ class UpdateAttempter : public ActionProcessorDelegate,
|
| // Device paramaters common to all Omaha requests.
|
| OmahaRequestDeviceParams omaha_request_params_;
|
|
|
| + // Number of consecutive manual update checks we've had where we obeyed
|
| + // Chrome's proxy settings.
|
| + int proxy_manual_checks_;
|
| +
|
| + // If true, this update cycle we are obeying proxies
|
| + bool obeying_proxies_;
|
| +
|
| + // Our two proxy resolvers
|
| + DirectProxyResolver direct_proxy_resolver_;
|
| + ChromeProxyResolver chrome_proxy_resolver_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(UpdateAttempter);
|
| };
|
|
|
|
|