From b2e7fd1d96d58de3430ca6ca3a528817724d00c8 Mon Sep 17 00:00:00 2001 From: Joe Drew Date: Tue, 11 Sep 2012 14:03:52 -0400 Subject: [PATCH] Bug 787899 - Don't cancel the loading of a multipart/x-mixed-replace stream of we fail to initialize a part. r=jrmuizel --- image/src/imgRequest.cpp | 5 +++- image/test/mochitest/Makefile.in | 3 +++ image/test/mochitest/bad.jpg | Bin 0 -> 2477 bytes image/test/mochitest/bug733553.sjs | 7 ++++- image/test/mochitest/rillybad.jpg | Bin 0 -> 11142 bytes image/test/mochitest/test_bug733553.html | 31 +++++++++++++++-------- 6 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 image/test/mochitest/bad.jpg create mode 100644 image/test/mochitest/rillybad.jpg diff --git a/image/src/imgRequest.cpp b/image/src/imgRequest.cpp index d40ce08da2d5..71346af0ac7a 100644 --- a/image/src/imgRequest.cpp +++ b/image/src/imgRequest.cpp @@ -1105,7 +1105,10 @@ imgRequest::OnDataAvailable(nsIRequest *aRequest, nsISupports *ctxt, // instantiates a decoder behind the scenes, so if we don't have a decoder // for this mimetype we'll find out about it here. rv = mImage->Init(this, mContentType.get(), uriString.get(), imageFlags); - if (NS_FAILED(rv)) { // Probably bad mimetype + + // We allow multipart images to fail to initialize without cancelling the + // load because subsequent images might be fine. + if (NS_FAILED(rv) && !mIsMultiPartChannel) { // Probably bad mimetype this->Cancel(rv); return NS_BINDING_ABORTED; diff --git a/image/test/mochitest/Makefile.in b/image/test/mochitest/Makefile.in index d134360008a9..7ff03e06b314 100644 --- a/image/test/mochitest/Makefile.in +++ b/image/test/mochitest/Makefile.in @@ -58,6 +58,9 @@ MOCHITEST_FILES = imgutils.js \ bug733553.sjs \ bug733553-informant.sjs \ animated-gif2.gif \ + invalid.jpg \ + bad.jpg \ + rillybad.jpg \ test_bug767779.html \ bug767779.sjs \ animated-gif_trailing-garbage.gif \ diff --git a/image/test/mochitest/bad.jpg b/image/test/mochitest/bad.jpg new file mode 100644 index 0000000000000000000000000000000000000000..555a416d7d8e6c0f835a756994a8efca17c55cd8 GIT binary patch literal 2477 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 LYJvK_NxpvoIw+iI literal 0 HcmV?d00001 diff --git a/image/test/mochitest/bug733553.sjs b/image/test/mochitest/bug733553.sjs index 230ad231f022..46d4928cc618 100644 --- a/image/test/mochitest/bug733553.sjs +++ b/image/test/mochitest/bug733553.sjs @@ -14,7 +14,12 @@ var bodyParts = [ ["damon.jpg", "image/jpeg"], ["damon.jpg", "application/octet-stream"], ["damon.jpg", "image/jpeg"], - ["lime100x100.svg", "image/svg+xml"] + ["rillybad.jpg", "application/x-unknown-content-type"], + ["damon.jpg", "image/jpeg"], + ["bad.jpg", "image/jpeg"], + ["red.png", "image/png"], + ["invalid.jpg", "image/jpeg"], + ["animated-gif2.gif", "image/gif"] ]; var timer = Components.classes["@mozilla.org/timer;1"]; var partTimer = timer.createInstance(Components.interfaces.nsITimer); diff --git a/image/test/mochitest/rillybad.jpg b/image/test/mochitest/rillybad.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e2fb1d303f244a1825636b6360ac4f7e5fc0601a GIT binary patch literal 11142 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 AxBvhE literal 0 HcmV?d00001 diff --git a/image/test/mochitest/test_bug733553.html b/image/test/mochitest/test_bug733553.html index dc9627e704d9..2d0cf409a5e0 100644 --- a/image/test/mochitest/test_bug733553.html +++ b/image/test/mochitest/test_bug733553.html @@ -28,7 +28,19 @@ var testParts = [ [1, "red.png"], [80, "damon.jpg"], [80, "damon.jpg"], - [80, "damon.jpg"] + [80, "damon.jpg"], + // An invalid image (from bug 787899) that is further delivered with a + // "special" bad MIME type that indicates that the necko + // multipart/x-mixed-replace parser wasn't able to parse it. + [0, "rillybad.jpg"], + // Bad.jpg is bad such that it sniffs as a JPEG, and therefore doesn't change + // what's been decoded (since the RasterImage isn't deleted), so its width + // needs to be the same as the previous image. + [80, "damon.jpg"], + [80, "bad.jpg"], + [1, "red.png"], + [0, "invalid.jpg"], + [40, "animated-gif2.gif"] ]; // We'll append the part number to this, and tell the informant @@ -51,17 +63,14 @@ function readyForNext() { } function imageLoad(aEvent) { - if (testParts.length > testIndex) { - var [width, fileName] = testParts[testIndex]; - is(aEvent.target.width, width, - "Test " + testIndex + " " + fileName + " width correct"); - readyForNext(); - } else { - aEvent.target.removeEventListener("load", imageLoad, false); - aEvent.target.removeEventListener("error", imageLoad, false); - var loader = document.getElementById("loader"); - readyForNext(); + var [width, fileName] = testParts[testIndex]; + is(aEvent.target.width, width, + "Test " + testIndex + " " + fileName + " width correct"); + + if ((testParts.length - 1) == testIndex) { SimpleTest.finish(); + } else { + readyForNext(); } }