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