| 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 819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 status, SERVICE_WORKER_ERROR_MAX_VALUE); | 830 status, SERVICE_WORKER_ERROR_MAX_VALUE); |
| 831 } | 831 } |
| 832 } | 832 } |
| 833 | 833 |
| 834 void ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize( | 834 void ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize( |
| 835 size_t size) { | 835 size_t size) { |
| 836 UMA_HISTOGRAM_COUNTS_100000("ServiceWorker.NavigationPreload.HeaderSize", | 836 UMA_HISTOGRAM_COUNTS_100000("ServiceWorker.NavigationPreload.HeaderSize", |
| 837 size); | 837 size); |
| 838 } | 838 } |
| 839 | 839 |
| 840 void ServiceWorkerMetrics::RecordNavigationPreloadResponse( |
| 841 base::TimeDelta worker_start, |
| 842 base::TimeDelta response_start, |
| 843 EmbeddedWorkerStatus initial_worker_status, |
| 844 StartSituation start_situation) { |
| 845 DCHECK_GE(worker_start.ToInternalValue(), 0); |
| 846 DCHECK_GE(response_start.ToInternalValue(), 0); |
| 847 |
| 848 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.NavigationPreload.ResponseTime", |
| 849 response_start); |
| 850 |
| 851 const bool nav_preload_finished_first = response_start < worker_start; |
| 852 UMA_HISTOGRAM_BOOLEAN( |
| 853 "ServiceWorker.NavigationPreload.FinishedBeforeStartWorker", |
| 854 nav_preload_finished_first); |
| 855 |
| 856 const bool existing_process_startup = |
| 857 (initial_worker_status == EmbeddedWorkerStatus::STOPPED && |
| 858 start_situation == |
| 859 ServiceWorkerMetrics::StartSituation::EXISTING_PROCESS); |
| 860 if (existing_process_startup) { |
| 861 UMA_HISTOGRAM_BOOLEAN( |
| 862 "ServiceWorker.NavigationPreload.FinishedBeforeStartWorker" |
| 863 "_StartWorkerExistingProcess", |
| 864 nav_preload_finished_first); |
| 865 } |
| 866 |
| 867 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 868 "ServiceWorker.NavigationPreload.ConcurrentTime", |
| 869 nav_preload_finished_first ? response_start : worker_start); |
| 870 |
| 871 if (nav_preload_finished_first) { |
| 872 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 873 "ServiceWorker.NavigationPreload.ConcurrentTime_NavPreloadFirst", |
| 874 response_start); |
| 875 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 876 "ServiceWorker.NavigationPreload.SWStartAfterNavPreload", |
| 877 worker_start - response_start); |
| 878 |
| 879 if (existing_process_startup) { |
| 880 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 881 "ServiceWorker.NavigationPreload.ConcurrentTime_" |
| 882 "StartWorkerExistingProcess", |
| 883 response_start); |
| 884 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 885 "ServiceWorker.NavigationPreload.ConcurrentTime_" |
| 886 "NavPreloadFirst_StartWorkerExistingProcess", |
| 887 response_start); |
| 888 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 889 "ServiceWorker.NavigationPreload.SWStartAfterNavPreload_" |
| 890 "StartWorkerExistingProcess", |
| 891 worker_start - response_start); |
| 892 } |
| 893 } else { |
| 894 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 895 "ServiceWorker.NavigationPreload.ConcurrentTime_SWStartFirst", |
| 896 worker_start); |
| 897 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 898 "ServiceWorker.NavigationPreload.NavPreloadAfterSWStart", |
| 899 response_start - worker_start); |
| 900 |
| 901 if (existing_process_startup) { |
| 902 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 903 "ServiceWorker.NavigationPreload.ConcurrentTime_" |
| 904 "StartWorkerExistingProcess", |
| 905 worker_start); |
| 906 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 907 "ServiceWorker.NavigationPreload.ConcurrentTime_" |
| 908 "SWStartFirst_StartWorkerExistingProcess", |
| 909 worker_start); |
| 910 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 911 "ServiceWorker.NavigationPreload.NavPreloadAfterSWStart_" |
| 912 "StartWorkerExistingProcess", |
| 913 response_start - worker_start); |
| 914 } |
| 915 } |
| 916 } |
| 917 |
| 840 void ServiceWorkerMetrics::RecordContextRequestHandlerStatus( | 918 void ServiceWorkerMetrics::RecordContextRequestHandlerStatus( |
| 841 ServiceWorkerContextRequestHandler::CreateJobStatus status, | 919 ServiceWorkerContextRequestHandler::CreateJobStatus status, |
| 842 bool is_installed, | 920 bool is_installed, |
| 843 bool is_main_script) { | 921 bool is_main_script) { |
| 844 const int value = static_cast<int>(status); | 922 const int value = static_cast<int>(status); |
| 845 const int max = static_cast<int>( | 923 const int max = static_cast<int>( |
| 846 ServiceWorkerContextRequestHandler::CreateJobStatus::NUM_TYPES); | 924 ServiceWorkerContextRequestHandler::CreateJobStatus::NUM_TYPES); |
| 847 if (is_installed) { | 925 if (is_installed) { |
| 848 if (is_main_script) { | 926 if (is_main_script) { |
| 849 UMA_HISTOGRAM_ENUMERATION( | 927 UMA_HISTOGRAM_ENUMERATION( |
| (...skipping 14 matching lines...) Expand all Loading... |
| 864 } else { | 942 } else { |
| 865 UMA_HISTOGRAM_ENUMERATION( | 943 UMA_HISTOGRAM_ENUMERATION( |
| 866 "ServiceWorker.ContextRequestHandlerStatus.NewWorker." | 944 "ServiceWorker.ContextRequestHandlerStatus.NewWorker." |
| 867 "ImportedScript", | 945 "ImportedScript", |
| 868 value, max); | 946 value, max); |
| 869 } | 947 } |
| 870 } | 948 } |
| 871 } | 949 } |
| 872 | 950 |
| 873 } // namespace content | 951 } // namespace content |
| OLD | NEW |