| Index: third_party/WebKit/LayoutTests/fast/images/cmyk-jpeg-with-color-profile.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/images/cmyk-jpeg-with-color-profile.html b/third_party/WebKit/LayoutTests/fast/images/cmyk-jpeg-with-color-profile.html
|
| index 0aebbcfb19cc32f11a330c356c824a78c8a91736..28fae6d64ee601ec1a3f95ee4be09b9b712be578 100644
|
| --- a/third_party/WebKit/LayoutTests/fast/images/cmyk-jpeg-with-color-profile.html
|
| +++ b/third_party/WebKit/LayoutTests/fast/images/cmyk-jpeg-with-color-profile.html
|
| @@ -1,9 +1,44 @@
|
| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
| -<html>
|
| -<head>
|
| -<script src="../../resources/js-test.js"></script>
|
| -</head>
|
| -<body>
|
| -<script src="script-tests/cmyk-jpeg-with-color-profile.js"></script>
|
| -</body>
|
| -</html>
|
| +<title>Test that we can render a CMYK JPEG without color corruption.</title>
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<script type="text/javascript">
|
| +async_test(function(t) {
|
| + // The colors used for verifying the test results.
|
| + var red = 0, green = 0, blue = 0, alpha = 0;
|
| + // Create a canvas element. This element is used for pasting a CMYK JPEG and
|
| + // reading its pixels.
|
| + var canvas = document.createElement("canvas");
|
| + canvas.width = 64;
|
| + canvas.height = 64;
|
| + // Create an image object and load a CMYK JPEG.
|
| + var image = new Image();
|
| + image.onload = t.step_func_done(function() {
|
| + // Paste the loaded JPEG ('resources/cmyk-jpeg.jpg') to the canvas.
|
| + var context = canvas.getContext("2d");
|
| + context.drawImage(image, 0, 0);
|
| +
|
| + // Read the pixels in the canvas and calculate their average values.
|
| + // (DumpRenderTree always allows to read them.)
|
| + var data = context.getImageData(0, 0, canvas.width, canvas.height);
|
| + var pixels = canvas.width * canvas.height;
|
| + for (var i = 0; i < pixels * 4; i += 4) {
|
| + red += data.data[i + 0];
|
| + green += data.data[i + 1];
|
| + blue += data.data[i + 2];
|
| + alpha += data.data[i + 3];
|
| + }
|
| + red /= pixels;
|
| + green /= pixels;
|
| + blue /= pixels;
|
| + alpha /= pixels;
|
| +
|
| + // Even though the output colors depend on color-profiles (i.e. they depend
|
| + // on devices), green must be the most prominent color because the source
|
| + // image only consists of green. So, we test it.
|
| + assert_greater_than(green, red);
|
| + assert_greater_than(green, blue);
|
| + });
|
| + image.src = "resources/cmyk-jpeg.jpg";
|
| +});
|
| +</script>
|
|
|