mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-23 17:07:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
105
image/test/mochitest/test_bug399925.html
Normal file
105
image/test/mochitest/test_bug399925.html
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=399925
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 399925</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="imgutils.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=399925">Mozilla Bug 399925</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
<canvas id="canvas" width="100" height="100"> </canvas>
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 399925. **/
|
||||
var triggerDiscardingManually = false;
|
||||
var pngResults = new Array();
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
SimpleTest.requestFlakyTimeout("untriaged");
|
||||
|
||||
window.onload = function() {
|
||||
// It'd be nice to reduce the discard timer here, but unfortunately we only
|
||||
// read that pref on startup. We instead manually trigger discarding on
|
||||
// platforms where the discard timer is too long (which we'll somewhat
|
||||
// arbitrarily define as 'longer than 60 seconds').
|
||||
var expirationMs =
|
||||
SpecialPowers.getIntPref('image.mem.surfacecache.min_expiration_ms');
|
||||
if (expirationMs > 60000) {
|
||||
ok(true, 'Triggering discarding manually because SurfaceCache expiration ' +
|
||||
'is ' + expirationMs + ' ms');
|
||||
triggerDiscardingManually = true;
|
||||
} else {
|
||||
ok(true, 'Using normal discarding because SurfaceCache expiration ' +
|
||||
'is ' + expirationMs + ' ms');
|
||||
}
|
||||
|
||||
// Enable discarding for the test.
|
||||
SpecialPowers.pushPrefEnv({
|
||||
'set':[['image.mem.discardable',true]]
|
||||
}, runTest);
|
||||
}
|
||||
|
||||
function runTest() {
|
||||
var image = new Image();
|
||||
image.setAttribute("id", "gif");
|
||||
|
||||
// 1. Draw the canvas once on loadComplete
|
||||
// 2. Redraw the canvas and compare the results right on discard
|
||||
addCallbacks(image, drawCanvas, function() {
|
||||
drawCanvas();
|
||||
is(pngResults[0], pngResults[1], "got different rendered results");
|
||||
SimpleTest.finish();
|
||||
});
|
||||
|
||||
image.src = "bug399925.gif";
|
||||
document.getElementById("content").appendChild(image);
|
||||
|
||||
if (triggerDiscardingManually) {
|
||||
var request = SpecialPowers.wrap(image)
|
||||
.QueryInterface(SpecialPowers.Ci.nsIImageLoadingContent)
|
||||
.getRequest(SpecialPowers.Ci.nsIImageLoadingContent.CURRENT_REQUEST);
|
||||
setTimeout(() => request.requestDiscard(), 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function addCallbacks(anImage, loadCompleteCallback, discardCallback) {
|
||||
var observer = new ImageDecoderObserverStub();
|
||||
observer.discard = function () {
|
||||
imgLoadingContent.removeObserver(scriptedObserver);
|
||||
discardCallback();
|
||||
}
|
||||
observer.loadComplete = loadCompleteCallback;
|
||||
observer = SpecialPowers.wrapCallbackObject(observer);
|
||||
|
||||
var scriptedObserver = SpecialPowers.Cc["@mozilla.org/image/tools;1"]
|
||||
.getService(SpecialPowers.Ci.imgITools)
|
||||
.createScriptedObserver(observer);
|
||||
|
||||
var imgLoadingContent =
|
||||
SpecialPowers.wrap(anImage)
|
||||
.QueryInterface(SpecialPowers.Ci.nsIImageLoadingContent);
|
||||
imgLoadingContent.addObserver(scriptedObserver);
|
||||
}
|
||||
|
||||
function drawCanvas() {
|
||||
var canvas = document.getElementById('canvas');
|
||||
var context = canvas.getContext('2d');
|
||||
var gif = document.getElementById('gif');
|
||||
|
||||
context.drawImage(gif, 0, 0);
|
||||
ok(true, "we got through the drawImage call without an exception being thrown");
|
||||
pngResults.push(canvas.toDataURL());
|
||||
}
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue