| OLD | NEW |
| 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 #include "chrome/browser/ui/webui/signin/signin_create_profile_handler.h" | 5 #include "chrome/browser/ui/webui/signin/signin_create_profile_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "chrome/browser/profiles/profile_manager.h" | 25 #include "chrome/browser/profiles/profile_manager.h" |
| 26 #include "chrome/browser/profiles/profile_metrics.h" | 26 #include "chrome/browser/profiles/profile_metrics.h" |
| 27 #include "chrome/browser/profiles/profiles_state.h" | 27 #include "chrome/browser/profiles/profiles_state.h" |
| 28 #include "chrome/browser/signin/signin_error_controller_factory.h" | 28 #include "chrome/browser/signin/signin_error_controller_factory.h" |
| 29 #include "chrome/browser/signin/signin_manager_factory.h" | 29 #include "chrome/browser/signin/signin_manager_factory.h" |
| 30 #include "chrome/browser/sync/profile_sync_service_factory.h" | 30 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 31 #include "chrome/browser/ui/browser_finder.h" | 31 #include "chrome/browser/ui/browser_finder.h" |
| 32 #include "chrome/browser/ui/user_manager.h" | 32 #include "chrome/browser/ui/user_manager.h" |
| 33 #include "chrome/browser/ui/webui/profile_helper.h" | 33 #include "chrome/browser/ui/webui/profile_helper.h" |
| 34 #include "chrome/browser/ui/webui/signin/signin_utils.h" | 34 #include "chrome/browser/ui/webui/signin/signin_utils.h" |
| 35 #include "chrome/common/features.h" |
| 35 #include "chrome/common/pref_names.h" | 36 #include "chrome/common/pref_names.h" |
| 36 #include "chrome/common/url_constants.h" | 37 #include "chrome/common/url_constants.h" |
| 37 #include "chrome/grit/chromium_strings.h" | 38 #include "chrome/grit/chromium_strings.h" |
| 38 #include "chrome/grit/generated_resources.h" | 39 #include "chrome/grit/generated_resources.h" |
| 39 #include "components/browser_sync/profile_sync_service.h" | 40 #include "components/browser_sync/profile_sync_service.h" |
| 40 #include "components/prefs/pref_service.h" | 41 #include "components/prefs/pref_service.h" |
| 41 #include "components/signin/core/browser/signin_error_controller.h" | 42 #include "components/signin/core/browser/signin_error_controller.h" |
| 42 #include "components/strings/grit/components_strings.h" | 43 #include "components/strings/grit/components_strings.h" |
| 43 #include "content/public/browser/browser_thread.h" | 44 #include "content/public/browser/browser_thread.h" |
| 44 #include "content/public/browser/notification_service.h" | 45 #include "content/public/browser/notification_service.h" |
| 45 #include "content/public/browser/web_ui.h" | 46 #include "content/public/browser/web_ui.h" |
| 46 #include "ui/base/l10n/l10n_util.h" | 47 #include "ui/base/l10n/l10n_util.h" |
| 47 | 48 |
| 48 #if defined(ENABLE_SUPERVISED_USERS) | 49 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 49 #include "chrome/browser/supervised_user/legacy/supervised_user_registration_uti
lity.h" | 50 #include "chrome/browser/supervised_user/legacy/supervised_user_registration_uti
lity.h" |
| 50 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service.h" | 51 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service.h" |
| 51 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service_fac
tory.h" | 52 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service_fac
tory.h" |
| 52 #include "chrome/browser/supervised_user/supervised_user_service.h" | 53 #include "chrome/browser/supervised_user/supervised_user_service.h" |
| 53 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" | 54 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" |
| 54 #endif | 55 #endif |
| 55 | 56 |
| 56 SigninCreateProfileHandler::SigninCreateProfileHandler() | 57 SigninCreateProfileHandler::SigninCreateProfileHandler() |
| 57 : profile_creation_type_(NO_CREATION_IN_PROGRESS), | 58 : profile_creation_type_(NO_CREATION_IN_PROGRESS), |
| 58 weak_ptr_factory_(this) { | 59 weak_ptr_factory_(this) { |
| 59 g_browser_process->profile_manager()-> | 60 g_browser_process->profile_manager()-> |
| 60 GetProfileAttributesStorage().AddObserver(this); | 61 GetProfileAttributesStorage().AddObserver(this); |
| 61 } | 62 } |
| 62 | 63 |
| 63 SigninCreateProfileHandler::~SigninCreateProfileHandler() { | 64 SigninCreateProfileHandler::~SigninCreateProfileHandler() { |
| 64 #if defined(ENABLE_SUPERVISED_USERS) | 65 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 65 // Cancellation is only supported for supervised users. | 66 // Cancellation is only supported for supervised users. |
| 66 CancelProfileRegistration(false); | 67 CancelProfileRegistration(false); |
| 67 #endif | 68 #endif |
| 68 g_browser_process->profile_manager()-> | 69 g_browser_process->profile_manager()-> |
| 69 GetProfileAttributesStorage().RemoveObserver(this); | 70 GetProfileAttributesStorage().RemoveObserver(this); |
| 70 } | 71 } |
| 71 | 72 |
| 72 void SigninCreateProfileHandler::GetLocalizedValues( | 73 void SigninCreateProfileHandler::GetLocalizedValues( |
| 73 base::DictionaryValue* localized_strings) { | 74 base::DictionaryValue* localized_strings) { |
| 74 localized_strings->SetString( | 75 localized_strings->SetString( |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 "supervisedUserCreatedDone", | 143 "supervisedUserCreatedDone", |
| 143 l10n_util::GetStringUTF16( | 144 l10n_util::GetStringUTF16( |
| 144 IDS_LEGACY_SUPERVISED_USER_CREATED_DONE_BUTTON)); | 145 IDS_LEGACY_SUPERVISED_USER_CREATED_DONE_BUTTON)); |
| 145 localized_strings->SetString( | 146 localized_strings->SetString( |
| 146 "supervisedUserCreatedSwitch", | 147 "supervisedUserCreatedSwitch", |
| 147 l10n_util::GetStringUTF16( | 148 l10n_util::GetStringUTF16( |
| 148 IDS_LEGACY_SUPERVISED_USER_CREATED_SWITCH_BUTTON)); | 149 IDS_LEGACY_SUPERVISED_USER_CREATED_SWITCH_BUTTON)); |
| 149 } | 150 } |
| 150 | 151 |
| 151 void SigninCreateProfileHandler::RegisterMessages() { | 152 void SigninCreateProfileHandler::RegisterMessages() { |
| 152 #if defined(ENABLE_SUPERVISED_USERS) | 153 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 153 // Cancellation is only supported for supervised users. | 154 // Cancellation is only supported for supervised users. |
| 154 web_ui()->RegisterMessageCallback( | 155 web_ui()->RegisterMessageCallback( |
| 155 "cancelCreateProfile", | 156 "cancelCreateProfile", |
| 156 base::Bind(&SigninCreateProfileHandler::HandleCancelProfileCreation, | 157 base::Bind(&SigninCreateProfileHandler::HandleCancelProfileCreation, |
| 157 base::Unretained(this))); | 158 base::Unretained(this))); |
| 158 | 159 |
| 159 web_ui()->RegisterMessageCallback( | 160 web_ui()->RegisterMessageCallback( |
| 160 "switchToProfile", | 161 "switchToProfile", |
| 161 base::Bind(&SigninCreateProfileHandler::SwitchToProfile, | 162 base::Bind(&SigninCreateProfileHandler::SwitchToProfile, |
| 162 base::Unretained(this))); | 163 base::Unretained(this))); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 if (args->GetString(0, &name) && args->GetString(1, &icon_url)) { | 246 if (args->GetString(0, &name) && args->GetString(1, &icon_url)) { |
| 246 DCHECK(base::IsStringASCII(icon_url)); | 247 DCHECK(base::IsStringASCII(icon_url)); |
| 247 base::TrimWhitespace(name, base::TRIM_ALL, &name); | 248 base::TrimWhitespace(name, base::TRIM_ALL, &name); |
| 248 CHECK(!name.empty()); | 249 CHECK(!name.empty()); |
| 249 #ifndef NDEBUG | 250 #ifndef NDEBUG |
| 250 size_t icon_index; | 251 size_t icon_index; |
| 251 DCHECK(profiles::IsDefaultAvatarIconUrl(icon_url, &icon_index)); | 252 DCHECK(profiles::IsDefaultAvatarIconUrl(icon_url, &icon_index)); |
| 252 #endif | 253 #endif |
| 253 args->GetBoolean(2, &create_shortcut); | 254 args->GetBoolean(2, &create_shortcut); |
| 254 } | 255 } |
| 255 #if defined(ENABLE_SUPERVISED_USERS) | 256 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 256 std::string supervised_user_id; | 257 std::string supervised_user_id; |
| 257 base::FilePath custodian_profile_path; | 258 base::FilePath custodian_profile_path; |
| 258 if (GetSupervisedCreateProfileArgs(args, &supervised_user_id, | 259 if (GetSupervisedCreateProfileArgs(args, &supervised_user_id, |
| 259 &custodian_profile_path)) { | 260 &custodian_profile_path)) { |
| 260 // Load custodian profile. | 261 // Load custodian profile. |
| 261 g_browser_process->profile_manager()->CreateProfileAsync( | 262 g_browser_process->profile_manager()->CreateProfileAsync( |
| 262 custodian_profile_path, | 263 custodian_profile_path, |
| 263 base::Bind(&SigninCreateProfileHandler::LoadCustodianProfileCallback, | 264 base::Bind(&SigninCreateProfileHandler::LoadCustodianProfileCallback, |
| 264 weak_ptr_factory_.GetWeakPtr(), name, icon_url, | 265 weak_ptr_factory_.GetWeakPtr(), name, icon_url, |
| 265 create_shortcut, supervised_user_id), | 266 create_shortcut, supervised_user_id), |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 bool create_shortcut, | 329 bool create_shortcut, |
| 329 const std::string& supervised_user_id, | 330 const std::string& supervised_user_id, |
| 330 Profile* custodian_profile, | 331 Profile* custodian_profile, |
| 331 Profile* profile) { | 332 Profile* profile) { |
| 332 switch (profile_creation_type_) { | 333 switch (profile_creation_type_) { |
| 333 case NON_SUPERVISED_PROFILE_CREATION: { | 334 case NON_SUPERVISED_PROFILE_CREATION: { |
| 334 DCHECK(supervised_user_id.empty()); | 335 DCHECK(supervised_user_id.empty()); |
| 335 CreateShortcutAndShowSuccess(create_shortcut, nullptr, profile); | 336 CreateShortcutAndShowSuccess(create_shortcut, nullptr, profile); |
| 336 break; | 337 break; |
| 337 } | 338 } |
| 338 #if defined(ENABLE_SUPERVISED_USERS) | 339 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 339 case SUPERVISED_PROFILE_CREATION: | 340 case SUPERVISED_PROFILE_CREATION: |
| 340 case SUPERVISED_PROFILE_IMPORT: | 341 case SUPERVISED_PROFILE_IMPORT: |
| 341 RegisterSupervisedUser(create_shortcut, supervised_user_id, | 342 RegisterSupervisedUser(create_shortcut, supervised_user_id, |
| 342 custodian_profile, profile); | 343 custodian_profile, profile); |
| 343 break; | 344 break; |
| 344 #endif | 345 #endif |
| 345 case NO_CREATION_IN_PROGRESS: | 346 case NO_CREATION_IN_PROGRESS: |
| 346 NOTREACHED(); | 347 NOTREACHED(); |
| 347 break; | 348 break; |
| 348 } | 349 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 363 DCHECK_EQ(profile_path_being_created_.value(), profile->GetPath().value()); | 364 DCHECK_EQ(profile_path_being_created_.value(), profile->GetPath().value()); |
| 364 profile_path_being_created_.clear(); | 365 profile_path_being_created_.clear(); |
| 365 DCHECK_NE(NO_CREATION_IN_PROGRESS, profile_creation_type_); | 366 DCHECK_NE(NO_CREATION_IN_PROGRESS, profile_creation_type_); |
| 366 base::DictionaryValue dict; | 367 base::DictionaryValue dict; |
| 367 dict.SetString("name", profile->GetPrefs()->GetString(prefs::kProfileName)); | 368 dict.SetString("name", profile->GetPrefs()->GetString(prefs::kProfileName)); |
| 368 dict.Set("filePath", base::CreateFilePathValue(profile->GetPath())); | 369 dict.Set("filePath", base::CreateFilePathValue(profile->GetPath())); |
| 369 | 370 |
| 370 bool is_force_signin_enabled = signin::IsForceSigninEnabled(); | 371 bool is_force_signin_enabled = signin::IsForceSigninEnabled(); |
| 371 bool open_new_window = !is_force_signin_enabled; | 372 bool open_new_window = !is_force_signin_enabled; |
| 372 | 373 |
| 373 #if defined(ENABLE_SUPERVISED_USERS) | 374 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 374 // If the new profile is a supervised user, instead of opening a new window | 375 // If the new profile is a supervised user, instead of opening a new window |
| 375 // right away, a confirmation page will be shown by JS from the creation | 376 // right away, a confirmation page will be shown by JS from the creation |
| 376 // dialog. If we are importing an existing supervised profile or creating a | 377 // dialog. If we are importing an existing supervised profile or creating a |
| 377 // new non-supervised user profile we don't show any confirmation, so open | 378 // new non-supervised user profile we don't show any confirmation, so open |
| 378 // the new window now. | 379 // the new window now. |
| 379 | 380 |
| 380 open_new_window = | 381 open_new_window = |
| 381 open_new_window && profile_creation_type_ != SUPERVISED_PROFILE_CREATION; | 382 open_new_window && profile_creation_type_ != SUPERVISED_PROFILE_CREATION; |
| 382 | 383 |
| 383 dict.SetBoolean("showConfirmation", | 384 dict.SetBoolean("showConfirmation", |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 UMA_HISTOGRAM_ENUMERATION("Profile.CreateResult", status, | 450 UMA_HISTOGRAM_ENUMERATION("Profile.CreateResult", status, |
| 450 Profile::MAX_CREATE_STATUS); | 451 Profile::MAX_CREATE_STATUS); |
| 451 UMA_HISTOGRAM_MEDIUM_TIMES( | 452 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 452 "Profile.CreateTimeNoTimeout", | 453 "Profile.CreateTimeNoTimeout", |
| 453 base::TimeTicks::Now() - profile_creation_start_time_); | 454 base::TimeTicks::Now() - profile_creation_start_time_); |
| 454 } | 455 } |
| 455 | 456 |
| 456 base::string16 SigninCreateProfileHandler::GetProfileCreationErrorMessageLocal() | 457 base::string16 SigninCreateProfileHandler::GetProfileCreationErrorMessageLocal() |
| 457 const { | 458 const { |
| 458 int message_id = IDS_PROFILES_CREATE_LOCAL_ERROR; | 459 int message_id = IDS_PROFILES_CREATE_LOCAL_ERROR; |
| 459 #if defined(ENABLE_SUPERVISED_USERS) | 460 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 460 // Local errors can occur during supervised profile import. | 461 // Local errors can occur during supervised profile import. |
| 461 if (profile_creation_type_ == SUPERVISED_PROFILE_IMPORT) | 462 if (profile_creation_type_ == SUPERVISED_PROFILE_IMPORT) |
| 462 message_id = IDS_LEGACY_SUPERVISED_USER_IMPORT_LOCAL_ERROR; | 463 message_id = IDS_LEGACY_SUPERVISED_USER_IMPORT_LOCAL_ERROR; |
| 463 #endif | 464 #endif |
| 464 return l10n_util::GetStringUTF16(message_id); | 465 return l10n_util::GetStringUTF16(message_id); |
| 465 } | 466 } |
| 466 | 467 |
| 467 void SigninCreateProfileHandler::Observe( | 468 void SigninCreateProfileHandler::Observe( |
| 468 int type, | 469 int type, |
| 469 const content::NotificationSource& source, | 470 const content::NotificationSource& source, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 496 switch (status) { | 497 switch (status) { |
| 497 case PROFILE_CREATION_SUCCESS: | 498 case PROFILE_CREATION_SUCCESS: |
| 498 return base::StringValue("create-profile-success"); | 499 return base::StringValue("create-profile-success"); |
| 499 case PROFILE_CREATION_ERROR: | 500 case PROFILE_CREATION_ERROR: |
| 500 return base::StringValue("create-profile-error"); | 501 return base::StringValue("create-profile-error"); |
| 501 } | 502 } |
| 502 NOTREACHED(); | 503 NOTREACHED(); |
| 503 return base::StringValue(std::string()); | 504 return base::StringValue(std::string()); |
| 504 } | 505 } |
| 505 | 506 |
| 506 #if defined(ENABLE_SUPERVISED_USERS) | 507 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 507 base::string16 SigninCreateProfileHandler::GetProfileCreateErrorMessageRemote() | 508 base::string16 SigninCreateProfileHandler::GetProfileCreateErrorMessageRemote() |
| 508 const { | 509 const { |
| 509 return l10n_util::GetStringUTF16( | 510 return l10n_util::GetStringUTF16( |
| 510 profile_creation_type_ == SUPERVISED_PROFILE_IMPORT | 511 profile_creation_type_ == SUPERVISED_PROFILE_IMPORT |
| 511 ? IDS_LEGACY_SUPERVISED_USER_IMPORT_REMOTE_ERROR | 512 ? IDS_LEGACY_SUPERVISED_USER_IMPORT_REMOTE_ERROR |
| 512 : IDS_PROFILES_CREATE_REMOTE_ERROR); | 513 : IDS_PROFILES_CREATE_REMOTE_ERROR); |
| 513 } | 514 } |
| 514 | 515 |
| 515 base::string16 SigninCreateProfileHandler::GetProfileCreateErrorMessageSignin() | 516 base::string16 SigninCreateProfileHandler::GetProfileCreateErrorMessageSignin() |
| 516 const { | 517 const { |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 | 803 |
| 803 profiles::OpenBrowserWindowForProfile( | 804 profiles::OpenBrowserWindowForProfile( |
| 804 base::Bind(&SigninCreateProfileHandler::OnBrowserReadyCallback, | 805 base::Bind(&SigninCreateProfileHandler::OnBrowserReadyCallback, |
| 805 weak_ptr_factory_.GetWeakPtr()), | 806 weak_ptr_factory_.GetWeakPtr()), |
| 806 false, // Don't create a window if one already exists. | 807 false, // Don't create a window if one already exists. |
| 807 true, // Create a first run window. | 808 true, // Create a first run window. |
| 808 profile, | 809 profile, |
| 809 Profile::CREATE_STATUS_INITIALIZED); | 810 Profile::CREATE_STATUS_INITIALIZED); |
| 810 } | 811 } |
| 811 #endif | 812 #endif |
| OLD | NEW |