Chromium Code Reviews| Index: chrome/browser/ui/webui/plugins_ui.cc |
| =================================================================== |
| --- chrome/browser/ui/webui/plugins_ui.cc (revision 86705) |
| +++ chrome/browser/ui/webui/plugins_ui.cc (working copy) |
| @@ -20,9 +20,9 @@ |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_window.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/chrome_content_client.h" |
| #include "chrome/common/chrome_paths.h" |
| -#include "chrome/common/jstemplate_builder.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/common/url_constants.h" |
| #include "content/browser/browser_thread.h" |
| @@ -31,31 +31,30 @@ |
| #include "grit/browser_resources.h" |
| #include "grit/generated_resources.h" |
| #include "grit/theme_resources.h" |
| -#include "ui/base/l10n/l10n_util.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "webkit/plugins/npapi/plugin_list.h" |
| +static const char kStringsJsFile[] = "strings.js"; |
| +static const char kPluginsJsFile[] = "plugins.js"; |
| + |
| namespace { |
| /////////////////////////////////////////////////////////////////////////////// |
| // |
| -// PluginsHTMLSource |
| +// PluginsUIHTMLSource |
| // |
| /////////////////////////////////////////////////////////////////////////////// |
| -class PluginsUIHTMLSource : public ChromeURLDataManager::DataSource { |
| +class PluginsUIHTMLSource : public ChromeWebUIDataSource { |
| public: |
| - PluginsUIHTMLSource() |
| - : DataSource(chrome::kChromeUIPluginsHost, MessageLoop::current()) {} |
| + PluginsUIHTMLSource(); |
| // 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"; |
| - } |
| + virtual std::string GetMimeType(const std::string&) const; |
| private: |
| ~PluginsUIHTMLSource() {} |
| @@ -63,67 +62,54 @@ |
| DISALLOW_COPY_AND_ASSIGN(PluginsUIHTMLSource); |
| }; |
| +PluginsUIHTMLSource::PluginsUIHTMLSource() |
| + : ChromeWebUIDataSource(chrome::kChromeUIPluginsHost) { |
| + AddLocalizedString("pluginsTitle", IDS_PLUGINS_TITLE); |
| + AddLocalizedString("pluginsDetailsModeLink", |
| + IDS_PLUGINS_DETAILS_MODE_LINK); |
| + AddLocalizedString("pluginsNoneInstalled", IDS_PLUGINS_NONE_INSTALLED); |
| + AddLocalizedString("pluginDisabled", IDS_PLUGINS_DISABLED_PLUGIN); |
| + AddLocalizedString("pluginDisabledByPolicy", |
| + IDS_PLUGINS_DISABLED_BY_POLICY_PLUGIN); |
| + AddLocalizedString("pluginCannotBeEnabledDueToPolicy", |
| + IDS_PLUGINS_CANNOT_ENABLE_DUE_TO_POLICY); |
| + AddLocalizedString("pluginEnabledByPolicy", |
| + IDS_PLUGINS_ENABLED_BY_POLICY_PLUGIN); |
| + AddLocalizedString("pluginCannotBeDisabledDueToPolicy", |
| + IDS_PLUGINS_CANNOT_DISABLE_DUE_TO_POLICY); |
| + AddLocalizedString("pluginDownload", IDS_PLUGINS_DOWNLOAD); |
| + AddLocalizedString("pluginName", IDS_PLUGINS_NAME); |
| + AddLocalizedString("pluginVersion", IDS_PLUGINS_VERSION); |
| + AddLocalizedString("pluginDescription", IDS_PLUGINS_DESCRIPTION); |
| + AddLocalizedString("pluginPath", IDS_PLUGINS_PATH); |
| + AddLocalizedString("pluginMimeTypes", IDS_PLUGINS_MIME_TYPES); |
| + AddLocalizedString("pluginMimeTypesMimeType", |
| + IDS_PLUGINS_MIME_TYPES_MIME_TYPE); |
| + AddLocalizedString("pluginMimeTypesDescription", |
| + IDS_PLUGINS_MIME_TYPES_DESCRIPTION); |
| + AddLocalizedString("pluginMimeTypesFileExtensions", |
| + IDS_PLUGINS_MIME_TYPES_FILE_EXTENSIONS); |
| + AddLocalizedString("disable", IDS_PLUGINS_DISABLE); |
| + AddLocalizedString("enable", IDS_PLUGINS_ENABLE); |
| + AddLocalizedString("noPlugins", IDS_PLUGINS_NO_PLUGINS); |
| +} |
| + |
| void PluginsUIHTMLSource::StartDataRequest(const std::string& path, |
| bool is_incognito, |
| int request_id) { |
| - // Strings used in the JsTemplate file. |
| - DictionaryValue localized_strings; |
| - localized_strings.SetString("pluginsTitle", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_TITLE)); |
| - localized_strings.SetString("pluginsDetailsModeLink", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_DETAILS_MODE_LINK)); |
| - localized_strings.SetString("pluginsNoneInstalled", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_NONE_INSTALLED)); |
| - localized_strings.SetString("pluginDisabled", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_DISABLED_PLUGIN)); |
| - localized_strings.SetString("pluginDisabledByPolicy", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_DISABLED_BY_POLICY_PLUGIN)); |
| - localized_strings.SetString("pluginCannotBeEnabledDueToPolicy", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_CANNOT_ENABLE_DUE_TO_POLICY)); |
| - localized_strings.SetString("pluginEnabledByPolicy", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_ENABLED_BY_POLICY_PLUGIN)); |
| - localized_strings.SetString("pluginCannotBeDisabledDueToPolicy", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_CANNOT_DISABLE_DUE_TO_POLICY)); |
| - localized_strings.SetString("pluginDownload", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_DOWNLOAD)); |
| - localized_strings.SetString("pluginName", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_NAME)); |
| - localized_strings.SetString("pluginVersion", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_VERSION)); |
| - localized_strings.SetString("pluginDescription", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_DESCRIPTION)); |
| - localized_strings.SetString("pluginPath", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_PATH)); |
| - localized_strings.SetString("pluginMimeTypes", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_MIME_TYPES)); |
| - localized_strings.SetString("pluginMimeTypesMimeType", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_MIME_TYPES_MIME_TYPE)); |
| - localized_strings.SetString("pluginMimeTypesDescription", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_MIME_TYPES_DESCRIPTION)); |
| - localized_strings.SetString("pluginMimeTypesFileExtensions", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_MIME_TYPES_FILE_EXTENSIONS)); |
| - localized_strings.SetString("disable", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_DISABLE)); |
| - localized_strings.SetString("enable", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_ENABLE)); |
| - localized_strings.SetString("noPlugins", |
| - l10n_util::GetStringUTF16(IDS_PLUGINS_NO_PLUGINS)); |
| + if (path == kStringsJsFile) { |
| + SendLocalizedStringsAsJSON(request_id); |
| + } else { |
| + int idr = (path == kPluginsJsFile) ? IDR_PLUGINS_JS : IDR_PLUGINS_HTML; |
| + SendFromResourceBundle(request_id, idr); |
|
Bernhard Bauer
2011/05/27 20:01:29
We should think about a more general way to do thi
|
| + } |
| +} |
| - ChromeURLDataManager::DataSource::SetFontAndTextDirection(&localized_strings); |
| +std::string PluginsUIHTMLSource::GetMimeType(const std::string& path) const { |
| + if (path == kStringsJsFile || path == kPluginsJsFile) |
| + return "application/javascript"; |
| - static const base::StringPiece plugins_html( |
| - ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_PLUGINS_HTML)); |
| - std::string full_html(plugins_html.data(), plugins_html.size()); |
| - jstemplate_builder::AppendJsonHtml(&localized_strings, &full_html); |
| - jstemplate_builder::AppendI18nTemplateSourceHtml(&full_html); |
| - jstemplate_builder::AppendI18nTemplateProcessHtml(&full_html); |
| - jstemplate_builder::AppendJsTemplateSourceHtml(&full_html); |
| - |
| - scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes); |
| - html_bytes->data.resize(full_html.size()); |
| - std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin()); |
| - |
| - SendResponse(request_id, html_bytes); |
| + return "text/html"; |
| } |
| //////////////////////////////////////////////////////////////////////////////// |