From 816405126540e584fe60df9363ce655a4dd97ea9 Mon Sep 17 00:00:00 2001 From: estade Date: Thu, 20 Aug 2015 17:13:55 -0700 Subject: [PATCH] Fix broken channel icon in chrome://help on CrOS Add help-frame data source from options/ even when we're not using help-frame (i.e. --enable-settings-window) BUG=521498 Review URL: https://codereview.chromium.org/1290793004 Cr-Commit-Position: refs/heads/master@{#344623} --- chrome/browser/ui/webui/help/help_ui.cc | 36 ++++++++++++--------------- chrome/browser/ui/webui/help/help_ui.h | 6 +++++ chrome/browser/ui/webui/options/options_ui.cc | 9 +++++++ 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/chrome/browser/ui/webui/help/help_ui.cc b/chrome/browser/ui/webui/help/help_ui.cc index a3f15cde034e..ff4f65b3e398 100644 --- a/chrome/browser/ui/webui/help/help_ui.cc +++ b/chrome/browser/ui/webui/help/help_ui.cc @@ -15,9 +15,23 @@ #include "grit/browser_resources.h" #include "grit/theme_resources.h" -namespace { +HelpUI::HelpUI(content::WebUI* web_ui) + : WebUIController(web_ui) { + Profile* profile = Profile::FromWebUI(web_ui); + content::WebUIDataSource* source = CreateAboutPageHTMLSource(); + + HelpHandler* handler = new HelpHandler(); + base::DictionaryValue localized_strings; + HelpHandler::GetLocalizedValues(&localized_strings); + source->AddLocalizedStrings(localized_strings); + content::WebUIDataSource::Add(profile, source); + web_ui->AddMessageHandler(handler); +} -content::WebUIDataSource* CreateAboutPageHTMLSource() { +HelpUI::~HelpUI() { +} + +content::WebUIDataSource* HelpUI::CreateAboutPageHTMLSource() { content::WebUIDataSource* source = content::WebUIDataSource::Create(chrome::kChromeUIHelpFrameHost); @@ -58,21 +72,3 @@ content::WebUIDataSource* CreateAboutPageHTMLSource() { source->AddResourcePath("current-channel-logo", product_logo); return source; } - -} // namespace - -HelpUI::HelpUI(content::WebUI* web_ui) - : WebUIController(web_ui) { - Profile* profile = Profile::FromWebUI(web_ui); - content::WebUIDataSource* source = CreateAboutPageHTMLSource(); - - HelpHandler* handler = new HelpHandler(); - base::DictionaryValue localized_strings; - HelpHandler::GetLocalizedValues(&localized_strings); - source->AddLocalizedStrings(localized_strings); - content::WebUIDataSource::Add(profile, source); - web_ui->AddMessageHandler(handler); -} - -HelpUI::~HelpUI() { -} diff --git a/chrome/browser/ui/webui/help/help_ui.h b/chrome/browser/ui/webui/help/help_ui.h index f066c6684a36..b957615a0790 100644 --- a/chrome/browser/ui/webui/help/help_ui.h +++ b/chrome/browser/ui/webui/help/help_ui.h @@ -7,11 +7,17 @@ #include "content/public/browser/web_ui_controller.h" +namespace content { +class WebUIDataSource; +} + class HelpUI : public content::WebUIController { public: explicit HelpUI(content::WebUI* web_ui); ~HelpUI() override; + static content::WebUIDataSource* CreateAboutPageHTMLSource(); + private: DISALLOW_COPY_AND_ASSIGN(HelpUI); }; diff --git a/chrome/browser/ui/webui/options/options_ui.cc b/chrome/browser/ui/webui/options/options_ui.cc index e69c1990c2f6..3ed9afeae273 100644 --- a/chrome/browser/ui/webui/options/options_ui.cc +++ b/chrome/browser/ui/webui/options/options_ui.cc @@ -22,6 +22,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/extensions/tab_helper.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/webui/help/help_ui.h" #include "chrome/browser/ui/webui/metrics_handler.h" #include "chrome/browser/ui/webui/options/autofill_options_handler.h" #include "chrome/browser/ui/webui/options/automatic_settings_reset_handler.h" @@ -47,6 +48,7 @@ #include "chrome/browser/ui/webui/options/startup_pages_handler.h" #include "chrome/browser/ui/webui/options/sync_setup_handler.h" #include "chrome/browser/ui/webui/theme_source.h" +#include "chrome/common/chrome_switches.h" #include "chrome/common/url_constants.h" #include "chrome/grit/generated_resources.h" #include "chrome/grit/locale_settings.h" @@ -58,6 +60,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_ui.h" +#include "content/public/browser/web_ui_data_source.h" #include "grit/options_resources.h" #include "grit/theme_resources.h" #include "net/base/escape.h" @@ -379,6 +382,12 @@ OptionsUI::OptionsUI(content::WebUI* web_ui) pointer_device_observer_->AddObserver(browser_options_handler); pointer_device_observer_->AddObserver(pointer_handler); #endif + + if (switches::AboutInSettingsEnabled()) { + content::WebUIDataSource* help_source = HelpUI::CreateAboutPageHTMLSource(); + content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(), + help_source); + } } OptionsUI::~OptionsUI() { -- 2.11.4.GIT