Index: components/page_load_metrics/browser/page_load_metrics_util.cc |
diff --git a/components/page_load_metrics/browser/page_load_metrics_util.cc b/components/page_load_metrics/browser/page_load_metrics_util.cc |
index a9ead770ea308b064e88f1d5c375dadb6f5d5e95..96217bf00cd7df8399659dad5f9f67de77ce7a9d 100644 |
--- a/components/page_load_metrics/browser/page_load_metrics_util.cc |
+++ b/components/page_load_metrics/browser/page_load_metrics_util.cc |
@@ -14,8 +14,19 @@ namespace page_load_metrics { |
bool WasStartedInForegroundEventInForeground(base::TimeDelta event, |
const PageLoadExtraInfo& info) { |
return info.started_in_foreground && !event.is_zero() && |
- (info.first_background_time.is_zero() || |
- event < info.first_background_time); |
+ (!info.first_background_time || |
+ event <= info.first_background_time.value()); |
+} |
+ |
+// TODO (shivanisha) The above function is used for TimeDeltas coming over IPC. |
+// Merge these two when page_load_metrics only handles Optional TimeDelta |
+// values in the browser process. |
+bool WasStartedInForegroundOptionalEventInForeground( |
+ const base::Optional<base::TimeDelta>& event, |
+ const PageLoadExtraInfo& info) { |
+ return info.started_in_foreground && event && |
+ (!info.first_background_time || |
+ event.value() <= info.first_background_time.value()); |
} |
bool WasParseInForeground(base::TimeDelta parse_start, |
@@ -24,9 +35,9 @@ bool WasParseInForeground(base::TimeDelta parse_start, |
if (parse_start.is_zero()) { |
return false; |
} |
- const bool incomplete_parse_in_foreground = |
- parse_stop.is_zero() && info.started_in_foreground && |
- info.first_background_time.is_zero(); |
+ const bool incomplete_parse_in_foreground = parse_stop.is_zero() && |
+ info.started_in_foreground && |
+ !info.first_background_time; |
return incomplete_parse_in_foreground || |
WasStartedInForegroundEventInForeground(parse_stop, info); |