Bug 1299515 - Implement MediaTimer::WaitFor for convenience. r?jya draft
authorAndreas Pehrson <pehrsons@mozilla.com>
Wed, 20 Dec 2017 10:01:47 +0100
changeset 749423 41a9d97ae0f9ddb0aec9d7474cdfa11b93beb1c5
parent 749422 ca0129a4d9a50e55d4073b717463831a7ecbb850
child 749424 3a1aa4108affecb32a57cdab76fe843d94309cc7
push id97396
push userbmo:apehrson@mozilla.com
push dateWed, 31 Jan 2018 13:27:39 +0000
reviewersjya
bugs1299515
milestone60.0a1
Bug 1299515 - Implement MediaTimer::WaitFor for convenience. r?jya MozReview-Commit-ID: VpHxUKn3hO
dom/media/MediaTimer.cpp
dom/media/MediaTimer.h
--- a/dom/media/MediaTimer.cpp
+++ b/dom/media/MediaTimer.cpp
@@ -75,16 +75,22 @@ bool
 MediaTimer::OnMediaTimerThread()
 {
   bool rv = false;
   mThread->IsOnCurrentThread(&rv);
   return rv;
 }
 
 RefPtr<MediaTimerPromise>
+MediaTimer::WaitFor(const TimeDuration& aDuration, const char* aCallSite)
+{
+  return WaitUntil(TimeStamp::Now() + aDuration, aCallSite);
+}
+
+RefPtr<MediaTimerPromise>
 MediaTimer::WaitUntil(const TimeStamp& aTimeStamp, const char* aCallSite)
 {
   MonitorAutoLock mon(mMonitor);
   TIMER_LOG("MediaTimer::WaitUntil %" PRId64, RelativeMicroseconds(aTimeStamp));
   Entry e(aTimeStamp, aCallSite);
   RefPtr<MediaTimerPromise> p = e.mPromise.get();
   mEntries.push(e);
   ScheduleUpdate();
--- a/dom/media/MediaTimer.h
+++ b/dom/media/MediaTimer.h
@@ -37,16 +37,17 @@ class MediaTimer
 {
 public:
   explicit MediaTimer(bool aFuzzy = false);
 
   // We use a release with a custom Destroy().
   NS_IMETHOD_(MozExternalRefCountType) AddRef(void);
   NS_IMETHOD_(MozExternalRefCountType) Release(void);
 
+  RefPtr<MediaTimerPromise> WaitFor(const TimeDuration& aDuration, const char* aCallSite);
   RefPtr<MediaTimerPromise> WaitUntil(const TimeStamp& aTimeStamp, const char* aCallSite);
 
 private:
   virtual ~MediaTimer() { MOZ_ASSERT(OnMediaTimerThread()); }
 
   void DispatchDestroy(); // Invoked by Release on an arbitrary thread.
   void Destroy(); // Runs on the timer thread.