diff options
author | finnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-09 00:07:44 +0000 |
---|---|---|
committer | finnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-09 00:07:44 +0000 |
commit | 8e630053b5febbe92a1582c1b1f8195b742b37cb (patch) | |
tree | c01ed97a0d9fdb9113d2301c1ccb683142ff2dc4 | |
parent | 780492125b123804f3dfa353eaf19d35f2c908e6 (diff) | |
download | chromium_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
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. |