From 728dbd075d1205bac3834fe1a27573355ce5b4bf Mon Sep 17 00:00:00 2001 From: Brian Birtles Date: Wed, 16 Jul 2014 09:02:30 +0900 Subject: [PATCH] Bug 1032573 part 4 - Add AnimationTimeline::ToTimelineTime helper method; r=dbaron This patch simply factors out the conversion from a TimeStamp value to a nullable-double value relative to the start of the timeline. This is so that, in a subsequent patch, this functionality can be reused by ElementAnimation when it reports its start time (which is currently recorded as a TimeStamp). --- dom/animation/AnimationTimeline.cpp | 32 ++++++++++++++++------------- dom/animation/AnimationTimeline.h | 2 ++ 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/dom/animation/AnimationTimeline.cpp b/dom/animation/AnimationTimeline.cpp index 3af8082f6096..7d190e80e9a9 100644 --- a/dom/animation/AnimationTimeline.cpp +++ b/dom/animation/AnimationTimeline.cpp @@ -29,20 +29,7 @@ AnimationTimeline::WrapObject(JSContext* aCx) Nullable AnimationTimeline::GetCurrentTime() const { - Nullable result; // Default ctor initializes to null - - nsRefPtr timing = mDocument->GetNavigationTiming(); - if (!timing) { - return result; - } - - TimeStamp now = GetCurrentTimeStamp(); - if (now.IsNull()) { - return result; - } - - result.SetValue(timing->TimeStampToDOMHighRes(now)); - return result; + return ToTimelineTime(GetCurrentTimeStamp()); } TimeStamp @@ -65,5 +52,22 @@ AnimationTimeline::GetCurrentTimeStamp() const return result; } +Nullable +AnimationTimeline::ToTimelineTime(const mozilla::TimeStamp& aTimeStamp) const +{ + Nullable result; // Initializes to null + if (aTimeStamp.IsNull()) { + return result; + } + + nsRefPtr timing = mDocument->GetNavigationTiming(); + if (MOZ_UNLIKELY(!timing)) { + return result; + } + + result.SetValue(timing->TimeStampToDOMHighRes(aTimeStamp)); + return result; +} + } // namespace dom } // namespace mozilla diff --git a/dom/animation/AnimationTimeline.h b/dom/animation/AnimationTimeline.h index 7dccb334635c..429a48c51e14 100644 --- a/dom/animation/AnimationTimeline.h +++ b/dom/animation/AnimationTimeline.h @@ -38,6 +38,8 @@ public: Nullable GetCurrentTime() const; mozilla::TimeStamp GetCurrentTimeStamp() const; + Nullable ToTimelineTime(const mozilla::TimeStamp& aTimeStamp) const; + protected: virtual ~AnimationTimeline() { }