| Index: third_party/WebKit/LayoutTests/fast/canvas/canvas-createImageBitmap-size-tooBig.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-createImageBitmap-size-tooBig.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-createImageBitmap-size-tooBig.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e29cc56301e460a33b8f9ab0b446764896e781be
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-createImageBitmap-size-tooBig.html
|
| @@ -0,0 +1,103 @@
|
| +<!DOCTYPE HTML>
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<script>
|
| +function testImageBitmap(source)
|
| +{
|
| + return createImageBitmap(source, 0, 0, 0x8000, 0x8000, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function() {
|
| + assert_true(false, "Promise should be rejected if the cropRect is too big.");
|
| + }, function() {
|
| + return createImageBitmap(source, 5, 5, 10, 10, {resizeWidth: 0x8000, resizeHeight: 0x8000}).then(function() {
|
| + assert_true(false, "Promise should be rejected if the resizeWidth or resizeHeight is too big.");
|
| + }, function() {
|
| + });
|
| + });
|
| +}
|
| +
|
| +function initializeTestCanvas()
|
| +{
|
| + var testCanvas = document.createElement("canvas");
|
| + testCanvas.width = 20;
|
| + testCanvas.height = 20;
|
| + var testCtx = testCanvas.getContext("2d");
|
| + testCtx.fillStyle = "rgb(255, 0, 0)";
|
| + testCtx.fillRect(0, 0, 10, 10);
|
| + testCtx.fillStyle = "rgb(0, 255, 0)";
|
| + testCtx.fillRect(10, 0, 10, 10);
|
| + testCtx.fillStyle = "rgb(0, 0, 255)";
|
| + testCtx.fillRect(0, 10, 10, 10);
|
| + testCtx.fillStyle = "rgb(0, 0, 0)";
|
| + testCtx.fillRect(10, 10, 10, 10);
|
| + return testCanvas;
|
| +}
|
| +
|
| +function getBlobWithXhr(url)
|
| +{
|
| + return new Promise((resolve, reject) => {
|
| + var xhr = new XMLHttpRequest();
|
| + xhr.open("GET", url);
|
| + xhr.responseType = 'blob';
|
| + xhr.send();
|
| + xhr.onload = function() {
|
| + resolve(xhr.response);
|
| + };
|
| + });
|
| +}
|
| +
|
| +function loadImage(url)
|
| +{
|
| + return new Promise((resolve, reject) => {
|
| + var image = new Image();
|
| + image.onload = function() {
|
| + resolve(image);
|
| + }
|
| + image.src = url;
|
| + });
|
| +}
|
| +
|
| +function loadVideo(url)
|
| +{
|
| + return new Promise((resolve, reject) => {
|
| + var video = document.createElement("video");
|
| + video.oncanplaythrough = function() {
|
| + resolve(video);
|
| + };
|
| + video.src = url;
|
| + });
|
| +}
|
| +
|
| +// Blob
|
| +promise_test(function() {
|
| + return getBlobWithXhr('resources/pattern.png').then(testImageBitmap);
|
| +}, 'createImageBitmap from a Blob with a big cropRect.');
|
| +
|
| +// HTMLCanvasElement
|
| +promise_test(function() {
|
| + var testCanvas = initializeTestCanvas();
|
| + return testImageBitmap(testCanvas);
|
| +}, 'createImageBitmap from a HTMLCanvasElement with a big cropRect.');
|
| +
|
| +// HTMLImageElement
|
| +promise_test(function() {
|
| + return loadImage('resources/pattern.png').then(testImageBitmap);
|
| +}, 'createImageBitmap from a HTMLImageElement with a big cropRect.');
|
| +
|
| +// ImageBitmap
|
| +promise_test(function() {
|
| + var testCanvas = initializeTestCanvas();
|
| + return createImageBitmap(testCanvas).then(testImageBitmap);
|
| +}, 'createImageBitmap from an ImageBitmap with a big cropRect.');
|
| +
|
| +// ImageData
|
| +promise_test(function() {
|
| + var canvas = initializeTestCanvas();
|
| + var ctx = canvas.getContext("2d");
|
| + var data = ctx.getImageData(0, 0, 20, 20);
|
| + return testImageBitmap(data);
|
| +}, 'createImageBitmap from an ImageData with a big cropRect.');
|
| +
|
| +// HTMLVideoElement
|
| +promise_test(function() {
|
| + return loadVideo('../../compositing/resources/video.ogv').then(testImageBitmap);
|
| +}, 'createImageBitmap from a HTMLVideoElement with resize option.');
|
| +</script>
|
|
|