Update web-platform-tests to revision 341891a7294014cb21b0a85cd0e024997aa21555

This commit is contained in:
WPT Sync Bot 2019-11-04 10:24:25 +00:00
parent 84f13342f6
commit 4aba25d880
31 changed files with 370 additions and 82 deletions

View file

@ -7,7 +7,7 @@
expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.]
expected: FAIL
expected: TIMEOUT
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: FAIL

View file

@ -264669,7 +264669,7 @@
"docs/writing-tests/test-templates.md": [
[]
],
"docs/writing-tests/testdriver-tutorial.md": [
"docs/writing-tests/testdriver-extension-tutorial.md": [
[]
],
"docs/writing-tests/testdriver.md": [
@ -321772,9 +321772,15 @@
{}
]
],
"css/css-masking/animations/clip-path-interpolation.html": [
"css/css-masking/animations/clip-path-interpolation-001.html": [
[
"css/css-masking/animations/clip-path-interpolation.html",
"css/css-masking/animations/clip-path-interpolation-001.html",
{}
]
],
"css/css-masking/animations/clip-path-interpolation-002.html": [
[
"css/css-masking/animations/clip-path-interpolation-002.html",
{}
]
],
@ -579051,10 +579057,14 @@
"322ebd724e8524e85d8afe369b6bafaabbec8c79",
"testharness"
],
"css/css-masking/animations/clip-path-interpolation.html": [
"css/css-masking/animations/clip-path-interpolation-001.html": [
"21c34f1f2b75ec7345a97b00db62a49b038cf026",
"testharness"
],
"css/css-masking/animations/clip-path-interpolation-002.html": [
"e00170ed331bcbca450a4de5ef41c415cc88d2b9",
"testharness"
],
"css/css-masking/clip-path-svg-content/clip-path-clip-nested-twice.svg": [
"269e8feed2d3c21774a7c94729c3551899ce4d92",
"reftest"
@ -631176,7 +631186,7 @@
"support"
],
"docs/running-tests/from-local-system.md": [
"0f337176c47d7c38bcaebd85fd86628e1870dfae",
"bc8b50ffd104199c3489415119e1ef148723827a",
"support"
],
"docs/running-tests/from-web.md": [
@ -631236,7 +631246,7 @@
"support"
],
"docs/writing-tests/index.md": [
"0e0d3f35b00a20345d319914344bf779d4016aa8",
"84735b5ba3644a7a9e30ae21591649e75c82208f",
"support"
],
"docs/writing-tests/lint-tool.md": [
@ -631283,12 +631293,12 @@
"858758b4c8e022afe53d76184a65a44da8106a1b",
"support"
],
"docs/writing-tests/testdriver-tutorial.md": [
"275c813355c6cb8e6b5e2e6c1595f40bde28e7ec",
"docs/writing-tests/testdriver-extension-tutorial.md": [
"262e394353632ccc4aaa8b42955d09a0de61624f",
"support"
],
"docs/writing-tests/testdriver.md": [
"99176906130c3812c9876fe72707175e35d961e8",
"6b398b993b61f835dc18b1a97019ab3d3d1377e0",
"support"
],
"docs/writing-tests/testharness-api.md": [
@ -631300,7 +631310,7 @@
"support"
],
"docs/writing-tests/testharness.md": [
"17ee097ce185d07ac7353a1541c5c30593b9c387",
"acab70a1f1630cce6a270d8a966d166c90c23c22",
"support"
],
"docs/writing-tests/tools.md": [
@ -661992,7 +662002,7 @@
"support"
],
"interfaces/html.idl": [
"8347c5d4cdc9b00550efcec7f2a77993f2b7ccf6",
"486875ec274f84ca5a6dae5c341b76119cc2e540",
"support"
],
"interfaces/image-capture.idl": [

View file

@ -5,9 +5,9 @@
[[data-expected-height\] 7]
expected: FAIL
[[data-expected-height\] 3]
[[data-expected-height\] 1]
expected: FAIL
[[data-expected-height\] 4]
[[data-expected-height\] 2]
expected: FAIL

View file

@ -312,18 +312,21 @@
[<iframe>: separate response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

@ -56,6 +56,9 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript ]
[separate text/javascript;charset=windows-1252 error text/javascript]
expected: FAIL
[separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL

View file

@ -11,3 +11,9 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
[X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL
[X-Content-Type-Options%3A%20%22nosniFF%22]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,7 +1,7 @@
[document_domain_access_details.sub.html]
expected: TIMEOUT
[Access allowed if same-origin with no 'document.domain' modification. (Sanity check)]
expected: TIMEOUT
expected: FAIL
[Access is revoked to Window object when we stop being same effective script origin due to document.domain.]
expected: NOTRUN
@ -13,7 +13,7 @@
expected: NOTRUN
[Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)]
expected: NOTRUN
expected: FAIL
[Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.]
expected: NOTRUN
@ -22,13 +22,13 @@
expected: NOTRUN
[Access allowed if same-origin and both set document.domain to existing value.]
expected: NOTRUN
expected: TIMEOUT
[Access is not revoked to Document object when we stop being same effective script origin due to document.domain.]
expected: NOTRUN
[Access disallowed if same-origin but only one sets document.domain.]
expected: NOTRUN
expected: FAIL
[Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again.]
expected: NOTRUN

View file

@ -1,5 +1,5 @@
[embedded-opener-remove-frame.html]
expected: CRASH
expected: TIMEOUT
[opener and "removed" embedded documents]
expected: FAIL
@ -7,5 +7,5 @@
expected: FAIL
[opener of discarded auxiliary browsing context]
expected: FAIL
expected: TIMEOUT

View file

@ -1391,6 +1391,27 @@
[SVGAElement includes HTMLHyperlinkElementUtils: member names are unique]
expected: FAIL
[SubmitEvent interface object name]
expected: FAIL
[SubmitEvent interface object length]
expected: FAIL
[SubmitEvent interface: existence and properties of interface prototype object]
expected: FAIL
[SubmitEvent interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[SubmitEvent interface: attribute submitter]
expected: FAIL
[SubmitEvent interface: existence and properties of interface object]
expected: FAIL
[SubmitEvent interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[idlharness.https.html?include=(Document|Window)]
[Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type]

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[button-submit-children.html]
expected: TIMEOUT
[This test will pass if a form navigation successfully occurs when clicking a child element of a <button type=submit> element with a onclick event handler which prevents the default form submission and manually calls form.submit() instead.]
expected: TIMEOUT

View file

@ -1,7 +0,0 @@
[toggleEvent.html]
[Calling open twice on 'details' fires only one toggle event]
expected: FAIL
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
expected: FAIL

View file

@ -0,0 +1,4 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -1,4 +1,5 @@
[2d.shadow.offset.negativeX.html]
expected: CRASH
[Shadows can be offset with negative x]
expected: FAIL

View file

@ -1,4 +1,5 @@
[realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[WorkerGlobalScope-close.html]
[Test sending a message after closing.]
expected: FAIL

View file

@ -1,5 +1,4 @@
[import-in-moduleworker.html]
expected: ERROR
[Base URL in module dedicated workers: import]
expected: FAIL

View file

@ -1,5 +1,4 @@
[sharedworker-in-worker.html]
expected: ERROR
[Base URL in workers: new SharedWorker()]
expected: FAIL

View file

@ -1,2 +0,0 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -0,0 +1,221 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<meta charset="UTF-8">
<title>clip-path-interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#theclip-path">
<meta name="assert" content="clip-path supports animation">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/interpolation-testcommon.js"></script>
<style>
.parent {
clip-path: inset(10px);
padding: 10px;
}
.target {
display: inline-block;
width: 100px;
height: 100px;
background-color: black;
clip-path: inset(10px);
}
.expected {
background-color: green;
}
</style>
<body>
<script>
test_interpolation({
property: 'clip-path',
from: neutralKeyframe,
to: 'inset(20px)',
}, [
{at: -0.3, expect: 'inset(7px)'},
{at: 0, expect: 'inset(10px)'},
{at: 0.3, expect: 'inset(13px)'},
{at: 0.6, expect: 'inset(16px)'},
{at: 1, expect: 'inset(20px)'},
{at: 1.5, expect: 'inset(25px)'},
]);
test_no_interpolation({
property: 'clip-path',
from: 'initial',
to: 'inset(20px)',
});
test_interpolation({
property: 'clip-path',
from: 'inherit',
to: 'inset(20px)',
}, [
{at: -0.3, expect: 'inset(7px)'},
{at: 0, expect: 'inset(10px)'},
{at: 0.3, expect: 'inset(13px)'},
{at: 0.6, expect: 'inset(16px)'},
{at: 1, expect: 'inset(20px)'},
{at: 1.5, expect: 'inset(25px)'},
]);
test_no_interpolation({
property: 'clip-path',
from: 'unset',
to: 'inset(20px)',
});
test_no_interpolation({
property: 'clip-path',
from: 'none',
to: 'circle(3px at 1px 2px)',
});
test_interpolation({
property: 'clip-path',
from: 'circle(10px at 25px 75%)',
to: 'circle(50px at 50px center)'
}, [
{at: -0.3, expect: 'circle(0px at 17.5px 82.5%)'}, // radius can't be negative
{at: 0, expect: 'circle(10px at 25px 75%)'},
{at: 0.3, expect: 'circle(22px at 32.5px 67.5%)'},
{at: 0.6, expect: 'circle(34px at 40px 60%)'},
{at: 1, expect: 'circle(50px at 50px 50%)'},
{at: 1.5, expect: 'circle(70px at 62.5px 37.5%)'},
]);
test_no_interpolation({
property: 'clip-path',
from: 'circle(farthest-side at 25px 75%)',
to: 'circle(farthest-side at 50px center)'
});
test_no_interpolation({
property: 'clip-path',
from: 'circle(closest-side at 10px 20px)',
to: 'circle(farthest-side at 30px 40px)',
});
test_no_interpolation({
property: 'clip-path',
from: 'circle(50px at 10px 20px)',
to: 'circle(farthest-side at 30px 40px)',
});
test_interpolation({
property: 'clip-path',
from: 'ellipse(10px 20px at 25px 75px)',
to: 'ellipse(50px 100px at 50px 50px)',
}, [
{at: -0.3, expect: 'ellipse(0px 0px at 17.5px 82.5px)'}, // radius can't be negative
{at: 0, expect: 'ellipse(10px 20px at 25px 75px)'},
{at: 0.3, expect: 'ellipse(22px 44px at 32.5px 67.5px)'},
{at: 0.6, expect: 'ellipse(34px 68px at 40px 60px)'},
{at: 1, expect: 'ellipse(50px 100px at 50px 50px)'},
{at: 1.5, expect: 'ellipse(70px 140px at 62.5px 37.5px)'},
]);
test_no_interpolation({
property: 'clip-path',
from: 'ellipse(closest-side farthest-side at 25px 75%)',
to: 'ellipse(closest-side farthest-side at 50px center)',
});
test_no_interpolation({
property: 'clip-path',
from: 'ellipse(closest-side farthest-side at 10px 20px)',
to: 'ellipse(farthest-side closest-side at 30px 40px)',
});
test_no_interpolation({
property: 'clip-path',
from: 'ellipse(50px closest-side at 10px 20px)',
to: 'ellipse(150px farthest-side at 30px 40px)',
});
test_interpolation({
property: 'clip-path',
from: 'inset(20px)',
to: 'inset(40%)',
}, [
{at: -0.3, expect: 'inset(calc(26px + -12%))'},
{at: 0, expect: 'inset(calc(20px + 0%))'},
{at: 0.3, expect: 'inset(calc(14px + 12%))'},
{at: 0.6, expect: 'inset(calc(8px + 24%))'},
{at: 1, expect: 'inset(40%)'},
{at: 1.5, expect: 'inset(calc(-10px + 60%))'},
]);
test_interpolation({
property: 'clip-path',
from: 'inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)',
to: 'inset(101px 102px 103px 104px round 110px 120px 130px 140px / 150px 160px 170px 180px)',
}, [
{at: -0.3, expect: 'inset(-29px -28px -27px -26px round 0px 0px 0px 10px / 20px 30px 40px 50px)'},
{at: 0, expect: 'inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)'},
{at: 0.3, expect: 'inset(31px 32px 33px 34px round 40px 50px 60px 70px / 80px 90px 100px 110px)'},
{at: 0.6, expect: 'inset(61px 62px 63px 64px round 70px 80px 90px 100px / 110px 120px 130px 140px)'},
{at: 1, expect: 'inset(101px 102px 103px 104px round 110px 120px 130px 140px / 150px 160px 170px 180px)'},
{at: 1.5, expect: 'inset(151px 152px 153px 154px round 160px 170px 180px 190px / 200px 210px 220px 230px)'},
]);
test_interpolation({
property: 'clip-path',
from: 'inset(1px 2px round 100px 200px)',
to: 'inset(101px 102px 101px 102px)',
}, [
{at: -0.3, expect: 'inset(-29px -28px round 130px 260px)'},
{at: 0, expect: 'inset(1px 2px round 100px 200px)'},
{at: 0.3, expect: 'inset(31px 32px round 70px 140px)'},
{at: 0.6, expect: 'inset(61px 62px round 40px 80px)'},
{at: 1, expect: 'inset(101px 102px)'},
{at: 1.5, expect: 'inset(151px 152px)'}, // border radius can't be negative
]);
test_interpolation({
property: 'clip-path',
from: 'polygon(10px 20%, 30px 40%)',
to: 'polygon(110px 120%, 130px 140%)',
}, [
{at: -0.3, expect: 'polygon(-20px -10%, 0px 10%)'},
{at: 0, expect: 'polygon(10px 20%, 30px 40%)'},
{at: 0.3, expect: 'polygon(40px 50%, 60px 70%)'},
{at: 0.6, expect: 'polygon(70px 80%, 90px 100%)'},
{at: 1, expect: 'polygon(110px 120%, 130px 140%)'},
{at: 1.5, expect: 'polygon(160px 170%, 180px 190%)'},
]);
test_interpolation({
property: 'clip-path',
from: 'polygon(evenodd, 10px 20px)',
to: 'polygon(evenodd, 110px 120px)',
}, [
{at: -0.3, expect: 'polygon(evenodd, -20px -10px)'},
{at: 0, expect: 'polygon(evenodd, 10px 20px)'},
{at: 0.3, expect: 'polygon(evenodd, 40px 50px)'},
{at: 0.6, expect: 'polygon(evenodd, 70px 80px)'},
{at: 1, expect: 'polygon(evenodd, 110px 120px)'},
{at: 1.5, expect: 'polygon(evenodd, 160px 170px)'},
]);
test_no_interpolation({
property: 'clip-path',
from: 'polygon(evenodd, 10px 20px)',
to: 'polygon(nonzero, 110px 120px)',
});
test_no_interpolation({
property: 'clip-path',
from: 'polygon(evenodd, 10px 20px)',
to: 'polygon(110px 120px)',
});
test_no_interpolation({
property: 'clip-path',
from: 'polygon(10px 20px, 30px 40px)',
to: 'polygon(110px 120px)',
});
</script>
</body>

View file

@ -36,7 +36,7 @@ pip install --user virtualenv
To make the `PATH` change persistent, add it to your `~/.bash_profile` file or
wherever you currently set your PATH.
See also [additional setup required to run Safari](safari).
See also [additional setup required to run Safari](safari.md).
### Windows Setup
**Note:** In general, Windows Subsystem for Linux will provide the smoothest

View file

@ -28,7 +28,7 @@ There's also a load of [general guidelines](general-guidelines) that apply to al
server-features
submission-process
testdriver
testdriver-tutorial
testdriver-extension-tutorial
testharness
testharness-tutorial
tools

View file

@ -1,5 +1,4 @@
# testdriver.js Tutorial
# Testdriver extension tutorial
Adding new commands to testdriver.js
## Assumptions

View file

@ -16,16 +16,22 @@ the global scope.
NB: presently, testdriver.js only works in the top-level test browsing
context (and not therefore in any frame or window opened from it).
### action_sequence
Usage: `test_driver.action_sequence(actions)`
* `actions`: an array of `Action` objects
### Actions
Usage:
```
let actions = new test_driver.Actions()
.action1()
.action2();
actions.send()
```
This function causes a sequence of actions to be sent to the browser. It is based on the [WebDriver API](https://w3c.github.io/webdriver/#actions).
Test authors are encouraged to use the builder API to generate the sequence of actions. The builder
API can be accessed via the `new test_driver.Actions()` object, and actions are defined in [testdriver-actions.js](https://github.com/web-platform-tests/wpt/blob/master/resources/testdriver-actions.js)
The `actions.send()` function causes the sequence of actions to be sent to the browser. It is based on the [WebDriver API](https://w3c.github.io/webdriver/#actions).
The action can be a keyboard action, a pointer action or a pause. It returns a `Promise` that
resolves after the actions have been sent or rejects if an error was thrown.
Test authors are encouraged to use the builder API to generate the sequence of actions. The builder
API can be accessed via the `new test_driver.Actions()` object.
Example:

View file

@ -6,7 +6,7 @@
idlharness
testharness-api
testdriver-tutorial
testdriver-extension-tutorial
testdriver
```

View file

@ -266,9 +266,10 @@ interface HTMLQuoteElement : HTMLElement {
[CEReactions] attribute USVString cite;
};
[Exposed=Window,
HTMLConstructor]
[Exposed=Window]
interface HTMLOListElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute boolean reversed;
[CEReactions] attribute long start;
[CEReactions] attribute DOMString type;
@ -283,16 +284,17 @@ interface HTMLUListElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
[Exposed=Window]
interface HTMLMenuElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
[Exposed=Window]
interface HTMLLIElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute long value;
// also has obsolete members
@ -339,9 +341,10 @@ interface HTMLDataElement : HTMLElement {
[CEReactions] attribute DOMString value;
};
[Exposed=Window,
HTMLConstructor]
[Exposed=Window]
interface HTMLTimeElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute DOMString dateTime;
};
@ -396,9 +399,10 @@ interface HTMLSourceElement : HTMLElement {
};
[Exposed=Window,
HTMLConstructor,
NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
interface HTMLImageElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute DOMString alt;
[CEReactions] attribute USVString src;
[CEReactions] attribute USVString srcset;
@ -489,9 +493,10 @@ interface HTMLParamElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
[Exposed=Window]
interface HTMLVideoElement : HTMLMediaElement {
[HTMLConstructor] constructor();
[CEReactions] attribute unsigned long width;
[CEReactions] attribute unsigned long height;
readonly attribute unsigned long videoWidth;
@ -501,9 +506,10 @@ interface HTMLVideoElement : HTMLMediaElement {
};
[Exposed=Window,
HTMLConstructor,
NamedConstructor=Audio(optional DOMString src)]
interface HTMLAudioElement : HTMLMediaElement {};
interface HTMLAudioElement : HTMLMediaElement {
[HTMLConstructor] constructor();
};
[Exposed=Window]
interface HTMLTrackElement : HTMLElement {
@ -818,9 +824,10 @@ interface HTMLTableCellElement : HTMLElement {
[Exposed=Window,
OverrideBuiltins,
LegacyUnenumerableNamedProperties,
HTMLConstructor]
LegacyUnenumerableNamedProperties]
interface HTMLFormElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute DOMString acceptCharset;
[CEReactions] attribute USVString action;
[CEReactions] attribute DOMString autocomplete;
@ -839,7 +846,7 @@ interface HTMLFormElement : HTMLElement {
getter (RadioNodeList or Element) (DOMString name);
void submit();
void requestSubmit(optional HTMLElement submitter);
void requestSubmit(optional HTMLElement? submitter = null);
[CEReactions] void reset();
boolean checkValidity();
boolean reportValidity();
@ -996,9 +1003,10 @@ interface HTMLOptGroupElement : HTMLElement {
};
[Exposed=Window,
HTMLConstructor,
NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
interface HTMLOptionElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute boolean disabled;
readonly attribute HTMLFormElement? form;
[CEReactions] attribute DOMString label;
@ -1147,6 +1155,17 @@ interface ValidityState {
readonly attribute boolean valid;
};
[Exposed=Window]
interface SubmitEvent : Event {
constructor(DOMString type, optional SubmitEventInit eventInitDict = {});
readonly attribute HTMLElement? submitter;
};
dictionary SubmitEventInit : EventInit {
HTMLElement? submitter = null;
};
[Exposed=Window,
Constructor(DOMString type, optional FormDataEventInit eventInitDict = {})]
interface FormDataEvent : Event {
@ -1214,9 +1233,10 @@ dictionary AssignedNodesOptions {
typedef (CanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext or WebGL2RenderingContext) RenderingContext;
[Exposed=Window,
HTMLConstructor]
[Exposed=Window]
interface HTMLCanvasElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute unsigned long width;
[CEReactions] attribute unsigned long height;