| 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); | 
|  |