| Index: content/browser/service_worker/service_worker_metrics.cc
|
| diff --git a/content/browser/service_worker/service_worker_metrics.cc b/content/browser/service_worker/service_worker_metrics.cc
|
| index 5095b53b9877f5d8cb2e2fb7e6f63995efc3db61..d4bc6e94488bddc455d201a927bb72e2397a577a 100644
|
| --- a/content/browser/service_worker/service_worker_metrics.cc
|
| +++ b/content/browser/service_worker/service_worker_metrics.cc
|
| @@ -66,6 +66,12 @@ std::string EventTypeToSuffix(ServiceWorkerMetrics::EventType event_type) {
|
| return "_UNKNOWN";
|
| case ServiceWorkerMetrics::EventType::FOREIGN_FETCH:
|
| return "_FOREIGN_FETCH";
|
| + case ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN:
|
| + return "_NAVIGATION_HINT_LINK_MOUSE_DOWN";
|
| + case ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED:
|
| + return "_NAVIGATION_HINT_LINK_TAP_UNCONFIRMED";
|
| + case ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_TAP_DOWN:
|
| + return "_NAVIGATION_HINT_LINK_TAP_DOWN";
|
| case ServiceWorkerMetrics::EventType::NUM_TYPES:
|
| NOTREACHED() << static_cast<int>(event_type);
|
| }
|
| @@ -158,6 +164,12 @@ const char* ServiceWorkerMetrics::EventTypeToString(EventType event_type) {
|
| return "Unknown";
|
| case EventType::FOREIGN_FETCH:
|
| return "Foreign Fetch";
|
| + case EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN:
|
| + return "Navigation Hint Link Mouse Down";
|
| + case EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED:
|
| + return "Navigation Hint Link Tap Unconfiemed";
|
| + case EventType::NAVIGATION_HINT_LINK_TAP_DOWN:
|
| + return "Navigation Hint Link Tap Down";
|
| case EventType::NUM_TYPES:
|
| break;
|
| }
|
| @@ -165,6 +177,12 @@ const char* ServiceWorkerMetrics::EventTypeToString(EventType event_type) {
|
| return "error";
|
| }
|
|
|
| +bool ServiceWorkerMetrics::IsNavigationHintEvent(EventType event_type) {
|
| + return event_type == EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN ||
|
| + event_type == EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED ||
|
| + event_type == EventType::NAVIGATION_HINT_LINK_TAP_DOWN;
|
| +}
|
| +
|
| bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) {
|
| return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE;
|
| }
|
| @@ -349,6 +367,30 @@ void ServiceWorkerMetrics::RecordEventHandledRatio(EventType event,
|
| }
|
| }
|
|
|
| +void ServiceWorkerMetrics::RecordNavigationHintPrecision(
|
| + EventType start_worker_purpose,
|
| + bool event_fired) {
|
| + UMA_HISTOGRAM_BOOLEAN("ServiceWorker.NavigationHintPrecision", event_fired);
|
| + switch (start_worker_purpose) {
|
| + case EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN:
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "ServiceWorker.NavigationHintPrecision.LINK_MOUSE_DOWN", event_fired);
|
| + break;
|
| + case EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED:
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "ServiceWorker.NavigationHintPrecision.LINK_TAP_UNCONFIRMED",
|
| + event_fired);
|
| + break;
|
| + case EventType::NAVIGATION_HINT_LINK_TAP_DOWN:
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "ServiceWorker.NavigationHintPrecision.LINK_TAP_DOWN", event_fired);
|
| + break;
|
| + default:
|
| + // Do nothing.
|
| + break;
|
| + }
|
| +}
|
| +
|
| void ServiceWorkerMetrics::RecordEventTimeout(EventType event) {
|
| UMA_HISTOGRAM_ENUMERATION("ServiceWorker.RequestTimeouts.Count",
|
| static_cast<int>(event),
|
| @@ -405,6 +447,10 @@ void ServiceWorkerMetrics::RecordEventDuration(EventType event,
|
| UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.ExtendableMessageEvent.Time",
|
| time);
|
| break;
|
| + // Those navigation hints should not be sent as request events.
|
| + case EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN:
|
| + case EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED:
|
| + case EventType::NAVIGATION_HINT_LINK_TAP_DOWN:
|
|
|
| case EventType::UNKNOWN:
|
| case EventType::NUM_TYPES:
|
|
|