Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(459)

Unified Diff: components/page_load_metrics/common/page_load_timing.h

Issue 2111073003: Update PageLoadTiming to use base::Optional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@optionalbug
Patch Set: remove comment Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/page_load_metrics/common/page_load_timing.h
diff --git a/components/page_load_metrics/common/page_load_timing.h b/components/page_load_metrics/common/page_load_timing.h
index a61551d4a402d20a48b138a6b65bbef78dcc2da7..8d44cfca4c9a8ccee795748ffae679fccef5c42f 100644
--- a/components/page_load_metrics/common/page_load_timing.h
+++ b/components/page_load_metrics/common/page_load_timing.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_PAGE_LOAD_METRICS_COMMON_PAGE_LOAD_TIMING_H_
#define COMPONENTS_PAGE_LOAD_METRICS_COMMON_PAGE_LOAD_TIMING_H_
+#include "base/optional.h"
#include "base/time/time.h"
#include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h"
@@ -28,53 +29,52 @@ struct PageLoadTiming {
// All TimeDeltas are relative to navigation_start
- // TODO(shivanisha): Issue 596367 shows that it is possible for a valid
- // TimeDelta value to be 0 (2 TimeTicks can have the same value even if they
- // were assigned in separate instructions if the clock speed is less
- // granular). The solution there was to use base::Optional for those values.
- // Consider changing the below values to Optional as well.
-
// Time that the first byte of the response is received.
- base::TimeDelta response_start;
+ base::Optional<base::TimeDelta> response_start;
// Time that the document transitions to the 'loading' state. This is roughly
// the time that the HTML parser begins parsing the main HTML resource.
- base::TimeDelta dom_loading;
+ base::Optional<base::TimeDelta> dom_loading;
// Time immediately before the DOMContentLoaded event is fired.
- base::TimeDelta dom_content_loaded_event_start;
+ base::Optional<base::TimeDelta> dom_content_loaded_event_start;
// Time immediately before the load event is fired.
- base::TimeDelta load_event_start;
+ base::Optional<base::TimeDelta> load_event_start;
// Time when the first layout is completed.
- base::TimeDelta first_layout;
+ base::Optional<base::TimeDelta> first_layout;
// Time when the first paint is performed.
- base::TimeDelta first_paint;
+ base::Optional<base::TimeDelta> first_paint;
// Time when the first non-blank text is painted.
- base::TimeDelta first_text_paint;
+ base::Optional<base::TimeDelta> first_text_paint;
// Time when the first image is painted.
- base::TimeDelta first_image_paint;
+ base::Optional<base::TimeDelta> first_image_paint;
// Time when the first contentful thing (image, text, etc.) is painted.
- base::TimeDelta first_contentful_paint;
+ base::Optional<base::TimeDelta> first_contentful_paint;
// Time that the document's parser started and stopped parsing main resource
// content.
- base::TimeDelta parse_start;
- base::TimeDelta parse_stop;
+ base::Optional<base::TimeDelta> parse_start;
+ base::Optional<base::TimeDelta> parse_stop;
// Sum of times when the parser is blocked waiting on the load of a script.
// This duration takes place between parser_start and parser_stop, and thus
- // must be less than or equal to parser_stop - parser_start.
- base::TimeDelta parse_blocked_on_script_load_duration;
+ // must be less than or equal to parser_stop - parser_start. Note that this
+ // value may be updated multiple times during the period between parse_start
+ // and parse_stop.
+ base::Optional<base::TimeDelta> parse_blocked_on_script_load_duration;
// Sum of times when the parser is blocked waiting on the load of a script
// that was inserted from document.write. This duration must be less than or
- // equal to parse_blocked_on_script_load_duration. Note that some uncommon
- // cases where scripts are loaded via document.write are not currently covered
- // by this field. See crbug/600711 for details.
- base::TimeDelta parse_blocked_on_script_load_from_document_write_duration;
+ // equal to parse_blocked_on_script_load_duration. Note that this value may be
+ // updated multiple times during the period between parse_start and
+ // parse_stop. Note that some uncommon cases where scripts are loaded via
+ // document.write are not currently covered by this field. See crbug/600711
+ // for details.
+ base::Optional<base::TimeDelta>
+ parse_blocked_on_script_load_from_document_write_duration;
// If you add additional members, also be sure to update operator==,
// page_load_metrics_messages.h, and IsEmpty().

Powered by Google App Engine
This is Rietveld 408576698