diff options
author | cevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-01 18:20:54 +0000 |
---|---|---|
committer | cevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-01 18:20:54 +0000 |
commit | 6be31d20e5c3727f136b8dfe06cd7f27ebf898bb (patch) | |
tree | 4fd003b303a8aad479b3d97fd4d1506817e64c3a /chrome/browser/content_settings | |
parent | ebee9ccaecaf57a0d2b8a36a41de689eef977fea (diff) | |
download | chromium_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.cc | 15 |
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())); |