Index: chrome/common/page_load_metrics/page_load_metrics.mojom |
diff --git a/chrome/common/page_load_metrics/page_load_metrics.mojom b/chrome/common/page_load_metrics/page_load_metrics.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..13b8d18db582c5b6e6d474702310ffb4c8b4b8af |
--- /dev/null |
+++ b/chrome/common/page_load_metrics/page_load_metrics.mojom |
@@ -0,0 +1,56 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+module page_load_metrics.mojom; |
+ |
+import "mojo/common/time.mojom"; |
+ |
+// See comments in page_load_timing.h for details on each field. |
+ |
+struct DocumentTiming { |
+ mojo.common.mojom.TimeDelta? dom_content_loaded_event_start; |
+ mojo.common.mojom.TimeDelta? load_event_start; |
+ mojo.common.mojom.TimeDelta? first_layout; |
+}; |
+ |
+struct PaintTiming { |
+ mojo.common.mojom.TimeDelta? first_paint; |
+ mojo.common.mojom.TimeDelta? first_text_paint; |
+ mojo.common.mojom.TimeDelta? first_image_paint; |
+ mojo.common.mojom.TimeDelta? first_contentful_paint; |
+ mojo.common.mojom.TimeDelta? first_meaningful_paint; |
+}; |
+ |
+struct ParseTiming { |
+ mojo.common.mojom.TimeDelta? parse_start; |
+ mojo.common.mojom.TimeDelta? parse_stop; |
+ mojo.common.mojom.TimeDelta? parse_blocked_on_script_load_duration; |
+ mojo.common.mojom.TimeDelta? parse_blocked_on_script_load_from_document_write_duration; |
+ mojo.common.mojom.TimeDelta? parse_blocked_on_script_execution_duration; |
+ mojo.common.mojom.TimeDelta? parse_blocked_on_script_execution_from_document_write_duration; |
+}; |
+ |
+struct StyleSheetTiming { |
+ mojo.common.mojom.TimeDelta? author_style_sheet_parse_duration_before_fcp; |
+ mojo.common.mojom.TimeDelta? update_style_duration_before_fcp; |
+}; |
+ |
+struct PageLoadTiming { |
+ mojo.common.mojom.Time navigation_start; |
+ mojo.common.mojom.TimeDelta? response_start; |
+ DocumentTiming document_timing; |
Bryan McQuade
2017/04/26 15:24:22
In looking at the generated code for this struct i
Ken Rockot(use gerrit already)
2017/04/26 15:28:45
Yes, this is the point of typemapping. You typemap
Bryan McQuade
2017/04/26 20:41:51
Based on other discussions on the thread, I'm incl
lpy
2017/04/27 10:58:35
I prefer not to do it. I don't see clear benefit e
Bryan McQuade
2017/04/27 15:42:32
Ok. Just so I better understand, if we were writin
lpy
2017/05/05 17:49:30
Acknowledged.
|
+ PaintTiming paint_timing; |
+ ParseTiming parse_timing; |
+ StyleSheetTiming style_sheet_timing; |
+}; |
+ |
+struct PageLoadMetadata { |
+ int32 behavior_flags; |
+}; |
+ |
+// Sent from renderer to browser process when the PageLoadTiming for the |
+// associated frame changed. |
+interface PageLoadMetrics { |
+ UpdateTiming(PageLoadTiming page_load_timing, PageLoadMetadata page_load_metadata); |
Bryan McQuade
2017/04/26 15:24:22
similarly, the generated code appears to be using
lpy
2017/05/05 17:49:30
Acknowledged.
|
+}; |