summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-09 00:07:44 +0000
committerfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-09 00:07:44 +0000
commit8e630053b5febbe92a1582c1b1f8195b742b37cb (patch)
treec01ed97a0d9fdb9113d2301c1ccb683142ff2dc4
parent780492125b123804f3dfa353eaf19d35f2c908e6 (diff)
downloadchromium_src-8e630053b5febbe92a1582c1b1f8195b742b37cb.zip
chromium_src-8e630053b5febbe92a1582c1b1f8195b742b37cb.tar.gz
chromium_src-8e630053b5febbe92a1582c1b1f8195b742b37cb.tar.bz2
Followup patch to clean up a couple of issues raised by dbeam (send all UI info down to page in one call and change signature of one function).
See previous review here: https://codereview.chromium.org/266473005/ BUG=366103 Review URL: https://codereview.chromium.org/267013004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269118 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/resources/options/browser_options.js68
-rw-r--r--chrome/browser/ui/webui/options/browser_options_handler.cc78
-rw-r--r--chrome/browser/ui/webui/options/browser_options_handler.h5
3 files changed, 57 insertions, 94 deletions
diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js
index 667bc5f..4f96c7d 100644
--- a/chrome/browser/resources/options/browser_options.js
+++ b/chrome/browser/resources/options/browser_options.js
@@ -1589,64 +1589,31 @@ cr.define('options', function() {
},
/**
- * Toggles the bubble that shows which extension is controlling the search
- * engine.
- * @param {string} extensionId The ID of the extension controlling the
- * default search engine setting.
- * @param {string} extensionName The name of the extension.
+ * Toggles the warning boxes that show which extension is controlling
+ * various settings of Chrome.
+ * @param {object} details A dictionary of ID+name pairs for each of the
+ * settings controlled by an extension.
* @private
*/
- toggleSearchEngineControlled_: function(extensionId, extensionName) {
+ toggleExtensionIndicators_: function(details) {
this.toggleExtensionControlledBox_('search-section-content',
'search-engine-controlled',
- extensionId,
- extensionName);
- },
-
- /**
- * Toggles the bubble that shows which extension is controlling the home
- * page.
- * @param {string} extensionId The ID of the extension controlling the
- * home page setting.
- * @param {string} extensionName The name of the extension.
- * @private
- */
- toggleHomepageControlled_: function(extensionId, extensionName) {
+ details.searchEngine.id,
+ details.searchEngine.name);
this.toggleExtensionControlledBox_('extension-controlled-container',
'homepage-controlled',
- extensionId,
- extensionName);
- },
-
- /**
- * Toggles the bubble that shows which extension is controlling the new tab
- * page.
- * @param {string} extensionId The ID of the extension controlling the
- * new tab page setting.
- * @param {string} extensionName The name of the extension.
- * @private
- */
- toggleNewTabPageControlled_: function(extensionId, extensionName) {
+ details.homePage.id,
+ details.homePage.name);
+ this.toggleExtensionControlledBox_('startup-section-content',
+ 'startpage-controlled',
+ details.startUpPage.id,
+ details.startUpPage.name);
this.toggleExtensionControlledBox_('newtab-section-content',
'newtab-controlled',
- extensionId,
- extensionName);
+ details.newTabPage.id,
+ details.newTabPage.name);
},
- /**
- * Toggles the bubble that shows which extension is controlling the startup
- * pages.
- * @param {string} extensionId The ID of the extension controlling the
- * startup pages setting.
- * @param {string} extensionName The name of the extension.
- * @private
- */
- toggleStartupPagesControlled_: function(extensionId, extensionName) {
- this.toggleExtensionControlledBox_('startup-section-content',
- 'startpage-controlled',
- extensionId,
- extensionName);
- },
/**
* Show/hide touchpad-related settings.
@@ -1823,10 +1790,7 @@ cr.define('options', function() {
'showManagedUserImportSuccess',
'showMouseControls',
'showTouchpadControls',
- 'toggleHomepageControlled',
- 'toggleNewTabPageControlled',
- 'toggleSearchEngineControlled',
- 'toggleStartupPagesControlled',
+ 'toggleExtensionIndicators',
'updateAccountPicture',
'updateAutoLaunchState',
'updateDefaultBrowserState',
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc
index 215f19d..147df63d 100644
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc
@@ -143,6 +143,21 @@ using content::Referrer;
using extensions::Extension;
using extensions::ExtensionRegistry;
+namespace {
+
+#if defined(OS_WIN)
+void AppendExtensionData(const std::string& key,
+ const Extension* extension,
+ base::DictionaryValue* dict) {
+ scoped_ptr<base::DictionaryValue> details(new base::DictionaryValue);
+ details->SetString("id", extension ? extension->id() : std::string());
+ details->SetString("name", extension ? extension->name() : std::string());
+ dict->Set(key, details.release());
+}
+#endif // defined(OS_WIN)
+
+} // namespace
+
namespace options {
BrowserOptionsHandler::BrowserOptionsHandler()
@@ -711,7 +726,7 @@ void BrowserOptionsHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"refreshExtensionControlIndicators",
base::Bind(
- &BrowserOptionsHandler::SetupExtensionControlledIndicators,
+ &BrowserOptionsHandler::HandleRefreshExtensionControlIndicators,
base::Unretained(this)));
#endif // defined(OS_WIN)
}
@@ -822,17 +837,14 @@ void BrowserOptionsHandler::InitializeHandler() {
base::Unretained(this)));
#if defined(OS_WIN)
- const base::ListValue* empty = NULL;
profile_pref_registrar_.Add(
prefs::kURLsToRestoreOnStartup,
base::Bind(&BrowserOptionsHandler::SetupExtensionControlledIndicators,
- base::Unretained(this),
- empty));
+ base::Unretained(this)));
profile_pref_registrar_.Add(
prefs::kHomePage,
base::Bind(&BrowserOptionsHandler::SetupExtensionControlledIndicators,
- base::Unretained(this),
- empty));
+ base::Unretained(this)));
#endif // defined(OS_WIN)
#if defined(OS_CHROMEOS)
@@ -875,7 +887,7 @@ void BrowserOptionsHandler::InitializePage() {
SetupManageCertificatesSection();
SetupManagingSupervisedUsers();
SetupEasyUnlock();
- SetupExtensionControlledIndicators(NULL);
+ SetupExtensionControlledIndicators();
#if defined(OS_CHROMEOS)
SetupAccessibilityFeatures();
@@ -1102,7 +1114,7 @@ void BrowserOptionsHandler::OnTemplateURLServiceChanged() {
template_url_service_->is_default_search_managed() ||
template_url_service_->IsExtensionControlledDefaultSearch()));
- SetupExtensionControlledIndicators(NULL);
+ SetupExtensionControlledIndicators();
}
void BrowserOptionsHandler::SetDefaultSearchEngine(
@@ -1135,14 +1147,14 @@ void BrowserOptionsHandler::AddTemplateUrlServiceObserver() {
void BrowserOptionsHandler::OnExtensionLoaded(
content::BrowserContext* browser_context,
const Extension* extension) {
- SetupExtensionControlledIndicators(NULL);
+ SetupExtensionControlledIndicators();
}
void BrowserOptionsHandler::OnExtensionUnloaded(
content::BrowserContext* browser_context,
const Extension* extension,
extensions::UnloadedExtensionInfo::Reason reason) {
- SetupExtensionControlledIndicators(NULL);
+ SetupExtensionControlledIndicators();
}
void BrowserOptionsHandler::Observe(
@@ -1542,6 +1554,11 @@ void BrowserOptionsHandler::HandleRequestHotwordSetupRetry(
HotwordServiceFactory::RetryHotwordExtension(Profile::FromWebUI(web_ui()));
}
+void BrowserOptionsHandler::HandleRefreshExtensionControlIndicators(
+ const base::ListValue* args) {
+ SetupExtensionControlledIndicators();
+}
+
#if defined(OS_CHROMEOS)
void BrowserOptionsHandler::HandleOpenWallpaperManager(
const base::ListValue* args) {
@@ -1734,40 +1751,23 @@ void BrowserOptionsHandler::SetupEasyUnlock() {
has_pairing_value);
}
-// Setup the UI for showing which settings are extension controlled.
-void BrowserOptionsHandler::SetupExtensionControlledIndicators(
- const base::ListValue* args) {
+void BrowserOptionsHandler::SetupExtensionControlledIndicators() {
#if defined(OS_WIN)
+ base::DictionaryValue extension_controlled;
+
// Check if an extension is overriding the Search Engine.
const extensions::Extension* extension = extensions::OverridesSearchEngine(
Profile::FromWebUI(web_ui()), NULL);
- base::StringValue extension_id(extension ? extension->id() : std::string());
- base::StringValue extension_name(
- extension ? extension->name() : std::string());
- web_ui()->CallJavascriptFunction(
- "BrowserOptions.toggleSearchEngineControlled",
- extension_id,
- extension_name);
+ AppendExtensionData("searchEngine", extension, &extension_controlled);
// Check if an extension is overriding the Home page.
extension = extensions::OverridesHomepage(Profile::FromWebUI(web_ui()), NULL);
- extension_id = base::StringValue(extension ? extension->id() : std::string());
- extension_name = base::StringValue(
- extension ? extension->name() : std::string());
- web_ui()->CallJavascriptFunction("BrowserOptions.toggleHomepageControlled",
- extension_id,
- extension_name);
+ AppendExtensionData("homePage", extension, &extension_controlled);
// Check if an extension is overriding the Startup pages.
extension = extensions::OverridesStartupPages(
Profile::FromWebUI(web_ui()), NULL);
- extension_id = base::StringValue(extension ? extension->id() : std::string());
- extension_name = base::StringValue(
- extension ? extension->name() : std::string());
- web_ui()->CallJavascriptFunction(
- "BrowserOptions.toggleStartupPagesControlled",
- extension_id,
- extension_name);
+ AppendExtensionData("startUpPage", extension, &extension_controlled);
// Check if an extension is overriding the NTP page.
GURL ntp_url(chrome::kChromeUINewTabURL);
@@ -1784,14 +1784,10 @@ void BrowserOptionsHandler::SetupExtensionControlledIndicators(
extension = registry->GetExtensionById(ntp_url.host(),
ExtensionRegistry::ENABLED);
}
- extension_id = base::StringValue(
- extension ? extension->id() : std::string());
- extension_name = base::StringValue(
- extension ? extension->name() : std::string());
- web_ui()->CallJavascriptFunction(
- "BrowserOptions.toggleNewTabPageControlled",
- extension_id,
- extension_name);
+ AppendExtensionData("newTabPage", extension, &extension_controlled);
+
+ web_ui()->CallJavascriptFunction("BrowserOptions.toggleExtensionIndicators",
+ extension_controlled);
#endif // defined(OS_WIN)
}
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.h b/chrome/browser/ui/webui/options/browser_options_handler.h
index cc9f065..2aa6336 100644
--- a/chrome/browser/ui/webui/options/browser_options_handler.h
+++ b/chrome/browser/ui/webui/options/browser_options_handler.h
@@ -281,6 +281,9 @@ class BrowserOptionsHandler
// Callback for "launchEasyUnlockSetup" message.
void HandleLaunchEasyUnlockSetup(const base::ListValue* args);
+ // Callback for "refreshExtensionControlIndicators" message.
+ void HandleRefreshExtensionControlIndicators(const base::ListValue* args);
+
#if defined(OS_CHROMEOS)
// Opens the wallpaper manager component extension.
void HandleOpenWallpaperManager(const base::ListValue* args);
@@ -323,7 +326,7 @@ class BrowserOptionsHandler
void SetupEasyUnlock();
// Setup the UI for showing which settings are extension controlled.
- void SetupExtensionControlledIndicators(const base::ListValue* args);
+ void SetupExtensionControlledIndicators();
#if defined(OS_CHROMEOS)
// Setup the accessibility features for ChromeOS.