Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Unified Diff: LayoutTests/http/tests/security/webgl-remote-read-remote-image-allowed.html

Issue 80263004: Test Canvas tainting and WebGL video textures (CORS fetched.) (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased + adjust expected output Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/security/webgl-remote-read-remote-image-allowed.html
diff --git a/LayoutTests/http/tests/security/webgl-remote-read-remote-image-allowed.html b/LayoutTests/http/tests/security/webgl-remote-read-remote-image-allowed.html
index 152fd07a95c05b88eeacf65c36624b60d9d5f96a..28b4e6e10f9812faa4ee41baffc58e991b13b46f 100644
--- a/LayoutTests/http/tests/security/webgl-remote-read-remote-image-allowed.html
+++ b/LayoutTests/http/tests/security/webgl-remote-read-remote-image-allowed.html
@@ -1,3 +1,6 @@
+<!doctype html>
+<html>
+<body>
<pre id="console"></pre>
<script>
if (window.testRunner) {
@@ -51,8 +54,11 @@ test = function(canvas, description)
testToDataURL(canvas, description);
}
-var image = new Image();
-image.onload = function() {
+testResource = function (resource, resourceType, continuation)
+{
+ log("");
+ log("Testing " + resourceType + "...");
+
var canvas = document.createElement("canvas");
canvas.width = 100;
canvas.height = 100;
@@ -76,26 +82,52 @@ image.onload = function() {
log("\n");
log("Tainted canvas:");
- // Test reading from a canvas after uploading a remote image as a texture
+ // Test reading from a canvas after uploading a remote resource as a texture
var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
- testTexImage2D(gl, image, "image");
+ testTexImage2D(gl, resource, resourceType);
- test(canvas, "remote image");
+ test(canvas, "remote " + resourceType);
// Now test reading from a canvas after uploading a tainted canvas onto it
var dirtyCanvas = document.createElement("canvas");
dirtyCanvas.width = 100;
dirtyCanvas.height = 100;
var dirtyContext = dirtyCanvas.getContext("2d");
- dirtyContext.drawImage(image, 0, 0, 100, 100);
+ dirtyContext.drawImage(resource, 0, 0, 100, 100);
testTexImage2D(gl, dirtyCanvas, "canvas");
test(canvas, "CORS-untained canvas");
+ continuation();
+}
+
+testImage = function ()
+{
+ var image = new Image();
+ image.onload = testResource.bind(null, image, "image", testVideo);
+ image.crossOrigin = "anonymous";
+ image.src = "http://localhost:8000/security/resources/abe-allow-star.php";
+}
+
+testVideo = function ()
+{
+ var video = document.createElement('video');
+ video.oncanplay = testResource.bind(null, video, "video", finishUp);
+ video.crossOrigin = "anonymous";
+ var name = "../../media/resources/test.ogv";
+ var type = "video/ogg";
+ video.src = "http://localhost:8000/security/resources/video-cross-origin-allow.php?name=" + name + "&type=" + type;
+}
+
+finishUp = function ()
+{
+ log("DONE");
if (window.testRunner)
testRunner.notifyDone();
}
-image.crossOrigin = "anonymous";
-image.src = "http://localhost:8000/security/resources/abe-allow-star.php";
+
+testImage();
</script>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698