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

Side by Side Diff: components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc

Issue 2645283007: Add the client for accessing Subresource Filter only list. (Closed)
Patch Set: only changes specific to this cl 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 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 "components/subresource_filter/content/browser/content_subresource_filt er_driver_factory.h" 5 #include "components/subresource_filter/content/browser/content_subresource_filt er_driver_factory.h"
6 6
7 #include "base/metrics/histogram_macros.h" 7 #include "base/metrics/histogram_macros.h"
8 #include "base/rand_util.h" 8 #include "base/rand_util.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "components/subresource_filter/content/browser/subresource_filter_clien t.h" 10 #include "components/subresource_filter/content/browser/subresource_filter_clien t.h"
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 if (url.has_host() && url.SchemeIsHTTPOrHTTPS()) 347 if (url.has_host() && url.SchemeIsHTTPOrHTTPS())
348 activation_list_matches_[DistillURLToHostAndPath(url)].insert(match_type); 348 activation_list_matches_[DistillURLToHostAndPath(url)].insert(match_type);
349 } 349 }
350 350
351 int ContentSubresourceFilterDriverFactory::CalculateHitPatternForActivationList( 351 int ContentSubresourceFilterDriverFactory::CalculateHitPatternForActivationList(
352 ActivationList activation_list) const { 352 ActivationList activation_list) const {
353 int hits_pattern = 0; 353 int hits_pattern = 0;
354 const int kInitialURLHitMask = 0x4; 354 const int kInitialURLHitMask = 0x4;
355 const int kRedirectURLHitMask = 0x2; 355 const int kRedirectURLHitMask = 0x2;
356 const int kFinalURLHitMask = 0x1; 356 const int kFinalURLHitMask = 0x1;
357
357 if (navigation_chain_.size() > 1) { 358 if (navigation_chain_.size() > 1) {
358 if (DidURLMatchActivationList(navigation_chain_.back(), activation_list)) 359 if (DidURLMatchActivationList(navigation_chain_.back(), activation_list))
359 hits_pattern |= kFinalURLHitMask; 360 hits_pattern |= kFinalURLHitMask;
360 if (DidURLMatchActivationList(navigation_chain_.front(), activation_list)) 361 if (DidURLMatchActivationList(navigation_chain_.front(), activation_list))
361 hits_pattern |= kInitialURLHitMask; 362 hits_pattern |= kInitialURLHitMask;
362 363
363 // Examine redirects. 364 // Examine redirects.
364 for (size_t i = 1; i < navigation_chain_.size() - 1; ++i) { 365 for (size_t i = 1; i < navigation_chain_.size() - 1; ++i) {
365 if (DidURLMatchActivationList(navigation_chain_[i], activation_list)) { 366 if (DidURLMatchActivationList(navigation_chain_[i], activation_list)) {
366 hits_pattern |= kRedirectURLHitMask; 367 hits_pattern |= kRedirectURLHitMask;
367 break; 368 break;
368 } 369 }
369 } 370 }
370 } else { 371 } else {
371 if (navigation_chain_.size() && 372 if (navigation_chain_.size() &&
372 DidURLMatchActivationList(navigation_chain_.front(), activation_list)) { 373 DidURLMatchActivationList(navigation_chain_.front(), activation_list)) {
373 hits_pattern = 0x8; // One url hit. 374 hits_pattern = 0x8; // One url hit.
374 } 375 }
375 } 376 }
376 return hits_pattern; 377 return hits_pattern;
377 } 378 }
378 379
379 void ContentSubresourceFilterDriverFactory::RecordRedirectChainMatchPattern() 380 void ContentSubresourceFilterDriverFactory::RecordRedirectChainMatchPattern()
380 const { 381 const {
381 RecordRedirectChainMatchPatternForList( 382 RecordRedirectChainMatchPatternForList(
382 ActivationList::SOCIAL_ENG_ADS_INTERSTITIAL); 383 ActivationList::SOCIAL_ENG_ADS_INTERSTITIAL);
383 RecordRedirectChainMatchPatternForList(ActivationList::PHISHING_INTERSTITIAL); 384 RecordRedirectChainMatchPatternForList(ActivationList::PHISHING_INTERSTITIAL);
385 RecordRedirectChainMatchPatternForList(ActivationList::SUBRESOURCE_FILTER);
384 } 386 }
385 387
386 void ContentSubresourceFilterDriverFactory:: 388 void ContentSubresourceFilterDriverFactory::
387 RecordRedirectChainMatchPatternForList( 389 RecordRedirectChainMatchPatternForList(
388 ActivationList activation_list) const { 390 ActivationList activation_list) const {
389 int hits_pattern = CalculateHitPatternForActivationList(activation_list); 391 int hits_pattern = CalculateHitPatternForActivationList(activation_list);
390 if (!hits_pattern) 392 if (!hits_pattern)
391 return; 393 return;
392 size_t chain_size = navigation_chain_.size(); 394 size_t chain_size = navigation_chain_.size();
393 switch (activation_list) { 395 switch (activation_list) {
394 case ActivationList::SOCIAL_ENG_ADS_INTERSTITIAL: 396 case ActivationList::SOCIAL_ENG_ADS_INTERSTITIAL:
395 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("SocialEngineeringAdsInterstitial", 397 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("SocialEngineeringAdsInterstitial",
396 hits_pattern, chain_size); 398 hits_pattern, chain_size);
397 break; 399 break;
398 case ActivationList::PHISHING_INTERSTITIAL: 400 case ActivationList::PHISHING_INTERSTITIAL:
399 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("PhishingInterstital", hits_pattern, 401 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("PhishingInterstital", hits_pattern,
400 chain_size); 402 chain_size);
401 break; 403 break;
404 case ActivationList::SUBRESOURCE_FILTER:
405 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("SubresourceFilterOnly", hits_pattern,
vakh (use Gerrit instead) 2017/03/16 20:51:18 s/Only// ?
melandory 2017/03/24 15:49:27 I like "Only" in suffix, without it full histogram
406 chain_size);
407 break;
402 default: 408 default:
403 NOTREACHED(); 409 NOTREACHED();
404 break; 410 break;
405 } 411 }
406 } 412 }
407 413
408 } // namespace subresource_filter 414 } // namespace subresource_filter
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698