@@ -159,13 +159,24 @@ ServiceWorkerMainResourceLoader::ServiceWorkerMainResourceLoader(
159
159
scoped_refptr<ServiceWorkerVersion> active_worker =
160
160
container_host_->controller ();
161
161
if (active_worker) {
162
- EmbeddedWorkerStatus running_status = active_worker->running_status ();
163
- initial_worker_status_ =
164
- EmbeddedWorkerInstance::StatusToString (running_status);
162
+ switch (active_worker->running_status ()) {
163
+ case blink::EmbeddedWorkerStatus::RUNNING:
164
+ initial_service_worker_status_ = InitialServiceWorkerStatus::kRunning ;
165
+ break ;
166
+ case blink::EmbeddedWorkerStatus::STARTING:
167
+ initial_service_worker_status_ = InitialServiceWorkerStatus::kStarting ;
168
+ break ;
169
+ case blink::EmbeddedWorkerStatus::STOPPING:
170
+ initial_service_worker_status_ = InitialServiceWorkerStatus::kStopping ;
171
+ break ;
172
+ case blink::EmbeddedWorkerStatus::STOPPED:
173
+ initial_service_worker_status_ = InitialServiceWorkerStatus::kStopped ;
174
+ break ;
175
+ }
165
176
if (active_worker->IsWarmingUp ()) {
166
- initial_worker_status_ = " WARMING_UP " ;
177
+ initial_service_worker_status_ = InitialServiceWorkerStatus:: kWarmingUp ;
167
178
} else if (active_worker->IsWarmedUp ()) {
168
- initial_worker_status_ = " WARMED_UP " ;
179
+ initial_service_worker_status_ = InitialServiceWorkerStatus:: kWarmedUp ;
169
180
}
170
181
}
171
182
@@ -800,12 +811,31 @@ void ServiceWorkerMainResourceLoader::DeleteIfNeeded() {
800
811
delete this ;
801
812
}
802
813
814
+ std::string
815
+ ServiceWorkerMainResourceLoader::GetInitialServiceWorkerStatusString () {
816
+ CHECK (initial_service_worker_status_);
817
+ switch (*initial_service_worker_status_) {
818
+ case InitialServiceWorkerStatus::kRunning :
819
+ return " RUNNING" ;
820
+ case InitialServiceWorkerStatus::kStarting :
821
+ return " STARTING" ;
822
+ case InitialServiceWorkerStatus::kStopping :
823
+ return " STOPPING" ;
824
+ case InitialServiceWorkerStatus::kStopped :
825
+ return " STOPPED" ;
826
+ case InitialServiceWorkerStatus::kWarmingUp :
827
+ return " WARMING_UP" ;
828
+ case InitialServiceWorkerStatus::kWarmedUp :
829
+ return " WARMED_UP" ;
830
+ }
831
+ }
832
+
803
833
void ServiceWorkerMainResourceLoader::
804
834
RecordTimingMetricsForFetchHandlerHandledCase () {
805
835
if (!IsEligibleForRecordingTimingMetrics ()) {
806
836
return ;
807
837
}
808
- CHECK (initial_worker_status_ );
838
+ CHECK (initial_service_worker_status_ );
809
839
RecordFindRegistrationToCompletedTrace ();
810
840
RecordFindRegistrationToRequestStartTiming ();
811
841
RecordRequestStartToForwardServiceWorkerTiming ();
@@ -824,7 +854,7 @@ void ServiceWorkerMainResourceLoader::
824
854
if (!IsEligibleForRecordingTimingMetrics ()) {
825
855
return ;
826
856
}
827
- CHECK (initial_worker_status_ );
857
+ CHECK (initial_service_worker_status_ );
828
858
RecordFindRegistrationToCompletedTrace ();
829
859
RecordFindRegistrationToRequestStartTiming ();
830
860
RecordRequestStartToForwardServiceWorkerTiming ();
@@ -842,7 +872,7 @@ void ServiceWorkerMainResourceLoader::
842
872
if (!IsEligibleForRecordingTimingMetrics ()) {
843
873
return ;
844
874
}
845
- CHECK (initial_worker_status_ );
875
+ CHECK (initial_service_worker_status_ );
846
876
RecordFindRegistrationToCompletedTrace ();
847
877
RecordFindRegistrationToRequestStartTiming ();
848
878
RecordFindRegistrationToCompletedTiming ();
@@ -904,8 +934,17 @@ void ServiceWorkerMainResourceLoader::
904
934
request_start - find_registration_start_time_);
905
935
base::UmaHistogramMediumTimes (
906
936
base::StrCat ({kHistogramLoadTiming , " .FindRegistrationToRequestStart." ,
907
- *initial_worker_status_ }),
937
+ GetInitialServiceWorkerStatusString () }),
908
938
request_start - find_registration_start_time_);
939
+ base::UmaHistogramEnumeration (
940
+ " ServiceWorker.LoadTiming.MainFrame.MainResource."
941
+ " InitialServiceWorkerStatus" ,
942
+ *initial_service_worker_status_);
943
+ base::UmaHistogramEnumeration (
944
+ base::StrCat ({" ServiceWorker.LoadTiming.MainFrame.MainResource."
945
+ " InitialServiceWorkerStatus." ,
946
+ ComposeNavigationTypeString (resource_request_)}),
947
+ *initial_service_worker_status_);
909
948
}
910
949
911
950
void ServiceWorkerMainResourceLoader::
@@ -916,7 +955,7 @@ void ServiceWorkerMainResourceLoader::
916
955
load_timing.service_worker_start_time - load_timing.request_start );
917
956
base::UmaHistogramTimes (
918
957
base::StrCat ({kHistogramLoadTiming , " .StartToForwardServiceWorker." ,
919
- *initial_worker_status_ }),
958
+ GetInitialServiceWorkerStatusString () }),
920
959
load_timing.service_worker_start_time - load_timing.request_start );
921
960
TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP0 (
922
961
" ServiceWorker" , " RequestStartToForwardServiceWorker" , this ,
@@ -940,29 +979,31 @@ void ServiceWorkerMainResourceLoader::
940
979
base::UmaHistogramMediumTimes (
941
980
base::StrCat ({kHistogramLoadTiming ,
942
981
" .ForwardServiceWorkerToWorkerReady2." ,
943
- *initial_worker_status_ }),
982
+ GetInitialServiceWorkerStatusString () }),
944
983
time );
945
984
base::UmaHistogramMediumTimes (
946
985
base::StrCat ({kHistogramLoadTiming ,
947
986
" .ForwardServiceWorkerToWorkerReady2." ,
948
987
navigation_type_string}),
949
988
time );
950
989
base::UmaHistogramMediumTimes (
951
- base::StrCat ({ kHistogramLoadTiming ,
952
- " .ForwardServiceWorkerToWorkerReady2." ,
953
- *initial_worker_status_ , " ." , navigation_type_string}),
990
+ base::StrCat (
991
+ { kHistogramLoadTiming , " .ForwardServiceWorkerToWorkerReady2." ,
992
+ GetInitialServiceWorkerStatusString () , " ." , navigation_type_string}),
954
993
time );
955
994
TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP1 (
956
995
" ServiceWorker" ,
957
996
base::StrCat ({" ForwardServiceWorkerToWorkerReady." ,
958
- *initial_worker_status_, " ." , navigation_type_string})
997
+ GetInitialServiceWorkerStatusString (), " ." ,
998
+ navigation_type_string})
959
999
.c_str (),
960
- this , load_timing.service_worker_start_time , " *initial_worker_status_ " ,
961
- *initial_worker_status_ );
1000
+ this , load_timing.service_worker_start_time ,
1001
+ " initial_service_worker_status " , GetInitialServiceWorkerStatusString () );
962
1002
TRACE_EVENT_NESTABLE_ASYNC_END_WITH_TIMESTAMP0 (
963
1003
" ServiceWorker" ,
964
1004
base::StrCat ({" ForwardServiceWorkerToWorkerReady." ,
965
- *initial_worker_status_, " ." , navigation_type_string})
1005
+ GetInitialServiceWorkerStatusString (), " ." ,
1006
+ navigation_type_string})
966
1007
.c_str (),
967
1008
this , load_timing.service_worker_ready_time );
968
1009
}
@@ -977,7 +1018,7 @@ void ServiceWorkerMainResourceLoader::
977
1018
load_timing.service_worker_ready_time );
978
1019
base::UmaHistogramTimes (
979
1020
base::StrCat ({kHistogramLoadTiming , " .WorkerReadyToFetchHandlerStart." ,
980
- *initial_worker_status_ }),
1021
+ GetInitialServiceWorkerStatusString () }),
981
1022
fetch_event_timing_->dispatch_event_time -
982
1023
load_timing.service_worker_ready_time );
983
1024
TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP0 (
@@ -997,7 +1038,7 @@ void ServiceWorkerMainResourceLoader::
997
1038
fetch_event_timing_->dispatch_event_time );
998
1039
base::UmaHistogramTimes (base::StrCat ({kHistogramLoadTiming ,
999
1040
" .FetchHandlerStartToFetchHandlerEnd." ,
1000
- *initial_worker_status_ }),
1041
+ GetInitialServiceWorkerStatusString () }),
1001
1042
fetch_event_timing_->respond_with_settled_time -
1002
1043
fetch_event_timing_->dispatch_event_time );
1003
1044
TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP0 (
@@ -1018,7 +1059,7 @@ void ServiceWorkerMainResourceLoader::
1018
1059
fetch_event_timing_->respond_with_settled_time );
1019
1060
base::UmaHistogramTimes (
1020
1061
base::StrCat ({kHistogramLoadTiming , " .FetchHandlerEndToResponseReceived." ,
1021
- *initial_worker_status_ }),
1062
+ GetInitialServiceWorkerStatusString () }),
1022
1063
load_timing.receive_headers_end -
1023
1064
fetch_event_timing_->respond_with_settled_time );
1024
1065
TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP0 (
@@ -1037,7 +1078,7 @@ void ServiceWorkerMainResourceLoader::
1037
1078
completion_time_ - load_timing.receive_headers_end );
1038
1079
base::UmaHistogramMediumTimes (
1039
1080
base::StrCat ({kHistogramLoadTiming , " .ResponseReceivedToCompleted2." ,
1040
- *initial_worker_status_ }),
1081
+ GetInitialServiceWorkerStatusString () }),
1041
1082
completion_time_ - load_timing.receive_headers_end );
1042
1083
TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP1 (
1043
1084
" ServiceWorker" , " ResponseReceivedToCompleted" , this ,
@@ -1058,7 +1099,7 @@ void ServiceWorkerMainResourceLoader::
1058
1099
{kHistogramLoadTiming , " .ResponseReceivedToCompleted2." ,
1059
1100
blink::ServiceWorkerLoaderHelpers::FetchResponseSourceToSuffix (
1060
1101
response_source_),
1061
- " ." , *initial_worker_status_ }),
1102
+ " ." , GetInitialServiceWorkerStatusString () }),
1062
1103
completion_time_ - load_timing.receive_headers_end );
1063
1104
}
1064
1105
@@ -1069,7 +1110,7 @@ void ServiceWorkerMainResourceLoader::
1069
1110
completion_time_ - find_registration_start_time_);
1070
1111
base::UmaHistogramMediumTimes (
1071
1112
base::StrCat ({kHistogramLoadTiming , " .FindRegistrationToCompleted." ,
1072
- *initial_worker_status_ }),
1113
+ GetInitialServiceWorkerStatusString () }),
1073
1114
completion_time_ - find_registration_start_time_);
1074
1115
}
1075
1116
@@ -1080,7 +1121,7 @@ void ServiceWorkerMainResourceLoader::RecordRequestStartToCompletedTiming(
1080
1121
completion_time_ - request_start);
1081
1122
base::UmaHistogramMediumTimes (
1082
1123
base::StrCat ({kHistogramLoadTiming , " .StartToCompleted." ,
1083
- *initial_worker_status_ }),
1124
+ GetInitialServiceWorkerStatusString () }),
1084
1125
completion_time_ - request_start);
1085
1126
}
1086
1127
@@ -1092,7 +1133,7 @@ void ServiceWorkerMainResourceLoader::
1092
1133
completion_time_ - find_registration_start_time_);
1093
1134
base::UmaHistogramMediumTimes (
1094
1135
base::StrCat ({kHistogramLoadTiming , " .FindRegistrationToFallbackNetwork." ,
1095
- *initial_worker_status_ }),
1136
+ GetInitialServiceWorkerStatusString () }),
1096
1137
completion_time_ - find_registration_start_time_);
1097
1138
}
1098
1139
@@ -1103,7 +1144,7 @@ void ServiceWorkerMainResourceLoader::RecordStartToFallbackNetworkTiming() {
1103
1144
completion_time_ - load_timing.request_start );
1104
1145
base::UmaHistogramMediumTimes (
1105
1146
base::StrCat ({kHistogramLoadTiming , " .StartToFallbackNetwork." ,
1106
- *initial_worker_status_ }),
1147
+ GetInitialServiceWorkerStatusString () }),
1107
1148
completion_time_ - load_timing.request_start );
1108
1149
}
1109
1150
@@ -1115,7 +1156,7 @@ void ServiceWorkerMainResourceLoader::
1115
1156
completion_time_ - fetch_event_timing_->respond_with_settled_time );
1116
1157
base::UmaHistogramTimes (
1117
1158
base::StrCat ({kHistogramLoadTiming , " .FetchHandlerEndToFallbackNetwork." ,
1118
- *initial_worker_status_ }),
1159
+ GetInitialServiceWorkerStatusString () }),
1119
1160
completion_time_ - fetch_event_timing_->respond_with_settled_time );
1120
1161
TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP0 (
1121
1162
" ServiceWorker" , " FetchHandlerEndToFallbackNetwork" , this ,
0 commit comments