| 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/renderer/chrome_content_renderer_client.h" | 5 #include "chrome/renderer/chrome_content_renderer_client.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/debug/crash_logging.h" | 8 #include "base/debug/crash_logging.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
| 11 #include "base/metrics/histogram.h" | 11 #include "base/metrics/histogram.h" |
| 12 #include "base/metrics/user_metrics_action.h" | 12 #include "base/metrics/user_metrics_action.h" |
| 13 #include "base/path_service.h" | 13 #include "base/path_service.h" |
| 14 #include "base/strings/string_number_conversions.h" | 14 #include "base/strings/string_number_conversions.h" |
| 15 #include "base/strings/string_util.h" | 15 #include "base/strings/string_util.h" |
| 16 #include "base/strings/utf_string_conversions.h" | 16 #include "base/strings/utf_string_conversions.h" |
| 17 #include "base/values.h" | 17 #include "base/values.h" |
| 18 #include "chrome/common/chrome_content_client.h" | |
| 19 #include "chrome/common/chrome_paths.h" | 18 #include "chrome/common/chrome_paths.h" |
| 20 #include "chrome/common/chrome_switches.h" | 19 #include "chrome/common/chrome_switches.h" |
| 21 #include "chrome/common/chrome_version_info.h" | 20 #include "chrome/common/chrome_version_info.h" |
| 22 #include "chrome/common/content_settings_pattern.h" | 21 #include "chrome/common/content_settings_pattern.h" |
| 23 #include "chrome/common/crash_keys.h" | 22 #include "chrome/common/crash_keys.h" |
| 24 #include "chrome/common/extensions/chrome_extensions_client.h" | 23 #include "chrome/common/extensions/chrome_extensions_client.h" |
| 25 #include "chrome/common/extensions/extension_constants.h" | 24 #include "chrome/common/extensions/extension_constants.h" |
| 26 #include "chrome/common/extensions/extension_process_policy.h" | 25 #include "chrome/common/extensions/extension_process_policy.h" |
| 27 #include "chrome/common/localized_error.h" | 26 #include "chrome/common/localized_error.h" |
| 28 #include "chrome/common/pepper_permission_util.h" | 27 #include "chrome/common/pepper_permission_util.h" |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 #include "third_party/WebKit/public/web/WebPluginParams.h" | 107 #include "third_party/WebKit/public/web/WebPluginParams.h" |
| 109 #include "third_party/WebKit/public/web/WebSecurityOrigin.h" | 108 #include "third_party/WebKit/public/web/WebSecurityOrigin.h" |
| 110 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" | 109 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" |
| 111 #include "ui/base/l10n/l10n_util.h" | 110 #include "ui/base/l10n/l10n_util.h" |
| 112 #include "ui/base/layout.h" | 111 #include "ui/base/layout.h" |
| 113 #include "ui/base/resource/resource_bundle.h" | 112 #include "ui/base/resource/resource_bundle.h" |
| 114 #include "ui/base/webui/jstemplate_builder.h" | 113 #include "ui/base/webui/jstemplate_builder.h" |
| 115 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. | 114 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. |
| 116 | 115 |
| 117 #if !defined(DISABLE_NACL) | 116 #if !defined(DISABLE_NACL) |
| 117 #include "components/nacl/common/nacl_constants.h" |
| 118 #include "components/nacl/renderer/nacl_helper.h" | 118 #include "components/nacl/renderer/nacl_helper.h" |
| 119 #endif | 119 #endif |
| 120 | 120 |
| 121 #if defined(ENABLE_EXTENSIONS) | 121 #if defined(ENABLE_EXTENSIONS) |
| 122 #include "chrome/renderer/extensions/chrome_extensions_render_frame_observer.h" | 122 #include "chrome/renderer/extensions/chrome_extensions_render_frame_observer.h" |
| 123 #endif | 123 #endif |
| 124 | 124 |
| 125 #if defined(ENABLE_SPELLCHECK) | 125 #if defined(ENABLE_SPELLCHECK) |
| 126 #include "chrome/renderer/spellchecker/spellcheck.h" | 126 #include "chrome/renderer/spellchecker/spellcheck.h" |
| 127 #include "chrome/renderer/spellchecker/spellcheck_provider.h" | 127 #include "chrome/renderer/spellchecker/spellcheck_provider.h" |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 } | 223 } |
| 224 #endif | 224 #endif |
| 225 | 225 |
| 226 // For certain sandboxed Pepper plugins, use the JavaScript Content Settings. | 226 // For certain sandboxed Pepper plugins, use the JavaScript Content Settings. |
| 227 bool ShouldUseJavaScriptSettingForPlugin(const WebPluginInfo& plugin) { | 227 bool ShouldUseJavaScriptSettingForPlugin(const WebPluginInfo& plugin) { |
| 228 if (plugin.type != WebPluginInfo::PLUGIN_TYPE_PEPPER_IN_PROCESS && | 228 if (plugin.type != WebPluginInfo::PLUGIN_TYPE_PEPPER_IN_PROCESS && |
| 229 plugin.type != WebPluginInfo::PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS) { | 229 plugin.type != WebPluginInfo::PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS) { |
| 230 return false; | 230 return false; |
| 231 } | 231 } |
| 232 | 232 |
| 233 #if !defined(DISABLE_NACL) |
| 233 // Treat Native Client invocations like JavaScript. | 234 // Treat Native Client invocations like JavaScript. |
| 234 if (plugin.name == ASCIIToUTF16(ChromeContentClient::kNaClPluginName)) | 235 if (plugin.name == ASCIIToUTF16(nacl::kNaClPluginName)) |
| 235 return true; | 236 return true; |
| 237 #endif |
| 236 | 238 |
| 237 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS) | 239 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS) |
| 238 // Treat CDM invocations like JavaScript. | 240 // Treat CDM invocations like JavaScript. |
| 239 if (plugin.name == ASCIIToUTF16(kWidevineCdmDisplayName)) { | 241 if (plugin.name == ASCIIToUTF16(kWidevineCdmDisplayName)) { |
| 240 DCHECK(plugin.type == WebPluginInfo::PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS); | 242 DCHECK(plugin.type == WebPluginInfo::PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS); |
| 241 return true; | 243 return true; |
| 242 } | 244 } |
| 243 #endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS) | 245 #endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS) |
| 244 | 246 |
| 245 return false; | 247 return false; |
| (...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 669 ChromeViewHostMsg_GetPluginInfo_Status::kNPAPINotSupported; | 671 ChromeViewHostMsg_GetPluginInfo_Status::kNPAPINotSupported; |
| 670 } | 672 } |
| 671 #endif | 673 #endif |
| 672 | 674 |
| 673 switch (status_value) { | 675 switch (status_value) { |
| 674 case ChromeViewHostMsg_GetPluginInfo_Status::kNotFound: { | 676 case ChromeViewHostMsg_GetPluginInfo_Status::kNotFound: { |
| 675 NOTREACHED(); | 677 NOTREACHED(); |
| 676 break; | 678 break; |
| 677 } | 679 } |
| 678 case ChromeViewHostMsg_GetPluginInfo_Status::kAllowed: { | 680 case ChromeViewHostMsg_GetPluginInfo_Status::kAllowed: { |
| 681 #if !defined(DISABLE_NACL) |
| 679 const bool is_nacl_plugin = | 682 const bool is_nacl_plugin = |
| 680 plugin.name == ASCIIToUTF16(ChromeContentClient::kNaClPluginName); | 683 plugin.name == ASCIIToUTF16(nacl::kNaClPluginName); |
| 681 const bool is_nacl_mime_type = | 684 const bool is_nacl_mime_type = |
| 682 actual_mime_type == "application/x-nacl"; | 685 actual_mime_type == nacl::kNaClPluginMimeType; |
| 683 const bool is_pnacl_mime_type = | 686 const bool is_pnacl_mime_type = |
| 684 actual_mime_type == "application/x-pnacl"; | 687 actual_mime_type == nacl::kPnaclPluginMimeType; |
| 685 if (is_nacl_plugin || is_nacl_mime_type || is_pnacl_mime_type) { | 688 if (is_nacl_plugin || is_nacl_mime_type || is_pnacl_mime_type) { |
| 686 bool is_nacl_unrestricted = false; | 689 bool is_nacl_unrestricted = false; |
| 687 if (is_nacl_mime_type) { | 690 if (is_nacl_mime_type) { |
| 688 is_nacl_unrestricted = | 691 is_nacl_unrestricted = |
| 689 CommandLine::ForCurrentProcess()->HasSwitch( | 692 CommandLine::ForCurrentProcess()->HasSwitch( |
| 690 switches::kEnableNaCl); | 693 switches::kEnableNaCl); |
| 691 } else if (is_pnacl_mime_type) { | 694 } else if (is_pnacl_mime_type) { |
| 692 is_nacl_unrestricted = true; | 695 is_nacl_unrestricted = true; |
| 693 } | 696 } |
| 694 GURL manifest_url; | 697 GURL manifest_url; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 733 group_name, | 736 group_name, |
| 734 IDR_BLOCKED_PLUGIN_HTML, | 737 IDR_BLOCKED_PLUGIN_HTML, |
| 735 #if defined(OS_CHROMEOS) | 738 #if defined(OS_CHROMEOS) |
| 736 l10n_util::GetStringUTF16(IDS_NACL_PLUGIN_BLOCKED)); | 739 l10n_util::GetStringUTF16(IDS_NACL_PLUGIN_BLOCKED)); |
| 737 #else | 740 #else |
| 738 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); | 741 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); |
| 739 #endif | 742 #endif |
| 740 break; | 743 break; |
| 741 } | 744 } |
| 742 } | 745 } |
| 746 #endif // !defined(DISABLE_NACL) |
| 743 | 747 |
| 744 // Delay loading plugins if prerendering. | 748 // Delay loading plugins if prerendering. |
| 745 // TODO(mmenke): In the case of prerendering, feed into | 749 // TODO(mmenke): In the case of prerendering, feed into |
| 746 // ChromeContentRendererClient::CreatePlugin instead, to | 750 // ChromeContentRendererClient::CreatePlugin instead, to |
| 747 // reduce the chance of future regressions. | 751 // reduce the chance of future regressions. |
| 748 if (prerender::PrerenderHelper::IsPrerendering(render_frame)) { | 752 if (prerender::PrerenderHelper::IsPrerendering(render_frame)) { |
| 749 placeholder = ChromePluginPlaceholder::CreateBlockedPlugin( | 753 placeholder = ChromePluginPlaceholder::CreateBlockedPlugin( |
| 750 render_frame, | 754 render_frame, |
| 751 frame, | 755 frame, |
| 752 params, | 756 params, |
| (...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1502 | 1506 |
| 1503 if (IsExtensionOrSharedModuleWhitelisted(url, allowed_video_decode_origins_)) | 1507 if (IsExtensionOrSharedModuleWhitelisted(url, allowed_video_decode_origins_)) |
| 1504 return true; | 1508 return true; |
| 1505 | 1509 |
| 1506 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); | 1510 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); |
| 1507 return channel <= chrome::VersionInfo::CHANNEL_DEV; | 1511 return channel <= chrome::VersionInfo::CHANNEL_DEV; |
| 1508 #else | 1512 #else |
| 1509 return false; | 1513 return false; |
| 1510 #endif | 1514 #endif |
| 1511 } | 1515 } |
| OLD | NEW |