Index: chrome/browser/ui/webui/sessions_ui.cc |
=================================================================== |
--- chrome/browser/ui/webui/sessions_ui.cc (revision 93951) |
+++ chrome/browser/ui/webui/sessions_ui.cc (working copy) |
@@ -11,6 +11,7 @@ |
#include "chrome/browser/sync/glue/session_model_associator.h" |
#include "chrome/browser/sync/profile_sync_service.h" |
#include "chrome/browser/ui/webui/chrome_url_data_manager.h" |
+#include "chrome/browser/ui/webui/chrome_web_ui_data_source.h" |
#include "chrome/browser/ui/webui/ntp/new_tab_ui.h" |
#include "chrome/common/chrome_version_info.h" |
#include "chrome/common/jstemplate_builder.h" |
@@ -27,59 +28,24 @@ |
namespace { |
-/////////////////////////////////////////////////////////////////////////////// |
-// |
-// SessionsUIHTMLSource |
-// |
-/////////////////////////////////////////////////////////////////////////////// |
+ChromeWebUIDataSource* CreateSessionsUIHTMLSource() { |
+ ChromeWebUIDataSource* source = |
+ new ChromeWebUIDataSource(chrome::kChromeUISessionsHost); |
-class SessionsUIHTMLSource : public ChromeURLDataManager::DataSource { |
- public: |
- SessionsUIHTMLSource() |
- : DataSource(chrome::kChromeUISessionsHost, MessageLoop::current()) {} |
+ source->AddLocalizedString("sessionsTitle", IDS_SESSIONS_TITLE); |
+ source->AddLocalizedString("sessionsCountFormat", |
+ IDS_SESSIONS_SESSION_COUNT_BANNER_FORMAT); |
+ source->AddLocalizedString("noSessionsMessage", |
+ IDS_SESSIONS_NO_SESSIONS_MESSAGE); |
+ source->AddLocalizedString("magicCountFormat", |
+ IDS_SESSIONS_MAGIC_LIST_BANNER_FORMAT); |
+ source->AddLocalizedString("noMagicMessage", |
+ IDS_SESSIONS_NO_MAGIC_MESSAGE); |
- // 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: |
- ~SessionsUIHTMLSource() {} |
- |
- DISALLOW_COPY_AND_ASSIGN(SessionsUIHTMLSource); |
-}; |
- |
-void SessionsUIHTMLSource::StartDataRequest(const std::string& path, |
- bool is_incognito, |
- int request_id) { |
- DictionaryValue localized_strings; |
- localized_strings.SetString("sessionsTitle", |
- l10n_util::GetStringUTF16(IDS_SESSIONS_TITLE)); |
- localized_strings.SetString("sessionsCountFormat", |
- l10n_util::GetStringUTF16(IDS_SESSIONS_SESSION_COUNT_BANNER_FORMAT)); |
- localized_strings.SetString("noSessionsMessage", |
- l10n_util::GetStringUTF16(IDS_SESSIONS_NO_SESSIONS_MESSAGE)); |
- |
- localized_strings.SetString("magicCountFormat", |
- l10n_util::GetStringUTF16(IDS_SESSIONS_MAGIC_LIST_BANNER_FORMAT)); |
- localized_strings.SetString("noMagicMessage", |
- l10n_util::GetStringUTF16(IDS_SESSIONS_NO_MAGIC_MESSAGE)); |
- |
- ChromeURLDataManager::DataSource::SetFontAndTextDirection(&localized_strings); |
- |
- static const base::StringPiece sessions_html( |
- ResourceBundle::GetSharedInstance(). |
- GetRawDataResource(IDR_SESSIONS_HTML)); |
- std::string full_html = |
- jstemplate_builder::GetI18nTemplateHtml(sessions_html, |
- &localized_strings); |
- jstemplate_builder::AppendJsTemplateSourceHtml(&full_html); |
- |
- SendResponse(request_id, base::RefCountedString::TakeString(&full_html)); |
+ source->set_json_path("strings.js"); |
+ source->add_resource_path("sessions.js", IDR_SESSIONS_JS); |
+ source->set_default_resource(IDR_SESSIONS_HTML); |
+ return source; |
} |
//////////////////////////////////////////////////////////////////////////////// |
@@ -283,10 +249,9 @@ |
SessionsUI::SessionsUI(TabContents* contents) : ChromeWebUI(contents) { |
AddMessageHandler((new SessionsDOMHandler())->Attach(this)); |
- SessionsUIHTMLSource* html_source = new SessionsUIHTMLSource(); |
- |
// Set up the chrome://sessions/ source. |
- contents->profile()->GetChromeURLDataManager()->AddDataSource(html_source); |
+ contents->profile()->GetChromeURLDataManager()->AddDataSource( |
+ CreateSessionsUIHTMLSource()); |
} |
// static |