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

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

Issue 2738973003: cros: WIP patch to remove EnableDebuggingScreenView
Patch Set: Initial upload Created 3 years, 9 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
« no previous file with comments | « chrome/browser/chromeos/BUILD.gn ('k') | chrome/browser/chromeos/login/screen_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/login/screen_manager.h
diff --git a/chrome/browser/chromeos/login/screen_manager.h b/chrome/browser/chromeos/login/screen_manager.h
index e0b1383e26da8f95c1defdb389b2814558d8b287..396c9f48a10100c97e1122f0fecdc596854edbf0 100644
--- a/chrome/browser/chromeos/login/screen_manager.h
+++ b/chrome/browser/chromeos/login/screen_manager.h
@@ -12,23 +12,31 @@
#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "chrome/browser/chromeos/login/screens/base_screen.h"
+#include "chrome/browser/chromeos/login/screens/core_oobe_view.h"
namespace chromeos {
class WizardController;
-// Class that manages creation and ownership of screens.
-class ScreenManager {
+// Manages the overall creation and ownership of screens. This is the
+// CoreOobeView::Delegate instance which gets passed to the WebUI specific login
+// code. When a callback method is invoked, this class just dispatches it to
+// all registered delegates.
+class ScreenManager : public CoreOobeView::Delegate {
public:
// |wizard_controller| is not owned by this class.
explicit ScreenManager(WizardController* wizard_controller);
- ~ScreenManager();
+ ~ScreenManager() override;
// Getter for screen with lazy initialization.
BaseScreen* GetScreen(OobeScreen screen);
bool HasScreen(OobeScreen screen);
+ // Register a new delegate that will receive callbacks from UI-specific login
+ // code.
+ void AddDelegate(CoreOobeView::Delegate* delegate);
+
private:
FRIEND_TEST_ALL_PREFIXES(EnrollmentScreenTest, TestCancel);
FRIEND_TEST_ALL_PREFIXES(WizardControllerFlowTest, Accelerators);
@@ -37,9 +45,17 @@ class ScreenManager {
friend class WizardInProcessBrowserTest;
friend class WizardControllerBrokenLocalStateTest;
+ // CoreOobeView::Delegate:
+ void OnEnableDebuggingScreenViewExit(bool success) override;
+ void OnViewDestroyed(CoreOobeView* view) override;
+
// Created screens.
std::map<OobeScreen, std::unique_ptr<BaseScreen>> screens_;
+ // Unowned pointer to BaseScreen instances which implement
+ // CoreOobeView::Delegate. The instances are owned by |screens_|.
+ std::vector<CoreOobeView::Delegate*> delegates_;
+
// Used to allocate BaseScreen instances. Unowned.
WizardController* wizard_controller_;
« no previous file with comments | « chrome/browser/chromeos/BUILD.gn ('k') | chrome/browser/chromeos/login/screen_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698