| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "content/browser/service_worker/service_worker_metrics.h" | 5 #include "content/browser/service_worker/service_worker_metrics.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 return "Navigation Hint Link Tap Unconfirmed"; | 206 return "Navigation Hint Link Tap Unconfirmed"; |
| 207 case EventType::NAVIGATION_HINT_LINK_TAP_DOWN: | 207 case EventType::NAVIGATION_HINT_LINK_TAP_DOWN: |
| 208 return "Navigation Hint Link Tap Down"; | 208 return "Navigation Hint Link Tap Down"; |
| 209 case EventType::NUM_TYPES: | 209 case EventType::NUM_TYPES: |
| 210 break; | 210 break; |
| 211 } | 211 } |
| 212 NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type); | 212 NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type); |
| 213 return "error"; | 213 return "error"; |
| 214 } | 214 } |
| 215 | 215 |
| 216 bool ServiceWorkerMetrics::IsNavigationHintEvent(EventType event_type) { |
| 217 return event_type == EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN || |
| 218 event_type == EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED || |
| 219 event_type == EventType::NAVIGATION_HINT_LINK_TAP_DOWN; |
| 220 } |
| 221 |
| 216 bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) { | 222 bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) { |
| 217 return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE; | 223 return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE; |
| 218 } | 224 } |
| 219 | 225 |
| 220 bool ServiceWorkerMetrics::ShouldExcludeURLFromHistogram(const GURL& url) { | 226 bool ServiceWorkerMetrics::ShouldExcludeURLFromHistogram(const GURL& url) { |
| 221 return ShouldExcludeSiteFromHistogram(SiteFromURL(url)); | 227 return ShouldExcludeSiteFromHistogram(SiteFromURL(url)); |
| 222 } | 228 } |
| 223 | 229 |
| 224 void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) { | 230 void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) { |
| 225 UMA_HISTOGRAM_BOOLEAN("ServiceWorker.DiskCache.InitResult", result); | 231 UMA_HISTOGRAM_BOOLEAN("ServiceWorker.DiskCache.InitResult", result); |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 UMA_HISTOGRAM_ENUMERATION( | 408 UMA_HISTOGRAM_ENUMERATION( |
| 403 "ServiceWorker.EventHandledRatioType.ForeignFetch", type, | 409 "ServiceWorker.EventHandledRatioType.ForeignFetch", type, |
| 404 NUM_EVENT_HANDLED_RATIO_TYPE); | 410 NUM_EVENT_HANDLED_RATIO_TYPE); |
| 405 break; | 411 break; |
| 406 default: | 412 default: |
| 407 // Do nothing. | 413 // Do nothing. |
| 408 break; | 414 break; |
| 409 } | 415 } |
| 410 } | 416 } |
| 411 | 417 |
| 418 void ServiceWorkerMetrics::RecordNavigationHintPrecision( |
| 419 EventType start_worker_purpose, |
| 420 bool frame_fetch_event_fired) { |
| 421 DCHECK(IsNavigationHintEvent(start_worker_purpose)); |
| 422 UMA_HISTOGRAM_BOOLEAN("ServiceWorker.NavigationHintPrecision", |
| 423 frame_fetch_event_fired); |
| 424 switch (start_worker_purpose) { |
| 425 case EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN: |
| 426 UMA_HISTOGRAM_BOOLEAN( |
| 427 "ServiceWorker.NavigationHintPrecision.LINK_MOUSE_DOWN", |
| 428 frame_fetch_event_fired); |
| 429 break; |
| 430 case EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED: |
| 431 UMA_HISTOGRAM_BOOLEAN( |
| 432 "ServiceWorker.NavigationHintPrecision.LINK_TAP_UNCONFIRMED", |
| 433 frame_fetch_event_fired); |
| 434 break; |
| 435 case EventType::NAVIGATION_HINT_LINK_TAP_DOWN: |
| 436 UMA_HISTOGRAM_BOOLEAN( |
| 437 "ServiceWorker.NavigationHintPrecision.LINK_TAP_DOWN", |
| 438 frame_fetch_event_fired); |
| 439 break; |
| 440 default: |
| 441 NOTREACHED(); |
| 442 break; |
| 443 } |
| 444 } |
| 445 |
| 412 void ServiceWorkerMetrics::RecordEventTimeout(EventType event) { | 446 void ServiceWorkerMetrics::RecordEventTimeout(EventType event) { |
| 413 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.RequestTimeouts.Count", | 447 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.RequestTimeouts.Count", |
| 414 static_cast<int>(event), | 448 static_cast<int>(event), |
| 415 static_cast<int>(EventType::NUM_TYPES)); | 449 static_cast<int>(EventType::NUM_TYPES)); |
| 416 } | 450 } |
| 417 | 451 |
| 418 void ServiceWorkerMetrics::RecordEventDuration(EventType event, | 452 void ServiceWorkerMetrics::RecordEventDuration(EventType event, |
| 419 base::TimeDelta time, | 453 base::TimeDelta time, |
| 420 bool was_handled) { | 454 bool was_handled) { |
| 421 switch (event) { | 455 switch (event) { |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 641 } else if (failure_count == 2) { | 675 } else if (failure_count == 2) { |
| 642 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_2", | 676 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_2", |
| 643 status, SERVICE_WORKER_ERROR_MAX_VALUE); | 677 status, SERVICE_WORKER_ERROR_MAX_VALUE); |
| 644 } else if (failure_count == 3) { | 678 } else if (failure_count == 3) { |
| 645 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_3", | 679 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_3", |
| 646 status, SERVICE_WORKER_ERROR_MAX_VALUE); | 680 status, SERVICE_WORKER_ERROR_MAX_VALUE); |
| 647 } | 681 } |
| 648 } | 682 } |
| 649 | 683 |
| 650 } // namespace content | 684 } // namespace content |
| OLD | NEW |