summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/ui/webui/settings
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-15 10:20:33 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-15 10:28:57 +0000
commitd17ea114e5ef69ad5d5d7413280a13e6428098aa (patch)
tree2c01a75df69f30d27b1432467cfe7c1467a498da /chromium/chrome/browser/ui/webui/settings
parent8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (diff)
BASELINE: Update Chromium to 67.0.3396.47
Change-Id: Idcb1341782e417561a2473eeecc82642dafda5b7 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/chrome/browser/ui/webui/settings')
-rw-r--r--chromium/chrome/browser/ui/webui/settings/about_handler.cc52
-rw-r--r--chromium/chrome/browser/ui/webui/settings/appearance_handler.cc20
-rw-r--r--chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc26
-rw-r--r--chromium/chrome/browser/ui/webui/settings/change_password_handler.cc9
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc13
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc26
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc147
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc1
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc124
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_browsertest.cc (renamed from chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_unittest.cc)185
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc17
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc17
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.cc25
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.h2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler_unittest.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc37
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc13
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/smb_handler.cc52
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/smb_handler.h37
-rw-r--r--chromium/chrome/browser/ui/webui/settings/downloads_handler.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/font_handler.cc13
-rw-r--r--chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/languages_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc140
-rw-r--r--chromium/chrome/browser/ui/webui/settings/md_settings_ui.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc15
-rw-r--r--chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc9
-rw-r--r--chromium/chrome/browser/ui/webui/settings/people_handler.cc224
-rw-r--r--chromium/chrome/browser/ui/webui/settings/people_handler.h26
-rw-r--r--chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc36
-rw-r--r--chromium/chrome/browser/ui/webui/settings/printing_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/printing_handler.h2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc9
-rw-r--r--chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc38
-rw-r--r--chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc46
-rw-r--r--chromium/chrome/browser/ui/webui/settings/safe_browsing_handler.cc37
-rw-r--r--chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc48
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc29
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_import_data_handler.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc57
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc77
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc36
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc78
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_handler.h4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/system_handler.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/settings/tts_handler.cc52
-rw-r--r--chromium/chrome/browser/ui/webui/settings/tts_handler.h35
59 files changed, 1201 insertions, 784 deletions
diff --git a/chromium/chrome/browser/ui/webui/settings/about_handler.cc b/chromium/chrome/browser/ui/webui/settings/about_handler.cc
index 0e22bfc93e3..787f802a743 100644
--- a/chromium/chrome/browser/ui/webui/settings/about_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/about_handler.cc
@@ -283,7 +283,7 @@ AboutHandler* AboutHandler::Create(content::WebUIDataSource* html_source,
l10n_util::GetStringUTF16(version_info::IsOfficialBuild()
? IDS_VERSION_UI_OFFICIAL
: IDS_VERSION_UI_UNOFFICIAL),
- base::UTF8ToUTF16(chrome::GetChannelString()),
+ base::UTF8ToUTF16(chrome::GetChannelName()),
#if defined(ARCH_CPU_64_BITS)
l10n_util::GetStringUTF16(IDS_VERSION_UI_64BIT)));
#else
@@ -346,42 +346,44 @@ AboutHandler* AboutHandler::Create(content::WebUIDataSource* html_source,
void AboutHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
- "aboutPageReady",
- base::Bind(&AboutHandler::HandlePageReady, base::Unretained(this)));
+ "aboutPageReady", base::BindRepeating(&AboutHandler::HandlePageReady,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"refreshUpdateStatus",
- base::Bind(&AboutHandler::HandleRefreshUpdateStatus,
- base::Unretained(this)));
+ base::BindRepeating(&AboutHandler::HandleRefreshUpdateStatus,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "openFeedbackDialog", base::Bind(&AboutHandler::HandleOpenFeedbackDialog,
- base::Unretained(this)));
+ "openFeedbackDialog",
+ base::BindRepeating(&AboutHandler::HandleOpenFeedbackDialog,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "openHelpPage",
- base::Bind(&AboutHandler::HandleOpenHelpPage, base::Unretained(this)));
+ "openHelpPage", base::BindRepeating(&AboutHandler::HandleOpenHelpPage,
+ base::Unretained(this)));
#if defined(OS_CHROMEOS)
web_ui()->RegisterMessageCallback(
- "setChannel",
- base::Bind(&AboutHandler::HandleSetChannel, base::Unretained(this)));
+ "setChannel", base::BindRepeating(&AboutHandler::HandleSetChannel,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "requestUpdate",
- base::Bind(&AboutHandler::HandleRequestUpdate, base::Unretained(this)));
+ "requestUpdate", base::BindRepeating(&AboutHandler::HandleRequestUpdate,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"requestUpdateOverCellular",
- base::Bind(&AboutHandler::HandleRequestUpdateOverCellular,
- base::Unretained(this)));
+ base::BindRepeating(&AboutHandler::HandleRequestUpdateOverCellular,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "getVersionInfo",
- base::Bind(&AboutHandler::HandleGetVersionInfo, base::Unretained(this)));
+ "getVersionInfo", base::BindRepeating(&AboutHandler::HandleGetVersionInfo,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "getRegulatoryInfo", base::Bind(&AboutHandler::HandleGetRegulatoryInfo,
- base::Unretained(this)));
+ "getRegulatoryInfo",
+ base::BindRepeating(&AboutHandler::HandleGetRegulatoryInfo,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "getChannelInfo", base::Bind(&AboutHandler::HandleGetChannelInfo,
- base::Unretained(this)));
+ "getChannelInfo", base::BindRepeating(&AboutHandler::HandleGetChannelInfo,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"refreshTPMFirmwareUpdateStatus",
- base::Bind(&AboutHandler::HandleRefreshTPMFirmwareUpdateStatus,
- base::Unretained(this)));
+ base::BindRepeating(&AboutHandler::HandleRefreshTPMFirmwareUpdateStatus,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getHasEndOfLife",
base::BindRepeating(&AboutHandler::HandleGetHasEndOfLife,
@@ -389,8 +391,8 @@ void AboutHandler::RegisterMessages() {
#endif
#if defined(OS_MACOSX)
web_ui()->RegisterMessageCallback(
- "promoteUpdater",
- base::Bind(&AboutHandler::PromoteUpdater, base::Unretained(this)));
+ "promoteUpdater", base::BindRepeating(&AboutHandler::PromoteUpdater,
+ base::Unretained(this)));
#endif
#if defined(OS_CHROMEOS)
diff --git a/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc b/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc
index 3e9bb1a4d96..ae92d569046 100644
--- a/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc
@@ -29,29 +29,29 @@ void AppearanceHandler::OnJavascriptDisallowed() {}
void AppearanceHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"useDefaultTheme",
- base::Bind(&AppearanceHandler::HandleUseDefaultTheme,
- base::Unretained(this)));
+ base::BindRepeating(&AppearanceHandler::HandleUseDefaultTheme,
+ base::Unretained(this)));
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
web_ui()->RegisterMessageCallback(
"useSystemTheme",
- base::Bind(&AppearanceHandler::HandleUseSystemTheme,
- base::Unretained(this)));
+ base::BindRepeating(&AppearanceHandler::HandleUseSystemTheme,
+ base::Unretained(this)));
#endif
#if defined(OS_CHROMEOS)
web_ui()->RegisterMessageCallback(
"openWallpaperManager",
- base::Bind(&AppearanceHandler::HandleOpenWallpaperManager,
- base::Unretained(this)));
+ base::BindRepeating(&AppearanceHandler::HandleOpenWallpaperManager,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"isWallpaperSettingVisible",
- base::Bind(&AppearanceHandler::IsWallpaperSettingVisible,
- base::Unretained(this)));
+ base::BindRepeating(&AppearanceHandler::IsWallpaperSettingVisible,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"isWallpaperPolicyControlled",
- base::Bind(&AppearanceHandler::IsWallpaperPolicyControlled,
- base::Unretained(this)));
+ base::BindRepeating(&AppearanceHandler::IsWallpaperPolicyControlled,
+ base::Unretained(this)));
#endif
}
diff --git a/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc b/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc
index 551123b58ae..c4eb7282a45 100644
--- a/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc
@@ -25,19 +25,21 @@ BrowserLifetimeHandler::BrowserLifetimeHandler() {}
BrowserLifetimeHandler::~BrowserLifetimeHandler() {}
void BrowserLifetimeHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback("restart",
- base::Bind(&BrowserLifetimeHandler::HandleRestart,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("relaunch",
- base::Bind(&BrowserLifetimeHandler::HandleRelaunch,
- base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "restart", base::BindRepeating(&BrowserLifetimeHandler::HandleRestart,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "relaunch", base::BindRepeating(&BrowserLifetimeHandler::HandleRelaunch,
+ base::Unretained(this)));
#if defined(OS_CHROMEOS)
- web_ui()->RegisterMessageCallback("signOutAndRestart",
- base::Bind(&BrowserLifetimeHandler::HandleSignOutAndRestart,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("factoryReset",
- base::Bind(&BrowserLifetimeHandler::HandleFactoryReset,
- base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "signOutAndRestart",
+ base::BindRepeating(&BrowserLifetimeHandler::HandleSignOutAndRestart,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "factoryReset",
+ base::BindRepeating(&BrowserLifetimeHandler::HandleFactoryReset,
+ base::Unretained(this)));
#endif // defined(OS_CHROMEOS)
}
diff --git a/chromium/chrome/browser/ui/webui/settings/change_password_handler.cc b/chromium/chrome/browser/ui/webui/settings/change_password_handler.cc
index a077bd75bd2..6d64f7bbd08 100644
--- a/chromium/chrome/browser/ui/webui/settings/change_password_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/change_password_handler.cc
@@ -26,11 +26,12 @@ ChangePasswordHandler::~ChangePasswordHandler() {}
void ChangePasswordHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"initializeChangePasswordHandler",
- base::Bind(&ChangePasswordHandler::HandleInitialize,
- base::Unretained(this)));
+ base::BindRepeating(&ChangePasswordHandler::HandleInitialize,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "changePassword", base::Bind(&ChangePasswordHandler::HandleChangePassword,
- base::Unretained(this)));
+ "changePassword",
+ base::BindRepeating(&ChangePasswordHandler::HandleChangePassword,
+ base::Unretained(this)));
}
void ChangePasswordHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
index a74053c73a4..43375c860ec 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
@@ -25,16 +25,17 @@ AccessibilityHandler::~AccessibilityHandler() {}
void AccessibilityHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"showChromeVoxSettings",
- base::Bind(&AccessibilityHandler::HandleShowChromeVoxSettings,
- base::Unretained(this)));
+ base::BindRepeating(&AccessibilityHandler::HandleShowChromeVoxSettings,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"showSelectToSpeakSettings",
- base::Bind(&AccessibilityHandler::HandleShowSelectToSpeakSettings,
- base::Unretained(this)));
+ base::BindRepeating(
+ &AccessibilityHandler::HandleShowSelectToSpeakSettings,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"showSwitchAccessSettings",
- base::Bind(&AccessibilityHandler::HandleShowSwitchAccessSettings,
- base::Unretained(this)));
+ base::BindRepeating(&AccessibilityHandler::HandleShowSwitchAccessSettings,
+ base::Unretained(this)));
}
void AccessibilityHandler::HandleShowChromeVoxSettings(
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
index 01baa407efa..1a3824cb28e 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
@@ -28,16 +28,16 @@ void AndroidAppsHandler::RegisterMessages() {
// Note: requestAndroidAppsInfo must be called before observers will be added.
web_ui()->RegisterMessageCallback(
"requestAndroidAppsInfo",
- base::Bind(&AndroidAppsHandler::HandleRequestAndroidAppsInfo,
- weak_ptr_factory_.GetWeakPtr()));
+ base::BindRepeating(&AndroidAppsHandler::HandleRequestAndroidAppsInfo,
+ weak_ptr_factory_.GetWeakPtr()));
web_ui()->RegisterMessageCallback(
"showAndroidAppsSettings",
- base::Bind(&AndroidAppsHandler::ShowAndroidAppsSettings,
- weak_ptr_factory_.GetWeakPtr()));
+ base::BindRepeating(&AndroidAppsHandler::ShowAndroidAppsSettings,
+ weak_ptr_factory_.GetWeakPtr()));
web_ui()->RegisterMessageCallback(
"showAndroidManageAppLinks",
- base::Bind(&AndroidAppsHandler::ShowAndroidManageAppLinks,
- weak_ptr_factory_.GetWeakPtr()));
+ base::BindRepeating(&AndroidAppsHandler::ShowAndroidManageAppLinks,
+ weak_ptr_factory_.GetWeakPtr()));
}
void AndroidAppsHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc
index 6a345261eb0..578bbdbb08e 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc
@@ -100,25 +100,27 @@ ChangePictureHandler::~ChangePictureHandler() {
void ChangePictureHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
- "chooseFile", base::Bind(&ChangePictureHandler::HandleChooseFile,
- base::Unretained(this)));
+ "chooseFile", base::BindRepeating(&ChangePictureHandler::HandleChooseFile,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "photoTaken", base::Bind(&ChangePictureHandler::HandlePhotoTaken,
- base::Unretained(this)));
+ "photoTaken", base::BindRepeating(&ChangePictureHandler::HandlePhotoTaken,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "discardPhoto", base::Bind(&ChangePictureHandler::HandleDiscardPhoto,
- base::Unretained(this)));
+ "discardPhoto",
+ base::BindRepeating(&ChangePictureHandler::HandleDiscardPhoto,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"onChangePicturePageInitialized",
- base::Bind(&ChangePictureHandler::HandlePageInitialized,
- base::Unretained(this)));
+ base::BindRepeating(&ChangePictureHandler::HandlePageInitialized,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "selectImage", base::Bind(&ChangePictureHandler::HandleSelectImage,
- base::Unretained(this)));
+ "selectImage",
+ base::BindRepeating(&ChangePictureHandler::HandleSelectImage,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"requestSelectedImage",
- base::Bind(&ChangePictureHandler::HandleRequestSelectedImage,
- base::Unretained(this)));
+ base::BindRepeating(&ChangePictureHandler::HandleRequestSelectedImage,
+ base::Unretained(this)));
}
void ChangePictureHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
index a535d490d14..942bd8bfbc4 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
@@ -37,6 +37,7 @@
#include "chromeos/printing/ppd_line_reader.h"
#include "chromeos/printing/ppd_provider.h"
#include "chromeos/printing/printer_configuration.h"
+#include "chromeos/printing/printer_translator.h"
#include "chromeos/printing/printing_constants.h"
#include "chromeos/printing/uri_components.h"
#include "content/public/browser/browser_context.h"
@@ -102,84 +103,6 @@ void QueryAutoconf(const std::string& printer_uri,
callback);
}
-// Create an empty CupsPrinterInfo dictionary value. It should be consistent
-// with the fields in js side. See cups_printers_browser_proxy.js for the
-// definition of CupsPrinterInfo.
-std::unique_ptr<base::DictionaryValue> CreateEmptyPrinterInfo() {
- std::unique_ptr<base::DictionaryValue> printer_info =
- std::make_unique<base::DictionaryValue>();
- printer_info->SetString("ppdManufacturer", "");
- printer_info->SetString("ppdModel", "");
- printer_info->SetString("printerAddress", "");
- printer_info->SetBoolean("printerAutoconf", false);
- printer_info->SetString("printerDescription", "");
- printer_info->SetString("printerId", "");
- printer_info->SetString("printerManufacturer", "");
- printer_info->SetString("printerModel", "");
- printer_info->SetString("printerMakeAndModel", "");
- printer_info->SetString("printerName", "");
- printer_info->SetString("printerPPDPath", "");
- printer_info->SetString("printerProtocol", "ipp");
- printer_info->SetString("printerQueue", "");
- printer_info->SetString("printerStatus", "");
- return printer_info;
-}
-
-// Formats a host and port string. The |port| portion is omitted if
-// it is unspecified or invalid.
-std::string PrinterAddress(const std::string& host, int port) {
- if (port != url::PORT_UNSPECIFIED && port != url::PORT_INVALID) {
- return base::StringPrintf("%s:%d", host.c_str(), port);
- }
-
- return host;
-}
-
-// Returns a JSON representation of |printer| as a CupsPrinterInfo. If the
-// printer uri cannot be parsed, the relevant fields are populated with default
-// values.
-std::unique_ptr<base::DictionaryValue> GetPrinterInfo(const Printer& printer) {
- std::unique_ptr<base::DictionaryValue> printer_info =
- CreateEmptyPrinterInfo();
- printer_info->SetString("printerId", printer.id());
- printer_info->SetString("printerName", printer.display_name());
- printer_info->SetString("printerDescription", printer.description());
- printer_info->SetString("printerManufacturer", printer.manufacturer());
- printer_info->SetString("printerModel", printer.model());
- printer_info->SetString("printerMakeAndModel", printer.make_and_model());
-
- auto optional = printer.GetUriComponents();
- if (!optional.has_value()) {
- // Uri is invalid so we set default values.
- LOG(WARNING) << "Could not parse uri. Defaulting values";
- printer_info->SetString("printerAddress", "");
- printer_info->SetString("printerQueue", "");
- printer_info->SetString("printerProtocol",
- "ipp"); // IPP is our default protocol.
- return printer_info;
- }
-
- UriComponents uri = optional.value();
-
- if (base::ToLowerASCII(uri.scheme()) == "usb") {
- // USB has URI path (and, maybe, query) components that aren't really
- // associated with a queue -- the mapping between printing semantics and URI
- // semantics breaks down a bit here. From the user's point of view, the
- // entire host/path/query block is the printer address for USB.
- printer_info->SetString("printerAddress",
- printer.uri().substr(strlen("usb://")));
- } else {
- printer_info->SetString("printerAddress",
- PrinterAddress(uri.host(), uri.port()));
- if (!uri.path().empty()) {
- printer_info->SetString("printerQueue", uri.path().substr(1));
- }
- }
- printer_info->SetString("printerProtocol", base::ToLowerASCII(uri.scheme()));
-
- return printer_info;
-}
-
// Extracts a sanitized value of printerQueue from |printer_dict|. Returns an
// empty string if the value was not present in the dictionary.
std::string GetPrinterQueue(const base::DictionaryValue& printer_dict) {
@@ -265,52 +188,58 @@ CupsPrintersHandler::~CupsPrintersHandler() {}
void CupsPrintersHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"getCupsPrintersList",
- base::Bind(&CupsPrintersHandler::HandleGetCupsPrintersList,
- base::Unretained(this)));
+ base::BindRepeating(&CupsPrintersHandler::HandleGetCupsPrintersList,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"updateCupsPrinter",
- base::Bind(&CupsPrintersHandler::HandleUpdateCupsPrinter,
- base::Unretained(this)));
+ base::BindRepeating(&CupsPrintersHandler::HandleUpdateCupsPrinter,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"removeCupsPrinter",
- base::Bind(&CupsPrintersHandler::HandleRemoveCupsPrinter,
- base::Unretained(this)));
+ base::BindRepeating(&CupsPrintersHandler::HandleRemoveCupsPrinter,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "addCupsPrinter", base::Bind(&CupsPrintersHandler::HandleAddCupsPrinter,
- base::Unretained(this)));
+ "addCupsPrinter",
+ base::BindRepeating(&CupsPrintersHandler::HandleAddCupsPrinter,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "getPrinterInfo", base::Bind(&CupsPrintersHandler::HandleGetPrinterInfo,
- base::Unretained(this)));
+ "getPrinterInfo",
+ base::BindRepeating(&CupsPrintersHandler::HandleGetPrinterInfo,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getCupsPrinterManufacturersList",
- base::Bind(&CupsPrintersHandler::HandleGetCupsPrinterManufacturers,
- base::Unretained(this)));
+ base::BindRepeating(
+ &CupsPrintersHandler::HandleGetCupsPrinterManufacturers,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getCupsPrinterModelsList",
- base::Bind(&CupsPrintersHandler::HandleGetCupsPrinterModels,
- base::Unretained(this)));
+ base::BindRepeating(&CupsPrintersHandler::HandleGetCupsPrinterModels,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "selectPPDFile", base::Bind(&CupsPrintersHandler::HandleSelectPPDFile,
- base::Unretained(this)));
+ "selectPPDFile",
+ base::BindRepeating(&CupsPrintersHandler::HandleSelectPPDFile,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"startDiscoveringPrinters",
- base::Bind(&CupsPrintersHandler::HandleStartDiscovery,
- base::Unretained(this)));
+ base::BindRepeating(&CupsPrintersHandler::HandleStartDiscovery,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"stopDiscoveringPrinters",
- base::Bind(&CupsPrintersHandler::HandleStopDiscovery,
- base::Unretained(this)));
+ base::BindRepeating(&CupsPrintersHandler::HandleStopDiscovery,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getPrinterPpdManufacturerAndModel",
- base::Bind(&CupsPrintersHandler::HandleGetPrinterPpdManufacturerAndModel,
- base::Unretained(this)));
+ base::BindRepeating(
+ &CupsPrintersHandler::HandleGetPrinterPpdManufacturerAndModel,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"addDiscoveredPrinter",
- base::Bind(&CupsPrintersHandler::HandleAddDiscoveredPrinter,
- base::Unretained(this)));
+ base::BindRepeating(&CupsPrintersHandler::HandleAddDiscoveredPrinter,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "cancelPrinterSetUp", base::Bind(&CupsPrintersHandler::HandleSetUpCancel,
- base::Unretained(this)));
+ "cancelPrinterSetUp",
+ base::BindRepeating(&CupsPrintersHandler::HandleSetUpCancel,
+ base::Unretained(this)));
}
void CupsPrintersHandler::OnJavascriptAllowed() {
@@ -336,7 +265,7 @@ void CupsPrintersHandler::HandleGetCupsPrintersList(
for (const Printer& printer : printers) {
// Some of these printers could be invalid but we want to allow the user
// to edit them. crbug.com/778383
- printers_list->Append(GetPrinterInfo(printer));
+ printers_list->Append(GetCupsPrinterInfo(printer));
}
auto response = std::make_unique<base::DictionaryValue>();
@@ -464,7 +393,7 @@ void CupsPrintersHandler::OnAutoconfQueriedDiscovered(
// much information as we can about the printer, and ask the user to supply
// the rest.
FireWebUIListener("on-manually-add-discovered-printer",
- *GetPrinterInfo(*printer));
+ *GetCupsPrinterInfo(*printer));
}
void CupsPrintersHandler::OnAutoconfQueried(const std::string& callback_id,
@@ -810,10 +739,10 @@ void CupsPrintersHandler::OnPrintersChanged(
std::unique_ptr<base::ListValue> printers_list =
std::make_unique<base::ListValue>();
for (const Printer& printer : automatic_printers_) {
- printers_list->Append(GetPrinterInfo(printer));
+ printers_list->Append(GetCupsPrinterInfo(printer));
}
for (const Printer& printer : discovered_printers_) {
- printers_list->Append(GetPrinterInfo(printer));
+ printers_list->Append(GetCupsPrinterInfo(printer));
}
FireWebUIListener("on-printer-discovered", *printers_list);
@@ -866,7 +795,7 @@ void CupsPrintersHandler::HandleAddDiscoveredPrinter(
} else {
// If it's not an IPP printer, the user must choose a PPD.
FireWebUIListener("on-manually-add-discovered-printer",
- *GetPrinterInfo(*printer));
+ *GetCupsPrinterInfo(*printer));
}
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc
index ffe094e20ee..901d006207d 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc
@@ -88,14 +88,16 @@ DateTimeHandler* DateTimeHandler::Create(
void DateTimeHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
- "dateTimePageReady", base::Bind(&DateTimeHandler::HandleDateTimePageReady,
- base::Unretained(this)));
+ "dateTimePageReady",
+ base::BindRepeating(&DateTimeHandler::HandleDateTimePageReady,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "getTimeZones",
- base::Bind(&DateTimeHandler::HandleGetTimeZones, base::Unretained(this)));
+ "getTimeZones", base::BindRepeating(&DateTimeHandler::HandleGetTimeZones,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "showSetDateTimeUI", base::Bind(&DateTimeHandler::HandleShowSetDateTimeUI,
- base::Unretained(this)));
+ "showSetDateTimeUI",
+ base::BindRepeating(&DateTimeHandler::HandleShowSetDateTimeUI,
+ base::Unretained(this)));
}
void DateTimeHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
index 53bf08503de..59a3f7f004d 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
@@ -46,12 +46,12 @@ KeyboardHandler::~KeyboardHandler() = default;
void KeyboardHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"initializeKeyboardSettings",
- base::Bind(&KeyboardHandler::HandleInitialize,
- base::Unretained(this)));
+ base::BindRepeating(&KeyboardHandler::HandleInitialize,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"showKeyboardShortcutsOverlay",
- base::Bind(&KeyboardHandler::HandleShowKeyboardShortcutsOverlay,
- base::Unretained(this)));
+ base::BindRepeating(&KeyboardHandler::HandleShowKeyboardShortcutsOverlay,
+ base::Unretained(this)));
}
void KeyboardHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc
index bbf2fa12df1..c875a4480ff 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc
@@ -9,7 +9,6 @@
#include "base/command_line.h"
#include "base/logging.h"
#include "base/macros.h"
-#include "base/memory/ptr_util.h"
#include "base/observer_list.h"
#include "chromeos/chromeos_switches.h"
#include "content/public/test/test_web_ui.h"
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc
index 061dad6d182..0f5933cc8a8 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc
@@ -18,7 +18,8 @@ PointerHandler::~PointerHandler() {}
void PointerHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"initializePointerSettings",
- base::Bind(&PointerHandler::HandleInitialize, base::Unretained(this)));
+ base::BindRepeating(&PointerHandler::HandleInitialize,
+ base::Unretained(this)));
}
void PointerHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
index c07cfbf1074..38957b75449 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
@@ -7,13 +7,13 @@
#include <memory>
#include <utility>
+#include "ash/public/cpp/ash_pref_names.h"
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "base/values.h"
-#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "components/prefs/pref_change_registrar.h"
@@ -89,22 +89,24 @@ PowerHandler::~PowerHandler() {}
void PowerHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
- "updatePowerStatus", base::Bind(&PowerHandler::HandleUpdatePowerStatus,
- base::Unretained(this)));
+ "updatePowerStatus",
+ base::BindRepeating(&PowerHandler::HandleUpdatePowerStatus,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "setPowerSource",
- base::Bind(&PowerHandler::HandleSetPowerSource, base::Unretained(this)));
+ "setPowerSource", base::BindRepeating(&PowerHandler::HandleSetPowerSource,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"requestPowerManagementSettings",
- base::Bind(&PowerHandler::HandleRequestPowerManagementSettings,
- base::Unretained(this)));
+ base::BindRepeating(&PowerHandler::HandleRequestPowerManagementSettings,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setLidClosedBehavior",
- base::Bind(&PowerHandler::HandleSetLidClosedBehavior,
- base::Unretained(this)));
+ base::BindRepeating(&PowerHandler::HandleSetLidClosedBehavior,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setIdleBehavior",
- base::Bind(&PowerHandler::HandleSetIdleBehavior, base::Unretained(this)));
+ base::BindRepeating(&PowerHandler::HandleSetIdleBehavior,
+ base::Unretained(this)));
}
void PowerHandler::OnJavascriptAllowed() {
@@ -121,15 +123,18 @@ void PowerHandler::OnJavascriptAllowed() {
base::Unretained(this), false /* force */));
pref_change_registrar_ = std::make_unique<PrefChangeRegistrar>();
pref_change_registrar_->Init(prefs_);
- pref_change_registrar_->Add(prefs::kPowerAcIdleAction, callback);
- pref_change_registrar_->Add(prefs::kPowerAcScreenDimDelayMs, callback);
- pref_change_registrar_->Add(prefs::kPowerAcScreenOffDelayMs, callback);
- pref_change_registrar_->Add(prefs::kPowerAcScreenLockDelayMs, callback);
- pref_change_registrar_->Add(prefs::kPowerBatteryIdleAction, callback);
- pref_change_registrar_->Add(prefs::kPowerBatteryScreenDimDelayMs, callback);
- pref_change_registrar_->Add(prefs::kPowerBatteryScreenOffDelayMs, callback);
- pref_change_registrar_->Add(prefs::kPowerBatteryScreenLockDelayMs, callback);
- pref_change_registrar_->Add(prefs::kPowerLidClosedAction, callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerAcIdleAction, callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerAcScreenDimDelayMs, callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerAcScreenOffDelayMs, callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerAcScreenLockDelayMs, callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerBatteryIdleAction, callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerBatteryScreenDimDelayMs,
+ callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerBatteryScreenOffDelayMs,
+ callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerBatteryScreenLockDelayMs,
+ callback);
+ pref_change_registrar_->Add(ash::prefs::kPowerLidClosedAction, callback);
}
void PowerHandler::OnJavascriptDisallowed() {
@@ -183,42 +188,42 @@ void PowerHandler::HandleSetIdleBehavior(const base::ListValue* args) {
case IdleBehavior::DISPLAY_OFF_SLEEP:
// The default behavior is to turn the display off and sleep. Clear the
// prefs so we use the default delays.
- prefs_->ClearPref(prefs::kPowerAcIdleAction);
- prefs_->ClearPref(prefs::kPowerAcScreenDimDelayMs);
- prefs_->ClearPref(prefs::kPowerAcScreenOffDelayMs);
- prefs_->ClearPref(prefs::kPowerAcScreenLockDelayMs);
- prefs_->ClearPref(prefs::kPowerBatteryIdleAction);
- prefs_->ClearPref(prefs::kPowerBatteryScreenDimDelayMs);
- prefs_->ClearPref(prefs::kPowerBatteryScreenOffDelayMs);
- prefs_->ClearPref(prefs::kPowerBatteryScreenLockDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerAcIdleAction);
+ prefs_->ClearPref(ash::prefs::kPowerAcScreenDimDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerAcScreenOffDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerAcScreenLockDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerBatteryIdleAction);
+ prefs_->ClearPref(ash::prefs::kPowerBatteryScreenDimDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerBatteryScreenOffDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerBatteryScreenLockDelayMs);
break;
case IdleBehavior::DISPLAY_OFF:
// Override idle actions to keep the system awake, but use the default
// screen delays.
- prefs_->SetInteger(prefs::kPowerAcIdleAction,
+ prefs_->SetInteger(ash::prefs::kPowerAcIdleAction,
PowerPolicyController::ACTION_DO_NOTHING);
- prefs_->ClearPref(prefs::kPowerAcScreenDimDelayMs);
- prefs_->ClearPref(prefs::kPowerAcScreenOffDelayMs);
- prefs_->ClearPref(prefs::kPowerAcScreenLockDelayMs);
- prefs_->SetInteger(prefs::kPowerBatteryIdleAction,
+ prefs_->ClearPref(ash::prefs::kPowerAcScreenDimDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerAcScreenOffDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerAcScreenLockDelayMs);
+ prefs_->SetInteger(ash::prefs::kPowerBatteryIdleAction,
PowerPolicyController::ACTION_DO_NOTHING);
- prefs_->ClearPref(prefs::kPowerBatteryScreenDimDelayMs);
- prefs_->ClearPref(prefs::kPowerBatteryScreenOffDelayMs);
- prefs_->ClearPref(prefs::kPowerBatteryScreenLockDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerBatteryScreenDimDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerBatteryScreenOffDelayMs);
+ prefs_->ClearPref(ash::prefs::kPowerBatteryScreenLockDelayMs);
break;
case IdleBehavior::DISPLAY_ON:
// Override idle actions and set screen delays to 0 in order to disable
// them (i.e. keep the screen on).
- prefs_->SetInteger(prefs::kPowerAcIdleAction,
+ prefs_->SetInteger(ash::prefs::kPowerAcIdleAction,
PowerPolicyController::ACTION_DO_NOTHING);
- prefs_->SetInteger(prefs::kPowerAcScreenDimDelayMs, 0);
- prefs_->SetInteger(prefs::kPowerAcScreenOffDelayMs, 0);
- prefs_->SetInteger(prefs::kPowerAcScreenLockDelayMs, 0);
- prefs_->SetInteger(prefs::kPowerBatteryIdleAction,
+ prefs_->SetInteger(ash::prefs::kPowerAcScreenDimDelayMs, 0);
+ prefs_->SetInteger(ash::prefs::kPowerAcScreenOffDelayMs, 0);
+ prefs_->SetInteger(ash::prefs::kPowerAcScreenLockDelayMs, 0);
+ prefs_->SetInteger(ash::prefs::kPowerBatteryIdleAction,
PowerPolicyController::ACTION_DO_NOTHING);
- prefs_->SetInteger(prefs::kPowerBatteryScreenDimDelayMs, 0);
- prefs_->SetInteger(prefs::kPowerBatteryScreenOffDelayMs, 0);
- prefs_->SetInteger(prefs::kPowerBatteryScreenLockDelayMs, 0);
+ prefs_->SetInteger(ash::prefs::kPowerBatteryScreenDimDelayMs, 0);
+ prefs_->SetInteger(ash::prefs::kPowerBatteryScreenOffDelayMs, 0);
+ prefs_->SetInteger(ash::prefs::kPowerBatteryScreenLockDelayMs, 0);
break;
default:
NOTREACHED() << "Invalid idle behavior " << value;
@@ -232,10 +237,10 @@ void PowerHandler::HandleSetLidClosedBehavior(const base::ListValue* args) {
CHECK(args->GetInteger(0, &value));
switch (static_cast<PowerPolicyController::Action>(value)) {
case PowerPolicyController::ACTION_SUSPEND:
- prefs_->ClearPref(prefs::kPowerLidClosedAction);
+ prefs_->ClearPref(ash::prefs::kPowerLidClosedAction);
break;
case PowerPolicyController::ACTION_DO_NOTHING:
- prefs_->SetInteger(prefs::kPowerLidClosedAction,
+ prefs_->SetInteger(ash::prefs::kPowerLidClosedAction,
PowerPolicyController::ACTION_DO_NOTHING);
break;
default:
@@ -300,31 +305,32 @@ void PowerHandler::SendPowerManagementSettings(bool force) {
// be able to display something meaningful in the UI in those cases anyway.
const PowerPolicyController::Action idle_action =
static_cast<PowerPolicyController::Action>(
- prefs_->GetInteger(prefs::kPowerAcIdleAction));
+ prefs_->GetInteger(ash::prefs::kPowerAcIdleAction));
IdleBehavior idle_behavior = IdleBehavior::OTHER;
if (idle_action == PowerPolicyController::ACTION_SUSPEND) {
idle_behavior = IdleBehavior::DISPLAY_OFF_SLEEP;
} else if (idle_action == PowerPolicyController::ACTION_DO_NOTHING) {
- idle_behavior = (prefs_->GetInteger(prefs::kPowerAcScreenOffDelayMs) > 0
- ? IdleBehavior::DISPLAY_OFF
- : IdleBehavior::DISPLAY_ON);
+ idle_behavior =
+ (prefs_->GetInteger(ash::prefs::kPowerAcScreenOffDelayMs) > 0
+ ? IdleBehavior::DISPLAY_OFF
+ : IdleBehavior::DISPLAY_ON);
}
const bool idle_controlled =
- prefs_->IsManagedPreference(prefs::kPowerAcIdleAction) ||
- prefs_->IsManagedPreference(prefs::kPowerAcScreenDimDelayMs) ||
- prefs_->IsManagedPreference(prefs::kPowerAcScreenOffDelayMs) ||
- prefs_->IsManagedPreference(prefs::kPowerAcScreenLockDelayMs) ||
- prefs_->IsManagedPreference(prefs::kPowerBatteryIdleAction) ||
- prefs_->IsManagedPreference(prefs::kPowerBatteryScreenDimDelayMs) ||
- prefs_->IsManagedPreference(prefs::kPowerBatteryScreenOffDelayMs) ||
- prefs_->IsManagedPreference(prefs::kPowerBatteryScreenLockDelayMs);
+ prefs_->IsManagedPreference(ash::prefs::kPowerAcIdleAction) ||
+ prefs_->IsManagedPreference(ash::prefs::kPowerAcScreenDimDelayMs) ||
+ prefs_->IsManagedPreference(ash::prefs::kPowerAcScreenOffDelayMs) ||
+ prefs_->IsManagedPreference(ash::prefs::kPowerAcScreenLockDelayMs) ||
+ prefs_->IsManagedPreference(ash::prefs::kPowerBatteryIdleAction) ||
+ prefs_->IsManagedPreference(ash::prefs::kPowerBatteryScreenDimDelayMs) ||
+ prefs_->IsManagedPreference(ash::prefs::kPowerBatteryScreenOffDelayMs) ||
+ prefs_->IsManagedPreference(ash::prefs::kPowerBatteryScreenLockDelayMs);
const PowerPolicyController::Action lid_closed_behavior =
static_cast<PowerPolicyController::Action>(
- prefs_->GetInteger(prefs::kPowerLidClosedAction));
+ prefs_->GetInteger(ash::prefs::kPowerLidClosedAction));
const bool lid_closed_controlled =
- prefs_->IsManagedPreference(prefs::kPowerLidClosedAction);
+ prefs_->IsManagedPreference(ash::prefs::kPowerLidClosedAction);
const bool has_lid = lid_state_ != PowerManagerClient::LidState::NOT_PRESENT;
// Don't notify the UI if nothing changed.
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_browsertest.cc
index 149c2b74fd1..edfc117d906 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_browsertest.cc
@@ -5,25 +5,40 @@
#include "chrome/browser/ui/webui/settings/chromeos/device_power_handler.h"
#include <memory>
+#include <utility>
-#include "ash/system/power/power_status.h"
+#include "ash/public/cpp/ash_pref_names.h"
#include "base/json/json_writer.h"
#include "base/macros.h"
#include "base/run_loop.h"
-#include "base/test/scoped_task_environment.h"
#include "base/values.h"
-#include "chrome/browser/chromeos/power/power_prefs.h"
-#include "chrome/common/pref_names.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/test/base/in_process_browser_test.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/fake_power_manager_client.h"
#include "chromeos/dbus/power_policy_controller.h"
-#include "components/sync_preferences/testing_pref_service_syncable.h"
+#include "components/policy/core/browser/browser_policy_connector.h"
+#include "components/policy/core/common/mock_configuration_policy_provider.h"
+#include "components/policy/policy_constants.h"
+#include "components/prefs/pref_service.h"
#include "content/public/test/test_web_ui.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
+using testing::Return;
+using testing::_;
+
namespace chromeos {
namespace settings {
+namespace {
+
+PrefService* GetPrefs() {
+ return ProfileManager::GetActiveUserProfile()->GetPrefs();
+}
+
+} // namespace
+
class TestPowerHandler : public PowerHandler {
public:
explicit TestPowerHandler(PrefService* prefs) : PowerHandler(prefs) {}
@@ -32,21 +47,24 @@ class TestPowerHandler : public PowerHandler {
using PowerHandler::set_web_ui;
};
-class PowerHandlerTest : public testing::Test {
- public:
- PowerHandlerTest() {
- // This initializes chromeos::DBusThreadManager.
- std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter =
- chromeos::DBusThreadManager::GetSetterForTesting();
- dbus_setter->SetPowerManagerClient(
- std::make_unique<chromeos::FakePowerManagerClient>());
- power_manager_client_ = static_cast<chromeos::FakePowerManagerClient*>(
- chromeos::DBusThreadManager::Get()->GetPowerManagerClient());
- ash::PowerStatus::Initialize();
-
- chromeos::PowerPrefs::RegisterUserProfilePrefs(prefs_.registry());
-
- handler_ = std::make_unique<TestPowerHandler>(&prefs_);
+class PowerHandlerTest : public InProcessBrowserTest {
+ protected:
+ PowerHandlerTest() = default;
+ ~PowerHandlerTest() override = default;
+
+ // InProcessBrowserTest:
+ void SetUpInProcessBrowserTestFixture() override {
+ power_manager_client_ = new chromeos::FakePowerManagerClient;
+ chromeos::DBusThreadManager::GetSetterForTesting()->SetPowerManagerClient(
+ base::WrapUnique(power_manager_client_));
+
+ // Initialize user policy.
+ ON_CALL(provider_, IsInitializationComplete(_)).WillByDefault(Return(true));
+ policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
+ }
+
+ void SetUpOnMainThread() override {
+ handler_ = std::make_unique<TestPowerHandler>(GetPrefs());
test_api_ = std::make_unique<PowerHandler::TestAPI>(handler_.get());
handler_->set_web_ui(&web_ui_);
handler_->RegisterMessages();
@@ -54,13 +72,11 @@ class PowerHandlerTest : public testing::Test {
base::RunLoop().RunUntilIdle();
}
- ~PowerHandlerTest() override {
+ void TearDownOnMainThread() override {
+ test_api_.reset();
handler_.reset();
- ash::PowerStatus::Shutdown();
- chromeos::DBusThreadManager::Shutdown();
}
- protected:
// Returns a JSON representation of the contents of the last message sent to
// WebUI about settings being changed.
std::string GetLastSettingsChangedMessage() WARN_UNUSED_RESULT {
@@ -113,13 +129,21 @@ class PowerHandlerTest : public testing::Test {
// Returns the user-set value of the integer pref identified by |name| or -1
// if the pref is unset.
int GetIntPref(const std::string& name) {
- const base::Value* value = prefs_.GetUserPref(name);
- return value ? value->GetInt() : -1;
+ if (!GetPrefs()->HasPrefPath(name))
+ return -1;
+ return GetPrefs()->GetInteger(name);
}
- base::test::ScopedTaskEnvironment scoped_task_environment_;
- sync_preferences::TestingPrefServiceSyncable prefs_;
- content::TestWebUI web_ui_;
+ // Sets a policy update which will cause power pref managed change.
+ void SetPolicyForPolicyKey(policy::PolicyMap* policy_map,
+ const std::string& policy_key,
+ std::unique_ptr<base::Value> value) {
+ policy_map->Set(policy_key, policy::POLICY_LEVEL_MANDATORY,
+ policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
+ std::move(value), nullptr);
+ provider_.UpdateChromePolicy(*policy_map);
+ base::RunLoop().RunUntilIdle();
+ }
// Owned by chromeos::DBusThreadManager.
chromeos::FakePowerManagerClient* power_manager_client_;
@@ -127,12 +151,16 @@ class PowerHandlerTest : public testing::Test {
std::unique_ptr<TestPowerHandler> handler_;
std::unique_ptr<TestPowerHandler::TestAPI> test_api_;
+ content::TestWebUI web_ui_;
+
+ policy::MockConfigurationPolicyProvider provider_;
+
private:
DISALLOW_COPY_AND_ASSIGN(PowerHandlerTest);
};
// Verifies that settings are sent to WebUI when requested.
-TEST_F(PowerHandlerTest, SendInitialSettings) {
+IN_PROC_BROWSER_TEST_F(PowerHandlerTest, SendInitialSettings) {
test_api_->RequestPowerManagementSettings();
EXPECT_EQ(
CreateSettingsChangedString(
@@ -143,7 +171,7 @@ TEST_F(PowerHandlerTest, SendInitialSettings) {
}
// Verifies that WebUI receives updated settings when the lid state changes.
-TEST_F(PowerHandlerTest, SendSettingsForLidStateChanges) {
+IN_PROC_BROWSER_TEST_F(PowerHandlerTest, SendSettingsForLidStateChanges) {
power_manager_client_->SetLidState(PowerManagerClient::LidState::NOT_PRESENT,
base::TimeTicks());
EXPECT_EQ(
@@ -165,10 +193,11 @@ TEST_F(PowerHandlerTest, SendSettingsForLidStateChanges) {
// Verifies that when various prefs are controlled, the corresponding settings
// are reported as controlled to WebUI.
-TEST_F(PowerHandlerTest, SendSettingsForControlledPrefs) {
+IN_PROC_BROWSER_TEST_F(PowerHandlerTest, SendSettingsForControlledPrefs) {
+ policy::PolicyMap policy_map;
// Making an arbitrary delay pref managed should result in the idle setting
// being reported as controlled.
- prefs_.SetManagedPref(prefs::kPowerAcScreenDimDelayMs,
+ SetPolicyForPolicyKey(&policy_map, policy::key::kScreenDimDelayAC,
std::make_unique<base::Value>(10000));
EXPECT_EQ(
CreateSettingsChangedString(
@@ -178,8 +207,8 @@ TEST_F(PowerHandlerTest, SendSettingsForControlledPrefs) {
GetLastSettingsChangedMessage());
// Ditto for making the lid action pref managed.
- prefs_.SetManagedPref(
- prefs::kPowerLidClosedAction,
+ SetPolicyForPolicyKey(
+ &policy_map, policy::key::kLidCloseAction,
std::make_unique<base::Value>(PowerPolicyController::ACTION_SUSPEND));
EXPECT_EQ(
CreateSettingsChangedString(
@@ -191,13 +220,11 @@ TEST_F(PowerHandlerTest, SendSettingsForControlledPrefs) {
// Verifies that idle-related prefs are distilled into the proper WebUI
// settings.
-TEST_F(PowerHandlerTest, SendIdleSettingForPrefChanges) {
+IN_PROC_BROWSER_TEST_F(PowerHandlerTest, SendIdleSettingForPrefChanges) {
// Set a do-nothing idle action and a nonzero screen-off delay.
- prefs_.SetUserPref(
- prefs::kPowerAcIdleAction,
- std::make_unique<base::Value>(PowerPolicyController::ACTION_DO_NOTHING));
- prefs_.SetUserPref(prefs::kPowerAcScreenOffDelayMs,
- std::make_unique<base::Value>(10000));
+ GetPrefs()->Set(ash::prefs::kPowerAcIdleAction,
+ base::Value(PowerPolicyController::ACTION_DO_NOTHING));
+ GetPrefs()->Set(ash::prefs::kPowerAcScreenOffDelayMs, base::Value(10000));
EXPECT_EQ(CreateSettingsChangedString(PowerHandler::IdleBehavior::DISPLAY_OFF,
false /* idle_controlled */,
PowerPolicyController::ACTION_SUSPEND,
@@ -206,8 +233,7 @@ TEST_F(PowerHandlerTest, SendIdleSettingForPrefChanges) {
GetLastSettingsChangedMessage());
// Now set the delay to zero and check that the setting goes to "display on".
- prefs_.SetUserPref(prefs::kPowerAcScreenOffDelayMs,
- std::make_unique<base::Value>(0));
+ GetPrefs()->Set(ash::prefs::kPowerAcScreenOffDelayMs, base::Value(0));
EXPECT_EQ(CreateSettingsChangedString(PowerHandler::IdleBehavior::DISPLAY_ON,
false /* idle_controlled */,
PowerPolicyController::ACTION_SUSPEND,
@@ -216,9 +242,8 @@ TEST_F(PowerHandlerTest, SendIdleSettingForPrefChanges) {
GetLastSettingsChangedMessage());
// Other idle actions should result in an "other" setting.
- prefs_.SetUserPref(prefs::kPowerAcIdleAction,
- std::make_unique<base::Value>(
- PowerPolicyController::ACTION_STOP_SESSION));
+ GetPrefs()->Set(ash::prefs::kPowerAcIdleAction,
+ base::Value(PowerPolicyController::ACTION_STOP_SESSION));
EXPECT_EQ(CreateSettingsChangedString(
PowerHandler::IdleBehavior::OTHER, false /* idle_controlled */,
PowerPolicyController::ACTION_SUSPEND,
@@ -227,10 +252,9 @@ TEST_F(PowerHandlerTest, SendIdleSettingForPrefChanges) {
}
// Verifies that the lid-closed pref's value is sent directly to WebUI.
-TEST_F(PowerHandlerTest, SendLidSettingForPrefChanges) {
- prefs_.SetUserPref(
- prefs::kPowerLidClosedAction,
- std::make_unique<base::Value>(PowerPolicyController::ACTION_SHUT_DOWN));
+IN_PROC_BROWSER_TEST_F(PowerHandlerTest, SendLidSettingForPrefChanges) {
+ GetPrefs()->Set(ash::prefs::kPowerLidClosedAction,
+ base::Value(PowerPolicyController::ACTION_SHUT_DOWN));
EXPECT_EQ(
CreateSettingsChangedString(
PowerHandler::IdleBehavior::DISPLAY_OFF_SLEEP,
@@ -238,9 +262,8 @@ TEST_F(PowerHandlerTest, SendLidSettingForPrefChanges) {
false /* lid_closed_controlled */, true /* has_lid */),
GetLastSettingsChangedMessage());
- prefs_.SetUserPref(prefs::kPowerLidClosedAction,
- std::make_unique<base::Value>(
- PowerPolicyController::ACTION_STOP_SESSION));
+ GetPrefs()->Set(ash::prefs::kPowerLidClosedAction,
+ base::Value(PowerPolicyController::ACTION_STOP_SESSION));
EXPECT_EQ(CreateSettingsChangedString(
PowerHandler::IdleBehavior::DISPLAY_OFF_SLEEP,
false /* idle_controlled */,
@@ -251,59 +274,59 @@ TEST_F(PowerHandlerTest, SendLidSettingForPrefChanges) {
// Verifies that requests from WebUI to update the idle behavior update prefs
// appropriately.
-TEST_F(PowerHandlerTest, SetIdleBehavior) {
+IN_PROC_BROWSER_TEST_F(PowerHandlerTest, SetIdleBehavior) {
// Request the "Keep display on" setting and check that prefs are set
// appropriately.
test_api_->SetIdleBehavior(PowerHandler::IdleBehavior::DISPLAY_ON);
EXPECT_EQ(PowerPolicyController::ACTION_DO_NOTHING,
- GetIntPref(prefs::kPowerAcIdleAction));
- EXPECT_EQ(0, GetIntPref(prefs::kPowerAcScreenDimDelayMs));
- EXPECT_EQ(0, GetIntPref(prefs::kPowerAcScreenOffDelayMs));
- EXPECT_EQ(0, GetIntPref(prefs::kPowerAcScreenLockDelayMs));
+ GetIntPref(ash::prefs::kPowerAcIdleAction));
+ EXPECT_EQ(0, GetIntPref(ash::prefs::kPowerAcScreenDimDelayMs));
+ EXPECT_EQ(0, GetIntPref(ash::prefs::kPowerAcScreenOffDelayMs));
+ EXPECT_EQ(0, GetIntPref(ash::prefs::kPowerAcScreenLockDelayMs));
EXPECT_EQ(PowerPolicyController::ACTION_DO_NOTHING,
- GetIntPref(prefs::kPowerBatteryIdleAction));
- EXPECT_EQ(0, GetIntPref(prefs::kPowerBatteryScreenDimDelayMs));
- EXPECT_EQ(0, GetIntPref(prefs::kPowerBatteryScreenOffDelayMs));
- EXPECT_EQ(0, GetIntPref(prefs::kPowerBatteryScreenLockDelayMs));
+ GetIntPref(ash::prefs::kPowerBatteryIdleAction));
+ EXPECT_EQ(0, GetIntPref(ash::prefs::kPowerBatteryScreenDimDelayMs));
+ EXPECT_EQ(0, GetIntPref(ash::prefs::kPowerBatteryScreenOffDelayMs));
+ EXPECT_EQ(0, GetIntPref(ash::prefs::kPowerBatteryScreenLockDelayMs));
// "Turn off display" should set the idle prefs but clear the screen
// delays.
test_api_->SetIdleBehavior(PowerHandler::IdleBehavior::DISPLAY_OFF);
EXPECT_EQ(PowerPolicyController::ACTION_DO_NOTHING,
- GetIntPref(prefs::kPowerAcIdleAction));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerAcScreenDimDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerAcScreenOffDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerAcScreenLockDelayMs));
+ GetIntPref(ash::prefs::kPowerAcIdleAction));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerAcScreenDimDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerAcScreenOffDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerAcScreenLockDelayMs));
EXPECT_EQ(PowerPolicyController::ACTION_DO_NOTHING,
- GetIntPref(prefs::kPowerBatteryIdleAction));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerBatteryScreenDimDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerBatteryScreenOffDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerBatteryScreenLockDelayMs));
+ GetIntPref(ash::prefs::kPowerBatteryIdleAction));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerBatteryScreenDimDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerBatteryScreenOffDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerBatteryScreenLockDelayMs));
// Now switch to the "Keep display on" setting (to set the prefs again) and
// check that the "Turn off display and sleep" setting clears all the prefs.
test_api_->SetIdleBehavior(PowerHandler::IdleBehavior::DISPLAY_ON);
test_api_->SetIdleBehavior(PowerHandler::IdleBehavior::DISPLAY_OFF_SLEEP);
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerAcIdleAction));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerAcScreenDimDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerAcScreenOffDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerAcScreenLockDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerBatteryIdleAction));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerBatteryScreenDimDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerBatteryScreenOffDelayMs));
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerBatteryScreenLockDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerAcIdleAction));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerAcScreenDimDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerAcScreenOffDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerAcScreenLockDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerBatteryIdleAction));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerBatteryScreenDimDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerBatteryScreenOffDelayMs));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerBatteryScreenLockDelayMs));
}
// Verifies that requests from WebUI to change the lid behavior update the pref.
-TEST_F(PowerHandlerTest, SetLidBehavior) {
+IN_PROC_BROWSER_TEST_F(PowerHandlerTest, SetLidBehavior) {
// The "do nothing" setting should update the pref.
test_api_->SetLidClosedBehavior(PowerPolicyController::ACTION_DO_NOTHING);
EXPECT_EQ(PowerPolicyController::ACTION_DO_NOTHING,
- GetIntPref(prefs::kPowerLidClosedAction));
+ GetIntPref(ash::prefs::kPowerLidClosedAction));
// Selecting the "suspend" setting should just clear the pref.
test_api_->SetLidClosedBehavior(PowerPolicyController::ACTION_SUSPEND);
- EXPECT_EQ(-1, GetIntPref(prefs::kPowerLidClosedAction));
+ EXPECT_EQ(-1, GetIntPref(ash::prefs::kPowerLidClosedAction));
}
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
index 4ff2b1c8713..04fe8449120 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
@@ -84,20 +84,19 @@ void StorageHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"updateStorageInfo",
- base::Bind(&StorageHandler::HandleUpdateStorageInfo,
- base::Unretained(this)));
+ base::BindRepeating(&StorageHandler::HandleUpdateStorageInfo,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "openDownloads",
- base::Bind(&StorageHandler::HandleOpenDownloads,
- base::Unretained(this)));
+ "openDownloads", base::BindRepeating(&StorageHandler::HandleOpenDownloads,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"openArcStorage",
- base::Bind(&StorageHandler::HandleOpenArcStorage,
- base::Unretained(this)));
+ base::BindRepeating(&StorageHandler::HandleOpenArcStorage,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"clearDriveCache",
- base::Bind(&StorageHandler::HandleClearDriveCache,
- base::Unretained(this)));
+ base::BindRepeating(&StorageHandler::HandleClearDriveCache,
+ base::Unretained(this)));
}
void StorageHandler::HandleUpdateStorageInfo(const base::ListValue* args) {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
index 61283919498..e2891671dcb 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
@@ -40,22 +40,25 @@ void StylusHandler::RegisterMessages() {
// added.
web_ui()->RegisterMessageCallback(
"initializeStylusSettings",
- base::Bind(&StylusHandler::HandleInitialize, base::Unretained(this)));
+ base::BindRepeating(&StylusHandler::HandleInitialize,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"requestNoteTakingApps",
- base::Bind(&StylusHandler::HandleRequestApps, base::Unretained(this)));
+ base::BindRepeating(&StylusHandler::HandleRequestApps,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setPreferredNoteTakingApp",
- base::Bind(&StylusHandler::HandleSetPreferredNoteTakingApp,
- base::Unretained(this)));
+ base::BindRepeating(&StylusHandler::HandleSetPreferredNoteTakingApp,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setPreferredNoteTakingAppEnabledOnLockScreen",
- base::Bind(
+ base::BindRepeating(
&StylusHandler::HandleSetPreferredNoteTakingAppEnabledOnLockScreen,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "showPlayStoreApps", base::Bind(&StylusHandler::HandleShowPlayStoreApps,
- base::Unretained(this)));
+ "showPlayStoreApps",
+ base::BindRepeating(&StylusHandler::HandleShowPlayStoreApps,
+ base::Unretained(this)));
}
void StylusHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.cc
index d19dc511e04..2735420c270 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.cc
@@ -10,10 +10,10 @@
#include "base/command_line.h"
#include "base/macros.h"
#include "base/values.h"
+#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_service.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/signin/easy_unlock_service.h"
#include "chrome/common/pref_names.h"
-#include "components/proximity_auth/switches.h"
+#include "chromeos/components/proximity_auth/switches.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
@@ -50,24 +50,25 @@ EasyUnlockSettingsHandler* EasyUnlockSettingsHandler::Create(
void EasyUnlockSettingsHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"easyUnlockGetEnabledStatus",
- base::Bind(&EasyUnlockSettingsHandler::HandleGetEnabledStatus,
- base::Unretained(this)));
+ base::BindRepeating(&EasyUnlockSettingsHandler::HandleGetEnabledStatus,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"easyUnlockStartTurnOnFlow",
- base::Bind(&EasyUnlockSettingsHandler::HandleStartTurnOnFlow,
- base::Unretained(this)));
+ base::BindRepeating(&EasyUnlockSettingsHandler::HandleStartTurnOnFlow,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"easyUnlockGetTurnOffFlowStatus",
- base::Bind(&EasyUnlockSettingsHandler::HandleGetTurnOffFlowStatus,
- base::Unretained(this)));
+ base::BindRepeating(
+ &EasyUnlockSettingsHandler::HandleGetTurnOffFlowStatus,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"easyUnlockStartTurnOffFlow",
- base::Bind(&EasyUnlockSettingsHandler::HandleStartTurnOffFlow,
- base::Unretained(this)));
+ base::BindRepeating(&EasyUnlockSettingsHandler::HandleStartTurnOffFlow,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"easyUnlockCancelTurnOffFlow",
- base::Bind(&EasyUnlockSettingsHandler::HandleCancelTurnOffFlow,
- base::Unretained(this)));
+ base::BindRepeating(&EasyUnlockSettingsHandler::HandleCancelTurnOffFlow,
+ base::Unretained(this)));
}
void EasyUnlockSettingsHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.h
index 3fb3706c524..e4509d75036 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler.h
@@ -6,7 +6,7 @@
#define CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_EASY_UNLOCK_SETTINGS_HANDLER_H_
#include "base/macros.h"
-#include "chrome/browser/signin/easy_unlock_service_observer.h"
+#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_observer.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "components/prefs/pref_change_registrar.h"
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler_unittest.cc
index 862267270ce..ea6babfcfad 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler_unittest.cc
@@ -6,8 +6,8 @@
#include <memory>
-#include "chrome/browser/signin/easy_unlock_service.h"
-#include "chrome/browser/signin/easy_unlock_service_factory.h"
+#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_service.h"
+#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.h"
#include "chrome/test/base/testing_profile.h"
#include "content/public/browser/web_ui_data_source.h"
#include "content/public/test/test_browser_thread_bundle.h"
@@ -56,10 +56,6 @@ class FakeEasyUnlockService : public EasyUnlockService {
Type GetType() const override { return TYPE_REGULAR; }
AccountId GetAccountId() const override { return EmptyAccountId(); }
void LaunchSetup() override {}
- const base::DictionaryValue* GetPermitAccess() const override {
- return nullptr;
- }
- void SetPermitAccess(const base::DictionaryValue& permit) override {}
void ClearPermitAccess() override {}
const base::ListValue* GetRemoteDevices() const override { return nullptr; }
@@ -71,8 +67,6 @@ class FakeEasyUnlockService : public EasyUnlockService {
void RecordEasySignInOutcome(const AccountId& account_id,
bool success) const override {}
void RecordPasswordLoginEvent(const AccountId& account_id) const override {}
- void StartAutoPairing(const AutoPairingResultCallback& callback) override {}
- void SetAutoPairingResult(bool success, const std::string& error) override {}
void InitializeInternal() override {}
void ShutdownInternal() override {}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
index a97d004c949..bd4ef59c956 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
@@ -72,40 +72,39 @@ void FingerprintHandler::RegisterMessages() {
// Note: getFingerprintsList must be called before observers will be added.
web_ui()->RegisterMessageCallback(
"getFingerprintsList",
- base::Bind(&FingerprintHandler::HandleGetFingerprintsList,
- base::Unretained(this)));
+ base::BindRepeating(&FingerprintHandler::HandleGetFingerprintsList,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getNumFingerprints",
- base::Bind(&FingerprintHandler::HandleGetNumFingerprints,
- base::Unretained(this)));
+ base::BindRepeating(&FingerprintHandler::HandleGetNumFingerprints,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "startEnroll",
- base::Bind(&FingerprintHandler::HandleStartEnroll,
- base::Unretained(this)));
+ "startEnroll", base::BindRepeating(&FingerprintHandler::HandleStartEnroll,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"cancelCurrentEnroll",
- base::Bind(&FingerprintHandler::HandleCancelCurrentEnroll,
- base::Unretained(this)));
+ base::BindRepeating(&FingerprintHandler::HandleCancelCurrentEnroll,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getEnrollmentLabel",
- base::Bind(&FingerprintHandler::HandleGetEnrollmentLabel,
- base::Unretained(this)));
+ base::BindRepeating(&FingerprintHandler::HandleGetEnrollmentLabel,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"removeEnrollment",
- base::Bind(&FingerprintHandler::HandleRemoveEnrollment,
- base::Unretained(this)));
+ base::BindRepeating(&FingerprintHandler::HandleRemoveEnrollment,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"changeEnrollmentLabel",
- base::Bind(&FingerprintHandler::HandleChangeEnrollmentLabel,
- base::Unretained(this)));
+ base::BindRepeating(&FingerprintHandler::HandleChangeEnrollmentLabel,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"startAuthentication",
- base::Bind(&FingerprintHandler::HandleStartAuthentication,
- base::Unretained(this)));
+ base::BindRepeating(&FingerprintHandler::HandleStartAuthentication,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"endCurrentAuthentication",
- base::Bind(&FingerprintHandler::HandleEndCurrentAuthentication,
- base::Unretained(this)));
+ base::BindRepeating(&FingerprintHandler::HandleEndCurrentAuthentication,
+ base::Unretained(this)));
}
void FingerprintHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc
index a6ddb49d02e..f9263067b4a 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc
@@ -27,21 +27,23 @@ void GoogleAssistantHandler::OnJavascriptDisallowed() {}
void GoogleAssistantHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"setGoogleAssistantEnabled",
- base::Bind(&GoogleAssistantHandler::HandleSetGoogleAssistantEnabled,
- base::Unretained(this)));
+ base::BindRepeating(
+ &GoogleAssistantHandler::HandleSetGoogleAssistantEnabled,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setGoogleAssistantContextEnabled",
- base::Bind(
+ base::BindRepeating(
&GoogleAssistantHandler::HandleSetGoogleAssistantContextEnabled,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"showGoogleAssistantSettings",
- base::Bind(&GoogleAssistantHandler::HandleShowGoogleAssistantSettings,
- base::Unretained(this)));
+ base::BindRepeating(
+ &GoogleAssistantHandler::HandleShowGoogleAssistantSettings,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"turnOnGoogleAssistant",
- base::Bind(&GoogleAssistantHandler::HandleTurnOnGoogleAssistant,
- base::Unretained(this)));
+ base::BindRepeating(&GoogleAssistantHandler::HandleTurnOnGoogleAssistant,
+ base::Unretained(this)));
}
void GoogleAssistantHandler::HandleSetGoogleAssistantEnabled(
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
index 38e54c5a8e3..8367559e562 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
@@ -96,18 +96,19 @@ void InternetHandler::RegisterMessages() {
// TODO(stevenjb): Eliminate once network configuration UI is integrated
// into settings.
web_ui()->RegisterMessageCallback(
- kAddNetworkMessage,
- base::Bind(&InternetHandler::AddNetwork, base::Unretained(this)));
+ kAddNetworkMessage, base::BindRepeating(&InternetHandler::AddNetwork,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
kConfigureNetworkMessage,
- base::Bind(&InternetHandler::ConfigureNetwork, base::Unretained(this)));
+ base::BindRepeating(&InternetHandler::ConfigureNetwork,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
kRequestArcVpnProviders,
- base::Bind(&InternetHandler::RequestArcVpnProviders,
- base::Unretained(this)));
+ base::BindRepeating(&InternetHandler::RequestArcVpnProviders,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
kRequestGmsCoreNotificationsDisabledDeviceNames,
- base::Bind(
+ base::BindRepeating(
&InternetHandler::RequestGmsCoreNotificationsDisabledDeviceNames,
base::Unretained(this)));
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/smb_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/smb_handler.cc
new file mode 100644
index 00000000000..5c6c73a6477
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/smb_handler.cc
@@ -0,0 +1,52 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/settings/chromeos/smb_handler.h"
+
+#include <string>
+#include <utility>
+
+#include "base/bind.h"
+#include "base/values.h"
+#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/chromeos/smb_client/smb_service.h"
+#include "chrome/browser/profiles/profile.h"
+
+namespace {
+void DoNothingCallback(base::File::Error error) {
+ return;
+}
+} // namespace
+
+namespace chromeos {
+namespace settings {
+
+SmbHandler::SmbHandler(Profile* profile) : profile_(profile) {}
+
+SmbHandler::~SmbHandler() = default;
+
+void SmbHandler::RegisterMessages() {
+ web_ui()->RegisterMessageCallback(
+ "smbMount",
+ base::BindRepeating(&SmbHandler::HandleSmbMount, base::Unretained(this)));
+}
+
+void SmbHandler::HandleSmbMount(const base::ListValue* args) {
+ CHECK_EQ(1U, args->GetSize());
+ std::string mountUrl;
+ CHECK(args->GetString(0, &mountUrl));
+
+ chromeos::smb_client::SmbService* const service =
+ chromeos::smb_client::SmbService::Get(profile_);
+
+ chromeos::file_system_provider::MountOptions mo;
+ mo.display_name = mountUrl;
+ mo.writable = true;
+
+ service->Mount(mo, base::FilePath(mountUrl),
+ base::BindOnce(&DoNothingCallback));
+}
+
+} // namespace settings
+} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/smb_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/smb_handler.h
new file mode 100644
index 00000000000..fc7e14637c4
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/smb_handler.h
@@ -0,0 +1,37 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_SMB_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_SMB_HANDLER_H_
+
+#include "base/macros.h"
+#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
+
+class Profile;
+
+namespace chromeos {
+namespace settings {
+
+class SmbHandler : public ::settings::SettingsPageUIHandler {
+ public:
+ explicit SmbHandler(Profile* profile);
+ ~SmbHandler() override;
+
+ void RegisterMessages() override;
+ void OnJavascriptAllowed() override {}
+ void OnJavascriptDisallowed() override {}
+
+ private:
+ // WebUI call to mount an Smb Filesystem.
+ void HandleSmbMount(const base::ListValue* args);
+
+ Profile* const profile_;
+
+ DISALLOW_COPY_AND_ASSIGN(SmbHandler);
+};
+
+} // namespace settings
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_SMB_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/settings/downloads_handler.cc b/chromium/chrome/browser/ui/webui/settings/downloads_handler.cc
index b5ab983a438..4e45994d152 100644
--- a/chromium/chrome/browser/ui/webui/settings/downloads_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/downloads_handler.cc
@@ -34,15 +34,16 @@ DownloadsHandler::~DownloadsHandler() {
void DownloadsHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"initializeDownloads",
- base::Bind(&DownloadsHandler::HandleInitialize, base::Unretained(this)));
+ base::BindRepeating(&DownloadsHandler::HandleInitialize,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"resetAutoOpenFileTypes",
- base::Bind(&DownloadsHandler::HandleResetAutoOpenFileTypes,
- base::Unretained(this)));
+ base::BindRepeating(&DownloadsHandler::HandleResetAutoOpenFileTypes,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"selectDownloadLocation",
- base::Bind(&DownloadsHandler::HandleSelectDownloadLocation,
- base::Unretained(this)));
+ base::BindRepeating(&DownloadsHandler::HandleSelectDownloadLocation,
+ base::Unretained(this)));
}
void DownloadsHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc b/chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc
index a7c9d72622c..7f5a1b27042 100644
--- a/chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc
@@ -19,9 +19,10 @@ ExtensionControlHandler::ExtensionControlHandler() {}
ExtensionControlHandler::~ExtensionControlHandler() {}
void ExtensionControlHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback("disableExtension",
- base::Bind(&ExtensionControlHandler::HandleDisableExtension,
- base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "disableExtension",
+ base::BindRepeating(&ExtensionControlHandler::HandleDisableExtension,
+ base::Unretained(this)));
}
void ExtensionControlHandler::HandleDisableExtension(
diff --git a/chromium/chrome/browser/ui/webui/settings/font_handler.cc b/chromium/chrome/browser/ui/webui/settings/font_handler.cc
index abd118e6a53..037d0a5b3a4 100644
--- a/chromium/chrome/browser/ui/webui/settings/font_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/font_handler.cc
@@ -51,16 +51,17 @@ FontHandler::~FontHandler() {}
void FontHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
- "fetchFontsData", base::Bind(&FontHandler::HandleFetchFontsData,
- base::Unretained(this)));
+ "fetchFontsData", base::BindRepeating(&FontHandler::HandleFetchFontsData,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"observeAdvancedFontExtensionAvailable",
- base::Bind(&FontHandler::HandleObserveAdvancedFontExtensionAvailable,
- base::Unretained(this)));
+ base::BindRepeating(
+ &FontHandler::HandleObserveAdvancedFontExtensionAvailable,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"openAdvancedFontSettings",
- base::Bind(&FontHandler::HandleOpenAdvancedFontSettings,
- base::Unretained(this)));
+ base::BindRepeating(&FontHandler::HandleOpenAdvancedFontSettings,
+ base::Unretained(this)));
}
void FontHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc b/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc
index af1646f42db..4772084b860 100644
--- a/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc
+++ b/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc
@@ -148,7 +148,7 @@ void IncompatibleApplicationsHandler::GetPluralString(
const base::Value& callback_id = args->GetList()[0];
int num_applications = args->GetList()[1].GetInt();
- DCHECK_GT(0, num_applications);
+ DCHECK_GT(num_applications, 0);
ResolveJavascriptCallback(
callback_id,
diff --git a/chromium/chrome/browser/ui/webui/settings/languages_handler.cc b/chromium/chrome/browser/ui/webui/settings/languages_handler.cc
index 2f98827ad2d..b36e7442a2d 100644
--- a/chromium/chrome/browser/ui/webui/settings/languages_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/languages_handler.cc
@@ -31,12 +31,12 @@ LanguagesHandler::~LanguagesHandler() {
void LanguagesHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"getProspectiveUILanguage",
- base::Bind(&LanguagesHandler::HandleGetProspectiveUILanguage,
- base::Unretained(this)));
+ base::BindRepeating(&LanguagesHandler::HandleGetProspectiveUILanguage,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setProspectiveUILanguage",
- base::Bind(&LanguagesHandler::HandleSetProspectiveUILanguage,
- base::Unretained(this)));
+ base::BindRepeating(&LanguagesHandler::HandleSetProspectiveUILanguage,
+ base::Unretained(this)));
}
void LanguagesHandler::HandleGetProspectiveUILanguage(
diff --git a/chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
index 1c76ec475ac..1d14df0f557 100644
--- a/chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
+++ b/chromium/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -29,10 +29,11 @@
#include "components/google/core/browser/google_util.h"
#include "components/password_manager/core/browser/password_manager_constants.h"
#include "components/safe_browsing/common/safe_browsing_prefs.h"
-#include "components/signin/core/browser/signin_features.h"
+#include "components/signin/core/browser/signin_buildflags.h"
#include "components/strings/grit/components_strings.h"
#include "components/subresource_filter/core/browser/subresource_filter_features.h"
#include "content/public/browser/web_ui_data_source.h"
+#include "content/public/common/content_features.h"
#include "services/device/public/cpp/device_features.h"
#include "ui/base/l10n/l10n_util.h"
@@ -128,6 +129,7 @@ void AddCommonStrings(content::WebUIDataSource* html_source, Profile* profile) {
{"moreActions", IDS_SETTINGS_MORE_ACTIONS},
{"ok", IDS_OK},
{"restart", IDS_SETTINGS_RESTART},
+ {"retry", IDS_SETTINGS_RETRY},
{"save", IDS_SAVE},
{"settings", IDS_SETTINGS_SETTINGS},
{"toggleOn", IDS_SETTINGS_TOGGLE_ON},
@@ -151,18 +153,6 @@ void AddCommonStrings(content::WebUIDataSource* html_source, Profile* profile) {
}
void AddA11yStrings(content::WebUIDataSource* html_source) {
-#if defined(OS_CHROMEOS)
- // The content description for select to speak is dependent on a flag
- // until a feature launch.
- // TODO(katie): When the feature is approved, remove this variable and
- // callback. The feature will be always enabled.
- int selectToSpeakDescription =
- (base::CommandLine::ForCurrentProcess()->HasSwitch(
- chromeos::switches::kEnableExperimentalAccessibilityFeatures))
- ? IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_DESCRIPTION_FLAGS
- : IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_DESCRIPTION;
-#endif
-
LocalizedString localized_strings[] = {
{"a11yPageTitle", IDS_SETTINGS_ACCESSIBILITY},
{"a11yWebStore", IDS_SETTINGS_ACCESSIBILITY_WEB_STORE},
@@ -214,7 +204,8 @@ void AddA11yStrings(content::WebUIDataSource* html_source) {
{"focusHighlightLabel",
IDS_SETTINGS_ACCESSIBILITY_FOCUS_HIGHLIGHT_DESCRIPTION},
{"selectToSpeakTitle", IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_TITLE},
- {"selectToSpeakDescription", selectToSpeakDescription},
+ {"selectToSpeakDescription",
+ IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_DESCRIPTION},
{"selectToSpeakOptionsLabel",
IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_OPTIONS_LABEL},
{"switchAccessLabel", IDS_SETTINGS_ACCESSIBILITY_SWITCH_ACCESS_DESCRIPTION},
@@ -244,15 +235,33 @@ void AddA11yStrings(content::WebUIDataSource* html_source) {
{"audioHeading", IDS_SETTINGS_ACCESSIBILITY_AUDIO_HEADING},
{"additionalFeaturesTitle",
IDS_SETTINGS_ACCESSIBILITY_ADDITIONAL_FEATURES_TITLE},
+ {"manageTtsSettings", IDS_SETTINGS_MANAGE_TTS_SETTINGS},
+ {"ttsSettingsLinkDescription", IDS_SETTINGS_TTS_LINK_DESCRIPTION},
+ {"textToSpeechVoices", IDS_SETTINGS_TEXT_TO_SPEECH_VOICES},
+ {"textToSpeechProperties", IDS_SETTINGS_TEXT_TO_SPEECH_PROPERTIES},
+ {"textToSpeechRate", IDS_SETTINGS_TEXT_TO_SPEECH_RATE},
+ {"textToSpeechPitch", IDS_SETTINGS_TEXT_TO_SPEECH_PITCH},
+ {"textToSpeechPreviewHeading", IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_HEADING},
+ {"textToSpeechPreviewInputLabel",
+ IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_INPUT_LABEL},
+ {"textToSpeechPreviewInput", IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_INPUT},
+ {"textToSpeechPreviewPlay", IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_PLAY},
+ {"textToSpeechEngines", IDS_SETTINGS_TEXT_TO_SPEECH_ENGINES},
+ {"textToSpeechInstallEngines", IDS_SETTINGS_TEXT_TO_SPEECH_INSTALL_ENGINES},
+ {"manageGoogleTtsEngineSettings",
+ IDS_SETTINGS_MANAGE_GOOGLE_TTS_ENGINE_SETTINGS},
+ {"googleTtsEngineSettingsLinkDescription",
+ IDS_SETTINGS_GOOGLE_TTS_ENGINE_LINK_DESCRIPTION},
+ {"googleTextToSpeechSettings", IDS_SETTINGS_GOOGLE_TTS_ENGINE_TITLE},
+ {"enableTtsVoiceLabel", IDS_SETTINGS_ENABLE_TTS_VOICE_LABEL},
#endif
};
AddLocalizedStringsBulk(html_source, localized_strings,
arraysize(localized_strings));
#if defined(OS_CHROMEOS)
- html_source->AddString(
- "a11yLearnMoreUrl",
- GetHelpUrlWithBoard(chrome::kChromeAccessibilityHelpURL));
+ html_source->AddString("a11yLearnMoreUrl",
+ chrome::kChromeAccessibilityHelpURL);
html_source->AddBoolean(
"showExperimentalA11yFeatures",
@@ -466,7 +475,7 @@ void AddChangePasswordStrings(content::WebUIDataSource* html_source) {
arraysize(localized_strings));
const std::string icon_id =
- show_softer_warning ? "settings:security" : "cr:warning";
+ show_softer_warning ? "cr:security" : "cr:warning";
html_source->AddString("changePasswordPageIcon", icon_id);
#endif
}
@@ -672,7 +681,13 @@ void AddDeviceStrings(content::WebUIDataSource* html_source) {
{"displayResolutionTextBest", IDS_SETTINGS_DISPLAY_RESOLUTION_TEXT_BEST},
{"displayResolutionTextNative",
IDS_SETTINGS_DISPLAY_RESOLUTION_TEXT_NATIVE},
+ {"displayResolutionSublabel", IDS_SETTINGS_DISPLAY_RESOLUTION_SUBLABEL},
+ {"displayResolutionMenuItem", IDS_SETTINGS_DISPLAY_RESOLUTION_MENU_ITEM},
+ {"displayZoomTitle", IDS_SETTINGS_DISPLAY_ZOOM_TITLE},
+ {"displayZoomSublabel", IDS_SETTINGS_DISPLAY_ZOOM_SUBLABEL},
{"displayZoomValue", IDS_SETTINGS_DISPLAY_ZOOM_VALUE},
+ {"displaySizeSliderMinLabel", IDS_SETTINGS_DISPLAY_ZOOM_SLIDER_MINIMUM},
+ {"displaySizeSliderMaxLabel", IDS_SETTINGS_DISPLAY_ZOOM_SLIDER_MAXIMUM},
{"displayScreenTitle", IDS_SETTINGS_DISPLAY_SCREEN},
{"displayScreenExtended", IDS_SETTINGS_DISPLAY_SCREEN_EXTENDED},
{"displayScreenPrimary", IDS_SETTINGS_DISPLAY_SCREEN_PRIMARY},
@@ -705,8 +720,7 @@ void AddDeviceStrings(content::WebUIDataSource* html_source) {
chromeos::switches::kEnableTouchCalibrationSetting));
html_source->AddBoolean("enableDisplayZoomSetting",
- base::CommandLine::ForCurrentProcess()->HasSwitch(
- chromeos::switches::kEnableDisplayZoomSetting));
+ features::IsDisplayZoomSettingEnabled());
html_source->AddBoolean("hasExternalTouchDevice",
display::HasExternalTouchscreenDevice());
@@ -772,15 +786,27 @@ void AddDeviceStrings(content::WebUIDataSource* html_source) {
void AddDownloadsStrings(content::WebUIDataSource* html_source) {
LocalizedString localized_strings[] = {
- {"downloadsPageTitle", IDS_SETTINGS_DOWNLOADS},
- {"downloadLocation", IDS_SETTINGS_DOWNLOAD_LOCATION},
- {"changeDownloadLocation", IDS_SETTINGS_CHANGE_DOWNLOAD_LOCATION},
- {"promptForDownload", IDS_SETTINGS_PROMPT_FOR_DOWNLOAD},
- {"disconnectGoogleDriveAccount", IDS_SETTINGS_DISCONNECT_GOOGLE_DRIVE},
- {"openFileTypesAutomatically",
- IDS_SETTINGS_OPEN_FILE_TYPES_AUTOMATICALLY}};
+ {"downloadsPageTitle", IDS_SETTINGS_DOWNLOADS},
+ {"downloadLocation", IDS_SETTINGS_DOWNLOAD_LOCATION},
+ {"changeDownloadLocation", IDS_SETTINGS_CHANGE_DOWNLOAD_LOCATION},
+ {"promptForDownload", IDS_SETTINGS_PROMPT_FOR_DOWNLOAD},
+ {"disconnectGoogleDriveAccount", IDS_SETTINGS_DISCONNECT_GOOGLE_DRIVE},
+ {"openFileTypesAutomatically", IDS_SETTINGS_OPEN_FILE_TYPES_AUTOMATICALLY},
+#if defined(OS_CHROMEOS)
+ {"smbSharesTitle", IDS_SETTINGS_DOWNLOADS_SMB_SHARES},
+ {"smbSharesLearnMoreLabel",
+ IDS_SETTINGS_DOWNLOADS_SMB_SHARES_LEARN_MORE_LABEL},
+ {"addSmbShare", IDS_SETTINGS_DOWNLOADS_SMB_SHARES_ADD_SHARE},
+ {"smbShareUrl", IDS_SETTINGS_DOWNLOADS_ADD_SHARE_URL},
+#endif
+ };
AddLocalizedStringsBulk(html_source, localized_strings,
arraysize(localized_strings));
+
+#if defined(OS_CHROMEOS)
+ html_source->AddBoolean("enableNativeSmbSetting",
+ base::FeatureList::IsEnabled(features::kNativeSmb));
+#endif
}
#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
@@ -805,7 +831,11 @@ void AddChromeCleanupStrings(content::WebUIDataSource* html_source) {
{"chromeCleanupExplanationPermissionsNeeded",
IDS_SETTINGS_RESET_CLEANUP_EXPLANATION_PERMISSIONS_NEEDED},
{"chromeCleanupExplanationRemove",
- IDS_SETTINGS_RESET_CLEANUP_EXPLANATION_REMOVE},
+ // Note: removal explanation should be the same as used in the prompt
+ // dialog. Reusing the string to ensure they will not diverge.
+ IDS_CHROME_CLEANUP_PROMPT_EXPLANATION},
+ {"chromeCleanupExplanationRemoving",
+ IDS_SETTINGS_RESET_CLEANUP_EXPLANATION_CURRENTLY_REMOVING},
{"chromeCleanupExplanationScanError",
IDS_SETTINGS_RESET_CLEANUP_EXPLANATION_SCAN_ERROR},
{"chromeCleanupFindButtonLable",
@@ -905,14 +935,12 @@ void AddResetStrings(content::WebUIDataSource* html_source) {
#else
{"resetPageTitle", IDS_SETTINGS_RESET},
#endif
- {"resetTrigger", IDS_SETTINGS_RESET},
- {"resetTriggerDescription",
- IDS_SETTINGS_RESET_PROFILE_SETTINGS_DESCRIPTION},
+ {"resetTrigger", IDS_SETTINGS_RESET_SETTINGS_TRIGGER},
{"resetPageExplanation", IDS_RESET_PROFILE_SETTINGS_EXPLANATION},
{"triggeredResetPageExplanation",
IDS_TRIGGERED_RESET_PROFILE_SETTINGS_EXPLANATION},
{"triggeredResetPageTitle", IDS_TRIGGERED_RESET_PROFILE_SETTINGS_TITLE},
- {"resetPageCommit", IDS_RESET_PROFILE_SETTINGS_COMMIT_BUTTON},
+ {"resetDialogCommit", IDS_SETTINGS_RESET},
{"resetPageFeedback", IDS_SETTINGS_RESET_PROFILE_FEEDBACK},
#if defined(OS_CHROMEOS)
{"powerwashTitle", IDS_SETTINGS_FACTORY_RESET},
@@ -1015,7 +1043,6 @@ void AddEasyUnlockStrings(content::WebUIDataSource* html_source) {
IDS_SETTINGS_EASY_UNLOCK_TURN_OFF_ERROR_TITLE},
{"easyUnlockTurnOffErrorMessage",
IDS_SETTINGS_EASY_UNLOCK_TURN_OFF_ERROR_MESSAGE},
- {"easyUnlockTurnOffRetryButton", IDS_SETTINGS_EASY_UNLOCK_TURN_OFF_RETRY},
{"easyUnlockAllowSignInLabel",
IDS_SETTINGS_EASY_UNLOCK_ALLOW_SIGN_IN_LABEL},
{"easyUnlockProximityThresholdLabel",
@@ -1244,6 +1271,10 @@ void AddLanguagesStrings(content::WebUIDataSource* html_source) {
{"noCustomDictionaryWordsFound",
IDS_SETTINGS_LANGUAGES_DICTIONARY_WORDS_NONE},
{"spellCheckDisabled", IDS_SETTINGS_LANGUAGES_SPELL_CHECK_DISABLED},
+ {"languagesDictionaryDownloadError",
+ IDS_SETTINGS_LANGUAGES_DICTIONARY_DOWNLOAD_FAILED},
+ {"languagesDictionaryDownloadErrorHelp",
+ IDS_SETTINGS_LANGUAGES_DICTIONARY_DOWNLOAD_FAILED_HELP},
#endif
};
AddLocalizedStringsBulk(html_source, localized_strings,
@@ -1361,6 +1392,9 @@ void AddPasswordsAndFormsStrings(content::WebUIDataSource* html_source) {
{"exportMenuItem", IDS_SETTINGS_PASSWORDS_EXPORT_MENU_ITEM},
{"undoRemovePassword", IDS_SETTINGS_PASSWORD_UNDO},
{"passwordDeleted", IDS_SETTINGS_PASSWORD_DELETED_PASSWORD},
+ {"passwordRowMoreActionsButton", IDS_SETTINGS_PASSWORD_ROW_MORE_ACTIONS},
+ {"passwordRowFederatedMoreActionsButton",
+ IDS_SETTINGS_PASSWORD_ROW_FEDERATED_MORE_ACTIONS},
{"exportPasswordsTitle", IDS_SETTINGS_PASSWORDS_EXPORT_TITLE},
{"exportPasswordsDescription", IDS_SETTINGS_PASSWORDS_EXPORT_DESCRIPTION},
{"exportPasswords", IDS_SETTINGS_PASSWORDS_EXPORT},
@@ -1452,7 +1486,7 @@ void AddPeopleStrings(content::WebUIDataSource* html_source, Profile* profile) {
IDS_SETTINGS_PEOPLE_LOCK_SCREEN_FINGERPRINT_SUBPAGE_TITLE},
{"lockScreenFingerprintWarning",
IDS_SETTINGS_PEOPLE_LOCK_SCREEN_FINGERPRINT_LESS_SECURE},
- {"lockScreenOptions", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_OPTIONS},
+ {"lockScreenOptions", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_OPTIONS_LOCK},
{"lockScreenPasswordOnly", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_PASSWORD_ONLY},
{"lockScreenPinOrPassword",
IDS_SETTINGS_PEOPLE_LOCK_SCREEN_PIN_OR_PASSWORD},
@@ -1460,9 +1494,9 @@ void AddPeopleStrings(content::WebUIDataSource* html_source, Profile* profile) {
IDS_SETTINGS_PEOPLE_LOCK_SCREEN_REGISTERED_FINGERPRINTS_LABEL},
{"lockScreenSetupPinButton",
IDS_SETTINGS_PEOPLE_LOCK_SCREEN_SETUP_PIN_BUTTON},
- {"lockScreenTitle", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_TITLE},
+ {"lockScreenTitle", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_TITLE_LOCK},
{"passwordPromptEnterPassword",
- IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_ENTER_PASSWORD},
+ IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_ENTER_PASSWORD_LOCK},
{"passwordPromptInvalidPassword",
IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_INVALID_PASSWORD},
{"passwordPromptPasswordLabel",
@@ -1494,6 +1528,9 @@ void AddPeopleStrings(content::WebUIDataSource* html_source, Profile* profile) {
{"editPerson", IDS_SETTINGS_EDIT_PERSON},
{"profileNameAndPicture", IDS_SETTINGS_PROFILE_NAME_AND_PICTURE},
{"showShortcutLabel", IDS_SETTINGS_PROFILE_SHORTCUT_TOGGLE_LABEL},
+ {"syncWillStart", IDS_SETTINGS_SYNC_WILL_START},
+ {"syncSettingsSavedToast", IDS_SETTINGS_SYNC_SETTINGS_SAVED_TOAST_LABEL},
+ {"cancelSync", IDS_SETTINGS_SYNC_SETTINGS_CANCEL_SYNC},
#endif // defined(OS_CHROMEOS)
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
{"peopleSignIn", IDS_SETTINGS_PEOPLE_SIGN_IN},
@@ -1502,8 +1539,12 @@ void AddPeopleStrings(content::WebUIDataSource* html_source, Profile* profile) {
IDS_SETTINGS_PEOPLE_SIGN_IN_PROMPT_SECONDARY},
{"useAnotherAccount", IDS_SETTINGS_PEOPLE_SYNC_ANOTHER_ACCOUNT},
{"syncAsName", IDS_SETTINGS_PEOPLE_SYNC_AS_NAME},
- {"syncedToName", IDS_SETTINGS_PEOPLE_SYNCED_AS_NAME},
+ {"syncingTo", IDS_SETTINGS_PEOPLE_SYNCING_TO_ACCOUNT},
{"turnOffSync", IDS_SETTINGS_PEOPLE_SYNC_TURN_OFF},
+ {"syncNotWorking", IDS_SETTINGS_PEOPLE_SYNC_NOT_WORKING},
+ {"syncPaused", IDS_SETTINGS_PEOPLE_SYNC_PAUSED},
+ {"syncSignInPrompt", IDS_SETTINGS_SYNC_SIGN_IN_PROMPT},
+ {"syncSignInPromptSecondary", IDS_SETTINGS_SYNC_SIGN_IN_PROMPT_SECONDARY},
#endif
{"syncOverview", IDS_SETTINGS_SYNC_OVERVIEW},
{"syncDisabledByAdministrator",
@@ -1524,6 +1565,9 @@ void AddPeopleStrings(content::WebUIDataSource* html_source, Profile* profile) {
{"syncDisconnectExplanation", IDS_SETTINGS_SYNC_DISCONNECT_EXPLANATION},
{"syncDisconnectConfirm", IDS_SETTINGS_SYNC_DISCONNECT_CONFIRM},
{"sync", IDS_SETTINGS_SYNC},
+ {"syncDescription", IDS_SETTINGS_SYNC_DESCRIPTION},
+ {"syncExpandA11yLabel", IDS_SETTINGS_SYNC_SECTION_ACCESSIBILITY_LABEL},
+ {"syncAndPersonalization", IDS_SETTINGS_SYNC_SYNC_AND_PERSONALIZATION},
{"syncPageTitle", IDS_SETTINGS_SYNC_PAGE_TITLE},
{"syncLoading", IDS_SETTINGS_SYNC_LOADING},
{"syncTimeout", IDS_SETTINGS_SYNC_TIMEOUT},
@@ -2041,6 +2085,11 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsMidiDevicesBlock",
IDS_SETTINGS_SITE_SETTINGS_MIDI_DEVICES_BLOCK},
{"siteSettingsUsbDevices", IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES},
+ {"siteSettingsUsbDevicesAsk", IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES_ASK},
+ {"siteSettingsUsbDevicesAskRecommended",
+ IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES_ASK_RECOMMENDED},
+ {"siteSettingsUsbDevicesBlock",
+ IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES_BLOCK},
{"siteSettingsRemoveZoomLevel",
IDS_SETTINGS_SITE_SETTINGS_REMOVE_ZOOM_LEVEL},
{"siteSettingsZoomLevels", IDS_SETTINGS_SITE_SETTINGS_ZOOM_LEVELS},
@@ -2179,6 +2228,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsAdsBlock", IDS_SETTINGS_SITE_SETTINGS_ADS_BLOCK},
{"siteSettingsAdsBlockRecommended",
IDS_SETTINGS_SITE_SETTINGS_ADS_BLOCK_RECOMMENDED},
+ {"siteSettingsPaymentHandler", IDS_SETTINGS_SITE_SETTINGS_PAYMENT_HANDLER},
+ {"siteSettingsPaymentHandlerAllow",
+ IDS_SETTINGS_SITE_SETTINGS_PAYMENT_HANDLER_ALLOW},
+ {"siteSettingsPaymentHandlerAllowRecommended",
+ IDS_SETTINGS_SITE_SETTINGS_PAYMENT_HANDLER_ALLOW_RECOMMENDED},
+ {"siteSettingsPaymentHandlerBlock",
+ IDS_SETTINGS_SITE_SETTINGS_PAYMENT_HANDLER_BLOCK},
};
AddLocalizedStringsBulk(html_source, localized_strings,
arraysize(localized_strings));
@@ -2203,6 +2259,10 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
"enableSensorsContentSetting",
base::FeatureList::IsEnabled(features::kGenericSensorExtraClasses));
+ html_source->AddBoolean(
+ "enablePaymentHandlerContentSetting",
+ base::FeatureList::IsEnabled(features::kServiceWorkerPaymentApps));
+
if (PluginUtils::ShouldPreferHtmlOverPlugins(
HostContentSettingsMapFactory::GetForProfile(profile))) {
LocalizedString flash_strings[] = {
@@ -2307,6 +2367,11 @@ void AddMultideviceStrings(content::WebUIDataSource* html_source) {
}
#endif
+void AddExtensionsStrings(content::WebUIDataSource* html_source) {
+ html_source->AddLocalizedString("extensionsPageTitle",
+ IDS_SETTINGS_EXTENSIONS_CHECKBOX_LABEL);
+}
+
} // namespace
void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -2355,6 +2420,7 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
AddImportDataStrings(html_source);
AddSystemStrings(html_source);
#endif
+ AddExtensionsStrings(html_source);
#if defined(USE_NSS_CERTS)
certificate_manager::AddLocalizedStrings(html_source);
diff --git a/chromium/chrome/browser/ui/webui/settings/md_settings_ui.cc b/chromium/chrome/browser/ui/webui/settings/md_settings_ui.cc
index c3d1a1d2812..f8e4ae44148 100644
--- a/chromium/chrome/browser/ui/webui/settings/md_settings_ui.cc
+++ b/chromium/chrome/browser/ui/webui/settings/md_settings_ui.cc
@@ -14,6 +14,7 @@
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/signin/unified_consent_helper.h"
#include "chrome/browser/ui/webui/metrics_handler.h"
#include "chrome/browser/ui/webui/settings/about_handler.h"
#include "chrome/browser/ui/webui/settings/appearance_handler.h"
@@ -47,7 +48,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
-#include "printing/features/features.h"
+#include "printing/buildflags/buildflags.h"
#if defined(OS_WIN)
#include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.h"
@@ -63,6 +64,7 @@
#if defined(OS_WIN) || defined(OS_CHROMEOS)
#include "chrome/browser/ui/webui/settings/languages_handler.h"
+#include "chrome/browser/ui/webui/settings/tts_handler.h"
#endif // defined(OS_WIN) || defined(OS_CHROMEOS)
#if defined(OS_CHROMEOS)
@@ -84,6 +86,7 @@
#include "chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.h"
#include "chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h"
#include "chrome/browser/ui/webui/settings/chromeos/internet_handler.h"
+#include "chrome/browser/ui/webui/settings/chromeos/smb_handler.h"
#include "chrome/common/chrome_switches.h"
#include "chromeos/chromeos_switches.h"
#include "components/arc/arc_util.h"
@@ -185,11 +188,14 @@ MdSettingsUI::MdSettingsUI(content::WebUI* web_ui)
AddSettingsPageUIHandler(
std::make_unique<chromeos::settings::PointerHandler>());
AddSettingsPageUIHandler(
+ std::make_unique<chromeos::settings::SmbHandler>(profile));
+ AddSettingsPageUIHandler(
std::make_unique<chromeos::settings::StorageHandler>());
AddSettingsPageUIHandler(
std::make_unique<chromeos::settings::StylusHandler>());
AddSettingsPageUIHandler(
std::make_unique<chromeos::settings::InternetHandler>(profile));
+ AddSettingsPageUIHandler(std::make_unique<TtsHandler>());
#else
AddSettingsPageUIHandler(std::make_unique<DefaultBrowserHandler>(web_ui));
AddSettingsPageUIHandler(std::make_unique<ManageProfileHandler>(profile));
@@ -302,6 +308,9 @@ MdSettingsUI::MdSettingsUI(content::WebUI* web_ui)
signin::IsDiceEnabledForProfile(profile->GetPrefs()));
#endif // defined(OS_CHROMEOS)
+ html_source->AddBoolean("unifiedConsentEnabled",
+ IsUnifiedConsentEnabled(profile));
+
html_source->AddBoolean("showExportPasswords",
base::FeatureList::IsEnabled(
password_manager::features::kPasswordExport));
diff --git a/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc b/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc
index def21ea78e0..7d8fb6922a8 100644
--- a/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc
@@ -23,12 +23,15 @@ MetricsReportingHandler::MetricsReportingHandler() {}
MetricsReportingHandler::~MetricsReportingHandler() {}
void MetricsReportingHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback("getMetricsReporting",
- base::Bind(&MetricsReportingHandler::HandleGetMetricsReporting,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("setMetricsReportingEnabled",
- base::Bind(&MetricsReportingHandler::HandleSetMetricsReportingEnabled,
- base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "getMetricsReporting",
+ base::BindRepeating(&MetricsReportingHandler::HandleGetMetricsReporting,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "setMetricsReportingEnabled",
+ base::BindRepeating(
+ &MetricsReportingHandler::HandleSetMetricsReportingEnabled,
+ base::Unretained(this)));
}
void MetricsReportingHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc b/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc
index 4661e32a12a..63776d6187a 100644
--- a/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc
@@ -19,8 +19,9 @@ NativeCertificatesHandler::~NativeCertificatesHandler() {}
void NativeCertificatesHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"showManageSSLCertificates",
- base::Bind(&NativeCertificatesHandler::HandleShowManageSSLCertificates,
- base::Unretained(this)));
+ base::BindRepeating(
+ &NativeCertificatesHandler::HandleShowManageSSLCertificates,
+ base::Unretained(this)));
}
void NativeCertificatesHandler::HandleShowManageSSLCertificates(
diff --git a/chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc b/chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc
index fe50a556468..48ae4623565 100644
--- a/chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc
@@ -41,12 +41,13 @@ void OnStartupHandler::OnJavascriptDisallowed() {
void OnStartupHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
- "getNtpExtension", base::Bind(&OnStartupHandler::HandleGetNtpExtension,
- base::Unretained(this)));
+ "getNtpExtension",
+ base::BindRepeating(&OnStartupHandler::HandleGetNtpExtension,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"validateStartupPage",
- base::Bind(&OnStartupHandler::HandleValidateStartupPage,
- base::Unretained(this)));
+ base::BindRepeating(&OnStartupHandler::HandleValidateStartupPage,
+ base::Unretained(this)));
}
void OnStartupHandler::OnExtensionUnloaded(
diff --git a/chromium/chrome/browser/ui/webui/settings/people_handler.cc b/chromium/chrome/browser/ui/webui/settings/people_handler.cc
index 8c8cddf5897..23e8d1044e0 100644
--- a/chromium/chrome/browser/ui/webui/settings/people_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/people_handler.cc
@@ -25,6 +25,7 @@
#include "chrome/browser/signin/signin_manager_factory.h"
#include "chrome/browser/signin/signin_promo.h"
#include "chrome/browser/signin/signin_ui_util.h"
+#include "chrome/browser/signin/unified_consent_helper.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/browser/sync/sync_ui_util.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -207,7 +208,8 @@ PeopleHandler::~PeopleHandler() {
if (!web_ui())
return;
- // This case is hit when the user performs a back navigation.
+ // Note that if the user left the sync page by closing the tab, refresh,
+ // or via the back navigation, it would first go through OnDidClosePage().
CloseSyncSetup();
}
@@ -215,35 +217,46 @@ void PeopleHandler::RegisterMessages() {
InitializeSyncBlocker();
web_ui()->RegisterMessageCallback(
"SyncSetupDidClosePage",
- base::Bind(&PeopleHandler::OnDidClosePage, base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::OnDidClosePage,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"SyncSetupSetDatatypes",
- base::Bind(&PeopleHandler::HandleSetDatatypes, base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::HandleSetDatatypes,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "SyncSetupSetSyncEverything",
+ base::BindRepeating(&PeopleHandler::HandleSetSyncEverything,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"SyncSetupSetEncryption",
- base::Bind(&PeopleHandler::HandleSetEncryption, base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::HandleSetEncryption,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"SyncSetupShowSetupUI",
- base::Bind(&PeopleHandler::HandleShowSetupUI, base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::HandleShowSetupUI,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"SyncSetupGetSyncStatus",
- base::Bind(&PeopleHandler::HandleGetSyncStatus, base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::HandleGetSyncStatus,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"SyncSetupManageOtherPeople",
- base::Bind(&PeopleHandler::HandleManageOtherPeople,
- base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::HandleManageOtherPeople,
+ base::Unretained(this)));
#if defined(OS_CHROMEOS)
web_ui()->RegisterMessageCallback(
"AttemptUserExit",
- base::Bind(&PeopleHandler::HandleAttemptUserExit,
- base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::HandleAttemptUserExit,
+ base::Unretained(this)));
#else
web_ui()->RegisterMessageCallback(
"SyncSetupStopSyncing",
- base::Bind(&PeopleHandler::HandleStopSyncing, base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::HandleStopSyncing,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"SyncSetupStartSignIn",
- base::Bind(&PeopleHandler::HandleStartSignin, base::Unretained(this)));
+ base::BindRepeating(&PeopleHandler::HandleStartSignin,
+ base::Unretained(this)));
#endif
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
web_ui()->RegisterMessageCallback(
@@ -269,6 +282,8 @@ void PeopleHandler::OnJavascriptAllowed() {
if (signin_manager)
signin_observer_.Add(signin_manager);
+ // This is intentionally not using GetSyncService(), to go around the
+ // Profile::IsSyncAllowed() check.
ProfileSyncService* sync_service(
ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_));
if (sync_service)
@@ -376,7 +391,12 @@ void PeopleHandler::DisplayTimeout() {
}
void PeopleHandler::OnDidClosePage(const base::ListValue* args) {
- MarkFirstSetupComplete();
+ // Don't mark setup as complete if "didAbort" is true, or if authentication
+ // is still needed.
+ if (!args->GetList()[0].GetBool() && !IsProfileAuthNeededOrHasErrors()) {
+ MarkFirstSetupComplete();
+ }
+
CloseSyncSetup();
}
@@ -441,6 +461,30 @@ void PeopleHandler::HandleSetDatatypes(const base::ListValue* args) {
ProfileMetrics::LogProfileSyncInfo(ProfileMetrics::SYNC_CHOOSE);
}
+// This function is different from HandleSetDatatypes, in that it only sets
+// the syncAllDatatypes without overriding other prefs' on-disk values.
+void PeopleHandler::HandleSetSyncEverything(const base::ListValue* args) {
+ DCHECK(!sync_startup_tracker_);
+
+ CHECK_EQ(2U, args->GetSize());
+ const base::Value& callback_id = args->GetList()[0];
+ bool sync_everything = args->GetList()[1].GetBool();
+
+ ProfileSyncService* service = GetSyncService();
+ // If the sync engine has shutdown for some reason, just close the sync
+ // dialog.
+ if (!service || !service->IsEngineInitialized()) {
+ CloseSyncSetup();
+ ResolveJavascriptCallback(callback_id, base::Value(kDonePageStatus));
+ return;
+ }
+
+ service->OnUserChangedSyncEverythingOnly(sync_everything);
+ ResolveJavascriptCallback(callback_id, base::Value(kConfigurePageStatus));
+
+ ProfileMetrics::LogProfileSyncInfo(ProfileMetrics::SYNC_CUSTOMIZE);
+}
+
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
void PeopleHandler::HandleGetStoredAccounts(const base::ListValue* args) {
CHECK_EQ(1U, args->GetSize());
@@ -488,7 +532,9 @@ std::unique_ptr<base::ListValue> PeopleHandler::GetStoredAccountsList() {
void PeopleHandler::HandleStartSyncingWithEmail(const base::ListValue* args) {
const base::Value* email;
+ const base::Value* is_default_promo_account;
CHECK(args->Get(0, &email));
+ CHECK(args->Get(1, &is_default_promo_account));
Browser* browser =
chrome::FindBrowserWithWebContents(web_ui()->GetWebContents());
@@ -497,9 +543,9 @@ void PeopleHandler::HandleStartSyncingWithEmail(const base::ListValue* args) {
AccountTrackerServiceFactory::GetForProfile(profile_);
AccountInfo account =
account_tracker->FindAccountInfoByEmail(email->GetString());
-
- signin_ui_util::EnableSync(
- browser, account, signin_metrics::AccessPoint::ACCESS_POINT_SETTINGS);
+ signin_ui_util::EnableSyncFromPromo(
+ browser, account, signin_metrics::AccessPoint::ACCESS_POINT_SETTINGS,
+ is_default_promo_account->GetBool());
}
#endif
@@ -583,13 +629,28 @@ void PeopleHandler::HandleSetEncryption(const base::ListValue* args) {
void PeopleHandler::HandleShowSetupUI(const base::ListValue* args) {
AllowJavascript();
- if (!GetSyncService()) {
+ ProfileSyncService* service = GetSyncService();
+
+ // Just let the page open for now, even when the user's not signed in.
+ // TODO(scottchen): finish the UI for signed-out users
+ // (https://crbug.com/800972).
+ if (IsUnifiedConsentEnabled(profile_) && IsProfileAuthNeededOrHasErrors()) {
+ if (service && !sync_blocker_)
+ sync_blocker_ = service->GetSetupInProgressHandle();
+
+ FireWebUIListener("sync-prefs-changed", base::DictionaryValue());
+ return;
+ }
+
+ if (!service) {
CloseUI();
return;
}
- SigninManagerBase* signin = SigninManagerFactory::GetForProfile(profile_);
- if (!signin->IsAuthenticated()) {
+ // This if-statement is not using IsProfileAuthNeededOrHasErrors(), because
+ // in some error cases (e.g. "confirmSyncSettings") the UI still needs to
+ // show.
+ if (!SigninManagerFactory::GetForProfile(profile_)->IsAuthenticated()) {
// For web-based signin, the signin page is not displayed in an overlay
// on the settings page. So if we get here, it must be due to the user
// cancelling signin (by reloading the sync settings page during initial
@@ -600,7 +661,38 @@ void PeopleHandler::HandleShowSetupUI(const base::ListValue* args) {
return;
}
- OpenSyncSetup();
+ // Notify services that login UI is now active.
+ GetLoginUIService()->SetLoginUI(this);
+
+ if (!sync_blocker_)
+ sync_blocker_ = service->GetSetupInProgressHandle();
+
+ // Early exit if there is already a preferences push pending sync startup.
+ if (sync_startup_tracker_)
+ return;
+
+ if (!service->IsEngineInitialized()) {
+ // Requesting the sync service to start may trigger call to PushSyncPrefs.
+ // Setting up the startup tracker beforehand correctly signals the
+ // re-entrant call to early exit.
+ sync_startup_tracker_.reset(new SyncStartupTracker(profile_, this));
+ service->RequestStart();
+
+ // See if it's even possible to bring up the sync engine - if not
+ // (unrecoverable error?), don't bother displaying a spinner that will be
+ // immediately closed because this leads to some ugly infinite UI loop (see
+ // http://crbug.com/244769).
+ if (SyncStartupTracker::GetSyncServiceState(profile_) !=
+ SyncStartupTracker::SYNC_STARTUP_ERROR) {
+ DisplaySpinner();
+ }
+ return;
+ }
+
+ // User is already logged in. They must have brought up the config wizard
+ // via the "Advanced..." button or through One-Click signin (cases 4-6), or
+ // they are re-enabling sync after having disabled it (case 7).
+ PushSyncPrefs();
}
#if defined(OS_CHROMEOS)
@@ -618,10 +710,9 @@ void PeopleHandler::HandleStartSignin(const base::ListValue* args) {
// Should only be called if the user is not already signed in or has an auth
// error.
- DCHECK(!SigninManagerFactory::GetForProfile(profile_)->IsAuthenticated() ||
- SigninErrorControllerFactory::GetForProfile(profile_)->HasError());
+ DCHECK(IsProfileAuthNeededOrHasErrors());
- OpenSyncSetup();
+ DisplayGaiaLogin(signin_metrics::AccessPoint::ACCESS_POINT_SETTINGS);
}
void PeopleHandler::HandleStopSyncing(const base::ListValue* args) {
@@ -698,7 +789,6 @@ void PeopleHandler::CloseSyncSetup() {
#if !defined(OS_CHROMEOS)
// Sign out the user on desktop Chrome if they click cancel during
// initial setup.
- // TODO(rsimha): Revisit this for M30. See http://crbug.com/252049.
if (sync_service->IsFirstSetupInProgress()) {
SigninManagerFactory::GetForProfile(profile_)
->SignOut(signin_metrics::ABORT_SIGNIN,
@@ -720,72 +810,6 @@ void PeopleHandler::CloseSyncSetup() {
configuring_sync_ = false;
}
-void PeopleHandler::OpenSyncSetup() {
- // Notify services that login UI is now active.
- GetLoginUIService()->SetLoginUI(this);
-
- ProfileSyncService* service = GetSyncService();
- if (service && !sync_blocker_)
- sync_blocker_ = service->GetSetupInProgressHandle();
-
- // There are several different UI flows that can bring the user here:
- // 1) Signin promo.
- // 2) Normal signin through settings page (IsAuthenticated() is false).
- // 3) Previously working credentials have expired.
- // 4) User is signed in, but has stopped sync via the google dashboard, and
- // signout is prohibited by policy so we need to force a re-auth.
- // 5) User clicks [Advanced Settings] button on options page while already
- // logged in.
- // 6) One-click signin (credentials are already available, so should display
- // sync configure UI, not login UI).
- // 7) User re-enables sync after disabling it via advanced settings.
-#if !defined(OS_CHROMEOS)
- if (!SigninManagerFactory::GetForProfile(profile_)->IsAuthenticated() ||
- SigninErrorControllerFactory::GetForProfile(profile_)->HasError()) {
- // User is not logged in (cases 1-2), or login has been specially requested
- // because previously working credentials have expired (case 3). Close sync
- // setup including any visible overlays, and display the gaia auth page.
- // Control will be returned to the sync settings page once auth is complete.
- CloseUI();
- DisplayGaiaLogin(signin_metrics::AccessPoint::ACCESS_POINT_SETTINGS);
- return;
- }
-#endif
- if (!service) {
- // This can happen if the user directly navigates to /settings/syncSetup.
- DLOG(WARNING) << "Cannot display sync UI when sync is disabled";
- CloseUI();
- return;
- }
-
- // Early exit if there is already a preferences push pending sync startup.
- if (sync_startup_tracker_)
- return;
-
- if (!service->IsEngineInitialized()) {
- // Requesting the sync service to start may trigger call to PushSyncPrefs.
- // Setting up the startup tracker beforehand correctly signals the
- // re-entrant call to early exit.
- sync_startup_tracker_.reset(new SyncStartupTracker(profile_, this));
- service->RequestStart();
-
- // See if it's even possible to bring up the sync engine - if not
- // (unrecoverable error?), don't bother displaying a spinner that will be
- // immediately closed because this leads to some ugly infinite UI loop (see
- // http://crbug.com/244769).
- if (SyncStartupTracker::GetSyncServiceState(profile_) !=
- SyncStartupTracker::SYNC_STARTUP_ERROR) {
- DisplaySpinner();
- }
- return;
- }
-
- // User is already logged in. They must have brought up the config wizard
- // via the "Advanced..." button or through One-Click signin (cases 4-6), or
- // they are re-enabling sync after having disabled it (case 7).
- PushSyncPrefs();
-}
-
void PeopleHandler::InitializeSyncBlocker() {
if (!web_ui())
return;
@@ -855,13 +879,17 @@ PeopleHandler::GetSyncStatusDictionary() {
}
#endif
+ // This is intentionally not using GetSyncService(), in order to access more
+ // nuanced information, since GetSyncService() returns nullptr if anything
+ // makes Profile::IsSyncAllowed() false.
ProfileSyncService* service =
ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_);
sync_status->SetBoolean("signinAllowed", signin->IsSigninAllowed());
sync_status->SetBoolean("syncSystemEnabled", (service != nullptr));
- sync_status->SetBoolean(
- "setupInProgress",
- service && !service->IsManaged() && service->IsFirstSetupInProgress());
+ sync_status->SetBoolean("setupInProgress",
+ service && !service->IsManaged() &&
+ service->IsFirstSetupInProgress() &&
+ signin->IsAuthenticated());
base::string16 status_label;
base::string16 link_label;
@@ -887,10 +915,8 @@ PeopleHandler::GetSyncStatusDictionary() {
void PeopleHandler::PushSyncPrefs() {
#if !defined(OS_CHROMEOS)
// Early exit if the user has not signed in yet.
- if (!SigninManagerFactory::GetForProfile(profile_)->IsAuthenticated() ||
- SigninErrorControllerFactory::GetForProfile(profile_)->HasError()) {
+ if (IsProfileAuthNeededOrHasErrors())
return;
- }
#endif
ProfileSyncService* service = GetSyncService();
@@ -1017,6 +1043,12 @@ void PeopleHandler::MarkFirstSetupComplete() {
// start syncing.
sync_blocker_.reset();
service->SetFirstSetupComplete();
+ FireWebUIListener("sync-settings-saved");
+}
+
+bool PeopleHandler::IsProfileAuthNeededOrHasErrors() {
+ return !SigninManagerFactory::GetForProfile(profile_)->IsAuthenticated() ||
+ SigninErrorControllerFactory::GetForProfile(profile_)->HasError();
}
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/people_handler.h b/chromium/chrome/browser/ui/webui/settings/people_handler.h
index 0ea976fa175..392f0d92475 100644
--- a/chromium/chrome/browser/ui/webui/settings/people_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/people_handler.h
@@ -19,7 +19,7 @@
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "chrome/browser/ui/webui/signin/login_ui_service.h"
#include "components/prefs/pref_change_registrar.h"
-#include "components/signin/core/browser/signin_features.h"
+#include "components/signin/core/browser/signin_buildflags.h"
#include "components/signin/core/browser/signin_manager_base.h"
#include "components/sync/driver/sync_service_observer.h"
@@ -68,9 +68,6 @@ class PeopleHandler : public SettingsPageUIHandler,
explicit PeopleHandler(Profile* profile);
~PeopleHandler() override;
- // Initializes the sync setup flow and shows the setup UI.
- void OpenSyncSetup();
-
// Terminates the sync setup flow.
void CloseSyncSetup();
@@ -83,9 +80,26 @@ class PeopleHandler : public SettingsPageUIHandler,
DisplayConfigureWithEngineDisabledAndCancel);
FRIEND_TEST_ALL_PREFIXES(
PeopleHandlerTest,
+ DisplayConfigureWithEngineDisabledAndCancelAfterSigninSuccess);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest,
+ DisplayConfigureWithEngineDisabledAndSigninFailed);
+ FRIEND_TEST_ALL_PREFIXES(
+ PeopleHandlerTest,
DisplayConfigureWithEngineDisabledAndSyncStartupCompleted);
FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, HandleSetupUIWhenSyncDisabled);
FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, SelectCustomEncryption);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest,
+ ShowSetupCustomPassphraseRequired);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSetupEncryptAll);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSetupEncryptAllDisallowed);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSetupManuallySyncAll);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest,
+ ShowSetupOldGaiaPassphraseRequired);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSetupSyncEverything);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest,
+ ShowSetupSyncForAllTypesIndividually);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSigninOnAuthError);
+ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSyncSetup);
FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSyncSetupWhenNotSignedIn);
FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, SuccessfullySetPassphrase);
FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, TestSyncEverything);
@@ -153,6 +167,7 @@ class PeopleHandler : public SettingsPageUIHandler,
void OnDidClosePage(const base::ListValue* args);
void HandleSetDatatypes(const base::ListValue* args);
void HandleSetEncryption(const base::ListValue* args);
+ void HandleSetSyncEverything(const base::ListValue* args);
void HandleShowSetupUI(const base::ListValue* args);
void HandleAttemptUserExit(const base::ListValue* args);
void HandleStartSignin(const base::ListValue* args);
@@ -197,6 +212,9 @@ class PeopleHandler : public SettingsPageUIHandler,
// Suppresses any further signin promos, since the user has signed in once.
void MarkFirstSetupComplete();
+ // True if profile needs authentication before sync can run.
+ bool IsProfileAuthNeededOrHasErrors();
+
// If we're directly loading the sync setup page, we acquire a
// SetupInProgressHandle early in order to prevent a lapse in
// ProfileSyncService's "SetupInProgress" status. This lapse previously
diff --git a/chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc
index 13312118858..8964c907cb6 100644
--- a/chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc
@@ -358,7 +358,7 @@ TEST_F(PeopleHandlerFirstSigninTest, DisplayBasicLogin) {
TEST_F(PeopleHandlerTest, ShowSyncSetupWhenNotSignedIn) {
EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false));
EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false));
- handler_->HandleShowSetupUI(NULL);
+ handler_->HandleShowSetupUI(nullptr);
ExpectPageStatusChanged(PeopleHandler::kDonePageStatus);
@@ -373,7 +373,7 @@ TEST_F(PeopleHandlerTest, ShowSyncSetupWhenNotSignedIn) {
// sync is disabled.
TEST_F(PeopleHandlerTest, HandleSetupUIWhenSyncDisabled) {
EXPECT_CALL(*mock_pss_, IsManaged()).WillRepeatedly(Return(true));
- handler_->HandleShowSetupUI(NULL);
+ handler_->HandleShowSetupUI(nullptr);
// Sync setup is closed when sync is disabled.
EXPECT_EQ(
@@ -396,7 +396,7 @@ TEST_F(PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndCancel) {
// engine will try to download control data types (e.g encryption info), but
// that won't finish for this test as we're simulating cancelling while the
// spinner is showing.
- handler_->HandleShowSetupUI(NULL);
+ handler_->HandleShowSetupUI(nullptr);
EXPECT_EQ(
handler_.get(),
@@ -417,7 +417,7 @@ TEST_F(PeopleHandlerTest,
EXPECT_CALL(*mock_pss_, RequestStart());
SetDefaultExpectationsForConfigPage();
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
EXPECT_EQ(1U, web_ui_.call_data().size());
ExpectPageStatusChanged(PeopleHandler::kSpinnerPageStatus);
@@ -454,7 +454,7 @@ TEST_F(PeopleHandlerTest,
.WillRepeatedly(Return(true));
EXPECT_CALL(*mock_pss_, RequestStart());
SetDefaultExpectationsForConfigPage();
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
// It's important to tell sync the user cancelled the setup flow before we
// tell it we're through with the setup progress.
@@ -475,7 +475,7 @@ TEST_F(PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndSigninFailed) {
EXPECT_CALL(*mock_pss_, IsEngineInitialized()).WillRepeatedly(Return(false));
EXPECT_CALL(*mock_pss_, RequestStart());
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
ExpectPageStatusChanged(PeopleHandler::kSpinnerPageStatus);
Mock::VerifyAndClearExpectations(mock_pss_);
error_ = GoogleServiceAuthError(
@@ -532,7 +532,7 @@ TEST_F(PeopleHandlerNonCrosTest, HandleGaiaAuthFailure) {
.WillRepeatedly(Return(false));
EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false));
// Open the web UI.
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
ASSERT_FALSE(handler_->is_configuring_sync());
}
@@ -542,7 +542,7 @@ TEST_F(PeopleHandlerNonCrosTest, UnrecoverableErrorInitializingSync) {
EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false));
EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false));
// Open the web UI.
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
ASSERT_FALSE(handler_->is_configuring_sync());
}
@@ -551,7 +551,7 @@ TEST_F(PeopleHandlerNonCrosTest, GaiaErrorInitializingSync) {
EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false));
EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false));
// Open the web UI.
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
ASSERT_FALSE(handler_->is_configuring_sync());
}
@@ -751,7 +751,7 @@ TEST_F(PeopleHandlerTest, ShowSyncSetup) {
SetupInitializedProfileSyncService();
// This should display the sync setup dialog (not login).
SetDefaultExpectationsForConfigPage();
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
ExpectSyncPrefsChanged();
}
@@ -787,7 +787,7 @@ TEST_F(PeopleHandlerTest, ShowSigninOnAuthError) {
// On ChromeOS, this should display the spinner while we try to startup the
// sync engine, and on desktop this displays the login dialog.
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
// Sync setup is closed when re-auth is in progress.
EXPECT_EQ(
@@ -806,7 +806,7 @@ TEST_F(PeopleHandlerTest, ShowSetupSyncEverything) {
SetupInitializedProfileSyncService();
SetDefaultExpectationsForConfigPage();
// This should display the sync setup dialog (not login).
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
const base::DictionaryValue* dictionary = ExpectSyncPrefsChanged();
CheckBool(dictionary, "syncAllDataTypes", true);
@@ -836,7 +836,7 @@ TEST_F(PeopleHandlerTest, ShowSetupManuallySyncAll) {
sync_prefs.SetKeepEverythingSynced(false);
SetDefaultExpectationsForConfigPage();
// This should display the sync setup dialog (not login).
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
const base::DictionaryValue* dictionary = ExpectSyncPrefsChanged();
CheckConfigDataTypeArguments(dictionary, CHOOSE_WHAT_TO_SYNC, GetAllTypes());
@@ -860,7 +860,7 @@ TEST_F(PeopleHandlerTest, ShowSetupSyncForAllTypesIndividually) {
WillRepeatedly(Return(types));
// This should display the sync setup dialog (not login).
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
// Close the config overlay.
LoginUIServiceFactory::GetForProfile(profile())->LoginUIClosed(
@@ -884,7 +884,7 @@ TEST_F(PeopleHandlerTest, ShowSetupOldGaiaPassphraseRequired) {
SetDefaultExpectationsForConfigPage();
// This should display the sync setup dialog (not login).
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
const base::DictionaryValue* dictionary = ExpectSyncPrefsChanged();
CheckBool(dictionary, "passphraseRequired", true);
@@ -900,7 +900,7 @@ TEST_F(PeopleHandlerTest, ShowSetupCustomPassphraseRequired) {
SetDefaultExpectationsForConfigPage();
// This should display the sync setup dialog (not login).
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
const base::DictionaryValue* dictionary = ExpectSyncPrefsChanged();
CheckBool(dictionary, "passphraseRequired", true);
@@ -918,7 +918,7 @@ TEST_F(PeopleHandlerTest, ShowSetupEncryptAll) {
.WillRepeatedly(Return(true));
// This should display the sync setup dialog (not login).
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
const base::DictionaryValue* dictionary = ExpectSyncPrefsChanged();
CheckBool(dictionary, "encryptAllData", true);
@@ -935,7 +935,7 @@ TEST_F(PeopleHandlerTest, ShowSetupEncryptAllDisallowed) {
.WillRepeatedly(Return(false));
// This should display the sync setup dialog (not login).
- handler_->OpenSyncSetup();
+ handler_->HandleShowSetupUI(nullptr);
const base::DictionaryValue* dictionary = ExpectSyncPrefsChanged();
CheckBool(dictionary, "encryptAllData", false);
diff --git a/chromium/chrome/browser/ui/webui/settings/printing_handler.cc b/chromium/chrome/browser/ui/webui/settings/printing_handler.cc
index 45644030eb2..8647b2daf9e 100644
--- a/chromium/chrome/browser/ui/webui/settings/printing_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/printing_handler.cc
@@ -18,8 +18,8 @@ PrintingHandler::~PrintingHandler() {}
void PrintingHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"openSystemPrintDialog",
- base::Bind(&PrintingHandler::HandleOpenSystemPrintDialog,
- base::Unretained(this)));
+ base::BindRepeating(&PrintingHandler::HandleOpenSystemPrintDialog,
+ base::Unretained(this)));
}
void PrintingHandler::OnJavascriptAllowed() {}
diff --git a/chromium/chrome/browser/ui/webui/settings/printing_handler.h b/chromium/chrome/browser/ui/webui/settings/printing_handler.h
index 5759261d684..6f993475678 100644
--- a/chromium/chrome/browser/ui/webui/settings/printing_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/printing_handler.h
@@ -8,7 +8,7 @@
#include "base/macros.h"
#include "build/build_config.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
-#include "printing/features/features.h"
+#include "printing/buildflags/buildflags.h"
#if defined(OS_CHROMEOS)
#error "Not for use on ChromeOS"
diff --git a/chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc b/chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc
index 299d6fe9a8d..e7c647fe122 100644
--- a/chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc
@@ -52,13 +52,14 @@ ProfileInfoHandler::~ProfileInfoHandler() {}
void ProfileInfoHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
- "getProfileInfo", base::Bind(&ProfileInfoHandler::HandleGetProfileInfo,
- base::Unretained(this)));
+ "getProfileInfo",
+ base::BindRepeating(&ProfileInfoHandler::HandleGetProfileInfo,
+ base::Unretained(this)));
#if !defined(OS_CHROMEOS)
web_ui()->RegisterMessageCallback(
"getProfileStatsCount",
- base::Bind(&ProfileInfoHandler::HandleGetProfileStats,
- base::Unretained(this)));
+ base::BindRepeating(&ProfileInfoHandler::HandleGetProfileStats,
+ base::Unretained(this)));
#endif
}
diff --git a/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc b/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc
index 3b1453e6170..1f486d9b882 100644
--- a/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc
@@ -40,22 +40,28 @@ void ProtocolHandlersHandler::OnJavascriptDisallowed() {
}
void ProtocolHandlersHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback("observeProtocolHandlers",
- base::Bind(&ProtocolHandlersHandler::HandleObserveProtocolHandlers,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("observeProtocolHandlersEnabledState",
- base::Bind(
+ web_ui()->RegisterMessageCallback(
+ "observeProtocolHandlers",
+ base::BindRepeating(
+ &ProtocolHandlersHandler::HandleObserveProtocolHandlers,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "observeProtocolHandlersEnabledState",
+ base::BindRepeating(
&ProtocolHandlersHandler::HandleObserveProtocolHandlersEnabledState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback("removeHandler",
- base::Bind(&ProtocolHandlersHandler::HandleRemoveHandler,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("setHandlersEnabled",
- base::Bind(&ProtocolHandlersHandler::HandleSetHandlersEnabled,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("setDefault",
- base::Bind(&ProtocolHandlersHandler::HandleSetDefault,
- base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "removeHandler",
+ base::BindRepeating(&ProtocolHandlersHandler::HandleRemoveHandler,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "setHandlersEnabled",
+ base::BindRepeating(&ProtocolHandlersHandler::HandleSetHandlersEnabled,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "setDefault",
+ base::BindRepeating(&ProtocolHandlersHandler::HandleSetDefault,
+ base::Unretained(this)));
}
ProtocolHandlerRegistry* ProtocolHandlersHandler::GetProtocolHandlerRegistry() {
@@ -71,6 +77,8 @@ static void GetHandlersAsListValue(
for (handler = handlers.begin(); handler != handlers.end(); ++handler) {
std::unique_ptr<base::DictionaryValue> handler_value(
new base::DictionaryValue());
+ handler_value->SetString("protocol_display_name",
+ handler->GetProtocolDisplayName());
handler_value->SetString("protocol", handler->protocol());
handler_value->SetString("spec", handler->url().spec());
handler_value->SetString("host", handler->url().host());
@@ -83,6 +91,8 @@ void ProtocolHandlersHandler::GetHandlersForProtocol(
const std::string& protocol,
base::DictionaryValue* handlers_value) {
ProtocolHandlerRegistry* registry = GetProtocolHandlerRegistry();
+ handlers_value->SetString("protocol_display_name",
+ ProtocolHandler::GetProtocolDisplayName(protocol));
handlers_value->SetString("protocol", protocol);
auto handlers_list = std::make_unique<base::ListValue>();
diff --git a/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc
index 6ecd5cc170d..4cc1ff9e229 100644
--- a/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc
@@ -105,30 +105,36 @@ void ResetSettingsHandler::OnJavascriptDisallowed() {
}
void ResetSettingsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback("performResetProfileSettings",
- base::Bind(&ResetSettingsHandler::HandleResetProfileSettings,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("onShowResetProfileDialog",
- base::Bind(&ResetSettingsHandler::OnShowResetProfileDialog,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("getReportedSettings",
- base::Bind(&ResetSettingsHandler::HandleGetReportedSettings,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("onHideResetProfileDialog",
- base::Bind(&ResetSettingsHandler::OnHideResetProfileDialog,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("onHideResetProfileBanner",
- base::Bind(&ResetSettingsHandler::OnHideResetProfileBanner,
- base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "performResetProfileSettings",
+ base::BindRepeating(&ResetSettingsHandler::HandleResetProfileSettings,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "onShowResetProfileDialog",
+ base::BindRepeating(&ResetSettingsHandler::OnShowResetProfileDialog,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "getReportedSettings",
+ base::BindRepeating(&ResetSettingsHandler::HandleGetReportedSettings,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "onHideResetProfileDialog",
+ base::BindRepeating(&ResetSettingsHandler::OnHideResetProfileDialog,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "onHideResetProfileBanner",
+ base::BindRepeating(&ResetSettingsHandler::OnHideResetProfileBanner,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getTriggeredResetToolName",
- base::Bind(&ResetSettingsHandler::HandleGetTriggeredResetToolName,
- base::Unretained(this)));
+ base::BindRepeating(
+ &ResetSettingsHandler::HandleGetTriggeredResetToolName,
+ base::Unretained(this)));
#if defined(OS_CHROMEOS)
web_ui()->RegisterMessageCallback(
- "onPowerwashDialogShow",
- base::Bind(&ResetSettingsHandler::OnShowPowerwashDialog,
- base::Unretained(this)));
+ "onPowerwashDialogShow",
+ base::BindRepeating(&ResetSettingsHandler::OnShowPowerwashDialog,
+ base::Unretained(this)));
#endif // defined(OS_CHROMEOS)
}
diff --git a/chromium/chrome/browser/ui/webui/settings/safe_browsing_handler.cc b/chromium/chrome/browser/ui/webui/settings/safe_browsing_handler.cc
index f017287acdf..d43930fb1e8 100644
--- a/chromium/chrome/browser/ui/webui/settings/safe_browsing_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/safe_browsing_handler.cc
@@ -13,17 +13,33 @@
namespace settings {
+namespace {
+
+base::DictionaryValue GetSberStateDictionaryValue(const PrefService& prefs) {
+ base::DictionaryValue dict;
+ dict.SetBoolean("enabled", safe_browsing::IsExtendedReportingEnabled(prefs));
+ // TODO(crbug.com/813107): SBEROIA policy is being deprecated, revisit this
+ // after it is removed.
+ dict.SetBoolean("managed",
+ !safe_browsing::IsExtendedReportingOptInAllowed(prefs) ||
+ safe_browsing::IsExtendedReportingPolicyManaged(prefs));
+ return dict;
+}
+
+} // namespace
+
SafeBrowsingHandler::SafeBrowsingHandler(PrefService* prefs) : prefs_(prefs) {}
SafeBrowsingHandler::~SafeBrowsingHandler() {}
void SafeBrowsingHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"getSafeBrowsingExtendedReporting",
- base::Bind(&SafeBrowsingHandler::HandleGetSafeBrowsingExtendedReporting,
- base::Unretained(this)));
+ base::BindRepeating(
+ &SafeBrowsingHandler::HandleGetSafeBrowsingExtendedReporting,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setSafeBrowsingExtendedReportingEnabled",
- base::Bind(
+ base::BindRepeating(
&SafeBrowsingHandler::HandleSetSafeBrowsingExtendedReportingEnabled,
base::Unretained(this)));
}
@@ -48,16 +64,7 @@ void SafeBrowsingHandler::HandleGetSafeBrowsingExtendedReporting(
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
- base::DictionaryValue dict;
- dict.SetBoolean("enabled",
- safe_browsing::IsExtendedReportingEnabled(*prefs_));
- // TODO(crbug.com/813107): SBEROIA policy is being deprecated, revisit this
- // after it is removed.
- dict.SetBoolean("managed",
- !safe_browsing::IsExtendedReportingOptInAllowed(*prefs_) ||
- safe_browsing::IsExtendedReportingPolicyManaged(*prefs_));
-
- ResolveJavascriptCallback(*callback_id, dict);
+ ResolveJavascriptCallback(*callback_id, GetSberStateDictionaryValue(*prefs_));
}
void SafeBrowsingHandler::HandleSetSafeBrowsingExtendedReportingEnabled(
@@ -72,8 +79,8 @@ void SafeBrowsingHandler::OnPrefChanged(const std::string& pref_name) {
DCHECK(pref_name == prefs::kSafeBrowsingExtendedReportingEnabled ||
pref_name == prefs::kSafeBrowsingScoutReportingEnabled);
- base::Value is_enabled(safe_browsing::IsExtendedReportingEnabled(*prefs_));
- FireWebUIListener("safe-browsing-extended-reporting-change", is_enabled);
+ FireWebUIListener("safe-browsing-extended-reporting-change",
+ GetSberStateDictionaryValue(*prefs_));
}
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc
index 136df4229c4..bf98d178d56 100644
--- a/chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc
@@ -61,32 +61,35 @@ SearchEnginesHandler::~SearchEnginesHandler() {
void SearchEnginesHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"getSearchEnginesList",
- base::Bind(&SearchEnginesHandler::HandleGetSearchEnginesList,
- base::Unretained(this)));
+ base::BindRepeating(&SearchEnginesHandler::HandleGetSearchEnginesList,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setDefaultSearchEngine",
- base::Bind(&SearchEnginesHandler::HandleSetDefaultSearchEngine,
- base::Unretained(this)));
+ base::BindRepeating(&SearchEnginesHandler::HandleSetDefaultSearchEngine,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"removeSearchEngine",
- base::Bind(&SearchEnginesHandler::HandleRemoveSearchEngine,
- base::Unretained(this)));
+ base::BindRepeating(&SearchEnginesHandler::HandleRemoveSearchEngine,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"validateSearchEngineInput",
- base::Bind(&SearchEnginesHandler::HandleValidateSearchEngineInput,
- base::Unretained(this)));
+ base::BindRepeating(
+ &SearchEnginesHandler::HandleValidateSearchEngineInput,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"searchEngineEditStarted",
- base::Bind(&SearchEnginesHandler::HandleSearchEngineEditStarted,
- base::Unretained(this)));
+ base::BindRepeating(&SearchEnginesHandler::HandleSearchEngineEditStarted,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"searchEngineEditCancelled",
- base::Bind(&SearchEnginesHandler::HandleSearchEngineEditCancelled,
- base::Unretained(this)));
+ base::BindRepeating(
+ &SearchEnginesHandler::HandleSearchEngineEditCancelled,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"searchEngineEditCompleted",
- base::Bind(&SearchEnginesHandler::HandleSearchEngineEditCompleted,
- base::Unretained(this)));
+ base::BindRepeating(
+ &SearchEnginesHandler::HandleSearchEngineEditCompleted,
+ base::Unretained(this)));
}
void SearchEnginesHandler::OnJavascriptAllowed() {
@@ -111,6 +114,10 @@ SearchEnginesHandler::GetSearchEnginesList() {
std::make_unique<base::ListValue>();
int last_default_engine_index =
list_controller_.table_model()->last_search_engine_index();
+
+ // Sanity check for https://crbug.com/781703.
+ CHECK_GE(last_default_engine_index, 0);
+
for (int i = 0; i < last_default_engine_index; ++i) {
// Third argument is false, as the engine is not from an extension.
defaults->Append(CreateDictionaryForEngine(i, i == default_index));
@@ -120,6 +127,10 @@ SearchEnginesHandler::GetSearchEnginesList() {
std::unique_ptr<base::ListValue> others = std::make_unique<base::ListValue>();
int last_other_engine_index =
list_controller_.table_model()->last_other_engine_index();
+
+ // Sanity check for https://crbug.com/781703.
+ CHECK_LE(last_default_engine_index, last_other_engine_index);
+
for (int i = std::max(last_default_engine_index, 0);
i < last_other_engine_index; ++i) {
others->Append(CreateDictionaryForEngine(i, i == default_index));
@@ -129,6 +140,10 @@ SearchEnginesHandler::GetSearchEnginesList() {
std::unique_ptr<base::ListValue> extensions =
std::make_unique<base::ListValue>();
int engine_count = list_controller_.table_model()->RowCount();
+
+ // Sanity check for https://crbug.com/781703.
+ CHECK_LE(last_other_engine_index, engine_count);
+
for (int i = std::max(last_other_engine_index, 0); i < engine_count; ++i) {
extensions->Append(CreateDictionaryForEngine(i, i == default_index));
}
@@ -163,6 +178,11 @@ SearchEnginesHandler::CreateDictionaryForEngine(int index, bool is_default) {
TemplateURLTableModel* table_model = list_controller_.table_model();
const TemplateURL* template_url = list_controller_.GetTemplateURL(index);
+ // Sanity check for https://crbug.com/781703.
+ CHECK_GE(index, 0);
+ CHECK_LT(index, table_model->RowCount());
+ CHECK(template_url);
+
// The items which are to be written into |dict| are also described in
// chrome/browser/resources/settings/search_engines_page/
// in @typedef for SearchEngine. Please update it whenever you add or remove
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index b4c04a907d9..f6e53a16445 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -93,18 +93,18 @@ ClearBrowsingDataHandler::~ClearBrowsingDataHandler() {
void ClearBrowsingDataHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"clearBrowsingData",
- base::Bind(&ClearBrowsingDataHandler::HandleClearBrowsingData,
- base::Unretained(this)));
+ base::BindRepeating(&ClearBrowsingDataHandler::HandleClearBrowsingData,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getImportantSites",
- base::Bind(&ClearBrowsingDataHandler::HandleGetImportantSites,
- base::Unretained(this)));
+ base::BindRepeating(&ClearBrowsingDataHandler::HandleGetImportantSites,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"initializeClearBrowsingData",
- base::Bind(&ClearBrowsingDataHandler::HandleInitialize,
- base::Unretained(this)));
+ base::BindRepeating(&ClearBrowsingDataHandler::HandleInitialize,
+ base::Unretained(this)));
}
void ClearBrowsingDataHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc
index b10325705f8..2017d6c1fee 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc
@@ -160,28 +160,32 @@ void CookiesViewHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"localData.getDisplayList",
- base::Bind(&CookiesViewHandler::HandleGetDisplayList,
- base::Unretained(this)));
+ base::BindRepeating(&CookiesViewHandler::HandleGetDisplayList,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"localData.removeAll",
- base::Bind(&CookiesViewHandler::HandleRemoveAll, base::Unretained(this)));
+ base::BindRepeating(&CookiesViewHandler::HandleRemoveAll,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"localData.removeShownItems",
- base::Bind(&CookiesViewHandler::HandleRemoveShownItems,
- base::Unretained(this)));
+ base::BindRepeating(&CookiesViewHandler::HandleRemoveShownItems,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "localData.removeItem", base::Bind(&CookiesViewHandler::HandleRemoveItem,
- base::Unretained(this)));
+ "localData.removeItem",
+ base::BindRepeating(&CookiesViewHandler::HandleRemoveItem,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"localData.getCookieDetails",
- base::Bind(&CookiesViewHandler::HandleGetCookieDetails,
- base::Unretained(this)));
+ base::BindRepeating(&CookiesViewHandler::HandleGetCookieDetails,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"localData.removeCookie",
- base::Bind(&CookiesViewHandler::HandleRemove, base::Unretained(this)));
+ base::BindRepeating(&CookiesViewHandler::HandleRemove,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "localData.reload", base::Bind(&CookiesViewHandler::HandleReloadCookies,
- base::Unretained(this)));
+ "localData.reload",
+ base::BindRepeating(&CookiesViewHandler::HandleReloadCookies,
+ base::Unretained(this)));
}
void CookiesViewHandler::TreeNodesAdded(ui::TreeModel* model,
@@ -333,6 +337,7 @@ void CookiesViewHandler::HandleReloadCookies(const base::ListValue* args) {
AllowJavascript();
cookies_tree_model_.reset();
+ filter_.clear();
sorted_sites_.clear();
EnsureCookiesTreeModelCreated();
}
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
index 66932e563b6..bc66616f991 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
@@ -39,12 +39,12 @@ DefaultBrowserHandler::~DefaultBrowserHandler() {}
void DefaultBrowserHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"SettingsDefaultBrowser.requestDefaultBrowserState",
- base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState,
- base::Unretained(this)));
+ base::BindRepeating(&DefaultBrowserHandler::RequestDefaultBrowserState,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"SettingsDefaultBrowser.setAsDefaultBrowser",
- base::Bind(&DefaultBrowserHandler::SetAsDefaultBrowser,
- base::Unretained(this)));
+ base::BindRepeating(&DefaultBrowserHandler::SetAsDefaultBrowser,
+ base::Unretained(this)));
}
void DefaultBrowserHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_import_data_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_import_data_handler.cc
index 4a019494a6d..32deebd14fb 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_import_data_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_import_data_handler.cc
@@ -60,14 +60,15 @@ void ImportDataHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"initializeImportDialog",
- base::Bind(&ImportDataHandler::InitializeDialog, base::Unretained(this)));
+ base::BindRepeating(&ImportDataHandler::InitializeDialog,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "importData",
- base::Bind(&ImportDataHandler::ImportData, base::Unretained(this)));
+ "importData", base::BindRepeating(&ImportDataHandler::ImportData,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"importFromBookmarksFile",
- base::Bind(&ImportDataHandler::HandleChooseBookmarksFile,
- base::Unretained(this)));
+ base::BindRepeating(&ImportDataHandler::HandleChooseBookmarksFile,
+ base::Unretained(this)));
}
void ImportDataHandler::OnJavascriptDisallowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
index 37fc2ac17b3..5a68d2419c3 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
@@ -58,31 +58,35 @@ ManageProfileHandler::~ManageProfileHandler() {}
void ManageProfileHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"getAvailableIcons",
- base::Bind(&ManageProfileHandler::HandleGetAvailableIcons,
- base::Unretained(this)));
+ base::BindRepeating(&ManageProfileHandler::HandleGetAvailableIcons,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setProfileIconToGaiaAvatar",
- base::Bind(&ManageProfileHandler::HandleSetProfileIconToGaiaAvatar,
- base::Unretained(this)));
+ base::BindRepeating(
+ &ManageProfileHandler::HandleSetProfileIconToGaiaAvatar,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setProfileIconToDefaultAvatar",
- base::Bind(&ManageProfileHandler::HandleSetProfileIconToDefaultAvatar,
- base::Unretained(this)));
+ base::BindRepeating(
+ &ManageProfileHandler::HandleSetProfileIconToDefaultAvatar,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "setProfileName", base::Bind(&ManageProfileHandler::HandleSetProfileName,
- base::Unretained(this)));
+ "setProfileName",
+ base::BindRepeating(&ManageProfileHandler::HandleSetProfileName,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"requestProfileShortcutStatus",
- base::Bind(&ManageProfileHandler::HandleRequestProfileShortcutStatus,
- base::Unretained(this)));
+ base::BindRepeating(
+ &ManageProfileHandler::HandleRequestProfileShortcutStatus,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"addProfileShortcut",
- base::Bind(&ManageProfileHandler::HandleAddProfileShortcut,
- base::Unretained(this)));
+ base::BindRepeating(&ManageProfileHandler::HandleAddProfileShortcut,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"removeProfileShortcut",
- base::Bind(&ManageProfileHandler::HandleRemoveProfileShortcut,
- base::Unretained(this)));
+ base::BindRepeating(&ManageProfileHandler::HandleRemoveProfileShortcut,
+ base::Unretained(this)));
}
void ManageProfileHandler::OnJavascriptAllowed() {
@@ -94,6 +98,12 @@ void ManageProfileHandler::OnJavascriptDisallowed() {
observer_.RemoveAll();
}
+void ManageProfileHandler::OnProfileHighResAvatarLoaded(
+ const base::FilePath& profile_path) {
+ // GAIA image is loaded asynchronously.
+ FireWebUIListener("available-icons-changed", *GetAvailableIcons());
+}
+
void ManageProfileHandler::OnProfileAvatarChanged(
const base::FilePath& profile_path) {
// This is necessary to send the potentially updated GAIA photo.
@@ -113,9 +123,20 @@ void ManageProfileHandler::HandleGetAvailableIcons(
}
std::unique_ptr<base::ListValue> ManageProfileHandler::GetAvailableIcons() {
- std::unique_ptr<base::ListValue> image_url_list(
+ std::unique_ptr<base::ListValue> avatars(
profiles::GetDefaultProfileAvatarIconsAndLabels());
+ PrefService* pref_service = profile_->GetPrefs();
+ bool using_gaia = pref_service->GetBoolean(prefs::kProfileUsingGAIAAvatar);
+
+ // Select the avatar from the default set.
+ if (!using_gaia) {
+ size_t index = pref_service->GetInteger(prefs::kProfileAvatarIndex);
+ base::DictionaryValue* avatar = nullptr;
+ if (avatars->GetDictionary(index, &avatar))
+ avatar->SetBoolean("selected", true);
+ }
+
// Add the GAIA picture to the beginning of the list if it is available.
ProfileAttributesEntry* entry;
if (g_browser_process->profile_manager()->GetProfileAttributesStorage().
@@ -130,11 +151,13 @@ std::unique_ptr<base::ListValue> ManageProfileHandler::GetAvailableIcons() {
"label",
l10n_util::GetStringUTF16(IDS_SETTINGS_CHANGE_PICTURE_PROFILE_PHOTO));
gaia_picture_info->SetBoolean("isGaiaAvatar", true);
- image_url_list->Insert(0, std::move(gaia_picture_info));
+ if (using_gaia)
+ gaia_picture_info->SetBoolean("selected", true);
+ avatars->Insert(0, std::move(gaia_picture_info));
}
}
- return image_url_list;
+ return avatars;
}
void ManageProfileHandler::HandleSetProfileIconToGaiaAvatar(
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
index 0929d3db294..659ef79b1f8 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
@@ -32,6 +32,10 @@ class ManageProfileHandler : public settings::SettingsPageUIHandler,
// ProfileAttributesStorage::Observer:
void OnProfileAvatarChanged(const base::FilePath& profile_path) override;
+ // ProfileAttributesStorage::Observer:
+ void OnProfileHighResAvatarLoaded(
+ const base::FilePath& profile_path) override;
+
private:
FRIEND_TEST_ALL_PREFIXES(ManageProfileHandlerTest,
HandleSetProfileIconToGaiaAvatar);
@@ -39,6 +43,8 @@ class ManageProfileHandler : public settings::SettingsPageUIHandler,
HandleSetProfileIconToDefaultAvatar);
FRIEND_TEST_ALL_PREFIXES(ManageProfileHandlerTest, HandleSetProfileName);
FRIEND_TEST_ALL_PREFIXES(ManageProfileHandlerTest, HandleGetAvailableIcons);
+ FRIEND_TEST_ALL_PREFIXES(ManageProfileHandlerTest,
+ HandleGetAvailableIconsGaiaAvatarSelected);
// Callback for the "getAvailableIcons" message.
// Sends the array of default profile icon URLs and profile names to WebUI.
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc
index 5a2e216865b..d981468902e 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc
@@ -45,7 +45,30 @@ class ManageProfileHandlerTest : public testing::Test {
web_ui()->ClearTrackedCalls();
}
- void VerifyIconList(const base::Value* value) {
+ void VerifyIconListWithNoneSelected(const base::Value* value) {
+ VerifyIconList(value, 0 /* ignored */, true);
+ }
+
+ void VerifyIconListWithSingleSelection(const base::Value* value,
+ size_t selected_index) {
+ VerifyIconList(value, selected_index, false);
+ }
+
+ content::TestWebUI* web_ui() { return &web_ui_; }
+ Profile* profile() const { return profile_; }
+ TestManageProfileHandler* handler() const { return handler_.get(); }
+
+ private:
+ content::TestBrowserThreadBundle thread_bundle_;
+ TestingProfileManager profile_manager_;
+ content::TestWebUI web_ui_;
+
+ Profile* profile_;
+ std::unique_ptr<TestManageProfileHandler> handler_;
+
+ void VerifyIconList(const base::Value* value,
+ size_t selected_index,
+ bool all_not_selected) {
const base::ListValue* icons = nullptr;
ASSERT_TRUE(value->GetAsList(&icons));
@@ -61,20 +84,16 @@ class ManageProfileHandlerTest : public testing::Test {
std::string icon_label;
EXPECT_TRUE(icon->GetString("label", &icon_label));
EXPECT_FALSE(icon_label.empty());
+ bool icon_selected;
+ bool has_icon_selected = icon->GetBoolean("selected", &icon_selected);
+ if (all_not_selected) {
+ EXPECT_FALSE(has_icon_selected);
+ } else if (selected_index == i) {
+ EXPECT_TRUE(has_icon_selected);
+ EXPECT_TRUE(icon_selected);
+ }
}
}
-
- content::TestWebUI* web_ui() { return &web_ui_; }
- Profile* profile() const { return profile_; }
- TestManageProfileHandler* handler() const { return handler_.get(); }
-
- private:
- content::TestBrowserThreadBundle thread_bundle_;
- TestingProfileManager profile_manager_;
- content::TestWebUI web_ui_;
-
- Profile* profile_;
- std::unique_ptr<TestManageProfileHandler> handler_;
};
TEST_F(ManageProfileHandlerTest, HandleSetProfileIconToGaiaAvatar) {
@@ -106,6 +125,30 @@ TEST_F(ManageProfileHandlerTest, HandleSetProfileName) {
}
TEST_F(ManageProfileHandlerTest, HandleGetAvailableIcons) {
+ PrefService* pref_service = profile()->GetPrefs();
+ pref_service->SetInteger(prefs::kProfileAvatarIndex, 7);
+
+ base::ListValue list_args_1;
+ list_args_1.AppendString("get-icons-callback-id");
+ handler()->HandleGetAvailableIcons(&list_args_1);
+
+ EXPECT_EQ(1U, web_ui()->call_data().size());
+
+ const content::TestWebUI::CallData& data_1 = *web_ui()->call_data().back();
+ EXPECT_EQ("cr.webUIResponse", data_1.function_name());
+
+ std::string callback_id_1;
+ ASSERT_TRUE(data_1.arg1()->GetAsString(&callback_id_1));
+ EXPECT_EQ("get-icons-callback-id", callback_id_1);
+
+ VerifyIconListWithSingleSelection(data_1.arg3(), 7);
+}
+
+TEST_F(ManageProfileHandlerTest, HandleGetAvailableIconsGaiaAvatarSelected) {
+ PrefService* pref_service = profile()->GetPrefs();
+ pref_service->SetInteger(prefs::kProfileAvatarIndex, 7);
+ pref_service->SetBoolean(prefs::kProfileUsingGAIAAvatar, true);
+
base::ListValue list_args;
list_args.AppendString("get-icons-callback-id");
handler()->HandleGetAvailableIcons(&list_args);
@@ -119,10 +162,13 @@ TEST_F(ManageProfileHandlerTest, HandleGetAvailableIcons) {
ASSERT_TRUE(data.arg1()->GetAsString(&callback_id));
EXPECT_EQ("get-icons-callback-id", callback_id);
- VerifyIconList(data.arg3());
+ VerifyIconListWithNoneSelected(data.arg3());
}
TEST_F(ManageProfileHandlerTest, ProfileAvatarChangedWebUIEvent) {
+ PrefService* pref_service = profile()->GetPrefs();
+ pref_service->SetInteger(prefs::kProfileAvatarIndex, 12);
+
handler()->OnProfileAvatarChanged(base::FilePath());
EXPECT_EQ(1U, web_ui()->call_data().size());
@@ -133,8 +179,7 @@ TEST_F(ManageProfileHandlerTest, ProfileAvatarChangedWebUIEvent) {
std::string event_id;
ASSERT_TRUE(data.arg1()->GetAsString(&event_id));
EXPECT_EQ("available-icons-changed", event_id);
-
- VerifyIconList(data.arg2());
+ VerifyIconListWithSingleSelection(data.arg2(), 12);
}
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc
index 17987af0a56..9c91e087592 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc
@@ -46,12 +46,16 @@ void MediaDevicesSelectionHandler::OnJavascriptDisallowed() {
}
void MediaDevicesSelectionHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback("getDefaultCaptureDevices",
- base::Bind(&MediaDevicesSelectionHandler::GetDefaultCaptureDevices,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("setDefaultCaptureDevice",
- base::Bind(&MediaDevicesSelectionHandler::SetDefaultCaptureDevice,
- base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "getDefaultCaptureDevices",
+ base::BindRepeating(
+ &MediaDevicesSelectionHandler::GetDefaultCaptureDevices,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "setDefaultCaptureDevice",
+ base::BindRepeating(
+ &MediaDevicesSelectionHandler::SetDefaultCaptureDevice,
+ base::Unretained(this)));
}
void MediaDevicesSelectionHandler::OnUpdateAudioDevices(
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc
index 4b128752b02..36037ef3dc4 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc
@@ -29,21 +29,27 @@ void StartupPagesHandler::RegisterMessages() {
if (Profile::FromWebUI(web_ui())->IsOffTheRecord())
return;
- web_ui()->RegisterMessageCallback("addStartupPage",
- base::Bind(&StartupPagesHandler::HandleAddStartupPage,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("editStartupPage",
- base::Bind(&StartupPagesHandler::HandleEditStartupPage,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("onStartupPrefsPageLoad",
- base::Bind(&StartupPagesHandler::HandleOnStartupPrefsPageLoad,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("removeStartupPage",
- base::Bind(&StartupPagesHandler::HandleRemoveStartupPage,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback("setStartupPagesToCurrentPages",
- base::Bind(&StartupPagesHandler::HandleSetStartupPagesToCurrentPages,
- base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "addStartupPage",
+ base::BindRepeating(&StartupPagesHandler::HandleAddStartupPage,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "editStartupPage",
+ base::BindRepeating(&StartupPagesHandler::HandleEditStartupPage,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "onStartupPrefsPageLoad",
+ base::BindRepeating(&StartupPagesHandler::HandleOnStartupPrefsPageLoad,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "removeStartupPage",
+ base::BindRepeating(&StartupPagesHandler::HandleRemoveStartupPage,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "setStartupPagesToCurrentPages",
+ base::BindRepeating(
+ &StartupPagesHandler::HandleSetStartupPagesToCurrentPages,
+ base::Unretained(this)));
}
void StartupPagesHandler::OnJavascriptAllowed() {
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc b/chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc
index c413d8569ab..10862aa2adc 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc
@@ -46,7 +46,7 @@
#include "extensions/common/permissions/api_permission.h"
#include "extensions/common/permissions/permissions_data.h"
#include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
+#include "third_party/blink/public/mojom/quota/quota_types.mojom.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/text/bytes_formatting.h"
@@ -125,70 +125,75 @@ SiteSettingsHandler::~SiteSettingsHandler() {
void SiteSettingsHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"fetchUsageTotal",
- base::Bind(&SiteSettingsHandler::HandleFetchUsageTotal,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleFetchUsageTotal,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "clearUsage",
- base::Bind(&SiteSettingsHandler::HandleClearUsage,
- base::Unretained(this)));
+ "clearUsage", base::BindRepeating(&SiteSettingsHandler::HandleClearUsage,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"fetchUsbDevices",
- base::Bind(&SiteSettingsHandler::HandleFetchUsbDevices,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleFetchUsbDevices,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"removeUsbDevice",
- base::Bind(&SiteSettingsHandler::HandleRemoveUsbDevice,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleRemoveUsbDevice,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setDefaultValueForContentType",
- base::Bind(&SiteSettingsHandler::HandleSetDefaultValueForContentType,
- base::Unretained(this)));
+ base::BindRepeating(
+ &SiteSettingsHandler::HandleSetDefaultValueForContentType,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getDefaultValueForContentType",
- base::Bind(&SiteSettingsHandler::HandleGetDefaultValueForContentType,
- base::Unretained(this)));
+ base::BindRepeating(
+ &SiteSettingsHandler::HandleGetDefaultValueForContentType,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getExceptionList",
- base::Bind(&SiteSettingsHandler::HandleGetExceptionList,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleGetExceptionList,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getOriginPermissions",
- base::Bind(&SiteSettingsHandler::HandleGetOriginPermissions,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleGetOriginPermissions,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setOriginPermissions",
- base::Bind(&SiteSettingsHandler::HandleSetOriginPermissions,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleSetOriginPermissions,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "clearFlashPref", base::Bind(&SiteSettingsHandler::HandleClearFlashPref,
- base::Unretained(this)));
+ "clearFlashPref",
+ base::BindRepeating(&SiteSettingsHandler::HandleClearFlashPref,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"resetCategoryPermissionForPattern",
- base::Bind(&SiteSettingsHandler::HandleResetCategoryPermissionForPattern,
- base::Unretained(this)));
+ base::BindRepeating(
+ &SiteSettingsHandler::HandleResetCategoryPermissionForPattern,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"setCategoryPermissionForPattern",
- base::Bind(&SiteSettingsHandler::HandleSetCategoryPermissionForPattern,
- base::Unretained(this)));
+ base::BindRepeating(
+ &SiteSettingsHandler::HandleSetCategoryPermissionForPattern,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
- "isOriginValid", base::Bind(&SiteSettingsHandler::HandleIsOriginValid,
- base::Unretained(this)));
+ "isOriginValid",
+ base::BindRepeating(&SiteSettingsHandler::HandleIsOriginValid,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"isPatternValid",
- base::Bind(&SiteSettingsHandler::HandleIsPatternValid,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleIsPatternValid,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"updateIncognitoStatus",
- base::Bind(&SiteSettingsHandler::HandleUpdateIncognitoStatus,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleUpdateIncognitoStatus,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"fetchZoomLevels",
- base::Bind(&SiteSettingsHandler::HandleFetchZoomLevels,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleFetchZoomLevels,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"removeZoomLevel",
- base::Bind(&SiteSettingsHandler::HandleRemoveZoomLevel,
- base::Unretained(this)));
+ base::BindRepeating(&SiteSettingsHandler::HandleRemoveZoomLevel,
+ base::Unretained(this)));
}
void SiteSettingsHandler::OnJavascriptAllowed() {
@@ -780,6 +785,7 @@ void SiteSettingsHandler::HandleIsOriginValid(const base::ListValue* args) {
void SiteSettingsHandler::HandleIsPatternValid(
const base::ListValue* args) {
+ AllowJavascript();
CHECK_EQ(2U, args->GetSize());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_handler.h b/chromium/chrome/browser/ui/webui/settings/site_settings_handler.h
index 01be8c4849d..9c78d451b85 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_handler.h
@@ -16,8 +16,8 @@
#include "content/public/browser/host_zoom_map.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
-#include "ppapi/features/features.h"
-#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
+#include "ppapi/buildflags/buildflags.h"
+#include "third_party/blink/public/mojom/quota/quota_types.mojom.h"
class HostContentSettingsMap;
class Profile;
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
index 7e40e5e5081..6efafe49981 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
@@ -31,7 +31,7 @@
#include "content/public/test/test_web_ui.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension_builder.h"
-#include "ppapi/features/features.h"
+#include "ppapi/buildflags/buildflags.h"
#include "testing/gtest/include/gtest/gtest.h"
#if defined(OS_CHROMEOS)
diff --git a/chromium/chrome/browser/ui/webui/settings/system_handler.cc b/chromium/chrome/browser/ui/webui/settings/system_handler.cc
index c87ab9fe623..7c7082779b9 100644
--- a/chromium/chrome/browser/ui/webui/settings/system_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/system_handler.cc
@@ -28,8 +28,9 @@ void SystemHandler::AddLoadTimeData(content::WebUIDataSource* data_source) {
void SystemHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
- "showProxySettings", base::Bind(&SystemHandler::HandleShowProxySettings,
- base::Unretained(this)));
+ "showProxySettings",
+ base::BindRepeating(&SystemHandler::HandleShowProxySettings,
+ base::Unretained(this)));
}
void SystemHandler::HandleShowProxySettings(const base::ListValue* /*args*/) {
diff --git a/chromium/chrome/browser/ui/webui/settings/tts_handler.cc b/chromium/chrome/browser/ui/webui/settings/tts_handler.cc
new file mode 100644
index 00000000000..fcb19846e6a
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/settings/tts_handler.cc
@@ -0,0 +1,52 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/settings/tts_handler.h"
+
+#include "base/bind.h"
+#include "base/values.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/speech/tts_controller_impl.h"
+#include "chrome/common/extensions/extension_constants.h"
+#include "content/public/browser/web_ui.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace settings {
+
+void TtsHandler::HandleGetGoogleTtsVoiceData(const base::ListValue* args) {
+ OnVoicesChanged();
+}
+
+void TtsHandler::OnVoicesChanged() {
+ TtsControllerImpl* impl = TtsControllerImpl::GetInstance();
+ std::vector<VoiceData> voices;
+ impl->GetVoices(Profile::FromWebUI(web_ui()), &voices);
+ base::ListValue responses;
+ for (const auto& voice : voices) {
+ if (voice.extension_id != extension_misc::kSpeechSynthesisExtensionId)
+ continue;
+
+ base::DictionaryValue response;
+ response.SetPath({"name"}, base::Value(voice.name));
+ response.SetPath(
+ {"language"},
+ base::Value(l10n_util::GetDisplayNameForLocale(
+ voice.lang, g_browser_process->GetApplicationLocale(), true)));
+ response.SetPath({"builtIn"}, base::Value(true));
+ responses.GetList().push_back(std::move(response));
+ }
+ AllowJavascript();
+ CallJavascriptFunction("cr.webUIListenerCallback",
+ base::Value("google-voice-data-updated"), responses);
+}
+
+void TtsHandler::RegisterMessages() {
+ web_ui()->RegisterMessageCallback(
+ "getGoogleTtsVoiceData",
+ base::BindRepeating(&TtsHandler::HandleGetGoogleTtsVoiceData,
+ base::Unretained(this)));
+}
+
+} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/tts_handler.h b/chromium/chrome/browser/ui/webui/settings/tts_handler.h
new file mode 100644
index 00000000000..36e76c5a592
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/settings/tts_handler.h
@@ -0,0 +1,35 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_TTS_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_SETTINGS_TTS_HANDLER_H_
+
+#include "chrome/browser/speech/tts_controller.h"
+#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
+
+namespace settings {
+
+// Chrome "/manageAccessibility/tts/*" settings page UI handler.
+class TtsHandler : public SettingsPageUIHandler, public VoicesChangedDelegate {
+ public:
+ TtsHandler() = default;
+ ~TtsHandler() override = default;
+
+ void HandleGetGoogleTtsVoiceData(const base::ListValue* args);
+
+ // SettingsPageUIHandler implementation.
+ void RegisterMessages() override;
+ void OnJavascriptAllowed() override {}
+ void OnJavascriptDisallowed() override {}
+
+ // VoicesChangedDelegate implementation.
+ void OnVoicesChanged() override;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TtsHandler);
+};
+
+} // namespace settings
+
+#endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_TTS_HANDLER_H_