diff options
6 files changed, 55 insertions, 1 deletions
diff --git a/chrome/browser/managed_mode/managed_mode_interstitial.cc b/chrome/browser/managed_mode/managed_mode_interstitial.cc index 4850f54..d3e7471 100644 --- a/chrome/browser/managed_mode/managed_mode_interstitial.cc +++ b/chrome/browser/managed_mode/managed_mode_interstitial.cc @@ -5,6 +5,7 @@ #include "chrome/browser/managed_mode/managed_mode_interstitial.h" #include "base/i18n/rtl.h" +#include "base/metrics/histogram.h" #include "chrome/browser/managed_mode/managed_mode_navigation_observer.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" @@ -116,17 +117,34 @@ std::string ManagedModeInterstitial::GetHTMLContents() { } void ManagedModeInterstitial::CommandReceived(const std::string& command) { + // For use in histograms. + enum Commands { + PREVIEW, + BACK, + NTP, + HISTOGRAM_BOUNDING_VALUE + }; + if (command == "\"preview\"") { + UMA_HISTOGRAM_ENUMERATION("ManagedMode.BlockingInterstitialCommand", + PREVIEW, + HISTOGRAM_BOUNDING_VALUE); interstitial_page_->Proceed(); return; } if (command == "\"back\"") { + UMA_HISTOGRAM_ENUMERATION("ManagedMode.BlockingInterstitialCommand", + BACK, + HISTOGRAM_BOUNDING_VALUE); interstitial_page_->DontProceed(); return; } if (command == "\"ntp\"") { + UMA_HISTOGRAM_ENUMERATION("ManagedMode.BlockingInterstitialCommand", + NTP, + HISTOGRAM_BOUNDING_VALUE); GoToNewTabPage(); return; } diff --git a/chrome/browser/managed_mode/managed_mode_navigation_observer.cc b/chrome/browser/managed_mode/managed_mode_navigation_observer.cc index f935b0e..e47860e 100644 --- a/chrome/browser/managed_mode/managed_mode_navigation_observer.cc +++ b/chrome/browser/managed_mode/managed_mode_navigation_observer.cc @@ -6,6 +6,7 @@ #include "base/bind.h" #include "base/i18n/rtl.h" +#include "base/metrics/histogram.h" #include "base/string_number_conversions.h" #include "chrome/browser/api/infobars/confirm_infobar_delegate.h" #include "chrome/browser/api/infobars/infobar_service.h" @@ -28,6 +29,7 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" +#include "content/public/browser/user_metrics.h" #include "content/public/browser/web_contents_delegate.h" #include "content/public/common/frame_navigate_params.h" #include "grit/generated_resources.h" @@ -35,9 +37,17 @@ #include "ui/base/l10n/l10n_util.h" using content::BrowserThread; +using content::UserMetricsAction; namespace { +// For use in histograms. +enum PreviewInfobarCommand { + INFOBAR_ACCEPT, + INFOBAR_CANCEL, + INFOBAR_HISTOGRAM_BOUNDING_VALUE +}; + class ManagedModeWarningInfobarDelegate : public ConfirmInfoBarDelegate { public: // Creates a managed mode warning delegate and adds it to |infobar_service|. @@ -200,11 +210,17 @@ bool ManagedModePreviewInfobarDelegate::Accept() { ManagedModeNavigationObserver* observer = ManagedModeNavigationObserver::FromWebContents( owner()->GetWebContents()); + UMA_HISTOGRAM_ENUMERATION("ManagedMode.PreviewInfobarCommand", + INFOBAR_ACCEPT, + INFOBAR_HISTOGRAM_BOUNDING_VALUE); observer->AddSavedURLsToWhitelistAndClearState(); return true; } bool ManagedModePreviewInfobarDelegate::Cancel() { + UMA_HISTOGRAM_ENUMERATION("ManagedMode.PreviewInfobarCommand", + INFOBAR_CANCEL, + INFOBAR_HISTOGRAM_BOUNDING_VALUE); GoBackToSafety(owner()->GetWebContents()); return false; } @@ -356,9 +372,15 @@ void ManagedModeNavigationObserver::DidNavigateMainFrame( const content::LoadCommittedDetails& details, const content::FrameNavigateParams& params) { + content::RecordAction(UserMetricsAction("ManagedMode_MainFrameNavigation")); + ManagedModeURLFilter::FilteringBehavior behavior = url_filter_->GetFilteringBehaviorForURL(params.url); + UMA_HISTOGRAM_ENUMERATION("ManagedMode.FilteringBehavior", + behavior, + ManagedModeURLFilter::HISTOGRAM_BOUNDING_VALUE); + // If the user just saw an interstitial this is the final URL so it is // recorded. Checking for filtering behavior here isn't useful because // although this specific URL can be allowed the hostname will be added which diff --git a/chrome/browser/managed_mode/managed_mode_url_filter.cc b/chrome/browser/managed_mode/managed_mode_url_filter.cc index ff131f6..e219480 100644 --- a/chrome/browser/managed_mode/managed_mode_url_filter.cc +++ b/chrome/browser/managed_mode/managed_mode_url_filter.cc @@ -7,6 +7,7 @@ #include "base/file_path.h" #include "base/hash_tables.h" #include "base/json/json_file_value_serializer.h" +#include "base/metrics/histogram.h" #include "base/sha1.h" #include "base/string_number_conversions.h" #include "base/string_util.h" @@ -301,6 +302,11 @@ void ManagedModeURLFilter::SetManualLists(const ListValue* whitelist, (*it)->GetAsString(&item); DVLOG(1) << item; } + + UMA_HISTOGRAM_COUNTS_100("ManagedMode.ManualWhitelistEntries", + url_manual_list_allow_->Size()); + UMA_HISTOGRAM_COUNTS_100("ManagedMode.ManualBlacklistEntries", + url_manual_list_block_->Size()); } void ManagedModeURLFilter::AddURLPatternToManualList( diff --git a/chrome/browser/managed_mode/managed_mode_url_filter.h b/chrome/browser/managed_mode/managed_mode_url_filter.h index cb2020b..875b64f 100644 --- a/chrome/browser/managed_mode/managed_mode_url_filter.h +++ b/chrome/browser/managed_mode/managed_mode_url_filter.h @@ -34,7 +34,8 @@ class ManagedModeURLFilter enum FilteringBehavior { ALLOW, WARN, - BLOCK + BLOCK, + HISTOGRAM_BOUNDING_VALUE }; class Observer { diff --git a/chrome/browser/policy/url_blacklist_manager.cc b/chrome/browser/policy/url_blacklist_manager.cc index 172d4a3..460cfb4 100644 --- a/chrome/browser/policy/url_blacklist_manager.cc +++ b/chrome/browser/policy/url_blacklist_manager.cc @@ -141,6 +141,10 @@ bool URLBlacklist::IsURLBlocked(const GURL& url) const { return !max->allow; } +size_t URLBlacklist::Size() const { + return filters_.size(); +} + // static bool URLBlacklist::HasStandardScheme(const GURL& url) { return IsStandardScheme(url.scheme()); diff --git a/chrome/browser/policy/url_blacklist_manager.h b/chrome/browser/policy/url_blacklist_manager.h index 1398c14..ee4802e 100644 --- a/chrome/browser/policy/url_blacklist_manager.h +++ b/chrome/browser/policy/url_blacklist_manager.h @@ -49,6 +49,9 @@ class URLBlacklist { // Returns true if the URL is blocked. bool IsURLBlocked(const GURL& url) const; + // Returns the number of items in the list. + size_t Size() const; + // Returns true if the URL has a standard scheme. Only URLs with standard // schemes are filtered. static bool HasStandardScheme(const GURL& url); |