Bug 1275449 - Part 1: AnimationEffectTiming::SetEasing crash in page-mode addon context. r=hiro draft
authorDaisuke Akatsuka <daisuke@mozilla-japan.org>
Wed, 01 Jun 2016 17:40:11 +0900
changeset 373834 ae3685615f96f6a0e33b20670714cf8ff2cad76f
parent 373501 25321494921c824703a605127fb1f99b1faf5910
child 373835 301cdf64d17cec158968876afe06836f056c5ec5
push id19850
push userbmo:daisuke@mozilla-japan.org
push dateWed, 01 Jun 2016 08:49:35 +0000
reviewershiro
bugs1275449
milestone49.0a1
Bug 1275449 - Part 1: AnimationEffectTiming::SetEasing crash in page-mode addon context. r=hiro MozReview-Commit-ID: DeyC4BiXJNo
dom/animation/AnimationEffectTiming.cpp
--- a/dom/animation/AnimationEffectTiming.cpp
+++ b/dom/animation/AnimationEffectTiming.cpp
@@ -129,20 +129,24 @@ AnimationEffectTiming::SetDirection(cons
   PostSpecifiedTimingUpdated(mEffect);
 }
 
 void
 AnimationEffectTiming::SetEasing(JSContext* aCx,
                                  const nsAString& aEasing,
                                  ErrorResult& aRv)
 {
+  nsIDocument* document = AnimationUtils::GetCurrentRealmDocument(aCx);
+  if (!document) {
+    aRv.Throw(NS_ERROR_FAILURE);
+    return;
+  }
+
   Maybe<ComputedTimingFunction> newFunction =
-    TimingParams::ParseEasing(aEasing,
-                              AnimationUtils::GetCurrentRealmDocument(aCx),
-                              aRv);
+    TimingParams::ParseEasing(aEasing, document, aRv);
   if (aRv.Failed()) {
     return;
   }
 
   if (mTiming.mFunction == newFunction) {
     return;
   }