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

Unified Diff: chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc

Issue 2378573005: [HBD] Blanket BLOCK on all non-HTTP(s) and non-FILE URLs for Flash. (Closed)
Patch Set: fix dat merge Created 4 years, 2 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/browser/plugins/chrome_plugin_service_filter_unittest.cc
diff --git a/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc b/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc
index 1cb15551cf726c2f4509acaa4a66526a7bfe2af0..dcacc65d37327d555646f531c3f021a0b99b47fc 100644
--- a/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc
+++ b/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc
@@ -37,6 +37,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_constants.h"
#include "content/public/test/test_utils.h"
+#include "url/origin.h"
namespace {
@@ -53,7 +54,7 @@ class ChromePluginServiceFilterTest : public ChromeRenderViewHostTestHarness {
flash_plugin_path_(FILE_PATH_LITERAL("/path/to/flash")) {}
bool IsPluginAvailable(const GURL& plugin_content_url,
- const GURL& main_url,
+ const url::Origin& main_frame_origin,
const void* resource_context,
const content::WebPluginInfo& plugin_info) {
bool is_available = false;
@@ -64,8 +65,9 @@ class ChromePluginServiceFilterTest : public ChromeRenderViewHostTestHarness {
content::BrowserThread::PostTaskAndReply(
content::BrowserThread::IO, FROM_HERE,
base::Bind(&ChromePluginServiceFilterTest::IsPluginAvailableOnIOThread,
- base::Unretained(this), plugin_content_url, main_url,
- resource_context, plugin_info, &is_available),
+ base::Unretained(this), plugin_content_url,
+ main_frame_origin, resource_context, plugin_info,
+ &is_available),
run_loop.QuitClosure());
run_loop.Run();
@@ -86,14 +88,14 @@ class ChromePluginServiceFilterTest : public ChromeRenderViewHostTestHarness {
}
void IsPluginAvailableOnIOThread(const GURL& plugin_content_url,
- const GURL& main_url,
+ const url::Origin& main_frame_origin,
const void* resource_context,
content::WebPluginInfo plugin_info,
bool* is_available) {
*is_available = filter_->IsPluginAvailable(
web_contents()->GetRenderProcessHost()->GetID(),
web_contents()->GetMainFrame()->GetRoutingID(), resource_context,
- plugin_content_url, main_url, &plugin_info);
+ plugin_content_url, main_frame_origin, &plugin_info);
}
ChromePluginServiceFilter* filter_;
@@ -104,8 +106,8 @@ TEST_F(ChromePluginServiceFilterTest, FlashAvailableByDefault) {
content::WebPluginInfo flash_plugin(
base::ASCIIToUTF16(content::kFlashPluginName), flash_plugin_path_,
base::ASCIIToUTF16("1"), base::ASCIIToUTF16("The Flash plugin."));
- EXPECT_TRUE(IsPluginAvailable(GURL(), GURL(), profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_TRUE(IsPluginAvailable(GURL(), url::Origin(),
+ profile()->GetResourceContext(), flash_plugin));
}
TEST_F(ChromePluginServiceFilterTest, PreferHtmlOverPluginsDefault) {
@@ -121,8 +123,9 @@ TEST_F(ChromePluginServiceFilterTest, PreferHtmlOverPluginsDefault) {
// The default content setting should block Flash, as there should be 0
// engagement.
GURL url("http://www.google.com");
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ url::Origin main_frame_origin(url);
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
histograms.ExpectUniqueSample(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1);
@@ -133,8 +136,8 @@ TEST_F(ChromePluginServiceFilterTest, PreferHtmlOverPluginsDefault) {
map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
CONTENT_SETTING_BLOCK);
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
histograms.ExpectUniqueSample(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1);
@@ -145,8 +148,8 @@ TEST_F(ChromePluginServiceFilterTest, PreferHtmlOverPluginsDefault) {
map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
CONTENT_SETTING_ALLOW);
- EXPECT_TRUE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin,
+ profile()->GetResourceContext(), flash_plugin));
histograms.ExpectUniqueSample(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1);
@@ -159,8 +162,8 @@ TEST_F(ChromePluginServiceFilterTest, PreferHtmlOverPluginsDefault) {
map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
CONTENT_SETTING_DETECT_IMPORTANT_CONTENT);
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
histograms.ExpectUniqueSample(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 2);
@@ -189,8 +192,9 @@ TEST_F(ChromePluginServiceFilterTest,
// This should respect the content setting and be allowed.
GURL url("http://www.google.com");
- EXPECT_TRUE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ url::Origin main_frame_origin(url);
+ EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin,
+ profile()->GetResourceContext(), flash_plugin));
histograms.ExpectBucketCount(
ChromePluginServiceFilter::kEngagementSettingAllowedHistogram, 0, 1);
@@ -199,8 +203,8 @@ TEST_F(ChromePluginServiceFilterTest,
CONTENT_SETTING_DETECT_IMPORTANT_CONTENT);
// This should be blocked due to 0 engagement and a detect content setting.
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
histograms.ExpectBucketCount(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1);
@@ -208,15 +212,15 @@ TEST_F(ChromePluginServiceFilterTest,
service->ResetScoreForURL(url, 10.0);
// Should still be blocked.
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
histograms.ExpectBucketCount(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 10, 1);
// Reaching 30.0 engagement should allow Flash.
service->ResetScoreForURL(url, 30.0);
- EXPECT_TRUE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin,
+ profile()->GetResourceContext(), flash_plugin));
histograms.ExpectBucketCount(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1);
@@ -228,8 +232,8 @@ TEST_F(ChromePluginServiceFilterTest,
// Blocked content setting should override engagement
map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
CONTENT_SETTING_BLOCK);
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
histograms.ExpectBucketCount(
ChromePluginServiceFilter::kEngagementSettingBlockedHistogram, 30, 1);
@@ -274,23 +278,24 @@ TEST_F(ChromePluginServiceFilterTest, PreferHtmlOverPluginsCustomEngagement) {
// This should be blocked due to 0 engagement.
GURL url("http://www.google.com");
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ url::Origin main_frame_origin(url);
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
// Should still be blocked until engagement reaches 50.
SiteEngagementService* service = SiteEngagementService::Get(profile());
service->ResetScoreForURL(url, 0.0);
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
service->ResetScoreForURL(url, 10.0);
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
service->ResetScoreForURL(url, 40.0);
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
service->ResetScoreForURL(url, 60.0);
- EXPECT_TRUE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin,
+ profile()->GetResourceContext(), flash_plugin));
histograms.ExpectBucketCount(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 2);
@@ -325,16 +330,17 @@ TEST_F(ChromePluginServiceFilterTest,
// We should fail the availablity check in incognito.
GURL url("http://www.google.com");
- EXPECT_FALSE(IsPluginAvailable(url, url, incognito->GetResourceContext(),
- flash_plugin));
+ url::Origin main_frame_origin(url);
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, incognito->GetResourceContext(), flash_plugin));
// Add sufficient engagement to allow Flash in the original profile.
SiteEngagementService* service = SiteEngagementService::Get(profile());
service->ResetScoreForURL(url, 30.0);
// We should still fail the engagement check due to the block.
- EXPECT_FALSE(IsPluginAvailable(url, url, incognito->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, incognito->GetResourceContext(), flash_plugin));
// Change to detect important content in the original profile.
map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
@@ -343,8 +349,8 @@ TEST_F(ChromePluginServiceFilterTest,
// Ensure we pass the engagement check in the incognito profile (i.e. it falls
// back to checking engagement from the original profile when nothing is found
// in the incognito profile).
- EXPECT_TRUE(IsPluginAvailable(url, url, incognito->GetResourceContext(),
- flash_plugin));
+ EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin,
+ incognito->GetResourceContext(), flash_plugin));
}
TEST_F(ChromePluginServiceFilterTest,
@@ -369,24 +375,25 @@ TEST_F(ChromePluginServiceFilterTest,
// We pass the availablity check in incognito based on the original content
// setting.
GURL url("http://www.google.com");
- EXPECT_TRUE(IsPluginAvailable(url, url, incognito->GetResourceContext(),
- flash_plugin));
+ url::Origin main_frame_origin(url);
+ EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin,
+ incognito->GetResourceContext(), flash_plugin));
map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
CONTENT_SETTING_DETECT_IMPORTANT_CONTENT);
// Now we fail the availability check due to the content setting carrying
// over.
- EXPECT_FALSE(IsPluginAvailable(url, url, incognito->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, incognito->GetResourceContext(), flash_plugin));
// Add sufficient engagement to allow Flash in the incognito profile.
SiteEngagementService* service = SiteEngagementService::Get(incognito);
service->ResetScoreForURL(url, 30.0);
// Ensure we pass the engagement check in the incognito profile.
- EXPECT_TRUE(IsPluginAvailable(url, url, incognito->GetResourceContext(),
- flash_plugin));
+ EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin,
+ incognito->GetResourceContext(), flash_plugin));
}
TEST_F(ChromePluginServiceFilterTest, BlockIfManagedSetting) {
@@ -407,9 +414,10 @@ TEST_F(ChromePluginServiceFilterTest, BlockIfManagedSetting) {
SiteEngagementService* service = SiteEngagementService::Get(profile());
// Reaching 30.0 engagement should allow Flash.
GURL url("http://www.google.com");
+ url::Origin main_frame_origin(url);
service->ResetScoreForURL(url, 30.0);
- EXPECT_TRUE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin,
+ profile()->GetResourceContext(), flash_plugin));
histograms.ExpectUniqueSample(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 30, 1);
@@ -418,9 +426,8 @@ TEST_F(ChromePluginServiceFilterTest, BlockIfManagedSetting) {
profile()->GetTestingPrefService();
prefs->SetManagedPref(prefs::kManagedDefaultPluginsSetting,
new base::FundamentalValue(CONTENT_SETTING_ASK));
-
- EXPECT_FALSE(IsPluginAvailable(url, url, profile()->GetResourceContext(),
- flash_plugin));
+ EXPECT_FALSE(IsPluginAvailable(
+ url, main_frame_origin, profile()->GetResourceContext(), flash_plugin));
histograms.ExpectUniqueSample(
ChromePluginServiceFilter::kEngagementNoSettingHistogram, 30, 2);
}
« no previous file with comments | « chrome/browser/plugins/chrome_plugin_service_filter.cc ('k') | chrome/browser/plugins/flash_download_interception.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698