tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

canvas-display-p3-settings.html (1880B)


      1 <!DOCTYPE HTML>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script>
      5 // Test that creating canvas contexts and ImageData objects respect the
      6 // requested color space.
      7 
      8 for (let contextColorSpace of [undefined, "srgb", "display-p3"]) {
      9    for (let imageDataColorSpace of [undefined, "srgb", "display-p3"]) {
     10        test(function() {
     11            let contextSettings = { };
     12            if (contextColorSpace)
     13                contextSettings.colorSpace = contextColorSpace;
     14            let resolvedContextColorSpace = contextColorSpace || "srgb";
     15 
     16            let canvas = document.createElement("canvas");
     17            let ctx = canvas.getContext("2d", contextSettings);
     18            assert_equals(ctx.getContextAttributes().colorSpace, resolvedContextColorSpace, `CanvasRenderingContext2DSettings.colorSpace when set to ${contextColorSpace}`);
     19 
     20            let imageDataSettings = { };
     21            if (imageDataColorSpace)
     22                imageDataSettings.colorSpace = imageDataColorSpace;
     23            let resolvedImageDataColorSpace = imageDataColorSpace || resolvedContextColorSpace;
     24 
     25            let imageData = ctx.getImageData(0, 0, 1, 1, imageDataSettings);
     26            assert_equals(imageData.colorSpace, resolvedImageDataColorSpace, `getImageData() colorSpace when set to ${imageDataColorSpace}`);
     27 
     28            imageData = ctx.createImageData(1, 1, imageDataSettings);
     29            assert_equals(imageData.colorSpace, resolvedImageDataColorSpace, `createImageData() colorSpace when set to ${imageDataColorSpace}`);
     30 
     31            imageData = ctx.createImageData(imageData);
     32            assert_equals(imageData.colorSpace, resolvedImageDataColorSpace, `Cloned ImageData colorSpace when set to ${imageDataColorSpace}`);
     33        }, `Context ${contextColorSpace}, ImageData ${imageDataColorSpace}`);
     34    }
     35 }
     36 </script>