Bug 1190881 - Part 2. Assert the document of a DocumentTimeline contains a navigation timing.
MozReview-Commit-ID: GCZczcoUKEr
--- a/dom/animation/DocumentTimeline.cpp
+++ b/dom/animation/DocumentTimeline.cpp
@@ -87,16 +87,20 @@ 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();
+ 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.
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;
}
}
@@ -112,16 +116,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();
+ 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.
if (MOZ_UNLIKELY(!timing)) {
return result;
}
result.SetValue(aTimeStamp
- timing->GetNavigationStartTimeStamp()
- mOriginTime);
return result;
@@ -225,16 +233,20 @@ DocumentTimeline::RemoveAnimation(Animat
}
}
TimeStamp
DocumentTimeline::ToTimeStamp(const TimeDuration& aTimeDuration) const
{
TimeStamp result;
RefPtr<nsDOMNavigationTiming> timing = mDocument->GetNavigationTiming();
+ 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.
if (MOZ_UNLIKELY(!timing)) {
return result;
}
result =
timing->GetNavigationStartTimeStamp() + (aTimeDuration + mOriginTime);
return result;
}