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

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

Issue 2686463002: Add a source to the result of PermissionContextBase::GetPermissionStatus (Closed)
Patch Set: Created 3 years, 10 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 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 "Permissions.Prompt.Dismissed.PriorDismissCount." + 348 "Permissions.Prompt.Dismissed.PriorDismissCount." +
349 PermissionUtil::GetPermissionString(permission_type), 349 PermissionUtil::GetPermissionString(permission_type),
350 i + 1); 350 i + 1);
351 histograms.ExpectBucketCount( 351 histograms.ExpectBucketCount(
352 "Permissions.Prompt.Dismissed.PriorDismissCount." + 352 "Permissions.Prompt.Dismissed.PriorDismissCount." +
353 PermissionUtil::GetPermissionString(permission_type), 353 PermissionUtil::GetPermissionString(permission_type),
354 i, 1); 354 i, 1);
355 ASSERT_EQ(1u, permission_context.decisions().size()); 355 ASSERT_EQ(1u, permission_context.decisions().size());
356 EXPECT_EQ(expected, permission_context.decisions()[0]); 356 EXPECT_EQ(expected, permission_context.decisions()[0]);
357 EXPECT_TRUE(permission_context.tab_context_updated()); 357 EXPECT_TRUE(permission_context.tab_context_updated());
358 EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url)); 358 PermissionResult result =
359 permission_context.GetPermissionStatus(url, url);
360 EXPECT_EQ(expected, result.content_setting);
361 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
359 } 362 }
360 363
361 TestPermissionContext permission_context(profile(), permission_type, 364 TestPermissionContext permission_context(profile(), permission_type,
362 content_settings_type); 365 content_settings_type);
363 const PermissionRequestID id( 366 const PermissionRequestID id(
364 web_contents()->GetRenderProcessHost()->GetID(), 367 web_contents()->GetRenderProcessHost()->GetID(),
365 web_contents()->GetMainFrame()->GetRoutingID(), -1); 368 web_contents()->GetMainFrame()->GetRoutingID(), -1);
366 369
367 permission_context.SetRespondPermissionCallback( 370 permission_context.SetRespondPermissionCallback(
368 base::Bind(&PermissionContextBaseTests::RespondToPermission, 371 base::Bind(&PermissionContextBaseTests::RespondToPermission,
369 base::Unretained(this), &permission_context, id, url, false, 372 base::Unretained(this), &permission_context, id, url, false,
370 CONTENT_SETTING_ASK)); 373 CONTENT_SETTING_ASK));
371 374
372 permission_context.RequestPermission( 375 permission_context.RequestPermission(
373 web_contents(), id, url, true /* user_gesture */, 376 web_contents(), id, url, true /* user_gesture */,
374 base::Bind(&TestPermissionContext::TrackPermissionDecision, 377 base::Bind(&TestPermissionContext::TrackPermissionDecision,
375 base::Unretained(&permission_context))); 378 base::Unretained(&permission_context)));
376 379
377 EXPECT_EQ(CONTENT_SETTING_BLOCK, 380 PermissionResult result = permission_context.GetPermissionStatus(url, url);
378 permission_context.GetPermissionStatus(url, url)); 381 EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
382 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
379 } 383 }
380 384
381 void TestBlockOnSeveralDismissals_TestContent() { 385 void TestBlockOnSeveralDismissals_TestContent() {
382 GURL url("https://www.google.com"); 386 GURL url("https://www.google.com");
383 NavigateAndCommit(url); 387 NavigateAndCommit(url);
384 base::HistogramTester histograms; 388 base::HistogramTester histograms;
385 389
386 // First, ensure that > 3 dismissals behaves correctly. 390 // First, ensure that > 3 dismissals behaves correctly.
387 for (uint32_t i = 0; i < 4; ++i) { 391 for (uint32_t i = 0; i < 4; ++i) {
388 TestPermissionContext permission_context( 392 TestPermissionContext permission_context(
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 base::Unretained(this), &permission_context, id, url, 487 base::Unretained(this), &permission_context, id, url,
484 false, CONTENT_SETTING_ASK)); 488 false, CONTENT_SETTING_ASK));
485 permission_context.RequestPermission( 489 permission_context.RequestPermission(
486 web_contents(), id, url, true /* user_gesture */, 490 web_contents(), id, url, true /* user_gesture */,
487 base::Bind(&TestPermissionContext::TrackPermissionDecision, 491 base::Bind(&TestPermissionContext::TrackPermissionDecision,
488 base::Unretained(&permission_context))); 492 base::Unretained(&permission_context)));
489 493
490 EXPECT_EQ(1u, permission_context.decisions().size()); 494 EXPECT_EQ(1u, permission_context.decisions().size());
491 ASSERT_EQ(expected, permission_context.decisions()[0]); 495 ASSERT_EQ(expected, permission_context.decisions()[0]);
492 EXPECT_TRUE(permission_context.tab_context_updated()); 496 EXPECT_TRUE(permission_context.tab_context_updated());
493 EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url)); 497 PermissionResult result =
498 permission_context.GetPermissionStatus(url, url);
499 EXPECT_EQ(expected, result.content_setting);
500 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
494 501
495 histograms.ExpectTotalCount( 502 histograms.ExpectTotalCount(
496 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i + 1); 503 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i + 1);
497 histograms.ExpectBucketCount( 504 histograms.ExpectBucketCount(
498 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i, 1); 505 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i, 1);
499 } 506 }
500 507
501 // Ensure that we finish in the block state. 508 // Ensure that we finish in the block state.
502 TestPermissionContext permission_context( 509 TestPermissionContext permission_context(
503 profile(), content::PermissionType::MIDI_SYSEX, 510 profile(), content::PermissionType::MIDI_SYSEX,
504 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); 511 CONTENT_SETTINGS_TYPE_MIDI_SYSEX);
505 EXPECT_EQ(CONTENT_SETTING_BLOCK, 512 PermissionResult result = permission_context.GetPermissionStatus(url, url);
506 permission_context.GetPermissionStatus(url, url)); 513 EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
514 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
515
507 variations::testing::ClearAllVariationParams(); 516 variations::testing::ClearAllVariationParams();
508 } 517 }
509 518
510 void TestRequestPermissionInvalidUrl( 519 void TestRequestPermissionInvalidUrl(
511 content::PermissionType permission_type, 520 content::PermissionType permission_type,
512 ContentSettingsType content_settings_type) { 521 ContentSettingsType content_settings_type) {
513 TestPermissionContext permission_context(profile(), permission_type, 522 TestPermissionContext permission_context(profile(), permission_type,
514 content_settings_type); 523 content_settings_type);
515 GURL url; 524 GURL url;
516 ASSERT_FALSE(url.is_valid()); 525 ASSERT_FALSE(url.is_valid());
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 permission_context.SetRespondPermissionCallback( 671 permission_context.SetRespondPermissionCallback(
663 base::Bind(&PermissionContextBaseTests::RespondToPermission, 672 base::Bind(&PermissionContextBaseTests::RespondToPermission,
664 base::Unretained(this), &permission_context, id, url, 673 base::Unretained(this), &permission_context, id, url,
665 true /* persist */, expected_permission_status)); 674 true /* persist */, expected_permission_status));
666 } 675 }
667 676
668 permission_context.RequestPermission( 677 permission_context.RequestPermission(
669 web_contents(), id, url, true /* user_gesture */, 678 web_contents(), id, url, true /* user_gesture */,
670 base::Bind(&TestPermissionContext::TrackPermissionDecision, 679 base::Bind(&TestPermissionContext::TrackPermissionDecision,
671 base::Unretained(&permission_context))); 680 base::Unretained(&permission_context)));
672 EXPECT_EQ(expected_permission_status, 681 PermissionResult result = permission_context.GetPermissionStatus(url, url);
673 permission_context.GetPermissionStatus(url, url)); 682 EXPECT_EQ(expected_permission_status, result.content_setting);
674 683
675 if (expected_permission_status == CONTENT_SETTING_ALLOW) { 684 if (expected_permission_status == CONTENT_SETTING_ALLOW) {
kcarattini 2017/02/07 22:53:33 Are you not planning to set a source if the conten
raymes 2017/02/08 04:08:40 Eventually it will be USER_DECISION (or something)
676 ASSERT_EQ(1u, permission_context.decisions().size()); 685 ASSERT_EQ(1u, permission_context.decisions().size());
677 EXPECT_EQ(expected_permission_status, permission_context.decisions()[0]); 686 EXPECT_EQ(expected_permission_status, permission_context.decisions()[0]);
687 } else {
688 EXPECT_EQ(PermissionStatusSource::SAFE_BROWSING_BLACKLIST, result.source);
678 } 689 }
679 } 690 }
680 691
681 private: 692 private:
682 // ChromeRenderViewHostTestHarness: 693 // ChromeRenderViewHostTestHarness:
683 void SetUp() override { 694 void SetUp() override {
684 ChromeRenderViewHostTestHarness::SetUp(); 695 ChromeRenderViewHostTestHarness::SetUp();
685 #if defined(OS_ANDROID) 696 #if defined(OS_ANDROID)
686 InfoBarService::CreateForWebContents(web_contents()); 697 InfoBarService::CreateForWebContents(web_contents());
687 #else 698 #else
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingAllowed) { 862 TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingAllowed) {
852 scoped_refptr<MockSafeBrowsingDatabaseManager> db_manager = 863 scoped_refptr<MockSafeBrowsingDatabaseManager> db_manager =
853 new MockSafeBrowsingDatabaseManager(true /* perform_callback */); 864 new MockSafeBrowsingDatabaseManager(true /* perform_callback */);
854 const GURL url("https://www.example.com"); 865 const GURL url("https://www.example.com");
855 std::set<std::string> blacklisted_permissions{"GEOLOCATION"}; 866 std::set<std::string> blacklisted_permissions{"GEOLOCATION"};
856 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); 867 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions);
857 TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS, 868 TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS,
858 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager, 869 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager,
859 url, 2000 /* timeout */, CONTENT_SETTING_ALLOW); 870 url, 2000 /* timeout */, CONTENT_SETTING_ALLOW);
860 } 871 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698