| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/nacl_ui.h" | 5 #include "chrome/browser/ui/webui/nacl_ui.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 #include "chrome/browser/profiles/profile.h" | 21 #include "chrome/browser/profiles/profile.h" |
| 22 #include "chrome/common/chrome_paths.h" | 22 #include "chrome/common/chrome_paths.h" |
| 23 #include "chrome/common/chrome_switches.h" | 23 #include "chrome/common/chrome_switches.h" |
| 24 #include "chrome/common/chrome_version_info.h" | 24 #include "chrome/common/chrome_version_info.h" |
| 25 #include "chrome/common/url_constants.h" | 25 #include "chrome/common/url_constants.h" |
| 26 #include "content/public/browser/plugin_service.h" | 26 #include "content/public/browser/plugin_service.h" |
| 27 #include "content/public/browser/user_metrics.h" | 27 #include "content/public/browser/user_metrics.h" |
| 28 #include "content/public/browser/web_ui.h" | 28 #include "content/public/browser/web_ui.h" |
| 29 #include "content/public/browser/web_ui_data_source.h" | 29 #include "content/public/browser/web_ui_data_source.h" |
| 30 #include "content/public/browser/web_ui_message_handler.h" | 30 #include "content/public/browser/web_ui_message_handler.h" |
| 31 #include "content/public/common/webplugininfo.h" |
| 31 #include "grit/browser_resources.h" | 32 #include "grit/browser_resources.h" |
| 32 #include "grit/chromium_strings.h" | 33 #include "grit/chromium_strings.h" |
| 33 #include "grit/generated_resources.h" | 34 #include "grit/generated_resources.h" |
| 34 #include "grit/theme_resources.h" | 35 #include "grit/theme_resources.h" |
| 35 #include "ui/base/l10n/l10n_util.h" | 36 #include "ui/base/l10n/l10n_util.h" |
| 36 #include "ui/base/resource/resource_bundle.h" | 37 #include "ui/base/resource/resource_bundle.h" |
| 37 #include "webkit/plugins/webplugininfo.h" | |
| 38 | 38 |
| 39 #if defined(OS_WIN) | 39 #if defined(OS_WIN) |
| 40 #include "base/win/windows_version.h" | 40 #include "base/win/windows_version.h" |
| 41 #endif | 41 #endif |
| 42 | 42 |
| 43 using content::BrowserThread; | 43 using content::BrowserThread; |
| 44 using content::PluginService; | 44 using content::PluginService; |
| 45 using content::UserMetricsAction; | 45 using content::UserMetricsAction; |
| 46 using content::WebUIMessageHandler; | 46 using content::WebUIMessageHandler; |
| 47 | 47 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 NaClDomHandler(); | 102 NaClDomHandler(); |
| 103 virtual ~NaClDomHandler(); | 103 virtual ~NaClDomHandler(); |
| 104 | 104 |
| 105 // WebUIMessageHandler implementation. | 105 // WebUIMessageHandler implementation. |
| 106 virtual void RegisterMessages() OVERRIDE; | 106 virtual void RegisterMessages() OVERRIDE; |
| 107 | 107 |
| 108 // Callback for the "requestNaClInfo" message. | 108 // Callback for the "requestNaClInfo" message. |
| 109 void HandleRequestNaClInfo(const ListValue* args); | 109 void HandleRequestNaClInfo(const ListValue* args); |
| 110 | 110 |
| 111 // Callback for the NaCl plugin information. | 111 // Callback for the NaCl plugin information. |
| 112 void OnGotPlugins(const std::vector<webkit::WebPluginInfo>& plugins); | 112 void OnGotPlugins(const std::vector<content::WebPluginInfo>& plugins); |
| 113 | 113 |
| 114 // A helper callback that receives the result of checking if PNaCl path | 114 // A helper callback that receives the result of checking if PNaCl path |
| 115 // exists. |is_valid| is true if the PNaCl path that was returned by | 115 // exists. |is_valid| is true if the PNaCl path that was returned by |
| 116 // PathService is valid, and false otherwise. | 116 // PathService is valid, and false otherwise. |
| 117 void DidValidatePnaclPath(bool is_valid); | 117 void DidValidatePnaclPath(bool is_valid); |
| 118 | 118 |
| 119 private: | 119 private: |
| 120 // Called when enough information is gathered to return data back to the page. | 120 // Called when enough information is gathered to return data back to the page. |
| 121 void MaybeRespondToPage(); | 121 void MaybeRespondToPage(); |
| 122 | 122 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 void NaClDomHandler::HandleRequestNaClInfo(const ListValue* args) { | 229 void NaClDomHandler::HandleRequestNaClInfo(const ListValue* args) { |
| 230 page_has_requested_data_ = true; | 230 page_has_requested_data_ = true; |
| 231 // Force re-validation of pnacl's path in the next call to | 231 // Force re-validation of pnacl's path in the next call to |
| 232 // MaybeRespondToPage(), in case PNaCl went from not-installed | 232 // MaybeRespondToPage(), in case PNaCl went from not-installed |
| 233 // to installed since the request. | 233 // to installed since the request. |
| 234 pnacl_path_validated_ = false; | 234 pnacl_path_validated_ = false; |
| 235 MaybeRespondToPage(); | 235 MaybeRespondToPage(); |
| 236 } | 236 } |
| 237 | 237 |
| 238 void NaClDomHandler::OnGotPlugins( | 238 void NaClDomHandler::OnGotPlugins( |
| 239 const std::vector<webkit::WebPluginInfo>& plugins) { | 239 const std::vector<content::WebPluginInfo>& plugins) { |
| 240 has_plugin_info_ = true; | 240 has_plugin_info_ = true; |
| 241 MaybeRespondToPage(); | 241 MaybeRespondToPage(); |
| 242 } | 242 } |
| 243 | 243 |
| 244 void NaClDomHandler::PopulatePageInformation(DictionaryValue* naclInfo) { | 244 void NaClDomHandler::PopulatePageInformation(DictionaryValue* naclInfo) { |
| 245 DCHECK(pnacl_path_validated_); | 245 DCHECK(pnacl_path_validated_); |
| 246 // Store Key-Value pairs of about-information. | 246 // Store Key-Value pairs of about-information. |
| 247 scoped_ptr<ListValue> list(new ListValue()); | 247 scoped_ptr<ListValue> list(new ListValue()); |
| 248 | 248 |
| 249 // Obtain the Chrome version info. | 249 // Obtain the Chrome version info. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 275 if (os->architecture() == base::win::OSInfo::X64_ARCHITECTURE) | 275 if (os->architecture() == base::win::OSInfo::X64_ARCHITECTURE) |
| 276 os_label += " 64 bit"; | 276 os_label += " 64 bit"; |
| 277 #endif | 277 #endif |
| 278 AddPair(list.get(), | 278 AddPair(list.get(), |
| 279 l10n_util::GetStringUTF16(IDS_ABOUT_VERSION_OS), | 279 l10n_util::GetStringUTF16(IDS_ABOUT_VERSION_OS), |
| 280 ASCIIToUTF16(os_label)); | 280 ASCIIToUTF16(os_label)); |
| 281 | 281 |
| 282 AddLineBreak(list.get()); | 282 AddLineBreak(list.get()); |
| 283 | 283 |
| 284 // Obtain the version of the NaCl plugin. | 284 // Obtain the version of the NaCl plugin. |
| 285 std::vector<webkit::WebPluginInfo> info_array; | 285 std::vector<content::WebPluginInfo> info_array; |
| 286 PluginService::GetInstance()->GetPluginInfoArray( | 286 PluginService::GetInstance()->GetPluginInfoArray( |
| 287 GURL(), "application/x-nacl", false, &info_array, NULL); | 287 GURL(), "application/x-nacl", false, &info_array, NULL); |
| 288 string16 nacl_version; | 288 string16 nacl_version; |
| 289 string16 nacl_key = ASCIIToUTF16("NaCl plugin"); | 289 string16 nacl_key = ASCIIToUTF16("NaCl plugin"); |
| 290 if (info_array.empty()) { | 290 if (info_array.empty()) { |
| 291 AddPair(list.get(), nacl_key, ASCIIToUTF16("Disabled")); | 291 AddPair(list.get(), nacl_key, ASCIIToUTF16("Disabled")); |
| 292 } else { | 292 } else { |
| 293 PluginPrefs* plugin_prefs = | 293 PluginPrefs* plugin_prefs = |
| 294 PluginPrefs::GetForProfile(Profile::FromWebUI(web_ui())).get(); | 294 PluginPrefs::GetForProfile(Profile::FromWebUI(web_ui())).get(); |
| 295 | 295 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 | 376 |
| 377 NaClUI::NaClUI(content::WebUI* web_ui) : WebUIController(web_ui) { | 377 NaClUI::NaClUI(content::WebUI* web_ui) : WebUIController(web_ui) { |
| 378 content::RecordAction(UserMetricsAction("ViewAboutNaCl")); | 378 content::RecordAction(UserMetricsAction("ViewAboutNaCl")); |
| 379 | 379 |
| 380 web_ui->AddMessageHandler(new NaClDomHandler()); | 380 web_ui->AddMessageHandler(new NaClDomHandler()); |
| 381 | 381 |
| 382 // Set up the about:nacl source. | 382 // Set up the about:nacl source. |
| 383 Profile* profile = Profile::FromWebUI(web_ui); | 383 Profile* profile = Profile::FromWebUI(web_ui); |
| 384 content::WebUIDataSource::Add(profile, CreateNaClUIHTMLSource()); | 384 content::WebUIDataSource::Add(profile, CreateNaClUIHTMLSource()); |
| 385 } | 385 } |
| OLD | NEW |