| Index: chrome/browser/ui/webui/options/options_ui.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/options/options_ui.cc (revision 84887)
|
| +++ chrome/browser/ui/webui/options/options_ui.cc (working copy)
|
| @@ -44,10 +44,10 @@
|
| #include "content/browser/tab_contents/tab_contents_delegate.h"
|
| #include "content/browser/user_metrics.h"
|
| #include "content/common/notification_type.h"
|
| -#include "grit/browser_resources.h"
|
| #include "grit/chromium_strings.h"
|
| #include "grit/generated_resources.h"
|
| #include "grit/locale_settings.h"
|
| +#include "grit/options_resources.h"
|
| #include "grit/theme_resources.h"
|
| #include "net/base/escape.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| @@ -73,6 +73,9 @@
|
| #include "chrome/browser/ui/webui/options/certificate_manager_handler.h"
|
| #endif
|
|
|
| +static const char kLocalizedStringsFile[] = "strings.js";
|
| +static const char kOptionsBundleJsFile[] = "options_bundle.js";
|
| +
|
| ////////////////////////////////////////////////////////////////////////////////
|
| //
|
| // OptionsUIHTMLSource
|
| @@ -110,22 +113,44 @@
|
| void OptionsUIHTMLSource::StartDataRequest(const std::string& path,
|
| bool is_incognito,
|
| int request_id) {
|
| + scoped_refptr<RefCountedBytes> response_bytes(new RefCountedBytes);
|
| SetFontAndTextDirection(localized_strings_.get());
|
|
|
| - static const base::StringPiece options_html(
|
| - ResourceBundle::GetSharedInstance().GetRawDataResource(
|
| - IDR_OPTIONS_HTML));
|
| - const std::string full_html = jstemplate_builder::GetI18nTemplateHtml(
|
| - options_html, localized_strings_.get());
|
| + if (path == kLocalizedStringsFile) {
|
| + // Return dynamically-generated strings from memory.
|
| + std::string template_data;
|
| + jstemplate_builder::AppendJsonJS(localized_strings_.get(), &template_data);
|
| + response_bytes->data.resize(template_data.size());
|
| + std::copy(template_data.begin(),
|
| + template_data.end(),
|
| + response_bytes->data.begin());
|
| + } else if (path == kOptionsBundleJsFile) {
|
| + // Return (and cache) the options javascript code.
|
| + static const base::StringPiece options_javascript(
|
| + ResourceBundle::GetSharedInstance().GetRawDataResource(
|
| + IDR_OPTIONS_BUNDLE_JS));
|
| + response_bytes->data.resize(options_javascript.size());
|
| + std::copy(options_javascript.begin(),
|
| + options_javascript.end(),
|
| + response_bytes->data.begin());
|
| + } else {
|
| + // Return (and cache) the main options html page as the default.
|
| + static const base::StringPiece options_html(
|
| + ResourceBundle::GetSharedInstance().GetRawDataResource(
|
| + IDR_OPTIONS_HTML));
|
| + response_bytes->data.resize(options_html.size());
|
| + std::copy(options_html.begin(),
|
| + options_html.end(),
|
| + response_bytes->data.begin());
|
| + }
|
|
|
| - 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);
|
| + SendResponse(request_id, response_bytes);
|
| }
|
|
|
| -std::string OptionsUIHTMLSource::GetMimeType(const std::string&) const {
|
| +std::string OptionsUIHTMLSource::GetMimeType(const std::string& path) const {
|
| + if (path == kLocalizedStringsFile || path == kOptionsBundleJsFile)
|
| + return "application/javascript";
|
| +
|
| return "text/html";
|
| }
|
|
|
|
|