blob: 94c4144cd15b2f69d29ea75e82589bbaef82d2b0 [file] [log] [blame]
<pre id="console"></pre>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
log = function(msg)
{
document.getElementById('console').appendChild(document.createTextNode(msg + "\n"));
}
testGetImageData = function(context, description)
{
description = "Calling getImageData() from a canvas tainted by a " + description;
try {
var imageData = context.getImageData(0,0,100,100);
log("FAIL: " + description + " was allowed.");
} catch (e) {
log("PASS: " + description + " was not allowed - Threw error: " + e + ".");
}
}
testToDataURL = function(canvas, description)
{
description = "Calling toDataURL() on a canvas tainted by a " + description;
try {
var dataURL = canvas.toDataURL();
log("FAIL: " + description + " was allowed.");
} catch (e) {
log("PASS: " + description + " was not allowed - Threw error: " + e + ".");
}
}
test = function(canvas, description)
{
testGetImageData(canvas.getContext("2d"), description);
testToDataURL(canvas, description);
}
var image = new Image();
image.onload = function() {
var canvas = document.createElement("canvas");
canvas.width = 100;
canvas.height = 100;
var context = canvas.getContext("2d");
// Test reading from a canvas after drawing a data URL image onto it
context.drawImage(image, 0, 0, 100, 100);
test(canvas, "redirected data URL image");
// Test reading after using a data URL pattern
canvas = document.createElement("canvas");
canvas.width = 100;
canvas.height = 100;
var context = canvas.getContext("2d");
var remoteImagePattern = context.createPattern(image, "repeat");
context.fillStyle = remoteImagePattern;
context.fillRect(0, 0, 100, 100);
test(canvas, "redirected data URL image pattern");
if (window.testRunner)
testRunner.notifyDone();
}
image.src = "http://localhost:8000/resources/redirect.py?url=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4%2F58BAAT%2FAf9jgNErAAAAAElFTkSuQmCC";
</script>