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

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

Issue 2739073002: cros: Use ScreenManager as a component instead of deriving WizardController from it (Closed)
Patch Set: Address comment 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
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 360d2b28e96c573a667e271613c148879567e9ff..e0b1383e26da8f95c1defdb389b2814558d8b287 100644
--- a/chrome/browser/chromeos/login/screen_manager.h
+++ b/chrome/browser/chromeos/login/screen_manager.h
@@ -6,26 +6,26 @@
#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREEN_MANAGER_H_
#include <map>
+#include <memory>
#include <string>
#include "base/gtest_prod_util.h"
#include "base/macros.h"
-#include "base/memory/linked_ptr.h"
#include "chrome/browser/chromeos/login/screens/base_screen.h"
namespace chromeos {
+class WizardController;
+
// Class that manages creation and ownership of screens.
class ScreenManager {
public:
- ScreenManager();
- virtual ~ScreenManager();
+ // |wizard_controller| is not owned by this class.
+ explicit ScreenManager(WizardController* wizard_controller);
+ ~ScreenManager();
// Getter for screen with lazy initialization.
- virtual BaseScreen* GetScreen(OobeScreen screen);
-
- // Factory for screen instances.
- virtual BaseScreen* CreateScreen(OobeScreen screen) = 0;
+ BaseScreen* GetScreen(OobeScreen screen);
bool HasScreen(OobeScreen screen);
@@ -37,8 +37,11 @@ class ScreenManager {
friend class WizardInProcessBrowserTest;
friend class WizardControllerBrokenLocalStateTest;
- // Screens.
- std::map<OobeScreen, linked_ptr<BaseScreen>> screens_;
+ // Created screens.
+ std::map<OobeScreen, std::unique_ptr<BaseScreen>> screens_;
+
+ // Used to allocate BaseScreen instances. Unowned.
+ WizardController* wizard_controller_;
DISALLOW_COPY_AND_ASSIGN(ScreenManager);
};
« no previous file with comments | « chrome/browser/chromeos/login/oobe_localization_browsertest.cc ('k') | chrome/browser/chromeos/login/screen_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698