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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options2/browser_options_handler2.cc
===================================================================
--- chrome/browser/ui/webui/options2/browser_options_handler2.cc (revision 117298)
+++ chrome/browser/ui/webui/options2/browser_options_handler2.cc (working copy)
@@ -10,6 +10,7 @@
#include "base/command_line.h"
#include "base/memory/singleton.h"
#include "base/path_service.h"
+#include "base/stl_util.h"
#include "base/string_number_conversions.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
@@ -36,13 +37,18 @@
#include "chrome/browser/sync/profile_sync_service.h"
#include "chrome/browser/sync/sync_setup_flow.h"
#include "chrome/browser/sync/sync_ui_util.h"
+#include "chrome/browser/themes/theme_service.h"
+#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/webui/favicon_source.h"
#include "chrome/browser/ui/webui/web_ui_util.h"
#include "chrome/common/chrome_notification_types.h"
+#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/common/net/gaia/google_service_auth_error.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
@@ -50,12 +56,26 @@
#include "content/public/browser/web_contents.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
+#include "grit/locale_settings.h"
+#include "grit/theme_resources.h"
#include "ui/base/l10n/l10n_util.h"
#if defined(OS_WIN)
#include "chrome/installer/util/auto_launch_util.h"
-#endif
+#endif // defined(OS_WIN)
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/login/user_manager.h"
+#include "chrome/browser/chromeos/options/take_photo_dialog.h"
+#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/views/window.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#endif // defined(OS_CHROMEOS)
+
+#if defined(TOOLKIT_GTK)
+#include "chrome/browser/ui/gtk/gtk_theme_service.h"
+#endif // defined(TOOLKIT_GTK)
+
using content::BrowserThread;
using content::UserMetricsAction;
@@ -88,31 +108,51 @@
DCHECK(localized_strings);
static OptionsStringResource resources[] = {
- { "syncSection", IDS_SYNC_OPTIONS_GROUP_NAME },
+ { "appearance", IDS_APPEARANCE_GROUP_NAME },
+ { "advancedGroupName", IDS_OPTIONS_ADVANCED_TAB_LABEL },
+ { "advancedOptionsButtonTitle", IDS_OPTIONS_ADVANCED_BUTTON_TITLE },
+ { "autologinEnabled", IDS_OPTIONS_PASSWORDS_AUTOLOGIN },
+ { "browsingData", IDS_OPTIONS_BROWSING_DATA_GROUP_NAME }, // needed?
+ { "changeHomePage", IDS_OPTIONS_CHANGE_HOME_PAGE },
{ "customizeSync", IDS_SYNC_CUSTOMIZE_BUTTON_LABEL },
+ { "defaultBrowserGroupName", IDS_OPTIONS_DEFAULTBROWSER_GROUP_NAME },
+ { "defaultSearchGroupName", IDS_OPTIONS_DEFAULTSEARCH_GROUP_NAME },
+ { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES },
+ { "instantConfirmMessage", IDS_INSTANT_OPT_IN_MESSAGE },
+ { "instantConfirmTitle", IDS_INSTANT_OPT_IN_TITLE },
+ { "importData", IDS_OPTIONS_IMPORT_DATA_BUTTON },
+ { "manageDataDescription", IDS_OPTIONS_MANAGE_DATA_DESCRIPTION },
{ "profiles", IDS_PROFILES_OPTIONS_GROUP_NAME },
{ "profilesCreate", IDS_PROFILES_CREATE_BUTTON_LABEL },
- { "profilesManage", IDS_PROFILES_MANAGE_BUTTON_LABEL },
{ "profilesDelete", IDS_PROFILES_DELETE_BUTTON_LABEL },
{ "profilesDeleteSingle", IDS_PROFILES_DELETE_SINGLE_BUTTON_LABEL },
{ "profilesListItemCurrent", IDS_PROFILES_LIST_ITEM_CURRENT },
+ { "profilesManage", IDS_PROFILES_MANAGE_BUTTON_LABEL },
{ "startupGroupName", IDS_OPTIONS_STARTUP_GROUP_NAME },
+ { "startupSetPages", IDS_OPTIONS2_STARTUP_SET_PAGES },
{ "startupShowDefaultAndNewTab",
IDS_OPTIONS_STARTUP_SHOW_DEFAULT_AND_NEWTAB},
{ "startupShowLastSession", IDS_OPTIONS_STARTUP_SHOW_LAST_SESSION },
{ "startupShowPages", IDS_OPTIONS2_STARTUP_SHOW_PAGES },
- { "startupSetPages", IDS_OPTIONS2_STARTUP_SET_PAGES },
+ { "syncSection", IDS_SYNC_OPTIONS_GROUP_NAME },
+ { "themesGallery", IDS_THEMES_GALLERY_BUTTON },
+ { "themesGalleryURL", IDS_THEMES_GALLERY_URL },
{ "toolbarGroupName", IDS_OPTIONS2_TOOLBAR_GROUP_NAME },
+ { "toolbarShowBookmarksBar", IDS_OPTIONS_TOOLBAR_SHOW_BOOKMARKS_BAR },
{ "toolbarShowHomeButton", IDS_OPTIONS_TOOLBAR_SHOW_HOME_BUTTON },
- { "changeHomePage", IDS_OPTIONS_CHANGE_HOME_PAGE },
- { "toolbarShowBookmarksBar", IDS_OPTIONS_TOOLBAR_SHOW_BOOKMARKS_BAR },
- { "defaultSearchGroupName", IDS_OPTIONS_DEFAULTSEARCH_GROUP_NAME },
- { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES },
- { "instantConfirmTitle", IDS_INSTANT_OPT_IN_TITLE },
- { "instantConfirmMessage", IDS_INSTANT_OPT_IN_MESSAGE },
- { "defaultBrowserGroupName", IDS_OPTIONS_DEFAULTBROWSER_GROUP_NAME },
- { "advancedGroupName", IDS_OPTIONS_ADVANCED_TAB_LABEL },
- { "advancedOptionsButtonTitle", IDS_OPTIONS_ADVANCED_BUTTON_TITLE },
+#if defined(TOOLKIT_GTK)
+ { "showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS_RADIO },
+ { "hideWindowDecorations", IDS_HIDE_WINDOW_DECORATIONS_RADIO },
+ { "themesGTKButton", IDS_THEMES_GTK_BUTTON },
+ { "themesSetClassic", IDS_THEMES_SET_CLASSIC },
+#else
+ { "themes", IDS_THEMES_GROUP_NAME },
+ { "themesReset", IDS_THEMES_RESET_BUTTON },
+#endif
+#if defined(OS_CHROMEOS)
+ { "changePicture", IDS_OPTIONS_CHANGE_PICTURE },
+ { "enableScreenlock", IDS_OPTIONS_ENABLE_SCREENLOCKER_CHECKBOX },
+#endif
};
RegisterStrings(localized_strings, resources, arraysize(resources));
@@ -122,58 +162,91 @@
"syncOverview",
l10n_util::GetStringFUTF16(IDS_SYNC_OVERVIEW,
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
- localized_strings->SetString("syncLearnMoreURL",
+
+ localized_strings->SetString(
+ "syncLearnMoreURL",
google_util::StringAppendGoogleLocaleParam(chrome::kSyncLearnMoreURL));
-
- localized_strings->SetString("profilesSingleUser",
+ localized_strings->SetString(
+ "profilesSingleUser",
l10n_util::GetStringFUTF16(IDS_PROFILES_SINGLE_USER_MESSAGE,
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
- localized_strings->SetString("defaultSearchGroupLabel",
+ localized_strings->SetString(
+ "defaultSearchGroupLabel",
l10n_util::GetStringFUTF16(IDS_SEARCH_PREF_EXPLANATION,
l10n_util::GetStringUTF16(IDS_OMNIBOX_LEARN_MORE_URL)));
- localized_strings->SetString("instantPrefAndWarning",
+ localized_strings->SetString(
+ "instantPrefAndWarning",
l10n_util::GetStringFUTF16(IDS_INSTANT_PREF_WITH_WARNING,
l10n_util::GetStringUTF16(IDS_INSTANT_LEARN_MORE_URL)));
- localized_strings->SetString("instantLearnMoreLink",
+ localized_strings->SetString(
+ "instantLearnMoreLink",
ASCIIToUTF16(browser::InstantLearnMoreURL().spec()));
- localized_strings->SetString("defaultBrowserUnknown",
+
+ localized_strings->SetString(
+ "defaultBrowserUnknown",
l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN,
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
- localized_strings->SetString("defaultBrowserUseAsDefault",
+ localized_strings->SetString(
+ "defaultBrowserUseAsDefault",
l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT,
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
- localized_strings->SetString("autoLaunchText",
+ localized_strings->SetString(
+ "autoLaunchText",
l10n_util::GetStringFUTF16(IDS_AUTOLAUNCH_TEXT,
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
- localized_strings->SetString("advancedGroupDescription",
+ localized_strings->SetString(
+ "advancedGroupDescription",
l10n_util::GetStringFUTF16(IDS_OPTIONS_ADVANCED_GROUP_DESCRIPTION,
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
+
+#if defined(OS_CHROMEOS)
+ if (chromeos::UserManager::Get()->user_is_logged_in()) {
+ localized_strings->SetString("username",
+ chromeos::UserManager::Get()->logged_in_user().email());
+ }
+#endif
}
void BrowserOptionsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback("becomeDefaultBrowser",
+ web_ui()->RegisterMessageCallback(
+ "becomeDefaultBrowser",
base::Bind(&BrowserOptionsHandler::BecomeDefaultBrowser,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback("setDefaultSearchEngine",
+ web_ui()->RegisterMessageCallback(
+ "setDefaultSearchEngine",
base::Bind(&BrowserOptionsHandler::SetDefaultSearchEngine,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback("requestAutocompleteSuggestions",
+ web_ui()->RegisterMessageCallback(
+ "requestAutocompleteSuggestions",
base::Bind(&BrowserOptionsHandler::RequestAutocompleteSuggestions,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback("enableInstant",
+ web_ui()->RegisterMessageCallback(
+ "enableInstant",
base::Bind(&BrowserOptionsHandler::EnableInstant,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback("disableInstant",
+ web_ui()->RegisterMessageCallback(
+ "disableInstant",
base::Bind(&BrowserOptionsHandler::DisableInstant,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback("getInstantFieldTrialStatus",
+ web_ui()->RegisterMessageCallback(
+ "getInstantFieldTrialStatus",
base::Bind(&BrowserOptionsHandler::GetInstantFieldTrialStatus,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"createProfile",
base::Bind(&BrowserOptionsHandler::CreateProfile,
base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "themesReset",
+ base::Bind(&BrowserOptionsHandler::ThemesReset,
+ base::Unretained(this)));
+#if defined(TOOLKIT_GTK)
+ web_ui()->RegisterMessageCallback(
+ "themesSetGTK",
+ base::Bind(&BrowserOptionsHandler::ThemesSetGTK,
+ base::Unretained(this)));
+#endif
}
void BrowserOptionsHandler::OnStateChanged() {
@@ -293,9 +366,17 @@
registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED,
content::NotificationService::AllSources());
+#if defined(OS_CHROMEOS)
+ registrar_.Add(this, chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
+ content::NotificationService::AllSources());
+#endif
+ registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED,
+ content::Source<ThemeService>(
+ ThemeServiceFactory::GetForProfile(profile)));
UpdateSearchEngines();
UpdateHomePageLabel();
+ ObserveThemeChanged();
autocomplete_controller_.reset(new AutocompleteController(profile, this));
@@ -509,7 +590,13 @@
int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
- if (type == chrome::NOTIFICATION_PREF_CHANGED) {
+ if (type == chrome::NOTIFICATION_BROWSER_THEME_CHANGED) {
+ ObserveThemeChanged();
+#if defined(OS_CHROMEOS)
+ } else if (type == chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED) {
+ UpdateAccountPicture();
+#endif
+ } else if (type == chrome::NOTIFICATION_PREF_CHANGED) {
std::string* pref = content::Details<std::string>(details).ptr();
if (*pref == prefs::kDefaultBrowserSettingEnabled) {
UpdateDefaultBrowserState();
@@ -623,7 +710,7 @@
profile_info_list.Append(profile_value);
}
- web_ui()->CallJavascriptFunction("PersonalOptions.setProfilesInfo",
+ web_ui()->CallJavascriptFunction("BrowserOptions.setProfilesInfo",
profile_info_list);
}
@@ -631,4 +718,49 @@
ProfileManager::CreateMultiProfileAsync();
}
+void BrowserOptionsHandler::ObserveThemeChanged() {
+ Profile* profile = Profile::FromWebUI(web_ui());
+#if defined(TOOLKIT_GTK)
+ GtkThemeService* theme_service = GtkThemeService::GetFrom(profile);
+ bool is_gtk_theme = theme_service->UsingNativeTheme();
+ base::FundamentalValue gtk_enabled(!is_gtk_theme);
+ web_ui()->CallJavascriptFunction("BrowserOptions.setGtkThemeButtonEnabled",
+ gtk_enabled);
+#else
+ ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile);
+ bool is_gtk_theme = false;
+#endif
+
+ bool is_classic_theme = !is_gtk_theme && theme_service->UsingDefaultTheme();
+ base::FundamentalValue enabled(!is_classic_theme);
+ web_ui()->CallJavascriptFunction("BrowserOptions.setThemesResetButtonEnabled",
+ enabled);
+}
+
+void BrowserOptionsHandler::ThemesReset(const ListValue* args) {
+ content::RecordAction(UserMetricsAction("Options_ThemesReset"));
+ Profile* profile = Profile::FromWebUI(web_ui());
+ ThemeServiceFactory::GetForProfile(profile)->UseDefaultTheme();
+}
+
+#if defined(TOOLKIT_GTK)
+void BrowserOptionsHandler::ThemesSetGTK(const ListValue* args) {
+ content::RecordAction(UserMetricsAction("Options_GtkThemeSet"));
+ Profile* profile = Profile::FromWebUI(web_ui());
+ ThemeServiceFactory::GetForProfile(profile)->SetNativeTheme();
+}
+#endif
+
+#if defined(OS_CHROMEOS)
+void BrowserOptionsHandler::UpdateAccountPicture() {
+ std::string email = chromeos::UserManager::Get()->logged_in_user().email();
+ if (!email.empty()) {
+ web_ui()->CallJavascriptFunction("BrowserOptions.updateAccountPicture");
+ base::StringValue email_value(email);
+ web_ui()->CallJavascriptFunction("BrowserOptions.updateAccountPicture",
+ email_value);
+ }
+}
+#endif
+
} // namespace options2
« 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