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

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

Issue 2723983004: Add PermissionManager::GetPermissionStatusForFrame function (Closed)
Patch Set: Add PermissionManager::GetPermissionStatusForFrame function Created 3 years, 9 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 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 // effect of overcounting any metrics recorded in the PermissionInfoBarDelegate 358 // effect of overcounting any metrics recorded in the PermissionInfoBarDelegate
359 // destructor. This is because we directly call 359 // destructor. This is because we directly call
360 // PermissionQueueController::OnPermissionSet without setting the action_taken 360 // PermissionQueueController::OnPermissionSet without setting the action_taken
361 // bit in PermissionInfoBarDelegate. When PermissionQueueController is deleted 361 // bit in PermissionInfoBarDelegate. When PermissionQueueController is deleted
362 // all OS_ANDROID ifdefs in this test can be removed. 362 // all OS_ANDROID ifdefs in this test can be removed.
363 #if !defined(OS_ANDROID) 363 #if !defined(OS_ANDROID)
364 histograms.ExpectTotalCount("Permissions.AutoBlocker.EmbargoStatus", 364 histograms.ExpectTotalCount("Permissions.AutoBlocker.EmbargoStatus",
365 i + 1); 365 i + 1);
366 #endif 366 #endif
367 367
368 PermissionResult result = 368 PermissionResult result = permission_context.GetPermissionStatus(
369 permission_context.GetPermissionStatus(url, url); 369 nullptr /* render_frame_host */, url, url);
370 370
371 histograms.ExpectUniqueSample( 371 histograms.ExpectUniqueSample(
372 "Permissions.AutoBlocker.EmbargoPromptSuppression", 372 "Permissions.AutoBlocker.EmbargoPromptSuppression",
373 static_cast<int>(PermissionEmbargoStatus::NOT_EMBARGOED), i + 1); 373 static_cast<int>(PermissionEmbargoStatus::NOT_EMBARGOED), i + 1);
374 if (i < 2) { 374 if (i < 2) {
375 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source); 375 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
376 EXPECT_EQ(CONTENT_SETTING_ASK, result.content_setting); 376 EXPECT_EQ(CONTENT_SETTING_ASK, result.content_setting);
377 #if !defined(OS_ANDROID) 377 #if !defined(OS_ANDROID)
378 histograms.ExpectUniqueSample( 378 histograms.ExpectUniqueSample(
379 "Permissions.AutoBlocker.EmbargoStatus", 379 "Permissions.AutoBlocker.EmbargoStatus",
(...skipping 22 matching lines...) Expand all
402 permission_context.SetRespondPermissionCallback( 402 permission_context.SetRespondPermissionCallback(
403 base::Bind(&PermissionContextBaseTests::RespondToPermission, 403 base::Bind(&PermissionContextBaseTests::RespondToPermission,
404 base::Unretained(this), &permission_context, id, url, false, 404 base::Unretained(this), &permission_context, id, url, false,
405 CONTENT_SETTING_ASK)); 405 CONTENT_SETTING_ASK));
406 406
407 permission_context.RequestPermission( 407 permission_context.RequestPermission(
408 web_contents(), id, url, true /* user_gesture */, 408 web_contents(), id, url, true /* user_gesture */,
409 base::Bind(&TestPermissionContext::TrackPermissionDecision, 409 base::Bind(&TestPermissionContext::TrackPermissionDecision,
410 base::Unretained(&permission_context))); 410 base::Unretained(&permission_context)));
411 411
412 PermissionResult result = permission_context.GetPermissionStatus(url, url); 412 PermissionResult result = permission_context.GetPermissionStatus(
413 nullptr /* render_frame_host */, url, url);
413 EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting); 414 EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
414 EXPECT_EQ(PermissionStatusSource::MULTIPLE_DISMISSALS, result.source); 415 EXPECT_EQ(PermissionStatusSource::MULTIPLE_DISMISSALS, result.source);
415 histograms.ExpectBucketCount( 416 histograms.ExpectBucketCount(
416 "Permissions.AutoBlocker.EmbargoPromptSuppression", 417 "Permissions.AutoBlocker.EmbargoPromptSuppression",
417 static_cast<int>(PermissionEmbargoStatus::REPEATED_DISMISSALS), 1); 418 static_cast<int>(PermissionEmbargoStatus::REPEATED_DISMISSALS), 1);
418 } 419 }
419 420
420 void TestBlockOnSeveralDismissals_TestContent() { 421 void TestBlockOnSeveralDismissals_TestContent() {
421 GURL url("https://www.google.com"); 422 GURL url("https://www.google.com");
422 NavigateAndCommit(url); 423 NavigateAndCommit(url);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 base::Unretained(this), &permission_context, id, url, 532 base::Unretained(this), &permission_context, id, url,
532 false, CONTENT_SETTING_ASK)); 533 false, CONTENT_SETTING_ASK));
533 permission_context.RequestPermission( 534 permission_context.RequestPermission(
534 web_contents(), id, url, true /* user_gesture */, 535 web_contents(), id, url, true /* user_gesture */,
535 base::Bind(&TestPermissionContext::TrackPermissionDecision, 536 base::Bind(&TestPermissionContext::TrackPermissionDecision,
536 base::Unretained(&permission_context))); 537 base::Unretained(&permission_context)));
537 538
538 EXPECT_EQ(1u, permission_context.decisions().size()); 539 EXPECT_EQ(1u, permission_context.decisions().size());
539 ASSERT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]); 540 ASSERT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]);
540 EXPECT_TRUE(permission_context.tab_context_updated()); 541 EXPECT_TRUE(permission_context.tab_context_updated());
541 PermissionResult result = 542 PermissionResult result = permission_context.GetPermissionStatus(
542 permission_context.GetPermissionStatus(url, url); 543 nullptr /* render_frame_host */, url, url);
543 544
544 histograms.ExpectTotalCount( 545 histograms.ExpectTotalCount(
545 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i + 1); 546 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i + 1);
546 histograms.ExpectBucketCount( 547 histograms.ExpectBucketCount(
547 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i, 1); 548 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i, 1);
548 histograms.ExpectUniqueSample( 549 histograms.ExpectUniqueSample(
549 "Permissions.AutoBlocker.EmbargoPromptSuppression", 550 "Permissions.AutoBlocker.EmbargoPromptSuppression",
550 static_cast<int>(PermissionEmbargoStatus::NOT_EMBARGOED), i + 1); 551 static_cast<int>(PermissionEmbargoStatus::NOT_EMBARGOED), i + 1);
551 552
552 // On Android, repeatedly requesting and deciding permissions has the side 553 // On Android, repeatedly requesting and deciding permissions has the side
(...skipping 21 matching lines...) Expand all
574 histograms.ExpectBucketCount( 575 histograms.ExpectBucketCount(
575 "Permissions.AutoBlocker.EmbargoStatus", 576 "Permissions.AutoBlocker.EmbargoStatus",
576 static_cast<int>(PermissionEmbargoStatus::REPEATED_DISMISSALS), 1); 577 static_cast<int>(PermissionEmbargoStatus::REPEATED_DISMISSALS), 1);
577 #endif 578 #endif
578 } 579 }
579 } 580 }
580 581
581 // Ensure that we finish in the block state. 582 // Ensure that we finish in the block state.
582 TestPermissionContext permission_context(profile(), 583 TestPermissionContext permission_context(profile(),
583 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); 584 CONTENT_SETTINGS_TYPE_MIDI_SYSEX);
584 PermissionResult result = permission_context.GetPermissionStatus(url, url); 585 PermissionResult result = permission_context.GetPermissionStatus(
586 nullptr /* render_frame_host */, url, url);
585 EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting); 587 EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
586 EXPECT_EQ(PermissionStatusSource::MULTIPLE_DISMISSALS, result.source); 588 EXPECT_EQ(PermissionStatusSource::MULTIPLE_DISMISSALS, result.source);
587 variations::testing::ClearAllVariationParams(); 589 variations::testing::ClearAllVariationParams();
588 } 590 }
589 591
590 void TestRequestPermissionInvalidUrl( 592 void TestRequestPermissionInvalidUrl(
591 ContentSettingsType content_settings_type) { 593 ContentSettingsType content_settings_type) {
592 base::HistogramTester histograms; 594 base::HistogramTester histograms;
593 TestPermissionContext permission_context(profile(), content_settings_type); 595 TestPermissionContext permission_context(profile(), content_settings_type);
594 GURL url; 596 GURL url;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 permission_context.SetRespondPermissionCallback( 736 permission_context.SetRespondPermissionCallback(
735 base::Bind(&PermissionContextBaseTests::RespondToPermission, 737 base::Bind(&PermissionContextBaseTests::RespondToPermission,
736 base::Unretained(this), &permission_context, id, url, 738 base::Unretained(this), &permission_context, id, url,
737 true /* persist */, expected_permission_status)); 739 true /* persist */, expected_permission_status));
738 } 740 }
739 741
740 permission_context.RequestPermission( 742 permission_context.RequestPermission(
741 web_contents(), id, url, true /* user_gesture */, 743 web_contents(), id, url, true /* user_gesture */,
742 base::Bind(&TestPermissionContext::TrackPermissionDecision, 744 base::Bind(&TestPermissionContext::TrackPermissionDecision,
743 base::Unretained(&permission_context))); 745 base::Unretained(&permission_context)));
744 PermissionResult result = permission_context.GetPermissionStatus(url, url); 746 PermissionResult result = permission_context.GetPermissionStatus(
747 nullptr /* render_frame_host */, url, url);
745 EXPECT_EQ(expected_permission_status, result.content_setting); 748 EXPECT_EQ(expected_permission_status, result.content_setting);
746 749
747 if (expected_permission_status == CONTENT_SETTING_ALLOW) { 750 if (expected_permission_status == CONTENT_SETTING_ALLOW) {
748 ASSERT_EQ(1u, permission_context.decisions().size()); 751 ASSERT_EQ(1u, permission_context.decisions().size());
749 EXPECT_EQ(expected_permission_status, permission_context.decisions()[0]); 752 EXPECT_EQ(expected_permission_status, permission_context.decisions()[0]);
750 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source); 753 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
751 } else { 754 } else {
752 EXPECT_EQ(PermissionStatusSource::SAFE_BROWSING_BLACKLIST, result.source); 755 EXPECT_EQ(PermissionStatusSource::SAFE_BROWSING_BLACKLIST, result.source);
753 } 756 }
754 histograms.ExpectUniqueSample( 757 histograms.ExpectUniqueSample(
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingAllowed) { 907 TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingAllowed) {
905 scoped_refptr<MockSafeBrowsingDatabaseManager> db_manager = 908 scoped_refptr<MockSafeBrowsingDatabaseManager> db_manager =
906 new MockSafeBrowsingDatabaseManager(true /* perform_callback */); 909 new MockSafeBrowsingDatabaseManager(true /* perform_callback */);
907 const GURL url("https://www.example.com"); 910 const GURL url("https://www.example.com");
908 std::set<std::string> blacklisted_permissions{"GEOLOCATION"}; 911 std::set<std::string> blacklisted_permissions{"GEOLOCATION"};
909 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); 912 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions);
910 TestPermissionsBlacklisting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager, 913 TestPermissionsBlacklisting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager,
911 url, 2000 /* timeout */, CONTENT_SETTING_ALLOW, 914 url, 2000 /* timeout */, CONTENT_SETTING_ALLOW,
912 PermissionEmbargoStatus::NOT_EMBARGOED); 915 PermissionEmbargoStatus::NOT_EMBARGOED);
913 } 916 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_context_base.cc ('k') | chrome/browser/permissions/permission_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698