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); |
}; |