Index: chrome/browser/extensions/api/alarms/alarms_api.h |
diff --git a/chrome/browser/extensions/api/alarms/alarms_api.h b/chrome/browser/extensions/api/alarms/alarms_api.h |
index eb521aa0ff7746aceb6a2b175a1b649101489c2c..bc694fff2073dcbdad5621a1e91ec21d99f6b11a 100644 |
--- a/chrome/browser/extensions/api/alarms/alarms_api.h |
+++ b/chrome/browser/extensions/api/alarms/alarms_api.h |
@@ -7,21 +7,30 @@ |
#include "chrome/browser/extensions/extension_function.h" |
+namespace base { |
+class Clock; |
+} // namespace base |
+ |
namespace extensions { |
class AlarmsCreateFunction : public SyncExtensionFunction { |
- typedef base::Time (*TimeProvider)(); |
public: |
AlarmsCreateFunction(); |
- explicit AlarmsCreateFunction(TimeProvider now) : now_(now) {} |
+ // Use |clock| instead of the default clock. Does not take ownership |
+ // of |clock|. Used for testing. |
+ explicit AlarmsCreateFunction(base::Clock* clock); |
protected: |
- virtual ~AlarmsCreateFunction() {} |
+ virtual ~AlarmsCreateFunction(); |
// ExtensionFunction: |
virtual bool RunImpl() OVERRIDE; |
DECLARE_EXTENSION_FUNCTION("alarms.create", ALARMS_CREATE) |
private: |
- TimeProvider now_; |
+ base::Clock* const clock_; |
+ // Whether or not we own |clock_|. This is needed because we own it |
+ // when we create it ourselves, but not when it's passed in for |
+ // testing. |
+ bool owns_clock_; |
}; |
class AlarmsGetFunction : public SyncExtensionFunction { |