OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser_options_handler.h" | 5 #include "chrome/browser/ui/webui/options/browser_options_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "chrome/browser/gpu/gpu_mode_manager.h" | 27 #include "chrome/browser/gpu/gpu_mode_manager.h" |
28 #include "chrome/browser/lifetime/application_lifetime.h" | 28 #include "chrome/browser/lifetime/application_lifetime.h" |
29 #include "chrome/browser/net/url_fixer_upper.h" | 29 #include "chrome/browser/net/url_fixer_upper.h" |
30 #include "chrome/browser/prefs/session_startup_pref.h" | 30 #include "chrome/browser/prefs/session_startup_pref.h" |
31 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" | 31 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" |
32 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.
h" | 32 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.
h" |
33 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" | 33 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" |
34 #include "chrome/browser/printing/cloud_print/cloud_print_url.h" | 34 #include "chrome/browser/printing/cloud_print/cloud_print_url.h" |
35 #include "chrome/browser/profiles/profile_info_cache.h" | 35 #include "chrome/browser/profiles/profile_info_cache.h" |
36 #include "chrome/browser/profiles/profile_info_util.h" | 36 #include "chrome/browser/profiles/profile_info_util.h" |
37 #include "chrome/browser/profiles/profile_manager.h" | |
38 #include "chrome/browser/profiles/profile_shortcut_manager.h" | 37 #include "chrome/browser/profiles/profile_shortcut_manager.h" |
39 #include "chrome/browser/search/search.h" | 38 #include "chrome/browser/search/search.h" |
40 #include "chrome/browser/search_engines/template_url.h" | 39 #include "chrome/browser/search_engines/template_url.h" |
41 #include "chrome/browser/search_engines/template_url_service.h" | 40 #include "chrome/browser/search_engines/template_url_service.h" |
42 #include "chrome/browser/search_engines/template_url_service_factory.h" | 41 #include "chrome/browser/search_engines/template_url_service_factory.h" |
43 #include "chrome/browser/service/service_process_control.h" | 42 #include "chrome/browser/service/service_process_control.h" |
44 #include "chrome/browser/signin/signin_manager.h" | 43 #include "chrome/browser/signin/signin_manager.h" |
45 #include "chrome/browser/signin/signin_manager_factory.h" | 44 #include "chrome/browser/signin/signin_manager_factory.h" |
46 #include "chrome/browser/sync/profile_sync_service.h" | 45 #include "chrome/browser/sync/profile_sync_service.h" |
47 #include "chrome/browser/sync/profile_sync_service_factory.h" | 46 #include "chrome/browser/sync/profile_sync_service_factory.h" |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 } | 138 } |
140 | 139 |
141 void CreateDesktopShortcutForProfile(Profile* profile, | 140 void CreateDesktopShortcutForProfile(Profile* profile, |
142 Profile::CreateStatus status) { | 141 Profile::CreateStatus status) { |
143 ProfileShortcutManager* shortcut_manager = | 142 ProfileShortcutManager* shortcut_manager = |
144 g_browser_process->profile_manager()->profile_shortcut_manager(); | 143 g_browser_process->profile_manager()->profile_shortcut_manager(); |
145 if (shortcut_manager) | 144 if (shortcut_manager) |
146 shortcut_manager->CreateProfileShortcut(profile->GetPath()); | 145 shortcut_manager->CreateProfileShortcut(profile->GetPath()); |
147 } | 146 } |
148 | 147 |
149 void OnProfileCreated( | |
150 const std::vector<ProfileManager::CreateCallback>& callbacks, | |
151 Profile* profile, | |
152 Profile::CreateStatus status) { | |
153 std::vector<ProfileManager::CreateCallback>::const_iterator it; | |
154 for (it = callbacks.begin(); it != callbacks.end(); ++it) { | |
155 it->Run(profile, status); | |
156 } | |
157 } | |
158 | |
159 } // namespace | 148 } // namespace |
160 | 149 |
161 BrowserOptionsHandler::BrowserOptionsHandler() | 150 BrowserOptionsHandler::BrowserOptionsHandler() |
162 : page_initialized_(false), | 151 : page_initialized_(false), |
163 template_url_service_(NULL), | 152 template_url_service_(NULL), |
164 weak_ptr_factory_(this) { | 153 weak_ptr_factory_(this) { |
165 #if !defined(OS_MACOSX) | 154 #if !defined(OS_MACOSX) |
166 default_browser_worker_ = new ShellIntegration::DefaultBrowserWorker(this); | 155 default_browser_worker_ = new ShellIntegration::DefaultBrowserWorker(this); |
167 #endif | 156 #endif |
168 #if(!defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN)) | 157 #if(!defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN)) |
(...skipping 947 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1116 #if defined(ENABLE_MANAGED_USERS) | 1105 #if defined(ENABLE_MANAGED_USERS) |
1117 ManagedUserRegistrationService* registration_service = | 1106 ManagedUserRegistrationService* registration_service = |
1118 ManagedUserRegistrationServiceFactory::GetForProfile(profile); | 1107 ManagedUserRegistrationServiceFactory::GetForProfile(profile); |
1119 callbacks.push_back(registration_service->GetRegistrationAndInitCallback()); | 1108 callbacks.push_back(registration_service->GetRegistrationAndInitCallback()); |
1120 #else | 1109 #else |
1121 NOTREACHED(); | 1110 NOTREACHED(); |
1122 #endif | 1111 #endif |
1123 } | 1112 } |
1124 | 1113 |
1125 ProfileManager::CreateMultiProfileAsync( | 1114 ProfileManager::CreateMultiProfileAsync( |
1126 name, icon, base::Bind(&OnProfileCreated, callbacks), | 1115 name, icon, base::Bind(&BrowserOptionsHandler::OnProfileCreated, |
1127 desktop_type, managed_user); | 1116 weak_ptr_factory_.GetWeakPtr(), |
| 1117 desktop_type, managed_user, callbacks), |
| 1118 managed_user); |
| 1119 } |
| 1120 |
| 1121 void BrowserOptionsHandler::OnProfileCreated( |
| 1122 chrome::HostDesktopType desktop_type, |
| 1123 bool is_managed, |
| 1124 const std::vector<ProfileManager::CreateCallback>& callbacks, |
| 1125 Profile* profile, |
| 1126 Profile::CreateStatus status) { |
| 1127 std::vector<ProfileManager::CreateCallback>::const_iterator it; |
| 1128 for (it = callbacks.begin(); it != callbacks.end(); ++it) { |
| 1129 it->Run(profile, status); |
| 1130 } |
| 1131 |
| 1132 switch (status) { |
| 1133 case Profile::CREATE_STATUS_FAIL: { |
| 1134 web_ui()->CallJavascriptFunction( |
| 1135 "BrowserOptions.showCreateProfileLocalError"); |
| 1136 break; |
| 1137 } |
| 1138 case Profile::CREATE_STATUS_CREATED: { |
| 1139 // Do nothing for an intermediate status. |
| 1140 break; |
| 1141 } |
| 1142 case Profile::CREATE_STATUS_INITIALIZED: { |
| 1143 base::FundamentalValue is_managed_value(is_managed); |
| 1144 web_ui()->CallJavascriptFunction( |
| 1145 "BrowserOptions.showCreateProfileSuccess", |
| 1146 is_managed_value); |
| 1147 |
| 1148 // Opening the new window must be the last action, after all callbacks |
| 1149 // have been run, to give them a chance to initialize the profile. |
| 1150 ProfileManager::FindOrCreateNewWindowForProfile( |
| 1151 profile, |
| 1152 chrome::startup::IS_PROCESS_STARTUP, |
| 1153 chrome::startup::IS_FIRST_RUN, |
| 1154 desktop_type, |
| 1155 false); |
| 1156 break; |
| 1157 } |
| 1158 } |
1128 } | 1159 } |
1129 | 1160 |
1130 void BrowserOptionsHandler::ObserveThemeChanged() { | 1161 void BrowserOptionsHandler::ObserveThemeChanged() { |
1131 Profile* profile = Profile::FromWebUI(web_ui()); | 1162 Profile* profile = Profile::FromWebUI(web_ui()); |
1132 #if defined(TOOLKIT_GTK) | 1163 #if defined(TOOLKIT_GTK) |
1133 GtkThemeService* theme_service = GtkThemeService::GetFrom(profile); | 1164 GtkThemeService* theme_service = GtkThemeService::GetFrom(profile); |
1134 bool is_gtk_theme = theme_service->UsingNativeTheme(); | 1165 bool is_gtk_theme = theme_service->UsingNativeTheme(); |
1135 base::FundamentalValue gtk_enabled(!is_gtk_theme); | 1166 base::FundamentalValue gtk_enabled(!is_gtk_theme); |
1136 web_ui()->CallJavascriptFunction("BrowserOptions.setGtkThemeButtonEnabled", | 1167 web_ui()->CallJavascriptFunction("BrowserOptions.setGtkThemeButtonEnabled", |
1137 gtk_enabled); | 1168 gtk_enabled); |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1574 base::FundamentalValue disabled(profile_pref_registrar_.IsManaged() || | 1605 base::FundamentalValue disabled(profile_pref_registrar_.IsManaged() || |
1575 is_extension_controlled); | 1606 is_extension_controlled); |
1576 base::FundamentalValue extension_controlled(is_extension_controlled); | 1607 base::FundamentalValue extension_controlled(is_extension_controlled); |
1577 web_ui()->CallJavascriptFunction("BrowserOptions.setupProxySettingsSection", | 1608 web_ui()->CallJavascriptFunction("BrowserOptions.setupProxySettingsSection", |
1578 disabled, extension_controlled); | 1609 disabled, extension_controlled); |
1579 | 1610 |
1580 #endif // !defined(OS_CHROMEOS) | 1611 #endif // !defined(OS_CHROMEOS) |
1581 } | 1612 } |
1582 | 1613 |
1583 } // namespace options | 1614 } // namespace options |
OLD | NEW |