| Index: base/time.h
 | 
| diff --git a/base/time.h b/base/time.h
 | 
| index 78d7456b68ae273c3bf27e8aaf93cd3742efe02c..e2aeacede779c7e89d2a986c6007ac07e8efbabc 100644
 | 
| --- a/base/time.h
 | 
| +++ b/base/time.h
 | 
| @@ -17,6 +17,9 @@
 | 
|  // Time::Now() may actually decrease or jump).  But note that TimeTicks may
 | 
|  // "stand still", for example if the computer suspended.
 | 
|  //
 | 
| +// TimeFactory can be used to override values returned by Time::Now and
 | 
| +// TimeTicks::Now for test purposes.
 | 
| +//
 | 
|  // These classes are represented as only a 64-bit value, so they can be
 | 
|  // efficiently passed by value.
 | 
|  
 | 
| @@ -638,6 +641,25 @@ inline TimeTicks TimeDelta::operator+(TimeTicks t) const {
 | 
|    return TimeTicks(t.ticks_ + delta_);
 | 
|  }
 | 
|  
 | 
| +// TimeFactory ----------------------------------------------------------------
 | 
| +
 | 
| +// This class should be subclassed to provide test values for Time::Now and
 | 
| +// TimeTicks::Now. Subclass instance should register itself by setting
 | 
| +// |instance_| fields.
 | 
| +class BASE_EXPORT TimeFactory {
 | 
| + public:
 | 
| +  // Substitutes value for Time::Now().
 | 
| +  virtual Time TimeNow() = 0;
 | 
| +  // Substitutes value for TimeTicks::Now()
 | 
| +  virtual TimeTicks TimeTicksNow() = 0;
 | 
| +
 | 
| +  // Returns instance of |TimeFactory|. If null, system time routines are used.
 | 
| +  static TimeFactory* instance() { return instance_; }
 | 
| + protected:
 | 
| +  // Implementation of TimeFactory (set by implementing subclasses).
 | 
| +  static TimeFactory* instance_;
 | 
| +};
 | 
| +
 | 
|  }  // namespace base
 | 
|  
 | 
|  #endif  // BASE_TIME_H_
 | 
| 
 |