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

Side by Side Diff: chrome/browser/permissions/permission_context_base_unittest.cc

Issue 2622983003: Implement embargo in PermissionDecisionAutoBlocker (Closed)
Patch Set: Testing clean up and nits Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/permissions/permission_context_base.h" 5 #include "chrome/browser/permissions/permission_context_base.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 void DismissMultipleTimesAndExpectBlock( 319 void DismissMultipleTimesAndExpectBlock(
320 const GURL& url, 320 const GURL& url,
321 content::PermissionType permission_type, 321 content::PermissionType permission_type,
322 ContentSettingsType content_settings_type, 322 ContentSettingsType content_settings_type,
323 uint32_t iterations) { 323 uint32_t iterations) {
324 base::HistogramTester histograms; 324 base::HistogramTester histograms;
325 325
326 // Dismiss |iterations| times. The final dismiss should change the decision 326 // Dismiss |iterations| times. The final dismiss should change the decision
327 // from dismiss to block, and hence change the persisted content setting. 327 // from dismiss to block, and hence change the persisted content setting.
328 for (uint32_t i = 0; i < iterations; ++i) { 328 for (uint32_t i = 0; i < iterations; ++i) {
329 ContentSetting expected =
330 (i < 2) ? CONTENT_SETTING_ASK : CONTENT_SETTING_BLOCK;
329 TestPermissionContext permission_context( 331 TestPermissionContext permission_context(
330 profile(), permission_type, content_settings_type); 332 profile(), permission_type, content_settings_type);
331 ContentSetting expected =
332 (i < (iterations - 1)) ? CONTENT_SETTING_ASK : CONTENT_SETTING_BLOCK;
333
334 const PermissionRequestID id( 333 const PermissionRequestID id(
335 web_contents()->GetRenderProcessHost()->GetID(), 334 web_contents()->GetRenderProcessHost()->GetID(),
336 web_contents()->GetMainFrame()->GetRoutingID(), i); 335 web_contents()->GetMainFrame()->GetRoutingID(), i);
337 336
338 permission_context.SetRespondPermissionCallback( 337 permission_context.SetRespondPermissionCallback(
339 base::Bind(&PermissionContextBaseTests::RespondToPermission, 338 base::Bind(&PermissionContextBaseTests::RespondToPermission,
340 base::Unretained(this), &permission_context, id, url, 339 base::Unretained(this), &permission_context, id, url,
341 false, CONTENT_SETTING_ASK)); 340 false, CONTENT_SETTING_ASK));
342 341
343 permission_context.RequestPermission( 342 permission_context.RequestPermission(
344 web_contents(), id, url, true /* user_gesture */, 343 web_contents(), id, url, true /* user_gesture */,
345 base::Bind(&TestPermissionContext::TrackPermissionDecision, 344 base::Bind(&TestPermissionContext::TrackPermissionDecision,
346 base::Unretained(&permission_context))); 345 base::Unretained(&permission_context)));
347 histograms.ExpectTotalCount( 346 histograms.ExpectTotalCount(
348 "Permissions.Prompt.Dismissed.PriorDismissCount." + 347 "Permissions.Prompt.Dismissed.PriorDismissCount." +
349 PermissionUtil::GetPermissionString(permission_type), 348 PermissionUtil::GetPermissionString(permission_type),
350 i + 1); 349 i + 1);
351 histograms.ExpectBucketCount( 350 histograms.ExpectBucketCount(
352 "Permissions.Prompt.Dismissed.PriorDismissCount." + 351 "Permissions.Prompt.Dismissed.PriorDismissCount." +
353 PermissionUtil::GetPermissionString(permission_type), 352 PermissionUtil::GetPermissionString(permission_type),
354 i, 1); 353 i, 1);
355
356 ASSERT_EQ(1u, permission_context.decisions().size()); 354 ASSERT_EQ(1u, permission_context.decisions().size());
357 EXPECT_EQ(expected, permission_context.decisions()[0]); 355 EXPECT_EQ(expected, permission_context.decisions()[0]);
358 EXPECT_TRUE(permission_context.tab_context_updated()); 356 EXPECT_TRUE(permission_context.tab_context_updated());
359 EXPECT_EQ(expected, 357 EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url));
360 permission_context.GetContentSettingFromMap(url, url));
361 } 358 }
362 359
363 // Ensure that we finish in the block state. 360 TestPermissionContext permission_context(profile(), permission_type,
364 TestPermissionContext permission_context( 361 content_settings_type);
365 profile(), permission_type, content_settings_type); 362
366 EXPECT_EQ(CONTENT_SETTING_BLOCK, 363 EXPECT_EQ(CONTENT_SETTING_BLOCK,
367 permission_context.GetContentSettingFromMap(url, url)); 364 permission_context.GetPermissionStatus(url, url));
368 } 365 }
369 366
370 void TestBlockOnSeveralDismissals_TestContent() { 367 void TestBlockOnSeveralDismissals_TestContent() {
371 GURL url("https://www.google.com"); 368 GURL url("https://www.google.com");
372 NavigateAndCommit(url); 369 NavigateAndCommit(url);
373 base::HistogramTester histograms; 370 base::HistogramTester histograms;
374 371
375 // First, ensure that > 3 dismissals behaves correctly. 372 // First, ensure that > 3 dismissals behaves correctly.
376 for (uint32_t i = 0; i < 4; ++i) { 373 for (uint32_t i = 0; i < 4; ++i) {
377 TestPermissionContext permission_context( 374 TestPermissionContext permission_context(
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 base::Unretained(this), &permission_context, id, url, 469 base::Unretained(this), &permission_context, id, url,
473 false, CONTENT_SETTING_ASK)); 470 false, CONTENT_SETTING_ASK));
474 permission_context.RequestPermission( 471 permission_context.RequestPermission(
475 web_contents(), id, url, true /* user_gesture */, 472 web_contents(), id, url, true /* user_gesture */,
476 base::Bind(&TestPermissionContext::TrackPermissionDecision, 473 base::Bind(&TestPermissionContext::TrackPermissionDecision,
477 base::Unretained(&permission_context))); 474 base::Unretained(&permission_context)));
478 475
479 EXPECT_EQ(1u, permission_context.decisions().size()); 476 EXPECT_EQ(1u, permission_context.decisions().size());
480 ASSERT_EQ(expected, permission_context.decisions()[0]); 477 ASSERT_EQ(expected, permission_context.decisions()[0]);
481 EXPECT_TRUE(permission_context.tab_context_updated()); 478 EXPECT_TRUE(permission_context.tab_context_updated());
482 EXPECT_EQ(expected, 479 EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url));
483 permission_context.GetContentSettingFromMap(url, url));
484 480
485 histograms.ExpectTotalCount( 481 histograms.ExpectTotalCount(
486 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i + 1); 482 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i + 1);
487 histograms.ExpectBucketCount( 483 histograms.ExpectBucketCount(
488 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i, 1); 484 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i, 1);
489 } 485 }
490 486
491 // Ensure that we finish in the block state. 487 // Ensure that we finish in the block state.
492 TestPermissionContext permission_context( 488 TestPermissionContext permission_context(
493 profile(), content::PermissionType::MIDI_SYSEX, 489 profile(), content::PermissionType::MIDI_SYSEX,
494 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); 490 CONTENT_SETTINGS_TYPE_MIDI_SYSEX);
491
495 EXPECT_EQ(CONTENT_SETTING_BLOCK, 492 EXPECT_EQ(CONTENT_SETTING_BLOCK,
496 permission_context.GetContentSettingFromMap(url, url)); 493 permission_context.GetPermissionStatus(url, url));
497 variations::testing::ClearAllVariationParams(); 494 variations::testing::ClearAllVariationParams();
498 } 495 }
499 496
500 void TestRequestPermissionInvalidUrl( 497 void TestRequestPermissionInvalidUrl(
501 content::PermissionType permission_type, 498 content::PermissionType permission_type,
502 ContentSettingsType content_settings_type) { 499 ContentSettingsType content_settings_type) {
503 TestPermissionContext permission_context(profile(), permission_type, 500 TestPermissionContext permission_context(profile(), permission_type,
504 content_settings_type); 501 content_settings_type);
505 GURL url; 502 GURL url;
506 ASSERT_FALSE(url.is_valid()); 503 ASSERT_FALSE(url.is_valid());
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 new MockSafeBrowsingDatabaseManager(false /* perform_callback */); 850 new MockSafeBrowsingDatabaseManager(false /* perform_callback */);
854 const GURL url("https://www.example.com"); 851 const GURL url("https://www.example.com");
855 std::set<std::string> blacklisted_permissions{ 852 std::set<std::string> blacklisted_permissions{
856 PermissionUtil::GetPermissionString( 853 PermissionUtil::GetPermissionString(
857 content::PermissionType::GEOLOCATION)}; 854 content::PermissionType::GEOLOCATION)};
858 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); 855 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions);
859 TestPermissionsBlacklisting(content::PermissionType::GEOLOCATION, 856 TestPermissionsBlacklisting(content::PermissionType::GEOLOCATION,
860 CONTENT_SETTINGS_TYPE_GEOLOCATION, db_manager, 857 CONTENT_SETTINGS_TYPE_GEOLOCATION, db_manager,
861 url, 0 /* timeout in ms */, CONTENT_SETTING_ASK); 858 url, 0 /* timeout in ms */, CONTENT_SETTING_ASK);
862 } 859 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_context_base.cc ('k') | chrome/browser/permissions/permission_decision_auto_blocker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698