Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Unified Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 2143073002: Plugin Power Saver: Improve blocked tiny plugins behavior (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rename a variable again Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/chrome_content_renderer_client.cc
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 8999f1a9b452c07f667f179466926dcf146a70af..ec4c0d63c5aebcf8c33f79a300ff42577c472938 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -768,8 +768,15 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
PowerSaverInfo power_saver_info =
PowerSaverInfo::Get(render_frame, power_saver_setting_on, params,
info, frame->document().url());
+ // Prevent small plugins from loading by using a placeholder until
+ // we can determine the unobscured size of the object.
+ bool blocked_for_tinyness =
+ ChromePluginPlaceholder::IsSmallContentFilterEnabled() &&
+ power_saver_info.power_saver_enabled;
+
if (power_saver_info.blocked_for_background_tab || is_prerendering ||
- !power_saver_info.poster_attribute.empty()) {
+ !power_saver_info.poster_attribute.empty() ||
+ blocked_for_tinyness) {
placeholder = ChromePluginPlaceholder::CreateBlockedPlugin(
render_frame, frame, params, info, identifier, group_name,
power_saver_info.poster_attribute.empty()
@@ -778,24 +785,12 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name),
power_saver_info);
placeholder->set_blocked_for_prerendering(is_prerendering);
+ placeholder->set_blocked_for_tinyness(blocked_for_tinyness);
placeholder->AllowLoading();
break;
}
std::unique_ptr<content::PluginInstanceThrottler> throttler;
-
- // Small content filter requires routing through a placeholder.
- if (ChromePluginPlaceholder::IsSmallContentFilterEnabled() &&
- power_saver_info.power_saver_enabled) {
- // The feature only applies to flash plugins.
- if (power_saver_info.is_eligible) {
- placeholder = ChromePluginPlaceholder::CreateDelayedPlugin(
- render_frame, frame, params, info, identifier, group_name,
- power_saver_info);
- break;
- }
- }
-
if (power_saver_info.power_saver_enabled) {
throttler = PluginInstanceThrottler::Create();
// PluginPreroller manages its own lifetime.
« no previous file with comments | « chrome/browser/plugins/plugin_power_saver_browsertest.cc ('k') | chrome/renderer/plugins/chrome_plugin_placeholder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698