| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/options/options_ui.h" | 5 #include "chrome/browser/ui/webui/options/options_ui.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 #include "chrome/browser/ui/webui/options/chromeos/proxy_handler.h" | 66 #include "chrome/browser/ui/webui/options/chromeos/proxy_handler.h" |
| 67 #include "chrome/browser/ui/webui/options/chromeos/stats_options_handler.h" | 67 #include "chrome/browser/ui/webui/options/chromeos/stats_options_handler.h" |
| 68 #include "chrome/browser/ui/webui/options/chromeos/system_options_handler.h" | 68 #include "chrome/browser/ui/webui/options/chromeos/system_options_handler.h" |
| 69 #include "chrome/browser/ui/webui/options/chromeos/user_image_source.h" | 69 #include "chrome/browser/ui/webui/options/chromeos/user_image_source.h" |
| 70 #endif | 70 #endif |
| 71 | 71 |
| 72 #if defined(USE_NSS) | 72 #if defined(USE_NSS) |
| 73 #include "chrome/browser/ui/webui/options/certificate_manager_handler.h" | 73 #include "chrome/browser/ui/webui/options/certificate_manager_handler.h" |
| 74 #endif | 74 #endif |
| 75 | 75 |
| 76 static const char kLocalizedStringsFile[] = "strings.js"; |
| 77 |
| 76 //////////////////////////////////////////////////////////////////////////////// | 78 //////////////////////////////////////////////////////////////////////////////// |
| 77 // | 79 // |
| 78 // OptionsUIHTMLSource | 80 // OptionsUIHTMLSource |
| 79 // | 81 // |
| 80 //////////////////////////////////////////////////////////////////////////////// | 82 //////////////////////////////////////////////////////////////////////////////// |
| 81 | 83 |
| 82 class OptionsUIHTMLSource : public ChromeURLDataManager::DataSource { | 84 class OptionsUIHTMLSource : public ChromeURLDataManager::DataSource { |
| 83 public: | 85 public: |
| 84 // The constructor takes over ownership of |localized_strings|. | 86 // The constructor takes over ownership of |localized_strings|. |
| 85 explicit OptionsUIHTMLSource(DictionaryValue* localized_strings); | 87 explicit OptionsUIHTMLSource(DictionaryValue* localized_strings); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 103 : DataSource(chrome::kChromeUISettingsHost, MessageLoop::current()) { | 105 : DataSource(chrome::kChromeUISettingsHost, MessageLoop::current()) { |
| 104 DCHECK(localized_strings); | 106 DCHECK(localized_strings); |
| 105 localized_strings_.reset(localized_strings); | 107 localized_strings_.reset(localized_strings); |
| 106 } | 108 } |
| 107 | 109 |
| 108 OptionsUIHTMLSource::~OptionsUIHTMLSource() {} | 110 OptionsUIHTMLSource::~OptionsUIHTMLSource() {} |
| 109 | 111 |
| 110 void OptionsUIHTMLSource::StartDataRequest(const std::string& path, | 112 void OptionsUIHTMLSource::StartDataRequest(const std::string& path, |
| 111 bool is_incognito, | 113 bool is_incognito, |
| 112 int request_id) { | 114 int request_id) { |
| 115 scoped_refptr<RefCountedBytes> response_bytes(new RefCountedBytes); |
| 113 SetFontAndTextDirection(localized_strings_.get()); | 116 SetFontAndTextDirection(localized_strings_.get()); |
| 114 | 117 |
| 115 static const base::StringPiece options_html( | 118 if (path == kLocalizedStringsFile) { |
| 116 ResourceBundle::GetSharedInstance().GetRawDataResource( | 119 std::string template_data; |
| 117 IDR_OPTIONS_HTML)); | 120 jstemplate_builder::AppendJsonJS(localized_strings_.get(), &template_data); |
| 118 const std::string full_html = jstemplate_builder::GetI18nTemplateHtml( | 121 response_bytes->data.resize(template_data.size()); |
| 119 options_html, localized_strings_.get()); | 122 std::copy(template_data.begin(), |
| 123 template_data.end(), |
| 124 response_bytes->data.begin()); |
| 125 } else { |
| 126 static const base::StringPiece options_html( |
| 127 ResourceBundle::GetSharedInstance().GetRawDataResource( |
| 128 IDR_OPTIONS_HTML)); |
| 129 response_bytes->data.resize(options_html.size()); |
| 130 std::copy(options_html.begin(), |
| 131 options_html.end(), |
| 132 response_bytes->data.begin()); |
| 133 } |
| 120 | 134 |
| 121 scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes); | 135 SendResponse(request_id, response_bytes); |
| 122 html_bytes->data.resize(full_html.size()); | |
| 123 std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin()); | |
| 124 | |
| 125 SendResponse(request_id, html_bytes); | |
| 126 } | 136 } |
| 127 | 137 |
| 128 std::string OptionsUIHTMLSource::GetMimeType(const std::string&) const { | 138 std::string OptionsUIHTMLSource::GetMimeType(const std::string& path) const { |
| 139 if (path == kLocalizedStringsFile) |
| 140 return "application/javascript"; |
| 141 |
| 129 return "text/html"; | 142 return "text/html"; |
| 130 } | 143 } |
| 131 | 144 |
| 132 //////////////////////////////////////////////////////////////////////////////// | 145 //////////////////////////////////////////////////////////////////////////////// |
| 133 // | 146 // |
| 134 // OptionsPageUIHandler | 147 // OptionsPageUIHandler |
| 135 // | 148 // |
| 136 //////////////////////////////////////////////////////////////////////////////// | 149 //////////////////////////////////////////////////////////////////////////////// |
| 137 | 150 |
| 138 OptionsPageUIHandler::OptionsPageUIHandler() { | 151 OptionsPageUIHandler::OptionsPageUIHandler() { |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 OptionsPageUIHandler* handler_raw) { | 338 OptionsPageUIHandler* handler_raw) { |
| 326 scoped_ptr<OptionsPageUIHandler> handler(handler_raw); | 339 scoped_ptr<OptionsPageUIHandler> handler(handler_raw); |
| 327 DCHECK(handler.get()); | 340 DCHECK(handler.get()); |
| 328 // Add only if handler's service is enabled. | 341 // Add only if handler's service is enabled. |
| 329 if (handler->IsEnabled()) { | 342 if (handler->IsEnabled()) { |
| 330 handler->GetLocalizedValues(localized_strings); | 343 handler->GetLocalizedValues(localized_strings); |
| 331 // Add handler to the list and also pass the ownership. | 344 // Add handler to the list and also pass the ownership. |
| 332 AddMessageHandler(handler.release()->Attach(this)); | 345 AddMessageHandler(handler.release()->Attach(this)); |
| 333 } | 346 } |
| 334 } | 347 } |
| OLD | NEW |