Changeset 228003 in webkit


Ignore:
Timestamp:
Feb 2, 2018 4:33:51 AM (6 years ago)
Author:
Ms2ger@igalia.com
Message:

Update imagebitmap tests.
https://bugs.webkit.org/show_bug.cgi?id=182335
<rdar://problem/37110684>

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/common.sub.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.js.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html: Added.
  • web-platform-tests/2dcontext/imagebitmap/w3c-import.log:
  • web-platform-tests/common/namespaces.js: Added.
  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/images/pattern.mp4: Added.
  • web-platform-tests/images/pattern.svg: Added.
  • web-platform-tests/images/w3c-import.log:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
  • platform/mac/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
Location:
trunk/LayoutTests
Files:
7 added
2 deleted
12 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r228001 r228003  
     12018-02-02  Ms2ger  <Ms2ger@igalia.com>
     2
     3        Update imagebitmap tests.
     4        https://bugs.webkit.org/show_bug.cgi?id=182335
     5        <rdar://problem/37110684>
     6
     7        Unreviewed test gardening.
     8
     9        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
     10        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
     11        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
     12        * platform/mac/TestExpectations:
     13        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
     14        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
     15        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
     16
    1172018-02-02  Fujii Hironori  <Hironori.Fujii@sony.com>
    218
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r227997 r228003  
     12018-02-02  Ms2ger  <Ms2ger@igalia.com>
     2
     3        Update imagebitmap tests.
     4        https://bugs.webkit.org/show_bug.cgi?id=182335
     5        <rdar://problem/37110684>
     6
     7        Unreviewed test gardening.
     8
     9        * web-platform-tests/2dcontext/imagebitmap/common.sub.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.js.
     10        * web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
     11        * web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html:
     12        * web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
     13        * web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html:
     14        * web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
     15        * web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html: Added.
     16        * web-platform-tests/2dcontext/imagebitmap/w3c-import.log:
     17        * web-platform-tests/common/namespaces.js: Added.
     18        * web-platform-tests/common/w3c-import.log:
     19        * web-platform-tests/images/pattern.mp4: Added.
     20        * web-platform-tests/images/pattern.svg: Added.
     21        * web-platform-tests/images/w3c-import.log:
     22
    1232018-02-01  Chris Dumez  <cdumez@apple.com>
    224
  • trunk/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.sub.js

    r228002 r228003  
    3939            resolve(video);
    4040        };
    41         video.src = "/images/pattern.ogv";
     41        video.onerror = reject;
     42        video.src = getVideoURI("/images/pattern");
    4243    });
    4344}
    4445
    45 function makeImage() {
    46     return new Promise(resolve => {
    47         var img = new Image();
    48         img.onload = function() {
    49             resolve(img);
    50         };
    51         img.src = "/images/pattern.png";
    52     });
     46function makeDataUrlVideo() {
     47    const toDataUrl = (type, buffer) => {
     48        const encoded = btoa(String.fromCodePoint(...new Uint8Array(buffer)));
     49        return `data:${type};base64,${encoded}`
     50    };
     51
     52    return fetch(getVideoURI("/images/pattern"))
     53        .then(response => Promise.all([response.headers.get("Content-Type"), response.arrayBuffer()]))
     54        .then(([type, data]) => {
     55            return new Promise(function(resolve, reject) {
     56                var video = document.createElement("video");
     57                video.oncanplaythrough = function() {
     58                    resolve(video);
     59                };
     60                video.onerror = reject;
     61                video.src = toDataUrl(type, data);
     62            });
     63        });
     64}
     65
     66function makeMakeHTMLImage(src) {
     67    return function() {
     68        return new Promise(resolve => {
     69            var img = new Image();
     70            img.onload = function() {
     71                resolve(img);
     72            };
     73            img.src = src;
     74        });
     75    }
     76}
     77
     78function makeMakeSVGImage(src) {
     79    return function() {
     80        return new Promise((resolve, reject) => {
     81            var image = document.createElementNS(NAMESPACES.svg, "image");
     82            image.onload = () => resolve(image);
     83            image.onerror = reject;
     84            image.setAttribute("externalResourcesRequired", "true");
     85            image.setAttributeNS(NAMESPACES.xlink, 'xlink:href', src);
     86            document.body.appendChild(image);
     87        });
     88    }
    5389}
    5490
     
    100136    { name: 'an HTMLCanvasElement', factory: makeCanvas },
    101137    { name: 'an HTMLVideoElement',  factory: makeVideo },
    102     { name: 'an HTMLImageElement',  factory: makeImage },
     138    { name: 'an HTMLVideoElement from a data URL', factory: makeDataUrlVideo },
     139    { name: 'a bitmap HTMLImageElement', factory: makeMakeHTMLImage("/images/pattern.png") },
     140    { name: 'a vector HTMLImageElement', factory: makeMakeHTMLImage("/images/pattern.svg") },
     141    { name: 'a bitmap SVGImageElement', factory: makeMakeSVGImage("/images/pattern.png") },
     142    { name: 'a vector SVGImageElement', factory: makeMakeSVGImage("/images/pattern.svg") },
    103143    { name: 'an OffscreenCanvas',   factory: makeOffscreenCanvas },
    104144    { name: 'an ImageData',         factory: makeImageData },
  • trunk/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt

    r227973 r228003  
    1 
    2 Harness Error (TIMEOUT), message = null
    31
    42PASS createImageBitmap from an HTMLCanvasElement, and drawImage on the created ImageBitmap
     3PASS createImageBitmap from an HTMLCanvasElement scaled down, and drawImage on the created ImageBitmap
     4PASS createImageBitmap from an HTMLCanvasElement scaled up, and drawImage on the created ImageBitmap
     5PASS createImageBitmap from an HTMLCanvasElement resized, and drawImage on the created ImageBitmap
    56FAIL createImageBitmap from an HTMLCanvasElement with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "RangeError: Cannot create ImageBitmap with a negative width or height"
    6 TIMEOUT createImageBitmap from an HTMLVideoElement, and drawImage on the created ImageBitmap Test timed out
    7 NOTRUN createImageBitmap from an HTMLVideoElement with negative sw/sh, and drawImage on the created ImageBitmap
    8 NOTRUN createImageBitmap from an HTMLImageElement, and drawImage on the created ImageBitmap
    9 NOTRUN createImageBitmap from an HTMLImageElement with negative sw/sh, and drawImage on the created ImageBitmap
    10 NOTRUN createImageBitmap from an OffscreenCanvas, and drawImage on the created ImageBitmap
    11 NOTRUN createImageBitmap from an OffscreenCanvas with negative sw/sh, and drawImage on the created ImageBitmap
    12 NOTRUN createImageBitmap from an ImageData, and drawImage on the created ImageBitmap
    13 NOTRUN createImageBitmap from an ImageData with negative sw/sh, and drawImage on the created ImageBitmap
    14 NOTRUN createImageBitmap from an ImageBitmap, and drawImage on the created ImageBitmap
    15 NOTRUN createImageBitmap from an ImageBitmap with negative sw/sh, and drawImage on the created ImageBitmap
    16 NOTRUN createImageBitmap from a Blob, and drawImage on the created ImageBitmap
    17 NOTRUN createImageBitmap from a Blob with negative sw/sh, and drawImage on the created ImageBitmap
     7FAIL createImageBitmap from an HTMLVideoElement, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with HTMLVideoElement is not implemented"
     8FAIL createImageBitmap from an HTMLVideoElement scaled down, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with HTMLVideoElement is not implemented"
     9FAIL createImageBitmap from an HTMLVideoElement scaled up, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with HTMLVideoElement is not implemented"
     10FAIL createImageBitmap from an HTMLVideoElement resized, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with HTMLVideoElement is not implemented"
     11FAIL createImageBitmap from an HTMLVideoElement with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "RangeError: Cannot create ImageBitmap with a negative width or height"
     12FAIL createImageBitmap from an HTMLVideoElement from a data URL, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with HTMLVideoElement is not implemented"
     13FAIL createImageBitmap from an HTMLVideoElement from a data URL scaled down, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with HTMLVideoElement is not implemented"
     14FAIL createImageBitmap from an HTMLVideoElement from a data URL scaled up, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with HTMLVideoElement is not implemented"
     15FAIL createImageBitmap from an HTMLVideoElement from a data URL resized, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with HTMLVideoElement is not implemented"
     16FAIL createImageBitmap from an HTMLVideoElement from a data URL with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "RangeError: Cannot create ImageBitmap with a negative width or height"
     17PASS createImageBitmap from a bitmap HTMLImageElement, and drawImage on the created ImageBitmap
     18PASS createImageBitmap from a bitmap HTMLImageElement scaled down, and drawImage on the created ImageBitmap
     19PASS createImageBitmap from a bitmap HTMLImageElement scaled up, and drawImage on the created ImageBitmap
     20PASS createImageBitmap from a bitmap HTMLImageElement resized, and drawImage on the created ImageBitmap
     21FAIL createImageBitmap from a bitmap HTMLImageElement with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "RangeError: Cannot create ImageBitmap with a negative width or height"
     22PASS createImageBitmap from a vector HTMLImageElement, and drawImage on the created ImageBitmap
     23PASS createImageBitmap from a vector HTMLImageElement scaled down, and drawImage on the created ImageBitmap
     24PASS createImageBitmap from a vector HTMLImageElement scaled up, and drawImage on the created ImageBitmap
     25PASS createImageBitmap from a vector HTMLImageElement resized, and drawImage on the created ImageBitmap
     26FAIL createImageBitmap from a vector HTMLImageElement with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "RangeError: Cannot create ImageBitmap with a negative width or height"
     27FAIL createImageBitmap from a bitmap SVGImageElement, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     28FAIL createImageBitmap from a bitmap SVGImageElement scaled down, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     29FAIL createImageBitmap from a bitmap SVGImageElement scaled up, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     30FAIL createImageBitmap from a bitmap SVGImageElement resized, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     31FAIL createImageBitmap from a bitmap SVGImageElement with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     32FAIL createImageBitmap from a vector SVGImageElement, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     33FAIL createImageBitmap from a vector SVGImageElement scaled down, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     34FAIL createImageBitmap from a vector SVGImageElement scaled up, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     35FAIL createImageBitmap from a vector SVGImageElement resized, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     36FAIL createImageBitmap from a vector SVGImageElement with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: Type error"
     37FAIL createImageBitmap from an OffscreenCanvas, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     38FAIL createImageBitmap from an OffscreenCanvas scaled down, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     39FAIL createImageBitmap from an OffscreenCanvas scaled up, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     40FAIL createImageBitmap from an OffscreenCanvas resized, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     41FAIL createImageBitmap from an OffscreenCanvas with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     42FAIL createImageBitmap from an ImageData, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with ImageData is not implemented"
     43FAIL createImageBitmap from an ImageData scaled down, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with ImageData is not implemented"
     44FAIL createImageBitmap from an ImageData scaled up, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with ImageData is not implemented"
     45FAIL createImageBitmap from an ImageData resized, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with ImageData is not implemented"
     46FAIL createImageBitmap from an ImageData with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "RangeError: Cannot create ImageBitmap with a negative width or height"
     47PASS createImageBitmap from an ImageBitmap, and drawImage on the created ImageBitmap
     48PASS createImageBitmap from an ImageBitmap scaled down, and drawImage on the created ImageBitmap
     49PASS createImageBitmap from an ImageBitmap scaled up, and drawImage on the created ImageBitmap
     50PASS createImageBitmap from an ImageBitmap resized, and drawImage on the created ImageBitmap
     51FAIL createImageBitmap from an ImageBitmap with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "RangeError: Cannot create ImageBitmap with a negative width or height"
     52FAIL createImageBitmap from a Blob, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with ArrayBuffer or Blob is not implemented"
     53FAIL createImageBitmap from a Blob scaled down, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with ArrayBuffer or Blob is not implemented"
     54FAIL createImageBitmap from a Blob scaled up, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with ArrayBuffer or Blob is not implemented"
     55FAIL createImageBitmap from a Blob resized, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "TypeError: createImageBitmap with ArrayBuffer or Blob is not implemented"
     56FAIL createImageBitmap from a Blob with negative sw/sh, and drawImage on the created ImageBitmap promise_test: Unhandled rejection with value: object "RangeError: Cannot create ImageBitmap with a negative width or height"
    1857
  • trunk/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html

    r227973 r228003  
    55<script src="/resources/testharnessreport.js"></script>
    66<script src="/common/canvas-tests.js"></script>
    7 <script src="common.js"></script>
     7<script src="/common/media.js"></script>
     8<script src="/common/namespaces.js"></script>
     9<script src="common.sub.js"></script>
    810<link rel="stylesheet" href="/common/canvas-tests.css">
    911<body>
    1012<script>
    11 function testCanvasDisplayingPattern(canvas)
     13function testCanvasDisplayingPattern(canvas, width, height)
    1214{
    1315    var tolerance = 5; // for creating ImageBitmap from a video, the tolerance needs to be high
    14     _assertPixelApprox(canvas, 5,5, 255,0,0,255, "5,5", "255,0,0,255", tolerance);
    15     _assertPixelApprox(canvas, 15,5, 0,255,0,255, "15,5", "0,255,0,255", tolerance);
    16     _assertPixelApprox(canvas, 5,15, 0,0,255,255, "5,15", "0,0,255,255", tolerance);
    17     _assertPixelApprox(canvas, 15,15, 0,0,0,255, "15,15", "0,0,0,255", tolerance);
     16    const check = (x, y, r, g, b, a) =>
     17        _assertPixelApprox(canvas, x,y, r,g,b,a, `${x},${y}`, `${r},${g},${b},${a}`, tolerance);
     18    check(1 * width / 4, 1 * height / 4, 255,0,0,255);
     19    check(3 * width / 4, 1 * height / 4, 0,255,0,255);
     20    check(1 * width / 4, 3 * height / 4, 0,0,255,255);
     21    check(3 * width / 4, 3 * height / 4, 0,0,0,255);
    1822}
    1923
    20 function testDrawImageBitmap(source, args = [])
     24function testDrawImageBitmap(source, args = [], { resizeWidth = 20, resizeHeight = 20 } = {})
    2125{
    2226    var canvas = document.createElement("canvas");
    23     canvas.width = 20;
    24     canvas.height = 20;
     27    canvas.width = resizeWidth;
     28    canvas.height = resizeHeight;
    2529    var ctx = canvas.getContext("2d");
    26     ctx.clearRect(0, 0, canvas.width, canvas.height);
    2730    return createImageBitmap(source, ...args).then(imageBitmap => {
     31        assert_equals(imageBitmap.width, resizeWidth);
     32        assert_equals(imageBitmap.height, resizeHeight);
    2833        ctx.drawImage(imageBitmap, 0, 0);
    29         testCanvasDisplayingPattern(canvas);
     34        testCanvasDisplayingPattern(canvas, resizeWidth, resizeHeight);
    3035    });
    3136}
     
    4045    promise_test(function() {
    4146        return factory().then(function(img) {
     47            const options = { resizeWidth: 10, resizeHeight: 10 };
     48            return testDrawImageBitmap(img, [options], options);
     49        });
     50    }, `createImageBitmap from ${name} scaled down, and drawImage on the created ImageBitmap`);
     51
     52    promise_test(function() {
     53        return factory().then(function(img) {
     54            const options = { resizeWidth: 40, resizeHeight: 40 };
     55            return testDrawImageBitmap(img, [options], options);
     56        });
     57    }, `createImageBitmap from ${name} scaled up, and drawImage on the created ImageBitmap`);
     58
     59    promise_test(function() {
     60        return factory().then(function(img) {
     61            const options = { resizeWidth: 10, resizeHeight: 40 };
     62            return testDrawImageBitmap(img, [options], options);
     63        });
     64    }, `createImageBitmap from ${name} resized, and drawImage on the created ImageBitmap`);
     65
     66    promise_test(function() {
     67        return factory().then(function(img) {
    4268            return testDrawImageBitmap(img, [20, 20, -20, -20]);
    4369        });
  • trunk/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt

    r227973 r228003  
    1 
    2 Harness Error (TIMEOUT), message = null
     1CONSOLE MESSAGE: line 137: Canvas area exceeds the maximum limit (width * height > 268435456).
    32
    43PASS createImageBitmap with a an HTMLCanvasElement source and sw set to 0
    54PASS createImageBitmap with a an HTMLCanvasElement source and sh set to 0
    65FAIL createImageBitmap with a an HTMLCanvasElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
    7 TIMEOUT createImageBitmap with a an HTMLVideoElement source and sw set to 0 Test timed out
    8 NOTRUN createImageBitmap with a an HTMLVideoElement source and sh set to 0
    9 NOTRUN createImageBitmap with a an HTMLVideoElement source and oversized (unallocatable) crop region
    10 NOTRUN createImageBitmap with a an HTMLImageElement source and sw set to 0
    11 NOTRUN createImageBitmap with a an HTMLImageElement source and sh set to 0
    12 NOTRUN createImageBitmap with a an HTMLImageElement source and oversized (unallocatable) crop region
    13 NOTRUN createImageBitmap with a an OffscreenCanvas source and sw set to 0
    14 NOTRUN createImageBitmap with a an OffscreenCanvas source and sh set to 0
    15 NOTRUN createImageBitmap with a an OffscreenCanvas source and oversized (unallocatable) crop region
    16 NOTRUN createImageBitmap with a an ImageData source and sw set to 0
    17 NOTRUN createImageBitmap with a an ImageData source and sh set to 0
    18 NOTRUN createImageBitmap with a an ImageData source and oversized (unallocatable) crop region
    19 NOTRUN createImageBitmap with a an ImageBitmap source and sw set to 0
    20 NOTRUN createImageBitmap with a an ImageBitmap source and sh set to 0
    21 NOTRUN createImageBitmap with a an ImageBitmap source and oversized (unallocatable) crop region
    22 NOTRUN createImageBitmap with a a Blob source and sw set to 0
    23 NOTRUN createImageBitmap with a a Blob source and sh set to 0
    24 NOTRUN createImageBitmap with a a Blob source and oversized (unallocatable) crop region
    25 NOTRUN createImageBitmap with undefined image source.
    26 NOTRUN createImageBitmap with null image source.
    27 NOTRUN createImageBitmap with empty image source.
    28 NOTRUN createImageBitmap with empty video source.
    29 NOTRUN createImageBitmap with an oversized canvas source.
    30 NOTRUN createImageBitmap with an invalid OffscreenCanvas source.
    31 NOTRUN createImageBitmap with an undecodable blob source.
    32 NOTRUN createImageBitmap with a broken image source.
    33 NOTRUN createImageBitmap with an available but undecodable image source.
    34 NOTRUN createImageBitmap with a closed ImageBitmap.
     6PASS createImageBitmap with a an HTMLVideoElement source and sw set to 0
     7PASS createImageBitmap with a an HTMLVideoElement source and sh set to 0
     8FAIL createImageBitmap with a an HTMLVideoElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     9PASS createImageBitmap with a an HTMLVideoElement from a data URL source and sw set to 0
     10PASS createImageBitmap with a an HTMLVideoElement from a data URL source and sh set to 0
     11FAIL createImageBitmap with a an HTMLVideoElement from a data URL source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     12PASS createImageBitmap with a a bitmap HTMLImageElement source and sw set to 0
     13PASS createImageBitmap with a a bitmap HTMLImageElement source and sh set to 0
     14FAIL createImageBitmap with a a bitmap HTMLImageElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     15PASS createImageBitmap with a a vector HTMLImageElement source and sw set to 0
     16PASS createImageBitmap with a a vector HTMLImageElement source and sh set to 0
     17FAIL createImageBitmap with a a vector HTMLImageElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     18FAIL createImageBitmap with a a bitmap SVGImageElement source and sw set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     19FAIL createImageBitmap with a a bitmap SVGImageElement source and sh set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     20FAIL createImageBitmap with a a bitmap SVGImageElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     21FAIL createImageBitmap with a a vector SVGImageElement source and sw set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     22FAIL createImageBitmap with a a vector SVGImageElement source and sh set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     23FAIL createImageBitmap with a a vector SVGImageElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     24FAIL createImageBitmap with a an OffscreenCanvas source and sw set to 0 promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     25FAIL createImageBitmap with a an OffscreenCanvas source and sh set to 0 promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     26FAIL createImageBitmap with a an OffscreenCanvas source and oversized (unallocatable) crop region promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     27PASS createImageBitmap with a an ImageData source and sw set to 0
     28PASS createImageBitmap with a an ImageData source and sh set to 0
     29FAIL createImageBitmap with a an ImageData source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with ImageData is not implemented" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     30PASS createImageBitmap with a an ImageBitmap source and sw set to 0
     31PASS createImageBitmap with a an ImageBitmap source and sh set to 0
     32FAIL createImageBitmap with a an ImageBitmap source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     33PASS createImageBitmap with a a Blob source and sw set to 0
     34PASS createImageBitmap with a a Blob source and sh set to 0
     35FAIL createImageBitmap with a a Blob source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with ArrayBuffer or Blob is not implemented" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     36PASS createImageBitmap with undefined image source.
     37PASS createImageBitmap with null image source.
     38PASS createImageBitmap with CanvasRenderingContext2D image source.
     39PASS createImageBitmap with WebGLRenderingContext image source.
     40PASS createImageBitmap with Uint8Array image source.
     41PASS createImageBitmap with ArrayBuffer image source.
     42PASS createImageBitmap with empty image source.
     43FAIL createImageBitmap with empty video source. assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" that is not a DOMException InvalidStateError: property "code" is equal to undefined, expected 11
     44PASS createImageBitmap with an oversized canvas source.
     45FAIL createImageBitmap with an invalid OffscreenCanvas source. assert_throws: function "function () { throw e }" threw object "TypeError: Type error" that is not a DOMException InvalidStateError: property "code" is equal to undefined, expected 11
     46FAIL createImageBitmap with an undecodable blob source. assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with ArrayBuffer or Blob is not implemented" that is not a DOMException InvalidStateError: property "code" is equal to undefined, expected 11
     47PASS createImageBitmap with a broken image source.
     48FAIL createImageBitmap with an available but undecodable image source. assert_unreached: Should have rejected: undefined Reached unreachable code
     49FAIL createImageBitmap with an available but zero height image source. assert_unreached: Should have rejected: undefined Reached unreachable code
     50FAIL createImageBitmap with an available but zero width image source. assert_unreached: Should have rejected: undefined Reached unreachable code
     51PASS createImageBitmap with a closed ImageBitmap.
    3552
  • trunk/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html

    r227973 r228003  
    22<script src="/resources/testharness.js"></script>
    33<script src="/resources/testharnessreport.js"></script>
    4 <script src="common.js"></script>
     4<script src="/common/media.js"></script>
     5<script src="/common/namespaces.js"></script>
     6<script src="common.sub.js"></script>
    57<script>
    68
     
    2931
    3032function makeBrokenImage() {
    31   return new Promise(resolve => {
     33  return new Promise((resolve, reject) => {
    3234    const image = new Image();
    3335    image.src = "data:,x";
     36    image.onload = reject;
    3437    image.onerror = () => resolve(image);
    3538  });
    3639}
    3740
    38 function makeAvailableButBrokenImage() {
     41function makeAvailableButBrokenImage(path) {
    3942  return new Promise((resolve, reject) => {
    4043    const image = new Image();
    41     image.src = "/images/broken.png";
     44    image.src = path;
    4245    image.onload = () => resolve(image);
    4346    image.onerror = reject;
     
    100103
    101104promise_test( t => {
     105  var context = document.createElement("canvas").getContext("2d");
     106  return promise_rejects(t, new TypeError(), createImageBitmap(context));
     107}, "createImageBitmap with CanvasRenderingContext2D image source.");
     108
     109promise_test( t => {
     110  var context = document.createElement("canvas").getContext("webgl");
     111  return promise_rejects(t, new TypeError(), createImageBitmap(context));
     112}, "createImageBitmap with WebGLRenderingContext image source.");
     113
     114promise_test( t => {
     115  var buffer = new Uint8Array();
     116  return promise_rejects(t, new TypeError(), createImageBitmap(buffer));
     117}, "createImageBitmap with Uint8Array image source.");
     118
     119promise_test( t => {
     120  var buffer = new ArrayBuffer(8);
     121  return promise_rejects(t, new TypeError(), createImageBitmap(buffer));
     122}, "createImageBitmap with ArrayBuffer image source.");
     123
     124promise_test( t => {
    102125  return promise_rejects(t, "InvalidStateError",
    103126    createImageBitmap(new Image()));
     
    138161
    139162promise_test( t => {
    140   return makeAvailableButBrokenImage().then(image => {
     163  return makeAvailableButBrokenImage("/images/broken.png").then(image => {
    141164    return promise_rejects(t, "InvalidStateError",
    142165        createImageBitmap(image));
    143166  });
    144167}, "createImageBitmap with an available but undecodable image source.");
     168
     169promise_test( t => {
     170  return makeAvailableButBrokenImage("/images/red-zeroheight.svg").then(image => {
     171    return promise_rejects(t, "InvalidStateError",
     172        createImageBitmap(image));
     173  });
     174}, "createImageBitmap with an available but zero height image source.");
     175
     176promise_test( t => {
     177  return makeAvailableButBrokenImage("/images/red-zerowidth.svg").then(image => {
     178    return promise_rejects(t, "InvalidStateError",
     179        createImageBitmap(image));
     180  });
     181}, "createImageBitmap with an available but zero width image source.");
    145182
    146183promise_test( t => {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/w3c-import.log

    r227973 r228003  
    1515------------------------------------------------------------------------
    1616List of files:
    17 /LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.js
     17/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.sub.js
    1818/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html
    1919/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html
     20/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html
    2021/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/common/w3c-import.log

    r227973 r228003  
    4444/LayoutTests/imported/w3c/web-platform-tests/common/media.js
    4545/LayoutTests/imported/w3c/web-platform-tests/common/media.js.headers
     46/LayoutTests/imported/w3c/web-platform-tests/common/namespaces.js
    4647/LayoutTests/imported/w3c/web-platform-tests/common/object-association.js
    4748/LayoutTests/imported/w3c/web-platform-tests/common/object-association.js.headers
  • trunk/LayoutTests/imported/w3c/web-platform-tests/images/w3c-import.log

    r227973 r228003  
    3939/LayoutTests/imported/w3c/web-platform-tests/images/grgr-256x256.png
    4040/LayoutTests/imported/w3c/web-platform-tests/images/movie_300_frame_0.png
     41/LayoutTests/imported/w3c/web-platform-tests/images/pattern.mp4
    4142/LayoutTests/imported/w3c/web-platform-tests/images/pattern.ogv
    4243/LayoutTests/imported/w3c/web-platform-tests/images/pattern.png
     44/LayoutTests/imported/w3c/web-platform-tests/images/pattern.svg
    4345/LayoutTests/imported/w3c/web-platform-tests/images/red-16x16.png
    4446/LayoutTests/imported/w3c/web-platform-tests/images/red-zeroheight.svg
  • trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt

    r227973 r228003  
    1 CONSOLE MESSAGE: line 114: Canvas area exceeds the maximum limit (width * height > 268435456).
     1CONSOLE MESSAGE: line 137: Canvas area exceeds the maximum limit (width * height > 268435456).
    22
    33PASS createImageBitmap with a an HTMLCanvasElement source and sw set to 0
     
    77PASS createImageBitmap with a an HTMLVideoElement source and sh set to 0
    88FAIL createImageBitmap with a an HTMLVideoElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
    9 PASS createImageBitmap with a an HTMLImageElement source and sw set to 0
    10 PASS createImageBitmap with a an HTMLImageElement source and sh set to 0
    11 FAIL createImageBitmap with a an HTMLImageElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     9PASS createImageBitmap with a an HTMLVideoElement from a data URL source and sw set to 0
     10PASS createImageBitmap with a an HTMLVideoElement from a data URL source and sh set to 0
     11FAIL createImageBitmap with a an HTMLVideoElement from a data URL source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     12PASS createImageBitmap with a a bitmap HTMLImageElement source and sw set to 0
     13PASS createImageBitmap with a a bitmap HTMLImageElement source and sh set to 0
     14FAIL createImageBitmap with a a bitmap HTMLImageElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     15PASS createImageBitmap with a a vector HTMLImageElement source and sw set to 0
     16PASS createImageBitmap with a a vector HTMLImageElement source and sh set to 0
     17FAIL createImageBitmap with a a vector HTMLImageElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     18FAIL createImageBitmap with a a bitmap SVGImageElement source and sw set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     19FAIL createImageBitmap with a a bitmap SVGImageElement source and sh set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     20FAIL createImageBitmap with a a bitmap SVGImageElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     21FAIL createImageBitmap with a a vector SVGImageElement source and sw set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     22FAIL createImageBitmap with a a vector SVGImageElement source and sh set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     23FAIL createImageBitmap with a a vector SVGImageElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
    1224FAIL createImageBitmap with a an OffscreenCanvas source and sw set to 0 promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
    1325FAIL createImageBitmap with a an OffscreenCanvas source and sh set to 0 promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     
    2436PASS createImageBitmap with undefined image source.
    2537PASS createImageBitmap with null image source.
     38PASS createImageBitmap with CanvasRenderingContext2D image source.
     39PASS createImageBitmap with WebGLRenderingContext image source.
     40PASS createImageBitmap with Uint8Array image source.
     41PASS createImageBitmap with ArrayBuffer image source.
    2642PASS createImageBitmap with empty image source.
    2743FAIL createImageBitmap with empty video source. assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" that is not a DOMException InvalidStateError: property "code" is equal to undefined, expected 11
     
    3147PASS createImageBitmap with a broken image source.
    3248FAIL createImageBitmap with an available but undecodable image source. promise_test: Unhandled rejection with value: object "[object Event]"
     49FAIL createImageBitmap with an available but zero height image source. assert_unreached: Should have rejected: undefined Reached unreachable code
     50FAIL createImageBitmap with an available but zero width image source. assert_unreached: Should have rejected: undefined Reached unreachable code
    3351PASS createImageBitmap with a closed ImageBitmap.
    3452
  • trunk/LayoutTests/platform/mac/TestExpectations

    r227968 r228003  
    17921792webkit.org/b/181831 [ HighSierra+ ] fast/forms/searchfield-heights.html [ Pass Failure ]
    17931793
     1794webkit.org/b/182422 imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html [ Crash ]
  • trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt

    r227973 r228003  
    1 CONSOLE MESSAGE: line 114: Canvas area exceeds the maximum limit (width * height > 268435456).
     1CONSOLE MESSAGE: line 137: Canvas area exceeds the maximum limit (width * height > 268435456).
    22
    33PASS createImageBitmap with a an HTMLCanvasElement source and sw set to 0
     
    77PASS createImageBitmap with a an HTMLVideoElement source and sh set to 0
    88FAIL createImageBitmap with a an HTMLVideoElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
    9 PASS createImageBitmap with a an HTMLImageElement source and sw set to 0
    10 PASS createImageBitmap with a an HTMLImageElement source and sh set to 0
    11 FAIL createImageBitmap with a an HTMLImageElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     9PASS createImageBitmap with a an HTMLVideoElement from a data URL source and sw set to 0
     10PASS createImageBitmap with a an HTMLVideoElement from a data URL source and sh set to 0
     11FAIL createImageBitmap with a an HTMLVideoElement from a data URL source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     12PASS createImageBitmap with a a bitmap HTMLImageElement source and sw set to 0
     13PASS createImageBitmap with a a bitmap HTMLImageElement source and sh set to 0
     14FAIL createImageBitmap with a a bitmap HTMLImageElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     15PASS createImageBitmap with a a vector HTMLImageElement source and sw set to 0
     16PASS createImageBitmap with a a vector HTMLImageElement source and sh set to 0
     17FAIL createImageBitmap with a a vector HTMLImageElement source and oversized (unallocatable) crop region assert_unreached: Should have rejected: undefined Reached unreachable code
     18FAIL createImageBitmap with a a bitmap SVGImageElement source and sw set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     19FAIL createImageBitmap with a a bitmap SVGImageElement source and sh set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     20FAIL createImageBitmap with a a bitmap SVGImageElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
     21FAIL createImageBitmap with a a vector SVGImageElement source and sw set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     22FAIL createImageBitmap with a a vector SVGImageElement source and sh set to 0 assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "RangeError" ("RangeError")
     23FAIL createImageBitmap with a a vector SVGImageElement source and oversized (unallocatable) crop region assert_throws: function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "InvalidStateError" ("InvalidStateError")
    1224FAIL createImageBitmap with a an OffscreenCanvas source and sw set to 0 promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
    1325FAIL createImageBitmap with a an OffscreenCanvas source and sh set to 0 promise_test: Unhandled rejection with value: object "TypeError: null is not an object (evaluating 'testCtx.fillStyle = "rgb(255, 0, 0)"')"
     
    2436PASS createImageBitmap with undefined image source.
    2537PASS createImageBitmap with null image source.
     38PASS createImageBitmap with CanvasRenderingContext2D image source.
     39PASS createImageBitmap with WebGLRenderingContext image source.
     40PASS createImageBitmap with Uint8Array image source.
     41PASS createImageBitmap with ArrayBuffer image source.
    2642PASS createImageBitmap with empty image source.
    2743FAIL createImageBitmap with empty video source. assert_throws: function "function () { throw e }" threw object "TypeError: createImageBitmap with HTMLVideoElement is not implemented" that is not a DOMException InvalidStateError: property "code" is equal to undefined, expected 11
     
    3147PASS createImageBitmap with a broken image source.
    3248FAIL createImageBitmap with an available but undecodable image source. promise_test: Unhandled rejection with value: object "[object Event]"
     49FAIL createImageBitmap with an available but zero height image source. assert_unreached: Should have rejected: undefined Reached unreachable code
     50FAIL createImageBitmap with an available but zero width image source. assert_unreached: Should have rejected: undefined Reached unreachable code
    3351PASS createImageBitmap with a closed ImageBitmap.
    3452
Note: See TracChangeset for help on using the changeset viewer.