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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 IDS_PROFILES_CREATE_LIMITED_NOT_SIGNED_IN_LABEL }, | 96 IDS_PROFILES_CREATE_LIMITED_NOT_SIGNED_IN_LABEL }, |
97 { "manageProfilesLimitedNotSignedInLink", | 97 { "manageProfilesLimitedNotSignedInLink", |
98 IDS_PROFILES_CREATE_LIMITED_NOT_SIGNED_IN_LINK }, | 98 IDS_PROFILES_CREATE_LIMITED_NOT_SIGNED_IN_LINK }, |
99 { "deleteProfileTitle", IDS_PROFILES_DELETE_TITLE }, | 99 { "deleteProfileTitle", IDS_PROFILES_DELETE_TITLE }, |
100 { "deleteProfileOK", IDS_PROFILES_DELETE_OK_BUTTON_LABEL }, | 100 { "deleteProfileOK", IDS_PROFILES_DELETE_OK_BUTTON_LABEL }, |
101 { "deleteProfileMessage", IDS_PROFILES_DELETE_MESSAGE }, | 101 { "deleteProfileMessage", IDS_PROFILES_DELETE_MESSAGE }, |
102 { "createProfileTitle", IDS_PROFILES_CREATE_TITLE }, | 102 { "createProfileTitle", IDS_PROFILES_CREATE_TITLE }, |
103 { "createProfileInstructions", IDS_PROFILES_CREATE_INSTRUCTIONS }, | 103 { "createProfileInstructions", IDS_PROFILES_CREATE_INSTRUCTIONS }, |
104 { "createProfileConfirm", IDS_PROFILES_CREATE_CONFIRM }, | 104 { "createProfileConfirm", IDS_PROFILES_CREATE_CONFIRM }, |
105 { "createProfileLocalError", IDS_PROFILES_CREATE_LOCAL_ERROR }, | 105 { "createProfileLocalError", IDS_PROFILES_CREATE_LOCAL_ERROR }, |
| 106 { "createProfileRemoteError", IDS_PROFILES_CREATE_REMOTE_ERROR }, |
106 { "createProfileShortcut", IDS_PROFILES_CREATE_SHORTCUT }, | 107 { "createProfileShortcut", IDS_PROFILES_CREATE_SHORTCUT }, |
107 { "removeProfileShortcut", IDS_PROFILES_REMOVE_SHORTCUT }, | 108 { "removeProfileShortcut", IDS_PROFILES_REMOVE_SHORTCUT }, |
108 }; | 109 }; |
109 | 110 |
110 RegisterStrings(localized_strings, resources, arraysize(resources)); | 111 RegisterStrings(localized_strings, resources, arraysize(resources)); |
111 RegisterTitle(localized_strings, "manageProfile", | 112 RegisterTitle(localized_strings, "manageProfile", |
112 IDS_PROFILES_MANAGE_TITLE); | 113 IDS_PROFILES_MANAGE_TITLE); |
113 RegisterTitle(localized_strings, "createProfile", | 114 RegisterTitle(localized_strings, "createProfile", |
114 IDS_PROFILES_CREATE_TITLE); | 115 IDS_PROFILES_CREATE_TITLE); |
115 | 116 |
116 localized_strings->SetBoolean("profileShortcutsEnabled", | 117 localized_strings->SetBoolean("profileShortcutsEnabled", |
117 ProfileShortcutManager::IsFeatureEnabled()); | 118 ProfileShortcutManager::IsFeatureEnabled()); |
118 localized_strings->SetBoolean("managedUsersEnabled", | 119 localized_strings->SetBoolean("managedUsersEnabled", |
119 ManagedUserService::AreManagedUsersEnabled()); | 120 ManagedUserService::AreManagedUsersEnabled()); |
120 } | 121 } |
121 | 122 |
122 void ManageProfileHandler::InitializeHandler() { | 123 void ManageProfileHandler::InitializeHandler() { |
123 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, | 124 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, |
124 content::NotificationService::AllSources()); | 125 content::NotificationService::AllSources()); |
125 } | 126 } |
126 | 127 |
127 void ManageProfileHandler::InitializePage() { | 128 void ManageProfileHandler::InitializePage() { |
128 SendProfileNames(); | 129 SendProfileNames(); |
129 } | 130 } |
130 | 131 |
131 void ManageProfileHandler::RegisterMessages() { | 132 void ManageProfileHandler::RegisterMessages() { |
132 web_ui()->RegisterMessageCallback("setProfileNameAndIcon", | 133 web_ui()->RegisterMessageCallback("setProfileNameAndIcon", |
133 base::Bind(&ManageProfileHandler::SetProfileNameAndIcon, | 134 base::Bind(&ManageProfileHandler::SetProfileNameAndIcon, |
134 base::Unretained(this))); | 135 base::Unretained(this))); |
135 web_ui()->RegisterMessageCallback("deleteProfile", | |
136 base::Bind(&ManageProfileHandler::DeleteProfile, | |
137 base::Unretained(this))); | |
138 web_ui()->RegisterMessageCallback("requestDefaultProfileIcons", | 136 web_ui()->RegisterMessageCallback("requestDefaultProfileIcons", |
139 base::Bind(&ManageProfileHandler::RequestDefaultProfileIcons, | 137 base::Bind(&ManageProfileHandler::RequestDefaultProfileIcons, |
140 base::Unretained(this))); | 138 base::Unretained(this))); |
141 web_ui()->RegisterMessageCallback("requestNewProfileDefaults", | 139 web_ui()->RegisterMessageCallback("requestNewProfileDefaults", |
142 base::Bind(&ManageProfileHandler::RequestNewProfileDefaults, | 140 base::Bind(&ManageProfileHandler::RequestNewProfileDefaults, |
143 base::Unretained(this))); | 141 base::Unretained(this))); |
144 web_ui()->RegisterMessageCallback("requestHasProfileShortcuts", | 142 web_ui()->RegisterMessageCallback("requestHasProfileShortcuts", |
145 base::Bind(&ManageProfileHandler::RequestHasProfileShortcuts, | 143 base::Bind(&ManageProfileHandler::RequestHasProfileShortcuts, |
146 base::Unretained(this))); | 144 base::Unretained(this))); |
147 web_ui()->RegisterMessageCallback("requestSignedInText", | 145 web_ui()->RegisterMessageCallback("requestSignedInText", |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 ProfileMetrics::LogProfileAvatarSelection(new_icon_index); | 306 ProfileMetrics::LogProfileAvatarSelection(new_icon_index); |
309 PrefService* pref_service = profile->GetPrefs(); | 307 PrefService* pref_service = profile->GetPrefs(); |
310 // Updating the profile preference will cause the cache to be updated for | 308 // Updating the profile preference will cause the cache to be updated for |
311 // this preference. | 309 // this preference. |
312 pref_service->SetInteger(prefs::kProfileAvatarIndex, new_icon_index); | 310 pref_service->SetInteger(prefs::kProfileAvatarIndex, new_icon_index); |
313 cache.SetIsUsingGAIAPictureOfProfileAtIndex(profile_index, false); | 311 cache.SetIsUsingGAIAPictureOfProfileAtIndex(profile_index, false); |
314 } | 312 } |
315 ProfileMetrics::LogProfileUpdate(profile_file_path); | 313 ProfileMetrics::LogProfileUpdate(profile_file_path); |
316 } | 314 } |
317 | 315 |
318 void ManageProfileHandler::DeleteProfile(const ListValue* args) { | |
319 DCHECK(args); | |
320 #if defined(ENABLE_MANAGED_USERS) | |
321 // This handler could have been called in managed mode, for example because | |
322 // the user fiddled with the web inspector. Silently return in this case. | |
323 ManagedUserService* service = | |
324 ManagedUserServiceFactory::GetForProfile(Profile::FromWebUI(web_ui())); | |
325 if (service->ProfileIsManaged()) | |
326 return; | |
327 #endif | |
328 | |
329 if (!ProfileManager::IsMultipleProfilesEnabled()) | |
330 return; | |
331 | |
332 ProfileMetrics::LogProfileDeleteUser(ProfileMetrics::PROFILE_DELETED); | |
333 | |
334 base::FilePath profile_file_path; | |
335 if (!GetProfilePathFromArgs(args, &profile_file_path)) | |
336 return; | |
337 | |
338 Browser* browser = | |
339 chrome::FindBrowserWithWebContents(web_ui()->GetWebContents()); | |
340 chrome::HostDesktopType desktop_type = chrome::HOST_DESKTOP_TYPE_NATIVE; | |
341 if (browser) | |
342 desktop_type = browser->host_desktop_type(); | |
343 | |
344 g_browser_process->profile_manager()->ScheduleProfileForDeletion( | |
345 profile_file_path, | |
346 base::Bind(&OnNewDefaultProfileCreated, desktop_type)); | |
347 } | |
348 | |
349 #if defined(ENABLE_SETTINGS_APP) | 316 #if defined(ENABLE_SETTINGS_APP) |
350 void ManageProfileHandler::SwitchAppListProfile(const ListValue* args) { | 317 void ManageProfileHandler::SwitchAppListProfile(const ListValue* args) { |
351 DCHECK(args); | 318 DCHECK(args); |
352 DCHECK(ProfileManager::IsMultipleProfilesEnabled()); | 319 DCHECK(ProfileManager::IsMultipleProfilesEnabled()); |
353 | 320 |
354 const Value* file_path_value; | 321 const Value* file_path_value; |
355 base::FilePath profile_file_path; | 322 base::FilePath profile_file_path; |
356 if (!args->Get(0, &file_path_value) || | 323 if (!args->Get(0, &file_path_value) || |
357 !base::GetValueAsFilePath(*file_path_value, &profile_file_path)) | 324 !base::GetValueAsFilePath(*file_path_value, &profile_file_path)) |
358 return; | 325 return; |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 g_browser_process->profile_manager()->profile_shortcut_manager(); | 436 g_browser_process->profile_manager()->profile_shortcut_manager(); |
470 DCHECK(shortcut_manager); | 437 DCHECK(shortcut_manager); |
471 | 438 |
472 shortcut_manager->RemoveProfileShortcuts(profile_file_path); | 439 shortcut_manager->RemoveProfileShortcuts(profile_file_path); |
473 | 440 |
474 // Update the UI buttons. | 441 // Update the UI buttons. |
475 OnHasProfileShortcuts(false); | 442 OnHasProfileShortcuts(false); |
476 } | 443 } |
477 | 444 |
478 } // namespace options | 445 } // namespace options |
OLD | NEW |