<html>
<body>
<canvas id="c1" width="250" height="250"></canvas>
<canvas id="c2" width="250" height="250"></canvas>
<br>
<canvas id="c3" width="250" height="250"></canvas>
<canvas id="c4" width="250" height="250"></canvas>
<script type="text/javascript">
var canvas1 = document.getElementById('c1');
var canvas2 = document.getElementById('c2');
var canvas3 = document.getElementById('c3');
var canvas4 = document.getElementById('c4');
var bgcanvas = document.createElement('canvas');
bgcanvas.width = 100;
bgcanvas.height = 100;
var bgctx = bgcanvas.getContext('2d');
bgctx.fillStyle = 'green';
bgctx.fillRect(0, 0, bgcanvas.width, bgcanvas.height);
var greenSquareURL = bgcanvas.toDataURL();
var img = new Image();
img.src = greenSquareURL;
var ctx1 = canvas1.getContext('2d');
var ctx2 = canvas2.getContext('2d');
var ctx3 = canvas3.getContext('2d');
var ctx4 = canvas4.getContext('2d');
video = document.createElement("video");
video.poster = greenSquareURL;
ctx1.drawImage(bgcanvas, -100, -100, 300, 300, -25, -25, 300, 300);
ctx1.drawImage(bgcanvas, -100, -100, 200, 200, -25, -25, 100, 100);
ctx1.drawImage(bgcanvas, 0, -100, 100, 200, 75, -25, 100, 100);
ctx1.drawImage(bgcanvas, 0, -100, 200, 200, 175, -25, 100, 100);
ctx1.drawImage(bgcanvas, -100, 0, 200, 100, -25, 75, 100, 100);
ctx1.drawImage(bgcanvas, 0, 0, 200, 100, 175, 75, 100, 100);
ctx1.drawImage(bgcanvas, -100, 0, 200, 200, -25, 175, 100, 100);
ctx1.drawImage(bgcanvas, 0, 0, 100, 200, 75, 175, 100, 100);
ctx1.drawImage(bgcanvas, 0, 0, 200, 200, 175, 175, 100, 100);
img.onload = function() {
ctx2.drawImage(img, -100, -100, 300, 300, -25, -25, 300, 300);
ctx2.drawImage(img, -100, -100, 200, 200, -25, -25, 100, 100);
ctx2.drawImage(img, 0, -100, 100, 200, 75, -25, 100, 100);
ctx2.drawImage(img, 0, -100, 200, 200, 175, -25, 100, 100);
ctx2.drawImage(img, -100, 0, 200, 100, -25, 75, 100, 100);
ctx2.drawImage(img, 0, 0, 200, 100, 175, 75, 100, 100);
ctx2.drawImage(img, -100, 0, 200, 200, -25, 175, 100, 100);
ctx2.drawImage(img, 0, 0, 100, 200, 75, 175, 100, 100);
ctx2.drawImage(img, 0, 0, 200, 200, 175, 175, 100, 100);
}
if (window.testRunner) {
testRunner.waitUntilDone();
}
var video = document.createElement("video");
video.autoplay = false;
video.addEventListener("canplaythrough", videoLoaded, false);
video.src = "resources/green.ogv";
function videoLoaded() {
var w = video.videoWidth;
var h = video.videoHeight;
ctx3.drawImage(video, -w, -h, 3*w, 3*h, -25, -25, 300, 300);
ctx3.drawImage(video, -w, -h, 2*w, 2*h, -25, -25, 100, 100);
ctx3.drawImage(video, 0, -h, w, 2*h, 75, -25, 100, 100);
ctx3.drawImage(video, 0, -h, 2*w, 2*h, 175, -25, 100, 100);
ctx3.drawImage(video, -w, 0, 2*w, h, -25, 75, 100, 100);
ctx3.drawImage(video, 0, 0, 2*w, h, 175, 75, 100, 100);
ctx3.drawImage(video, -w, 0, 2*w, 2*h, -25, 175, 100, 100);
ctx3.drawImage(video, 0, 0, w, 2*h, 75, 175, 100, 100);
ctx3.drawImage(video, 0, 0, 2*w, 2*h, 175, 175, 100, 100);
if (window.createImageBitmap) {
window.createImageBitmap(img).then(imageReady, function() {
testFailed("Promise was rejected.");
finishJSTest();
});
} else {
if (window.testRunner) {
testRunner.notifyDone();
}
}
}
function imageReady(imageBitmap) {
ctx4.drawImage(imageBitmap, -100, -100, 300, 300, -25, -25, 300, 300);
ctx4.drawImage(imageBitmap, -100, -100, 200, 200, -25, -25, 100, 100);
ctx4.drawImage(imageBitmap, 0, -100, 100, 200, 75, -25, 100, 100);
ctx4.drawImage(imageBitmap, 0, -100, 200, 200, 175, -25, 100, 100);
ctx4.drawImage(imageBitmap, -100, 0, 200, 100, -25, 75, 100, 100);
ctx4.drawImage(imageBitmap, 0, 0, 200, 100, 175, 75, 100, 100);
ctx4.drawImage(imageBitmap, -100, 0, 200, 200, -25, 175, 100, 100);
ctx4.drawImage(imageBitmap, 0, 0, 100, 200, 75, 175, 100, 100);
ctx4.drawImage(imageBitmap, 0, 0, 200, 200, 175, 175, 100, 100);
if (window.testRunner) {
testRunner.notifyDone();
}
}
</script>
</body></html>