summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/managed_mode/managed_mode_interstitial.cc18
-rw-r--r--chrome/browser/managed_mode/managed_mode_navigation_observer.cc22
-rw-r--r--chrome/browser/managed_mode/managed_mode_url_filter.cc6
-rw-r--r--chrome/browser/managed_mode/managed_mode_url_filter.h3
-rw-r--r--chrome/browser/policy/url_blacklist_manager.cc4
-rw-r--r--chrome/browser/policy/url_blacklist_manager.h3
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);