Index: chrome/browser/ui/webui/crashes_ui.cc |
=================================================================== |
--- chrome/browser/ui/webui/crashes_ui.cc (revision 90605) |
+++ chrome/browser/ui/webui/crashes_ui.cc (working copy) |
@@ -13,6 +13,7 @@ |
#include "chrome/browser/prefs/pref_service.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/chrome_version_info.h" |
#include "chrome/common/jstemplate_builder.h" |
#include "chrome/common/pref_names.h" |
@@ -31,66 +32,58 @@ |
namespace { |
+const char kStringsJsPath[] = "strings.js"; |
+const char kCrashesJsPath[] = "crashes.js"; |
+ |
/////////////////////////////////////////////////////////////////////////////// |
// |
// CrashesUIHTMLSource |
// |
/////////////////////////////////////////////////////////////////////////////// |
-class CrashesUIHTMLSource : public ChromeURLDataManager::DataSource { |
+class CrashesUIHTMLSource : public ChromeWebUIDataSource { |
public: |
- CrashesUIHTMLSource() |
- : DataSource(chrome::kChromeUICrashesHost, MessageLoop::current()) {} |
- |
- // Called when the network layer has requested a resource underneath |
- // the path we registered. |
+ CrashesUIHTMLSource(); |
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& path) const; |
private: |
~CrashesUIHTMLSource() {} |
- |
DISALLOW_COPY_AND_ASSIGN(CrashesUIHTMLSource); |
}; |
+ |
+CrashesUIHTMLSource::CrashesUIHTMLSource() |
+ : ChromeWebUIDataSource(chrome::kChromeUICrashesHost) { |
+ AddLocalizedString("crashesTitle",IDS_CRASHES_TITLE); |
+ AddLocalizedString("crashCountFormat", |
+ IDS_CRASHES_CRASH_COUNT_BANNER_FORMAT); |
+ AddLocalizedString("crashHeaderFormat", IDS_CRASHES_CRASH_HEADER_FORMAT); |
+ AddLocalizedString("crashTimeFormat", IDS_CRASHES_CRASH_TIME_FORMAT); |
+ AddLocalizedString("bugLinkText", IDS_CRASHES_BUG_LINK_LABEL); |
+ AddLocalizedString("noCrashesMessage", IDS_CRASHES_NO_CRASHES_MESSAGE); |
+ AddLocalizedString("disabledHeader", IDS_CRASHES_DISABLED_HEADER); |
+ AddLocalizedString("disabledMessage", IDS_CRASHES_DISABLED_MESSAGE); |
+} |
+ |
void CrashesUIHTMLSource::StartDataRequest(const std::string& path, |
Evan Stade
2011/06/30 23:25:23
didn't you change this interface recently
|
bool is_incognito, |
int request_id) { |
- DictionaryValue localized_strings; |
- localized_strings.SetString("crashesTitle", |
- l10n_util::GetStringUTF16(IDS_CRASHES_TITLE)); |
- localized_strings.SetString("crashCountFormat", |
- l10n_util::GetStringUTF16(IDS_CRASHES_CRASH_COUNT_BANNER_FORMAT)); |
- localized_strings.SetString("crashHeaderFormat", |
- l10n_util::GetStringUTF16(IDS_CRASHES_CRASH_HEADER_FORMAT)); |
- localized_strings.SetString("crashTimeFormat", |
- l10n_util::GetStringUTF16(IDS_CRASHES_CRASH_TIME_FORMAT)); |
- localized_strings.SetString("bugLinkText", |
- l10n_util::GetStringUTF16(IDS_CRASHES_BUG_LINK_LABEL)); |
- localized_strings.SetString("noCrashesMessage", |
- l10n_util::GetStringUTF16(IDS_CRASHES_NO_CRASHES_MESSAGE)); |
- localized_strings.SetString("disabledHeader", |
- l10n_util::GetStringUTF16(IDS_CRASHES_DISABLED_HEADER)); |
- localized_strings.SetString("disabledMessage", |
- l10n_util::GetStringUTF16(IDS_CRASHES_DISABLED_MESSAGE)); |
+ if (path == kStringsJsPath) { |
+ SendLocalizedStringsAsJSON(request_id); |
+ } else { |
+ int idr = (path == kCrashesJsPath) ? IDR_CRASHES_JS : IDR_CRASHES_HTML; |
Evan Stade
2011/06/30 23:25:23
no ()
|
+ SendFromResourceBundle(request_id, idr); |
+ } |
+} |
- ChromeURLDataManager::DataSource::SetFontAndTextDirection(&localized_strings); |
+std::string CrashesUIHTMLSource::GetMimeType(const std::string& path) const { |
+ if (path == kCrashesJsPath || path == kStringsJsPath) |
+ return "application/javascript"; |
- static const base::StringPiece crashes_html( |
- ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_CRASHES_HTML)); |
- std::string full_html = |
- jstemplate_builder::GetI18nTemplateHtml(crashes_html, &localized_strings); |
- 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"; |
} |
//////////////////////////////////////////////////////////////////////////////// |