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 <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 #include "content/public/renderer/plugin_instance_throttler.h" | 89 #include "content/public/renderer/plugin_instance_throttler.h" |
90 #include "content/public/renderer/render_frame.h" | 90 #include "content/public/renderer/render_frame.h" |
91 #include "content/public/renderer/render_thread.h" | 91 #include "content/public/renderer/render_thread.h" |
92 #include "content/public/renderer/render_view.h" | 92 #include "content/public/renderer/render_view.h" |
93 #include "content/public/renderer/render_view_visitor.h" | 93 #include "content/public/renderer/render_view_visitor.h" |
94 #include "extensions/common/constants.h" | 94 #include "extensions/common/constants.h" |
95 #include "extensions/features/features.h" | 95 #include "extensions/features/features.h" |
96 #include "ipc/ipc_sync_channel.h" | 96 #include "ipc/ipc_sync_channel.h" |
97 #include "net/base/net_errors.h" | 97 #include "net/base/net_errors.h" |
98 #include "ppapi/c/private/ppb_pdf.h" | 98 #include "ppapi/c/private/ppb_pdf.h" |
| 99 #include "ppapi/features/features.h" |
99 #include "ppapi/shared_impl/ppapi_switches.h" | 100 #include "ppapi/shared_impl/ppapi_switches.h" |
100 #include "printing/features/features.h" | 101 #include "printing/features/features.h" |
101 #include "services/service_manager/public/cpp/interface_provider.h" | 102 #include "services/service_manager/public/cpp/interface_provider.h" |
102 #include "third_party/WebKit/public/platform/URLConversion.h" | 103 #include "third_party/WebKit/public/platform/URLConversion.h" |
103 #include "third_party/WebKit/public/platform/WebCachePolicy.h" | 104 #include "third_party/WebKit/public/platform/WebCachePolicy.h" |
104 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h" | 105 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h" |
105 #include "third_party/WebKit/public/platform/WebURL.h" | 106 #include "third_party/WebKit/public/platform/WebURL.h" |
106 #include "third_party/WebKit/public/platform/WebURLError.h" | 107 #include "third_party/WebKit/public/platform/WebURLError.h" |
107 #include "third_party/WebKit/public/platform/WebURLRequest.h" | 108 #include "third_party/WebKit/public/platform/WebURLRequest.h" |
108 #include "third_party/WebKit/public/platform/WebURLResponse.h" | 109 #include "third_party/WebKit/public/platform/WebURLResponse.h" |
(...skipping 18 matching lines...) Expand all Loading... |
127 | 128 |
128 #if BUILDFLAG(ENABLE_EXTENSIONS) | 129 #if BUILDFLAG(ENABLE_EXTENSIONS) |
129 #include "chrome/common/extensions/chrome_extensions_client.h" | 130 #include "chrome/common/extensions/chrome_extensions_client.h" |
130 #include "chrome/renderer/extensions/chrome_extensions_renderer_client.h" | 131 #include "chrome/renderer/extensions/chrome_extensions_renderer_client.h" |
131 #include "extensions/common/extension_urls.h" | 132 #include "extensions/common/extension_urls.h" |
132 #include "extensions/common/switches.h" | 133 #include "extensions/common/switches.h" |
133 #include "extensions/renderer/dispatcher.h" | 134 #include "extensions/renderer/dispatcher.h" |
134 #include "extensions/renderer/renderer_extension_registry.h" | 135 #include "extensions/renderer/renderer_extension_registry.h" |
135 #endif | 136 #endif |
136 | 137 |
137 #if defined(ENABLE_PLUGINS) | 138 #if BUILDFLAG(ENABLE_PLUGINS) |
138 #include "chrome/common/plugin_utils.h" | 139 #include "chrome/common/plugin_utils.h" |
139 #include "chrome/renderer/plugins/chrome_plugin_placeholder.h" | 140 #include "chrome/renderer/plugins/chrome_plugin_placeholder.h" |
140 #include "chrome/renderer/plugins/power_saver_info.h" | 141 #include "chrome/renderer/plugins/power_saver_info.h" |
141 #else | 142 #else |
142 #include "components/plugins/renderer/plugin_placeholder.h" | 143 #include "components/plugins/renderer/plugin_placeholder.h" |
143 #endif | 144 #endif |
144 | 145 |
145 #if BUILDFLAG(ENABLE_PRINTING) | 146 #if BUILDFLAG(ENABLE_PRINTING) |
146 #include "chrome/common/chrome_content_client.h" | 147 #include "chrome/common/chrome_content_client.h" |
147 #include "chrome/renderer/printing/chrome_print_web_view_helper_delegate.h" | 148 #include "chrome/renderer/printing/chrome_print_web_view_helper_delegate.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 } // namespace internal | 196 } // namespace internal |
196 | 197 |
197 namespace { | 198 namespace { |
198 | 199 |
199 void RecordYouTubeRewriteUMA(internal::YouTubeRewriteStatus status) { | 200 void RecordYouTubeRewriteUMA(internal::YouTubeRewriteStatus status) { |
200 UMA_HISTOGRAM_ENUMERATION(internal::kFlashYouTubeRewriteUMA, status, | 201 UMA_HISTOGRAM_ENUMERATION(internal::kFlashYouTubeRewriteUMA, status, |
201 internal::NUM_PLUGIN_ERROR); | 202 internal::NUM_PLUGIN_ERROR); |
202 } | 203 } |
203 | 204 |
204 // Whitelist PPAPI for Android Runtime for Chromium. (See crbug.com/383937) | 205 // Whitelist PPAPI for Android Runtime for Chromium. (See crbug.com/383937) |
205 #if defined(ENABLE_PLUGINS) | 206 #if BUILDFLAG(ENABLE_PLUGINS) |
206 const char* const kPredefinedAllowedCameraDeviceOrigins[] = { | 207 const char* const kPredefinedAllowedCameraDeviceOrigins[] = { |
207 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", | 208 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", |
208 "4EB74897CB187C7633357C2FE832E0AD6A44883A" | 209 "4EB74897CB187C7633357C2FE832E0AD6A44883A" |
209 }; | 210 }; |
210 | 211 |
211 const char* const kPredefinedAllowedCompositorOrigins[] = { | 212 const char* const kPredefinedAllowedCompositorOrigins[] = { |
212 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", | 213 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", |
213 "4EB74897CB187C7633357C2FE832E0AD6A44883A" | 214 "4EB74897CB187C7633357C2FE832E0AD6A44883A" |
214 }; | 215 }; |
215 #endif | 216 #endif |
216 | 217 |
217 #if defined(ENABLE_PLUGINS) | 218 #if BUILDFLAG(ENABLE_PLUGINS) |
218 void AppendParams(const std::vector<base::string16>& additional_names, | 219 void AppendParams(const std::vector<base::string16>& additional_names, |
219 const std::vector<base::string16>& additional_values, | 220 const std::vector<base::string16>& additional_values, |
220 WebVector<WebString>* existing_names, | 221 WebVector<WebString>* existing_names, |
221 WebVector<WebString>* existing_values) { | 222 WebVector<WebString>* existing_values) { |
222 DCHECK(additional_names.size() == additional_values.size()); | 223 DCHECK(additional_names.size() == additional_values.size()); |
223 DCHECK(existing_names->size() == existing_values->size()); | 224 DCHECK(existing_names->size() == existing_values->size()); |
224 | 225 |
225 size_t existing_size = existing_names->size(); | 226 size_t existing_size = existing_names->size(); |
226 size_t total_size = existing_size + additional_names.size(); | 227 size_t total_size = existing_size + additional_names.size(); |
227 | 228 |
228 WebVector<WebString> names(total_size); | 229 WebVector<WebString> names(total_size); |
229 WebVector<WebString> values(total_size); | 230 WebVector<WebString> values(total_size); |
230 | 231 |
231 for (size_t i = 0; i < existing_size; ++i) { | 232 for (size_t i = 0; i < existing_size; ++i) { |
232 names[i] = (*existing_names)[i]; | 233 names[i] = (*existing_names)[i]; |
233 values[i] = (*existing_values)[i]; | 234 values[i] = (*existing_values)[i]; |
234 } | 235 } |
235 | 236 |
236 for (size_t i = 0; i < additional_names.size(); ++i) { | 237 for (size_t i = 0; i < additional_names.size(); ++i) { |
237 names[existing_size + i] = additional_names[i]; | 238 names[existing_size + i] = additional_names[i]; |
238 values[existing_size + i] = additional_values[i]; | 239 values[existing_size + i] = additional_values[i]; |
239 } | 240 } |
240 | 241 |
241 existing_names->swap(names); | 242 existing_names->swap(names); |
242 existing_values->swap(values); | 243 existing_values->swap(values); |
243 } | 244 } |
244 #endif // defined(ENABLE_PLUGINS) | 245 #endif // BUILDFLAG(ENABLE_PLUGINS) |
245 | 246 |
246 #if BUILDFLAG(ENABLE_SPELLCHECK) | 247 #if BUILDFLAG(ENABLE_SPELLCHECK) |
247 class SpellCheckReplacer : public content::RenderViewVisitor { | 248 class SpellCheckReplacer : public content::RenderViewVisitor { |
248 public: | 249 public: |
249 explicit SpellCheckReplacer(SpellCheck* spellcheck) | 250 explicit SpellCheckReplacer(SpellCheck* spellcheck) |
250 : spellcheck_(spellcheck) {} | 251 : spellcheck_(spellcheck) {} |
251 bool Visit(content::RenderView* render_view) override; | 252 bool Visit(content::RenderView* render_view) override; |
252 | 253 |
253 private: | 254 private: |
254 SpellCheck* spellcheck_; // New shared spellcheck for all views. Weak Ptr. | 255 SpellCheck* spellcheck_; // New shared spellcheck for all views. Weak Ptr. |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 } // namespace | 297 } // namespace |
297 | 298 |
298 ChromeContentRendererClient::ChromeContentRendererClient() | 299 ChromeContentRendererClient::ChromeContentRendererClient() |
299 : main_entry_time_(base::TimeTicks::Now()) { | 300 : main_entry_time_(base::TimeTicks::Now()) { |
300 #if BUILDFLAG(ENABLE_EXTENSIONS) | 301 #if BUILDFLAG(ENABLE_EXTENSIONS) |
301 extensions::ExtensionsClient::Set( | 302 extensions::ExtensionsClient::Set( |
302 extensions::ChromeExtensionsClient::GetInstance()); | 303 extensions::ChromeExtensionsClient::GetInstance()); |
303 extensions::ExtensionsRendererClient::Set( | 304 extensions::ExtensionsRendererClient::Set( |
304 ChromeExtensionsRendererClient::GetInstance()); | 305 ChromeExtensionsRendererClient::GetInstance()); |
305 #endif | 306 #endif |
306 #if defined(ENABLE_PLUGINS) | 307 #if BUILDFLAG(ENABLE_PLUGINS) |
307 for (size_t i = 0; i < arraysize(kPredefinedAllowedCameraDeviceOrigins); ++i) | 308 for (size_t i = 0; i < arraysize(kPredefinedAllowedCameraDeviceOrigins); ++i) |
308 allowed_camera_device_origins_.insert( | 309 allowed_camera_device_origins_.insert( |
309 kPredefinedAllowedCameraDeviceOrigins[i]); | 310 kPredefinedAllowedCameraDeviceOrigins[i]); |
310 for (size_t i = 0; i < arraysize(kPredefinedAllowedCompositorOrigins); ++i) | 311 for (size_t i = 0; i < arraysize(kPredefinedAllowedCompositorOrigins); ++i) |
311 allowed_compositor_origins_.insert(kPredefinedAllowedCompositorOrigins[i]); | 312 allowed_compositor_origins_.insert(kPredefinedAllowedCompositorOrigins[i]); |
312 #endif | 313 #endif |
313 #if BUILDFLAG(ENABLE_PRINTING) | 314 #if BUILDFLAG(ENABLE_PRINTING) |
314 printing::SetAgent(GetUserAgent()); | 315 printing::SetAgent(GetUserAgent()); |
315 #endif | 316 #endif |
316 } | 317 } |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 if (chrome_observer_.get()) { | 457 if (chrome_observer_.get()) { |
457 content_settings->SetContentSettingRules( | 458 content_settings->SetContentSettingRules( |
458 chrome_observer_->content_setting_rules()); | 459 chrome_observer_->content_setting_rules()); |
459 } | 460 } |
460 | 461 |
461 #if BUILDFLAG(ENABLE_EXTENSIONS) | 462 #if BUILDFLAG(ENABLE_EXTENSIONS) |
462 ChromeExtensionsRendererClient::GetInstance()->RenderFrameCreated( | 463 ChromeExtensionsRendererClient::GetInstance()->RenderFrameCreated( |
463 render_frame); | 464 render_frame); |
464 #endif | 465 #endif |
465 | 466 |
466 #if defined(ENABLE_PLUGINS) | 467 #if BUILDFLAG(ENABLE_PLUGINS) |
467 new PepperHelper(render_frame); | 468 new PepperHelper(render_frame); |
468 #endif | 469 #endif |
469 | 470 |
470 #if !defined(DISABLE_NACL) | 471 #if !defined(DISABLE_NACL) |
471 new nacl::NaClHelper(render_frame); | 472 new nacl::NaClHelper(render_frame); |
472 #endif | 473 #endif |
473 | 474 |
474 #if defined(FULL_SAFE_BROWSING) | 475 #if defined(FULL_SAFE_BROWSING) |
475 safe_browsing::ThreatDOMDetails::Create(render_frame); | 476 safe_browsing::ThreatDOMDetails::Create(render_frame); |
476 #endif | 477 #endif |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 WebPlugin** plugin) { | 561 WebPlugin** plugin) { |
561 std::string orig_mime_type = params.mimeType.utf8(); | 562 std::string orig_mime_type = params.mimeType.utf8(); |
562 #if BUILDFLAG(ENABLE_EXTENSIONS) | 563 #if BUILDFLAG(ENABLE_EXTENSIONS) |
563 if (!ChromeExtensionsRendererClient::GetInstance()->OverrideCreatePlugin( | 564 if (!ChromeExtensionsRendererClient::GetInstance()->OverrideCreatePlugin( |
564 render_frame, params)) { | 565 render_frame, params)) { |
565 return false; | 566 return false; |
566 } | 567 } |
567 #endif | 568 #endif |
568 | 569 |
569 GURL url(params.url); | 570 GURL url(params.url); |
570 #if defined(ENABLE_PLUGINS) | 571 #if BUILDFLAG(ENABLE_PLUGINS) |
571 ChromeViewHostMsg_GetPluginInfo_Output output; | 572 ChromeViewHostMsg_GetPluginInfo_Output output; |
572 render_frame->Send(new ChromeViewHostMsg_GetPluginInfo( | 573 render_frame->Send(new ChromeViewHostMsg_GetPluginInfo( |
573 render_frame->GetRoutingID(), url, frame->top()->getSecurityOrigin(), | 574 render_frame->GetRoutingID(), url, frame->top()->getSecurityOrigin(), |
574 orig_mime_type, &output)); | 575 orig_mime_type, &output)); |
575 *plugin = CreatePlugin(render_frame, frame, params, output); | 576 *plugin = CreatePlugin(render_frame, frame, params, output); |
576 #else // !defined(ENABLE_PLUGINS) | 577 #else // !BUILDFLAG(ENABLE_PLUGINS) |
577 PluginUMAReporter::GetInstance()->ReportPluginMissing(orig_mime_type, url); | 578 PluginUMAReporter::GetInstance()->ReportPluginMissing(orig_mime_type, url); |
578 *plugin = NonLoadablePluginPlaceholder::CreateNotSupportedPlugin( | 579 *plugin = NonLoadablePluginPlaceholder::CreateNotSupportedPlugin( |
579 render_frame, frame, params)->plugin(); | 580 render_frame, frame, params)->plugin(); |
580 | 581 |
581 #endif // defined(ENABLE_PLUGINS) | 582 #endif // BUILDFLAG(ENABLE_PLUGINS) |
582 return true; | 583 return true; |
583 } | 584 } |
584 | 585 |
585 WebPlugin* ChromeContentRendererClient::CreatePluginReplacement( | 586 WebPlugin* ChromeContentRendererClient::CreatePluginReplacement( |
586 content::RenderFrame* render_frame, | 587 content::RenderFrame* render_frame, |
587 const base::FilePath& plugin_path) { | 588 const base::FilePath& plugin_path) { |
588 return NonLoadablePluginPlaceholder::CreateErrorPlugin(render_frame, | 589 return NonLoadablePluginPlaceholder::CreateErrorPlugin(render_frame, |
589 plugin_path)->plugin(); | 590 plugin_path)->plugin(); |
590 } | 591 } |
591 | 592 |
(...skipping 13 matching lines...) Expand all Loading... |
605 !base::CommandLine::ForCurrentProcess()->HasSwitch( | 606 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
606 switches::kDisableGestureRequirementForMediaPlayback)) || | 607 switches::kDisableGestureRequirementForMediaPlayback)) || |
607 prerender::PrerenderHelper::IsPrerendering(render_frame)) { | 608 prerender::PrerenderHelper::IsPrerendering(render_frame)) { |
608 new MediaLoadDeferrer(render_frame, closure); | 609 new MediaLoadDeferrer(render_frame, closure); |
609 return; | 610 return; |
610 } | 611 } |
611 | 612 |
612 closure.Run(); | 613 closure.Run(); |
613 } | 614 } |
614 | 615 |
615 #if defined(ENABLE_PLUGINS) | 616 #if BUILDFLAG(ENABLE_PLUGINS) |
616 WebPlugin* ChromeContentRendererClient::CreatePlugin( | 617 WebPlugin* ChromeContentRendererClient::CreatePlugin( |
617 content::RenderFrame* render_frame, | 618 content::RenderFrame* render_frame, |
618 WebLocalFrame* frame, | 619 WebLocalFrame* frame, |
619 const WebPluginParams& original_params, | 620 const WebPluginParams& original_params, |
620 const ChromeViewHostMsg_GetPluginInfo_Output& output) { | 621 const ChromeViewHostMsg_GetPluginInfo_Output& output) { |
621 const WebPluginInfo& info = output.plugin; | 622 const WebPluginInfo& info = output.plugin; |
622 const std::string& actual_mime_type = output.actual_mime_type; | 623 const std::string& actual_mime_type = output.actual_mime_type; |
623 const base::string16& group_name = output.group_name; | 624 const base::string16& group_name = output.group_name; |
624 const std::string& identifier = output.group_identifier; | 625 const std::string& identifier = output.group_identifier; |
625 ChromeViewHostMsg_GetPluginInfo_Status status = output.status; | 626 ChromeViewHostMsg_GetPluginInfo_Status status = output.status; |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
871 IDR_BLOCKED_PLUGIN_HTML, | 872 IDR_BLOCKED_PLUGIN_HTML, |
872 l10n_util::GetStringFUTF16(IDS_PLUGIN_RESTART_REQUIRED, | 873 l10n_util::GetStringFUTF16(IDS_PLUGIN_RESTART_REQUIRED, |
873 group_name)); | 874 group_name)); |
874 break; | 875 break; |
875 } | 876 } |
876 } | 877 } |
877 } | 878 } |
878 placeholder->SetStatus(status); | 879 placeholder->SetStatus(status); |
879 return placeholder->plugin(); | 880 return placeholder->plugin(); |
880 } | 881 } |
881 #endif // defined(ENABLE_PLUGINS) | 882 #endif // BUILDFLAG(ENABLE_PLUGINS) |
882 | 883 |
883 // For NaCl content handling plugins, the NaCl manifest is stored in an | 884 // For NaCl content handling plugins, the NaCl manifest is stored in an |
884 // additonal 'nacl' param associated with the MIME type. | 885 // additonal 'nacl' param associated with the MIME type. |
885 // static | 886 // static |
886 GURL ChromeContentRendererClient::GetNaClContentHandlerURL( | 887 GURL ChromeContentRendererClient::GetNaClContentHandlerURL( |
887 const std::string& actual_mime_type, | 888 const std::string& actual_mime_type, |
888 const content::WebPluginInfo& plugin) { | 889 const content::WebPluginInfo& plugin) { |
889 // Look for the manifest URL among the MIME type's additonal parameters. | 890 // Look for the manifest URL among the MIME type's additonal parameters. |
890 const char kNaClPluginManifestAttribute[] = "nacl"; | 891 const char kNaClPluginManifestAttribute[] = "nacl"; |
891 base::string16 nacl_attr = ASCIIToUTF16(kNaClPluginManifestAttribute); | 892 base::string16 nacl_attr = ASCIIToUTF16(kNaClPluginManifestAttribute); |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1192 #endif | 1193 #endif |
1193 | 1194 |
1194 bool ChromeContentRendererClient::IsExternalPepperPlugin( | 1195 bool ChromeContentRendererClient::IsExternalPepperPlugin( |
1195 const std::string& module_name) { | 1196 const std::string& module_name) { |
1196 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. | 1197 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. |
1197 // We must defer certain plugin events for NaCl instances since we switch | 1198 // We must defer certain plugin events for NaCl instances since we switch |
1198 // from the in-process to the out-of-process proxy after instantiating them. | 1199 // from the in-process to the out-of-process proxy after instantiating them. |
1199 return module_name == "Native Client"; | 1200 return module_name == "Native Client"; |
1200 } | 1201 } |
1201 | 1202 |
1202 #if defined(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) | 1203 #if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) |
1203 bool ChromeContentRendererClient::IsExtensionOrSharedModuleWhitelisted( | 1204 bool ChromeContentRendererClient::IsExtensionOrSharedModuleWhitelisted( |
1204 const GURL& url, const std::set<std::string>& whitelist) { | 1205 const GURL& url, const std::set<std::string>& whitelist) { |
1205 const extensions::ExtensionSet* extension_set = | 1206 const extensions::ExtensionSet* extension_set = |
1206 extensions::RendererExtensionRegistry::Get()->GetMainThreadExtensionSet(); | 1207 extensions::RendererExtensionRegistry::Get()->GetMainThreadExtensionSet(); |
1207 return chrome::IsExtensionOrSharedModuleWhitelisted(url, extension_set, | 1208 return chrome::IsExtensionOrSharedModuleWhitelisted(url, extension_set, |
1208 whitelist); | 1209 whitelist); |
1209 } | 1210 } |
1210 #endif | 1211 #endif |
1211 | 1212 |
1212 blink::WebSpeechSynthesizer* | 1213 blink::WebSpeechSynthesizer* |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1262 } | 1263 } |
1263 | 1264 |
1264 blink::WebWorkerContentSettingsClientProxy* | 1265 blink::WebWorkerContentSettingsClientProxy* |
1265 ChromeContentRendererClient::CreateWorkerContentSettingsClientProxy( | 1266 ChromeContentRendererClient::CreateWorkerContentSettingsClientProxy( |
1266 content::RenderFrame* render_frame, | 1267 content::RenderFrame* render_frame, |
1267 WebFrame* frame) { | 1268 WebFrame* frame) { |
1268 return new WorkerContentSettingsClientProxy(render_frame, frame); | 1269 return new WorkerContentSettingsClientProxy(render_frame, frame); |
1269 } | 1270 } |
1270 | 1271 |
1271 bool ChromeContentRendererClient::IsPluginAllowedToUseDevChannelAPIs() { | 1272 bool ChromeContentRendererClient::IsPluginAllowedToUseDevChannelAPIs() { |
1272 #if defined(ENABLE_PLUGINS) | 1273 #if BUILDFLAG(ENABLE_PLUGINS) |
1273 // Allow access for tests. | 1274 // Allow access for tests. |
1274 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1275 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
1275 switches::kEnablePepperTesting)) { | 1276 switches::kEnablePepperTesting)) { |
1276 return true; | 1277 return true; |
1277 } | 1278 } |
1278 | 1279 |
1279 version_info::Channel channel = chrome::GetChannel(); | 1280 version_info::Channel channel = chrome::GetChannel(); |
1280 // Allow dev channel APIs to be used on "Canary", "Dev", and "Unknown" | 1281 // Allow dev channel APIs to be used on "Canary", "Dev", and "Unknown" |
1281 // releases of Chrome. Permitting "Unknown" allows these APIs to be used on | 1282 // releases of Chrome. Permitting "Unknown" allows these APIs to be used on |
1282 // Chromium builds as well. | 1283 // Chromium builds as well. |
1283 return channel <= version_info::Channel::DEV; | 1284 return channel <= version_info::Channel::DEV; |
1284 #else | 1285 #else |
1285 return false; | 1286 return false; |
1286 #endif | 1287 #endif |
1287 } | 1288 } |
1288 | 1289 |
1289 bool ChromeContentRendererClient::IsPluginAllowedToUseCameraDeviceAPI( | 1290 bool ChromeContentRendererClient::IsPluginAllowedToUseCameraDeviceAPI( |
1290 const GURL& url) { | 1291 const GURL& url) { |
1291 #if defined(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) | 1292 #if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) |
1292 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1293 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
1293 switches::kEnablePepperTesting)) | 1294 switches::kEnablePepperTesting)) |
1294 return true; | 1295 return true; |
1295 | 1296 |
1296 if (IsExtensionOrSharedModuleWhitelisted(url, allowed_camera_device_origins_)) | 1297 if (IsExtensionOrSharedModuleWhitelisted(url, allowed_camera_device_origins_)) |
1297 return true; | 1298 return true; |
1298 #endif | 1299 #endif |
1299 | 1300 |
1300 return false; | 1301 return false; |
1301 } | 1302 } |
1302 | 1303 |
1303 bool ChromeContentRendererClient::IsPluginAllowedToUseCompositorAPI( | 1304 bool ChromeContentRendererClient::IsPluginAllowedToUseCompositorAPI( |
1304 const GURL& url) { | 1305 const GURL& url) { |
1305 #if defined(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) | 1306 #if BUILDFLAG(ENABLE_PLUGINS) && BUILDFLAG(ENABLE_EXTENSIONS) |
1306 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1307 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
1307 switches::kEnablePepperTesting)) | 1308 switches::kEnablePepperTesting)) |
1308 return true; | 1309 return true; |
1309 if (IsExtensionOrSharedModuleWhitelisted(url, allowed_compositor_origins_)) | 1310 if (IsExtensionOrSharedModuleWhitelisted(url, allowed_compositor_origins_)) |
1310 return true; | 1311 return true; |
1311 | 1312 |
1312 version_info::Channel channel = chrome::GetChannel(); | 1313 version_info::Channel channel = chrome::GetChannel(); |
1313 return channel <= version_info::Channel::DEV; | 1314 return channel <= version_info::Channel::DEV; |
1314 #else | 1315 #else |
1315 return false; | 1316 return false; |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1470 | 1471 |
1471 url::Replacements<char> r; | 1472 url::Replacements<char> r; |
1472 r.SetPath(path.c_str(), url::Component(0, path.length())); | 1473 r.SetPath(path.c_str(), url::Component(0, path.length())); |
1473 | 1474 |
1474 if (result == internal::NUM_PLUGIN_ERROR) | 1475 if (result == internal::NUM_PLUGIN_ERROR) |
1475 result = invalid_url ? internal::SUCCESS_PARAMS_REWRITE : internal::SUCCESS; | 1476 result = invalid_url ? internal::SUCCESS_PARAMS_REWRITE : internal::SUCCESS; |
1476 | 1477 |
1477 RecordYouTubeRewriteUMA(result); | 1478 RecordYouTubeRewriteUMA(result); |
1478 return corrected_url.ReplaceComponents(r); | 1479 return corrected_url.ReplaceComponents(r); |
1479 } | 1480 } |
OLD | NEW |