|  | // Copyright 2013 The Chromium Authors. All rights reserved. | 
|  | // 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::TimeDelta::FromMicroseconds(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 |