summaryrefslogtreecommitdiffstats
path: root/chrome/browser/content_settings
diff options
context:
space:
mode:
authorcevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-01 18:20:54 +0000
committercevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-01 18:20:54 +0000
commit6be31d20e5c3727f136b8dfe06cd7f27ebf898bb (patch)
tree4fd003b303a8aad479b3d97fd4d1506817e64c3a /chrome/browser/content_settings
parentebee9ccaecaf57a0d2b8a36a41de689eef977fea (diff)
downloadchromium_src-6be31d20e5c3727f136b8dfe06cd7f27ebf898bb.zip
chromium_src-6be31d20e5c3727f136b8dfe06cd7f27ebf898bb.tar.gz
chromium_src-6be31d20e5c3727f136b8dfe06cd7f27ebf898bb.tar.bz2
Only permit plug-in loads in the browser if the plug-in isn't blocked or the
user has authorized it with a browser-mediated interaction. (Reland https://codereview.chromium.org/12086077 with Android test tweak) BUG=172573 R=jam@chromium.org Review URL: https://codereview.chromium.org/12092107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180159 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/content_settings')
-rw-r--r--chrome/browser/content_settings/content_settings_browsertest.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/chrome/browser/content_settings/content_settings_browsertest.cc b/chrome/browser/content_settings/content_settings_browsertest.cc
index 976364a..d87dcb5 100644
--- a/chrome/browser/content_settings/content_settings_browsertest.cc
+++ b/chrome/browser/content_settings/content_settings_browsertest.cc
@@ -10,6 +10,7 @@
#include "chrome/browser/content_settings/host_content_settings_map.h"
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/net/url_request_mock_util.h"
+#include "chrome/browser/plugins/chrome_plugin_service_filter.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h"
@@ -19,6 +20,8 @@
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/plugin_service.h"
+#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_switches.h"
@@ -313,6 +316,12 @@ IN_PROC_BROWSER_TEST_F(ClickToPlayPluginTest, Basic) {
content::RenderViewHost* host =
browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost();
+ ChromePluginServiceFilter* filter = ChromePluginServiceFilter::GetInstance();
+ int process_id = host->GetProcess()->GetID();
+ FilePath path(FILE_PATH_LITERAL("blah"));
+ EXPECT_FALSE(filter->CanLoadPlugin(process_id, path));
+ filter->AuthorizeAllPlugins(process_id);
+ EXPECT_TRUE(filter->CanLoadPlugin(process_id, path));
host->Send(new ChromeViewMsg_LoadBlockedPlugins(
host->GetRoutingID(), std::string()));
@@ -373,6 +382,8 @@ IN_PROC_BROWSER_TEST_F(ClickToPlayPluginTest, LoadAllBlockedPlugins) {
content::RenderViewHost* host =
browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost();
+ ChromePluginServiceFilter::GetInstance()->AuthorizeAllPlugins(
+ host->GetProcess()->GetID());
host->Send(new ChromeViewMsg_LoadBlockedPlugins(
host->GetRoutingID(), std::string()));
EXPECT_EQ(expected_title1, title_watcher1.WaitAndGetTitle());
@@ -406,6 +417,8 @@ IN_PROC_BROWSER_TEST_F(ClickToPlayPluginTest, NoCallbackAtLoad) {
content::RenderViewHost* host =
browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost();
+ ChromePluginServiceFilter::GetInstance()->AuthorizeAllPlugins(
+ host->GetProcess()->GetID());
host->Send(new ChromeViewMsg_LoadBlockedPlugins(
host->GetRoutingID(), std::string()));
@@ -426,6 +439,8 @@ IN_PROC_BROWSER_TEST_F(ClickToPlayPluginTest, DeleteSelfAtLoad) {
content::RenderViewHost* host =
browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost();
+ ChromePluginServiceFilter::GetInstance()->AuthorizeAllPlugins(
+ host->GetProcess()->GetID());
host->Send(new ChromeViewMsg_LoadBlockedPlugins(
host->GetRoutingID(), std::string()));