| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/options/manage_profile_handler.h" | 5 #include "chrome/browser/ui/webui/options/manage_profile_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 #include "chrome/browser/sync/profile_sync_service.h" | 28 #include "chrome/browser/sync/profile_sync_service.h" |
| 29 #include "chrome/browser/sync/profile_sync_service_factory.h" | 29 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 30 #include "chrome/browser/ui/browser_finder.h" | 30 #include "chrome/browser/ui/browser_finder.h" |
| 31 #include "chrome/browser/ui/webui/options/options_handlers_helper.h" | 31 #include "chrome/browser/ui/webui/options/options_handlers_helper.h" |
| 32 #include "chrome/common/pref_names.h" | 32 #include "chrome/common/pref_names.h" |
| 33 #include "chrome/common/url_constants.h" | 33 #include "chrome/common/url_constants.h" |
| 34 #include "components/signin/core/browser/signin_manager.h" | 34 #include "components/signin/core/browser/signin_manager.h" |
| 35 #include "content/public/browser/browser_thread.h" | 35 #include "content/public/browser/browser_thread.h" |
| 36 #include "content/public/browser/notification_service.h" | 36 #include "content/public/browser/notification_service.h" |
| 37 #include "content/public/browser/web_ui.h" | 37 #include "content/public/browser/web_ui.h" |
| 38 #include "google_apis/gaia/gaia_auth_util.h" |
| 38 #include "grit/generated_resources.h" | 39 #include "grit/generated_resources.h" |
| 39 #include "grit/google_chrome_strings.h" | 40 #include "grit/google_chrome_strings.h" |
| 40 #include "ui/base/l10n/l10n_util.h" | 41 #include "ui/base/l10n/l10n_util.h" |
| 41 #include "ui/base/webui/web_ui_util.h" | 42 #include "ui/base/webui/web_ui_util.h" |
| 42 | 43 |
| 43 #if defined(ENABLE_SETTINGS_APP) | 44 #if defined(ENABLE_SETTINGS_APP) |
| 44 #include "chrome/browser/ui/app_list/app_list_service.h" | 45 #include "chrome/browser/ui/app_list/app_list_service.h" |
| 45 #include "content/public/browser/web_contents.h" | 46 #include "content/public/browser/web_contents.h" |
| 46 #endif | 47 #endif |
| 47 | 48 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 { "manageProfilesManagedNotSignedInLink", | 99 { "manageProfilesManagedNotSignedInLink", |
| 99 IDS_PROFILES_CREATE_MANAGED_NOT_SIGNED_IN_LINK }, | 100 IDS_PROFILES_CREATE_MANAGED_NOT_SIGNED_IN_LINK }, |
| 100 { "deleteProfileTitle", IDS_PROFILES_DELETE_TITLE }, | 101 { "deleteProfileTitle", IDS_PROFILES_DELETE_TITLE }, |
| 101 { "deleteProfileOK", IDS_PROFILES_DELETE_OK_BUTTON_LABEL }, | 102 { "deleteProfileOK", IDS_PROFILES_DELETE_OK_BUTTON_LABEL }, |
| 102 { "deleteProfileMessage", IDS_PROFILES_DELETE_MESSAGE }, | 103 { "deleteProfileMessage", IDS_PROFILES_DELETE_MESSAGE }, |
| 103 { "deleteManagedProfileAddendum", IDS_PROFILES_DELETE_MANAGED_ADDENDUM }, | 104 { "deleteManagedProfileAddendum", IDS_PROFILES_DELETE_MANAGED_ADDENDUM }, |
| 104 { "disconnectManagedProfileTitle", | 105 { "disconnectManagedProfileTitle", |
| 105 IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TITLE }, | 106 IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TITLE }, |
| 106 { "disconnectManagedProfileOK", | 107 { "disconnectManagedProfileOK", |
| 107 IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_OK_BUTTON_LABEL }, | 108 IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_OK_BUTTON_LABEL }, |
| 108 { "disconnectManagedProfileText", | |
| 109 IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TEXT }, | |
| 110 { "disconnectManagedProfileLearnMore", | |
| 111 IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_LEARN_MORE }, | |
| 112 { "createProfileTitle", IDS_PROFILES_CREATE_TITLE }, | 109 { "createProfileTitle", IDS_PROFILES_CREATE_TITLE }, |
| 113 { "createProfileInstructions", IDS_PROFILES_CREATE_INSTRUCTIONS }, | 110 { "createProfileInstructions", IDS_PROFILES_CREATE_INSTRUCTIONS }, |
| 114 { "createProfileConfirm", IDS_PROFILES_CREATE_CONFIRM }, | 111 { "createProfileConfirm", IDS_PROFILES_CREATE_CONFIRM }, |
| 115 { "createProfileShortcutCheckbox", IDS_PROFILES_CREATE_SHORTCUT_CHECKBOX }, | 112 { "createProfileShortcutCheckbox", IDS_PROFILES_CREATE_SHORTCUT_CHECKBOX }, |
| 116 { "createProfileShortcutButton", IDS_PROFILES_CREATE_SHORTCUT_BUTTON }, | 113 { "createProfileShortcutButton", IDS_PROFILES_CREATE_SHORTCUT_BUTTON }, |
| 117 { "removeProfileShortcutButton", IDS_PROFILES_REMOVE_SHORTCUT_BUTTON }, | 114 { "removeProfileShortcutButton", IDS_PROFILES_REMOVE_SHORTCUT_BUTTON }, |
| 118 { "importExistingManagedUserLink", | 115 { "importExistingManagedUserLink", |
| 119 IDS_PROFILES_IMPORT_EXISTING_MANAGED_USER_LINK }, | 116 IDS_PROFILES_IMPORT_EXISTING_MANAGED_USER_LINK }, |
| 120 { "signInToImportManagedUsers", | 117 { "signInToImportManagedUsers", |
| 121 IDS_PROFILES_IMPORT_MANAGED_USER_NOT_SIGNED_IN }, | 118 IDS_PROFILES_IMPORT_MANAGED_USER_NOT_SIGNED_IN }, |
| 122 }; | 119 }; |
| 123 | 120 |
| 124 RegisterStrings(localized_strings, resources, arraysize(resources)); | 121 RegisterStrings(localized_strings, resources, arraysize(resources)); |
| 125 RegisterTitle(localized_strings, "manageProfile", | 122 RegisterTitle(localized_strings, "manageProfile", |
| 126 IDS_PROFILES_MANAGE_TITLE); | 123 IDS_PROFILES_MANAGE_TITLE); |
| 127 RegisterTitle(localized_strings, "createProfile", | 124 RegisterTitle(localized_strings, "createProfile", |
| 128 IDS_PROFILES_CREATE_TITLE); | 125 IDS_PROFILES_CREATE_TITLE); |
| 129 | 126 |
| 130 localized_strings->SetBoolean("profileShortcutsEnabled", | 127 localized_strings->SetBoolean("profileShortcutsEnabled", |
| 131 ProfileShortcutManager::IsFeatureEnabled()); | 128 ProfileShortcutManager::IsFeatureEnabled()); |
| 132 | 129 |
| 133 localized_strings->SetString("enterpriseManagedAccountHelpURL", | 130 GenerateSignedinUserSpecificStrings(localized_strings); |
| 134 chrome::kEnterpriseManagedAccountHelpURL); | |
| 135 } | 131 } |
| 136 | 132 |
| 137 void ManageProfileHandler::InitializeHandler() { | 133 void ManageProfileHandler::InitializeHandler() { |
| 138 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, | 134 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, |
| 139 content::NotificationService::AllSources()); | 135 content::NotificationService::AllSources()); |
| 140 | 136 |
| 141 Profile* profile = Profile::FromWebUI(web_ui()); | 137 Profile* profile = Profile::FromWebUI(web_ui()); |
| 142 pref_change_registrar_.Init(profile->GetPrefs()); | 138 pref_change_registrar_.Init(profile->GetPrefs()); |
| 143 pref_change_registrar_.Add( | 139 pref_change_registrar_.Add( |
| 144 prefs::kManagedUserCreationAllowed, | 140 prefs::kManagedUserCreationAllowed, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 SendExistingProfileNames(); | 196 SendExistingProfileNames(); |
| 201 base::StringValue value(kManageProfileIdentifier); | 197 base::StringValue value(kManageProfileIdentifier); |
| 202 SendProfileIconsAndNames(value); | 198 SendProfileIconsAndNames(value); |
| 203 } | 199 } |
| 204 } | 200 } |
| 205 | 201 |
| 206 void ManageProfileHandler::OnStateChanged() { | 202 void ManageProfileHandler::OnStateChanged() { |
| 207 RequestCreateProfileUpdate(NULL); | 203 RequestCreateProfileUpdate(NULL); |
| 208 } | 204 } |
| 209 | 205 |
| 206 void ManageProfileHandler::GenerateSignedinUserSpecificStrings( |
| 207 base::DictionaryValue* dictionary) { |
| 208 #if !defined(OS_CHROMEOS) |
| 209 Profile* profile = Profile::FromWebUI(web_ui()); |
| 210 DCHECK(profile); |
| 211 SigninManagerBase* manager = SigninManagerFactory::GetForProfile(profile); |
| 212 DCHECK(manager); |
| 213 std::string username = manager->GetAuthenticatedUsername(); |
| 214 std::string domain_name; |
| 215 // If there is no one logged in or if the profile name is empty then the |
| 216 // domain name is empty. This happens in browser tests. |
| 217 if (!username.empty()) |
| 218 domain_name = "<span id=disconnect-managed-profile-domain-name>" + |
| 219 gaia::ExtractDomainName(username) + "</span>"; |
| 220 |
| 221 dictionary->SetString( |
| 222 "disconnectManagedProfileDomainInformation", |
| 223 l10n_util::GetStringFUTF16( |
| 224 IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_DOMAIN_INFORMATION, |
| 225 base::ASCIIToUTF16(domain_name))); |
| 226 |
| 227 dictionary->SetString( |
| 228 "disconnectManagedProfileText", |
| 229 l10n_util::GetStringFUTF16( |
| 230 IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TEXT, |
| 231 base::UTF8ToUTF16(username), |
| 232 base::UTF8ToUTF16(chrome::kSyncGoogleDashboardURL))); |
| 233 #else |
| 234 dictionary->SetString("disconnectManagedProfileDomainInformation", |
| 235 base::string16()); |
| 236 dictionary->SetString("disconnectManagedProfileText", |
| 237 base::string16()); |
| 238 #endif |
| 239 } |
| 240 |
| 210 void ManageProfileHandler::RequestDefaultProfileIcons( | 241 void ManageProfileHandler::RequestDefaultProfileIcons( |
| 211 const base::ListValue* args) { | 242 const base::ListValue* args) { |
| 212 std::string mode; | 243 std::string mode; |
| 213 bool ok = args->GetString(0, &mode); | 244 bool ok = args->GetString(0, &mode); |
| 214 DCHECK(ok); | 245 DCHECK(ok); |
| 215 DCHECK(mode == kCreateProfileIdentifier || mode == kManageProfileIdentifier); | 246 DCHECK(mode == kCreateProfileIdentifier || mode == kManageProfileIdentifier); |
| 216 if (ok) { | 247 if (ok) { |
| 217 base::StringValue value(mode); | 248 base::StringValue value(mode); |
| 218 SendProfileIconsAndNames(value); | 249 SendProfileIconsAndNames(value); |
| 219 } | 250 } |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 ProfileSyncService* service = | 458 ProfileSyncService* service = |
| 428 ProfileSyncServiceFactory::GetForProfile(profile); | 459 ProfileSyncServiceFactory::GetForProfile(profile); |
| 429 GoogleServiceAuthError::State state = service->GetAuthError().state(); | 460 GoogleServiceAuthError::State state = service->GetAuthError().state(); |
| 430 bool has_error = (state == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS || | 461 bool has_error = (state == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS || |
| 431 state == GoogleServiceAuthError::USER_NOT_SIGNED_UP || | 462 state == GoogleServiceAuthError::USER_NOT_SIGNED_UP || |
| 432 state == GoogleServiceAuthError::ACCOUNT_DELETED || | 463 state == GoogleServiceAuthError::ACCOUNT_DELETED || |
| 433 state == GoogleServiceAuthError::ACCOUNT_DISABLED); | 464 state == GoogleServiceAuthError::ACCOUNT_DISABLED); |
| 434 web_ui()->CallJavascriptFunction("CreateProfileOverlay.updateSignedInStatus", | 465 web_ui()->CallJavascriptFunction("CreateProfileOverlay.updateSignedInStatus", |
| 435 base::StringValue(username), | 466 base::StringValue(username), |
| 436 base::FundamentalValue(has_error)); | 467 base::FundamentalValue(has_error)); |
| 468 |
| 469 base::DictionaryValue replacements; |
| 470 GenerateSignedinUserSpecificStrings(&replacements); |
| 471 web_ui()->CallJavascriptFunction("loadTimeData.overrideValues", replacements); |
| 472 |
| 437 OnCreateManagedUserPrefChange(); | 473 OnCreateManagedUserPrefChange(); |
| 438 } | 474 } |
| 439 | 475 |
| 440 void ManageProfileHandler::OnCreateManagedUserPrefChange() { | 476 void ManageProfileHandler::OnCreateManagedUserPrefChange() { |
| 441 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); | 477 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 442 base::FundamentalValue allowed( | 478 base::FundamentalValue allowed( |
| 443 prefs->GetBoolean(prefs::kManagedUserCreationAllowed)); | 479 prefs->GetBoolean(prefs::kManagedUserCreationAllowed)); |
| 444 web_ui()->CallJavascriptFunction( | 480 web_ui()->CallJavascriptFunction( |
| 445 "CreateProfileOverlay.updateManagedUsersAllowed", allowed); | 481 "CreateProfileOverlay.updateManagedUsersAllowed", allowed); |
| 446 } | 482 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 g_browser_process->profile_manager()->profile_shortcut_manager(); | 515 g_browser_process->profile_manager()->profile_shortcut_manager(); |
| 480 DCHECK(shortcut_manager); | 516 DCHECK(shortcut_manager); |
| 481 | 517 |
| 482 shortcut_manager->RemoveProfileShortcuts(profile_file_path); | 518 shortcut_manager->RemoveProfileShortcuts(profile_file_path); |
| 483 | 519 |
| 484 // Update the UI buttons. | 520 // Update the UI buttons. |
| 485 OnHasProfileShortcuts(false); | 521 OnHasProfileShortcuts(false); |
| 486 } | 522 } |
| 487 | 523 |
| 488 } // namespace options | 524 } // namespace options |
| OLD | NEW |