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

Side by Side Diff: chrome/browser/ui/webui/signin/signin_create_profile_handler.h

Issue 2058203002: MD User Manager: Supervised user logic should be inside ENABLE_SUPERVISED_USERS flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@md-user-manager-policy-prefs
Patch Set: Created 4 years, 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/ui/webui/signin/signin_create_profile_handler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_CREATE_PROFILE_HANDLER_H_ 5 #ifndef CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_CREATE_PROFILE_HANDLER_H_
6 #define CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_CREATE_PROFILE_HANDLER_H_ 6 #define CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_CREATE_PROFILE_HANDLER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 24 matching lines...) Expand all
35 35
36 void GetLocalizedValues(base::DictionaryValue* localized_strings); 36 void GetLocalizedValues(base::DictionaryValue* localized_strings);
37 37
38 protected: 38 protected:
39 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 39 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
40 ReturnDefaultProfileNameAndIcons); 40 ReturnDefaultProfileNameAndIcons);
41 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 41 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
42 ReturnSignedInProfiles); 42 ReturnSignedInProfiles);
43 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 43 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
44 CreateProfile); 44 CreateProfile);
45 #if defined(ENABLE_SUPERVISED_USERS)
45 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 46 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
46 CreateSupervisedUser); 47 CreateSupervisedUser);
47 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 48 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
48 ImportSupervisedUser); 49 ImportSupervisedUser);
49 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 50 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
50 ImportSupervisedUserAlreadyOnDevice); 51 ImportSupervisedUserAlreadyOnDevice);
51 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 52 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
52 CustodianNotAuthenticated); 53 CustodianNotAuthenticated);
53 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 54 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
54 CustodianHasAuthError); 55 CustodianHasAuthError);
55 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest, 56 FRIEND_TEST_ALL_PREFIXES(SigninCreateProfileHandlerTest,
56 NotAllowedToCreateSupervisedUser); 57 NotAllowedToCreateSupervisedUser);
58 #endif
57 59
58 // WebUIMessageHandler implementation. 60 // WebUIMessageHandler implementation.
59 void RegisterMessages() override; 61 void RegisterMessages() override;
60 62
61 // content::NotificationObserver implementation: 63 // content::NotificationObserver implementation:
62 void Observe(int type, 64 void Observe(int type,
63 const content::NotificationSource& source, 65 const content::NotificationSource& source,
64 const content::NotificationDetails& details) override; 66 const content::NotificationDetails& details) override;
65 67
66 // Represents the final profile creation status. It is used to map 68 // Represents the final profile creation status. It is used to map
(...skipping 18 matching lines...) Expand all
85 // Callback for the "requestDefaultProfileIcons" message. 87 // Callback for the "requestDefaultProfileIcons" message.
86 // Sends the array of default profile icon URLs to WebUI. 88 // Sends the array of default profile icon URLs to WebUI.
87 void RequestDefaultProfileIcons(const base::ListValue* args); 89 void RequestDefaultProfileIcons(const base::ListValue* args);
88 90
89 // Sends an object to WebUI of the form: { "name": profileName } after 91 // Sends an object to WebUI of the form: { "name": profileName } after
90 // "requestDefaultProfileIcons" is fulfilled. 92 // "requestDefaultProfileIcons" is fulfilled.
91 void SendNewProfileDefaults(); 93 void SendNewProfileDefaults();
92 94
93 // Callback for the "requestSignedInProfiles" message. 95 // Callback for the "requestSignedInProfiles" message.
94 // Sends the email address of the signed-in user, or an empty string if the 96 // Sends the email address of the signed-in user, or an empty string if the
95 // user is not signed in. Also sends information about whether supervised 97 // user is not signed in.
96 // users may be created.
97 void RequestSignedInProfiles(const base::ListValue* args); 98 void RequestSignedInProfiles(const base::ListValue* args);
98 99
99 // Asynchronously creates and initializes a new profile. 100 // Asynchronously creates and initializes a new profile.
100 // The arguments are as follows: 101 // The arguments are as follows:
101 // 0: name (string) 102 // 0: name (string)
102 // 1: icon (string) 103 // 1: icon (string)
103 // 2: a flag stating whether we should create a profile desktop shortcut 104 // 2: a flag stating whether we should create a profile desktop shortcut
104 // (optional, boolean) 105 // (optional, boolean)
105 // 3: a flag stating whether the user should be supervised 106 // 3: a flag stating whether the user should be supervised
106 // (optional, boolean) 107 // (optional, boolean)
(...skipping 16 matching lines...) Expand all
123 const std::string& supervised_user_id, 124 const std::string& supervised_user_id,
124 Profile* custodian_profile, 125 Profile* custodian_profile,
125 Profile* profile); 126 Profile* profile);
126 127
127 // Creates desktop shortcut and updates the UI to indicate success 128 // Creates desktop shortcut and updates the UI to indicate success
128 // when creating a profile. 129 // when creating a profile.
129 void CreateShortcutAndShowSuccess(bool create_shortcut, 130 void CreateShortcutAndShowSuccess(bool create_shortcut,
130 Profile* custodian_profile, 131 Profile* custodian_profile,
131 Profile* profile); 132 Profile* profile);
132 133
134 // Opens a new window for |profile|.
135 virtual void OpenNewWindowForProfile(Profile* profile,
136 Profile::CreateStatus status);
137
138 // This callback is run after a new browser (but not the window) has been
139 // created for the new profile.
140 void OnBrowserReadyCallback(Profile* profile, Profile::CreateStatus status);
141
133 // Updates the UI to show an error when creating a profile. 142 // Updates the UI to show an error when creating a profile.
134 void ShowProfileCreationError(Profile* profile, const base::string16& error); 143 void ShowProfileCreationError(Profile* profile, const base::string16& error);
135 144
136 // Updates the UI to show a non-fatal warning when creating a profile.
137 void ShowProfileCreationWarning(const base::string16& warning);
138
139 // Records UMA histograms relevant to profile creation. 145 // Records UMA histograms relevant to profile creation.
140 void RecordProfileCreationMetrics(Profile::CreateStatus status); 146 void RecordProfileCreationMetrics(Profile::CreateStatus status);
141 147
142 base::string16 GetProfileCreationErrorMessageLocal() const; 148 base::string16 GetProfileCreationErrorMessageLocal() const;
143 #if defined(ENABLE_SUPERVISED_USERS)
144 // The following error messages only apply to supervised profiles.
145 base::string16 GetProfileCreateErrorMessageRemote() const;
146 base::string16 GetProfileCreateErrorMessageSignin() const;
147 #endif
148 149
149 base::StringValue GetWebUIListenerName(ProfileCreationStatus status) const; 150 base::StringValue GetWebUIListenerName(ProfileCreationStatus status) const;
150 151
151 // Used to allow canceling a profile creation (particularly a supervised-user 152 // Used to allow canceling a profile creation (particularly a supervised-user
152 // registration) in progress. Set when profile creation is begun, and 153 // registration) in progress. Set when profile creation is begun, and
153 // cleared when all the callbacks have been run and creation is complete. 154 // cleared when all the callbacks have been run and creation is complete.
154 base::FilePath profile_path_being_created_; 155 base::FilePath profile_path_being_created_;
155 156
156 // Used to track how long profile creation takes. 157 // Used to track how long profile creation takes.
157 base::TimeTicks profile_creation_start_time_; 158 base::TimeTicks profile_creation_start_time_;
158 159
159 // Indicates the type of the in progress profile creation operation. 160 // Indicates the type of the in progress profile creation operation.
160 // The value is only relevant while we are creating/importing a profile. 161 // The value is only relevant while we are creating/importing a profile.
161 ProfileCreationOperationType profile_creation_type_; 162 ProfileCreationOperationType profile_creation_type_;
162 163
163 // Asynchronously creates and initializes a new profile. 164 // Asynchronously creates and initializes a new profile.
164 virtual void DoCreateProfile(const base::string16& name, 165 virtual void DoCreateProfile(const base::string16& name,
165 const std::string& icon_url, 166 const std::string& icon_url,
166 bool create_shortcut, 167 bool create_shortcut,
167 const std::string& supervised_user_id, 168 const std::string& supervised_user_id,
168 Profile* custodian_profile); 169 Profile* custodian_profile);
169 170
170 #if defined(ENABLE_SUPERVISED_USERS) 171 #if defined(ENABLE_SUPERVISED_USERS)
172 base::string16 GetProfileCreateErrorMessageRemote() const;
173 base::string16 GetProfileCreateErrorMessageSignin() const;
174
171 // Extracts the supervised user ID and the custodian user profile path from 175 // Extracts the supervised user ID and the custodian user profile path from
172 // the args passed into CreateProfile. 176 // the args passed into CreateProfile.
173 bool GetSupervisedCreateProfileArgs(const base::ListValue* args, 177 bool GetSupervisedCreateProfileArgs(const base::ListValue* args,
174 std::string* supervised_user_id, 178 std::string* supervised_user_id,
175 base::FilePath* custodian_profile_path); 179 base::FilePath* custodian_profile_path);
176 180
177 // Callback that runs once the custodian profile has been loaded. It sets 181 // Callback that runs once the custodian profile has been loaded. It sets
178 // |profile_creation_type_| if necessary, and calls |DoCreateProfile| if the 182 // |profile_creation_type_| if necessary, and calls |DoCreateProfile| if the
179 // supervised user id specified in |args| is valid. 183 // supervised user id specified in |args| is valid.
180 void LoadCustodianProfileCallback(const base::string16& name, 184 void LoadCustodianProfileCallback(const base::string16& name,
181 const std::string& icon_url, 185 const std::string& icon_url,
182 bool create_shortcut, 186 bool create_shortcut,
183 const std::string& supervised_user_id, 187 const std::string& supervised_user_id,
184 Profile* custodian_profile, 188 Profile* custodian_profile,
185 Profile::CreateStatus status); 189 Profile::CreateStatus status);
186 190
187 // Cancels creation of a supervised-user profile currently in progress, as 191 // Cancels creation of a supervised-user profile currently in progress, as
188 // indicated by profile_path_being_created_, removing the object and files 192 // indicated by profile_path_being_created_, removing the object and files
189 // and canceling supervised-user registration. This is the handler for the 193 // and canceling supervised-user registration. This is the handler for the
190 // "cancelCreateProfile" message. |args| is not used. 194 // "cancelCreateProfile" message. |args| is not used.
191 void HandleCancelProfileCreation(const base::ListValue* args); 195 void HandleCancelProfileCreation(const base::ListValue* args);
192 196
193 // Internal implementation. This may safely be called whether profile creation 197 // Internal implementation. This may safely be called whether profile creation
194 // or registration is in progress or not. |user_initiated| should be true if 198 // or registration is in progress or not. |user_initiated| should be true if
195 // the cancellation was deliberately requested by the user, and false if it 199 // the cancellation was deliberately requested by the user, and false if it
196 // was caused implicitly, e.g. by shutting down the browser. 200 // was caused implicitly, e.g. by shutting down the browser.
197 void CancelProfileRegistration(bool user_initiated); 201 void CancelProfileRegistration(bool user_initiated);
198 202
203 // Returns true if profile has signed into chrome.
204 bool IsAccountConnected(Profile* profile) const;
205 // Returns true if profile has authentication error.
206 bool HasAuthError(Profile* profile) const;
207
199 // After a new supervised-user profile has been created, registers the user 208 // After a new supervised-user profile has been created, registers the user
200 // with the management server. 209 // with the management server.
201 virtual void RegisterSupervisedUser(bool create_shortcut, 210 virtual void RegisterSupervisedUser(bool create_shortcut,
202 const std::string& managed_user_id, 211 const std::string& managed_user_id,
203 Profile* custodian_profile, 212 Profile* custodian_profile,
204 Profile* new_profile); 213 Profile* new_profile);
205 214
206 // Called back with the result of the supervised user registration. 215 // Called back with the result of the supervised user registration.
207 void OnSupervisedUserRegistered(bool create_shortcut, 216 void OnSupervisedUserRegistered(bool create_shortcut,
208 Profile* custodian_profile, 217 Profile* custodian_profile,
209 Profile* profile, 218 Profile* profile,
210 const GoogleServiceAuthError& error); 219 const GoogleServiceAuthError& error);
211 220
221 // Updates the UI to show a non-fatal warning when creating a profile.
222 void ShowProfileCreationWarning(const base::string16& warning);
223
212 // Records UMA histograms relevant to supervised user profiles 224 // Records UMA histograms relevant to supervised user profiles
213 // creation and registration. 225 // creation and registration.
214 void RecordSupervisedProfileCreationMetrics( 226 void RecordSupervisedProfileCreationMetrics(
215 GoogleServiceAuthError::State error_state); 227 GoogleServiceAuthError::State error_state);
216 228
217 // Creates the supervised user with the given |supervised_user_id| if the user 229 // Creates the supervised user with the given |supervised_user_id| if the user
218 // doesn't already exist on the machine. 230 // doesn't already exist on the machine.
219 void DoCreateProfileIfPossible(const base::string16& name, 231 void DoCreateProfileIfPossible(const base::string16& name,
220 const std::string& icon_url, 232 const std::string& icon_url,
221 bool create_shortcut, 233 bool create_shortcut,
222 const std::string& supervised_user_id, 234 const std::string& supervised_user_id,
223 Profile* custodian_profile, 235 Profile* custodian_profile,
224 const base::DictionaryValue* dict); 236 const base::DictionaryValue* dict);
225 237
226 // Opens a new window for |profile|.
227 virtual void OpenNewWindowForProfile(Profile* profile,
228 Profile::CreateStatus status);
229
230 // Callback for the "switchToProfile" message. Opens a new window for the 238 // Callback for the "switchToProfile" message. Opens a new window for the
231 // profile. The profile file path is passed as a string argument. 239 // profile. The profile file path is passed as a string argument.
232 void SwitchToProfile(const base::ListValue* args); 240 void SwitchToProfile(const base::ListValue* args);
233 241
234 std::unique_ptr<SupervisedUserRegistrationUtility> 242 std::unique_ptr<SupervisedUserRegistrationUtility>
235 supervised_user_registration_utility_; 243 supervised_user_registration_utility_;
236 #endif 244 #endif
237 245
238 // Returns true if profile has signed into chrome.
239 bool IsAccountConnected(Profile* profile) const;
240 // Returns true if profile has authentication error.
241 bool HasAuthError(Profile* profile) const;
242
243 // This callback is run after a new browser (but not the window) has been
244 // created for the new profile.
245 void OnBrowserReadyCallback(Profile* profile,
246 Profile::CreateStatus status);
247
248 content::NotificationRegistrar registrar_; 246 content::NotificationRegistrar registrar_;
249 247
250 base::WeakPtrFactory<SigninCreateProfileHandler> weak_ptr_factory_; 248 base::WeakPtrFactory<SigninCreateProfileHandler> weak_ptr_factory_;
251 249
252 private: 250 private:
253 DISALLOW_COPY_AND_ASSIGN(SigninCreateProfileHandler); 251 DISALLOW_COPY_AND_ASSIGN(SigninCreateProfileHandler);
254 }; 252 };
255 253
256 #endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_CREATE_PROFILE_HANDLER_H_ 254 #endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_CREATE_PROFILE_HANDLER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/webui/signin/signin_create_profile_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698