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

Unified Diff: chrome/browser/chromeos/login/update_screen.h

Issue 7039042: [cros] update screen re-factoring pt.1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix for mocks Created 9 years, 7 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/chromeos/login/update_screen.h
diff --git a/chrome/browser/chromeos/login/update_screen.h b/chrome/browser/chromeos/login/update_screen.h
index c1afb0d9409b71f21ebd7121dc863c41861d8d99..aac24feb8b87214175465152c49607723b65c1f8 100644
--- a/chrome/browser/chromeos/login/update_screen.h
+++ b/chrome/browser/chromeos/login/update_screen.h
@@ -6,37 +6,49 @@
#define CHROME_BROWSER_CHROMEOS_LOGIN_UPDATE_SCREEN_H_
#pragma once
+#include <set>
+
+#include "base/gtest_prod_util.h"
+#include "base/memory/scoped_ptr.h"
#include "base/timer.h"
#include "chrome/browser/chromeos/cros/update_library.h"
-#include "chrome/browser/chromeos/login/update_view.h"
-#include "chrome/browser/chromeos/login/view_screen.h"
+#include "chrome/browser/chromeos/login/wizard_screen.h"
namespace chromeos {
-class UpdateController {
- public:
- // Starts update.
- virtual void StartUpdate() = 0;
- // Cancels pending update without error.
- virtual void CancelUpdate() = 0;
-};
+// Forward declaration.
+class UpdateScreenActor;
-class UpdateScreen: public DefaultViewScreen<chromeos::UpdateView>,
- public UpdateLibrary::Observer,
- public UpdateController {
+// Controller for the update screen. It does not depends on the specific
whywhat 2011/05/20 09:29:50 nit: depends -> depend
altimofeev 2011/05/20 12:00:32 Done.
+// realization of the screen showing (Views of WebUI based), it delegates it to
whywhat 2011/05/20 09:29:50 nit: realization -> implementation, it delegates i
altimofeev 2011/05/20 12:00:32 Done.
+// the UpdateScreenActor instead.
+class UpdateScreen: public UpdateLibrary::Observer,
+ public WizardScreen {
public:
explicit UpdateScreen(WizardScreenDelegate* delegate);
virtual ~UpdateScreen();
- // UpdateLibrary::Observer implementation:
- virtual void UpdateStatusChanged(UpdateLibrary* library);
+ // Overridden from WizardScreen.
+ virtual void Show();
+ virtual void Hide();
+ virtual gfx::Size GetScreenSize() const;
- // Overridden from UpdateController:
+ // Checks for updates and updates if needed. Made virtual to simplify mocking.
whywhat 2011/05/20 09:29:50 nit: second "updates" -> performs an update
altimofeev 2011/05/20 12:00:32 Done.
virtual void StartUpdate();
+
+ // Force udpate cancel. Made virtual to simplify mocking.
whywhat 2011/05/20 09:29:50 nit: Force cancel update (udpate -> update and can
altimofeev 2011/05/20 12:00:32 Done. nit: cancel is a noun too.
virtual void CancelUpdate();
- // Overridden from ViewScreen.
- virtual void Show();
+ // Reboot check delay get/set, in seconds.
+ int reboot_check_delay() const { return reboot_check_delay_; }
+ void SetRebootCheckDelay(int seconds);
+
+ // Set flag to treat all updates as critical (for test purpose mainly).
+ // Default value is false.
+ void SetAllUpdatesCritical(bool is_critical);
whywhat 2011/05/20 09:29:50 If it's only for tests, why not make it private an
altimofeev 2011/05/20 12:00:32 Then I can completely remove it - done.
+
+ // Returns true if this instance is still active (i.e. has not been deleted).
+ static bool HasInstance(UpdateScreen* inst);
enum ExitReason {
REASON_UPDATE_CANCELED,
@@ -44,26 +56,19 @@ class UpdateScreen: public DefaultViewScreen<chromeos::UpdateView>,
REASON_UPDATE_NON_CRITICAL,
REASON_UPDATE_ENDED
};
-
// Reports update results to the ScreenObserver.
virtual void ExitUpdate(ExitReason reason);
- // Reboot check delay get/set, in seconds.
- int reboot_check_delay() const { return reboot_check_delay_; }
- void SetRebootCheckDelay(int seconds);
+ private:
+ FRIEND_TEST_ALL_PREFIXES(UpdateScreenTest, TestBasic);
+
+ // UpdateLibrary::Observer implementation:
+ virtual void UpdateStatusChanged(UpdateLibrary* library);
// Returns true if there is critical system update that requires installation
// and immediate reboot.
bool HasCriticalUpdate();
- // Set flag to treat all updates as critical (for test purpose mainly).
- // Default value is false.
- void SetAllUpdatesCritical(bool is_critical);
-
- // Returns true if this instance is still active (i.e. has not been deleted).
- static bool HasInstance(UpdateScreen* inst);
-
- private:
// Timer notification handlers.
void OnWaitForRebootTimeElapsed();
@@ -78,19 +83,22 @@ class UpdateScreen: public DefaultViewScreen<chromeos::UpdateView>,
typedef std::set<UpdateScreen*> InstanceSet;
static InstanceSet& GetInstanceSet();
- // True if in the process of checking for update.
- bool checking_for_update_;
-
// 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_;
+ // Is all updates critical? If true, update deadlines are ignored.
whywhat 2011/05/20 09:29:50 nit: Is -> Are
altimofeev 2011/05/20 12:00:32 Done.
+ bool is_all_updates_critical_;
whywhat 2011/05/20 09:29:50 optional: there too. or maybe rename to ignore_upd
altimofeev 2011/05/20 12:00:32 Done.
+ // True if in the process of checking for update.
+ bool is_checking_for_update_;
// Flag that is used to detect when update download has just started.
bool is_downloading_update_;
+ // Whether the update screen is shown.
+ bool is_shown_;
- // Is all updates critical? If true, update deadlines are ignored.
- bool is_all_updates_critical_;
+ // Keeps actor which is delegated with all showing operations.
+ scoped_ptr<UpdateScreenActor> actor_;
DISALLOW_COPY_AND_ASSIGN(UpdateScreen);
};
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/update_screen.cc » ('j') | chrome/browser/chromeos/login/update_screen.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698