Bug 866259. Vector images need to send the unlocked draw notification too because it is also responsible for managing the number of animation consumers. r=joedrew
authorTimothy Nikkel <tnikkel@gmail.com>
Mon, 29 Apr 2013 14:10:16 -0500
changeset 141215 be2a35cd573964898f7f7227300eb16dfa98be72
parent 141214 909360229cff08817fa3b9ffeac0c0c962aef502
child 141216 d7737f1012b115be56214132fdddc1d8c162b8cf
push id2579
push userakeybl@mozilla.com
push dateMon, 24 Jun 2013 18:52:47 +0000
treeherdermozilla-beta@b69b7de8a05a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjoedrew
bugs866259
milestone23.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 866259. Vector images need to send the unlocked draw notification too because it is also responsible for managing the number of animation consumers. r=joedrew
image/src/VectorImage.cpp
--- a/image/src/VectorImage.cpp
+++ b/image/src/VectorImage.cpp
@@ -648,16 +648,21 @@ VectorImage::Draw(gfxContext* aContext,
   NS_ENSURE_ARG_POINTER(aContext);
   if (mError || !mIsFullyLoaded)
     return NS_ERROR_FAILURE;
 
   if (mIsDrawing) {
     NS_WARNING("Refusing to make re-entrant call to VectorImage::Draw");
     return NS_ERROR_FAILURE;
   }
+
+  if (mAnimationConsumers == 0 && mStatusTracker) {
+    mStatusTracker->OnUnlockedDraw();
+  }
+
   AutoRestore<bool> autoRestoreIsDrawing(mIsDrawing);
   mIsDrawing = true;
 
   float time = aWhichFrame == FRAME_FIRST ? 0.0f
                                           : mSVGDocumentWrapper->GetCurrentTime();
   AutoSVGRenderingState autoSVGState(aSVGContext,
                                      time,
                                      mSVGDocumentWrapper->GetRootSVGElem());