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

Side by Side 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 unified diff | Download patch
OLDNEW
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 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 // reduce the chance of future regressions. 761 // reduce the chance of future regressions.
762 bool is_prerendering = 762 bool is_prerendering =
763 prerender::PrerenderHelper::IsPrerendering(render_frame); 763 prerender::PrerenderHelper::IsPrerendering(render_frame);
764 764
765 bool power_saver_setting_on = 765 bool power_saver_setting_on =
766 status == 766 status ==
767 ChromeViewHostMsg_GetPluginInfo_Status::kPlayImportantContent; 767 ChromeViewHostMsg_GetPluginInfo_Status::kPlayImportantContent;
768 PowerSaverInfo power_saver_info = 768 PowerSaverInfo power_saver_info =
769 PowerSaverInfo::Get(render_frame, power_saver_setting_on, params, 769 PowerSaverInfo::Get(render_frame, power_saver_setting_on, params,
770 info, frame->document().url()); 770 info, frame->document().url());
771 // Prevent small plugins from loading by using a placeholder until
772 // we can determine the unobscured size of the object.
773 bool blocked_for_tinyness =
774 ChromePluginPlaceholder::IsSmallContentFilterEnabled() &&
775 power_saver_info.power_saver_enabled;
776
771 if (power_saver_info.blocked_for_background_tab || is_prerendering || 777 if (power_saver_info.blocked_for_background_tab || is_prerendering ||
772 !power_saver_info.poster_attribute.empty()) { 778 !power_saver_info.poster_attribute.empty() ||
779 blocked_for_tinyness) {
773 placeholder = ChromePluginPlaceholder::CreateBlockedPlugin( 780 placeholder = ChromePluginPlaceholder::CreateBlockedPlugin(
774 render_frame, frame, params, info, identifier, group_name, 781 render_frame, frame, params, info, identifier, group_name,
775 power_saver_info.poster_attribute.empty() 782 power_saver_info.poster_attribute.empty()
776 ? IDR_BLOCKED_PLUGIN_HTML 783 ? IDR_BLOCKED_PLUGIN_HTML
777 : IDR_PLUGIN_POSTER_HTML, 784 : IDR_PLUGIN_POSTER_HTML,
778 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name), 785 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name),
779 power_saver_info); 786 power_saver_info);
780 placeholder->set_blocked_for_prerendering(is_prerendering); 787 placeholder->set_blocked_for_prerendering(is_prerendering);
788 placeholder->set_blocked_for_tinyness(blocked_for_tinyness);
781 placeholder->AllowLoading(); 789 placeholder->AllowLoading();
782 break; 790 break;
783 } 791 }
784 792
785 std::unique_ptr<content::PluginInstanceThrottler> throttler; 793 std::unique_ptr<content::PluginInstanceThrottler> throttler;
786
787 // Small content filter requires routing through a placeholder.
788 if (ChromePluginPlaceholder::IsSmallContentFilterEnabled() &&
789 power_saver_info.power_saver_enabled) {
790 // The feature only applies to flash plugins.
791 if (power_saver_info.is_eligible) {
792 placeholder = ChromePluginPlaceholder::CreateDelayedPlugin(
793 render_frame, frame, params, info, identifier, group_name,
794 power_saver_info);
795 break;
796 }
797 }
798
799 if (power_saver_info.power_saver_enabled) { 794 if (power_saver_info.power_saver_enabled) {
800 throttler = PluginInstanceThrottler::Create(); 795 throttler = PluginInstanceThrottler::Create();
801 // PluginPreroller manages its own lifetime. 796 // PluginPreroller manages its own lifetime.
802 new PluginPreroller( 797 new PluginPreroller(
803 render_frame, frame, params, info, identifier, group_name, 798 render_frame, frame, params, info, identifier, group_name,
804 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name), 799 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name),
805 throttler.get()); 800 throttler.get());
806 } 801 }
807 802
808 return render_frame->CreatePlugin(frame, info, params, 803 return render_frame->CreatePlugin(frame, info, params,
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 // chrome.system.network.getNetworkInterfaces provides the same 1378 // chrome.system.network.getNetworkInterfaces provides the same
1384 // information. Also, the enforcement of sending and binding UDP is already done 1379 // information. Also, the enforcement of sending and binding UDP is already done
1385 // by chrome extension permission model. 1380 // by chrome extension permission model.
1386 bool ChromeContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() { 1381 bool ChromeContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() {
1387 #if defined(ENABLE_EXTENSIONS) 1382 #if defined(ENABLE_EXTENSIONS)
1388 return !IsStandaloneExtensionProcess(); 1383 return !IsStandaloneExtensionProcess();
1389 #else 1384 #else
1390 return true; 1385 return true;
1391 #endif 1386 #endif
1392 } 1387 }
OLDNEW
« 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