Tests for bug 359608 - Animated GIFs are animated even when user navigates to another page.r=joe,a=blocker
authorAlon Zakai <azakai@mozilla.com>
Tue, 07 Sep 2010 17:34:18 -0700
changeset 52150 7fda546db6a6b671f3baebcf02e470d6ea88ae7b
parent 52149 fd33aa85de93cd0ff059b48f40b28d67438804b8
child 52151 d91b0d9fd0a2548fcd6dd60227bbe7e52cac132b
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
reviewersjoe, blocker
bugs359608
milestone2.0b6pre
Tests for bug 359608 - Animated GIFs are animated even when user navigates to another page.r=joe,a=blocker
modules/libpr0n/public/Makefile.in
modules/libpr0n/public/imgIContainerDebug.idl
modules/libpr0n/src/RasterImage.cpp
modules/libpr0n/src/RasterImage.h
modules/libpr0n/test/Makefile.in
modules/libpr0n/test/browser/Makefile.in
modules/libpr0n/test/browser/animated.gif
modules/libpr0n/test/browser/browser_image.js
modules/libpr0n/test/browser/head.js
modules/libpr0n/test/browser/image.html
modules/libpr0n/test/browser/imageX2.html
--- a/modules/libpr0n/public/Makefile.in
+++ b/modules/libpr0n/public/Makefile.in
@@ -45,16 +45,17 @@ include $(DEPTH)/config/autoconf.mk
 MODULE		= imglib2
 GRE_MODULE	= 1
 
 EXPORTS		= ImageErrors.h ImageLogging.h
 
 XPIDLSRCS	= \
 		imgICache.idl             \
 		imgIContainer.idl         \
+		imgIContainerDebug.idl    \
 		imgIContainerObserver.idl \
 		imgIDecoderObserver.idl   \
 		imgIEncoder.idl           \
 		imgILoader.idl            \
 		imgIRequest.idl           \
 		imgITools.idl             \
 		$(NULL)
 
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/public/imgIContainerDebug.idl
@@ -0,0 +1,58 @@
+/** -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Mozilla Foundation.
+ * Portions created by the Initial Developer are Copyright (C) 2010
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Alon Zakai <azakai@mozilla.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "nsISupports.idl"
+
+/**
+ * This interface is used in debug builds (and only there) in
+ * order to let automatic tests running JavaScript access
+ * internal state of imgContainers. This lets us test
+ * things like animation.
+ */
+[scriptable, uuid(52cbb839-6e63-4a70-b21a-1db4ca706c49)]
+interface imgIContainerDebug : nsISupports
+{
+  /**
+   * The # of frames this imgContainer has been notified about.
+   * That is equal to the # of times the animation timer has
+   * fired, and is usually equal to the # of frames actually
+   * drawn (but actual drawing might be disabled).
+   */
+  readonly attribute PRUint32 framesNotified;
+};
--- a/modules/libpr0n/src/RasterImage.cpp
+++ b/modules/libpr0n/src/RasterImage.cpp
@@ -161,31 +161,39 @@ DiscardingEnabled()
   }
 
   return enabled;
 }
 
 namespace mozilla {
 namespace imagelib {
 
+#ifndef DEBUG
 NS_IMPL_ISUPPORTS4(RasterImage, imgIContainer, nsITimerCallback, nsIProperties,
                    nsISupportsWeakReference)
+#else
+NS_IMPL_ISUPPORTS5(RasterImage, imgIContainer, nsITimerCallback, nsIProperties,
+                   imgIContainerDebug, nsISupportsWeakReference)
+#endif
 
 //******************************************************************************
 RasterImage::RasterImage(imgStatusTracker* aStatusTracker) :
   Image(aStatusTracker), // invoke superclass's constructor
   mSize(0,0),
   mAnim(nsnull),
   mAnimationMode(kNormalAnimMode),
   mLoopCount(-1),
   mObserver(nsnull),
   mLockCount(0),
   mDecoder(nsnull),
   mWorker(nsnull),
   mBytesDecoded(0),
+#ifdef DEBUG
+  mFramesNotified(0),
+#endif
   mHasSize(PR_FALSE),
   mDecodeOnDraw(PR_FALSE),
   mMultipart(PR_FALSE),
   mDiscardable(PR_FALSE),
   mHasSourceData(PR_FALSE),
   mDecoded(PR_FALSE),
   mHasBeenDecoded(PR_FALSE),
   mWorkerPending(PR_FALSE),
@@ -1401,16 +1409,20 @@ RasterImage::SetSourceSizeHint(PRUint32 
   return NS_OK;
 }
 
 //******************************************************************************
 /* void notify(in nsITimer timer); */
 NS_IMETHODIMP
 RasterImage::Notify(nsITimer *timer)
 {
+#ifdef DEBUG
+  mFramesNotified++;
+#endif
+
   // This should never happen since the timer is only set up in StartAnimation()
   // after mAnim is checked to exist.
   NS_ABORT_IF_FALSE(mAnim, "Need anim for Notify()");
   NS_ABORT_IF_FALSE(timer, "Need timer for Notify()");
   NS_ABORT_IF_FALSE(mAnim->timer == timer,
                     "RasterImage::Notify() called with incorrect timer");
 
   if (!mAnimating || !ShouldAnimate())
@@ -2727,10 +2739,24 @@ RasterImage::WriteToRasterImage(nsIInput
 
 PRBool
 RasterImage::ShouldAnimate()
 {
   return Image::ShouldAnimate() && mFrames.Length() >= 2 &&
          mAnimationMode != kDontAnimMode && !mAnimationFinished;
 }
 
+//******************************************************************************
+/* readonly attribute PRUint32 framesNotified; */
+#ifdef DEBUG
+NS_IMETHODIMP
+RasterImage::GetFramesNotified(PRUint32 *aFramesNotified)
+{
+  NS_ENSURE_ARG_POINTER(aFramesNotified);
+
+  *aFramesNotified = mFramesNotified;
+
+  return NS_OK;
+}
+#endif
+
 } // namespace imagelib
 } // namespace mozilla
--- a/modules/libpr0n/src/RasterImage.h
+++ b/modules/libpr0n/src/RasterImage.h
@@ -59,16 +59,19 @@
 #include "imgIContainer.h"
 #include "nsIProperties.h"
 #include "nsITimer.h"
 #include "nsWeakReference.h"
 #include "nsTArray.h"
 #include "imgFrame.h"
 #include "nsThreadUtils.h"
 #include "DiscardTracker.h"
+#ifdef DEBUG
+  #include "imgIContainerDebug.h"
+#endif
 
 class imgIDecoder;
 class nsIInputStream;
 
 #define NS_RASTERIMAGE_CID \
 { /* 376ff2c1-9bf6-418a-b143-3340c00112f7 */         \
      0x376ff2c1,                                     \
      0x9bf6,                                         \
@@ -140,26 +143,32 @@ class nsIInputStream;
  */
 
 namespace mozilla {
 namespace imagelib {
 
 class imgDecodeWorker;
 class Decoder;
 
-class RasterImage : public mozilla::imagelib::Image,
-                    public nsITimerCallback,
-                    public nsIProperties,
-                    public nsSupportsWeakReference
+class RasterImage : public mozilla::imagelib::Image
+                  , public nsITimerCallback
+                  , public nsIProperties
+                  , public nsSupportsWeakReference
+#ifdef DEBUG
+                  , public imgIContainerDebug
+#endif
 {
 public:
   NS_DECL_ISUPPORTS
   NS_DECL_IMGICONTAINER
   NS_DECL_NSITIMERCALLBACK
   NS_DECL_NSIPROPERTIES
+#ifdef DEBUG
+  NS_DECL_IMGICONTAINERDEBUG
+#endif
 
   RasterImage(imgStatusTracker* aStatusTracker = nsnull);
   virtual ~RasterImage();
 
   virtual nsresult StartAnimation();
   virtual nsresult StopAnimation();
 
   // C++-only version of imgIContainer::GetType, for convenience
@@ -468,16 +477,20 @@ private: // data
   friend class imgDecodeWorker;
   friend class DiscardTracker;
 
   // Decoder and friends
   nsRefPtr<Decoder>              mDecoder;
   nsRefPtr<imgDecodeWorker>      mWorker;
   PRUint32                       mBytesDecoded;
 
+#ifdef DEBUG
+  PRUint32                       mFramesNotified;
+#endif
+
   // Boolean flags (clustered together to conserve space):
   PRPackedBool               mHasSize:1;       // Has SetSize() been called?
   PRPackedBool               mDecodeOnDraw:1;  // Decoding on draw?
   PRPackedBool               mMultipart:1;     // Multipart?
   PRPackedBool               mDiscardable:1;   // Is container discardable?
   PRPackedBool               mHasSourceData:1; // Do we have source data?
 
   // Do we have the frames in decoded form?
--- a/modules/libpr0n/test/Makefile.in
+++ b/modules/libpr0n/test/Makefile.in
@@ -43,11 +43,13 @@ relativesrcdir  = modules/libpr0n/test
 
 include $(DEPTH)/config/autoconf.mk
 
 # Module name for xpcshell tests.
 MODULE		= test_libpr0n
 
 XPCSHELL_TESTS  = unit
 
-DIRS            += mochitest
+DIRS += mochitest \
+        browser \
+        $(NULL)
 
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/test/browser/Makefile.in
@@ -0,0 +1,55 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is mozilla.org code.
+#
+# The Initial Developer of the Original Code is
+# the Mozilla Foundation.
+# Portions created by the Initial Developer are Copyright (C) 2008
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either of the GNU General Public License Version 2 or later (the "GPL"),
+# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+DEPTH		= ../../../..
+topsrcdir	= @top_srcdir@
+srcdir		= @srcdir@
+VPATH		= @srcdir@
+relativesrcdir  = modules/libpr0n/test/browser
+
+include $(DEPTH)/config/autoconf.mk
+include $(topsrcdir)/config/rules.mk
+
+_BROWSER_FILES = head.js \
+                 browser_image.js \
+                 image.html \
+                 imageX2.html \
+                 animated.gif \
+                 $(NULL)
+
+libs::	$(_BROWSER_FILES)
+	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir)
+
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..eb034e1501ae59740f66e877e171cb9364c6f4d0
GIT binary patch
literal 71479
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
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/test/browser/browser_image.js
@@ -0,0 +1,175 @@
+waitForExplicitFinish();
+
+// A hold on the current timer, so it doens't get GCed out from
+// under us
+var gTimer;
+
+// Browsing to a new URL - pushing us into the bfcache - should cause
+// animations to stop, and resume when we return
+function testBFCache() {
+  function theTest() {
+    var abort = false;
+    var chances, gImage, gFrames;
+    gBrowser.selectedTab = gBrowser.addTab();
+    switchToTabHavingURI(TESTROOT + "image.html", true, function(aBrowser) {
+      var window = aBrowser.contentWindow;
+      // If false, we are in an optimized build, and we abort this and
+      // all further tests
+      if (!actOnMozImage(window.document, "img1", function(image) {
+        gImage = image;
+        gFrames = gImage.framesNotified;
+      })) {
+        gBrowser.removeCurrentTab();
+        abort = true;
+      }
+      goer.next();
+    });
+    yield;
+    if (abort) {
+      finish();
+      yield; // optimized build
+    }
+
+    // Let animation run for a bit
+    chances = 120;
+    do {
+      gTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+      gTimer.initWithCallback(function() {
+        if (gImage.framesNotified >= 10) {
+          goer.send(true);
+        } else {
+          chances--;
+          goer.send(chances == 0); // maybe if we wait a bit, it will happen
+        }
+      }, 500, Ci.nsITimer.TYPE_ONE_SHOT);
+    } while (!(yield));
+    is(chances > 0, true, "Must have animated a few frames so far");
+
+    // Browse elsewhere; push our animating page into the bfcache
+    gBrowser.loadURI("about:blank");
+
+    // Wait a bit for page to fully load, then wait a while and
+    // see that no animation occurs.
+    gTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+    gTimer.initWithCallback(function() {
+      gFrames = gImage.framesNotified;
+      gTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+      gTimer.initWithCallback(function() {
+        // Might have a few stray frames, until other page totally loads
+        is(gImage.framesNotified == gFrames, true, "Must have not animated in bfcache!");
+        goer.next();
+      }, 4000, Ci.nsITimer.TYPE_ONE_SHOT);
+    }, 0, Ci.nsITimer.TYPE_ONE_SHOT); // delay of 0 - wait for next event loop
+    yield;
+
+    // Go back
+    gBrowser.goBack();
+
+    chances = 120;
+    do {
+      gTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+      gTimer.initWithCallback(function() {
+        if (gImage.framesNotified - gFrames >= 10) {
+          goer.send(true);
+        } else {
+          chances--;
+          goer.send(chances == 0); // maybe if we wait a bit, it will happen
+        }
+      }, 500, Ci.nsITimer.TYPE_ONE_SHOT);
+    } while (!(yield));
+    is(chances > 0, true, "Must have animated once out of bfcache!");
+
+    gBrowser.removeCurrentTab();
+
+    nextTest();
+  }
+
+  var goer = theTest();
+  goer.next();
+}
+
+// Check that imgContainers are shared on the same page and
+// between tabs
+function testSharedContainers() {
+  function theTest() {
+    var gImages = [];
+    var gFrames;
+
+    gBrowser.selectedTab = gBrowser.addTab();
+    switchToTabHavingURI(TESTROOT + "image.html", true, function(aBrowser) {
+      actOnMozImage(aBrowser.contentWindow.window.document, "img1", function(image) {
+        gImages[0] = image;
+        gFrames = image.framesNotified; // May in theory have frames from last test
+                                        // in this counter - so subtract them out
+      });
+      goer.next();
+    });
+    yield;
+
+    // Load next tab somewhat later
+    gTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+    gTimer.initWithCallback(function() {
+      gBrowser.selectedTab = gBrowser.addTab();
+      goer.next();
+    }, 1500, Ci.nsITimer.TYPE_ONE_SHOT);
+    yield;
+
+    switchToTabHavingURI(TESTROOT + "imageX2.html", true, function(aBrowser) {
+      [1,2].forEach(function(i) {
+        actOnMozImage(aBrowser.contentWindow.window.document, "img"+i, function(image) {
+          gImages[i] = image;
+        });
+      });
+      goer.next();
+    });
+    yield;
+
+    chances = 120;
+    do {
+      gTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+      gTimer.initWithCallback(function() {
+        if (gImages[0].framesNotified - gFrames >= 10) {
+          goer.send(true);
+        } else {
+          chances--;
+          goer.send(chances == 0); // maybe if we wait a bit, it will happen
+        }
+      }, 500, Ci.nsITimer.TYPE_ONE_SHOT);
+    } while (!(yield));
+    is(chances > 0, true, "Must have been animating while showing several images");
+
+    // Check they all have the same frame counts
+    var theFrames = null;
+    [0,1,2].forEach(function(i) {
+      var frames = gImages[i].framesNotified;
+      if (theFrames == null) {
+        theFrames = frames;
+      } else {
+        is(theFrames, frames, "Sharing the same imgContainer means *exactly* the same frame counts!");
+      }
+    });
+
+    gBrowser.removeCurrentTab();
+    gBrowser.removeCurrentTab();
+
+    nextTest();
+  }
+
+  var goer = theTest();
+  goer.next();
+}
+
+var tests = [testBFCache, testSharedContainers];
+
+function nextTest() {
+  if (tests.length == 0) {
+    finish();
+    return;
+  }
+  tests.shift()();
+}
+
+function test() {
+  nextTest();
+}
+
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/test/browser/head.js
@@ -0,0 +1,41 @@
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cu = Components.utils;
+
+const RELATIVE_DIR = "modules/libpr0n/test/browser/";
+const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
+const TESTROOT2 = "http://example.org/browser/" + RELATIVE_DIR;
+const CHROMEROOT = "chrome://mochikit/content/browser/" + RELATIVE_DIR;
+
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+
+function getImageLoading(doc, id) {
+  var htmlImg = doc.getElementById(id);
+  return htmlImg.QueryInterface(Ci.nsIImageLoadingContent);
+}
+
+// Tries to get the Moz debug image, imgIContainerDebug. Only works
+// in a debug build. If we succeed, we call func().
+function actOnMozImage(doc, id, func) {
+  var imgContainer = getImageLoading(doc, id).getRequest(Ci.nsIImageLoadingContent.CURRENT_REQUEST).image;
+  var mozImage;
+  try {
+    mozImage = imgContainer.QueryInterface(Ci.imgIContainerDebug);
+  }
+  catch (e) {
+    return false;
+  }
+  func(mozImage);
+  return true;
+}
+
+function awaitImageContainer(doc, id, func) {
+  getImageLoading(doc, id).addObserver({
+    QueryInterface: XPCOMUtils.generateQI([Ci.imgIDecoderObserver]),
+    onStartContainer: function(aRequest, aContainer) {
+      getImageLoading(doc, id).removeObserver(this);
+      func(aContainer);
+    },
+  });
+}
+
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/test/browser/image.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html>
+  <head>
+    <title>Imagelib2 animation tests</title>
+  </head>
+<body>
+  <p>Page with image</p>
+  <img src="animated.gif" id="img1">
+</body>
+</html>
+
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/test/browser/imageX2.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html>
+  <head>
+    <title>Imagelib2 animation tests</title>
+  </head>
+<body>
+  <p>Page with images</p>
+  <img src="animated.gif" id="img1">
+  <br>
+  <img src="animated.gif" id="img2">
+</body>
+</html>
+