// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_ #define CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_ #include #include #include "base/gtest_prod_util.h" #include "url/gurl.h" // Helper class managing the UMA histograms for the Site Engagement Service. class SiteEngagementMetrics { public: // This is used to back a UMA histogram, so it should be treated as // append-only. Any new values should be inserted immediately prior to // ENGAGEMENT_LAST. enum EngagementType { ENGAGEMENT_NAVIGATION, ENGAGEMENT_KEYPRESS, ENGAGEMENT_MOUSE, ENGAGEMENT_TOUCH_GESTURE, ENGAGEMENT_WHEEL, ENGAGEMENT_MEDIA_HIDDEN, ENGAGEMENT_MEDIA_VISIBLE, ENGAGEMENT_WEBAPP_SHORTCUT_LAUNCH, ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, ENGAGEMENT_LAST, }; static void RecordTotalSiteEngagement(double total_engagement); static void RecordTotalOriginsEngaged(int total_origins); static void RecordMeanEngagement(double mean_engagement); static void RecordMedianEngagement(double median_engagement); static void RecordEngagementScores(std::map score_map); static void RecordOriginsWithMaxEngagement(int total_origins); static void RecordOriginsWithMaxDailyEngagement(int total_origins); static void RecordPercentOriginsWithMaxEngagement(double percentage); static void RecordEngagement(EngagementType type); static void RecordDaysSinceLastShortcutLaunch(int days); static void RecordScoreDecayedFrom(double score); static void RecordScoreDecayedTo(double score); private: FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, CheckHistograms); FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, LastShortcutLaunch); FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, ScoreDecayHistograms); FRIEND_TEST_ALL_PREFIXES(SiteEngagementHelperTest, MixedInputEngagementAccumulation); static const char kTotalEngagementHistogram[]; static const char kTotalOriginsHistogram[]; static const char kMeanEngagementHistogram[]; static const char kMedianEngagementHistogram[]; static const char kEngagementScoreHistogram[]; static const char kEngagementScoreHistogramHTTP[]; static const char kEngagementScoreHistogramHTTPS[]; static const char kOriginsWithMaxEngagementHistogram[]; static const char kOriginsWithMaxDailyEngagementHistogram[]; static const char kPercentOriginsWithMaxEngagementHistogram[]; static const char kEngagementTypeHistogram[]; static const char kEngagementBucketHistogramBase[]; static const char kDaysSinceLastShortcutLaunchHistogram[]; static const char kScoreDecayedFromHistogram[]; static const char kScoreDecayedToHistogram[]; static std::vector GetEngagementBucketHistogramNames(); }; #endif // CHROME_BROWSER_ENGAGEMENT_SITE_ENGAGEMENT_METRICS_H_