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 expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.] [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.] [Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: FAIL expected: FAIL

View file

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

View file

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

View file

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

View file

@ -56,6 +56,9 @@
[separate text/javascript x/x] [separate text/javascript x/x]
expected: FAIL 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 expected: FAIL

View file

@ -11,3 +11,9 @@
[X-Content-Type-Options%3A%20nosniff%0C] [X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL 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] [document_domain_access_details.sub.html]
expected: TIMEOUT expected: TIMEOUT
[Access allowed if same-origin with no 'document.domain' modification. (Sanity check)] [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.] [Access is revoked to Window object when we stop being same effective script origin due to document.domain.]
expected: NOTRUN expected: NOTRUN
@ -13,7 +13,7 @@
expected: NOTRUN expected: NOTRUN
[Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)] [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.] [Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.]
expected: NOTRUN expected: NOTRUN
@ -22,13 +22,13 @@
expected: NOTRUN expected: NOTRUN
[Access allowed if same-origin and both set document.domain to existing value.] [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.] [Access is not revoked to Document object when we stop being same effective script origin due to document.domain.]
expected: NOTRUN expected: NOTRUN
[Access disallowed if same-origin but only one sets document.domain.] [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.] [Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again.]
expected: NOTRUN expected: NOTRUN

View file

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

View file

@ -1391,6 +1391,27 @@
[SVGAElement includes HTMLHyperlinkElementUtils: member names are unique] [SVGAElement includes HTMLHyperlinkElementUtils: member names are unique]
expected: FAIL 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)] [idlharness.https.html?include=(Document|Window)]
[Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type] [Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type]

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_escaping-3.html] [iframe_sandbox_popups_escaping-3.html]
type: testharness type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [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] [2d.shadow.offset.negativeX.html]
expected: CRASH
[Shadows can be offset with negative x] [Shadows can be offset with negative x]
expected: FAIL expected: FAIL

View file

@ -1,4 +1,5 @@
[realtimeanalyser-fft-scaling.html] [realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.] [X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL 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] [import-in-moduleworker.html]
expected: ERROR
[Base URL in module dedicated workers: import] [Base URL in module dedicated workers: import]
expected: FAIL expected: FAIL

View file

@ -1,5 +1,4 @@
[sharedworker-in-worker.html] [sharedworker-in-worker.html]
expected: ERROR
[Base URL in workers: new SharedWorker()] [Base URL in workers: new SharedWorker()]
expected: FAIL 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 To make the `PATH` change persistent, add it to your `~/.bash_profile` file or
wherever you currently set your PATH. 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 ### Windows Setup
**Note:** In general, Windows Subsystem for Linux will provide the smoothest **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 server-features
submission-process submission-process
testdriver testdriver
testdriver-tutorial testdriver-extension-tutorial
testharness testharness
testharness-tutorial testharness-tutorial
tools tools

View file

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

View file

@ -16,16 +16,22 @@ the global scope.
NB: presently, testdriver.js only works in the top-level test browsing NB: presently, testdriver.js only works in the top-level test browsing
context (and not therefore in any frame or window opened from it). context (and not therefore in any frame or window opened from it).
### action_sequence ### Actions
Usage: `test_driver.action_sequence(actions)` Usage:
* `actions`: an array of `Action` objects ```
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 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. 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: Example:

View file

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

View file

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