| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/browser/plugins/chrome_plugin_service_filter.h" | 5 #include "chrome/browser/plugins/chrome_plugin_service_filter.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS, | 203 map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS, |
| 204 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); | 204 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); |
| 205 | 205 |
| 206 // This should be blocked due to 0 engagement and a detect content setting. | 206 // This should be blocked due to 0 engagement and a detect content setting. |
| 207 EXPECT_FALSE(IsPluginAvailable( | 207 EXPECT_FALSE(IsPluginAvailable( |
| 208 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); | 208 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); |
| 209 histograms.ExpectBucketCount( | 209 histograms.ExpectBucketCount( |
| 210 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1); | 210 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1); |
| 211 | 211 |
| 212 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 212 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
| 213 service->ResetScoreForURL(url, 10.0); | 213 service->ResetBaseScoreForURL(url, 10.0); |
| 214 | 214 |
| 215 // Should still be blocked. | 215 // Should still be blocked. |
| 216 EXPECT_FALSE(IsPluginAvailable( | 216 EXPECT_FALSE(IsPluginAvailable( |
| 217 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); | 217 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); |
| 218 histograms.ExpectBucketCount( | 218 histograms.ExpectBucketCount( |
| 219 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 10, 1); | 219 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 10, 1); |
| 220 | 220 |
| 221 // Reaching 30.0 engagement should allow Flash. | 221 // Reaching 30.0 engagement should allow Flash. |
| 222 service->ResetScoreForURL(url, 30.0); | 222 service->ResetBaseScoreForURL(url, 30.0); |
| 223 EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, | 223 EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, |
| 224 profile()->GetResourceContext(), flash_plugin)); | 224 profile()->GetResourceContext(), flash_plugin)); |
| 225 | 225 |
| 226 histograms.ExpectBucketCount( | 226 histograms.ExpectBucketCount( |
| 227 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1); | 227 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 1); |
| 228 histograms.ExpectBucketCount( | 228 histograms.ExpectBucketCount( |
| 229 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 10, 1); | 229 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 10, 1); |
| 230 histograms.ExpectBucketCount( | 230 histograms.ExpectBucketCount( |
| 231 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 30, 1); | 231 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 30, 1); |
| 232 | 232 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); | 278 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); |
| 279 | 279 |
| 280 // This should be blocked due to 0 engagement. | 280 // This should be blocked due to 0 engagement. |
| 281 GURL url("http://www.google.com"); | 281 GURL url("http://www.google.com"); |
| 282 url::Origin main_frame_origin(url); | 282 url::Origin main_frame_origin(url); |
| 283 EXPECT_FALSE(IsPluginAvailable( | 283 EXPECT_FALSE(IsPluginAvailable( |
| 284 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); | 284 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); |
| 285 | 285 |
| 286 // Should still be blocked until engagement reaches 50. | 286 // Should still be blocked until engagement reaches 50. |
| 287 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 287 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
| 288 service->ResetScoreForURL(url, 0.0); | 288 service->ResetBaseScoreForURL(url, 0.0); |
| 289 EXPECT_FALSE(IsPluginAvailable( | 289 EXPECT_FALSE(IsPluginAvailable( |
| 290 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); | 290 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); |
| 291 service->ResetScoreForURL(url, 10.0); | 291 service->ResetBaseScoreForURL(url, 10.0); |
| 292 EXPECT_FALSE(IsPluginAvailable( | 292 EXPECT_FALSE(IsPluginAvailable( |
| 293 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); | 293 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); |
| 294 service->ResetScoreForURL(url, 40.0); | 294 service->ResetBaseScoreForURL(url, 40.0); |
| 295 EXPECT_FALSE(IsPluginAvailable( | 295 EXPECT_FALSE(IsPluginAvailable( |
| 296 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); | 296 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); |
| 297 service->ResetScoreForURL(url, 60.0); | 297 service->ResetBaseScoreForURL(url, 60.0); |
| 298 EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, | 298 EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, |
| 299 profile()->GetResourceContext(), flash_plugin)); | 299 profile()->GetResourceContext(), flash_plugin)); |
| 300 | 300 |
| 301 histograms.ExpectBucketCount( | 301 histograms.ExpectBucketCount( |
| 302 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 2); | 302 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 0, 2); |
| 303 histograms.ExpectBucketCount( | 303 histograms.ExpectBucketCount( |
| 304 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 10, 1); | 304 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 10, 1); |
| 305 histograms.ExpectBucketCount( | 305 histograms.ExpectBucketCount( |
| 306 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 40, 1); | 306 ChromePluginServiceFilter::kEngagementNoSettingHistogram, 40, 1); |
| 307 histograms.ExpectBucketCount( | 307 histograms.ExpectBucketCount( |
| (...skipping 22 matching lines...) Expand all Loading... |
| 330 CONTENT_SETTING_BLOCK); | 330 CONTENT_SETTING_BLOCK); |
| 331 | 331 |
| 332 // We should fail the availablity check in incognito. | 332 // We should fail the availablity check in incognito. |
| 333 GURL url("http://www.google.com"); | 333 GURL url("http://www.google.com"); |
| 334 url::Origin main_frame_origin(url); | 334 url::Origin main_frame_origin(url); |
| 335 EXPECT_FALSE(IsPluginAvailable( | 335 EXPECT_FALSE(IsPluginAvailable( |
| 336 url, main_frame_origin, incognito->GetResourceContext(), flash_plugin)); | 336 url, main_frame_origin, incognito->GetResourceContext(), flash_plugin)); |
| 337 | 337 |
| 338 // Add sufficient engagement to allow Flash in the original profile. | 338 // Add sufficient engagement to allow Flash in the original profile. |
| 339 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 339 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
| 340 service->ResetScoreForURL(url, 30.0); | 340 service->ResetBaseScoreForURL(url, 30.0); |
| 341 | 341 |
| 342 // We should still fail the engagement check due to the block. | 342 // We should still fail the engagement check due to the block. |
| 343 EXPECT_FALSE(IsPluginAvailable( | 343 EXPECT_FALSE(IsPluginAvailable( |
| 344 url, main_frame_origin, incognito->GetResourceContext(), flash_plugin)); | 344 url, main_frame_origin, incognito->GetResourceContext(), flash_plugin)); |
| 345 | 345 |
| 346 // Change to detect important content in the original profile. | 346 // Change to detect important content in the original profile. |
| 347 map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS, | 347 map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS, |
| 348 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); | 348 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); |
| 349 | 349 |
| 350 // Ensure we pass the engagement check in the incognito profile (i.e. it falls | 350 // Ensure we pass the engagement check in the incognito profile (i.e. it falls |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 390 std::string(), | 390 std::string(), |
| 391 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); | 391 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); |
| 392 | 392 |
| 393 // Now we fail the availability check due to the content setting carrying | 393 // Now we fail the availability check due to the content setting carrying |
| 394 // over. | 394 // over. |
| 395 EXPECT_FALSE(IsPluginAvailable( | 395 EXPECT_FALSE(IsPluginAvailable( |
| 396 url, main_frame_origin, incognito->GetResourceContext(), flash_plugin)); | 396 url, main_frame_origin, incognito->GetResourceContext(), flash_plugin)); |
| 397 | 397 |
| 398 // Add sufficient engagement to allow Flash in the incognito profile. | 398 // Add sufficient engagement to allow Flash in the incognito profile. |
| 399 SiteEngagementService* service = SiteEngagementService::Get(incognito); | 399 SiteEngagementService* service = SiteEngagementService::Get(incognito); |
| 400 service->ResetScoreForURL(url, 30.0); | 400 service->ResetBaseScoreForURL(url, 30.0); |
| 401 | 401 |
| 402 // Ensure we pass the engagement check in the incognito profile. | 402 // Ensure we pass the engagement check in the incognito profile. |
| 403 EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, | 403 EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, |
| 404 incognito->GetResourceContext(), flash_plugin)); | 404 incognito->GetResourceContext(), flash_plugin)); |
| 405 } | 405 } |
| 406 | 406 |
| 407 TEST_F(ChromePluginServiceFilterTest, ManagedSetting) { | 407 TEST_F(ChromePluginServiceFilterTest, ManagedSetting) { |
| 408 content::WebPluginInfo flash_plugin( | 408 content::WebPluginInfo flash_plugin( |
| 409 base::ASCIIToUTF16(content::kFlashPluginName), flash_plugin_path_, | 409 base::ASCIIToUTF16(content::kFlashPluginName), flash_plugin_path_, |
| 410 base::ASCIIToUTF16("1"), base::ASCIIToUTF16("The Flash plugin.")); | 410 base::ASCIIToUTF16("1"), base::ASCIIToUTF16("The Flash plugin.")); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 421 sync_preferences::TestingPrefServiceSyncable* prefs = | 421 sync_preferences::TestingPrefServiceSyncable* prefs = |
| 422 profile()->GetTestingPrefService(); | 422 profile()->GetTestingPrefService(); |
| 423 prefs->SetManagedPref(prefs::kManagedDefaultPluginsSetting, | 423 prefs->SetManagedPref(prefs::kManagedDefaultPluginsSetting, |
| 424 new base::Value(CONTENT_SETTING_ASK)); | 424 new base::Value(CONTENT_SETTING_ASK)); |
| 425 | 425 |
| 426 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 426 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
| 427 GURL url("http://www.google.com"); | 427 GURL url("http://www.google.com"); |
| 428 url::Origin main_frame_origin(url); | 428 url::Origin main_frame_origin(url); |
| 429 NavigateAndCommit(url); | 429 NavigateAndCommit(url); |
| 430 | 430 |
| 431 service->ResetScoreForURL(url, 30.0); | 431 service->ResetBaseScoreForURL(url, 30.0); |
| 432 // Reaching 30.0 engagement would usually allow Flash, but not for enterprise. | 432 // Reaching 30.0 engagement would usually allow Flash, but not for enterprise. |
| 433 service->ResetScoreForURL(url, 0); | 433 service->ResetBaseScoreForURL(url, 0); |
| 434 EXPECT_FALSE(IsPluginAvailable( | 434 EXPECT_FALSE(IsPluginAvailable( |
| 435 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); | 435 url, main_frame_origin, profile()->GetResourceContext(), flash_plugin)); |
| 436 | 436 |
| 437 // Allow flash temporarily. | 437 // Allow flash temporarily. |
| 438 FlashTemporaryPermissionTracker::Get(profile())->FlashEnabledForWebContents( | 438 FlashTemporaryPermissionTracker::Get(profile())->FlashEnabledForWebContents( |
| 439 web_contents()); | 439 web_contents()); |
| 440 EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, | 440 EXPECT_TRUE(IsPluginAvailable(url, main_frame_origin, |
| 441 profile()->GetResourceContext(), flash_plugin)); | 441 profile()->GetResourceContext(), flash_plugin)); |
| 442 } | 442 } |
| OLD | NEW |