Bug 1300481 - Assert the document of a DocumentTimeline contains a navigation timing.
MozReview-Commit-ID: F7auy3ZkScp
--- a/dom/animation/DocumentTimeline.cpp
+++ b/dom/animation/DocumentTimeline.cpp
@@ -87,23 +87,25 @@ DocumentTimeline::GetCurrentTimeStamp()
TimeStamp result = !refreshTime.IsNull()
? refreshTime
: mLastRefreshDriverTime;
// If we don't have a refresh driver and we've never had one use the
// timeline's zero time.
if (result.IsNull()) {
RefPtr<nsDOMNavigationTiming> timing = mDocument->GetNavigationTiming();
- if (timing) {
- result = timing->GetNavigationStartTimeStamp();
- // Also, let this time represent the current refresh time. This way
- // we'll save it as the last refresh time and skip looking up
- // navigation timing each time.
- refreshTime = result;
- }
+ MOZ_ASSERT(timing,
+ "The computing result of this function is mostly likely wrong if"
+ "timing is null. You should figure out why we have a document"
+ "without a navigation timing object.");
+ result = timing->GetNavigationStartTimeStamp();
+ // Also, let this time represent the current refresh time. This way
+ // we'll save it as the last refresh time and skip looking up
+ // navigation timing each time.
+ refreshTime = result;
}
if (!refreshTime.IsNull()) {
mLastRefreshDriverTime = refreshTime;
}
return result;
}
@@ -112,19 +114,20 @@ Nullable<TimeDuration>
DocumentTimeline::ToTimelineTime(const TimeStamp& aTimeStamp) const
{
Nullable<TimeDuration> result; // Initializes to null
if (aTimeStamp.IsNull()) {
return result;
}
RefPtr<nsDOMNavigationTiming> timing = mDocument->GetNavigationTiming();
- if (MOZ_UNLIKELY(!timing)) {
- return result;
- }
+ MOZ_ASSERT(timing,
+ "The computing result of this function is mostly likely wrong if"
+ "timing is null. You should figure out why we have a document"
+ "without a navigation timing object.");
result.SetValue(aTimeStamp
- timing->GetNavigationStartTimeStamp()
- mOriginTime);
return result;
}
void
@@ -225,20 +228,20 @@ DocumentTimeline::RemoveAnimation(Animat
}
}
TimeStamp
DocumentTimeline::ToTimeStamp(const TimeDuration& aTimeDuration) const
{
TimeStamp result;
RefPtr<nsDOMNavigationTiming> timing = mDocument->GetNavigationTiming();
- if (MOZ_UNLIKELY(!timing)) {
- return result;
- }
-
+ MOZ_ASSERT(timing,
+ "The computing result of this function is mostly likely wrong if"
+ "timing is null. You should figure out why we have a document"
+ "without a navigation timing object.");
result =
timing->GetNavigationStartTimeStamp() + (aTimeDuration + mOriginTime);
return result;
}
nsRefreshDriver*
DocumentTimeline::GetRefreshDriver() const
{