Chromium Code Reviews| 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 "content/renderer/pepper/pepper_plugin_instance_impl.h" | 5 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback_helpers.h" | 8 #include "base/callback_helpers.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 388 } | 388 } |
| 389 } | 389 } |
| 390 | 390 |
| 391 } // namespace | 391 } // namespace |
| 392 | 392 |
| 393 // static | 393 // static |
| 394 PepperPluginInstanceImpl* PepperPluginInstanceImpl::Create( | 394 PepperPluginInstanceImpl* PepperPluginInstanceImpl::Create( |
| 395 RenderFrameImpl* render_frame, | 395 RenderFrameImpl* render_frame, |
| 396 PluginModule* module, | 396 PluginModule* module, |
| 397 WebPluginContainer* container, | 397 WebPluginContainer* container, |
| 398 const GURL& plugin_url) { | 398 const GURL& plugin_url, |
| 399 const GURL& top_frame_url) { | |
| 399 base::Callback<const void*(const char*)> get_plugin_interface_func = | 400 base::Callback<const void*(const char*)> get_plugin_interface_func = |
| 400 base::Bind(&PluginModule::GetPluginInterface, module); | 401 base::Bind(&PluginModule::GetPluginInterface, module); |
| 401 PPP_Instance_Combined* ppp_instance_combined = | 402 PPP_Instance_Combined* ppp_instance_combined = |
| 402 PPP_Instance_Combined::Create(get_plugin_interface_func); | 403 PPP_Instance_Combined::Create(get_plugin_interface_func); |
| 403 if (!ppp_instance_combined) | 404 if (!ppp_instance_combined) |
| 404 return NULL; | 405 return NULL; |
| 405 | 406 |
| 406 return new PepperPluginInstanceImpl(render_frame, | 407 return new PepperPluginInstanceImpl(render_frame, |
| 407 module, | 408 module, |
| 408 ppp_instance_combined, | 409 ppp_instance_combined, |
| 409 container, | 410 container, |
| 410 plugin_url); | 411 plugin_url, |
| 412 top_frame_url); | |
| 411 } | 413 } |
| 412 | 414 |
| 413 PepperPluginInstanceImpl::ExternalDocumentLoader::ExternalDocumentLoader() | 415 PepperPluginInstanceImpl::ExternalDocumentLoader::ExternalDocumentLoader() |
| 414 : finished_loading_(false) {} | 416 : finished_loading_(false) {} |
| 415 | 417 |
| 416 PepperPluginInstanceImpl::ExternalDocumentLoader::~ExternalDocumentLoader() {} | 418 PepperPluginInstanceImpl::ExternalDocumentLoader::~ExternalDocumentLoader() {} |
| 417 | 419 |
| 418 void PepperPluginInstanceImpl::ExternalDocumentLoader::ReplayReceivedData( | 420 void PepperPluginInstanceImpl::ExternalDocumentLoader::ReplayReceivedData( |
| 419 WebURLLoaderClient* document_loader) { | 421 WebURLLoaderClient* document_loader) { |
| 420 for (std::list<std::string>::iterator it = data_.begin(); it != data_.end(); | 422 for (std::list<std::string>::iterator it = data_.begin(); it != data_.end(); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 471 blink::WebGamepads webkit_data; | 473 blink::WebGamepads webkit_data; |
| 472 RenderThreadImpl::current()->SampleGamepads(&webkit_data); | 474 RenderThreadImpl::current()->SampleGamepads(&webkit_data); |
| 473 ConvertWebKitGamepadData(bit_cast<ppapi::WebKitGamepads>(webkit_data), data); | 475 ConvertWebKitGamepadData(bit_cast<ppapi::WebKitGamepads>(webkit_data), data); |
| 474 } | 476 } |
| 475 | 477 |
| 476 PepperPluginInstanceImpl::PepperPluginInstanceImpl( | 478 PepperPluginInstanceImpl::PepperPluginInstanceImpl( |
| 477 RenderFrameImpl* render_frame, | 479 RenderFrameImpl* render_frame, |
| 478 PluginModule* module, | 480 PluginModule* module, |
| 479 ppapi::PPP_Instance_Combined* instance_interface, | 481 ppapi::PPP_Instance_Combined* instance_interface, |
| 480 WebPluginContainer* container, | 482 WebPluginContainer* container, |
| 481 const GURL& plugin_url) | 483 const GURL& plugin_url, |
| 484 const GURL& top_frame_url) | |
| 482 : RenderFrameObserver(render_frame), | 485 : RenderFrameObserver(render_frame), |
| 483 render_frame_(render_frame), | 486 render_frame_(render_frame), |
| 484 module_(module), | 487 module_(module), |
| 485 instance_interface_(instance_interface), | 488 instance_interface_(instance_interface), |
| 486 pp_instance_(0), | 489 pp_instance_(0), |
| 487 container_(container), | 490 container_(container), |
| 488 layer_bound_to_fullscreen_(false), | 491 layer_bound_to_fullscreen_(false), |
| 489 layer_is_hardware_(false), | 492 layer_is_hardware_(false), |
| 490 plugin_url_(plugin_url), | 493 plugin_url_(plugin_url), |
| 491 power_saver_enabled_(false), | 494 power_saver_enabled_(false), |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 577 } | 580 } |
| 578 | 581 |
| 579 RendererPpapiHostImpl* host_impl = module_->renderer_ppapi_host(); | 582 RendererPpapiHostImpl* host_impl = module_->renderer_ppapi_host(); |
| 580 resource_creation_ = host_impl->CreateInProcessResourceCreationAPI(this); | 583 resource_creation_ = host_impl->CreateInProcessResourceCreationAPI(this); |
| 581 | 584 |
| 582 if (GetContentClient()->renderer() && // NULL in unit tests. | 585 if (GetContentClient()->renderer() && // NULL in unit tests. |
| 583 GetContentClient()->renderer()->IsExternalPepperPlugin(module->name())) | 586 GetContentClient()->renderer()->IsExternalPepperPlugin(module->name())) |
| 584 external_document_load_ = true; | 587 external_document_load_ = true; |
| 585 | 588 |
| 586 // TODO(tommycli): Insert heuristics to determine whether plugin content | 589 // TODO(tommycli): Insert heuristics to determine whether plugin content |
| 587 // is peripheral here. | 590 // is peripheral here. |
|
groby-ooo-7-16
2014/10/23 00:17:21
I think now would be a good time to add a heuristi
raymes
2014/10/23 00:21:28
Yes, please pull all this out into a function :)
tommycli
2014/10/23 00:46:12
Done.
tommycli
2014/10/23 00:46:12
Done.
| |
| 588 bool is_peripheral_content = true; | 591 bool is_peripheral_content = true; |
| 589 power_saver_enabled_ = is_peripheral_content && | 592 power_saver_enabled_ = is_peripheral_content && |
| 590 module->name() == kFlashPluginName && | 593 module->name() == kFlashPluginName && |
| 591 CommandLine::ForCurrentProcess()->HasSwitch( | 594 CommandLine::ForCurrentProcess()->HasSwitch( |
| 592 switches::kEnablePluginPowerSaver); | 595 switches::kEnablePluginPowerSaver); |
| 593 | 596 |
| 594 if (power_saver_enabled_) { | 597 if (power_saver_enabled_ && |
| 598 plugin_url.GetOrigin() != top_frame_url.GetOrigin()) { | |
| 595 throttler_.reset(new PepperPluginInstanceThrottler( | 599 throttler_.reset(new PepperPluginInstanceThrottler( |
| 596 base::Bind(&PepperPluginInstanceImpl::SetPluginThrottled, | 600 base::Bind(&PepperPluginInstanceImpl::SetPluginThrottled, |
| 597 weak_factory_.GetWeakPtr(), true /* throttled */))); | 601 weak_factory_.GetWeakPtr(), true /* throttled */))); |
| 598 } | 602 } |
| 599 } | 603 } |
| 600 | 604 |
| 601 PepperPluginInstanceImpl::~PepperPluginInstanceImpl() { | 605 PepperPluginInstanceImpl::~PepperPluginInstanceImpl() { |
| 602 DCHECK(!fullscreen_container_); | 606 DCHECK(!fullscreen_container_); |
| 603 | 607 |
| 604 // Notify all the plugin objects of deletion. This will prevent blink from | 608 // Notify all the plugin objects of deletion. This will prevent blink from |
| (...skipping 2697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3302 void PepperPluginInstanceImpl::SetPluginThrottled(bool throttled) { | 3306 void PepperPluginInstanceImpl::SetPluginThrottled(bool throttled) { |
| 3303 // Do not throttle if we've already disabled power saver. | 3307 // Do not throttle if we've already disabled power saver. |
| 3304 if (!power_saver_enabled_ && throttled) | 3308 if (!power_saver_enabled_ && throttled) |
| 3305 return; | 3309 return; |
| 3306 | 3310 |
| 3307 plugin_throttled_ = throttled; | 3311 plugin_throttled_ = throttled; |
| 3308 SendDidChangeView(); | 3312 SendDidChangeView(); |
| 3309 } | 3313 } |
| 3310 | 3314 |
| 3311 } // namespace content | 3315 } // namespace content |
| OLD | NEW |