Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / options / create_profile_handler.h
index d443df9..cf1262b 100644 (file)
@@ -19,7 +19,9 @@ class DictionaryValue;
 class ListValue;
 }
 
-class ManagedUserRegistrationUtility;
+#if defined(ENABLE_MANAGED_USERS)
+class SupervisedUserRegistrationUtility;
+#endif
 
 namespace options {
 
@@ -27,14 +29,13 @@ namespace options {
 class CreateProfileHandler: public OptionsPageUIHandler {
  public:
   CreateProfileHandler();
-  virtual ~CreateProfileHandler();
+  ~CreateProfileHandler() override;
 
   // OptionsPageUIHandler implementation.
-  virtual void GetLocalizedValues(
-      base::DictionaryValue* localized_strings) OVERRIDE;
+  void GetLocalizedValues(base::DictionaryValue* localized_strings) override;
 
   // WebUIMessageHandler implementation.
-  virtual void RegisterMessages() OVERRIDE;
+  void RegisterMessages() override;
 
  private:
   // Represents the final profile creation status. It is used to map
@@ -44,21 +45,14 @@ class CreateProfileHandler: public OptionsPageUIHandler {
     PROFILE_CREATION_ERROR,
   };
 
-  // Represents errors that could occur during a profile creation.
-  // It is used to map error types to messages that will be displayed
-  // to the user.
-  enum ProfileCreationErrorType {
-    REMOTE_ERROR,
-    LOCAL_ERROR,
-    SIGNIN_ERROR
-  };
-
   // Represents the type of the in progress profile creation operation.
   // It is used to map the type of the profile creation operation to the
   // correct UMA metric name.
   enum ProfileCreationOperationType {
+#if defined(ENABLE_MANAGED_USERS)
     SUPERVISED_PROFILE_CREATION,
     SUPERVISED_PROFILE_IMPORT,
+#endif
     NON_SUPERVISED_PROFILE_CREATION,
     NO_CREATION_IN_PROGRESS
   };
@@ -69,8 +63,9 @@ class CreateProfileHandler: public OptionsPageUIHandler {
   //   1: icon (string)
   //   2: a flag stating whether we should create a profile desktop shortcut
   //      (optional, boolean)
-  //   3: a flag stating whether the user should be managed (optional, boolean)
-  //   4: a string representing the managed user ID.
+  //   3: a flag stating whether the user should be supervised
+  //      (optional, boolean)
+  //   4: a string representing the supervised user ID.
   void CreateProfile(const base::ListValue* args);
 
   // If a local error occurs during profile creation, then show an appropriate
@@ -80,28 +75,15 @@ class CreateProfileHandler: public OptionsPageUIHandler {
   // as the final task after a new profile has been created.
   void OnProfileCreated(bool create_shortcut,
                         chrome::HostDesktopType desktop_type,
-                        const std::string& managed_user_id,
+                        const std::string& supervised_user_id,
                         Profile* profile,
                         Profile::CreateStatus status);
 
   void HandleProfileCreationSuccess(bool create_shortcut,
                                     chrome::HostDesktopType desktop_type,
-                                    const std::string& managed_user_id,
+                                    const std::string& supervised_user_id,
                                     Profile* profile);
 
-  // After a new managed-user profile has been created, registers the user with
-  // the management server.
-  void RegisterManagedUser(bool create_shortcut,
-                           chrome::HostDesktopType desktop_type,
-                           const std::string& managed_user_id,
-                           Profile* new_profile);
-
-  // Called back with the result of the managed user registration.
-  void OnManagedUserRegistered(bool create_shortcut,
-                               chrome::HostDesktopType desktop_type,
-                               Profile* profile,
-                               const GoogleServiceAuthError& error);
-
   // Creates desktop shortcut and updates the UI to indicate success
   // when creating a profile.
   void CreateShortcutAndShowSuccess(bool create_shortcut,
@@ -109,14 +91,45 @@ class CreateProfileHandler: public OptionsPageUIHandler {
                                     Profile* profile);
 
   // Updates the UI to show an error when creating a profile.
-  void ShowProfileCreationError(Profile* profile, const string16& error);
+  void ShowProfileCreationError(Profile* profile, const base::string16& error);
 
   // Updates the UI to show a non-fatal warning when creating a profile.
-  void ShowProfileCreationWarning(const string16& warning);
+  void ShowProfileCreationWarning(const base::string16& warning);
+
+  // Records UMA histograms relevant to profile creation.
+  void RecordProfileCreationMetrics(Profile::CreateStatus status);
+
+  base::string16 GetProfileCreationErrorMessageLocal() const;
+#if defined(ENABLE_MANAGED_USERS)
+  // The following error messages only apply to supervised profiles.
+  base::string16 GetProfileCreationErrorMessageRemote() const;
+  base::string16 GetProfileCreationErrorMessageSignin() const;
+#endif
+
+  std::string GetJavascriptMethodName(ProfileCreationStatus status) const;
+
+  // Used to allow cancelling a profile creation (particularly a supervised-user
+  // registration) in progress. Set when profile creation is begun, and
+  // cleared when all the callbacks have been run and creation is complete.
+  base::FilePath profile_path_being_created_;
 
-  // Cancels creation of a managed-user profile currently in progress, as
+  // Used to track how long profile creation takes.
+  base::TimeTicks profile_creation_start_time_;
+
+  // Indicates the type of the in progress profile creation operation.
+  // The value is only relevant while we are creating/importing a profile.
+  ProfileCreationOperationType profile_creation_type_;
+
+#if defined(ENABLE_MANAGED_USERS)
+  // Extracts the supervised user ID from the args passed into CreateProfile,
+  // sets |profile_creation_type_| if necessary, and returns true if the
+  // supervised user id specified in |args| are valid.
+  bool ProcessSupervisedCreateProfileArgs(const base::ListValue* args,
+                                          std::string* supervised_user_id);
+
+  // Cancels creation of a supervised-user profile currently in progress, as
   // indicated by profile_path_being_created_, removing the object and files
-  // and canceling managed-user registration. This is the handler for the
+  // and canceling supervised-user registration. This is the handler for the
   // "cancelCreateProfile" message. |args| is not used.
   void HandleCancelProfileCreation(const base::ListValue* args);
 
@@ -126,33 +139,30 @@ class CreateProfileHandler: public OptionsPageUIHandler {
   // was caused implicitly, e.g. by shutting down the browser.
   void CancelProfileRegistration(bool user_initiated);
 
-  // Records UMA histograms relevant to profile creation.
-  void RecordProfileCreationMetrics(Profile::CreateStatus status);
+  // After a new supervised-user profile has been created, registers the user
+  // with the management server.
+  void RegisterSupervisedUser(bool create_shortcut,
+                              chrome::HostDesktopType desktop_type,
+                              const std::string& managed_user_id,
+                              Profile* new_profile);
+
+  // Called back with the result of the supervised user registration.
+  void OnSupervisedUserRegistered(bool create_shortcut,
+                                  chrome::HostDesktopType desktop_type,
+                                  Profile* profile,
+                                  const GoogleServiceAuthError& error);
 
   // Records UMA histograms relevant to supervised user profiles
   // creation and registration.
   void RecordSupervisedProfileCreationMetrics(
       GoogleServiceAuthError::State error_state);
 
-  string16 GetProfileCreationErrorMessage(ProfileCreationErrorType error) const;
-  std::string GetJavascriptMethodName(ProfileCreationStatus status) const;
-
-  bool IsValidExistingManagedUserId(
-      const std::string& existing_managed_user_id) const;
+  bool IsValidExistingSupervisedUserId(
+      const std::string& existing_supervised_user_id) const;
 
-  // Used to allow cancelling a profile creation (particularly a managed-user
-  // registration) in progress. Set when profile creation is begun, and
-  // cleared when all the callbacks have been run and creation is complete.
-  base::FilePath profile_path_being_created_;
-
-  // Used to track how long profile creation takes.
-  base::TimeTicks profile_creation_start_time_;
-
-  scoped_ptr<ManagedUserRegistrationUtility> managed_user_registration_utility_;
-
-  // Indicates the type of the in progress profile creation operation.
-  // The value is only relevant while we are creating/importing a profile.
-  ProfileCreationOperationType profile_creation_type_;
+  scoped_ptr<SupervisedUserRegistrationUtility>
+      supervised_user_registration_utility_;
+#endif
 
   base::WeakPtrFactory<CreateProfileHandler> weak_ptr_factory_;