From 12c105f167fbcd91b0958161b8024f6fd08017a6 Mon Sep 17 00:00:00 2001 From: "tsepez@chromium.org" Date: Mon, 10 Oct 2011 17:22:09 +0000 Subject: Add Content-Security-Policy to chromeos chrome://choose-mobile-network page. Review URL: http://codereview.chromium.org/8168005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104737 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/browser_resources.grd | 3 +- .../resources/chromeos/choose_mobile_network.html | 5 +- .../ui/webui/chrome_url_data_manager_backend.cc | 1 - .../ui/webui/chromeos/choose_mobile_network_ui.cc | 84 +++++++--------------- 4 files changed, 30 insertions(+), 63 deletions(-) diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd index b97d4b1..d06ce04 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd @@ -121,7 +121,8 @@ - + + diff --git a/chrome/browser/resources/chromeos/choose_mobile_network.html b/chrome/browser/resources/chromeos/choose_mobile_network.html index f66cff7..a3ab890 100644 --- a/chrome/browser/resources/chromeos/choose_mobile_network.html +++ b/chrome/browser/resources/chromeos/choose_mobile_network.html @@ -9,7 +9,8 @@ - + +
@@ -35,5 +36,7 @@
+ + diff --git a/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc b/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc index 1815c28..f5fda2b 100644 --- a/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc +++ b/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc @@ -63,7 +63,6 @@ class ChromeURLContentSecurityPolicyExceptionSet insert(chrome::kChromeUITextfieldsHost); #if defined(OS_CHROMEOS) insert(chrome::kChromeUIActiveDownloadsHost); - insert(chrome::kChromeUIChooseMobileNetworkHost); insert(chrome::kChromeUIEnterpriseEnrollmentHost); insert(chrome::kChromeUIImageBurnerHost); insert(chrome::kChromeUIKeyboardOverlayHost); diff --git a/chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc b/chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc index bf3a9bf..c205328 100644 --- a/chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc +++ b/chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.cc @@ -17,6 +17,7 @@ #include "chrome/browser/chromeos/cros/network_library.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/chrome_url_data_manager.h" +#include "chrome/browser/ui/webui/chrome_web_ui_data_source.h" #include "chrome/common/jstemplate_builder.h" #include "chrome/common/url_constants.h" #include "content/browser/browser_thread.h" @@ -44,25 +45,27 @@ const char kOperatorNameProperty[] = "operatorName"; const char kStatusProperty[] = "status"; const char kTechnologyProperty[] = "technology"; -class ChooseMobileNetworkHTMLSource - : public ChromeURLDataManager::DataSource { - public: - ChooseMobileNetworkHTMLSource(); - - // Called when the network layer has requested a resource underneath - // the path we registered. - virtual void StartDataRequest(const std::string& path, - bool is_incognito, - int request_id); - virtual std::string GetMimeType(const std::string&) const { - return "text/html"; - } - - private: - virtual ~ChooseMobileNetworkHTMLSource() {} - - DISALLOW_COPY_AND_ASSIGN(ChooseMobileNetworkHTMLSource); -}; +ChromeWebUIDataSource *CreateChooseMobileNetworkUIHTMLSource() { + ChromeWebUIDataSource *source = + new ChromeWebUIDataSource(chrome::kChromeUIChooseMobileNetworkHost); + + source->AddLocalizedString("chooseNetworkTitle", + IDS_NETWORK_CHOOSE_MOBILE_NETWORK); + source->AddLocalizedString("scanningMsgLine1", + IDS_NETWORK_SCANNING_FOR_MOBILE_NETWORKS); + source->AddLocalizedString("scanningMsgLine2", + IDS_NETWORK_SCANNING_THIS_MAY_TAKE_A_MINUTE); + source->AddLocalizedString("noMobileNetworks", + IDS_NETWORK_NO_MOBILE_NETWORKS); + source->AddLocalizedString("connect", IDS_OPTIONS_SETTINGS_CONNECT); + source->AddLocalizedString("cancel", IDS_CANCEL); + + source->set_json_path("strings.js"); + source->add_resource_path("choose_mobile_network.js", + IDR_CHOOSE_MOBILE_NETWORK_JS); + source->set_default_resource(IDR_CHOOSE_MOBILE_NETWORK_HTML); + return source; +} class ChooseMobileNetworkHandler : public WebUIMessageHandler, @@ -92,44 +95,6 @@ class ChooseMobileNetworkHandler DISALLOW_COPY_AND_ASSIGN(ChooseMobileNetworkHandler); }; -// ChooseMobileNetworkHTMLSource implementation. - -ChooseMobileNetworkHTMLSource::ChooseMobileNetworkHTMLSource() - : DataSource(chrome::kChromeUIChooseMobileNetworkHost, - MessageLoop::current()) { -} - -void ChooseMobileNetworkHTMLSource::StartDataRequest(const std::string& path, - bool is_incognito, - int request_id) { - DictionaryValue strings; - strings.SetString( - "chooseNetworkTitle", - l10n_util::GetStringUTF16(IDS_NETWORK_CHOOSE_MOBILE_NETWORK)); - strings.SetString( - "scanningMsgLine1", - l10n_util::GetStringUTF16(IDS_NETWORK_SCANNING_FOR_MOBILE_NETWORKS)); - strings.SetString( - "scanningMsgLine2", - l10n_util::GetStringUTF16(IDS_NETWORK_SCANNING_THIS_MAY_TAKE_A_MINUTE)); - strings.SetString( - "noMobileNetworks", - l10n_util::GetStringUTF16(IDS_NETWORK_NO_MOBILE_NETWORKS)); - strings.SetString("connect", - l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_CONNECT)); - strings.SetString("cancel", l10n_util::GetStringUTF16(IDS_CANCEL)); - SetFontAndTextDirection(&strings); - - static const base::StringPiece html( - ResourceBundle::GetSharedInstance().GetRawDataResource( - IDR_CHOOSE_MOBILE_NETWORK_HTML)); - - std::string full_html = jstemplate_builder::GetI18nTemplateHtml(html, - &strings); - - SendResponse(request_id, base::RefCountedString::TakeString(&full_html)); -} - // ChooseMobileNetworkHandler implementation. ChooseMobileNetworkHandler::ChooseMobileNetworkHandler() @@ -254,11 +219,10 @@ ChooseMobileNetworkUI::ChooseMobileNetworkUI(TabContents* contents) : ChromeWebUI(contents) { ChooseMobileNetworkHandler* handler = new ChooseMobileNetworkHandler(); AddMessageHandler((handler)->Attach(this)); - ChooseMobileNetworkHTMLSource* html_source = - new ChooseMobileNetworkHTMLSource(); // Set up the "chrome://choose-mobile-network" source. Profile* profile = Profile::FromBrowserContext(contents->browser_context()); - profile->GetChromeURLDataManager()->AddDataSource(html_source); + profile->GetChromeURLDataManager()->AddDataSource( + CreateChooseMobileNetworkUIHTMLSource()); } } // namespace chromeos -- cgit v1.1