chromium/ios/web/navigation/time_smoother.cc

// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ios/web/navigation/time_smoother.h"

namespace web {

// Duplicated from content/browser/web_contents/navigation_controller_impl.cc.
base::Time TimeSmoother::GetSmoothedTime(base::Time t) {
  // If `t` is between the water marks, we're in a run of duplicates
  // or just getting out of it, so increase the high-water mark to get
  // a time that probably hasn't been used before and return it.
  if (low_water_mark_ <= t && t <= high_water_mark_) {
    high_water_mark_ += base::Microseconds(1);
    return high_water_mark_;
  }

  // Otherwise, we're clear of the last duplicate run, so reset the
  // water marks.
  low_water_mark_ = high_water_mark_ = t;
  return t;
}

}  // namespace web