mirror of
https://github.com/servo/servo.git
synced 2025-08-02 12:10:29 +01:00
Auto merge of #20845 - servo-wpt-sync:wpt_update_21-05-2018, r=jdm
Sync WPT with upstream (21-05-2018) Automated downstream sync of changes from upstream as of 21-05-2018. [no-wpt-sync] <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20845) <!-- Reviewable:end -->
This commit is contained in:
commit
d4df55b417
49 changed files with 580 additions and 278 deletions
|
@ -46877,6 +46877,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/CSS2/floats-clear/adjoining-float-before-clearance.html": [
|
||||
[
|
||||
"/css/CSS2/floats-clear/adjoining-float-before-clearance.html",
|
||||
[
|
||||
[
|
||||
"/css/CSS2/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/CSS2/floats-clear/adjoining-float-new-fc.html": [
|
||||
[
|
||||
"/css/CSS2/floats-clear/adjoining-float-new-fc.html",
|
||||
|
@ -47393,6 +47405,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/CSS2/floats-clear/clear-with-top-margin-after-cleared-empty-block.html": [
|
||||
[
|
||||
"/css/CSS2/floats-clear/clear-with-top-margin-after-cleared-empty-block.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/CSS2/floats-clear/clearance-006.xht": [
|
||||
[
|
||||
"/css/CSS2/floats-clear/clearance-006.xht",
|
||||
|
@ -49109,6 +49133,30 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html": [
|
||||
[
|
||||
"/css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html",
|
||||
[
|
||||
[
|
||||
"/css/CSS2/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html": [
|
||||
[
|
||||
"/css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/CSS2/floats-clear/nested-clearance-new-formatting-context.html": [
|
||||
[
|
||||
"/css/CSS2/floats-clear/nested-clearance-new-formatting-context.html",
|
||||
|
@ -179478,7 +179526,7 @@
|
|||
"/fetch/corb/img-html-correctly-labeled.sub.html",
|
||||
[
|
||||
[
|
||||
"/fetch/corb/img-png-mislabeled-as-html.sub-ref.html",
|
||||
"/fetch/corb/img-html-correctly-labeled.sub-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
|
@ -179490,7 +179538,7 @@
|
|||
"/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html",
|
||||
[
|
||||
[
|
||||
"/fetch/corb/img-png-mislabeled-as-html.sub-ref.html",
|
||||
"/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
|
@ -243246,11 +243294,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-fonts/support/fonts/FontWithFeatures.otf": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-fonts/support/fonts/FontWithFeatures2.otf": [
|
||||
[
|
||||
{}
|
||||
|
@ -243281,16 +243324,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-fonts/support/fonts/font-feature-settings-rendering-2-ref.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-fonts/support/fonts/font-feature-settings-rendering-2.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-fonts/support/fonts/gsubtest-features.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -299831,6 +299864,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webusb/resources/idlharness.dedicatedworker.sharedworker.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webusb/resources/open-in-iframe.html": [
|
||||
[
|
||||
{}
|
||||
|
@ -302601,6 +302639,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"x-frame-options/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"x-frame-options/README.md": [
|
||||
[
|
||||
{}
|
||||
|
@ -321792,6 +321835,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-transitions/zero-duration-multiple-transition.html": [
|
||||
[
|
||||
"/css/css-transitions/zero-duration-multiple-transition.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable.html": [
|
||||
[
|
||||
"/css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable.html",
|
||||
|
@ -368812,6 +368861,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"shadow-dom/form-control-form-attribute.html": [
|
||||
[
|
||||
"/shadow-dom/form-control-form-attribute.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"shadow-dom/historical.html": [
|
||||
[
|
||||
"/shadow-dom/historical.html",
|
||||
|
@ -376882,6 +376937,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webusb/worker/idlharness.dedicatedworker.https.html": [
|
||||
[
|
||||
"/webusb/worker/idlharness.dedicatedworker.https.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webusb/worker/idlharness.sharedworker.https.html": [
|
||||
[
|
||||
"/webusb/worker/idlharness.sharedworker.https.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webusb/worker/usb.dedicatedworker.https.html": [
|
||||
[
|
||||
"/webusb/worker/usb.dedicatedworker.https.html",
|
||||
|
@ -397738,12 +397805,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-color/t451-system-colors-a.xht": [
|
||||
[
|
||||
"/css/css-color/t451-system-colors-a.xht",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-display/run-in/after-content-display-004.xht": [
|
||||
[
|
||||
"/css/css-display/run-in/after-content-display-004.xht",
|
||||
|
@ -449429,6 +449490,10 @@
|
|||
"a1b16dd5548c5b358564fa723ee30dd0b872aa46",
|
||||
"reftest"
|
||||
],
|
||||
"css/CSS2/floats-clear/adjoining-float-before-clearance.html": [
|
||||
"71693bc3d5e3c40930ebe589b7bad9043416d569",
|
||||
"reftest"
|
||||
],
|
||||
"css/CSS2/floats-clear/adjoining-float-new-fc.html": [
|
||||
"c9b1c2a88838d119a7a472f99e44e3e245eb16ee",
|
||||
"reftest"
|
||||
|
@ -449685,6 +449750,10 @@
|
|||
"63c9122c39983b4c3a7d10f92399e746411022c3",
|
||||
"reftest"
|
||||
],
|
||||
"css/CSS2/floats-clear/clear-with-top-margin-after-cleared-empty-block.html": [
|
||||
"ae674d400a7a113db4e3a1333506799eb5f36edc",
|
||||
"reftest"
|
||||
],
|
||||
"css/CSS2/floats-clear/clearance-006-ref.xht": [
|
||||
"2305823fd342085286fe1f5e0cdb27d7cd6fe436",
|
||||
"support"
|
||||
|
@ -450753,6 +450822,14 @@
|
|||
"b4347b446723cc1bfd3476c457858a780064e001",
|
||||
"reftest"
|
||||
],
|
||||
"css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html": [
|
||||
"a4afc3f1c5ad23b29c0c80a491845974a4dbbf93",
|
||||
"reftest"
|
||||
],
|
||||
"css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html": [
|
||||
"bb345cfc476310428cfe622872c6444c3ff4f349",
|
||||
"reftest"
|
||||
],
|
||||
"css/CSS2/floats-clear/nested-clearance-new-formatting-context.html": [
|
||||
"4e6792f21e342e655c066de8091c904994ec0e5d",
|
||||
"reftest"
|
||||
|
@ -496269,10 +496346,6 @@
|
|||
"87ea86999193bd7168011efbc0a195b1a988f0f5",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-color/t451-system-colors-a.xht": [
|
||||
"7faa76d4cba74222102a185c6fb5e46436a2dc9b",
|
||||
"visual"
|
||||
],
|
||||
"css/css-color/whitetext-ref.html": [
|
||||
"e832afff6067587e429b47ed0ea1756a4bad3b81",
|
||||
"support"
|
||||
|
@ -503189,10 +503262,6 @@
|
|||
"ce1bc123ba75345ab3816af7c18b481badbfd5eb",
|
||||
"support"
|
||||
],
|
||||
"css/css-fonts/support/fonts/FontWithFeatures.otf": [
|
||||
"f8de3477e7c261c61f339583fc6cea73d0c5e87b",
|
||||
"support"
|
||||
],
|
||||
"css/css-fonts/support/fonts/FontWithFeatures2.otf": [
|
||||
"e66cdd917334803327991dcc106f9d06a7c3a6e2",
|
||||
"support"
|
||||
|
@ -503217,14 +503286,6 @@
|
|||
"69e4080710f24b062203f56aa6ae2d991d4fa19a",
|
||||
"support"
|
||||
],
|
||||
"css/css-fonts/support/fonts/font-feature-settings-rendering-2-ref.html": [
|
||||
"883083cdde66caca05384d3d6930070454e94fad",
|
||||
"support"
|
||||
],
|
||||
"css/css-fonts/support/fonts/font-feature-settings-rendering-2.html": [
|
||||
"2d2798f70ee846150d05a100764e839be196f7c6",
|
||||
"support"
|
||||
],
|
||||
"css/css-fonts/support/fonts/gsubtest-features.js": [
|
||||
"ec74e59b44373f2e57b321bf6388e05b2c071a91",
|
||||
"support"
|
||||
|
@ -532377,6 +532438,10 @@
|
|||
"538b95863c061da60e95c1a61ef9dc93da007aa4",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-transitions/zero-duration-multiple-transition.html": [
|
||||
"bcbcd704e617cf1bb057a67d9ff5635ef6ebda7e",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable.html": [
|
||||
"f6056e2480829c7aa9885673d332496faf7777b5",
|
||||
"testharness"
|
||||
|
@ -532626,7 +532691,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html": [
|
||||
"a17c4fdc29c474edb1ef3f94d5282d2603dd7227",
|
||||
"a96190f4a188be1bda9c8259dc2a19703cc134d0",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/stylevalue-subclasses/numeric-objects/resources/testhelper.js": [
|
||||
|
@ -543986,7 +544051,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/cssom/getComputedStyle-detached-subtree.html": [
|
||||
"72b04b3245851e5a5ac26429986074e07ad369d9",
|
||||
"01978ca7ea08cbf61b28e9d77753fe5852bcbff9",
|
||||
"testharness"
|
||||
],
|
||||
"css/cssom/getComputedStyle-dynamic-subdoc.html": [
|
||||
|
@ -546926,7 +546991,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/selectors/invalidation/matches.html": [
|
||||
"8b517e6bc3465a2e8569bfe79dcb92aad38b5e78",
|
||||
"2be24b8253b13cc0fa9e492ea512c6709dab85c4",
|
||||
"testharness"
|
||||
],
|
||||
"css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html": [
|
||||
|
@ -562382,7 +562447,7 @@
|
|||
"support"
|
||||
],
|
||||
"fetch/corb/img-html-correctly-labeled.sub.html": [
|
||||
"0c080d27dfcc89fc1f7e92be063f4d2d95fa9d6c",
|
||||
"13c1685c4acf66de49af2d090bc75656c713656c",
|
||||
"reftest"
|
||||
],
|
||||
"fetch/corb/img-mime-types-coverage.tentative.sub.html": [
|
||||
|
@ -562394,7 +562459,7 @@
|
|||
"support"
|
||||
],
|
||||
"fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html": [
|
||||
"2005cb1cd7a313d8ca7ee89c32e5bc54c39b2da5",
|
||||
"123764674bc8bc40e3a36edd3c128c6131a37cc4",
|
||||
"reftest"
|
||||
],
|
||||
"fetch/corb/img-png-mislabeled-as-html.sub-ref.html": [
|
||||
|
@ -563574,7 +563639,7 @@
|
|||
"manual"
|
||||
],
|
||||
"gamepad/idlharness.html": [
|
||||
"acf9bec9b03479458c4b8b17a1d4ef9f87d15d7b",
|
||||
"7b886df0d36a15f77936943eadecd633d9ea46f1",
|
||||
"testharness"
|
||||
],
|
||||
"gamepad/timestamp-manual.html": [
|
||||
|
@ -564742,7 +564807,7 @@
|
|||
"support"
|
||||
],
|
||||
"html/browsers/browsing-the-web/unloading-documents/navigation-within-beforeunload.html": [
|
||||
"49a3e27670f5902309f45be654ad9e12d7f9c500",
|
||||
"8e48ede5ef227e88a091f1d33b385d0b3dff713c",
|
||||
"testharness"
|
||||
],
|
||||
"html/browsers/browsing-the-web/unloading-documents/pagehide-on-history-forward-1.html": [
|
||||
|
@ -583906,7 +583971,7 @@
|
|||
"support"
|
||||
],
|
||||
"interfaces/webusb.idl": [
|
||||
"7b5749e1fece69552e0a8bfac7af401fac15394d",
|
||||
"e609a866d40f70f59f682a1a5ec82cf713863969",
|
||||
"support"
|
||||
],
|
||||
"interfaces/webvtt.idl": [
|
||||
|
@ -606801,6 +606866,10 @@
|
|||
"572ddb9624ba8871d93cb13fad830f1acc8d4cac",
|
||||
"testharness"
|
||||
],
|
||||
"shadow-dom/form-control-form-attribute.html": [
|
||||
"7726f8fe9056d3d5c9fb7b963c4bc6e777a8256a",
|
||||
"testharness"
|
||||
],
|
||||
"shadow-dom/historical.html": [
|
||||
"1469992db34a25397dc3d5a5e1eb600e8afcf71b",
|
||||
"testharness"
|
||||
|
@ -617174,7 +617243,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"webstorage/eventTestHarness.js": [
|
||||
"7620e4b6d1badeb105c8f576ad0f03040cef5c66",
|
||||
"1904bb024612309549e715cd1f5ca1e990a82aef",
|
||||
"support"
|
||||
],
|
||||
"webstorage/event_basic.html": [
|
||||
|
@ -617182,7 +617251,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"webstorage/event_basic.js": [
|
||||
"6ec57795d1d437d08c2e1d8ff1aac8bc6fc24b7a",
|
||||
"f3644a379740bede29593e04b9bef5dfd34c3641",
|
||||
"support"
|
||||
],
|
||||
"webstorage/event_body_attribute.html": [
|
||||
|
@ -617434,13 +617503,17 @@
|
|||
"support"
|
||||
],
|
||||
"webusb/idlharness.https.html": [
|
||||
"135ae431cdac90d34b85fe1ea355abaf9a9fb732",
|
||||
"5a97c893eb0e23e3cba14501de9955cfbb0b385a",
|
||||
"testharness"
|
||||
],
|
||||
"webusb/resources/fake-devices.js": [
|
||||
"2cfce7b35b9441529946c4bcea9427e261808c36",
|
||||
"support"
|
||||
],
|
||||
"webusb/resources/idlharness.dedicatedworker.sharedworker.js": [
|
||||
"2a847fbeded0fe0b895cb5675f90b685f749f40a",
|
||||
"support"
|
||||
],
|
||||
"webusb/resources/open-in-iframe.html": [
|
||||
"6e6050f742e0da58fc94a5c0a0aa75f16dfcede9",
|
||||
"support"
|
||||
|
@ -617525,6 +617598,14 @@
|
|||
"f08a98a927d57cda8b780a8304a0fa6cf727cc81",
|
||||
"testharness"
|
||||
],
|
||||
"webusb/worker/idlharness.dedicatedworker.https.html": [
|
||||
"159ede02aac087e0409632c2fcbac3a597ec4c45",
|
||||
"testharness"
|
||||
],
|
||||
"webusb/worker/idlharness.sharedworker.https.html": [
|
||||
"4dc8b85f2590397f6e8bcbf63dc64381b1f95559",
|
||||
"testharness"
|
||||
],
|
||||
"webusb/worker/usb.dedicatedworker.https.html": [
|
||||
"556e26de5f184609e0e49f02795f96aef524a7c2",
|
||||
"testharness"
|
||||
|
@ -621745,6 +621826,10 @@
|
|||
"2984dfb09c88d7a1831a60d62c64c9b2ec2f6673",
|
||||
"support"
|
||||
],
|
||||
"x-frame-options/OWNERS": [
|
||||
"130bf16890c75f9520c9473a7888bf6163036123",
|
||||
"support"
|
||||
],
|
||||
"x-frame-options/README.md": [
|
||||
"cb5f2cb5d74263ce584e1ad76045a04afae4ba0a",
|
||||
"support"
|
||||
|
@ -621810,7 +621895,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"xhr/abort-after-stop.htm": [
|
||||
"3feb39f2451afa624771437337c669865fac29b5",
|
||||
"8822f48665a569b37bde50995c48687825672a50",
|
||||
"testharness"
|
||||
],
|
||||
"xhr/abort-after-timeout.htm": [
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[adjoining-float-before-clearance.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[negative-clearance-after-adjoining-float.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[negative-clearance-after-bottom-margin.html]
|
||||
expected: FAIL
|
|
@ -1,3 +1,3 @@
|
|||
[first-letter-punctuation-033.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
[ ]
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
[ ]
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
[ ]
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
[ ]
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
[ ]
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[css3-text-line-break-opclns-017.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[css3-text-line-break-opclns-024.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[css3-text-line-break-opclns-121.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[css3-text-line-break-opclns-129.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[zero-duration-multiple-transition.html]
|
||||
[transition-duration of 0 prevents earlier transitions with the same property from starting.]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[vh_not_refreshing_on_chrome.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[img-html-correctly-labeled.sub.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[img-png-mislabeled-as-html-nosniff.tentative.sub.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[navigation-within-beforeunload.html]
|
||||
[Triggering navigation from within beforeunload event]
|
||||
expected: FAIL
|
||||
|
|
@ -30,3 +30,6 @@
|
|||
[Set HTTP URL frame location.protocol to http+x]
|
||||
expected: FAIL
|
||||
|
||||
[Set HTTP URL frame location.protocol to data]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -172,3 +172,63 @@
|
|||
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="no-hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="hash-last#"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap=""]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="#"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="#percent-escape-name-%41"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="#percent-escape-id-%41"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="#no-such-map"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="#different-CASE-name"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (quirks) IMG usemap="#different-CASE-id"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="no-hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="hash-last#"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap=""]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="#"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="#percent-escape-name-%41"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="#percent-escape-id-%41"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="#no-such-map"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="#different-CASE-name"]
|
||||
expected: FAIL
|
||||
|
||||
[XHTML img usemap="#different-CASE-id"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[hide_after_load.html]
|
||||
expected: TIMEOUT
|
|
@ -1,5 +0,0 @@
|
|||
[rapid-resizing.html]
|
||||
expected: TIMEOUT
|
||||
[Overall test]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Float that would be adjoining if there were no clearance</title>
|
||||
<meta name="assert" content="If the clearance candidate would pull a float down with it (due to margin collapsing) if there were no clearance, clearance needs to be inserted to separate the two, so that the block can go past the float. No matter how large the margin is, it should still be just below the float.">
|
||||
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="width:100px; background:red;">
|
||||
<div>
|
||||
<div style="float:left; width:100px; height:50px; background:green;"></div>
|
||||
</div>
|
||||
<div style="margin-top:400px; clear:left; height:50px; background:green;"></div>
|
||||
</div>
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Clearance on empty block followed by block with large margin and 'clear'</title>
|
||||
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
|
||||
<link rel="help" href="https://www.w3.org/TR/CSS22/box.html#collapsing-margins" title="8.3.1 Collapsing margins">
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
<div style="position:relative; width:100px; border-top:1px solid white; top:-21px; z-index:-1; background:green;">
|
||||
<div style="float:left; width:100px; height:20px; background:white;"></div>
|
||||
<div style="clear:both;"></div>
|
||||
<div style="clear:both; margin-top:100px; height:20px; background:white;"></div>
|
||||
</div>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Negative clearance between adjoining float and child with top margin</title>
|
||||
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="width:100px; background:red;">
|
||||
<div style="float:left; width:100px; height:50px; background:green;"></div>
|
||||
<div style="clear:left; margin-top:200px;"></div>
|
||||
</div>
|
||||
<div style="width:100px; height:50px; background:green;"></div>
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Negative clearance between bottom margin and cleared child with top margin</title>
|
||||
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
<div style="position:relative; top:-50px; z-index:-1;">
|
||||
<div style="float:left; width:50px; height:50px; border-top:50px solid white; background:green;"></div>
|
||||
<div style="padding-top:1px;">
|
||||
<div style="width:100px; background:green;">
|
||||
<div style="margin-bottom:49px;"></div>
|
||||
<div style="clear:left; margin-top:98px;"></div>
|
||||
</div>
|
||||
<div style="width:100px; height:50px; background:green;"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,74 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CSS Test: system colors</title>
|
||||
<link rel="author" title="L. David Baron" href="https://dbaron.org/" />
|
||||
<link rel="author" title="Mozilla Corporation" href="http://mozilla.com/" />
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-color/#css2-system" />
|
||||
<meta name="flags" content="" />
|
||||
<meta name="assert" content="That system colors are displayed as described." />
|
||||
<style type="text/css"><![CDATA[
|
||||
html, body { background: #9f9; }
|
||||
p, div { border: medium solid red; background: red; color: red; }
|
||||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p style="border: none; background: white; color: black">Nothing in this document should be red unless the operating environment provides red as a color for one of the things mentioned.</p>
|
||||
|
||||
<p style="border: none; background: white; color: black">Every line of text in this document should be a color distinct enough from its background to be legible.</p>
|
||||
|
||||
<p style="border-top: 4px solid ButtonHighlight; border-right: 4px solid ButtonShadow; border-bottom: 4px solid ButtonShadow; border-left: 4px solid ButtonHighlight; background: ButtonFace; color: ButtonText">
|
||||
This should have the text color, background color, and solid border that makes it look like the closest simulation of a raised button (with the light source in the upper left) in the operating environment that is possible using a box with a single border around it.
|
||||
</p>
|
||||
|
||||
<div style="border-top: 2px solid ThreeDHighlight; border-right: 2px solid ThreeDDarkShadow; border-bottom: 2px solid ThreeDDarkShadow; border-left: 2px solid ThreeDHighlight">
|
||||
<div style="border-top: 2px solid ThreeDLightShadow; border-right: 2px solid ThreeDShadow; border-bottom: 2px solid ThreeDShadow; border-left: 2px solid ThreeDLightShadow; background: ThreeDFace; color: ButtonText">
|
||||
<!-- is ButtonText an appropriate color to use here? -->
|
||||
This should have the background color and <em>two</em> solid borders that makes it look like the closest simulation of a raised button (with the light source in the upper left) in the operating environment that is possible using a box with a two-layer border around it.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p style="border: medium solid ActiveBorder; background: ActiveCaption; color: CaptionText">If the operating environment provides such colors, this should have the text color and background color of an active window caption, and a border the color of the border of active windows.</p>
|
||||
|
||||
<p style="border: medium solid InactiveBorder; background: InactiveCaption; color: InactiveCaptionText">If the operating environment provides such colors, this should have the text color and background color of an inactive window caption, and a border the color of the border of inactive windows.</p>
|
||||
|
||||
<p style="border: none; background: AppWorkspace; color: WindowText">
|
||||
This should have the background color used by multiple document interface (MDI) applications, if the operating environment provides such a color.
|
||||
</p>
|
||||
|
||||
<p style="background: Background; color: WindowText; border: none">
|
||||
This should have the background color of the desktop, if the operating environment provides such a color.
|
||||
</p>
|
||||
|
||||
<p style="background: Window; color: GrayText; border: none">
|
||||
This should have the text color of disabled controls, if the operating environment provides such a color.
|
||||
</p>
|
||||
|
||||
<p style="background: Highlight; color: HighlightText; border: none">
|
||||
This should have the text color and background color of highlighted items, if the operating system provides such colors.
|
||||
</p>
|
||||
|
||||
<p style="background: InfoBackground; color: InfoText; border: none">
|
||||
This should have the text color and background color of tooltips, if the operating system provides such colors.
|
||||
</p>
|
||||
|
||||
<p style="background: Menu; color: MenuText; border: none">
|
||||
This should have the text color and background color of menus, if the operating system provides such colors.
|
||||
</p>
|
||||
|
||||
<p style="border: none; background: white; color: black">The following (empty) square should have the background color of the area that scrollbar sliders slide over, if the operating environment provides such a color:</p>
|
||||
<p style="background: Scrollbar; color: CaptionText; border: none; margin-left: auto; margin-right: auto; width: 2em; height: 2em;">
|
||||
|
||||
</p>
|
||||
|
||||
<p style="background: Window; color: WindowText; border: none">
|
||||
This should have the text color and background color of text fields, if the operating system provides such colors.
|
||||
</p>
|
||||
|
||||
<p style="border: 2px solid WindowFrame; background: white; color: black">
|
||||
This should have a border the color of a window's frame, if the operating system provides such a color.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
|
@ -1,46 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "FontFeaturesTest";
|
||||
src: url("FontWithFeatures.otf") format("opentype");
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
This tests that font features are able to be turned on and off as desired. It uses a special font
|
||||
designed specifically for this purpose. The test passes if you see a sequence of alternating check
|
||||
marks and X below.
|
||||
<div><span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
<span style="font-family: FontFeaturesTest;">BA</span>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,60 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "FontFeaturesTest";
|
||||
src: url("resources/FontWithFeatures.otf") format("opentype");
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
This tests that font features are able to be turned on and off as desired. It uses a special font
|
||||
designed specifically for this purpose. The test passes if you see a sequence of alternating check
|
||||
marks and X below.
|
||||
<div id="insertionpoint"></div>
|
||||
<script>
|
||||
var insertionpoint = document.getElementById("insertionpoint");
|
||||
function addElement(feature, c) {
|
||||
["0", "1"].map(function(state) {
|
||||
var element = document.createElement("span");
|
||||
element.textContent = c;
|
||||
element.style.fontFamily = "FontFeaturesTest";
|
||||
element.style.webkitFontFeatureSettings = '"' + feature + '" ' + state;
|
||||
insertionpoint.appendChild(element);
|
||||
});
|
||||
insertionpoint.appendChild(document.createTextNode(" "));
|
||||
}
|
||||
addElement("liga", "C");
|
||||
addElement("clig", "D");
|
||||
addElement("dlig", "E");
|
||||
addElement("hlig", "F");
|
||||
addElement("calt", "G");
|
||||
addElement("subs", "H");
|
||||
addElement("sups", "I");
|
||||
addElement("smcp", "J");
|
||||
addElement("c2sc", "K");
|
||||
addElement("pcap", "L");
|
||||
addElement("c2pc", "M");
|
||||
addElement("unic", "N");
|
||||
addElement("titl", "O");
|
||||
addElement("onum", "P");
|
||||
addElement("pnum", "Q");
|
||||
addElement("tnum", "R");
|
||||
addElement("frac", "S");
|
||||
//addElement("afrc", "T");
|
||||
addElement("ordn", "U");
|
||||
addElement("zero", "V");
|
||||
addElement("hist", "W");
|
||||
addElement("jp78", "X");
|
||||
addElement("jp83", "Y");
|
||||
addElement("jp90", "Z");
|
||||
addElement("jp04", "a");
|
||||
addElement("smpl", "b");
|
||||
addElement("trad", "c");
|
||||
addElement("fwid", "d");
|
||||
addElement("pwid", "e");
|
||||
addElement("ruby", "f");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,30 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transitions/#starting">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1461070">
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="emilio@crisal.io">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
#t {
|
||||
color: red;
|
||||
transition-property: color, color;
|
||||
transition-duration: 1s, 0s;
|
||||
}
|
||||
</style>
|
||||
<div id="t"></div>
|
||||
<script>
|
||||
test(function() {
|
||||
let div = document.getElementById("t");
|
||||
assert_equals(getComputedStyle(div).color, "rgb(255, 0, 0)");
|
||||
|
||||
div.style.color = "green";
|
||||
assert_equals(
|
||||
div.getAnimations().length,
|
||||
0,
|
||||
"No transition should've started"
|
||||
);
|
||||
|
||||
assert_equals(getComputedStyle(div).color, "rgb(0, 128, 0)");
|
||||
}, "transition-duration of 0 prevents earlier transitions with the same property from starting.");
|
||||
</script>
|
|
@ -23,4 +23,8 @@ test(() => {
|
|||
assert_throws(new SyntaxError(), () => CSSNumericValue.parse('calc(calc(1px * 2s) + 3%)'));
|
||||
}, 'Parsing a calc with incompatible units throws a SyntaxError');
|
||||
|
||||
test(() => {
|
||||
assert_style_value_equals(new CSSUnitValue(1, 'px'), CSSNumericValue.parse(' 1px '));
|
||||
}, 'Parsing ignores surrounding spaces');
|
||||
|
||||
</script>
|
||||
|
|
|
@ -17,7 +17,7 @@ function testNoComputedStyle(element, description) {
|
|||
assert_true(!!element);
|
||||
let style = getComputedStyle(element);
|
||||
assert_true(!!style);
|
||||
assert_equals(style.length, 0);
|
||||
assert_true(style.length === 0);
|
||||
assert_equals(style.color, "");
|
||||
}, `getComputedStyle returns no style for ${description}`);
|
||||
}
|
||||
|
|
|
@ -36,6 +36,9 @@
|
|||
.a+.c>.e {
|
||||
color: black;
|
||||
}
|
||||
.c>.a+.e {
|
||||
color: black;
|
||||
}
|
||||
.a+:matches(.b+.f, :matches(.c>.e, .g)) {
|
||||
color: red;
|
||||
}
|
||||
|
@ -74,6 +77,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="c" id="c2">
|
||||
<div id="a2"></div>
|
||||
<div class="e" id="e2">
|
||||
Red
|
||||
</div>
|
||||
|
@ -120,6 +124,8 @@
|
|||
|
||||
test(() => {
|
||||
a1.className = "a";
|
||||
assert_equals(getComputedStyle(e2).color, black);
|
||||
a2.className = "a";
|
||||
assert_equals(getComputedStyle(e2).color, red);
|
||||
}, "Invalidate nested :matches().");
|
||||
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
-->
|
||||
<meta charset="utf-8">
|
||||
<!-- Reference page uses same-origin resources, which are not CORB-eligible. -->
|
||||
<link rel="match" href="img-png-mislabeled-as-html.sub-ref.html">
|
||||
<link rel="match" href="img-html-correctly-labeled.sub-ref.html">
|
||||
<!-- www1 is cross-origin, so the HTTP response is CORB-eligible -->
|
||||
<img src="http://{{domains[www1]}}:{{ports[http][0]}}/fetch/corb/resources/html-correctly-labeled.html">
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
-->
|
||||
<meta charset="utf-8">
|
||||
<!-- Reference page uses same-origin resources, which are not CORB-eligible. -->
|
||||
<link rel="match" href="img-png-mislabeled-as-html.sub-ref.html">
|
||||
<link rel="match" href="img-png-mislabeled-as-html-nosniff.tentative.sub-ref.html">
|
||||
<!-- www1 is cross-origin, so the HTTP response is CORB-eligible -->
|
||||
<img src="http://{{domains[www1]}}:{{ports[http][0]}}/fetch/corb/resources/png-mislabeled-as-html-nosniff.png">
|
||||
|
|
|
@ -9,21 +9,22 @@
|
|||
<script src="/resources/WebIDLParser.js"></script>
|
||||
<script src="/resources/idlharness.js"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
"use strict";
|
||||
|
||||
promise_test(async () => {
|
||||
promise_test(async () => {
|
||||
const idl_array = new IdlArray();
|
||||
const gamepad_idl = await fetch("/interfaces/gamepad.idl").then(r => r.text());
|
||||
const dom = await fetch("/interfaces/dom.idl").then(r => r.text());
|
||||
const html = await fetch("/interfaces/html.idl").then(r => r.text());
|
||||
|
||||
idl_array.add_untested_idls(dom, {only: ['Event', 'EventInit']});
|
||||
idl_array.add_untested_idls('interface Navigator {};');
|
||||
idl_array.add_idls(gamepad_idl);
|
||||
idl_array.add_dependency_idls(dom);
|
||||
idl_array.add_dependency_idls(html);
|
||||
|
||||
idl_array.add_objects({
|
||||
GamepadEvent: [new GamepadEvent("something")],
|
||||
Navigator: ["navigator"]
|
||||
});
|
||||
idl_array.test();
|
||||
}, "Test IDL implementation of Gamepad API");
|
||||
}, "Test IDL implementation of Gamepad API");
|
||||
</script>
|
||||
|
|
|
@ -15,10 +15,7 @@ onload = function() {setTimeout(function() {
|
|||
|
||||
iframe.onload = function() {
|
||||
setTimeout(function() {iframe.contentWindow.location="navigation-within-beforeunload-2.html";}, 100);
|
||||
// Step 4 of https://html.spec.whatwg.org/multipage/browsing-the-web.html#navigating-across-documents
|
||||
// doesn't seem to allow navigation within a beforeunload handler,
|
||||
// so the counter should not go beyond 1.
|
||||
iframe.onload = t.step_func(function() {assert_equals(counter, 1); t.done()});
|
||||
iframe.onload = t.step_func(function() {assert_equals(counter, 1000); t.done()});
|
||||
};
|
||||
|
||||
iframe.src = "navigation-within-beforeunload-1.html?" + Math.random();
|
||||
|
|
|
@ -14,27 +14,37 @@ dictionary USBDeviceRequestOptions {
|
|||
required sequence<USBDeviceFilter> filters;
|
||||
};
|
||||
|
||||
[Exposed=(DedicatedWorker, SharedWorker, Window), SecureContext]
|
||||
interface USB : EventTarget {
|
||||
attribute EventHandler onconnect;
|
||||
attribute EventHandler ondisconnect;
|
||||
Promise<sequence<USBDevice>> getDevices();
|
||||
Promise<USBDevice> requestDevice(USBDeviceRequestOptions options);
|
||||
[Exposed=Window] Promise<USBDevice> requestDevice(USBDeviceRequestOptions options);
|
||||
};
|
||||
|
||||
[SecureContext]
|
||||
[Exposed=Window, SecureContext]
|
||||
partial interface Navigator {
|
||||
[SameObject] readonly attribute USB usb;
|
||||
};
|
||||
|
||||
[Exposed=(DedicatedWorker, SharedWorker), SecureContext]
|
||||
partial interface WorkerNavigator {
|
||||
[SameObject] readonly attribute USB usb;
|
||||
};
|
||||
|
||||
dictionary USBConnectionEventInit : EventInit {
|
||||
required USBDevice device;
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, USBConnectionEventInit eventInitDict)]
|
||||
[
|
||||
Constructor(DOMString type, USBConnectionEventInit eventInitDict),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBConnectionEvent : Event {
|
||||
[SameObject] readonly attribute USBDevice device;
|
||||
};
|
||||
|
||||
[Exposed=(DedicatedWorker, SharedWorker, Window)]
|
||||
interface USBDevice {
|
||||
readonly attribute octet usbVersionMajor;
|
||||
readonly attribute octet usbVersionMinor;
|
||||
|
@ -96,49 +106,73 @@ dictionary USBControlTransferParameters {
|
|||
required unsigned short index;
|
||||
};
|
||||
|
||||
[Constructor(USBTransferStatus status, optional DataView? data)]
|
||||
[
|
||||
Constructor(USBTransferStatus status, optional DataView? data),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBInTransferResult {
|
||||
readonly attribute DataView? data;
|
||||
readonly attribute USBTransferStatus status;
|
||||
};
|
||||
|
||||
[Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0)]
|
||||
[
|
||||
Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBOutTransferResult {
|
||||
readonly attribute unsigned long bytesWritten;
|
||||
readonly attribute USBTransferStatus status;
|
||||
};
|
||||
|
||||
[Constructor(USBTransferStatus status, optional DataView? data)]
|
||||
[
|
||||
Constructor(USBTransferStatus status, optional DataView? data),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBIsochronousInTransferPacket {
|
||||
readonly attribute DataView? data;
|
||||
readonly attribute USBTransferStatus status;
|
||||
};
|
||||
|
||||
[Constructor(sequence<USBIsochronousInTransferPacket> packets, optional DataView? data)]
|
||||
[
|
||||
Constructor(sequence<USBIsochronousInTransferPacket> packets, optional DataView? data),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBIsochronousInTransferResult {
|
||||
readonly attribute DataView? data;
|
||||
readonly attribute FrozenArray<USBIsochronousInTransferPacket> packets;
|
||||
};
|
||||
|
||||
[Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0)]
|
||||
[
|
||||
Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBIsochronousOutTransferPacket {
|
||||
readonly attribute unsigned long bytesWritten;
|
||||
readonly attribute USBTransferStatus status;
|
||||
};
|
||||
|
||||
[Constructor(sequence<USBIsochronousOutTransferPacket> packets)]
|
||||
[
|
||||
Constructor(sequence<USBIsochronousOutTransferPacket> packets),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBIsochronousOutTransferResult {
|
||||
readonly attribute FrozenArray<USBIsochronousOutTransferPacket> packets;
|
||||
};
|
||||
|
||||
[Constructor(USBDevice device, octet configurationValue)]
|
||||
[
|
||||
Constructor(USBDevice device, octet configurationValue),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBConfiguration {
|
||||
readonly attribute octet configurationValue;
|
||||
readonly attribute DOMString? configurationName;
|
||||
readonly attribute FrozenArray<USBInterface> interfaces;
|
||||
};
|
||||
|
||||
[Constructor(USBConfiguration configuration, octet interfaceNumber)]
|
||||
[
|
||||
Constructor(USBConfiguration configuration, octet interfaceNumber),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBInterface {
|
||||
readonly attribute octet interfaceNumber;
|
||||
readonly attribute USBAlternateInterface alternate;
|
||||
|
@ -146,7 +180,10 @@ interface USBInterface {
|
|||
readonly attribute boolean claimed;
|
||||
};
|
||||
|
||||
[Constructor(USBInterface deviceInterface, octet alternateSetting)]
|
||||
[
|
||||
Constructor(USBInterface deviceInterface, octet alternateSetting),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBAlternateInterface {
|
||||
readonly attribute octet alternateSetting;
|
||||
readonly attribute octet interfaceClass;
|
||||
|
@ -167,7 +204,10 @@ enum USBEndpointType {
|
|||
"isochronous"
|
||||
};
|
||||
|
||||
[Constructor(USBAlternateInterface alternate, octet endpointNumber, USBDirection direction)]
|
||||
[
|
||||
Constructor(USBAlternateInterface alternate, octet endpointNumber, USBDirection direction),
|
||||
Exposed=(DedicatedWorker, SharedWorker, Window)
|
||||
]
|
||||
interface USBEndpoint {
|
||||
readonly attribute octet endpointNumber;
|
||||
readonly attribute USBDirection direction;
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Form controls' form attribute</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<div id="testcontent">
|
||||
<form id="form">form</form>
|
||||
<input id="input" form="form">
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
test(() => {
|
||||
assert_equals(document.getElementById('input').form,
|
||||
document.getElementById('form'));
|
||||
}, "Form control's form attribute should point to the form element.");
|
||||
|
||||
test(() => {
|
||||
var testcontent = document.getElementById("testcontent");
|
||||
var host = document.createElement("div");
|
||||
var sr = host.attachShadow({mode: "open"});
|
||||
sr.innerHTML = testcontent.innerHTML;
|
||||
var input = sr.getElementById("input");
|
||||
var form = sr.getElementById("form");
|
||||
|
||||
// Should have null form when shadow DOM isn't connected.
|
||||
assert_equals(input.form, null);
|
||||
|
||||
testcontent.appendChild(host);
|
||||
assert_equals(input.form, form);
|
||||
|
||||
host.remove();
|
||||
assert_equals(input.form, null);
|
||||
|
||||
testcontent.appendChild(host);
|
||||
assert_equals(input.form, form);
|
||||
|
||||
input.remove();
|
||||
assert_equals(input.form, null);
|
||||
|
||||
sr.appendChild(input);
|
||||
assert_equals(input.form, form);
|
||||
|
||||
form.id = "foobar";
|
||||
assert_equals(input.form, null);
|
||||
|
||||
form.id = "form";
|
||||
assert_equals(input.form, form);
|
||||
|
||||
form.remove();
|
||||
assert_equals(input.form, null);
|
||||
|
||||
sr.appendChild(form);
|
||||
assert_equals(input.form, form);
|
||||
|
||||
host.remove();
|
||||
}, "Shadow form control's form attribute should work also in shadow DOM.");
|
||||
|
||||
test(() => {
|
||||
var testcontent = document.getElementById("testcontent");
|
||||
var host = document.createElement("div");
|
||||
var sr = host.attachShadow({mode: "open"});
|
||||
sr.innerHTML = "<form id='form'><input id='input'></form>";
|
||||
var input = sr.getElementById("input");
|
||||
var form = sr.getElementById("form");
|
||||
|
||||
assert_equals(input.form, form);
|
||||
|
||||
input.remove();
|
||||
assert_equals(input.form, null);
|
||||
|
||||
form.appendChild(input);
|
||||
assert_equals(input.form, form);
|
||||
|
||||
form.remove();
|
||||
assert_equals(input.form, form);
|
||||
|
||||
host.remove();
|
||||
}, "Form element as form control's ancestor should work also in shadow DOM.");
|
||||
</script>
|
|
@ -5,6 +5,10 @@ iframe.contentWindow.document.body.textContent = "Nothing to see here.";
|
|||
|
||||
storageEventList = new Array();
|
||||
iframe.contentWindow.onstorage = function(e) {
|
||||
if (iframe.contentWindow.sessionStorage === e.storageArea)
|
||||
e.storageAreaString = "sessionStorage";
|
||||
else if (iframe.contentWindow.localStorage === e.storageArea)
|
||||
e.storageAreaString = "localStorage";
|
||||
window.parent.storageEventList.push(e);
|
||||
};
|
||||
|
||||
|
|
|
@ -20,6 +20,8 @@ testStorages(function(storageString) {
|
|||
assert_unreached(msg);
|
||||
}
|
||||
assert_equals(storageEventList.length, 1);
|
||||
assert_equals(storageEventList[0].storageAreaString, storageString,
|
||||
"Storage event came from wrong storage type.");
|
||||
assert_equals(storageEventList[0].key, "FOO");
|
||||
assert_equals(storageEventList[0].oldValue, null);
|
||||
assert_equals(storageEventList[0].newValue, "BAR");
|
||||
|
@ -38,18 +40,26 @@ testStorages(function(storageString) {
|
|||
assert_unreached(msg);
|
||||
}
|
||||
assert_equals(storageEventList.length, 5);
|
||||
assert_equals(storageEventList[1].storageAreaString, storageString,
|
||||
"Storage event came from wrong storage type.");
|
||||
assert_equals(storageEventList[1].key, "FU");
|
||||
assert_equals(storageEventList[1].oldValue, null);
|
||||
assert_equals(storageEventList[1].newValue, "BAR");
|
||||
|
||||
assert_equals(storageEventList[2].storageAreaString, storageString,
|
||||
"Storage event came from wrong storage type.");
|
||||
assert_equals(storageEventList[2].key, "a");
|
||||
assert_equals(storageEventList[2].oldValue, null);
|
||||
assert_equals(storageEventList[2].newValue, "1");
|
||||
|
||||
assert_equals(storageEventList[3].storageAreaString, storageString,
|
||||
"Storage event came from wrong storage type.");
|
||||
assert_equals(storageEventList[3].key, "b");
|
||||
assert_equals(storageEventList[3].oldValue, null);
|
||||
assert_equals(storageEventList[3].newValue, "2");
|
||||
|
||||
assert_equals(storageEventList[4].storageAreaString, storageString,
|
||||
"Storage event came from wrong storage type.");
|
||||
assert_equals(storageEventList[4].key, "b");
|
||||
assert_equals(storageEventList[4].oldValue, "2");
|
||||
assert_equals(storageEventList[4].newValue, "3");
|
||||
|
@ -65,6 +75,8 @@ testStorages(function(storageString) {
|
|||
assert_unreached(msg);
|
||||
}
|
||||
assert_equals(storageEventList.length, 6);
|
||||
assert_equals(storageEventList[5].storageAreaString, storageString,
|
||||
"Storage event came from wrong storage type.");
|
||||
assert_equals(storageEventList[5].key, "FOO");
|
||||
assert_equals(storageEventList[5].oldValue, "BAR");
|
||||
assert_equals(storageEventList[5].newValue, null);
|
||||
|
@ -80,6 +92,8 @@ testStorages(function(storageString) {
|
|||
assert_unreached(msg);
|
||||
}
|
||||
assert_equals(storageEventList.length, 7);
|
||||
assert_equals(storageEventList[6].storageAreaString, storageString,
|
||||
"Storage event came from wrong storage type.");
|
||||
assert_equals(storageEventList[6].key, "FU");
|
||||
assert_equals(storageEventList[6].oldValue, "BAR");
|
||||
assert_equals(storageEventList[6].newValue, null);
|
||||
|
@ -95,6 +109,8 @@ testStorages(function(storageString) {
|
|||
assert_unreached(msg);
|
||||
}
|
||||
assert_equals(storageEventList.length, 8);
|
||||
assert_equals(storageEventList[7].storageAreaString, storageString,
|
||||
"Storage event came from wrong storage type.");
|
||||
assert_equals(storageEventList[7].key, null);
|
||||
assert_equals(storageEventList[7].oldValue, null);
|
||||
assert_equals(storageEventList[7].newValue, null);
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
idl_array.add_untested_idls('dictionary EventInit {};');
|
||||
idl_array.add_untested_idls('interface EventTarget {};');
|
||||
idl_array.add_untested_idls('interface Navigator {};');
|
||||
idl_array.add_untested_idls('interface WorkerNavigator {};');
|
||||
|
||||
let {device} = await getFakeDevice();
|
||||
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
'use strict';
|
||||
importScripts('/resources/testharness.js');
|
||||
importScripts('/resources/WebIDLParser.js');
|
||||
importScripts('/resources/idlharness.js');
|
||||
importScripts('/webusb/resources/fake-devices.js');
|
||||
importScripts('/webusb/resources/usb-helpers.js');
|
||||
|
||||
// Object instances used by the IDL test.
|
||||
var usbDevice;
|
||||
var usbConfiguration;
|
||||
var usbInterface;
|
||||
var usbAlternateInterface;
|
||||
var usbEndpoint;
|
||||
var usbConnectionEvent;
|
||||
|
||||
usb_test(async () => {
|
||||
let webUSBResponse = await fetch('/interfaces/webusb.idl');
|
||||
let domResponse = await fetch('/interfaces/dom.idl');
|
||||
let webusb_idl_text = await webUSBResponse.text();
|
||||
let dom_idl_text = await domResponse.text();
|
||||
let idl_array = new IdlArray();
|
||||
idl_array.add_idls(webusb_idl_text);
|
||||
|
||||
// Untested IDL interfaces
|
||||
idl_array.add_untested_idls(dom_idl_text, { only: ['Event', 'EventTarget'] });
|
||||
idl_array.add_untested_idls('interface EventHandler {};');
|
||||
idl_array.add_untested_idls('dictionary EventInit {};');
|
||||
idl_array.add_untested_idls('interface Navigator {};');
|
||||
idl_array.add_untested_idls('interface WorkerNavigator {};');
|
||||
|
||||
let {device} = await getFakeDevice();
|
||||
|
||||
usbDevice = device;
|
||||
usbConfiguration = usbDevice.configurations[0];
|
||||
usbInterface = usbConfiguration.interfaces[0];
|
||||
usbAlternateInterface = usbInterface.alternates[0];
|
||||
usbEndpoint = usbAlternateInterface.endpoints[0];
|
||||
usbConnectionEvent =
|
||||
new USBConnectionEvent('connect', { device: usbDevice })
|
||||
|
||||
idl_array.add_objects({
|
||||
WorkerNavigator: ['navigator'],
|
||||
USB: ['navigator.usb'],
|
||||
USBAlternateInterface: ['usbAlternateInterface'],
|
||||
USBConfiguration: ['usbConfiguration'],
|
||||
USBConnectionEvent: ['usbConnectionEvent'],
|
||||
USBDevice: ['usbDevice'],
|
||||
USBEndpoint: ['usbEndpoint'],
|
||||
USBInterface: ['usbInterface'],
|
||||
USBInTransferResult: ['new USBInTransferResult("ok")'],
|
||||
USBOutTransferResult: ['new USBOutTransferResult("ok")'],
|
||||
USBIsochronousInTransferResult: ['new USBIsochronousInTransferResult([])'],
|
||||
USBIsochronousOutTransferResult: ['new USBIsochronousOutTransferResult([])'],
|
||||
USBIsochronousInTransferPacket: ['new USBIsochronousInTransferPacket("ok")'],
|
||||
USBIsochronousOutTransferPacket: ['new USBIsochronousOutTransferPacket("ok")'],
|
||||
});
|
||||
|
||||
idl_array.test();
|
||||
}, 'WebUSB on Workers IDL test');
|
||||
|
||||
done();
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
fetch_tests_from_worker(new Worker(
|
||||
'/webusb/resources/idlharness.dedicatedworker.sharedworker.js'));
|
||||
|
||||
</script>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
fetch_tests_from_worker(new SharedWorker(
|
||||
'/webusb/resources/idlharness.dedicatedworker.sharedworker.js'));
|
||||
|
||||
</script>
|
2
tests/wpt/web-platform-tests/x-frame-options/OWNERS
Normal file
2
tests/wpt/web-platform-tests/x-frame-options/OWNERS
Normal file
|
@ -0,0 +1,2 @@
|
|||
@annevk
|
||||
@mikewest
|
|
@ -10,7 +10,7 @@
|
|||
<div id="log"></div>
|
||||
<script>
|
||||
var test = async_test();
|
||||
test.step(function() {
|
||||
window.onload = test.step_func(function() {
|
||||
var client = new XMLHttpRequest();
|
||||
var abortFired = false;
|
||||
client.onabort = test.step_func(function (e) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue