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 <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 29 matching lines...) Expand all Loading... |
40 #include "components/prefs/scoped_user_pref_update.h" | 40 #include "components/prefs/scoped_user_pref_update.h" |
41 #include "components/signin/core/browser/signin_manager.h" | 41 #include "components/signin/core/browser/signin_manager.h" |
42 #include "components/signin/core/common/profile_management_switches.h" | 42 #include "components/signin/core/common/profile_management_switches.h" |
43 #include "content/public/browser/browser_thread.h" | 43 #include "content/public/browser/browser_thread.h" |
44 #include "content/public/browser/notification_service.h" | 44 #include "content/public/browser/notification_service.h" |
45 #include "content/public/browser/web_ui.h" | 45 #include "content/public/browser/web_ui.h" |
46 #include "google_apis/gaia/gaia_auth_util.h" | 46 #include "google_apis/gaia/gaia_auth_util.h" |
47 #include "ui/base/l10n/l10n_util.h" | 47 #include "ui/base/l10n/l10n_util.h" |
48 #include "ui/base/webui/web_ui_util.h" | 48 #include "ui/base/webui/web_ui_util.h" |
49 | 49 |
50 #if defined(ENABLE_SETTINGS_APP) | |
51 #include "chrome/browser/ui/app_list/app_list_service.h" | |
52 #include "content/public/browser/web_contents.h" | |
53 #endif | |
54 | |
55 namespace options { | 50 namespace options { |
56 | 51 |
57 namespace { | 52 namespace { |
58 | 53 |
59 const char kCreateProfileIdentifier[] = "create"; | 54 const char kCreateProfileIdentifier[] = "create"; |
60 const char kManageProfileIdentifier[] = "manage"; | 55 const char kManageProfileIdentifier[] = "manage"; |
61 | 56 |
62 // Given |args| from the WebUI, parses value 0 as a FilePath |profile_file_path| | 57 // Given |args| from the WebUI, parses value 0 as a FilePath |profile_file_path| |
63 // and returns true on success. | 58 // and returns true on success. |
64 bool GetProfilePathFromArgs(const base::ListValue* args, | 59 bool GetProfilePathFromArgs(const base::ListValue* args, |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 base::Unretained(this))); | 173 base::Unretained(this))); |
179 web_ui()->RegisterMessageCallback("requestHasProfileShortcuts", | 174 web_ui()->RegisterMessageCallback("requestHasProfileShortcuts", |
180 base::Bind(&ManageProfileHandler::RequestHasProfileShortcuts, | 175 base::Bind(&ManageProfileHandler::RequestHasProfileShortcuts, |
181 base::Unretained(this))); | 176 base::Unretained(this))); |
182 web_ui()->RegisterMessageCallback("requestCreateProfileUpdate", | 177 web_ui()->RegisterMessageCallback("requestCreateProfileUpdate", |
183 base::Bind(&ManageProfileHandler::RequestCreateProfileUpdate, | 178 base::Bind(&ManageProfileHandler::RequestCreateProfileUpdate, |
184 base::Unretained(this))); | 179 base::Unretained(this))); |
185 web_ui()->RegisterMessageCallback("profileIconSelectionChanged", | 180 web_ui()->RegisterMessageCallback("profileIconSelectionChanged", |
186 base::Bind(&ManageProfileHandler::ProfileIconSelectionChanged, | 181 base::Bind(&ManageProfileHandler::ProfileIconSelectionChanged, |
187 base::Unretained(this))); | 182 base::Unretained(this))); |
188 #if defined(ENABLE_SETTINGS_APP) | |
189 web_ui()->RegisterMessageCallback("switchAppListProfile", | |
190 base::Bind(&ManageProfileHandler::SwitchAppListProfile, | |
191 base::Unretained(this))); | |
192 #endif | |
193 web_ui()->RegisterMessageCallback("addProfileShortcut", | 183 web_ui()->RegisterMessageCallback("addProfileShortcut", |
194 base::Bind(&ManageProfileHandler::AddProfileShortcut, | 184 base::Bind(&ManageProfileHandler::AddProfileShortcut, |
195 base::Unretained(this))); | 185 base::Unretained(this))); |
196 web_ui()->RegisterMessageCallback("removeProfileShortcut", | 186 web_ui()->RegisterMessageCallback("removeProfileShortcut", |
197 base::Bind(&ManageProfileHandler::RemoveProfileShortcut, | 187 base::Bind(&ManageProfileHandler::RemoveProfileShortcut, |
198 base::Unretained(this))); | 188 base::Unretained(this))); |
199 web_ui()->RegisterMessageCallback("refreshGaiaPicture", | 189 web_ui()->RegisterMessageCallback("refreshGaiaPicture", |
200 base::Bind(&ManageProfileHandler::RefreshGaiaPicture, | 190 base::Bind(&ManageProfileHandler::RefreshGaiaPicture, |
201 base::Unretained(this))); | 191 base::Unretained(this))); |
202 web_ui()->RegisterMessageCallback( | 192 web_ui()->RegisterMessageCallback( |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 | 396 |
407 base::string16 new_profile_name; | 397 base::string16 new_profile_name; |
408 if (!args->GetString(2, &new_profile_name)) | 398 if (!args->GetString(2, &new_profile_name)) |
409 return; | 399 return; |
410 | 400 |
411 base::TrimWhitespace(new_profile_name, base::TRIM_ALL, &new_profile_name); | 401 base::TrimWhitespace(new_profile_name, base::TRIM_ALL, &new_profile_name); |
412 CHECK(!new_profile_name.empty()); | 402 CHECK(!new_profile_name.empty()); |
413 profiles::UpdateProfileName(profile, new_profile_name); | 403 profiles::UpdateProfileName(profile, new_profile_name); |
414 } | 404 } |
415 | 405 |
416 #if defined(ENABLE_SETTINGS_APP) | |
417 void ManageProfileHandler::SwitchAppListProfile(const base::ListValue* args) { | |
418 DCHECK(args); | |
419 DCHECK(profiles::IsMultipleProfilesEnabled()); | |
420 | |
421 const base::Value* file_path_value; | |
422 base::FilePath profile_file_path; | |
423 if (!args->Get(0, &file_path_value) || | |
424 !base::GetValueAsFilePath(*file_path_value, &profile_file_path)) | |
425 return; | |
426 | |
427 AppListService* app_list_service = AppListService::Get(); | |
428 app_list_service->SetProfilePath(profile_file_path); | |
429 app_list_service->Show(); | |
430 | |
431 // Close the settings app, since it will now be for the wrong profile. | |
432 web_ui()->GetWebContents()->Close(); | |
433 } | |
434 #endif // defined(ENABLE_SETTINGS_APP) | |
435 | |
436 void ManageProfileHandler::ProfileIconSelectionChanged( | 406 void ManageProfileHandler::ProfileIconSelectionChanged( |
437 const base::ListValue* args) { | 407 const base::ListValue* args) { |
438 DCHECK(args); | 408 DCHECK(args); |
439 | 409 |
440 base::FilePath profile_file_path; | 410 base::FilePath profile_file_path; |
441 if (!GetProfilePathFromArgs(args, &profile_file_path)) | 411 if (!GetProfilePathFromArgs(args, &profile_file_path)) |
442 return; | 412 return; |
443 | 413 |
444 // Currently this only supports editing the current profile's info. | 414 // Currently this only supports editing the current profile's info. |
445 if (profile_file_path != Profile::FromWebUI(web_ui())->GetPath()) | 415 if (profile_file_path != Profile::FromWebUI(web_ui())->GetPath()) |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
568 | 538 |
569 // Update the UI buttons. | 539 // Update the UI buttons. |
570 OnHasProfileShortcuts(false); | 540 OnHasProfileShortcuts(false); |
571 } | 541 } |
572 | 542 |
573 void ManageProfileHandler::RefreshGaiaPicture(const base::ListValue* args) { | 543 void ManageProfileHandler::RefreshGaiaPicture(const base::ListValue* args) { |
574 profiles::UpdateGaiaProfileInfoIfNeeded(Profile::FromWebUI(web_ui())); | 544 profiles::UpdateGaiaProfileInfoIfNeeded(Profile::FromWebUI(web_ui())); |
575 } | 545 } |
576 | 546 |
577 } // namespace options | 547 } // namespace options |
OLD | NEW |