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

Unified Diff: chrome/browser/chromeos/login/screens/reset_screen.h

Issue 904163003: Reset Screen moved to ScreenContext. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: User actions introduced. Created 5 years, 10 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/screens/reset_screen.h
diff --git a/chrome/browser/chromeos/login/screens/reset_screen.h b/chrome/browser/chromeos/login/screens/reset_screen.h
index 92d1bb00bdff20d3ae452ae9fc7e70fad711b90d..3349005dcf8428fb6d6c00307afb24da77769a73 100644
--- a/chrome/browser/chromeos/login/screens/reset_screen.h
+++ b/chrome/browser/chromeos/login/screens/reset_screen.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -9,30 +9,63 @@
#include "base/basictypes.h"
dzhioev (left Google) 2015/02/11 12:38:29 What this include is needed for?
merkulova 2015/02/11 15:07:17 Removed.
#include "base/compiler_specific.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/chromeos/login/help_app_launcher.h"
#include "chrome/browser/chromeos/login/screens/base_screen.h"
dzhioev (left Google) 2015/02/11 12:38:29 Not needed.
merkulova 2015/02/11 15:07:17 Done.
-#include "chrome/browser/chromeos/login/screens/reset_screen_actor.h"
+#include "chrome/browser/chromeos/login/screens/reset_model.h"
+#include "chromeos/dbus/update_engine_client.h"
+
namespace chromeos {
+class ErrorScreen;
+class ResetView;
+
// Representation independent class that controls screen showing reset to users.
-class ResetScreen : public BaseScreen, public ResetScreenActor::Delegate {
+class ResetScreen : public ResetModel,
+ public UpdateEngineClient::Observer {
public:
ResetScreen(BaseScreenDelegate* base_screen_delegate,
- ResetScreenActor* actor);
+ ResetView* view);
~ResetScreen() override;
- // BaseScreen implementation:
+ // ResetModel implementation:
void PrepareToShow() override;
void Show() override;
void Hide() override;
- std::string GetName() const override;
+ void OnCancel() override;
+ void OnPowerwash() override;
+ void OnRestart() override;
+ void OnToggleRollback() override;
+ void OnShowConfirm() override;
+ void OnLearnMore() override;
+ void OnViewDestroyed(ResetView* view) override;
+ void OnUserAction(const std::string& action_id) override;
- // ResetScreenActor::Delegate implementation:
- void OnExit() override;
- void OnActorDestroyed(ResetScreenActor* actor) override;
+ // UpdateEngineClient::Observer implementation:
+ void UpdateStatusChanged(const UpdateEngineClient::Status& status) override;
+
+ void OnRollbackCheck(bool can_rollback);
private:
- ResetScreenActor* actor_;
+
+ enum State {
+ STATE_RESTART_REQUIRED = 0,
+ STATE_REVERT_PROMISE,
+ STATE_POWERWASH_PROPOSAL,
+ STATE_ERROR
+ };
+
+ // Returns an instance of the error screen.
+ ErrorScreen* GetErrorScreen();
+
+ ResetView* view_;
+
+ // Help application used for help dialogs.
+ scoped_refptr<HelpAppLauncher> help_app_;
dzhioev (left Google) 2015/02/11 12:38:29 Do you now why help_app_ is a scoped_refptr, and n
merkulova 2015/02/11 15:07:17 Because some other screens might use it.
dzhioev (left Google) 2015/02/12 12:51:58 First of all, help_app_ is a private field without
merkulova 2015/02/12 13:37:37 is_refcounted_type_and_needs_scoped_refptr as Help
+
+ base::WeakPtrFactory<ResetScreen> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(ResetScreen);
};

Powered by Google App Engine
This is Rietveld 408576698