| Index: chrome/renderer/page_load_histograms.cc
|
| diff --git a/chrome/renderer/page_load_histograms.cc b/chrome/renderer/page_load_histograms.cc
|
| index a1cf288f092e1120ecf051653ed3581e264811e9..e569becbfa2b51a2021951dde434c403a9945e55 100644
|
| --- a/chrome/renderer/page_load_histograms.cc
|
| +++ b/chrome/renderer/page_load_histograms.cc
|
| @@ -61,8 +61,11 @@ static void DumpPerformanceTiming(const WebPerformance& performance,
|
| DCHECK(!navigation_start.is_null());
|
| DCHECK(!request_start.is_null());
|
| DCHECK(!response_start.is_null());
|
| - DCHECK(!load_event_start.is_null());
|
| - DCHECK(!load_event_end.is_null());
|
| + // TODO(dominich): Investigate conditions under which |load_event_start| and
|
| + // |load_event_end| may be NULL as in the non-PT_ case below. Examples in
|
| + // http://crbug.com/112006.
|
| + // DCHECK(!load_event_start.is_null());
|
| + // DCHECK(!load_event_end.is_null());
|
|
|
| if (document_state->web_timing_histograms_recorded())
|
| return;
|
| @@ -71,16 +74,24 @@ static void DumpPerformanceTiming(const WebPerformance& performance,
|
| // TODO(simonjam): There is no way to distinguish between abandonment and
|
| // intentional Javascript navigation before the load event fires.
|
| // TODO(dominich): Load type breakdown
|
| + if (!load_event_start.is_null()) {
|
| + PLT_HISTOGRAM("PLT.PT_BeginToFinishDoc", load_event_start - begin);
|
| + PLT_HISTOGRAM("PLT.PT_CommitToFinishDoc",
|
| + load_event_start - response_start);
|
| + }
|
| + if (!load_event_end.is_null()) {
|
| + PLT_HISTOGRAM("PLT.PT_BeginToFinish", load_event_end - begin);
|
| + PLT_HISTOGRAM("PLT.PT_CommitToFinish", load_event_end - response_start);
|
| + PLT_HISTOGRAM("PLT.PT_RequestToFinish", load_event_end - navigation_start);
|
| + PLT_HISTOGRAM("PLT.PT_StartToFinish", load_event_end - request_start);
|
| + }
|
| + if (!load_event_start.is_null() && !load_event_end.is_null()) {
|
| + PLT_HISTOGRAM("PLT.PT_FinishDocToFinish",
|
| + load_event_end - load_event_start);
|
| + }
|
| PLT_HISTOGRAM("PLT.PT_BeginToCommit", response_start - begin);
|
| - PLT_HISTOGRAM("PLT.PT_BeginToFinish", load_event_end - begin);
|
| - PLT_HISTOGRAM("PLT.PT_BeginToFinishDoc", load_event_start - begin);
|
| - PLT_HISTOGRAM("PLT.PT_CommitToFinish", load_event_end - response_start);
|
| - PLT_HISTOGRAM("PLT.PT_CommitToFinishDoc", load_event_start - response_start);
|
| - PLT_HISTOGRAM("PLT.PT_FinishDocToFinish", load_event_end - load_event_start);
|
| - PLT_HISTOGRAM("PLT.PT_RequestToFinish", load_event_end - navigation_start);
|
| PLT_HISTOGRAM("PLT.PT_RequestToStart", request_start - navigation_start);
|
| PLT_HISTOGRAM("PLT.PT_StartToCommit", response_start - request_start);
|
| - PLT_HISTOGRAM("PLT.PT_StartToFinish", load_event_end - request_start);
|
| }
|
|
|
| enum MissingStartType {
|
|
|