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 <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/crash_logging.h" | 10 #include "base/debug/crash_logging.h" |
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 ShouldUseJavaScriptSettingForPlugin(info) | 670 ShouldUseJavaScriptSettingForPlugin(info) |
671 ? CONTENT_SETTINGS_TYPE_JAVASCRIPT | 671 ? CONTENT_SETTINGS_TYPE_JAVASCRIPT |
672 : CONTENT_SETTINGS_TYPE_PLUGINS; | 672 : CONTENT_SETTINGS_TYPE_PLUGINS; |
673 | 673 |
674 if ((status == ChromeViewHostMsg_GetPluginInfo_Status::kUnauthorized || | 674 if ((status == ChromeViewHostMsg_GetPluginInfo_Status::kUnauthorized || |
675 status == ChromeViewHostMsg_GetPluginInfo_Status::kBlocked) && | 675 status == ChromeViewHostMsg_GetPluginInfo_Status::kBlocked) && |
676 observer->IsPluginTemporarilyAllowed(identifier)) { | 676 observer->IsPluginTemporarilyAllowed(identifier)) { |
677 status = ChromeViewHostMsg_GetPluginInfo_Status::kAllowed; | 677 status = ChromeViewHostMsg_GetPluginInfo_Status::kAllowed; |
678 } | 678 } |
679 | 679 |
680 #if defined(OS_WIN) | |
681 // In Windows we need to check if we can load NPAPI plugins. | |
682 // For example, if the render view is in the Ash desktop, we should not. | |
683 // If user is on ALLOW or DETECT setting, loading needs to be blocked here. | |
684 if ((status == ChromeViewHostMsg_GetPluginInfo_Status::kAllowed || | |
685 status == | |
686 ChromeViewHostMsg_GetPluginInfo_Status::kPlayImportantContent) && | |
687 info.type == content::WebPluginInfo::PLUGIN_TYPE_NPAPI) { | |
688 if (observer->AreNPAPIPluginsBlocked()) | |
689 status = ChromeViewHostMsg_GetPluginInfo_Status::kNPAPINotSupported; | |
690 } | |
691 #endif | |
692 | |
693 auto create_blocked_plugin = [&render_frame, &frame, ¶ms, &info, | 680 auto create_blocked_plugin = [&render_frame, &frame, ¶ms, &info, |
694 &identifier, &group_name]( | 681 &identifier, &group_name]( |
695 int template_id, const base::string16& message) { | 682 int template_id, const base::string16& message) { |
696 return ChromePluginPlaceholder::CreateBlockedPlugin( | 683 return ChromePluginPlaceholder::CreateBlockedPlugin( |
697 render_frame, frame, params, info, identifier, group_name, | 684 render_frame, frame, params, info, identifier, group_name, |
698 template_id, message, PowerSaverInfo()); | 685 template_id, message, PowerSaverInfo()); |
699 }; | 686 }; |
700 switch (status) { | 687 switch (status) { |
701 case ChromeViewHostMsg_GetPluginInfo_Status::kNotFound: { | 688 case ChromeViewHostMsg_GetPluginInfo_Status::kNotFound: { |
702 NOTREACHED(); | 689 NOTREACHED(); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
798 // PluginPreroller manages its own lifetime. | 785 // PluginPreroller manages its own lifetime. |
799 new PluginPreroller( | 786 new PluginPreroller( |
800 render_frame, frame, params, info, identifier, group_name, | 787 render_frame, frame, params, info, identifier, group_name, |
801 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name), | 788 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name), |
802 throttler.get()); | 789 throttler.get()); |
803 } | 790 } |
804 | 791 |
805 return render_frame->CreatePlugin(frame, info, params, | 792 return render_frame->CreatePlugin(frame, info, params, |
806 std::move(throttler)); | 793 std::move(throttler)); |
807 } | 794 } |
808 case ChromeViewHostMsg_GetPluginInfo_Status::kNPAPINotSupported: { | |
809 RenderThread::Get()->RecordAction( | |
810 UserMetricsAction("Plugin_NPAPINotSupported")); | |
811 placeholder = create_blocked_plugin( | |
812 IDR_BLOCKED_PLUGIN_HTML, | |
813 l10n_util::GetStringUTF16(IDS_PLUGIN_NOT_SUPPORTED_METRO)); | |
814 break; | |
815 } | |
816 case ChromeViewHostMsg_GetPluginInfo_Status::kDisabled: { | 795 case ChromeViewHostMsg_GetPluginInfo_Status::kDisabled: { |
817 PluginUMAReporter::GetInstance()->ReportPluginDisabled(orig_mime_type, | 796 PluginUMAReporter::GetInstance()->ReportPluginDisabled(orig_mime_type, |
818 url); | 797 url); |
819 placeholder = create_blocked_plugin( | 798 placeholder = create_blocked_plugin( |
820 IDR_DISABLED_PLUGIN_HTML, | 799 IDR_DISABLED_PLUGIN_HTML, |
821 l10n_util::GetStringFUTF16(IDS_PLUGIN_DISABLED, group_name)); | 800 l10n_util::GetStringFUTF16(IDS_PLUGIN_DISABLED, group_name)); |
822 break; | 801 break; |
823 } | 802 } |
824 case ChromeViewHostMsg_GetPluginInfo_Status::kOutdatedBlocked: { | 803 case ChromeViewHostMsg_GetPluginInfo_Status::kOutdatedBlocked: { |
825 #if defined(ENABLE_PLUGIN_INSTALLATION) | 804 #if defined(ENABLE_PLUGIN_INSTALLATION) |
(...skipping 13 matching lines...) Expand all Loading... |
839 placeholder = create_blocked_plugin( | 818 placeholder = create_blocked_plugin( |
840 IDR_BLOCKED_PLUGIN_HTML, | 819 IDR_BLOCKED_PLUGIN_HTML, |
841 l10n_util::GetStringFUTF16(IDS_PLUGIN_OUTDATED, group_name)); | 820 l10n_util::GetStringFUTF16(IDS_PLUGIN_OUTDATED, group_name)); |
842 break; | 821 break; |
843 } | 822 } |
844 case ChromeViewHostMsg_GetPluginInfo_Status::kUnauthorized: { | 823 case ChromeViewHostMsg_GetPluginInfo_Status::kUnauthorized: { |
845 placeholder = create_blocked_plugin( | 824 placeholder = create_blocked_plugin( |
846 IDR_BLOCKED_PLUGIN_HTML, | 825 IDR_BLOCKED_PLUGIN_HTML, |
847 l10n_util::GetStringFUTF16(IDS_PLUGIN_NOT_AUTHORIZED, group_name)); | 826 l10n_util::GetStringFUTF16(IDS_PLUGIN_NOT_AUTHORIZED, group_name)); |
848 placeholder->AllowLoading(); | 827 placeholder->AllowLoading(); |
849 if (info.type != content::WebPluginInfo::PLUGIN_TYPE_NPAPI) { | 828 render_frame->Send(new ChromeViewHostMsg_BlockedUnauthorizedPlugin( |
850 render_frame->Send(new ChromeViewHostMsg_BlockedUnauthorizedPlugin( | 829 render_frame->GetRoutingID(), group_name, identifier)); |
851 render_frame->GetRoutingID(), | |
852 group_name, | |
853 identifier)); | |
854 } | |
855 observer->DidBlockContentType(content_type, group_name); | 830 observer->DidBlockContentType(content_type, group_name); |
856 break; | 831 break; |
857 } | 832 } |
858 case ChromeViewHostMsg_GetPluginInfo_Status::kBlocked: { | 833 case ChromeViewHostMsg_GetPluginInfo_Status::kBlocked: { |
859 placeholder = create_blocked_plugin( | 834 placeholder = create_blocked_plugin( |
860 IDR_BLOCKED_PLUGIN_HTML, | 835 IDR_BLOCKED_PLUGIN_HTML, |
861 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); | 836 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); |
862 placeholder->AllowLoading(); | 837 placeholder->AllowLoading(); |
863 RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked")); | 838 RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked")); |
864 observer->DidBlockContentType(content_type, group_name); | 839 observer->DidBlockContentType(content_type, group_name); |
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1432 // chrome.system.network.getNetworkInterfaces provides the same | 1407 // chrome.system.network.getNetworkInterfaces provides the same |
1433 // information. Also, the enforcement of sending and binding UDP is already done | 1408 // information. Also, the enforcement of sending and binding UDP is already done |
1434 // by chrome extension permission model. | 1409 // by chrome extension permission model. |
1435 bool ChromeContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() { | 1410 bool ChromeContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() { |
1436 #if defined(ENABLE_EXTENSIONS) | 1411 #if defined(ENABLE_EXTENSIONS) |
1437 return !IsStandaloneExtensionProcess(); | 1412 return !IsStandaloneExtensionProcess(); |
1438 #else | 1413 #else |
1439 return true; | 1414 return true; |
1440 #endif | 1415 #endif |
1441 } | 1416 } |
OLD | NEW |