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

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

Issue 2651163002: Add UMA for autoblocking and embargoing. (Closed)
Patch Set: 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 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 base::Unretained(this), &permission_context, id, url, 281 base::Unretained(this), &permission_context, id, url,
282 persist, decision)); 282 persist, decision));
283 permission_context.RequestPermission( 283 permission_context.RequestPermission(
284 web_contents(), 284 web_contents(),
285 id, url, true /* user_gesture */, 285 id, url, true /* user_gesture */,
286 base::Bind(&TestPermissionContext::TrackPermissionDecision, 286 base::Bind(&TestPermissionContext::TrackPermissionDecision,
287 base::Unretained(&permission_context))); 287 base::Unretained(&permission_context)));
288 ASSERT_EQ(1u, permission_context.decisions().size()); 288 ASSERT_EQ(1u, permission_context.decisions().size());
289 EXPECT_EQ(decision, permission_context.decisions()[0]); 289 EXPECT_EQ(decision, permission_context.decisions()[0]);
290 EXPECT_TRUE(permission_context.tab_context_updated()); 290 EXPECT_TRUE(permission_context.tab_context_updated());
291 291 histograms.ExpectBucketCount("Permissions.AutoBlocker.EmbargoReason",
292 PermissionEmbargoReason::NOT_EMBARGOED, 1);
292 std::string decision_string; 293 std::string decision_string;
293 if (decision == CONTENT_SETTING_ALLOW) 294 if (decision == CONTENT_SETTING_ALLOW)
294 decision_string = "Accepted"; 295 decision_string = "Accepted";
295 else if (decision == CONTENT_SETTING_BLOCK) 296 else if (decision == CONTENT_SETTING_BLOCK)
296 decision_string = "Denied"; 297 decision_string = "Denied";
297 else if (decision == CONTENT_SETTING_ASK) 298 else if (decision == CONTENT_SETTING_ASK)
298 decision_string = "Dismissed"; 299 decision_string = "Dismissed";
299 300
300 if (decision_string.size()) { 301 if (decision_string.size()) {
301 histograms.ExpectUniqueSample( 302 histograms.ExpectUniqueSample(
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 base::Bind(&TestPermissionContext::TrackPermissionDecision, 346 base::Bind(&TestPermissionContext::TrackPermissionDecision,
346 base::Unretained(&permission_context))); 347 base::Unretained(&permission_context)));
347 histograms.ExpectTotalCount( 348 histograms.ExpectTotalCount(
348 "Permissions.Prompt.Dismissed.PriorDismissCount." + 349 "Permissions.Prompt.Dismissed.PriorDismissCount." +
349 PermissionUtil::GetPermissionString(permission_type), 350 PermissionUtil::GetPermissionString(permission_type),
350 i + 1); 351 i + 1);
351 histograms.ExpectBucketCount( 352 histograms.ExpectBucketCount(
352 "Permissions.Prompt.Dismissed.PriorDismissCount." + 353 "Permissions.Prompt.Dismissed.PriorDismissCount." +
353 PermissionUtil::GetPermissionString(permission_type), 354 PermissionUtil::GetPermissionString(permission_type),
354 i, 1); 355 i, 1);
356 histograms.ExpectBucketCount("Permissions.AutoBlocker.EmbargoReason",
357 PermissionEmbargoReason::NOT_EMBARGOED,
358 i + 1);
355 ASSERT_EQ(1u, permission_context.decisions().size()); 359 ASSERT_EQ(1u, permission_context.decisions().size());
356 EXPECT_EQ(expected, permission_context.decisions()[0]); 360 EXPECT_EQ(expected, permission_context.decisions()[0]);
357 EXPECT_TRUE(permission_context.tab_context_updated()); 361 EXPECT_TRUE(permission_context.tab_context_updated());
358 EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url)); 362 EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url));
359 } 363 }
360 364
361 TestPermissionContext permission_context(profile(), permission_type, 365 TestPermissionContext permission_context(profile(), permission_type,
362 content_settings_type); 366 content_settings_type);
363 const PermissionRequestID id( 367 const PermissionRequestID id(
364 web_contents()->GetRenderProcessHost()->GetID(), 368 web_contents()->GetRenderProcessHost()->GetID(),
365 web_contents()->GetMainFrame()->GetRoutingID(), -1); 369 web_contents()->GetMainFrame()->GetRoutingID(), -1);
366 370
367 permission_context.SetRespondPermissionCallback( 371 permission_context.SetRespondPermissionCallback(
368 base::Bind(&PermissionContextBaseTests::RespondToPermission, 372 base::Bind(&PermissionContextBaseTests::RespondToPermission,
369 base::Unretained(this), &permission_context, id, url, false, 373 base::Unretained(this), &permission_context, id, url, false,
370 CONTENT_SETTING_ASK)); 374 CONTENT_SETTING_ASK));
371 375
372 permission_context.RequestPermission( 376 permission_context.RequestPermission(
373 web_contents(), id, url, true /* user_gesture */, 377 web_contents(), id, url, true /* user_gesture */,
374 base::Bind(&TestPermissionContext::TrackPermissionDecision, 378 base::Bind(&TestPermissionContext::TrackPermissionDecision,
375 base::Unretained(&permission_context))); 379 base::Unretained(&permission_context)));
376 380
377 EXPECT_EQ(CONTENT_SETTING_BLOCK, 381 EXPECT_EQ(CONTENT_SETTING_BLOCK,
378 permission_context.GetPermissionStatus(url, url)); 382 permission_context.GetPermissionStatus(url, url));
383 histograms.ExpectBucketCount("Permissions.AutoBlocker.EmbargoReason",
384 PermissionEmbargoReason::REPEATED_DISMISSALS,
385 1);
379 } 386 }
380 387
381 void TestBlockOnSeveralDismissals_TestContent() { 388 void TestBlockOnSeveralDismissals_TestContent() {
382 GURL url("https://www.google.com"); 389 GURL url("https://www.google.com");
383 NavigateAndCommit(url); 390 NavigateAndCommit(url);
384 base::HistogramTester histograms; 391 base::HistogramTester histograms;
385 392
386 // First, ensure that > 3 dismissals behaves correctly. 393 // First, ensure that > 3 dismissals behaves correctly.
387 for (uint32_t i = 0; i < 4; ++i) { 394 for (uint32_t i = 0; i < 4; ++i) {
388 TestPermissionContext permission_context( 395 TestPermissionContext permission_context(
(...skipping 10 matching lines...) Expand all
399 false, CONTENT_SETTING_ASK)); 406 false, CONTENT_SETTING_ASK));
400 permission_context.RequestPermission( 407 permission_context.RequestPermission(
401 web_contents(), id, url, true /* user_gesture */, 408 web_contents(), id, url, true /* user_gesture */,
402 base::Bind(&TestPermissionContext::TrackPermissionDecision, 409 base::Bind(&TestPermissionContext::TrackPermissionDecision,
403 base::Unretained(&permission_context))); 410 base::Unretained(&permission_context)));
404 histograms.ExpectTotalCount( 411 histograms.ExpectTotalCount(
405 "Permissions.Prompt.Dismissed.PriorDismissCount.Geolocation", 412 "Permissions.Prompt.Dismissed.PriorDismissCount.Geolocation",
406 i + 1); 413 i + 1);
407 histograms.ExpectBucketCount( 414 histograms.ExpectBucketCount(
408 "Permissions.Prompt.Dismissed.PriorDismissCount.Geolocation", i, 1); 415 "Permissions.Prompt.Dismissed.PriorDismissCount.Geolocation", i, 1);
416 histograms.ExpectBucketCount("Permissions.AutoBlocker.EmbargoReason",
417 PermissionEmbargoReason::NOT_EMBARGOED,
418 i + 1);
409 ASSERT_EQ(1u, permission_context.decisions().size()); 419 ASSERT_EQ(1u, permission_context.decisions().size());
410 EXPECT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]); 420 EXPECT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]);
411 EXPECT_TRUE(permission_context.tab_context_updated()); 421 EXPECT_TRUE(permission_context.tab_context_updated());
412 EXPECT_EQ(CONTENT_SETTING_ASK, 422 EXPECT_EQ(CONTENT_SETTING_ASK,
413 permission_context.GetContentSettingFromMap(url, url)); 423 permission_context.GetContentSettingFromMap(url, url));
414 } 424 }
415 425
416 // Flush the dismissal counts. Enable the block on too many dismissals 426 // Flush the dismissal counts. Enable the block on too many dismissals
417 // feature, which is disabled by default. 427 // feature, which is disabled by default.
418 auto* map = HostContentSettingsMapFactory::GetForProfile(profile()); 428 auto* map = HostContentSettingsMapFactory::GetForProfile(profile());
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingAllowed) { 861 TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingAllowed) {
852 scoped_refptr<MockSafeBrowsingDatabaseManager> db_manager = 862 scoped_refptr<MockSafeBrowsingDatabaseManager> db_manager =
853 new MockSafeBrowsingDatabaseManager(true /* perform_callback */); 863 new MockSafeBrowsingDatabaseManager(true /* perform_callback */);
854 const GURL url("https://www.example.com"); 864 const GURL url("https://www.example.com");
855 std::set<std::string> blacklisted_permissions{"GEOLOCATION"}; 865 std::set<std::string> blacklisted_permissions{"GEOLOCATION"};
856 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); 866 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions);
857 TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS, 867 TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS,
858 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager, 868 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager,
859 url, 2000 /* timeout */, CONTENT_SETTING_ALLOW); 869 url, 2000 /* timeout */, CONTENT_SETTING_ALLOW);
860 } 870 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698