Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / screens / base_screen.h
index 9da0557..651eadf 100644 (file)
@@ -8,14 +8,19 @@
 #include <string>
 
 #include "base/basictypes.h"
+#include "base/gtest_prod_util.h"
 
 namespace base {
 class DictionaryValue;
 }
 
+namespace login {
+class ScreenContext;
+}
+
 namespace chromeos {
 
-class ScreenContext;
+class BaseScreenDelegate;
 
 // Base class for the all OOBE/login/before-session screens.
 // Screens are identified by ID, screen and it's JS counterpart must have same
@@ -26,7 +31,7 @@ class ScreenContext;
 // Initialize() method calls.
 class BaseScreen {
  public:
-  BaseScreen();
+  explicit BaseScreen(BaseScreenDelegate* base_screen_delegate);
   virtual ~BaseScreen();
 
   // ---- Old implementation ----
@@ -48,7 +53,7 @@ class BaseScreen {
   // at this point. Screen can alter context, resulting context will be passed
   // to JS. This method will be called once per instance of the Screen object,
   // unless |IsPermanent()| returns |true|.
-  virtual void Initialize(ScreenContext* context);
+  virtual void Initialize(::login::ScreenContext* context);
 
   // Called when screen appears.
   virtual void OnShow();
@@ -86,9 +91,22 @@ class BaseScreen {
   // counterpart.
   virtual void OnContextChanged(const base::DictionaryValue* diff);
 
+  BaseScreenDelegate* get_base_screen_delegate() const {
+    return base_screen_delegate_;
+  }
+
  private:
+  FRIEND_TEST_ALL_PREFIXES(EnrollmentScreenTest, TestCancel);
+  FRIEND_TEST_ALL_PREFIXES(EnrollmentScreenTest, TestSuccess);
+  FRIEND_TEST_ALL_PREFIXES(ProvisionedEnrollmentScreenTest, TestBackButton);
+
+  friend class NetworkScreenTest;
   friend class ScreenManager;
-  void SetContext(ScreenContext* context);
+  friend class UpdateScreenTest;
+
+  void SetContext(::login::ScreenContext* context);
+
+  BaseScreenDelegate* base_screen_delegate_;
 
   DISALLOW_COPY_AND_ASSIGN(BaseScreen);
 };