Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: chrome/browser/ui/webui/options2/browser_options_handler2.cc

Issue 9181013: [uber page] Migrate remaining Personal options into Browser options. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: How about another rebase! (damn you generated_resources.grd) Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/options2/browser_options_handler2.h" 5 #include "chrome/browser/ui/webui/options2/browser_options_handler2.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/memory/singleton.h" 11 #include "base/memory/singleton.h"
12 #include "base/path_service.h" 12 #include "base/path_service.h"
13 #include "base/stl_util.h"
13 #include "base/string_number_conversions.h" 14 #include "base/string_number_conversions.h"
14 #include "base/utf_string_conversions.h" 15 #include "base/utf_string_conversions.h"
15 #include "base/values.h" 16 #include "base/values.h"
16 #include "base/value_conversions.h" 17 #include "base/value_conversions.h"
17 #include "chrome/browser/auto_launch_trial.h" 18 #include "chrome/browser/auto_launch_trial.h"
18 #include "chrome/browser/autocomplete/autocomplete.h" 19 #include "chrome/browser/autocomplete/autocomplete.h"
19 #include "chrome/browser/autocomplete/autocomplete_match.h" 20 #include "chrome/browser/autocomplete/autocomplete_match.h"
20 #include "chrome/browser/browser_process.h" 21 #include "chrome/browser/browser_process.h"
21 #include "chrome/browser/custom_home_pages_table_model.h" 22 #include "chrome/browser/custom_home_pages_table_model.h"
22 #include "chrome/browser/google/google_util.h" 23 #include "chrome/browser/google/google_util.h"
23 #include "chrome/browser/instant/instant_confirm_dialog.h" 24 #include "chrome/browser/instant/instant_confirm_dialog.h"
24 #include "chrome/browser/instant/instant_controller.h" 25 #include "chrome/browser/instant/instant_controller.h"
25 #include "chrome/browser/instant/instant_field_trial.h" 26 #include "chrome/browser/instant/instant_field_trial.h"
26 #include "chrome/browser/net/url_fixer_upper.h" 27 #include "chrome/browser/net/url_fixer_upper.h"
27 #include "chrome/browser/prefs/pref_service.h" 28 #include "chrome/browser/prefs/pref_service.h"
28 #include "chrome/browser/prefs/session_startup_pref.h" 29 #include "chrome/browser/prefs/session_startup_pref.h"
29 #include "chrome/browser/profiles/profile.h" 30 #include "chrome/browser/profiles/profile.h"
30 #include "chrome/browser/profiles/profile_info_cache.h" 31 #include "chrome/browser/profiles/profile_info_cache.h"
31 #include "chrome/browser/profiles/profile_info_util.h" 32 #include "chrome/browser/profiles/profile_info_util.h"
32 #include "chrome/browser/profiles/profile_manager.h" 33 #include "chrome/browser/profiles/profile_manager.h"
33 #include "chrome/browser/search_engines/template_url.h" 34 #include "chrome/browser/search_engines/template_url.h"
34 #include "chrome/browser/search_engines/template_url_service.h" 35 #include "chrome/browser/search_engines/template_url_service.h"
35 #include "chrome/browser/search_engines/template_url_service_factory.h" 36 #include "chrome/browser/search_engines/template_url_service_factory.h"
36 #include "chrome/browser/sync/profile_sync_service.h" 37 #include "chrome/browser/sync/profile_sync_service.h"
37 #include "chrome/browser/sync/sync_setup_flow.h" 38 #include "chrome/browser/sync/sync_setup_flow.h"
38 #include "chrome/browser/sync/sync_ui_util.h" 39 #include "chrome/browser/sync/sync_ui_util.h"
40 #include "chrome/browser/themes/theme_service.h"
41 #include "chrome/browser/themes/theme_service_factory.h"
39 #include "chrome/browser/ui/webui/favicon_source.h" 42 #include "chrome/browser/ui/webui/favicon_source.h"
40 #include "chrome/browser/ui/webui/web_ui_util.h" 43 #include "chrome/browser/ui/webui/web_ui_util.h"
41 #include "chrome/common/chrome_notification_types.h" 44 #include "chrome/common/chrome_notification_types.h"
45 #include "chrome/common/chrome_paths.h"
42 #include "chrome/common/chrome_switches.h" 46 #include "chrome/common/chrome_switches.h"
47 #include "chrome/common/net/gaia/google_service_auth_error.h"
43 #include "chrome/common/pref_names.h" 48 #include "chrome/common/pref_names.h"
44 #include "chrome/common/url_constants.h" 49 #include "chrome/common/url_constants.h"
45 #include "content/public/browser/browser_thread.h" 50 #include "content/public/browser/browser_thread.h"
51 #include "content/public/browser/navigation_controller.h"
46 #include "content/public/browser/notification_details.h" 52 #include "content/public/browser/notification_details.h"
47 #include "content/public/browser/notification_service.h" 53 #include "content/public/browser/notification_service.h"
48 #include "content/public/browser/notification_source.h" 54 #include "content/public/browser/notification_source.h"
49 #include "content/public/browser/user_metrics.h" 55 #include "content/public/browser/user_metrics.h"
50 #include "content/public/browser/web_contents.h" 56 #include "content/public/browser/web_contents.h"
51 #include "grit/chromium_strings.h" 57 #include "grit/chromium_strings.h"
52 #include "grit/generated_resources.h" 58 #include "grit/generated_resources.h"
59 #include "grit/locale_settings.h"
60 #include "grit/theme_resources.h"
53 #include "ui/base/l10n/l10n_util.h" 61 #include "ui/base/l10n/l10n_util.h"
54 62
55 #if defined(OS_WIN) 63 #if defined(OS_WIN)
56 #include "chrome/installer/util/auto_launch_util.h" 64 #include "chrome/installer/util/auto_launch_util.h"
57 #endif 65 #endif // defined(OS_WIN)
66
67 #if defined(OS_CHROMEOS)
68 #include "chrome/browser/chromeos/login/user_manager.h"
69 #include "chrome/browser/chromeos/options/take_photo_dialog.h"
70 #include "chrome/browser/ui/browser_window.h"
71 #include "chrome/browser/ui/views/window.h"
72 #include "third_party/skia/include/core/SkBitmap.h"
73 #endif // defined(OS_CHROMEOS)
74
75 #if defined(TOOLKIT_GTK)
76 #include "chrome/browser/ui/gtk/gtk_theme_service.h"
77 #endif // defined(TOOLKIT_GTK)
58 78
59 using content::BrowserThread; 79 using content::BrowserThread;
60 using content::UserMetricsAction; 80 using content::UserMetricsAction;
61 81
62 namespace options2 { 82 namespace options2 {
63 83
64 BrowserOptionsHandler::BrowserOptionsHandler() 84 BrowserOptionsHandler::BrowserOptionsHandler()
65 : template_url_service_(NULL), 85 : template_url_service_(NULL),
66 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_for_file_(this)), 86 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_for_file_(this)),
67 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_for_ui_(this)) { 87 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_for_ui_(this)) {
(...skipping 13 matching lines...) Expand all
81 default_browser_worker_->ObserverDestroyed(); 101 default_browser_worker_->ObserverDestroyed();
82 if (template_url_service_) 102 if (template_url_service_)
83 template_url_service_->RemoveObserver(this); 103 template_url_service_->RemoveObserver(this);
84 } 104 }
85 105
86 void BrowserOptionsHandler::GetLocalizedValues( 106 void BrowserOptionsHandler::GetLocalizedValues(
87 DictionaryValue* localized_strings) { 107 DictionaryValue* localized_strings) {
88 DCHECK(localized_strings); 108 DCHECK(localized_strings);
89 109
90 static OptionsStringResource resources[] = { 110 static OptionsStringResource resources[] = {
91 { "syncSection", IDS_SYNC_OPTIONS_GROUP_NAME }, 111 { "appearance", IDS_APPEARANCE_GROUP_NAME },
112 { "advancedGroupName", IDS_OPTIONS_ADVANCED_TAB_LABEL },
113 { "advancedOptionsButtonTitle", IDS_OPTIONS_ADVANCED_BUTTON_TITLE },
114 { "autologinEnabled", IDS_OPTIONS_PASSWORDS_AUTOLOGIN },
115 { "browsingData", IDS_OPTIONS_BROWSING_DATA_GROUP_NAME }, // needed?
116 { "changeHomePage", IDS_OPTIONS_CHANGE_HOME_PAGE },
92 { "customizeSync", IDS_SYNC_CUSTOMIZE_BUTTON_LABEL }, 117 { "customizeSync", IDS_SYNC_CUSTOMIZE_BUTTON_LABEL },
118 { "defaultBrowserGroupName", IDS_OPTIONS_DEFAULTBROWSER_GROUP_NAME },
119 { "defaultSearchGroupName", IDS_OPTIONS_DEFAULTSEARCH_GROUP_NAME },
120 { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES },
121 { "instantConfirmMessage", IDS_INSTANT_OPT_IN_MESSAGE },
122 { "instantConfirmTitle", IDS_INSTANT_OPT_IN_TITLE },
123 { "importData", IDS_OPTIONS_IMPORT_DATA_BUTTON },
124 { "manageDataDescription", IDS_OPTIONS_MANAGE_DATA_DESCRIPTION },
93 { "profiles", IDS_PROFILES_OPTIONS_GROUP_NAME }, 125 { "profiles", IDS_PROFILES_OPTIONS_GROUP_NAME },
94 { "profilesCreate", IDS_PROFILES_CREATE_BUTTON_LABEL }, 126 { "profilesCreate", IDS_PROFILES_CREATE_BUTTON_LABEL },
95 { "profilesManage", IDS_PROFILES_MANAGE_BUTTON_LABEL },
96 { "profilesDelete", IDS_PROFILES_DELETE_BUTTON_LABEL }, 127 { "profilesDelete", IDS_PROFILES_DELETE_BUTTON_LABEL },
97 { "profilesDeleteSingle", IDS_PROFILES_DELETE_SINGLE_BUTTON_LABEL }, 128 { "profilesDeleteSingle", IDS_PROFILES_DELETE_SINGLE_BUTTON_LABEL },
98 { "profilesListItemCurrent", IDS_PROFILES_LIST_ITEM_CURRENT }, 129 { "profilesListItemCurrent", IDS_PROFILES_LIST_ITEM_CURRENT },
130 { "profilesManage", IDS_PROFILES_MANAGE_BUTTON_LABEL },
99 { "startupGroupName", IDS_OPTIONS_STARTUP_GROUP_NAME }, 131 { "startupGroupName", IDS_OPTIONS_STARTUP_GROUP_NAME },
132 { "startupSetPages", IDS_OPTIONS2_STARTUP_SET_PAGES },
100 { "startupShowDefaultAndNewTab", 133 { "startupShowDefaultAndNewTab",
101 IDS_OPTIONS_STARTUP_SHOW_DEFAULT_AND_NEWTAB}, 134 IDS_OPTIONS_STARTUP_SHOW_DEFAULT_AND_NEWTAB},
102 { "startupShowLastSession", IDS_OPTIONS_STARTUP_SHOW_LAST_SESSION }, 135 { "startupShowLastSession", IDS_OPTIONS_STARTUP_SHOW_LAST_SESSION },
103 { "startupShowPages", IDS_OPTIONS2_STARTUP_SHOW_PAGES }, 136 { "startupShowPages", IDS_OPTIONS2_STARTUP_SHOW_PAGES },
104 { "startupSetPages", IDS_OPTIONS2_STARTUP_SET_PAGES }, 137 { "syncSection", IDS_SYNC_OPTIONS_GROUP_NAME },
138 { "themesGallery", IDS_THEMES_GALLERY_BUTTON },
139 { "themesGalleryURL", IDS_THEMES_GALLERY_URL },
105 { "toolbarGroupName", IDS_OPTIONS2_TOOLBAR_GROUP_NAME }, 140 { "toolbarGroupName", IDS_OPTIONS2_TOOLBAR_GROUP_NAME },
141 { "toolbarShowBookmarksBar", IDS_OPTIONS_TOOLBAR_SHOW_BOOKMARKS_BAR },
106 { "toolbarShowHomeButton", IDS_OPTIONS_TOOLBAR_SHOW_HOME_BUTTON }, 142 { "toolbarShowHomeButton", IDS_OPTIONS_TOOLBAR_SHOW_HOME_BUTTON },
107 { "changeHomePage", IDS_OPTIONS_CHANGE_HOME_PAGE }, 143 #if defined(TOOLKIT_GTK)
108 { "toolbarShowBookmarksBar", IDS_OPTIONS_TOOLBAR_SHOW_BOOKMARKS_BAR }, 144 { "showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS_RADIO },
109 { "defaultSearchGroupName", IDS_OPTIONS_DEFAULTSEARCH_GROUP_NAME }, 145 { "hideWindowDecorations", IDS_HIDE_WINDOW_DECORATIONS_RADIO },
110 { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES }, 146 { "themesGTKButton", IDS_THEMES_GTK_BUTTON },
111 { "instantConfirmTitle", IDS_INSTANT_OPT_IN_TITLE }, 147 { "themesSetClassic", IDS_THEMES_SET_CLASSIC },
112 { "instantConfirmMessage", IDS_INSTANT_OPT_IN_MESSAGE }, 148 #else
113 { "defaultBrowserGroupName", IDS_OPTIONS_DEFAULTBROWSER_GROUP_NAME }, 149 { "themes", IDS_THEMES_GROUP_NAME },
114 { "advancedGroupName", IDS_OPTIONS_ADVANCED_TAB_LABEL }, 150 { "themesReset", IDS_THEMES_RESET_BUTTON },
115 { "advancedOptionsButtonTitle", IDS_OPTIONS_ADVANCED_BUTTON_TITLE }, 151 #endif
152 #if defined(OS_CHROMEOS)
153 { "changePicture", IDS_OPTIONS_CHANGE_PICTURE },
154 { "enableScreenlock", IDS_OPTIONS_ENABLE_SCREENLOCKER_CHECKBOX },
155 #endif
116 }; 156 };
117 157
118 RegisterStrings(localized_strings, resources, arraysize(resources)); 158 RegisterStrings(localized_strings, resources, arraysize(resources));
119 RegisterTitle(localized_strings, "settingsTitle", IDS_SETTINGS_TITLE); 159 RegisterTitle(localized_strings, "settingsTitle", IDS_SETTINGS_TITLE);
120 160
121 localized_strings->SetString( 161 localized_strings->SetString(
122 "syncOverview", 162 "syncOverview",
123 l10n_util::GetStringFUTF16(IDS_SYNC_OVERVIEW, 163 l10n_util::GetStringFUTF16(IDS_SYNC_OVERVIEW,
124 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); 164 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
125 localized_strings->SetString("syncLearnMoreURL", 165
166 localized_strings->SetString(
167 "syncLearnMoreURL",
126 google_util::StringAppendGoogleLocaleParam(chrome::kSyncLearnMoreURL)); 168 google_util::StringAppendGoogleLocaleParam(chrome::kSyncLearnMoreURL));
127 169 localized_strings->SetString(
128 localized_strings->SetString("profilesSingleUser", 170 "profilesSingleUser",
129 l10n_util::GetStringFUTF16(IDS_PROFILES_SINGLE_USER_MESSAGE, 171 l10n_util::GetStringFUTF16(IDS_PROFILES_SINGLE_USER_MESSAGE,
130 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); 172 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
131 173
132 localized_strings->SetString("defaultSearchGroupLabel", 174 localized_strings->SetString(
175 "defaultSearchGroupLabel",
133 l10n_util::GetStringFUTF16(IDS_SEARCH_PREF_EXPLANATION, 176 l10n_util::GetStringFUTF16(IDS_SEARCH_PREF_EXPLANATION,
134 l10n_util::GetStringUTF16(IDS_OMNIBOX_LEARN_MORE_URL))); 177 l10n_util::GetStringUTF16(IDS_OMNIBOX_LEARN_MORE_URL)));
135 localized_strings->SetString("instantPrefAndWarning", 178 localized_strings->SetString(
179 "instantPrefAndWarning",
136 l10n_util::GetStringFUTF16(IDS_INSTANT_PREF_WITH_WARNING, 180 l10n_util::GetStringFUTF16(IDS_INSTANT_PREF_WITH_WARNING,
137 l10n_util::GetStringUTF16(IDS_INSTANT_LEARN_MORE_URL))); 181 l10n_util::GetStringUTF16(IDS_INSTANT_LEARN_MORE_URL)));
138 localized_strings->SetString("instantLearnMoreLink", 182 localized_strings->SetString(
183 "instantLearnMoreLink",
139 ASCIIToUTF16(browser::InstantLearnMoreURL().spec())); 184 ASCIIToUTF16(browser::InstantLearnMoreURL().spec()));
140 localized_strings->SetString("defaultBrowserUnknown", 185
186 localized_strings->SetString(
187 "defaultBrowserUnknown",
141 l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN, 188 l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN,
142 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); 189 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
143 localized_strings->SetString("defaultBrowserUseAsDefault", 190 localized_strings->SetString(
191 "defaultBrowserUseAsDefault",
144 l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT, 192 l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT,
145 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); 193 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
146 localized_strings->SetString("autoLaunchText", 194 localized_strings->SetString(
195 "autoLaunchText",
147 l10n_util::GetStringFUTF16(IDS_AUTOLAUNCH_TEXT, 196 l10n_util::GetStringFUTF16(IDS_AUTOLAUNCH_TEXT,
148 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); 197 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
149 localized_strings->SetString("advancedGroupDescription", 198 localized_strings->SetString(
199 "advancedGroupDescription",
150 l10n_util::GetStringFUTF16(IDS_OPTIONS_ADVANCED_GROUP_DESCRIPTION, 200 l10n_util::GetStringFUTF16(IDS_OPTIONS_ADVANCED_GROUP_DESCRIPTION,
151 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); 201 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
202
203 #if defined(OS_CHROMEOS)
204 if (chromeos::UserManager::Get()->user_is_logged_in()) {
205 localized_strings->SetString("username",
206 chromeos::UserManager::Get()->logged_in_user().email());
207 }
208 #endif
152 } 209 }
153 210
154 void BrowserOptionsHandler::RegisterMessages() { 211 void BrowserOptionsHandler::RegisterMessages() {
155 web_ui()->RegisterMessageCallback("becomeDefaultBrowser", 212 web_ui()->RegisterMessageCallback(
213 "becomeDefaultBrowser",
156 base::Bind(&BrowserOptionsHandler::BecomeDefaultBrowser, 214 base::Bind(&BrowserOptionsHandler::BecomeDefaultBrowser,
157 base::Unretained(this))); 215 base::Unretained(this)));
158 web_ui()->RegisterMessageCallback("setDefaultSearchEngine", 216 web_ui()->RegisterMessageCallback(
217 "setDefaultSearchEngine",
159 base::Bind(&BrowserOptionsHandler::SetDefaultSearchEngine, 218 base::Bind(&BrowserOptionsHandler::SetDefaultSearchEngine,
160 base::Unretained(this))); 219 base::Unretained(this)));
161 web_ui()->RegisterMessageCallback("requestAutocompleteSuggestions", 220 web_ui()->RegisterMessageCallback(
221 "requestAutocompleteSuggestions",
162 base::Bind(&BrowserOptionsHandler::RequestAutocompleteSuggestions, 222 base::Bind(&BrowserOptionsHandler::RequestAutocompleteSuggestions,
163 base::Unretained(this))); 223 base::Unretained(this)));
164 web_ui()->RegisterMessageCallback("enableInstant", 224 web_ui()->RegisterMessageCallback(
225 "enableInstant",
165 base::Bind(&BrowserOptionsHandler::EnableInstant, 226 base::Bind(&BrowserOptionsHandler::EnableInstant,
166 base::Unretained(this))); 227 base::Unretained(this)));
167 web_ui()->RegisterMessageCallback("disableInstant", 228 web_ui()->RegisterMessageCallback(
229 "disableInstant",
168 base::Bind(&BrowserOptionsHandler::DisableInstant, 230 base::Bind(&BrowserOptionsHandler::DisableInstant,
169 base::Unretained(this))); 231 base::Unretained(this)));
170 web_ui()->RegisterMessageCallback("getInstantFieldTrialStatus", 232 web_ui()->RegisterMessageCallback(
233 "getInstantFieldTrialStatus",
171 base::Bind(&BrowserOptionsHandler::GetInstantFieldTrialStatus, 234 base::Bind(&BrowserOptionsHandler::GetInstantFieldTrialStatus,
172 base::Unretained(this))); 235 base::Unretained(this)));
173 web_ui()->RegisterMessageCallback( 236 web_ui()->RegisterMessageCallback(
174 "createProfile", 237 "createProfile",
175 base::Bind(&BrowserOptionsHandler::CreateProfile, 238 base::Bind(&BrowserOptionsHandler::CreateProfile,
176 base::Unretained(this))); 239 base::Unretained(this)));
240 web_ui()->RegisterMessageCallback(
241 "themesReset",
242 base::Bind(&BrowserOptionsHandler::ThemesReset,
243 base::Unretained(this)));
244 #if defined(TOOLKIT_GTK)
245 web_ui()->RegisterMessageCallback(
246 "themesSetGTK",
247 base::Bind(&BrowserOptionsHandler::ThemesSetGTK,
248 base::Unretained(this)));
249 #endif
177 } 250 }
178 251
179 void BrowserOptionsHandler::OnStateChanged() { 252 void BrowserOptionsHandler::OnStateChanged() {
180 string16 status_label; 253 string16 status_label;
181 string16 link_label; 254 string16 link_label;
182 ProfileSyncService* service = 255 ProfileSyncService* service =
183 Profile::FromWebUI(web_ui())->GetProfileSyncService(); 256 Profile::FromWebUI(web_ui())->GetProfileSyncService();
184 DCHECK(service); 257 DCHECK(service);
185 bool managed = service->IsManaged(); 258 bool managed = service->IsManaged();
186 bool sync_setup_completed = service->HasSyncSetupCompleted(); 259 bool sync_setup_completed = service->HasSyncSetupCompleted();
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 default_browser_policy_.Init(prefs::kDefaultBrowserSettingEnabled, 359 default_browser_policy_.Init(prefs::kDefaultBrowserSettingEnabled,
287 g_browser_process->local_state(), 360 g_browser_process->local_state(),
288 this); 361 this);
289 UpdateDefaultBrowserState(); 362 UpdateDefaultBrowserState();
290 363
291 pref_change_registrar_.Init(profile->GetPrefs()); 364 pref_change_registrar_.Init(profile->GetPrefs());
292 pref_change_registrar_.Add(prefs::kHomePage, this); 365 pref_change_registrar_.Add(prefs::kHomePage, this);
293 366
294 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, 367 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED,
295 content::NotificationService::AllSources()); 368 content::NotificationService::AllSources());
369 #if defined(OS_CHROMEOS)
370 registrar_.Add(this, chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
371 content::NotificationService::AllSources());
372 #endif
373 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED,
374 content::Source<ThemeService>(
375 ThemeServiceFactory::GetForProfile(profile)));
296 376
297 UpdateSearchEngines(); 377 UpdateSearchEngines();
298 UpdateHomePageLabel(); 378 UpdateHomePageLabel();
379 ObserveThemeChanged();
299 380
300 autocomplete_controller_.reset(new AutocompleteController(profile, this)); 381 autocomplete_controller_.reset(new AutocompleteController(profile, this));
301 382
302 #if defined(OS_WIN) 383 #if defined(OS_WIN)
303 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, 384 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
304 base::Bind(&BrowserOptionsHandler::CheckAutoLaunch, 385 base::Bind(&BrowserOptionsHandler::CheckAutoLaunch,
305 weak_ptr_factory_for_ui_.GetWeakPtr(), 386 weak_ptr_factory_for_ui_.GetWeakPtr(),
306 weak_ptr_factory_for_file_.GetWeakPtr())); 387 weak_ptr_factory_for_file_.GetWeakPtr()));
307 weak_ptr_factory_for_ui_.DetachFromThread(); 388 weak_ptr_factory_for_ui_.DetachFromThread();
308 #endif 389 #endif
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 583
503 label.reset(Value::CreateStringValue(str)); 584 label.reset(Value::CreateStringValue(str));
504 web_ui()->CallJavascriptFunction("BrowserOptions.updateHomePageLabel", 585 web_ui()->CallJavascriptFunction("BrowserOptions.updateHomePageLabel",
505 *label); 586 *label);
506 } 587 }
507 588
508 void BrowserOptionsHandler::Observe( 589 void BrowserOptionsHandler::Observe(
509 int type, 590 int type,
510 const content::NotificationSource& source, 591 const content::NotificationSource& source,
511 const content::NotificationDetails& details) { 592 const content::NotificationDetails& details) {
512 if (type == chrome::NOTIFICATION_PREF_CHANGED) { 593 if (type == chrome::NOTIFICATION_BROWSER_THEME_CHANGED) {
594 ObserveThemeChanged();
595 #if defined(OS_CHROMEOS)
596 } else if (type == chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED) {
597 UpdateAccountPicture();
598 #endif
599 } else if (type == chrome::NOTIFICATION_PREF_CHANGED) {
513 std::string* pref = content::Details<std::string>(details).ptr(); 600 std::string* pref = content::Details<std::string>(details).ptr();
514 if (*pref == prefs::kDefaultBrowserSettingEnabled) { 601 if (*pref == prefs::kDefaultBrowserSettingEnabled) {
515 UpdateDefaultBrowserState(); 602 UpdateDefaultBrowserState();
516 } else if (*pref == prefs::kHomePage) { 603 } else if (*pref == prefs::kHomePage) {
517 UpdateHomePageLabel(); 604 UpdateHomePageLabel();
518 } else { 605 } else {
519 NOTREACHED(); 606 NOTREACHED();
520 } 607 }
521 } else if (multiprofile_ && 608 } else if (multiprofile_ &&
522 type == chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED) { 609 type == chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED) {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 profile_value->SetString("iconURL", web_ui_util::GetImageDataUrl(icon)); 703 profile_value->SetString("iconURL", web_ui_util::GetImageDataUrl(icon));
617 } else { 704 } else {
618 size_t icon_index = cache.GetAvatarIconIndexOfProfileAtIndex(i); 705 size_t icon_index = cache.GetAvatarIconIndexOfProfileAtIndex(i);
619 profile_value->SetString("iconURL", 706 profile_value->SetString("iconURL",
620 cache.GetDefaultAvatarIconUrl(icon_index)); 707 cache.GetDefaultAvatarIconUrl(icon_index));
621 } 708 }
622 709
623 profile_info_list.Append(profile_value); 710 profile_info_list.Append(profile_value);
624 } 711 }
625 712
626 web_ui()->CallJavascriptFunction("PersonalOptions.setProfilesInfo", 713 web_ui()->CallJavascriptFunction("BrowserOptions.setProfilesInfo",
627 profile_info_list); 714 profile_info_list);
628 } 715 }
629 716
630 void BrowserOptionsHandler::CreateProfile(const ListValue* args) { 717 void BrowserOptionsHandler::CreateProfile(const ListValue* args) {
631 ProfileManager::CreateMultiProfileAsync(); 718 ProfileManager::CreateMultiProfileAsync();
632 } 719 }
633 720
721 void BrowserOptionsHandler::ObserveThemeChanged() {
722 Profile* profile = Profile::FromWebUI(web_ui());
723 #if defined(TOOLKIT_GTK)
724 GtkThemeService* theme_service = GtkThemeService::GetFrom(profile);
725 bool is_gtk_theme = theme_service->UsingNativeTheme();
726 base::FundamentalValue gtk_enabled(!is_gtk_theme);
727 web_ui()->CallJavascriptFunction("BrowserOptions.setGtkThemeButtonEnabled",
728 gtk_enabled);
729 #else
730 ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile);
731 bool is_gtk_theme = false;
732 #endif
733
734 bool is_classic_theme = !is_gtk_theme && theme_service->UsingDefaultTheme();
735 base::FundamentalValue enabled(!is_classic_theme);
736 web_ui()->CallJavascriptFunction("BrowserOptions.setThemesResetButtonEnabled",
737 enabled);
738 }
739
740 void BrowserOptionsHandler::ThemesReset(const ListValue* args) {
741 content::RecordAction(UserMetricsAction("Options_ThemesReset"));
742 Profile* profile = Profile::FromWebUI(web_ui());
743 ThemeServiceFactory::GetForProfile(profile)->UseDefaultTheme();
744 }
745
746 #if defined(TOOLKIT_GTK)
747 void BrowserOptionsHandler::ThemesSetGTK(const ListValue* args) {
748 content::RecordAction(UserMetricsAction("Options_GtkThemeSet"));
749 Profile* profile = Profile::FromWebUI(web_ui());
750 ThemeServiceFactory::GetForProfile(profile)->SetNativeTheme();
751 }
752 #endif
753
754 #if defined(OS_CHROMEOS)
755 void BrowserOptionsHandler::UpdateAccountPicture() {
756 std::string email = chromeos::UserManager::Get()->logged_in_user().email();
757 if (!email.empty()) {
758 web_ui()->CallJavascriptFunction("BrowserOptions.updateAccountPicture");
759 base::StringValue email_value(email);
760 web_ui()->CallJavascriptFunction("BrowserOptions.updateAccountPicture",
761 email_value);
762 }
763 }
764 #endif
765
634 } // namespace options2 766 } // namespace options2
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options2/browser_options_handler2.h ('k') | chrome/browser/ui/webui/options2/options_ui2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698