Bug 1233086, Part 1 - Unify alert image loading. r=seth a=lizzard
authorKit Cambridge <kcambridge@mozilla.com>
Mon, 27 Jun 2016 08:27:11 -0700
changeset 339847 6ec1c6ea122e5b4bc0be1af838cf57b6b0ccab0d
parent 339846 cc79c0fdd28e655a62363222b2970c9a994d779b
child 339848 810f076d748167fb4499a4053134b37907c9d73e
push id6249
push userjlund@mozilla.com
push dateMon, 01 Aug 2016 13:59:36 +0000
treeherdermozilla-beta@bad9d4f5bf7e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersseth, lizzard
bugs1233086
milestone49.0a2
Bug 1233086, Part 1 - Unify alert image loading. r=seth a=lizzard MozReview-Commit-ID: DSbJfH2FjYX
toolkit/components/alerts/AlertNotification.cpp
toolkit/components/alerts/AlertNotification.h
toolkit/components/alerts/nsIAlertsService.idl
toolkit/components/alerts/nsXULAlerts.h
toolkit/components/alerts/test/image.gif
toolkit/components/alerts/test/image.png
toolkit/components/alerts/test/image_server.sjs
toolkit/components/alerts/test/mochitest.ini
toolkit/components/alerts/test/test_image.html
--- a/toolkit/components/alerts/AlertNotification.cpp
+++ b/toolkit/components/alerts/AlertNotification.cpp
@@ -1,29 +1,32 @@
 /* This Source Code Form is subject to the terms of the Mozilla Pub
  * License, v. 2.0. If a copy of the MPL was not distributed with t
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "mozilla/AlertNotification.h"
 
+#include "imgIContainer.h"
+#include "imgINotificationObserver.h"
+#include "imgIRequest.h"
+#include "imgLoader.h"
 #include "nsAlertsUtils.h"
+#include "nsComponentManagerUtils.h"
+#include "nsContentUtils.h"
+#include "nsNetUtil.h"
+#include "nsServiceManagerUtils.h"
+
+#include "mozilla/unused.h"
 
 namespace mozilla {
 
-NS_IMPL_CYCLE_COLLECTION(AlertNotification, mPrincipal)
-NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AlertNotification)
-  NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAlertNotification)
-  NS_INTERFACE_MAP_ENTRY(nsIAlertNotification)
-NS_INTERFACE_MAP_END
-NS_IMPL_CYCLE_COLLECTING_ADDREF(AlertNotification)
-NS_IMPL_CYCLE_COLLECTING_RELEASE(AlertNotification)
+NS_IMPL_ISUPPORTS(AlertNotification, nsIAlertNotification)
 
 AlertNotification::AlertNotification()
   : mTextClickable(false)
-  , mPrincipal(nullptr)
   , mInPrivateBrowsing(false)
 {}
 
 AlertNotification::~AlertNotification()
 {}
 
 NS_IMETHODIMP
 AlertNotification::Init(const nsAString& aName, const nsAString& aImageURL,
@@ -143,9 +146,208 @@ AlertNotification::GetActionable(bool* a
 
 NS_IMETHODIMP
 AlertNotification::GetSource(nsAString& aSource)
 {
   nsAlertsUtils::GetSourceHostPort(mPrincipal, aSource);
   return NS_OK;
 }
 
+NS_IMETHODIMP
+AlertNotification::LoadImage(uint32_t aTimeout,
+                             nsIAlertNotificationImageListener* aListener,
+                             nsISupports* aUserData,
+                             nsICancelable** aRequest)
+{
+  NS_ENSURE_ARG(aListener);
+  NS_ENSURE_ARG_POINTER(aRequest);
+  *aRequest = nullptr;
+
+  // Exit early if this alert doesn't have an image.
+  if (mImageURL.IsEmpty()) {
+    return aListener->OnImageMissing(aUserData);
+  }
+  nsCOMPtr<nsIURI> imageURI;
+  NS_NewURI(getter_AddRefs(imageURI), mImageURL);
+  if (!imageURI) {
+    return aListener->OnImageMissing(aUserData);
+  }
+
+  RefPtr<AlertImageRequest> request = new AlertImageRequest(imageURI, mPrincipal,
+                                                            mInPrivateBrowsing,
+                                                            aTimeout, aListener,
+                                                            aUserData);
+  nsresult rv = request->Start();
+  request.forget(aRequest);
+  return rv;
+}
+
+NS_IMPL_CYCLE_COLLECTION(AlertImageRequest, mURI, mPrincipal, mListener,
+                         mUserData)
+
+NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AlertImageRequest)
+  NS_INTERFACE_MAP_ENTRY(imgINotificationObserver)
+  NS_INTERFACE_MAP_ENTRY(nsICancelable)
+  NS_INTERFACE_MAP_ENTRY(nsITimerCallback)
+  NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, imgINotificationObserver)
+NS_INTERFACE_MAP_END
+
+NS_IMPL_CYCLE_COLLECTING_ADDREF(AlertImageRequest)
+NS_IMPL_CYCLE_COLLECTING_RELEASE(AlertImageRequest)
+
+AlertImageRequest::AlertImageRequest(nsIURI* aURI, nsIPrincipal* aPrincipal,
+                                     bool aInPrivateBrowsing, uint32_t aTimeout,
+                                     nsIAlertNotificationImageListener* aListener,
+                                     nsISupports* aUserData)
+  : mURI(aURI)
+  , mPrincipal(aPrincipal)
+  , mInPrivateBrowsing(aInPrivateBrowsing)
+  , mTimeout(aTimeout)
+  , mListener(aListener)
+  , mUserData(aUserData)
+{}
+
+AlertImageRequest::~AlertImageRequest()
+{
+  if (mRequest) {
+    mRequest->CancelAndForgetObserver(NS_BINDING_ABORTED);
+  }
+}
+
+NS_IMETHODIMP
+AlertImageRequest::Notify(imgIRequest* aRequest, int32_t aType,
+                          const nsIntRect* aData)
+{
+  MOZ_ASSERT(aRequest == mRequest);
+
+  uint32_t imgStatus = imgIRequest::STATUS_ERROR;
+  nsresult rv = aRequest->GetImageStatus(&imgStatus);
+  if (NS_WARN_IF(NS_FAILED(rv)) ||
+      (imgStatus & imgIRequest::STATUS_ERROR)) {
+    return NotifyMissing();
+  }
+
+  // If the image is already decoded, `FRAME_COMPLETE` will fire before
+  // `LOAD_COMPLETE`, so we can notify the listener immediately. Otherwise,
+  // we'll need to request a decode when `LOAD_COMPLETE` fires, and wait
+  // for the first frame.
+
+  if (aType == imgINotificationObserver::LOAD_COMPLETE) {
+    if (!(imgStatus & imgIRequest::STATUS_FRAME_COMPLETE)) {
+      nsCOMPtr<imgIContainer> image;
+      rv = aRequest->GetImage(getter_AddRefs(image));
+      if (NS_WARN_IF(NS_FAILED(rv) || !image)) {
+        return NotifyMissing();
+      }
+
+      // Ask the image to decode at its intrinsic size.
+      int32_t width = 0, height = 0;
+      image->GetWidth(&width);
+      image->GetHeight(&height);
+      image->RequestDecodeForSize(gfx::IntSize(width, height), imgIContainer::FLAG_NONE);
+    }
+    return NS_OK;
+  }
+
+  if (aType == imgINotificationObserver::FRAME_COMPLETE) {
+    return NotifyComplete();
+  }
+
+  return NS_OK;
+}
+
+NS_IMETHODIMP
+AlertImageRequest::Notify(nsITimer* aTimer)
+{
+  MOZ_ASSERT(aTimer == mTimer);
+  return NotifyMissing();
+}
+
+NS_IMETHODIMP
+AlertImageRequest::Cancel(nsresult aReason)
+{
+  if (mRequest) {
+    mRequest->Cancel(aReason);
+  }
+  // We call `NotifyMissing` here because we won't receive a `LOAD_COMPLETE`
+  // notification if we cancel the request before it loads (bug 1233086,
+  // comment 33). Once that's fixed, `nsIAlertNotification::loadImage` could
+  // return the underlying `imgIRequest` instead of the wrapper.
+  return NotifyMissing();
+}
+
+nsresult
+AlertImageRequest::Start()
+{
+  // Keep the request alive until we notify the image listener.
+  NS_ADDREF_THIS();
+
+  nsresult rv;
+  if (mTimeout > 0) {
+    mTimer = do_CreateInstance(NS_TIMER_CONTRACTID);
+    if (NS_WARN_IF(!mTimer)) {
+      return NotifyMissing();
+    }
+    rv = mTimer->InitWithCallback(this, mTimeout,
+                                  nsITimer::TYPE_ONE_SHOT);
+    if (NS_WARN_IF(NS_FAILED(rv))) {
+      return NotifyMissing();
+    }
+  }
+
+  // Begin loading the image.
+  imgLoader* il = imgLoader::NormalLoader();
+  if (!il) {
+    return NotifyMissing();
+  }
+
+  // Bug 1237405: `LOAD_ANONYMOUS` disables cookies, but we want to use a
+  // temporary cookie jar instead. We should also use
+  // `imgLoader::PrivateBrowsingLoader()` instead of the normal loader.
+  // Unfortunately, the PB loader checks the load group, and asserts if its
+  // load context's PB flag isn't set. The fix is to pass the load group to
+  // `nsIAlertNotification::loadImage`.
+  int32_t loadFlags = mInPrivateBrowsing ? nsIRequest::LOAD_ANONYMOUS :
+                      nsIRequest::LOAD_NORMAL;
+
+  rv = il->LoadImageXPCOM(mURI, nullptr, nullptr,
+                          NS_LITERAL_STRING("default"), mPrincipal, nullptr,
+                          this, nullptr, loadFlags, nullptr,
+                          nsIContentPolicy::TYPE_INTERNAL_IMAGE,
+                          getter_AddRefs(mRequest));
+  if (NS_WARN_IF(NS_FAILED(rv))) {
+    return NotifyMissing();
+  }
+
+  return NS_OK;
+}
+
+nsresult
+AlertImageRequest::NotifyMissing()
+{
+  if (mTimer) {
+    mTimer->Cancel();
+    mTimer = nullptr;
+  }
+  if (nsCOMPtr<nsIAlertNotificationImageListener> listener = mListener.forget()) {
+    nsresult rv = listener->OnImageMissing(mUserData);
+    NS_RELEASE_THIS();
+    return rv;
+  }
+  return NS_OK;
+}
+
+nsresult
+AlertImageRequest::NotifyComplete()
+{
+  if (mTimer) {
+    mTimer->Cancel();
+    mTimer = nullptr;
+  }
+  if (nsCOMPtr<nsIAlertNotificationImageListener> listener = mListener.forget()) {
+    nsresult rv = listener->OnImageReady(mUserData, mRequest);
+    NS_RELEASE_THIS();
+    return rv;
+  }
+  return NS_OK;
+}
+
 } // namespace mozilla
--- a/toolkit/components/alerts/AlertNotification.h
+++ b/toolkit/components/alerts/AlertNotification.h
@@ -1,29 +1,65 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef mozilla_AlertNotification_h__
 #define mozilla_AlertNotification_h__
 
+#include "imgINotificationObserver.h"
 #include "nsIAlertsService.h"
 #include "nsCOMPtr.h"
 #include "nsCycleCollectionParticipant.h"
+#include "nsICancelable.h"
 #include "nsIPrincipal.h"
 #include "nsString.h"
+#include "nsITimer.h"
 
 namespace mozilla {
 
+class AlertImageRequest final : public imgINotificationObserver,
+                                public nsICancelable,
+                                public nsITimerCallback
+{
+public:
+  NS_DECL_CYCLE_COLLECTING_ISUPPORTS
+  NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(AlertImageRequest,
+                                           imgINotificationObserver)
+  NS_DECL_IMGINOTIFICATIONOBSERVER
+  NS_DECL_NSICANCELABLE
+  NS_DECL_NSITIMERCALLBACK
+
+  AlertImageRequest(nsIURI* aURI, nsIPrincipal* aPrincipal,
+                    bool aInPrivateBrowsing, uint32_t aTimeout,
+                    nsIAlertNotificationImageListener* aListener,
+                    nsISupports* aUserData);
+
+  nsresult Start();
+
+private:
+  virtual ~AlertImageRequest();
+
+  nsresult NotifyMissing();
+  nsresult NotifyComplete();
+
+  nsCOMPtr<nsIURI> mURI;
+  nsCOMPtr<nsIPrincipal> mPrincipal;
+  bool mInPrivateBrowsing;
+  uint32_t mTimeout;
+  nsCOMPtr<nsIAlertNotificationImageListener> mListener;
+  nsCOMPtr<nsISupports> mUserData;
+  nsCOMPtr<nsITimer> mTimer;
+  nsCOMPtr<imgIRequest> mRequest;
+};
+
 class AlertNotification final : public nsIAlertNotification
 {
 public:
-  NS_DECL_CYCLE_COLLECTING_ISUPPORTS
-  NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(AlertNotification,
-                                           nsIAlertNotification)
+  NS_DECL_ISUPPORTS
   NS_DECL_NSIALERTNOTIFICATION
   AlertNotification();
 
 protected:
   virtual ~AlertNotification();
 
 private:
   nsString mName;
--- a/toolkit/components/alerts/nsIAlertsService.idl
+++ b/toolkit/components/alerts/nsIAlertsService.idl
@@ -1,24 +1,46 @@
 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsISupports.idl"
 #include "nsIObserver.idl"
 
+interface imgIRequest;
+interface nsICancelable;
 interface nsIPrincipal;
 interface nsIURI;
 
 %{C++
 #define ALERT_NOTIFICATION_CONTRACTID "@mozilla.org/alert-notification;1"
 %}
 
-[scriptable, uuid(1650a064-79d5-4eb6-8c9e-57dd6522b6ac)]
+[scriptable, uuid(a71a637d-de1d-47c6-a8d2-c60b2596f471)]
+interface nsIAlertNotificationImageListener : nsISupports
+{
+  /**
+   * Called when the image finishes loading.
+   *
+   * @param userData An opaque parameter passed to |loadImage|.
+   * @param request  The image request.
+   */
+  void onImageReady(in nsISupports userData, in imgIRequest request);
+
+  /**
+   * Called if the alert doesn't have an image, or if the image request times
+   * out or fails.
+   *
+   * @param userData An opaque parameter passed to |loadImage|.
+   */
+  void onImageMissing(in nsISupports userData);
+};
+
+[scriptable, uuid(cf2e4cb6-4b8f-4eca-aea9-d51a8f9f7a50)]
 interface nsIAlertNotification : nsISupports
 {
   /** Initializes an alert notification. */
   void init([optional] in AString name,
             [optional] in AString imageURL,
             [optional] in AString title,
             [optional] in AString text,
             [optional] in boolean textClickable,
@@ -88,33 +110,49 @@ interface nsIAlertNotification : nsISupp
 
   /**
    * The URI of the page that created the alert. |null| if the alert is not
    * actionable.
    */
   readonly attribute nsIURI URI;
 
   /**
-   * Controls the image loading behavior. If true, the image URL will be loaded
-   * in private browsing mode.
+   * Controls the image loading behavior. If true, the image request will be
+   * loaded anonymously (without cookies or authorization tokens).
    */
   readonly attribute boolean inPrivateBrowsing;
 
   /**
    * Indicates whether this alert should show the source string and action
    * buttons. False for system alerts (which can omit the principal), or
    * expanded, system, and null principals.
    */
   readonly attribute boolean actionable;
 
   /**
    * The host and port of the originating page, or an empty string if the alert
    * is not actionable.
    */
   readonly attribute AString source;
+
+  /**
+   * Loads the image associated with this alert.
+   *
+   * @param timeout  The number of milliseconds to wait before cancelling the
+   *                 image request. If zero, there is no timeout.
+   * @param listener An |nsIAlertNotificationImageListener| implementation,
+   *                 notified when the image loads. The listener is kept alive
+   *                 until the request completes.
+   * @param userData An opaque parameter passed to the listener's methods.
+   *                 Not used by the libnotify backend, but the OS X backend
+   *                 passes the pending notification.
+   */
+  nsICancelable loadImage(in unsigned long timeout,
+                          in nsIAlertNotificationImageListener listener,
+                          [optional] in nsISupports userData);
 };
 
 [scriptable, uuid(f7a36392-d98b-4141-a7d7-4e46642684e3)]
 interface nsIAlertsService : nsISupports
 {
   void showAlert(in nsIAlertNotification alert,
                  [optional] in nsIObserver alertListener);
   /**
--- a/toolkit/components/alerts/nsXULAlerts.h
+++ b/toolkit/components/alerts/nsXULAlerts.h
@@ -1,16 +1,17 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsXULAlerts_h__
 #define nsXULAlerts_h__
 
+#include "nsCycleCollectionParticipant.h"
 #include "nsHashKeys.h"
 #include "nsInterfaceHashtable.h"
 
 #include "mozIDOMWindow.h"
 #include "nsIObserver.h"
 
 class nsXULAlerts : public nsIAlertsService,
                     public nsIAlertsDoNotDisturb,
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..053b4d926190df542e937b8cc015876fa72ee8bb
GIT binary patch
literal 60901
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
F{sS~^bAkW>
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..430c3c5e654cec3042f36f7c9e7230e58b96b9e6
GIT binary patch
literal 2531
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
new file mode 100644
--- /dev/null
+++ b/toolkit/components/alerts/test/image_server.sjs
@@ -0,0 +1,82 @@
+const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr, Constructor: CC } = Components;
+
+Cu.import("resource://gre/modules/Timer.jsm");
+
+const LocalFile = CC("@mozilla.org/file/local;1", "nsILocalFile",
+                     "initWithPath");
+
+const FileInputStream = CC("@mozilla.org/network/file-input-stream;1",
+                           "nsIFileInputStream", "init");
+
+const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
+                             "nsIBinaryInputStream", "setInputStream");
+
+function handleRequest(request, response) {
+  let params = parseQueryString(request.queryString);
+
+  response.setStatusLine(request.httpVersion, 200, "OK");
+
+  // Compare and increment a cookie for this request. This is used to test
+  // private browsing mode; the cookie should not be set if the image is
+  // loaded anonymously.
+  if (params.has("c")) {
+    let expectedValue = parseInt(params.get("c"), 10);
+    let actualValue = !request.hasHeader("Cookie") ? 0 :
+                      parseInt(request.getHeader("Cookie")
+                                      .replace(/^counter=(\d+)/, "$1"), 10);
+    if (actualValue != expectedValue) {
+      response.setStatusLine(request.httpVersion, 400, "Wrong counter value");
+      return;
+    }
+    response.setHeader("Set-Cookie", `counter=${expectedValue + 1}`, false);
+  }
+
+  // Wait to send the image if a timeout is given.
+  let timeout = parseInt(params.get("t"), 10);
+  if (timeout > 0) {
+    response.processAsync();
+    setTimeout(() => {
+      respond(params, request, response);
+      response.finish();
+    }, timeout * 1000);
+    return;
+  }
+
+  respond(params, request, response);
+}
+
+function parseQueryString(queryString) {
+  return queryString.split("&").reduce((params, param) => {
+    let [key, value] = param.split("=", 2);
+    params.set(key, value);
+    return params;
+  }, new Map());
+}
+
+function respond(params, request, response) {
+  if (params.has("s")) {
+    let statusCode = parseInt(params.get("s"), 10);
+    response.setStatusLine(request.httpVersion, statusCode, "Custom status");
+    return;
+  }
+  var filename = params.get("f");
+  writeFile(filename, response);
+}
+
+function writeFile(name, response) {
+  var file = new LocalFile(getState("__LOCATION__")).parent;
+  file.append(name);
+
+  let mimeType = Cc["@mozilla.org/uriloader/external-helper-app-service;1"]
+                   .getService(Ci.nsIMIMEService)
+                   .getTypeFromFile(file);
+
+  let fileStream = new FileInputStream(file, 1, 0, false);
+  let binaryStream = new BinaryInputStream(fileStream);
+
+  response.setHeader("Content-Type", mimeType, false);
+  response.bodyOutputStream.writeFrom(binaryStream, binaryStream.available());
+
+  binaryStream.close();
+  fileStream.close();
+}
--- a/toolkit/components/alerts/test/mochitest.ini
+++ b/toolkit/components/alerts/test/mochitest.ini
@@ -1,11 +1,16 @@
 [DEFAULT]
 skip-if = buildapp == 'b2g' || buildapp == 'mulet'
+support-files =
+  image.gif
+  image.png
+  image_server.sjs
 
 # Synchronous tests like test_alerts.html must come before
 # asynchronous tests like test_alerts_noobserve.html!
 [test_alerts.html]
 skip-if = toolkit == 'android'
 [test_alerts_noobserve.html]
+[test_image.html]
 [test_multiple_alerts.html]
 [test_principal.html]
 skip-if = toolkit == 'android'
new file mode 100644
--- /dev/null
+++ b/toolkit/components/alerts/test/test_image.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Test for Bug 1233086</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+
+<body>
+<p id="display"></p>
+
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+const Cc = SpecialPowers.Cc;
+const Ci = SpecialPowers.Ci;
+const Services = SpecialPowers.Services;
+
+const imageServerURL = "http://mochi.test:8888/tests/toolkit/components/alerts/test/image_server.sjs";
+
+function makeAlert(...params) {
+  var alert = Cc["@mozilla.org/alert-notification;1"]
+                .createInstance(Ci.nsIAlertNotification);
+  alert.init(...params);
+  return alert;
+}
+
+function promiseImage(alert, timeout = 0, userData = null) {
+  return new Promise(resolve => {
+    var isDone = false;
+    function done(value) {
+      ok(!isDone, "Should call the image listener once");
+      isDone = true;
+      resolve(value);
+    }
+    alert.loadImage(timeout, SpecialPowers.wrapCallbackObject({
+      onImageReady(userData, request) {
+        done([true, request, userData]);
+      },
+      onImageMissing(userData) {
+        done([false, userData]);
+      },
+    }), SpecialPowers.wrap(userData));
+  });
+}
+
+add_task(function* testContext() {
+  var inUserData = Cc["@mozilla.org/supports-PRInt64;1"]
+                     .createInstance(Ci.nsISupportsPRInt64);
+  inUserData.data = 123;
+
+  var alert = makeAlert(null, imageServerURL + "?f=image.png");
+  var [ready, request, userData] = yield promiseImage(alert, 0, inUserData);
+  ok(ready, "Should load requested image");
+  is(userData.QueryInterface(Ci.nsISupportsPRInt64).data, 123,
+     "Should pass user data for loaded image");
+
+  alert = makeAlert(null, imageServerURL + "?s=404");
+  [ready, userData] = yield promiseImage(alert, 0, inUserData);
+  ok(!ready, "Should not load missing image");
+  is(userData.QueryInterface(Ci.nsISupportsPRInt64).data, 123,
+     "Should pass user data for missing image");
+});
+
+add_task(function* testTimeout() {
+  var alert = makeAlert(null, imageServerURL + "?f=image.png&t=3");
+  var [ready] = yield promiseImage(alert, 1000);
+  ok(!ready, "Should cancel request if timeout fires");
+
+  [ready, request] = yield promiseImage(alert, 45000);
+  ok(ready, "Should load image if request finishes before timeout");
+});
+
+add_task(function* testAnimatedGIF() {
+  var alert = makeAlert(null, imageServerURL + "?f=image.gif");
+  var [ready, request] = yield promiseImage(alert);
+  ok(ready, "Should load first animated GIF frame");
+  is(request.mimeType, "image/gif", "Should report correct GIF MIME type");
+  is(request.image.width, 256, "GIF width should be 256px");
+  is(request.image.height, 256, "GIF height should be 256px");
+});
+
+add_task(function* testCancel() {
+  var alert = makeAlert(null, imageServerURL + "?f=image.gif&t=180");
+  yield new Promise((resolve, reject) => {
+    var request = alert.loadImage(0, SpecialPowers.wrapCallbackObject({
+      onImageReady(userData, request) {
+        reject(new Error("Should not load cancelled request"));
+      },
+      onImageMissing(userData) {
+        resolve();
+      },
+    }), null);
+    request.cancel(SpecialPowers.Cr.NS_BINDING_ABORTED);
+  });
+});
+
+add_task(function* testMixedContent() {
+  // Loading principal is HTTPS; image URL is HTTP.
+  var origin = "https://mochi.test:8888";
+  var principal = Services.scriptSecurityManager
+                          .createCodebasePrincipalFromOrigin(origin);
+
+  var alert = makeAlert(null, imageServerURL + "?f=image.png",
+                        null, null, false, null, null, null,
+                        null, principal);
+  var [ready, request] = yield promiseImage(alert);
+  ok(ready, "Should load cross-protocol image");
+  is(request.mimeType, "image/png", "Should report correct MIME type");
+  is(request.image.width, 32, "Width should be 32px");
+  is(request.image.height, 32, "Height should be 32px");
+});
+
+</script>
+</pre>
+</body>
+</html>