Chromium Code Reviews| Index: chrome/browser/chromeos/login/screens/update_screen.h |
| diff --git a/chrome/browser/chromeos/login/screens/update_screen.h b/chrome/browser/chromeos/login/screens/update_screen.h |
| index a3fd36c3555d4f55ce14a26a804e506b80aca749..8277d84f40767bb13d438919fe0b3378c8883d20 100644 |
| --- a/chrome/browser/chromeos/login/screens/update_screen.h |
| +++ b/chrome/browser/chromeos/login/screens/update_screen.h |
| @@ -14,8 +14,8 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "base/time/time.h" |
| #include "base/timer/timer.h" |
| +#include "chrome/browser/chromeos/login/screens/base_screen.h" |
| #include "chrome/browser/chromeos/login/screens/error_screen.h" |
| -#include "chrome/browser/chromeos/login/screens/update_model.h" |
| #include "chromeos/dbus/update_engine_client.h" |
| #include "chromeos/network/portal_detector/network_portal_detector.h" |
| #include "components/pairing/host_pairing_controller.h" |
| @@ -30,30 +30,27 @@ class ScreenManager; |
| class UpdateView; |
| // Controller for the update screen. |
| -class UpdateScreen : public UpdateModel, |
| +class UpdateScreen : public BaseScreen, |
| public UpdateEngineClient::Observer, |
| public NetworkPortalDetector::Observer { |
| public: |
| + static UpdateScreen* Get(ScreenManager* manager); |
| + |
| + // Returns true if this instance is still active (i.e. has not been deleted). |
| + static bool HasInstance(UpdateScreen* inst); |
| + |
| UpdateScreen(BaseScreenDelegate* base_screen_delegate, |
| UpdateView* view, |
| pairing_chromeos::HostPairingController* remora_controller); |
| ~UpdateScreen() override; |
| - static UpdateScreen* Get(ScreenManager* manager); |
| - |
| - // UpdateModel: |
| - void Show() override; |
| - void Hide() override; |
| - void OnViewDestroyed(UpdateView* view) override; |
| - void OnUserAction(const std::string& action_id) override; |
| - void OnContextKeyUpdated(const ::login::ScreenContext::KeyType& key) override; |
| + // Called when the being destroyed. This should call Unbind() on the |
| + // associated View if this class is destroyed before it. |
| + void OnViewDestroyed(UpdateView* view); |
| // Starts network check. Made virtual to simplify mocking. |
| virtual void StartNetworkCheck(); |
| - // Returns true if this instance is still active (i.e. has not been deleted). |
| - static bool HasInstance(UpdateScreen* inst); |
| - |
| void SetIgnoreIdleStatus(bool ignore_idle_status); |
| enum ExitReason { |
| @@ -83,6 +80,11 @@ class UpdateScreen : public UpdateModel, |
| FRIEND_TEST_ALL_PREFIXES(UpdateScreenTest, TestUpdateAvailable); |
| FRIEND_TEST_ALL_PREFIXES(UpdateScreenTest, TestAPReselection); |
| + // BaseScreen: |
|
achuithb
2017/02/03 22:36:43
Should this go after the enum?
jdufault
2017/02/06 22:30:48
Done.
|
| + void Show() override; |
| + void Hide() override; |
| + void OnUserAction(const std::string& action_id) override; |
| + |
| enum State { |
| STATE_IDLE = 0, |
| STATE_FIRST_PORTAL_CHECK, |
| @@ -128,52 +130,54 @@ class UpdateScreen : public UpdateModel, |
| base::OneShotTimer reboot_timer_; |
| // Returns a static InstanceSet. |
| + // TODO(jdufault): There should only ever be one instance of this class. |
| + // Remove support for supporting multiple instances. See crbug.com/672142. |
| typedef std::set<UpdateScreen*> InstanceSet; |
| static InstanceSet& GetInstanceSet(); |
| // Current state of the update screen. |
| - State state_; |
| + State state_ = STATE_IDLE; |
| // Time in seconds after which we decide that the device has not rebooted |
| // automatically. If reboot didn't happen during this interval, ask user to |
| // reboot device manually. |
| - int reboot_check_delay_; |
| + int reboot_check_delay_ = 0; |
| // True if in the process of checking for update. |
| - bool is_checking_for_update_; |
| + bool is_checking_for_update_ = true; |
| // Flag that is used to detect when update download has just started. |
| - bool is_downloading_update_; |
| + bool is_downloading_update_ = false; |
| // If true, update deadlines are ignored. |
| // Note, this is false by default. |
| - bool is_ignore_update_deadlines_; |
| + bool is_ignore_update_deadlines_ = false; |
| // Whether the update screen is shown. |
| - bool is_shown_; |
| + bool is_shown_ = false; |
| // Ignore fist IDLE status that is sent before update screen initiated check. |
| - bool ignore_idle_status_; |
| + bool ignore_idle_status_ = true; |
| - UpdateView* view_; |
| + UpdateView* view_ = nullptr; |
| // Used to track updates over Bluetooth. |
| pairing_chromeos::HostPairingController* remora_controller_; |
| // Time of the first notification from the downloading stage. |
| base::Time download_start_time_; |
| - double download_start_progress_; |
| + double download_start_progress_ = 0; |
| // Time of the last notification from the downloading stage. |
| base::Time download_last_time_; |
| - double download_last_progress_; |
| + double download_last_progress_ = 0; |
| - bool is_download_average_speed_computed_; |
| - double download_average_speed_; |
| + bool is_download_average_speed_computed_ = false; |
| + double download_average_speed_ = 0; |
| // True if there was no notification from NetworkPortalDetector |
| // about state for the default network. |
| - bool is_first_detection_notification_; |
| + bool is_first_detection_notification_ = true; |
| // True if there was no notification about captive portal state for |
| // the default network. |
| - bool is_first_portal_notification_; |
| + bool is_first_portal_notification_ = true; |
| std::unique_ptr<ErrorScreensHistogramHelper> histogram_helper_; |