| Index: chrome/browser/ui/webui/plugins_ui.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/plugins_ui.cc (revision 87333)
|
| +++ 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);
|
| + }
|
| +}
|
|
|
| - 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";
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|