From 1e71ee33752db1b8817870cc25324ae40dbcd6d3 Mon Sep 17 00:00:00 2001
From: xidachen <xidachen@chromium.org>
Date: Tue, 15 Mar 2016 07:51:22 -0700
Subject: Add ColorspaceConversion in ImageBitmapOptions

This option is specifically for createImageBitmap from a Blob or a
HTMLImageElement. This CL adds support for this option, starting with
Blob. Layout tests are added to ensure the correctness.

BUG=592005

Review URL: https://codereview.chromium.org/1763043002

Cr-Commit-Position: refs/heads/master@{#381224}
---
 .../resources/square-with-colorspin-profile.png    | Bin 0 -> 542 bytes
 .../tex-image-and-sub-image-image-bitmap-utils.js  |  50 +++++++++++++++------
 ...ge-and-sub-image-2d-image-bitmap-from-blob.html |  45 ++++++++++++-------
 ...-and-sub-image-2d-image-bitmap-from-canvas.html |   7 ++-
 ...ub-image-2d-image-bitmap-from-image-bitmap.html |   7 ++-
 ...-sub-image-2d-image-bitmap-from-image-data.html |   7 ++-
 ...e-and-sub-image-2d-image-bitmap-from-image.html |   7 ++-
 ...e-and-sub-image-2d-image-bitmap-from-video.html |   7 ++-
 8 files changed, 89 insertions(+), 41 deletions(-)
 create mode 100644 third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/square-with-colorspin-profile.png

(limited to 'third_party/WebKit/LayoutTests/fast')

diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/square-with-colorspin-profile.png b/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/square-with-colorspin-profile.png
new file mode 100644
index 0000000..5c8927c
Binary files /dev/null and b/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/square-with-colorspin-profile.png differ
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js b/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js
index fe6e884..fc01d51 100644
--- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js
@@ -13,7 +13,7 @@ function checkCanvasRect(buf, x, y, width, height, color, tolerance, bufWidth, r
     }
 }
 
-function runOneIteration(useTexSubImage2D, bindingTarget, program, bitmap, flipY, premultiplyAlpha, retVal)
+function runOneIteration(useTexSubImage2D, bindingTarget, program, bitmap, flipY, premultiplyAlpha, retVal, colorspace = 'empty')
 {
     gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
     // Enable writes to the RGBA channels
@@ -61,12 +61,21 @@ function runOneIteration(useTexSubImage2D, bindingTarget, program, bitmap, flipY
     var bl = greenColor;
     var br = premultiplyAlpha ? ((retVal.alpha == 0.5) ? halfGreen : (retVal.alpha == 1) ? greenColor : blackColor) : greenColor;
 
+    var blueColor = [0, 0, 255];
+    if (colorspace == 'none') {
+        tl = tr = bl = br = blueColor;
+    } else if (colorspace == 'default' || colorspace == 'notprovided') {
+        tl = tr = bl = br = redColor;
+    }
+
     var loc;
     if (bindingTarget == gl.TEXTURE_CUBE_MAP) {
         loc = gl.getUniformLocation(program, "face");
     }
 
     var tolerance = (retVal.alpha == 0) ? 0 : 3;
+    if (colorspace == 'default' || colorspace == 'none' || colorspace == 'notprovided')
+        tolerance = 13; // For linux and win, the tolerance can be 8.
     for (var tt = 0; tt < targets.length; ++tt) {
         if (bindingTarget == gl.TEXTURE_CUBE_MAP) {
             gl.uniform1i(loc, targets[tt]);
@@ -89,27 +98,40 @@ function runOneIteration(useTexSubImage2D, bindingTarget, program, bitmap, flipY
 
 function runTestOnBindingTarget(bindingTarget, program, bitmaps, retVal) {
     var cases = [
-        { sub: false },
-        { sub: true },
+        { sub: false, bitmap: bitmaps.defaultOption, flipY: false, premultiply: true, colorspace: 'empty' },
+        { sub: true, bitmap: bitmaps.defaultOption, flipY: false, premultiply: true, colorspace: 'empty' },
+        { sub: false, bitmap: bitmaps.noFlipYPremul, flipY: false, premultiply: true, colorspace: 'empty' },
+        { sub: true, bitmap: bitmaps.noFlipYPremul, flipY: false, premultiply: true, colorspace: 'empty' },
+        { sub: false, bitmap: bitmaps.noFlipYDefault, flipY: false, premultiply: true, colorspace: 'empty' },
+        { sub: true, bitmap: bitmaps.noFlipYDefault, flipY: false, premultiply: true, colorspace: 'empty' },
+        { sub: false, bitmap: bitmaps.noFlipYUnpremul, flipY: false, premultiply: false, colorspace: 'empty' },
+        { sub: true, bitmap: bitmaps.noFlipYUnpremul, flipY: false, premultiply: false, colorspace: 'empty' },
+        { sub: false, bitmap: bitmaps.flipYPremul, flipY: true, premultiply: true, colorspace: 'empty' },
+        { sub: true, bitmap: bitmaps.flipYPremul, flipY: true, premultiply: true, colorspace: 'empty' },
+        { sub: false, bitmap: bitmaps.flipYDefault, flipY: true, premultiply: true, colorspace: 'empty' },
+        { sub: true, bitmap: bitmaps.flipYDefault, flipY: true, premultiply: true, colorspace: 'empty' },
+        { sub: false, bitmap: bitmaps.flipYUnpremul, flipY: true, premultiply: false, colorspace: 'empty' },
+        { sub: true, bitmap: bitmaps.flipYUnpremul, flipY: true, premultiply: false, colorspace: 'empty' },
+        { sub: false, bitmap: bitmaps.colorspaceDef, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'notprovided' : 'empty' },
+        { sub: true, bitmap: bitmaps.colorspaceDef, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'notprovided' : 'empty' },
+        { sub: false, bitmap: bitmaps.colorspaceNone, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'none' : 'empty' },
+        { sub: true, bitmap: bitmaps.colorspaceNone, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'none' : 'empty' },
+        { sub: false, bitmap: bitmaps.colorspaceDefault, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'default' : 'empty' },
+        { sub: true, bitmap: bitmaps.colorspaceDefault, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'default' : 'empty' },
     ];
 
     for (var i in cases) {
-        runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.defaultOption, false, true, retVal);
-        runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.noFlipYPremul, false, true, retVal);
-        runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.noFlipYDefault, false, true, retVal);
-        runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.noFlipYUnpremul, false, false, retVal);
-        runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.flipYPremul, true, true, retVal);
-        runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.flipYDefault, true, true, retVal);
-        runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.flipYUnpremul, true, false, retVal);
+        runOneIteration(cases[i].sub, bindingTarget, program, cases[i].bitmap, cases[i].flipY,
+            cases[i].premultiply, retVal, cases[i].colorspace);
     }
 }
 
-function runTest(bitmaps, alphaVal)
+function runTest(bitmaps, alphaVal, colorspaceEffective)
 {
-    var retVal = {testPassed: true, alpha: alphaVal};
+    var retVal = {testPassed: true, alpha: alphaVal, colorspaceEffect: colorspaceEffective};
     var program = tiu.setupTexturedQuad(gl, internalFormat);
     runTestOnBindingTarget(gl.TEXTURE_2D, program, bitmaps, retVal);
-//    program = tiu.setupTexturedQuadWithCubeMap(gl, internalFormat);
-//    runTestOnBindingTarget(gl.TEXTURE_CUBE_MAP, program, bitmaps, retVal);
+    program = tiu.setupTexturedQuadWithCubeMap(gl, internalFormat);
+    runTestOnBindingTarget(gl.TEXTURE_CUBE_MAP, program, bitmaps, retVal);
     return retVal.testPassed;
 }
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-blob.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-blob.html
index a3b109c..055cb09 100644
--- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-blob.html
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-blob.html
@@ -21,7 +21,8 @@ var blackColor = [0, 0, 0];
 var halfRed = [128, 0, 0];
 var halfGreen = [0, 128, 0];
 
-var blob = null;
+var blob1 = null;
+var blob2 = null;
 
 function promiseRejected()
 {
@@ -43,16 +44,19 @@ function generateTest()
     gl.clearColor(0,0,0,1);
     gl.clearDepth(1);
 
-    var p1 = createImageBitmap(blob).then(function(imageBitmap) { bitmaps.defaultOption = imageBitmap });
-    var p2 = createImageBitmap(blob, {imageOrientation: "none", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.noFlipYPremul = imageBitmap });
-    var p3 = createImageBitmap(blob, {imageOrientation: "none", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.noFlipYDefault = imageBitmap });
-    var p4 = createImageBitmap(blob, {imageOrientation: "none", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.noFlipYUnpremul = imageBitmap });
-    var p5 = createImageBitmap(blob, {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.flipYPremul = imageBitmap });
-    var p6 = createImageBitmap(blob, {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.flipYDefault = imageBitmap });
-    var p7 = createImageBitmap(blob, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.flipYUnpremul = imageBitmap });
-    Promise.all([p1, p2, p3, p4, p5, p6, p7]).then(function() {
+    var p1 = createImageBitmap(blob1).then(function(imageBitmap) { bitmaps.defaultOption = imageBitmap });
+    var p2 = createImageBitmap(blob1, {imageOrientation: "none", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.noFlipYPremul = imageBitmap });
+    var p3 = createImageBitmap(blob1, {imageOrientation: "none", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.noFlipYDefault = imageBitmap });
+    var p4 = createImageBitmap(blob1, {imageOrientation: "none", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.noFlipYUnpremul = imageBitmap });
+    var p5 = createImageBitmap(blob1, {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.flipYPremul = imageBitmap });
+    var p6 = createImageBitmap(blob1, {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.flipYDefault = imageBitmap });
+    var p7 = createImageBitmap(blob1, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.flipYUnpremul = imageBitmap });
+    var p8 = createImageBitmap(blob2).then(function(imageBitmap) { bitmaps.colorspaceDef = imageBitmap });
+    var p9 = createImageBitmap(blob2, {colorspaceConversion: "none"}).then(function(imageBitmap) { bitmaps.colorspaceNone = imageBitmap });
+    var p10 = createImageBitmap(blob2, {colorspaceConversion: "default"}).then(function(imageBitmap) { bitmaps.colorspaceDefault = imageBitmap });
+    Promise.all([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10]).then(function() {
         var alphaVal = 0.5;
-        var testPassed = runTest(bitmaps, alphaVal);
+        var testPassed = runTest(bitmaps, alphaVal, true);
         if (testPassed)
             pass();
         finishJSTest();
@@ -68,13 +72,20 @@ function init()
         testRunner.overridePreference("WebKitWebGLEnabled", "1");
         testRunner.dumpAsText();
     }
-    var xhr = new XMLHttpRequest();
-    xhr.open("GET", 'resources/red-green-semi-transparent.png');
-    xhr.responseType = 'blob';
-    xhr.send();
-    xhr.onload = function() {
-        blob = xhr.response;
-        generateTest();
+    var xhr1 = new XMLHttpRequest();
+    xhr1.open("GET", 'resources/red-green-semi-transparent.png');
+    xhr1.responseType = 'blob';
+    xhr1.send();
+    xhr1.onload = function() {
+        blob1 = xhr1.response;
+        var xhr2 = new XMLHttpRequest();
+        xhr2.open("GET", 'resources/square-with-colorspin-profile.png');
+        xhr2.responseType = 'blob';
+        xhr2.send();
+        xhr2.onload = function() {
+            blob2 = xhr2.response;
+            generateTest();
+        }
     }
 }
 
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-canvas.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-canvas.html
index 74dd83c..97cd5fd 100644
--- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-canvas.html
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-canvas.html
@@ -69,9 +69,12 @@ function generateTest()
     var p5 = createImageBitmap(testCanvas, {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.flipYPremul = imageBitmap });
     var p6 = createImageBitmap(testCanvas, {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.flipYDefault = imageBitmap });
     var p7 = createImageBitmap(testCanvas, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.flipYUnpremul = imageBitmap });
-    Promise.all([p1, p2, p3, p4, p5, p6, p7]).then(function() {
+    var p8 = createImageBitmap(testCanvas).then(function(imageBitmap) { bitmaps.colorspaceDef = imageBitmap });
+    var p9 = createImageBitmap(testCanvas, {colorspaceConversion: "none"}).then(function(imageBitmap) { bitmaps.colorspaceNone = imageBitmap });
+    var p10 = createImageBitmap(testCanvas, {colorspaceConversion: "default"}).then(function(imageBitmap) { bitmaps.colorspaceDefault = imageBitmap });
+    Promise.all([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10]).then(function() {
         var alphaVal = 0.5;
-        var testPassed = runTest(bitmaps, alphaVal);
+        var testPassed = runTest(bitmaps, alphaVal, false);
         if (testPassed)
             pass();
         finishJSTest();
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image-bitmap.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image-bitmap.html
index d3116d0..75928662 100644
--- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image-bitmap.html
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image-bitmap.html
@@ -59,9 +59,12 @@ function generateTest()
         var p5 = createImageBitmap(bitmap, {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.flipYPremul = imageBitmap });
         var p6 = createImageBitmap(bitmap, {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.flipYDefault = imageBitmap });
         var p7 = createImageBitmap(bitmap, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.flipYUnpremul = imageBitmap });
-        Promise.all([p1, p2, p3, p4, p5, p6, p7]).then(function() {
+        var p8 = createImageBitmap(bitmap).then(function(imageBitmap) { bitmaps.colorspaceDef = imageBitmap });
+        var p9 = createImageBitmap(bitmap, {colorspaceConversion: "none"}).then(function(imageBitmap) { bitmaps.colorspaceNone = imageBitmap });
+        var p10 = createImageBitmap(bitmap, {colorspaceConversion: "default"}).then(function(imageBitmap) { bitmaps.colorspaceDefault = imageBitmap });
+        Promise.all([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10]).then(function() {
             var alphaVal = 0;
-            var testPassed = runTest(bitmaps, alphaVal);
+            var testPassed = runTest(bitmaps, alphaVal, false);
             if (testPassed)
                 pass();
             finishJSTest();
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image-data.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image-data.html
index 60c3c38..deaf45d 100644
--- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image-data.html
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image-data.html
@@ -56,9 +56,12 @@ function generateTest()
     var p5 = createImageBitmap(imageData, {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.flipYPremul = imageBitmap });
     var p6 = createImageBitmap(imageData, {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.flipYDefault = imageBitmap });
     var p7 = createImageBitmap(imageData, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.flipYUnpremul = imageBitmap });
-    Promise.all([p1, p2, p3, p4, p5, p6, p7]).then(function() {
+    var p8 = createImageBitmap(imageData).then(function(imageBitmap) { bitmaps.colorspaceDef = imageBitmap });
+    var p9 = createImageBitmap(imageData, {colorspaceConversion: "none"}).then(function(imageBitmap) { bitmaps.colorspaceNone = imageBitmap });
+    var p10 = createImageBitmap(imageData, {colorspaceConversion: "default"}).then(function(imageBitmap) { bitmaps.colorspaceDefault = imageBitmap });
+    Promise.all([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10]).then(function() {
         var alphaVal = 0;
-        var testPassed = runTest(bitmaps, alphaVal);
+        var testPassed = runTest(bitmaps, alphaVal, false);
         if (testPassed)
             pass();
         finishJSTest();
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image.html
index 93e1b34..185ca8f 100644
--- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image.html
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-image.html
@@ -50,9 +50,12 @@ function generateTest()
     var p5 = createImageBitmap(image, {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.flipYPremul = imageBitmap });
     var p6 = createImageBitmap(image, {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.flipYDefault = imageBitmap });
     var p7 = createImageBitmap(image, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.flipYUnpremul = imageBitmap });
-    Promise.all([p1, p2, p3, p4, p5, p6, p7]).then(function() {
+    var p8 = createImageBitmap(image).then(function(imageBitmap) { bitmaps.colorspaceDef = imageBitmap });
+    var p9 = createImageBitmap(image, {colorspaceConversion: "none"}).then(function(imageBitmap) { bitmaps.colorspaceNone = imageBitmap });
+    var p10 = createImageBitmap(image, {colorspaceConversion: "default"}).then(function(imageBitmap) { bitmaps.colorspaceDefault = imageBitmap });
+    Promise.all([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10]).then(function() {
         var alphaVal = 0.5;
-        var testPassed = runTest(bitmaps, alphaVal);
+        var testPassed = runTest(bitmaps, alphaVal, false);
         if (testPassed)
             pass();
         finishJSTest();
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-video.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-video.html
index f0ee8c8..77b3450 100644
--- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-video.html
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-from-video.html
@@ -50,9 +50,12 @@ function generateTest()
     var p5 = createImageBitmap(video, {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.flipYPremul = imageBitmap });
     var p6 = createImageBitmap(video, {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.flipYDefault = imageBitmap });
     var p7 = createImageBitmap(video, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.flipYUnpremul = imageBitmap });
-    Promise.all([p1, p2, p3, p4, p5, p6, p7]).then(function() {
+    var p8 = createImageBitmap(video).then(function(imageBitmap) { bitmaps.colorspaceDef = imageBitmap });
+    var p9 = createImageBitmap(video, {colorspaceConversion: "none"}).then(function(imageBitmap) { bitmaps.colorspaceNone = imageBitmap });
+    var p10 = createImageBitmap(video, {colorspaceConversion: "default"}).then(function(imageBitmap) { bitmaps.colorspaceDefault = imageBitmap });
+    Promise.all([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10]).then(function() {
         var alphaVal = 1;
-        var testPassed = runTest(bitmaps, alphaVal);
+        var testPassed = runTest(bitmaps, alphaVal, false);
         if (testPassed)
             pass();
         finishJSTest();
-- 
cgit v1.1