mirror of
https://github.com/servo/servo.git
synced 2025-09-03 03:28:20 +01:00
Update web-platform-tests to revision 10168e9a5d44efbc6e7d416d1d454eb9c9f1396c
This commit is contained in:
parent
c88dc51d03
commit
0e1caebaf4
791 changed files with 23381 additions and 5501 deletions
|
@ -43,14 +43,29 @@ function makeVideo() {
|
|||
});
|
||||
}
|
||||
|
||||
function makeImage() {
|
||||
return new Promise(resolve => {
|
||||
var img = new Image();
|
||||
img.onload = function() {
|
||||
resolve(img);
|
||||
};
|
||||
img.src = "/images/pattern.png";
|
||||
});
|
||||
function makeMakeHTMLImage(src) {
|
||||
return function() {
|
||||
return new Promise(resolve => {
|
||||
var img = new Image();
|
||||
img.onload = function() {
|
||||
resolve(img);
|
||||
};
|
||||
img.src = src;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function makeMakeSVGImage(src) {
|
||||
return function() {
|
||||
return new Promise((resolve, reject) => {
|
||||
var image = document.createElementNS(NAMESPACES.svg, "image");
|
||||
image.onload = () => resolve(image);
|
||||
image.onerror = reject;
|
||||
image.setAttribute("externalResourcesRequired", "true");
|
||||
image.setAttributeNS(NAMESPACES.xlink, 'xlink:href', src);
|
||||
document.body.appendChild(image);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function makeImageData() {
|
||||
|
@ -100,7 +115,10 @@ function makeBlob() {
|
|||
var imageSourceTypes = [
|
||||
{ name: 'an HTMLCanvasElement', factory: makeCanvas },
|
||||
{ name: 'an HTMLVideoElement', factory: makeVideo },
|
||||
{ name: 'an HTMLImageElement', factory: makeImage },
|
||||
{ name: 'a bitmap HTMLImageElement', factory: makeMakeHTMLImage("/images/pattern.png") },
|
||||
{ name: 'a vector HTMLImageElement', factory: makeMakeHTMLImage("/images/pattern.svg") },
|
||||
{ name: 'a bitmap SVGImageElement', factory: makeMakeSVGImage("/images/pattern.png") },
|
||||
{ name: 'a vector SVGImageElement', factory: makeMakeSVGImage("/images/pattern.svg") },
|
||||
{ name: 'an OffscreenCanvas', factory: makeOffscreenCanvas },
|
||||
{ name: 'an ImageData', factory: makeImageData },
|
||||
{ name: 'an ImageBitmap', factory: makeImageBitmap },
|
|
@ -5,7 +5,8 @@
|
|||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/canvas-tests.js"></script>
|
||||
<script src="/common/media.js"></script>
|
||||
<script src="common.js"></script>
|
||||
<script src="/common/namespaces.js"></script>
|
||||
<script src="common.sub.js"></script>
|
||||
<link rel="stylesheet" href="/common/canvas-tests.css">
|
||||
<body>
|
||||
<script>
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/media.js"></script>
|
||||
<script src="common.js"></script>
|
||||
<script src="/common/namespaces.js"></script>
|
||||
<script src="common.sub.js"></script>
|
||||
<script>
|
||||
|
||||
function makeOversizedCanvas() {
|
||||
|
@ -29,17 +30,18 @@ function makeInvalidBlob() {
|
|||
}
|
||||
|
||||
function makeBrokenImage() {
|
||||
return new Promise(resolve => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const image = new Image();
|
||||
image.src = "data:,x";
|
||||
image.onload = reject;
|
||||
image.onerror = () => resolve(image);
|
||||
});
|
||||
}
|
||||
|
||||
function makeAvailableButBrokenImage() {
|
||||
function makeAvailableButBrokenImage(path) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const image = new Image();
|
||||
image.src = "/images/broken.png";
|
||||
image.src = path;
|
||||
image.onload = () => resolve(image);
|
||||
image.onerror = reject;
|
||||
});
|
||||
|
@ -99,6 +101,26 @@ promise_test( t => {
|
|||
return promise_rejects(t, new TypeError(), createImageBitmap(null));
|
||||
}, "createImageBitmap with null image source.");
|
||||
|
||||
promise_test( t => {
|
||||
var context = document.createElement("canvas").getContext("2d");
|
||||
return promise_rejects(t, new TypeError(), createImageBitmap(context));
|
||||
}, "createImageBitmap with CanvasRenderingContext2D image source.");
|
||||
|
||||
promise_test( t => {
|
||||
var context = document.createElement("canvas").getContext("webgl");
|
||||
return promise_rejects(t, new TypeError(), createImageBitmap(context));
|
||||
}, "createImageBitmap with WebGLRenderingContext image source.");
|
||||
|
||||
promise_test( t => {
|
||||
var buffer = new Uint8Array();
|
||||
return promise_rejects(t, new TypeError(), createImageBitmap(buffer));
|
||||
}, "createImageBitmap with Uint8Array image source.");
|
||||
|
||||
promise_test( t => {
|
||||
var buffer = new ArrayBuffer(8);
|
||||
return promise_rejects(t, new TypeError(), createImageBitmap(buffer));
|
||||
}, "createImageBitmap with ArrayBuffer image source.");
|
||||
|
||||
promise_test( t => {
|
||||
return promise_rejects(t, "InvalidStateError",
|
||||
createImageBitmap(new Image()));
|
||||
|
@ -138,12 +160,26 @@ promise_test( t => {
|
|||
}, "createImageBitmap with a broken image source.");
|
||||
|
||||
promise_test( t => {
|
||||
return makeAvailableButBrokenImage().then(image => {
|
||||
return makeAvailableButBrokenImage("/images/broken.png").then(image => {
|
||||
return promise_rejects(t, "InvalidStateError",
|
||||
createImageBitmap(image));
|
||||
});
|
||||
}, "createImageBitmap with an available but undecodable image source.");
|
||||
|
||||
promise_test( t => {
|
||||
return makeAvailableButBrokenImage("/images/red-zeroheight.svg").then(image => {
|
||||
return promise_rejects(t, "InvalidStateError",
|
||||
createImageBitmap(image));
|
||||
});
|
||||
}, "createImageBitmap with an available but zero height image source.");
|
||||
|
||||
promise_test( t => {
|
||||
return makeAvailableButBrokenImage("/images/red-zerowidth.svg").then(image => {
|
||||
return promise_rejects(t, "InvalidStateError",
|
||||
createImageBitmap(image));
|
||||
});
|
||||
}, "createImageBitmap with an available but zero width image source.");
|
||||
|
||||
promise_test( t => {
|
||||
return makeImageBitmap().then(bitmap => {
|
||||
bitmap.close()
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
<title>createImageBitmap: origin-clean flag</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/media.js"></script>
|
||||
<script src="/common/namespaces.js"></script>
|
||||
<div id=log></div>
|
||||
<script>
|
||||
const crossOriginImageUrl = "http://{{domains[www1]}}:{{ports[http][0]}}/images/red.png";
|
||||
|
||||
function assert_origin_unclean(bitmap) {
|
||||
const context = document.createElement("canvas").getContext("2d");
|
||||
context.drawImage(bitmap, 0, 0);
|
||||
assert_throws("SecurityError", () => {
|
||||
context.getImageData(0, 0, 1, 1);
|
||||
});
|
||||
}
|
||||
|
||||
function makeImage() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const image = new Image();
|
||||
image.onload = () => resolve(image);
|
||||
image.onerror = reject;
|
||||
image.src = crossOriginImageUrl;
|
||||
});
|
||||
}
|
||||
|
||||
const arguments = [
|
||||
{
|
||||
name: "cross-origin HTMLImageElement",
|
||||
factory: makeImage,
|
||||
},
|
||||
|
||||
{
|
||||
name: "cross-origin SVGImageElement",
|
||||
factory: () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const image = document.createElementNS(NAMESPACES.svg, "image");
|
||||
image.onload = () => resolve(image);
|
||||
image.onerror = reject;
|
||||
image.setAttribute("externalResourcesRequired", "true");
|
||||
image.setAttributeNS(NAMESPACES.xlink, 'xlink:href', crossOriginImageUrl);
|
||||
document.body.appendChild(image);
|
||||
});
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
name: "cross-origin HTMLVideoElement",
|
||||
factory: () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const video = document.createElement("video");
|
||||
video.oncanplaythrough = () => resolve(video);
|
||||
video.onerror = reject;
|
||||
video.src = getVideoURI("http://{{domains[www1]}}:{{ports[http][0]}}/media/movie_300");
|
||||
});
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
name: "unclean HTMLCanvasElement",
|
||||
factory: () => {
|
||||
return makeImage().then(image => {
|
||||
const canvas = document.createElement("canvas");
|
||||
const context = canvas.getContext("2d");
|
||||
context.drawImage(image, 0, 0);
|
||||
return canvas;
|
||||
});
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
name: "unclean ImageBitmap",
|
||||
factory: () => {
|
||||
return makeImage().then(createImageBitmap);
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
for (let { name, factory } of arguments) {
|
||||
promise_test(function() {
|
||||
return factory().then(createImageBitmap).then(assert_origin_unclean);
|
||||
}, name);
|
||||
}
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue