Update web-platform-tests to revision 0c112f38ee0040ba788d927e73b1ab1a7b856230

This commit is contained in:
WPT Sync Bot 2020-09-25 08:19:58 +00:00
parent 0baa1ea7bd
commit 3173ca7ad9
146 changed files with 1587 additions and 1659 deletions

View file

@ -4,7 +4,7 @@
expected: TIMEOUT expected: TIMEOUT
[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: TIMEOUT expected: FAIL
[Fetching a blob URL immediately before revoking it works in an iframe.] [Fetching a blob URL immediately before revoking it works in an iframe.]
expected: FAIL expected: FAIL

View file

@ -2,6 +2,3 @@
[Hit test intersecting scaled box] [Hit test intersecting scaled box]
expected: FAIL expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -0,0 +1,2 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

@ -1,7 +0,0 @@
[offsetTopLeft-border-box.html]
[container: 1]
expected: FAIL
[container: 0]
expected: FAIL

View file

@ -0,0 +1,2 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -318,9 +318,15 @@
[<iframe>: separate response Content-Type: text/html;" text/plain] [<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain] [<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain] [<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL expected: FAIL

View file

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

View file

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

View file

@ -0,0 +1,2 @@
[cross-origin-objects-on-new-window.html]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: CRASH
[opener of discarded nested browsing context] [opener of discarded nested browsing context]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,5 @@
[meta-color-scheme-attribute-changes.html]
expected: ERROR
[Meta color-scheme initially 'dark'.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-empty-content-value.html]
[Meta color-scheme with empty content attribute has no effect.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-first-valid-applies.html]
[Tree order decides which meta color-scheme applies.]
expected: FAIL

View file

@ -0,0 +1,10 @@
[meta-color-scheme-insert.html]
[Inserted meta color-scheme applies]
expected: FAIL
[Inserted meta color-scheme before existing in head applies]
expected: FAIL
[Initial color-scheme]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-no-content-value.html]
[Meta color-scheme without content attribute has no effect.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-presentational-hint.html]
[Author origin style rule overrides meta color-scheme.]
expected: FAIL

View file

@ -0,0 +1,7 @@
[meta-color-scheme-remove-head.html]
[Initial value after removing head including meta color-scheme.]
expected: FAIL
[Meta color-scheme applies.]
expected: FAIL

View file

@ -0,0 +1,5 @@
[meta-color-scheme-remove.html]
expected: ERROR
[First meta applies.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-single-value-in-body.html]
[Meta color-scheme in body should apply.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-single-value-in-head.html]
[Meta color-scheme in head applies.]
expected: FAIL

View file

@ -0,0 +1,2 @@
[meta-color-scheme-single-value-in-shadow-tree.html]
expected: ERROR

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-1.html] [iframe_sandbox_popups_escaping-1.html]
expected: CRASH 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: TIMEOUT expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
expected: TIMEOUT expected: CRASH
[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: TIMEOUT expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_escaping-3.html] [iframe_sandbox_popups_escaping-3.html]
expected: CRASH
[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: FAIL

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-1.html] [iframe_sandbox_popups_nonescaping-1.html]
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

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

View file

@ -1,4 +0,0 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -4,5 +4,5 @@
expected: TIMEOUT expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL expected: TIMEOUT

View file

@ -0,0 +1,21 @@
[constructor-types.tentative.any.html]
[Zero minimum]
expected: FAIL
[Initializing with both initial and minimum]
expected: FAIL
[Non-zero minimum]
expected: FAIL
[constructor-types.tentative.any.worker.html]
[Zero minimum]
expected: FAIL
[Initializing with both initial and minimum]
expected: FAIL
[Non-zero minimum]
expected: FAIL

View file

@ -1,9 +0,0 @@
[constructor.any.worker.html]
[Proxy descriptor]
expected: FAIL
[constructor.any.html]
[Proxy descriptor]
expected: FAIL

View file

@ -0,0 +1,21 @@
[constructor-types.tentative.any.html]
[Zero minimum]
expected: FAIL
[Initializing with both initial and minimum]
expected: FAIL
[Non-zero minimum]
expected: FAIL
[constructor-types.tentative.any.worker.html]
[Zero minimum]
expected: FAIL
[Initializing with both initial and minimum]
expected: FAIL
[Non-zero minimum]
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,19 @@
[wheel.py]
[test_wheel_scroll_overflow]
expected: FAIL
[test_null_response_value]
expected: FAIL
[test_wheel_scroll]
expected: FAIL
[test_no_top_browsing_context]
expected: ERROR
[test_no_browsing_context]
expected: ERROR
[test_wheel_scroll_iframe]
expected: FAIL

View file

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

View file

@ -0,0 +1,7 @@
[webGLCanvasContext_create_xrcompatible.https.html]
[Creating a webglCanvasContext with no device]
expected: FAIL
[An XR-compatible webglCanvasContext can be created]
expected: FAIL

View file

@ -0,0 +1,11 @@
[webxr_feature_policy.https.html]
expected: ERROR
[Validate isSessionSupported behavior without xr-spatial-tracking policy]
expected: FAIL
[Validate xr compatibility requests without xr-spatial-tracking policy]
expected: NOTRUN
[Validate requestSession behavior without xr-spatial-tracking policy]
expected: FAIL

View file

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

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: TIMEOUT expected: FAIL
[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: TIMEOUT expected: TIMEOUT

View file

@ -432,7 +432,7 @@
}, },
"css-text": { "css-text": {
"altering-dom-crash.html": [ "altering-dom-crash.html": [
"227956e7a313fbfef1ac7882e0f5df10db4f5c43", "4840014533dca4db0405967f24dc7bca11b7d88c",
[ [
null, null,
{} {}
@ -487,7 +487,7 @@
] ]
}, },
"whitespace-followed-by-cham-symbol-crash.html": [ "whitespace-followed-by-cham-symbol-crash.html": [
"c56f915518fc0006322df8572f3c3f1f78c52b2b", "b07a802ecd671fea595e2137fd4a1c21407485f2",
[ [
null, null,
{} {}
@ -924,6 +924,15 @@
] ]
} }
}, },
"origin-isolation": {
"popups-crash.https.html": [
"dcfb5eb277489b5849f250275d6ce8197eedc224",
[
null,
{}
]
]
},
"portals": { "portals": {
"portals-no-frame-crash.html": [ "portals-no-frame-crash.html": [
"c87afa38c29bf98344c9d01039ed6bf9af1d5d96", "c87afa38c29bf98344c9d01039ed6bf9af1d5d96",
@ -124976,6 +124985,19 @@
{} {}
] ]
], ],
"out-of-flow-in-multicolumn-001.html": [
"148f39467f7b1db682cf16940702948152ff912e",
[
null,
[
[
"/css/css-break/out-of-flow-in-multicolum-001-ref.html",
"=="
]
],
{}
]
],
"overflowed-block-with-no-room-after-000.html": [ "overflowed-block-with-no-room-after-000.html": [
"084e16fb38de072fb83f92ba01302a2e404cdd97", "084e16fb38de072fb83f92ba01302a2e404cdd97",
[ [
@ -170051,6 +170073,19 @@
{} {}
] ]
], ],
"abspos-014.tentative.html": [
"b0accc68dc85564b851f746965a1bad48318ab40",
[
null,
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"auto-margins-001.tentative.html": [ "auto-margins-001.tentative.html": [
"9e89ab6ca7f5220ea030aa537bcb3b64f156043d", "9e89ab6ca7f5220ea030aa537bcb3b64f156043d",
[ [
@ -170754,7 +170789,7 @@
] ]
], ],
"flex-aspect-ratio-024.tentative.html": [ "flex-aspect-ratio-024.tentative.html": [
"b0cefd57c48378e688b19c849786a11a65759668", "ebac88ce33e45de1b288e5298d46ab0203430ae2",
[ [
null, null,
[ [
@ -186404,7 +186439,7 @@
] ]
], ],
"text-decoration-color.html": [ "text-decoration-color.html": [
"ec00b56aa4453f5263cd9f19b925e6fa0eec4bf0", "1e1353d9fa67ea6ef0019fc499dfeaafae65fe87",
[ [
null, null,
[ [
@ -295256,6 +295291,10 @@
"9a329b2446849d8f13b9d88cb5f73934536c3767", "9a329b2446849d8f13b9d88cb5f73934536c3767",
[] []
], ],
"out-of-flow-in-multicolum-001-ref.html": [
"7b6a3c50ca82b586450c8912e34141a9bca551e7",
[]
],
"reference": { "reference": {
"widows-orphans-001-ref.html": [ "widows-orphans-001-ref.html": [
"06108ac800c19c68841f2a0e8867fb05e868c1ab", "06108ac800c19c68841f2a0e8867fb05e868c1ab",
@ -295584,14 +295623,6 @@
] ]
}, },
"css-color-adjust": { "css-color-adjust": {
"meta": {
"support": {
"compute-root-color-scheme.js": [
"8ceddbc40bf2cdc37c0c26e0bede9b7a24892caf",
[]
]
}
},
"rendering": { "rendering": {
"dark-color-scheme": { "dark-color-scheme": {
"color-scheme-change-checkbox-notref.html": [ "color-scheme-change-checkbox-notref.html": [
@ -314262,7 +314293,7 @@
[] []
], ],
"text-decoration-color-ref.html": [ "text-decoration-color-ref.html": [
"33272cbe1da2512c79282895c1eb19bbeccf6d86", "3ae7777ef06cf3fa3bebcf385d8462cf8453ae64",
[] []
], ],
"text-decoration-line-010-ref.xht": [ "text-decoration-line-010-ref.xht": [
@ -333217,6 +333248,10 @@
"b79fe288b3ba6de26ccd15947e8521839a18c62a", "b79fe288b3ba6de26ccd15947e8521839a18c62a",
[] []
], ],
"cross-origin-isolated-worker.js": [
"9f1e3710af6e21832050b3f99f65f51f49fac461",
[]
],
"dedicated-worker.js": [ "dedicated-worker.js": [
"66f3cc3d413ec4f4ed3e92dd18081a59e2696734", "66f3cc3d413ec4f4ed3e92dd18081a59e2696734",
[] []
@ -338782,6 +338817,14 @@
] ]
}, },
"the-meta-element": { "the-meta-element": {
"color-scheme": {
"support": {
"compute-root-color-scheme.js": [
"8ceddbc40bf2cdc37c0c26e0bede9b7a24892caf",
[]
]
}
},
"pragma-directives": { "pragma-directives": {
"attr-meta-http-equiv-refresh": { "attr-meta-http-equiv-refresh": {
"support": { "support": {
@ -343080,6 +343123,10 @@
"pause.html.ini": [ "pause.html.ini": [
"657d2a2492605557dcc62f02dca36364cf3007fd", "657d2a2492605557dcc62f02dca36364cf3007fd",
[] []
],
"wheelScroll.html.ini": [
"f96fd377ba5daee31d56df4f6d490beb01e18522",
[]
] ]
}, },
"file_upload.sub.html.ini": [ "file_upload.sub.html.ini": [
@ -343439,10 +343486,6 @@
"492c5ce01218c78543ced4e46b62559544da61dc", "492c5ce01218c78543ced4e46b62559544da61dc",
[] []
], ],
"feature-policy.idl": [
"4f22cf299430062fd0bb6cb5483b011750a692ba",
[]
],
"fetch.idl": [ "fetch.idl": [
"a9304e90ef886bd9db5356258e84f700418d4393", "a9304e90ef886bd9db5356258e84f700418d4393",
[] []
@ -343528,7 +343571,7 @@
[] []
], ],
"is-input-pending.idl": [ "is-input-pending.idl": [
"aa918fb568b107ce12c0d51f38713e195592d893", "76e47cc06cfd66887b2ffbe60550a522ccfcf7f8",
[] []
], ],
"js-self-profiling.idl": [ "js-self-profiling.idl": [
@ -343596,7 +343639,7 @@
[] []
], ],
"native-file-system.idl": [ "native-file-system.idl": [
"92ca66c82e07fb24f72eab4973b6fe13beac0e7a", "3eda19c9d84af81a8eecc5ef3f0ea06753290301",
[] []
], ],
"navigation-timing.idl": [ "navigation-timing.idl": [
@ -343655,6 +343698,10 @@
"37a58ba1495805e08724cdcb7f37527cbf224821", "37a58ba1495805e08724cdcb7f37527cbf224821",
[] []
], ],
"permissions-policy.idl": [
"16945e3a9b7cded5610d9d2e2cb53acbb8d6b831",
[]
],
"permissions-request.idl": [ "permissions-request.idl": [
"e189194dd0bd92bb833c39b15b89bf243cee2729", "e189194dd0bd92bb833c39b15b89bf243cee2729",
[] []
@ -343999,7 +344046,7 @@
[] []
], ],
"input-onmessage.js": [ "input-onmessage.js": [
"21dddfb11b5d385ec4e4087c5b82fb37866fabcb", "919c939d1fc8de666f83159778c19a1a91548c8b",
[] []
], ],
"pending-input-utils.js": [ "pending-input-utils.js": [
@ -344141,7 +344188,7 @@
] ]
}, },
"lint.ignore": [ "lint.ignore": [
"9336f1ee574ab28effaee6ef45ef886c9c649dbd", "c740932e60ad5dc6939e7a41dc7d92534d81a5e4",
[] []
], ],
"loading": { "loading": {
@ -346338,6 +346385,14 @@
"9292fe3894e4a82f77a8877b76faa19fe6dfdb47", "9292fe3894e4a82f77a8877b76faa19fe6dfdb47",
[] []
], ],
"crashy-popup.sub.html": [
"f8d077c2a29ff494d502d70fc7f2cd80a443da68",
[]
],
"crashy-popup.sub.html.headers": [
"ea3f6b335c7620acf59f546fd48484bf624ccb38",
[]
],
"frame.html": [ "frame.html": [
"8f35d2703e72eb316b1e46f602ae6fc1d5894285", "8f35d2703e72eb316b1e46f602ae6fc1d5894285",
[] []
@ -349269,7 +349324,7 @@
[] []
], ],
"webxr-test.js": [ "webxr-test.js": [
"a1f57ac036b04a2b804d83acb594507aa9d1f31c", "800c0a4a9782d254f6f7b8473853354bdd31d058",
[] []
], ],
"webxr-test.js.headers": [ "webxr-test.js.headers": [
@ -349710,7 +349765,7 @@
[] []
], ],
"testdriver-actions.js": [ "testdriver-actions.js": [
"870a2e8e26678085f80c030d436dd13686fb9b0b", "b6030bf121388d5f4e33fbc31f8680fb6f58344b",
[] []
], ],
"testdriver-vendor.js": [ "testdriver-vendor.js": [
@ -354293,7 +354348,7 @@
[] []
], ],
"lint.py": [ "lint.py": [
"8965c1a0a12926213eb74f7f880c198004cf46fc", "bb49d8970d96dfe6767fcefdf1eea183e6bbccbd",
[] []
], ],
"rules.py": [ "rules.py": [
@ -354547,7 +354602,7 @@
[] []
], ],
"sourcefile.py": [ "sourcefile.py": [
"5a7310213a75d564324791c64dfe9646fcc7355e", "6e90ac05475fc656de22befc5addc3fd5f51e913",
[] []
], ],
"testpaths.py": [ "testpaths.py": [
@ -354755,7 +354810,7 @@
[] []
], ],
"serve.py": [ "serve.py": [
"1c44615358567d6477f3746171bffef3935d9cc3", "8243acc5eb8ec21e2d1d322ec4d93dc536976e08",
[] []
], ],
"test_functional.py": [ "test_functional.py": [
@ -360520,7 +360575,7 @@
[] []
], ],
"client.py": [ "client.py": [
"0f79483826b34bdd5f5331d715cebbcda82e4737", "1a4b6498312d652b4a9d839e2076dbb7d8b0f9f5",
[] []
], ],
"error.py": [ "error.py": [
@ -360547,7 +360602,7 @@
[] []
], ],
"browser.py": [ "browser.py": [
"664d984da0403acf03a13406f8263780f9be7ead", "6f9da16c50bea6f073421c99e5050ed9eedb71b8",
[] []
], ],
"commands.json": [ "commands.json": [
@ -360583,7 +360638,7 @@
[] []
], ],
"run.py": [ "run.py": [
"18f1c55145e819dbf16aeb35cfcbf3dedcaf5d7d", "8edaa60ab03bf19339aa0773789dd8bdf3755b54",
[] []
], ],
"testfiles.py": [ "testfiles.py": [
@ -360596,7 +360651,7 @@
[] []
], ],
"test_browser.py": [ "test_browser.py": [
"495d5f056fc1bd898047c7a46220fa523ffb4093", "350ee9b5eaee3e23454a71202480e28f14330a0a",
[] []
], ],
"test_install.py": [ "test_install.py": [
@ -363594,7 +363649,7 @@
[] []
], ],
"conftest.py": [ "conftest.py": [
"5ee8ae1c741a9c75658d36d774e0c2523913c6d5", "970f7b7dd9be42356b64c5082862e11abbe80c68",
[] []
], ],
"support": { "support": {
@ -363614,6 +363669,10 @@
"3a6d63e04ce941d26ab3898cb2fc2a730d46c1ce", "3a6d63e04ce941d26ab3898cb2fc2a730d46c1ce",
[] []
], ],
"test_actions_scroll_wdspec.html": [
"b6e281e581816f7f42b5e92387adc3047fa4f891",
[]
],
"test_actions_wdspec.html": [ "test_actions_wdspec.html": [
"0253add960792f79bef8a8747dac26661c4a2f86", "0253add960792f79bef8a8747dac26661c4a2f86",
[] []
@ -394990,85 +395049,6 @@
{} {}
] ]
], ],
"meta": {
"meta-color-scheme-attribute-changes.html": [
"bb9fa659f32778b3860d93b0c4964521db01720d",
[
null,
{}
]
],
"meta-color-scheme-empty-content-value.html": [
"86cc93c2dc9e2eef670f9f153b89e6f764db382e",
[
null,
{}
]
],
"meta-color-scheme-first-valid-applies.html": [
"0ade6df501eef9ac035b6688a0b1b6a38ecda1e7",
[
null,
{}
]
],
"meta-color-scheme-insert.html": [
"861818284bcb74857bc89b293c34b02c7a464223",
[
null,
{}
]
],
"meta-color-scheme-no-content-value.html": [
"6edb761960b60b2b0b69842179772aeb9288e4c8",
[
null,
{}
]
],
"meta-color-scheme-presentational-hint.html": [
"5a87604e86b992669e92fd1be3a243841e5d890e",
[
null,
{}
]
],
"meta-color-scheme-remove-head.html": [
"d627f62df781a15b3bc9f8d1ea28f755104a7e54",
[
null,
{}
]
],
"meta-color-scheme-remove.html": [
"8439c5046259dfe3648331476849976f1b60f9e5",
[
null,
{}
]
],
"meta-color-scheme-single-value-in-body.html": [
"ff8fe416251c15f28e45ba07d2cca4b4f87733a3",
[
null,
{}
]
],
"meta-color-scheme-single-value-in-head.html": [
"6b5e5c0f8a6f6519a5ac63945811671ef743dee7",
[
null,
{}
]
],
"meta-color-scheme-single-value-in-shadow-tree.html": [
"23ec7de1a945876a6a2e75eb4b72ce41be972a8a",
[
null,
{}
]
]
},
"parsing": { "parsing": {
"color-scheme-computed.html": [ "color-scheme-computed.html": [
"5e1ee74ad9b5208eece25fb003eeff6957b2e996", "5e1ee74ad9b5208eece25fb003eeff6957b2e996",
@ -403001,41 +402981,6 @@
null, null,
{} {}
] ]
],
"scrollbar-gutter-001.html": [
"c6cdb55baad8b5e1deb5e89277c0bf2f5196a770",
[
null,
{}
]
],
"scrollbar-gutter-002.html": [
"8756ab7f0f810870676cbd6da6147d4b41235772",
[
null,
{}
]
],
"scrollbar-gutter-003.html": [
"1002b462390c2e7bbe7ee2cd0a93be410717a3c7",
[
null,
{}
]
],
"scrollbar-gutter-004.html": [
"b41e3491f278d8fc691aa4834b8408f3699836b7",
[
null,
{}
]
],
"scrollbar-gutter-005.html": [
"dca465770ddb8d77aebf5be511c1c9325f9f7745",
[
null,
{}
]
] ]
}, },
"css-overscroll-behavior": { "css-overscroll-behavior": {
@ -436347,7 +436292,7 @@
] ]
], ],
"idlharness.window.js": [ "idlharness.window.js": [
"724da3c80179e0aa1cf3875125fd02e2df23905e", "2546061c52c5b39266b44b8725206b5dd50b81a5",
[ [
"feature-policy/idlharness.window.html", "feature-policy/idlharness.window.html",
{ {
@ -461302,7 +461247,7 @@
] ]
], ],
"cross-origin-isolated-permission.https.html": [ "cross-origin-isolated-permission.https.html": [
"aec1b858542bd95dce04bf0773af8138854acc69", "2fc545d5acb69dc21684418cb24e4830d4c9bb9c",
[ [
null, null,
{} {}
@ -463410,7 +463355,7 @@
], ],
"shared-array-buffers": { "shared-array-buffers": {
"blob-data.https.html": [ "blob-data.https.html": [
"dbc73e98f578111757e5b82a8d6f5197249871a9", "bfcc8b61ca233d4563a5972c8cfaacf681cf9c66",
[ [
null, null,
{} {}
@ -465572,6 +465517,85 @@
] ]
}, },
"the-meta-element": { "the-meta-element": {
"color-scheme": {
"meta-color-scheme-attribute-changes.html": [
"e92b089b052acf263ea9118ac02d0f6afa232a2a",
[
null,
{}
]
],
"meta-color-scheme-empty-content-value.html": [
"b6a1ecbb851fe91bace264dbc60b12aae0e36a0f",
[
null,
{}
]
],
"meta-color-scheme-first-valid-applies.html": [
"095d0f360dc29937db7e8ee4e291daccb20cfedf",
[
null,
{}
]
],
"meta-color-scheme-insert.html": [
"faac2bf3155bdaaaf516c4c68ae38a0c5e4e78dc",
[
null,
{}
]
],
"meta-color-scheme-no-content-value.html": [
"9cb8febe4b89f1920867cf1c9f2dcfca641dd842",
[
null,
{}
]
],
"meta-color-scheme-presentational-hint.html": [
"e5dc75a911c8f4fa12d85087cd769286e62719a4",
[
null,
{}
]
],
"meta-color-scheme-remove-head.html": [
"409abb694df3c9d350e65674a3359178b79d3235",
[
null,
{}
]
],
"meta-color-scheme-remove.html": [
"8457dde6fa37cb77a526543f64bc3448de1a2980",
[
null,
{}
]
],
"meta-color-scheme-single-value-in-body.html": [
"19f8d53994a2ee0a5ec6cc6938bb1485d76f3452",
[
null,
{}
]
],
"meta-color-scheme-single-value-in-head.html": [
"b9fd2c4384cccc8c76604f19c8ec6483f643ee86",
[
null,
{}
]
],
"meta-color-scheme-single-value-in-shadow-tree.html": [
"1e0e2d956278b2dfa999b09270241e5fbeaf2aa5",
[
null,
{}
]
]
},
"pragma-directives": { "pragma-directives": {
"attr-meta-http-equiv-refresh": { "attr-meta-http-equiv-refresh": {
"allow-scripts-flag-changing-1.html": [ "allow-scripts-flag-changing-1.html": [
@ -480622,6 +480646,15 @@
"testdriver": true "testdriver": true
} }
] ]
],
"wheelScroll.html": [
"a7d9b2609da763dbfaacab253edb13ca35c16627",
[
null,
{
"testdriver": true
}
]
] ]
}, },
"bless.html": [ "bless.html": [
@ -481280,7 +481313,7 @@
}, },
"is-input-pending": { "is-input-pending": {
"idlharness.window.js": [ "idlharness.window.js": [
"e6bb26a5a710d0dbd35bddae78143b433cb5bb1b", "726dd137dd6717addd33dbbafef8955f39e8bb2c",
[ [
"is-input-pending/idlharness.window.html", "is-input-pending/idlharness.window.html",
{ {
@ -493698,7 +493731,7 @@
] ]
], ],
"mouse_buttons_back_forward.html": [ "mouse_buttons_back_forward.html": [
"95490d2d4df442bba56aed62205bdf3bc34e55a3", "6f4e764983b89f72cbd7e42a20fcb133dc8383f5",
[ [
null, null,
{ {
@ -523901,7 +523934,7 @@
] ]
], ],
"constructor-types.tentative.any.js": [ "constructor-types.tentative.any.js": [
"764aac78670c5d0711345434060801b76eeb2291", "d5378dbe82b00b98e036090a377f5e90cca57e57",
[ [
null, null,
{ {
@ -523909,7 +523942,45 @@
"script_metadata": [ "script_metadata": [
[ [
"global", "global",
"jsshell" "window,dedicatedworker,jsshell"
],
[
"script",
"/wasm/jsapi/assertions.js"
],
[
"script",
"/wasm/jsapi/memory/assertions.js"
]
]
}
],
[
"wasm/jsapi/memory/constructor-types.tentative.any.html",
{
"script_metadata": [
[
"global",
"window,dedicatedworker,jsshell"
],
[
"script",
"/wasm/jsapi/assertions.js"
],
[
"script",
"/wasm/jsapi/memory/assertions.js"
]
]
}
],
[
"wasm/jsapi/memory/constructor-types.tentative.any.worker.html",
{
"script_metadata": [
[
"global",
"window,dedicatedworker,jsshell"
], ],
[ [
"script", "script",
@ -523924,7 +523995,7 @@
] ]
], ],
"constructor.any.js": [ "constructor.any.js": [
"30cc8ef9885fe0507bcea15aa88ac57a2bd4c124", "0a0be11e370877096aa543a179f6eca2633b4c81",
[ [
null, null,
{ {
@ -524400,7 +524471,7 @@
], ],
"table": { "table": {
"constructor-types.tentative.any.js": [ "constructor-types.tentative.any.js": [
"09ab18a2d8cec7443eb58eee81f0ef7b86aacb41", "99ca41b55a9152be82d86b8b73cc7962f16b2862",
[ [
null, null,
{ {
@ -524408,7 +524479,45 @@
"script_metadata": [ "script_metadata": [
[ [
"global", "global",
"jsshell" "window,dedicatedworker,jsshell"
],
[
"script",
"/wasm/jsapi/assertions.js"
],
[
"script",
"/wasm/jsapi/table/assertions.js"
]
]
}
],
[
"wasm/jsapi/table/constructor-types.tentative.any.html",
{
"script_metadata": [
[
"global",
"window,dedicatedworker,jsshell"
],
[
"script",
"/wasm/jsapi/assertions.js"
],
[
"script",
"/wasm/jsapi/table/assertions.js"
]
]
}
],
[
"wasm/jsapi/table/constructor-types.tentative.any.worker.html",
{
"script_metadata": [
[
"global",
"window,dedicatedworker,jsshell"
], ],
[ [
"script", "script",
@ -527433,7 +527542,7 @@
] ]
], ],
"canShare.tentative.https.html": [ "canShare.tentative.https.html": [
"bb263e542559d8676c2dd94b7521ecf345dc712e", "55e026dd4cc9bdea9c3e9933b80ec6037d9b6a08",
[ [
null, null,
{} {}
@ -529317,7 +529426,7 @@
] ]
], ],
"getcredential-extensions.https.html": [ "getcredential-extensions.https.html": [
"af03086ee048567c32338636560ff2d76351892b", "fd8d38d2dfd25b31eb97f66ad97574bacc27e66a",
[ [
null, null,
{ {
@ -530786,7 +530895,7 @@
] ]
], ],
"RTCPeerConnection-getStats.https.html": [ "RTCPeerConnection-getStats.https.html": [
"bdf7770350e99fe6b730d3e91255f49f30961ed0", "f39fd2c3137c35006a7ba13ef77e062e46ee86d5",
[ [
null, null,
{} {}
@ -531017,7 +531126,7 @@
] ]
], ],
"RTCPeerConnection-setRemoteDescription-replaceTrack.https.html": [ "RTCPeerConnection-setRemoteDescription-replaceTrack.https.html": [
"4bdcddec5115c3d9c953859950854b3ec97fbbef", "217326bfae22f13ca6dce2874d8d01d106ad7378",
[ [
null, null,
{} {}
@ -531054,7 +531163,7 @@
] ]
], ],
"RTCPeerConnection-track-stats.https.html": [ "RTCPeerConnection-track-stats.https.html": [
"7b43e4e0bb43cf0cabb53132ea5cd410e2163f1d", "42054ad9e66615543cd3bf02544f876dabd2a3a0",
[ [
null, null,
{ {
@ -531343,7 +531452,7 @@
], ],
"legacy": { "legacy": {
"RTCPeerConnection-addStream.https.html": [ "RTCPeerConnection-addStream.https.html": [
"5a35ebc53b8d7ce3857d4869a476e0e99a9078c8", "7ebcacda5371f74a237d1e19412c200371be9d58",
[ [
null, null,
{ {
@ -531396,7 +531505,7 @@
] ]
], ],
"candidate-exchange.https.html": [ "candidate-exchange.https.html": [
"82178953b6bbe3faccfd949817cf59e8d1dfa1ab", "c54f26e6d80dd9056e8ebc11df929b51f69f88eb",
[ [
null, null,
{ {
@ -537707,7 +537816,7 @@
] ]
], ],
"webGLCanvasContext_create_xrcompatible.https.html": [ "webGLCanvasContext_create_xrcompatible.https.html": [
"33e54865253f93ee3f33da32c3591e4149b7a67a", "2b3a1fccc45fb9f1fad9fc11f3641b313929116b",
[ [
null, null,
{} {}
@ -537742,7 +537851,7 @@
] ]
], ],
"webxr_feature_policy.https.html": [ "webxr_feature_policy.https.html": [
"7f3d03b48e5881d74d92d187243814dc9fa58b7d", "b493ec73cce687832cfc0784a1a798d665eb10af",
[ [
null, null,
{} {}
@ -568343,6 +568452,13 @@
null, null,
{} {}
] ]
],
"wheel.py": [
"fc84f2f2e0148967464505f83317edac2e54bd84",
[
null,
{}
]
] ]
}, },
"permissions": { "permissions": {

View file

@ -2,6 +2,3 @@
[Hit test intersecting scaled box] [Hit test intersecting scaled box]
expected: FAIL expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -0,0 +1,2 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

@ -1,7 +0,0 @@
[offsetTopLeft-border-box.html]
[container: 1]
expected: FAIL
[container: 0]
expected: FAIL

View file

@ -0,0 +1,2 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -318,9 +318,15 @@
[<iframe>: separate response Content-Type: text/html;" text/plain] [<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain] [<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain] [<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL expected: FAIL

View file

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

View file

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

View file

@ -0,0 +1,2 @@
[cross-origin-objects-on-new-window.html]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: CRASH
[opener and "removed" embedded documents] [opener and "removed" embedded documents]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,5 @@
[meta-color-scheme-attribute-changes.html]
expected: ERROR
[Meta color-scheme initially 'dark'.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-empty-content-value.html]
[Meta color-scheme with empty content attribute has no effect.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-first-valid-applies.html]
[Tree order decides which meta color-scheme applies.]
expected: FAIL

View file

@ -0,0 +1,10 @@
[meta-color-scheme-insert.html]
[Inserted meta color-scheme applies]
expected: FAIL
[Inserted meta color-scheme before existing in head applies]
expected: FAIL
[Initial color-scheme]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-no-content-value.html]
[Meta color-scheme without content attribute has no effect.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-presentational-hint.html]
[Author origin style rule overrides meta color-scheme.]
expected: FAIL

View file

@ -0,0 +1,7 @@
[meta-color-scheme-remove-head.html]
[Initial value after removing head including meta color-scheme.]
expected: FAIL
[Meta color-scheme applies.]
expected: FAIL

View file

@ -0,0 +1,5 @@
[meta-color-scheme-remove.html]
expected: ERROR
[First meta applies.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-single-value-in-body.html]
[Meta color-scheme in body should apply.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[meta-color-scheme-single-value-in-head.html]
[Meta color-scheme in head applies.]
expected: FAIL

View file

@ -0,0 +1,2 @@
[meta-color-scheme-single-value-in-shadow-tree.html]
expected: ERROR

View file

@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-1.html] [iframe_sandbox_popups_escaping-1.html]
type: testharness type: testharness
expected: CRASH 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: TIMEOUT expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
expected: TIMEOUT expected: CRASH
[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: TIMEOUT expected: TIMEOUT

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_escaping-3.html] [iframe_sandbox_popups_escaping-3.html]
type: testharness type: testharness
expected: CRASH
[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: FAIL

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_nonescaping-1.html] [iframe_sandbox_popups_nonescaping-1.html]
type: testharness type: testharness
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

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

View file

@ -1,4 +0,0 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -5,5 +5,5 @@
expected: TIMEOUT expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL expected: TIMEOUT

View file

@ -0,0 +1,21 @@
[constructor-types.tentative.any.html]
[Zero minimum]
expected: FAIL
[Initializing with both initial and minimum]
expected: FAIL
[Non-zero minimum]
expected: FAIL
[constructor-types.tentative.any.worker.html]
[Zero minimum]
expected: FAIL
[Initializing with both initial and minimum]
expected: FAIL
[Non-zero minimum]
expected: FAIL

View file

@ -2,14 +2,8 @@
[Shared memory] [Shared memory]
expected: FAIL expected: FAIL
[Proxy descriptor]
expected: FAIL
[constructor.any.html] [constructor.any.html]
[Shared memory] [Shared memory]
expected: FAIL expected: FAIL
[Proxy descriptor]
expected: FAIL

View file

@ -0,0 +1,21 @@
[constructor-types.tentative.any.html]
[Zero minimum]
expected: FAIL
[Initializing with both initial and minimum]
expected: FAIL
[Non-zero minimum]
expected: FAIL
[constructor-types.tentative.any.worker.html]
[Zero minimum]
expected: FAIL
[Initializing with both initial and minimum]
expected: FAIL
[Non-zero minimum]
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,19 @@
[wheel.py]
[test_wheel_scroll_overflow]
expected: FAIL
[test_null_response_value]
expected: FAIL
[test_wheel_scroll]
expected: FAIL
[test_no_top_browsing_context]
expected: ERROR
[test_no_browsing_context]
expected: ERROR
[test_wheel_scroll_iframe]
expected: FAIL

View file

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

View file

@ -2,3 +2,6 @@
[An XR-compatible webglCanvasContext can be created] [An XR-compatible webglCanvasContext can be created]
expected: FAIL expected: FAIL
[Creating a webglCanvasContext with no device]
expected: FAIL

View file

@ -6,3 +6,6 @@
[Validate requestSession behavior without xr-spatial-tracking policy] [Validate requestSession behavior without xr-spatial-tracking policy]
expected: FAIL expected: FAIL
[Validate xr compatibility requests without xr-spatial-tracking policy]
expected: NOTRUN

View file

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

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<link rel="author" title="Benjamin Beaudry" href="mailto:bebeaudr@microsoft.com">
<p>The abs element should be split equally into the two columns - no red!</p>
<div style="float:left; border-bottom:10px solid green; width:42px; height: 30px; background:gray;"></div>
<div style="float:left; margin-left: 16px; border-top:10px solid green; width:42px; height: 30px; background:gray;"></div>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<link rel="author" title="Benjamin Beaudry" href="mailto:bebeaudr@microsoft.com">
<link rel="help" href="href=https://www.w3.org/TR/css-break-3/#break-decoration">
<link rel="match" href="out-of-flow-in-multicolum-001-ref.html">
<p>The abs element should be split equally into the two columns - no red!</p>
<style>
#multicol {
column-count: 2;
column-fill: auto;
column-gap: 16px;
column-rule:16px white solid;
width: 100px;
height: 40px;
background: gray;
}
.abs {
position: absolute;
top: 0px;
width: 100%;
height: 20px;
background: green;
}
.below-abs {
height: 20px;
background: red;
}
</style>
<div id="container">
<div id="multicol">
<div style="width:100px; height:30px;"></div>
<div style="position: relative;">
<div class="below-abs"></div>
<div class="abs"></div>
</div>
</div>
</div>

View file

@ -1,197 +0,0 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Overflow: test scrollbar-gutter: auto (classic scrollbars)</title>
<link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@gmail.com"/>
<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#scollbar-gutter-property"/>
<meta name="assert" content="Test scrollbar-gutter: auto with custom classic scrollbars">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<style>
.container {
scrollbar-gutter: auto;
height: 200px;
width: 200px;
margin: 1px;
padding: 0px;
border: none;
background: deepskyblue;
}
.content {
height: 100%;
width: 100%;
background: lightsalmon;
}
/* ensure that we are using classic scrollbars */
.classic {
scrollbar-width: 20px;
scrollbar-color: hsla(0, 0%, 20%, 0.6) hsla(0, 0%, 40%, 0.3);
}
.classic::-webkit-scrollbar {
width: 20px;
height: 20px;
}
.classic::-webkit-scrollbar-track {
background-color: hsla(0, 0%, 40%, 0.4);
}
.classic::-webkit-scrollbar-thumb {
background-color: hsla(0, 0%, 20%, 0.8);
border-radius: 10px;
}
/* writing modes */
.horizontal {
writing-mode: horizontal-tb;
overflow-x: auto;
}
.vertical {
writing-mode: vertical-rl;
overflow-y: auto;
}
/* overflow on the block direction */
.horizontal.auto { overflow-y: auto; }
.horizontal.scroll { overflow-y: scroll; }
.horizontal.visible { overflow: visible; }
.horizontal.hidden { overflow-y: hidden; }
.vertical.auto { overflow-x: auto; }
.vertical.scroll { overflow-x: scroll; }
.vertical.visible { overflow: visible; }
.vertical.hidden { overflow-x: hidden; }
/* Note: not testing with overflow: clip; */
</style>
<script type="text/javascript">
function performTest() {
setup({explicit_done: true});
test(function() {
let container = document.getElementById('container_auto_h');
let content = document.getElementById('content_auto_h');
assert_equals(container.scrollWidth, 200, "auto/auto scrollWidth");
assert_equals(container.clientWidth, 200, "auto/auto clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "auto/auto offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "auto/auto clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "auto/auto offsetWidth");
}, "Unexpected layout: overflow auto, scrollbar-gutter auto, horizontal-tb");
test(function() {
let container = document.getElementById('container_scroll_h');
let content = document.getElementById('content_scroll_h');
assert_equals(container.scrollWidth, 180, "scroll/auto scrollWidth");
assert_equals(container.clientWidth, 180, "scroll/auto clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "scroll/auto offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "scroll/auto clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "scroll/auto offsetWidth");
}, "Unexpected layout: overflow scroll, scrollbar-gutter auto, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_h');
let content = document.getElementById('content_visible_h');
assert_equals(container.scrollWidth, 200, "visible/auto scrollWidth");
assert_equals(container.clientWidth, 200, "visible/auto clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "visible/auto offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/auto clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "visible/auto offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter auto, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_h');
let content = document.getElementById('content_hidden_h');
assert_equals(container.scrollWidth, 200, "hidden/auto scrollWidth");
assert_equals(container.clientWidth, 200, "hidden/auto clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "hidden/auto offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/auto clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "hidden/auto offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter auto, horizontal-tb");
// vertical
test(function() {
let container = document.getElementById('container_auto_v');
let content = document.getElementById('content_auto_v');
assert_equals(container.scrollHeight, 200, "auto/auto scrollHeight");
assert_equals(container.clientHeight, 200, "auto/auto clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "auto/auto offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "auto/auto clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "auto/auto offsetHeight");
}, "Unexpected layout: overflow auto, scrollbar-gutter auto, vertical-rl");
test(function() {
let container = document.getElementById('container_scroll_v');
let content = document.getElementById('content_scroll_v');
assert_equals(container.scrollHeight, 180, "scroll/auto scrollHeight");
assert_equals(container.clientHeight, 180, "scroll/auto clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "scroll/auto offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "scroll/auto clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "scroll/auto offsetHeight");
}, "Unexpected layout: overflow scroll, scrollbar-gutter auto, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_v');
let content = document.getElementById('content_visible_v');
assert_equals(container.scrollHeight, 200, "visible/auto scrollHeight");
assert_equals(container.clientHeight, 200, "visible/auto clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "visible/auto offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/auto clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "visible/auto offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter auto, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_v');
let content = document.getElementById('content_hidden_v');
assert_equals(container.scrollHeight, 200, "hidden/auto scrollHeight");
assert_equals(container.clientHeight, 200, "hidden/auto clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "hidden/auto offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/auto clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "hidden/auto offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter auto, vertical-rl");
done();
}
</script>
<body onload="performTest()">
Test scrollbar-gutter: auto, writing-mode: horizontal-tb
<div class="container classic horizontal auto" id="container_auto_h">
<div class="content" id="content_auto_h">overflow-y: auto</div>
</div>
<div class="container classic horizontal scroll" id="container_scroll_h">
<div class="content" id="content_scroll_h">overflow-y: scroll</div>
</div>
<div class="container classic horizontal visible" id="container_visible_h">
<div class="content" id="content_visible_h">overflow: visible</div>
</div>
<div class="container classic horizontal hidden" id="container_hidden_h">
<div class="content" id="content_hidden_h">overflow-y: hidden</div>
</div>
writing-mode: vertical-rl;
<div class="container classic vertical auto" id="container_auto_v">
<div class="content" id="content_auto_v">overflow-x: auto</div>
</div>
<div class="container classic vertical scroll" id="container_scroll_v">
<div class="content" id="content_scroll_v">overflow-x: scroll</div>
</div>
<div class="container classic vertical visible" id="container_visible_v">
<div class="content" id="content_visible_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden" id="container_hidden_v">
<div class="content" id="content_hidden_v">overflow-x: hidden</div>
</div>
</body>

View file

@ -1,263 +0,0 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Overflow: test scrollbar-gutter: stable (classic scrollbars)</title>
<link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@gmail.com"/>
<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#scollbar-gutter-property"/>
<meta name="assert" content="Test scrollbar-gutter: stable with custom classic scrollbars">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<style>
.container {
scrollbar-gutter: stable;
height: 200px;
width: 200px;
margin: 1px;
padding: 0px;
border: none;
background: deepskyblue;
}
.container.force {
scrollbar-gutter: stable force;
}
.content {
height: 100%;
width: 100%;
background: lightsalmon;
}
/* ensure that we are using classic scrollbars */
.classic {
scrollbar-width: 20px;
scrollbar-color: hsla(0, 0%, 20%, 0.6) hsla(0, 0%, 40%, 0.3);
}
.classic::-webkit-scrollbar {
width: 20px;
height: 20px;
}
.classic::-webkit-scrollbar-track {
background-color: hsla(0, 0%, 40%, 0.4);
}
.classic::-webkit-scrollbar-thumb {
background-color: hsla(0, 0%, 20%, 0.8);
border-radius: 10px;
}
/* writing modes */
.horizontal {
writing-mode: horizontal-tb;
overflow-x: auto;
}
.vertical {
writing-mode: vertical-rl;
overflow-y: auto;
}
/* overflow on the block direction */
.horizontal.auto { overflow-y: auto; }
.horizontal.scroll { overflow-y: scroll; }
.horizontal.visible { overflow: visible; }
.horizontal.hidden { overflow-y: hidden; }
.vertical.auto { overflow-x: auto; }
.vertical.scroll { overflow-x: scroll; }
.vertical.visible { overflow: visible; }
.vertical.hidden { overflow-x: hidden; }
/* Note: not testing with overflow: clip; */
</style>
<script type="text/javascript">
function performTest() {
setup({explicit_done: true});
// horizontal
test(function() {
let container = document.getElementById('container_auto_h');
let content = document.getElementById('content_auto_h');
assert_equals(container.scrollWidth, 180, "auto/stable scrollWidth");
assert_equals(container.clientWidth, 180, "auto/stable clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "auto/stable offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "auto/stable clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "auto/stable offsetWidth");
}, "Unexpected layout: overflow auto, scrollbar-gutter stable, horizontal-tb");
test(function() {
let container = document.getElementById('container_scroll_h');
let content = document.getElementById('content_scroll_h');
assert_equals(container.scrollWidth, 180, "scroll/stable scrollWidth");
assert_equals(container.clientWidth, 180, "scroll/stable clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "scroll/stable offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "scroll/stable clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "scroll/stable offsetWidth");
}, "Unexpected layout: overflow scroll, scrollbar-gutter stable, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_h');
let content = document.getElementById('content_visible_h');
assert_equals(container.scrollWidth, 200, "visible/stable scrollWidth");
assert_equals(container.clientWidth, 200, "visible/stable clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "visible/stable offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/stable clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "visible/stable offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter stable, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_h');
let content = document.getElementById('content_hidden_h');
assert_equals(container.scrollWidth, 200, "hidden/stable scrollWidth");
assert_equals(container.clientWidth, 200, "hidden/stable clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "hidden/stable offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/stable clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "hidden/stable offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter stable, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_force_h');
let content = document.getElementById('content_visible_force_h');
assert_equals(container.scrollWidth, 180, "visible/stable force scrollWidth");
assert_equals(container.clientWidth, 180, "visible/stable force clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "visible/stable force offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/stable force clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "visible/stable force offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter stable force, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_force_h');
let content = document.getElementById('content_hidden_force_h');
assert_equals(container.scrollWidth, 180, "hidden/stable force scrollWidth");
assert_equals(container.clientWidth, 180, "hidden/stable force clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "hidden/stable force offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/stable force clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "hidden/stable force offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter stable force, horizontal-tb");
// vertical
test(function() {
let container = document.getElementById('container_auto_v');
let content = document.getElementById('content_auto_v');
assert_equals(container.scrollHeight, 180, "auto/stable scrollHeight");
assert_equals(container.clientHeight, 180, "auto/stable clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "auto/stable offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "auto/stable clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "auto/stable offsetHeight");
}, "Unexpected layout: overflow auto, scrollbar-gutter stable, vertical-rl");
test(function() {
let container = document.getElementById('container_scroll_v');
let content = document.getElementById('content_scroll_v');
assert_equals(container.scrollHeight, 180, "scroll/stable scrollHeight");
assert_equals(container.clientHeight, 180, "scroll/stable clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "scroll/stable offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "scroll/stable clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "scroll/stable offsetHeight");
}, "Unexpected layout: overflow scroll, scrollbar-gutter stable, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_v');
let content = document.getElementById('content_visible_v');
assert_equals(container.scrollHeight, 200, "visible/stable scrollHeight");
assert_equals(container.clientHeight, 200, "visible/stable clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "visible/stable offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/stable clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "visible/stable offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter stable, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_v');
let content = document.getElementById('content_hidden_v');
assert_equals(container.scrollHeight, 200, "hidden/stable scrollHeight");
assert_equals(container.clientHeight, 200, "hidden/stable clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "hidden/stable offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/stable clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "hidden/stable offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter stable, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_force_v');
let content = document.getElementById('content_visible_force_v');
assert_equals(container.scrollHeight, 180, "visible/stable force scrollHeight");
assert_equals(container.clientHeight, 180, "visible/stable force clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "visible/stable force offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/stable force clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "visible/stable force offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter stable force, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_force_v');
let content = document.getElementById('content_hidden_force_v');
assert_equals(container.scrollHeight, 180, "hidden/stable force scrollHeight");
assert_equals(container.clientHeight, 180, "hidden/stable force clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "hidden/stable force offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/stable force clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "hidden/stable force offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter stable force, vertical-rl");
done();
}
</script>
<body onload="performTest()">
Test scrollbar-gutter: stable, writing-mode: horizontal-tb
<div class="container classic horizontal auto" id="container_auto_h">
<div class="content" id="content_auto_h">overflow-y: auto</div>
</div>
<div class="container classic horizontal scroll" id="container_scroll_h">
<div class="content" id="content_scroll_h">overflow-y: scroll</div>
</div>
<div class="container classic horizontal visible" id="container_visible_h">
<div class="content" id="content_visible_h">overflow: visible</div>
</div>
<div class="container classic horizontal hidden" id="container_hidden_h">
<div class="content" id="content_hidden_h">overflow-y: hidden</div>
</div>
scrollbar-gutter: stable force
<div class="container classic horizontal visible force" id="container_visible_force_h">
<div class="content" id="content_visible_force_h">overflow: visible (force)</div>
</div>
<div class="container classic horizontal hidden force" id="container_hidden_force_h">
<div class="content" id="content_hidden_force_h">overflow-y: hidden (force)</div>
</div>
writing-mode: vertical-rl;
<div class="container classic vertical auto" id="container_auto_v">
<div class="content" id="content_auto_v">overflow-x: auto</div>
</div>
<div class="container classic vertical scroll" id="container_scroll_v">
<div class="content" id="content_scroll_v">overflow-x: scroll</div>
</div>
<div class="container classic vertical visible" id="container_visible_v">
<div class="content" id="content_visible_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden" id="container_hidden_v">
<div class="content" id="content_hidden_v">overflow-x: hidden</div>
</div>
scrollbar-gutter: stable force
<div class="container classic vertical visible force" id="container_visible_force_v">
<div class="content" id="content_visible_force_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden force" id="container_hidden_force_v">
<div class="content" id="content_hidden_force_v">overflow-x: hidden</div>
</div>
</body>

View file

@ -1,263 +0,0 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Overflow: test scrollbar-gutter: always (classic scrollbars)</title>
<link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@gmail.com"/>
<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#scollbar-gutter-property"/>
<meta name="assert" content="Test scrollbar-gutter: always with custom classic scrollbars">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<style>
.container {
scrollbar-gutter: always;
height: 200px;
width: 200px;
margin: 1px;
padding: 0px;
border: none;
background: deepskyblue;
}
.container.force {
scrollbar-gutter: always force;
}
.content {
height: 100%;
width: 100%;
background: lightsalmon;
}
/* ensure that we are using classic scrollbars */
.classic {
scrollbar-width: 20px;
scrollbar-color: hsla(0, 0%, 20%, 0.6) hsla(0, 0%, 40%, 0.3);
}
.classic::-webkit-scrollbar {
width: 20px;
height: 20px;
}
.classic::-webkit-scrollbar-track {
background-color: hsla(0, 0%, 40%, 0.4);
}
.classic::-webkit-scrollbar-thumb {
background-color: hsla(0, 0%, 20%, 0.8);
border-radius: 10px;
}
/* writing modes */
.horizontal {
writing-mode: horizontal-tb;
overflow-x: auto;
}
.vertical {
writing-mode: vertical-rl;
overflow-y: auto;
}
/* overflow on the block direction */
.horizontal.auto { overflow-y: auto; }
.horizontal.scroll { overflow-y: scroll; }
.horizontal.visible { overflow: visible; }
.horizontal.hidden { overflow-y: hidden; }
.vertical.auto { overflow-x: auto; }
.vertical.scroll { overflow-x: scroll; }
.vertical.visible { overflow: visible; }
.vertical.hidden { overflow-x: hidden; }
/* Note: not testing with overflow: clip; */
</style>
<script type="text/javascript">
function performTest() {
setup({explicit_done: true});
// horizontal
test(function() {
let container = document.getElementById('container_auto_h');
let content = document.getElementById('content_auto_h');
assert_equals(container.scrollWidth, 180, "auto/always scrollWidth");
assert_equals(container.clientWidth, 180, "auto/always clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "auto/always offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "auto/always clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "auto/always offsetWidth");
}, "Unexpected layout: overflow auto, scrollbar-gutter always, horizontal-tb");
test(function() {
let container = document.getElementById('container_scroll_h');
let content = document.getElementById('content_scroll_h');
assert_equals(container.scrollWidth, 180, "scroll/always scrollWidth");
assert_equals(container.clientWidth, 180, "scroll/always clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "scroll/always offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "scroll/always clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "scroll/always offsetWidth");
}, "Unexpected layout: overflow scroll, scrollbar-gutter always, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_h');
let content = document.getElementById('content_visible_h');
assert_equals(container.scrollWidth, 200, "visible/always scrollWidth");
assert_equals(container.clientWidth, 200, "visible/always clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "visible/always offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/always clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "visible/always offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter always, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_h');
let content = document.getElementById('content_hidden_h');
assert_equals(container.scrollWidth, 200, "hidden/always scrollWidth");
assert_equals(container.clientWidth, 200, "hidden/always clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "hidden/always offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/always clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "hidden/always offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter always, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_force_h');
let content = document.getElementById('content_visible_force_h');
assert_equals(container.scrollWidth, 180, "visible/always force scrollWidth");
assert_equals(container.clientWidth, 180, "visible/always force clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "visible/always force offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/always force clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "visible/always force offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter always force, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_force_h');
let content = document.getElementById('content_hidden_force_h');
assert_equals(container.scrollWidth, 180, "hidden/always force scrollWidth");
assert_equals(container.clientWidth, 180, "hidden/always force clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "hidden/always force offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/always force clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "hidden/always force offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter always force, horizontal-tb");
// vertical
test(function() {
let container = document.getElementById('container_auto_v');
let content = document.getElementById('content_auto_v');
assert_equals(container.scrollHeight, 180, "auto/always scrollHeight");
assert_equals(container.clientHeight, 180, "auto/always clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "auto/always offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "auto/always clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "auto/always offsetHeight");
}, "Unexpected layout: overflow auto, scrollbar-gutter always, vertical-rl");
test(function() {
let container = document.getElementById('container_scroll_v');
let content = document.getElementById('content_scroll_v');
assert_equals(container.scrollHeight, 180, "scroll/always scrollHeight");
assert_equals(container.clientHeight, 180, "scroll/always clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "scroll/always offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "scroll/always clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "scroll/always offsetHeight");
}, "Unexpected layout: overflow scroll, scrollbar-gutter always, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_v');
let content = document.getElementById('content_visible_v');
assert_equals(container.scrollHeight, 200, "visible/always scrollHeight");
assert_equals(container.clientHeight, 200, "visible/always clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "visible/always offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/always clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "visible/always offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter always, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_v');
let content = document.getElementById('content_hidden_v');
assert_equals(container.scrollHeight, 200, "hidden/always scrollHeight");
assert_equals(container.clientHeight, 200, "hidden/always clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "hidden/always offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/always clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "hidden/always offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter always, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_force_v');
let content = document.getElementById('content_visible_force_v');
assert_equals(container.scrollHeight, 180, "visible/always force scrollHeight");
assert_equals(container.clientHeight, 180, "visible/always force clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "visible/always force offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/always force clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "visible/always force offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter always force, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_force_v');
let content = document.getElementById('content_hidden_force_v');
assert_equals(container.scrollHeight, 180, "hidden/always force scrollHeight");
assert_equals(container.clientHeight, 180, "hidden/always force clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "hidden/always force offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/always force clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "hidden/always force offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter always force, vertical-rl");
done();
}
</script>
<body onload="performTest()">
Test scrollbar-gutter: always, writing-mode: horizontal-tb
<div class="container classic horizontal auto" id="container_auto_h">
<div class="content" id="content_auto_h">overflow-y: auto</div>
</div>
<div class="container classic horizontal scroll" id="container_scroll_h">
<div class="content" id="content_scroll_h">overflow-y: scroll</div>
</div>
<div class="container classic horizontal visible" id="container_visible_h">
<div class="content" id="content_visible_h">overflow: visible</div>
</div>
<div class="container classic horizontal hidden" id="container_hidden_h">
<div class="content" id="content_hidden_h">overflow-y: hidden</div>
</div>
scrollbar-gutter: always force
<div class="container classic horizontal visible force" id="container_visible_force_h">
<div class="content" id="content_visible_force_h">overflow: visible (force)</div>
</div>
<div class="container classic horizontal hidden force" id="container_hidden_force_h">
<div class="content" id="content_hidden_force_h">overflow-y: hidden (force)</div>
</div>
writing-mode: vertical-rl;
<div class="container classic vertical auto" id="container_auto_v">
<div class="content" id="content_auto_v">overflow-x: auto</div>
</div>
<div class="container classic vertical scroll" id="container_scroll_v">
<div class="content" id="content_scroll_v">overflow-x: scroll</div>
</div>
<div class="container classic vertical visible" id="container_visible_v">
<div class="content" id="content_visible_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden" id="container_hidden_v">
<div class="content" id="content_hidden_v">overflow-x: hidden</div>
</div>
scrollbar-gutter: always force
<div class="container classic vertical visible force" id="container_visible_force_v">
<div class="content" id="content_visible_force_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden force" id="container_hidden_force_v">
<div class="content" id="content_hidden_force_v">overflow-x: hidden</div>
</div>
</body>

View file

@ -1,263 +0,0 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Overflow: test scrollbar-gutter: stable both (classic scrollbars)</title>
<link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@gmail.com"/>
<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#scollbar-gutter-property"/>
<meta name="assert" content="Test scrollbar-gutter: stable with custom classic scrollbars">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<style>
.container {
scrollbar-gutter: stable both;
height: 200px;
width: 200px;
margin: 1px;
padding: 0px;
border: none;
background: deepskyblue;
}
.container.force {
scrollbar-gutter: stable both force;
}
.content {
height: 100%;
width: 100%;
background: lightsalmon;
}
/* ensure that we are using classic scrollbars */
.classic {
scrollbar-width: 20px;
scrollbar-color: hsla(0, 0%, 20%, 0.6) hsla(0, 0%, 40%, 0.3);
}
.classic::-webkit-scrollbar {
width: 20px;
height: 20px;
}
.classic::-webkit-scrollbar-track {
background-color: hsla(0, 0%, 40%, 0.4);
}
.classic::-webkit-scrollbar-thumb {
background-color: hsla(0, 0%, 20%, 0.8);
border-radius: 10px;
}
/* writing modes */
.horizontal {
writing-mode: horizontal-tb;
overflow-x: auto;
}
.vertical {
writing-mode: vertical-rl;
overflow-y: auto;
}
/* overflow on the block direction */
.horizontal.auto { overflow-y: auto; }
.horizontal.scroll { overflow-y: scroll; }
.horizontal.visible { overflow: visible; }
.horizontal.hidden { overflow-y: hidden; }
.vertical.auto { overflow-x: auto; }
.vertical.scroll { overflow-x: scroll; }
.vertical.visible { overflow: visible; }
.vertical.hidden { overflow-x: hidden; }
/* Note: not testing with overflow: clip; */
</style>
<script type="text/javascript">
function performTest() {
setup({explicit_done: true});
// horizontal
test(function() {
let container = document.getElementById('container_auto_h');
let content = document.getElementById('content_auto_h');
assert_equals(container.scrollWidth, 160, "auto/stable both scrollWidth");
assert_equals(container.clientWidth, 160, "auto/stable both clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft - 20, "auto/stable both offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "auto/stable both clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "auto/stable both offsetWidth");
}, "Unexpected layout: overflow auto, scrollbar-gutter stable both, horizontal-tb");
test(function() {
let container = document.getElementById('container_scroll_h');
let content = document.getElementById('content_scroll_h');
assert_equals(container.scrollWidth, 160, "scroll/stable both scrollWidth");
assert_equals(container.clientWidth, 160, "scroll/stable both clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft - 20, "scroll/stable both offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "scroll/stable both clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "scroll/stable both offsetWidth");
}, "Unexpected layout: overflow scroll, scrollbar-gutter stable both, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_h');
let content = document.getElementById('content_visible_h');
assert_equals(container.scrollWidth, 200, "visible/stable both scrollWidth");
assert_equals(container.clientWidth, 200, "visible/stable both clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "visible/stable both offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/stable both clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "visible/stable both offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter stable both, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_h');
let content = document.getElementById('content_hidden_h');
assert_equals(container.scrollWidth, 200, "hidden/stable both scrollWidth");
assert_equals(container.clientWidth, 200, "hidden/stable both clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "hidden/stable both offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/stable both clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "hidden/stable both offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter stable both, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_force_h');
let content = document.getElementById('content_visible_force_h');
assert_equals(container.scrollWidth, 160, "visible/stable both force scrollWidth");
assert_equals(container.clientWidth, 160, "visible/stable both force clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft - 20, "visible/stable both force offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/stable both force clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "visible/stable both force offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter stable both force, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_force_h');
let content = document.getElementById('content_hidden_force_h');
assert_equals(container.scrollWidth, 160, "hidden/stable both force scrollWidth");
assert_equals(container.clientWidth, 160, "hidden/stable both force clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft - 20, "hidden/stable both force offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/stable both force clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "hidden/stable both force offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter stable both force, horizontal-tb");
// vertical
test(function() {
let container = document.getElementById('container_auto_v');
let content = document.getElementById('content_auto_v');
assert_equals(container.scrollHeight, 160, "auto/stable both scrollHeight");
assert_equals(container.clientHeight, 160, "auto/stable both clientHeight");
assert_equals(container.offsetTop, content.offsetTop - 20, "auto/stable both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "auto/stable both clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "auto/stable both offsetHeight");
}, "Unexpected layout: overflow auto, scrollbar-gutter stable both, vertical-rl");
test(function() {
let container = document.getElementById('container_scroll_v');
let content = document.getElementById('content_scroll_v');
assert_equals(container.scrollHeight, 160, "scroll/stable both scrollHeight");
assert_equals(container.clientHeight, 160, "scroll/stable both clientHeight");
assert_equals(container.offsetTop, content.offsetTop - 20, "scroll/stable both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "scroll/stable both clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "scroll/stable both offsetHeight");
}, "Unexpected layout: overflow scroll, scrollbar-gutter stable both, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_v');
let content = document.getElementById('content_visible_v');
assert_equals(container.scrollHeight, 200, "visible/stable both scrollHeight");
assert_equals(container.clientHeight, 200, "visible/stable both clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "visible/stable both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/stable both clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "visible/stable both offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter stable both, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_v');
let content = document.getElementById('content_hidden_v');
assert_equals(container.scrollHeight, 200, "hidden/stable both scrollHeight");
assert_equals(container.clientHeight, 200, "hidden/stable both clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "hidden/stable both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/stable both clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "hidden/stable both offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter stable both, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_force_v');
let content = document.getElementById('content_visible_force_v');
assert_equals(container.scrollHeight, 160, "visible/stable both scrollHeight");
assert_equals(container.clientHeight, 160, "visible/stable both clientHeight");
assert_equals(container.offsetTop, content.offsetTop - 20, "visible/stable both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/stable both clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "visible/stable both offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter stable both force, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_force_v');
let content = document.getElementById('content_hidden_force_v');
assert_equals(container.scrollHeight, 160, "hidden/stable both scrollHeight");
assert_equals(container.clientHeight, 160, "hidden/stable both clientHeight");
assert_equals(container.offsetTop, content.offsetTop - 20, "hidden/stable both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/stable both clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "hidden/stable both offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter stable both force, vertical-rl");
done();
}
</script>
<body onload="performTest()">
Test scrollbar-gutter: stable both, writing-mode: horizontal-tb
<div class="container classic horizontal auto" id="container_auto_h">
<div class="content" id="content_auto_h">overflow-y: auto</div>
</div>
<div class="container classic horizontal scroll" id="container_scroll_h">
<div class="content" id="content_scroll_h">overflow-y: scroll</div>
</div>
<div class="container classic horizontal visible" id="container_visible_h">
<div class="content" id="content_visible_h">overflow: visible</div>
</div>
<div class="container classic horizontal hidden" id="container_hidden_h">
<div class="content" id="content_hidden_h">overflow-y: hidden</div>
</div>
scrollbar-gutter: stable both force
<div class="container classic horizontal visible force" id="container_visible_force_h">
<div class="content" id="content_visible_force_h">overflow: visible (force)</div>
</div>
<div class="container classic horizontal hidden force" id="container_hidden_force_h">
<div class="content" id="content_hidden_force_h">overflow-y: hidden (force)</div>
</div>
writing-mode: vertical-rl;
<div class="container classic vertical auto" id="container_auto_v">
<div class="content" id="content_auto_v">overflow-x: auto</div>
</div>
<div class="container classic vertical scroll" id="container_scroll_v">
<div class="content" id="content_scroll_v">overflow-x: scroll</div>
</div>
<div class="container classic vertical visible" id="container_visible_v">
<div class="content" id="content_visible_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden" id="container_hidden_v">
<div class="content" id="content_hidden_v">overflow-x: hidden</div>
</div>
scrollbar-gutter: stable both force
<div class="container classic vertical visible force" id="container_visible_force_v">
<div class="content" id="content_visible_force_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden force" id="container_hidden_force_v">
<div class="content" id="content_hidden_force_v">overflow-x: hidden</div>
</div>
</body>

View file

@ -1,263 +0,0 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Overflow: test scrollbar-gutter: always both (classic scrollbars)</title>
<link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@gmail.com"/>
<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#scollbar-gutter-property"/>
<meta name="assert" content="Test scrollbar-gutter: always with custom classic scrollbars">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<style>
.container {
scrollbar-gutter: always both;
height: 200px;
width: 200px;
margin: 1px;
padding: 0px;
border: none;
background: deepskyblue;
}
.container.force {
scrollbar-gutter: always both force;
}
.content {
height: 100%;
width: 100%;
background: lightsalmon;
}
/* ensure that we are using classic scrollbars */
.classic {
scrollbar-width: 20px;
scrollbar-color: hsla(0, 0%, 20%, 0.6) hsla(0, 0%, 40%, 0.3);
}
.classic::-webkit-scrollbar {
width: 20px;
height: 20px;
}
.classic::-webkit-scrollbar-track {
background-color: hsla(0, 0%, 40%, 0.4);
}
.classic::-webkit-scrollbar-thumb {
background-color: hsla(0, 0%, 20%, 0.8);
border-radius: 10px;
}
/* writing modes */
.horizontal {
writing-mode: horizontal-tb;
overflow-x: auto;
}
.vertical {
writing-mode: vertical-rl;
overflow-y: auto;
}
/* overflow on the block direction */
.horizontal.auto { overflow-y: auto; }
.horizontal.scroll { overflow-y: scroll; }
.horizontal.visible { overflow: visible; }
.horizontal.hidden { overflow-y: hidden; }
.vertical.auto { overflow-x: auto; }
.vertical.scroll { overflow-x: scroll; }
.vertical.visible { overflow: visible; }
.vertical.hidden { overflow-x: hidden; }
/* Note: not testing with overflow: clip; */
</style>
<script type="text/javascript">
function performTest() {
setup({explicit_done: true});
// horizontal
test(function() {
let container = document.getElementById('container_auto_h');
let content = document.getElementById('content_auto_h');
assert_equals(container.scrollWidth, 160, "auto/always both scrollWidth");
assert_equals(container.clientWidth, 160, "auto/always both clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft - 20, "auto/always both offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "auto/always both clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "auto/always both offsetWidth");
}, "Unexpected layout: overflow auto, scrollbar-gutter always both, horizontal-tb");
test(function() {
let container = document.getElementById('container_scroll_h');
let content = document.getElementById('content_scroll_h');
assert_equals(container.scrollWidth, 160, "scroll/always both scrollWidth");
assert_equals(container.clientWidth, 160, "scroll/always both clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft - 20, "scroll/always both offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "scroll/always both clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "scroll/always both offsetWidth");
}, "Unexpected layout: overflow scroll, scrollbar-gutter always both, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_h');
let content = document.getElementById('content_visible_h');
assert_equals(container.scrollWidth, 200, "visible/always both scrollWidth");
assert_equals(container.clientWidth, 200, "visible/always both clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "visible/always both offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/always both clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "visible/always both offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter always both, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_h');
let content = document.getElementById('content_hidden_h');
assert_equals(container.scrollWidth, 200, "hidden/always both scrollWidth");
assert_equals(container.clientWidth, 200, "hidden/always both clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft, "hidden/always both offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/always both clientWidth");
assert_equals(container.offsetWidth, content.offsetWidth, "hidden/always both offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter always both, horizontal-tb");
test(function() {
let container = document.getElementById('container_visible_force_h');
let content = document.getElementById('content_visible_force_h');
assert_equals(container.scrollWidth, 160, "visible/always both force scrollWidth");
assert_equals(container.clientWidth, 160, "visible/always both force clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft - 20, "visible/always both force offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "visible/always both force clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "visible/always both force offsetWidth");
}, "Unexpected layout: overflow visible, scrollbar-gutter always both force, horizontal-tb");
test(function() {
let container = document.getElementById('container_hidden_force_h');
let content = document.getElementById('content_hidden_force_h');
assert_equals(container.scrollWidth, 160, "hidden/always both force scrollWidth");
assert_equals(container.clientWidth, 160, "hidden/always both force clientWidth");
assert_equals(container.offsetLeft, content.offsetLeft - 20, "hidden/always both force offsetLeft");
assert_equals(container.clientWidth, content.clientWidth, "hidden/always both force clientWidth");
assert_not_equals(container.offsetWidth, content.offsetWidth, "hidden/always both force offsetWidth");
}, "Unexpected layout: overflow hidden, scrollbar-gutter always both force, horizontal-tb");
// vertical
test(function() {
let container = document.getElementById('container_auto_v');
let content = document.getElementById('content_auto_v');
assert_equals(container.scrollHeight, 160, "auto/always both scrollHeight");
assert_equals(container.clientHeight, 160, "auto/always both clientHeight");
assert_equals(container.offsetTop, content.offsetTop - 20, "auto/always both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "auto/always both clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "auto/always both offsetHeight");
}, "Unexpected layout: overflow auto, scrollbar-gutter always both, vertical-rl");
test(function() {
let container = document.getElementById('container_scroll_v');
let content = document.getElementById('content_scroll_v');
assert_equals(container.scrollHeight, 160, "scroll/always both scrollHeight");
assert_equals(container.clientHeight, 160, "scroll/always both clientHeight");
assert_equals(container.offsetTop, content.offsetTop - 20, "scroll/always both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "scroll/always both clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "scroll/always both offsetHeight");
}, "Unexpected layout: overflow scroll, scrollbar-gutter always both, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_v');
let content = document.getElementById('content_visible_v');
assert_equals(container.scrollHeight, 200, "visible/always both scrollHeight");
assert_equals(container.clientHeight, 200, "visible/always both clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "visible/always both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/always both clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "visible/always both offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter always both, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_v');
let content = document.getElementById('content_hidden_v');
assert_equals(container.scrollHeight, 200, "hidden/always both scrollHeight");
assert_equals(container.clientHeight, 200, "hidden/always both clientHeight");
assert_equals(container.offsetTop, content.offsetTop, "hidden/always both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/always both clientHeight");
assert_equals(container.offsetHeight, content.offsetHeight, "hidden/always both offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter always both, vertical-rl");
test(function() {
let container = document.getElementById('container_visible_force_v');
let content = document.getElementById('content_visible_force_v');
assert_equals(container.scrollHeight, 160, "visible/always both scrollHeight");
assert_equals(container.clientHeight, 160, "visible/always both clientHeight");
assert_equals(container.offsetTop, content.offsetTop - 20, "visible/always both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "visible/always both clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "visible/always both offsetHeight");
}, "Unexpected layout: overflow visible, scrollbar-gutter always both force, vertical-rl");
test(function() {
let container = document.getElementById('container_hidden_force_v');
let content = document.getElementById('content_hidden_force_v');
assert_equals(container.scrollHeight, 160, "hidden/always both scrollHeight");
assert_equals(container.clientHeight, 160, "hidden/always both clientHeight");
assert_equals(container.offsetTop, content.offsetTop - 20, "hidden/always both offsetTop");
assert_equals(container.clientHeight, content.clientHeight, "hidden/always both clientHeight");
assert_not_equals(container.offsetHeight, content.offsetHeight, "hidden/always both offsetHeight");
}, "Unexpected layout: overflow hidden, scrollbar-gutter always both force, vertical-rl");
done();
}
</script>
<body onload="performTest()">
Test scrollbar-gutter: always both, writing-mode: horizontal-tb
<div class="container classic horizontal auto" id="container_auto_h">
<div class="content" id="content_auto_h">overflow-y: auto</div>
</div>
<div class="container classic horizontal scroll" id="container_scroll_h">
<div class="content" id="content_scroll_h">overflow-y: scroll</div>
</div>
<div class="container classic horizontal visible" id="container_visible_h">
<div class="content" id="content_visible_h">overflow: visible</div>
</div>
<div class="container classic horizontal hidden" id="container_hidden_h">
<div class="content" id="content_hidden_h">overflow-y: hidden</div>
</div>
scrollbar-gutter: always both force
<div class="container classic horizontal visible force" id="container_visible_force_h">
<div class="content" id="content_visible_force_h">overflow: visible (force)</div>
</div>
<div class="container classic horizontal hidden force" id="container_hidden_force_h">
<div class="content" id="content_hidden_force_h">overflow-y: hidden (force)</div>
</div>
writing-mode: vertical-rl;
<div class="container classic vertical auto" id="container_auto_v">
<div class="content" id="content_auto_v">overflow-x: auto</div>
</div>
<div class="container classic vertical scroll" id="container_scroll_v">
<div class="content" id="content_scroll_v">overflow-x: scroll</div>
</div>
<div class="container classic vertical visible" id="container_visible_v">
<div class="content" id="content_visible_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden" id="container_hidden_v">
<div class="content" id="content_hidden_v">overflow-x: hidden</div>
</div>
scrollbar-gutter: always both force
<div class="container classic vertical visible force" id="container_visible_force_v">
<div class="content" id="content_visible_force_v">overflow: visible</div>
</div>
<div class="container classic vertical hidden force" id="container_hidden_force_v">
<div class="content" id="content_hidden_force_v">overflow-x: hidden</div>
</div>
</body>

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<title>CSS aspect-ratio: abspos div inline size with max-height and contain-intrinsic-size</title>
<link rel="author" title="Google LLC" href="https://www.google.com/">
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
<meta name="assert" content="A max-height constraint should be transferred through the aspect-ratio to apply to the inline size">
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div style="position: relative; height: 100px; position: relative;">
<div style="position: absolute; aspect-ratio: 1/1; max-height: 100%; min-height: 0; contain-intrinsic-size: 500px 500px; contain: size; background: green; color: green;">
</div>
</div>

View file

@ -7,6 +7,6 @@
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div style="display: inline-flex; flex-direction: column; height: 100px;"> <div style="display: inline-flex; flex-direction: column; flex-wrap: wrap; height: 100px;">
<img src="support/20x50-green.png" style="aspect-ratio: 1/1; min-height: 0; height: 50px; flex: 1;"> <img src="support/20x50-green.png" style="aspect-ratio: 1/1; min-height: 0; height: 50px; flex: 1;">
</div> </div>

View file

@ -20,6 +20,10 @@
-webkit-text-stroke-width: 1px; -webkit-text-stroke-width: 1px;
-webkit-text-stroke-color: black; -webkit-text-stroke-color: black;
} }
.sys-color {
-webkit-text-stroke-width: thin;
-webkit-text-stroke-color: LinkText;
}
</style> </style>
</head> </head>
<body> <body>
@ -39,5 +43,6 @@
<sup class="underline" style="color: blue;"><span class="black-fill">superscript text</span></sup> <sup class="underline" style="color: blue;"><span class="black-fill">superscript text</span></sup>
</div><br/> </div><br/>
<div class="underline" style="color: green;"><span class="transparent-fill">Transparent fill with black stroke text and green underline</span></div><br/> <div class="underline" style="color: green;"><span class="transparent-fill">Transparent fill with black stroke text and green underline</span></div><br/>
<div class="underline" style="text-decoration-color: LinkText;"><span class="sys-color">LinkText stroke and underline with black fill</span></div><br/>
</body> </body>
</html> </html>

View file

@ -31,6 +31,10 @@
-webkit-text-stroke-width: 1px; -webkit-text-stroke-width: 1px;
-webkit-text-stroke-color: black; -webkit-text-stroke-color: black;
} }
#sys-color {
-webkit-text-stroke-width: thin;
-webkit-text-stroke-color: LinkText;
}
</style> </style>
</head> </head>
<body> <body>
@ -60,5 +64,6 @@
<!-- Test with text-fill-color and text-stroke-color values set --> <!-- Test with text-fill-color and text-stroke-color values set -->
<div class="underline" id="transparent-fill" style="text-decoration-color: green;">Transparent fill with black stroke text and green underline</div><br/> <div class="underline" id="transparent-fill" style="text-decoration-color: green;">Transparent fill with black stroke text and green underline</div><br/>
<div class="underline" id="sys-color">LinkText stroke and underline with black fill</div><br/>
</body> </body>
</html> </html>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<title>CSS Text Test: Altering the DOM generates empty text elements that cause line-breaking to crash</title> <title>CSS Text Test: Altering the DOM generates empty text elements that cause line-breaking to crash</title>
<link rel="help" href="https://crbug.com/972992"> <link rel="help" href="https://crbug.com/1128571">
<style> <style>
body { body {
width: 5pt; width: 5pt;

View file

@ -1,5 +1,5 @@
<title>CSS Text Test: Under quirks mode, a white space, followed by a Cham symbol, makes chrome to crash</title> <title>CSS Text Test: Under quirks mode, a white space, followed by a Cham symbol, makes chrome to crash</title>
<link rel="help" href="https://crbug.com/972992"> <link rel="help" href="https://crbug.com/1130288">
<style> <style>
body { margin: 40 91 18446744073709551526px 5307% } body { margin: 40 91 18446744073709551526px 5307% }
#tCF9 { line-break: anywhere; } #tCF9 { line-break: anywhere; }

View file

@ -4,16 +4,17 @@
"use strict"; "use strict";
// https://wicg.github.io/feature-policy/ // https://wicg.github.io/permissions-policy/
idl_test( idl_test(
['feature-policy'], ['permissions-policy'],
['reporting', 'html', 'dom'], ['reporting', 'html', 'dom'],
idl_array => { idl_array => {
idl_array.add_objects({ idl_array.add_objects({
Document: ['document'], Document: ['document'],
HTMLIframeElement: ['document.createElement("iframe")'], HTMLIframeElement: ['document.createElement("iframe")'],
FeaturePolicy: ['document.featurePolicy'], PermissionsPolicy: ['document.permissionsPolicy'],
}) // TODO: PermissionsPolicyViolationReportBody
});
} }
); );

View file

@ -3,24 +3,28 @@
<script src=/resources/testharness.js></script> <script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script> <script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script> <script src="/common/get-host-info.sub.js"></script>
<script src="/common/utils.js"></script>
<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
<body> <body>
<script> <script>
const {ORIGIN, HTTPS_REMOTE_ORIGIN} = get_host_info(); const {ORIGIN, HTTPS_REMOTE_ORIGIN} = get_host_info();
const PATH = const FRAME_PATH =
new URL('resources/cross-origin-isolated-frame.html', location).pathname; new URL('resources/cross-origin-isolated-frame.html', location).pathname;
const WORKER_URL =
new URL('resources/cross-origin-isolated-worker.js', location).href;
const PIPE = const PIPE =
'?pipe=' + '?pipe=' +
'|header(cross-origin-embedder-policy,require-corp)' + '|header(cross-origin-embedder-policy,require-corp)' +
'|header(cross-origin-resource-policy,cross-origin)'; '|header(cross-origin-resource-policy,cross-origin)';
async function getCrossOriginIsolatedFor(t, origin, value) { async function getCrossOriginIsolatedForFrame(t, origin, value) {
const parentFrame = document.createElement('iframe'); const parentFrame = document.createElement('iframe');
t.add_cleanup(() => parentFrame.remove()); t.add_cleanup(() => parentFrame.remove());
let pipe = PIPE; let pipe = PIPE;
if (value !== undefined) { if (value !== undefined) {
pipe += `|header(permissions-policy,cross-origin-isolated=${value})`; pipe += `|header(permissions-policy,cross-origin-isolated=${value})`;
} }
parentFrame.src = `${PATH}${pipe}`; parentFrame.src = `${FRAME_PATH}${pipe}`;
document.body.append(parentFrame); document.body.append(parentFrame);
await new Promise((resolve) => { await new Promise((resolve) => {
@ -28,7 +32,7 @@ async function getCrossOriginIsolatedFor(t, origin, value) {
}); });
const frame = parentFrame.contentDocument.createElement('iframe'); const frame = parentFrame.contentDocument.createElement('iframe');
frame.src = `${origin}${PATH}${PIPE}`; frame.src = `${origin}${FRAME_PATH}${PIPE}`;
parentFrame.contentDocument.body.append(frame); parentFrame.contentDocument.body.append(frame);
frame.addEventListener('error', t.unreached_func('frame.error')); frame.addEventListener('error', t.unreached_func('frame.error'));
await new Promise((resolve) => { await new Promise((resolve) => {
@ -37,35 +41,149 @@ async function getCrossOriginIsolatedFor(t, origin, value) {
const mc = new MessageChannel(); const mc = new MessageChannel();
frame.contentWindow.postMessage({port: mc.port2}, '*', [mc.port2]); frame.contentWindow.postMessage({port: mc.port2}, '*', [mc.port2]);
return (await new Promise(r => mc.port1.onmessage = r)).data;
const e = await new Promise((resolve) => {
mc.port1.onmessage = resolve;
});
assert_equals(typeof(e.data), 'boolean');
return e.data;
} }
function generateTest(origin, value, expectation) { async function getCrossOriginIsolatedForDedicatedWorker(t, scheme, value) {
const frame = document.createElement('iframe');
t.add_cleanup(() => frame.remove());
let pipe = PIPE;
if (value !== undefined) {
pipe += `|header(permissions-policy,cross-origin-isolated=${value})`
}
frame.src = `${FRAME_PATH}${pipe}`;
document.body.append(frame);
frame.addEventListener('error', t.unreached_func('frame.error'));
await new Promise((resolve) => {
frame.addEventListener('load', resolve);
});
let workerURL;
if (scheme === 'https') {
workerURL = `${WORKER_URL}${PIPE}`;
} else if (scheme === 'data') {
const res = await fetch(WORKER_URL);
const text = await res.text();
workerURL = `data:application/javascript;base64,${btoa(text)}`;
} else if (scheme === 'blob') {
const res = await fetch(WORKER_URL);
const blob = await res.blob();
workerURL = URL.createObjectURL(blob);
} else {
assert_unreached('scheme should be one of "https", "data" and "blob".');
}
const worker = new frame.contentWindow.Worker(workerURL);
const mc = new MessageChannel();
worker.postMessage({port: mc.port2}, [mc.port2]);
return (await new Promise(r => mc.port1.onmessage = r)).data;
}
async function getCrossOriginIsolatedForSharedWorker(t, withCoopCoep) {
const workerURL = `${WORKER_URL}${withCoopCoep ? PIPE : ''}`;
const worker = new SharedWorker(workerURL);
worker.addEventListener('error', t.unreached_func('worker.error'));
const mc = new MessageChannel();
worker.port.postMessage({port: mc.port2}, [mc.port2]);
return (await new Promise(r => mc.port1.onmessage = r)).data;
}
async function getCrossOriginIsolatedForServiceWorker(t, withCoopCoep) {
// As we don't want the service worker to control any page, generate a
// one-time scope.
const SCOPE = new URL(`resources/${token()}.html`, location).pathname;
const workerURL = `${WORKER_URL}${withCoopCoep ? PIPE : ''}`;
const reg =
await service_worker_unregister_and_register(t, workerURL, SCOPE);
t.add_cleanup(() => reg.unregister());
const worker = reg.installing;
const mc = new MessageChannel();
worker.postMessage({port: mc.port2}, [mc.port2]);
return (await new Promise(r => mc.port1.onmessage = r)).data;
}
function generateFrameTest(origin, value, expectation) {
async function run(t) { async function run(t) {
assert_equals( assert_equals(
await getCrossOriginIsolatedFor(t, origin, value), expectation); await getCrossOriginIsolatedForFrame(t, origin, value), expectation);
} }
// We use async_test, not promise_test here to run tests in parallel. // We use async_test, not promise_test here to run tests in parallel.
async_test((t) => { async_test((t) => {
run(t).then(() => t.done(), (e) => t.step(() => {throw e;})); run(t).then(() => t.done(), (e) => t.step(() => {throw e;}));
}, `origin = ${origin}, value = ${value}`); }, `frame: origin = ${origin}, value = ${value}`);
} }
generateTest(ORIGIN, undefined, true); function generateDedicatedWorkerTest(scheme, value, expectation) {
generateTest(ORIGIN, '*', true); async function run(t) {
generateTest(ORIGIN, "self", true); assert_equals(
await getCrossOriginIsolatedForDedicatedWorker(t, scheme, value),
expectation);
}
// We use async_test, not promise_test here to run tests in parallel.
async_test((t) => {
run(t).then(() => t.done(), (e) => t.step(() => {throw e;}));
}, `dedicated worker: scheme = ${scheme}, value = ${value}`);
}
function generateSharedWorkerTest(withCoopCoep) {
async function run(t) {
assert_equals(
await getCrossOriginIsolatedForSharedWorker(t, withCoopCoep),
withCoopCoep);
}
// We use async_test, not promise_test here to run tests in parallel.
async_test((t) => {
run(t).then(() => t.done(), (e) => t.step(() => {throw e;}));
}, `shared worker: withCoopCoep = ${withCoopCoep}`);
}
function generateServiceWorkerTest(withCoopCoep) {
// Here we use promise_test as we want to use a cleanup callback that returns
// a promise.
promise_test(async (t) => {
assert_equals(
await getCrossOriginIsolatedForServiceWorker(t, withCoopCoep),
withCoopCoep);
}, `service worker: withCoopCoep = ${withCoopCoep}`);
}
generateFrameTest(ORIGIN, undefined, true);
generateFrameTest(ORIGIN, '*', true);
generateFrameTest(ORIGIN, 'self', true);
// We need the backslash to escape the close parenthesis in a wpt pipe. // We need the backslash to escape the close parenthesis in a wpt pipe.
generateTest(ORIGIN, "(\\)", false); generateFrameTest(ORIGIN, '(\\)', false);
generateTest(HTTPS_REMOTE_ORIGIN, undefined, false); generateFrameTest(HTTPS_REMOTE_ORIGIN, undefined, false);
generateTest(HTTPS_REMOTE_ORIGIN, '*', true); generateFrameTest(HTTPS_REMOTE_ORIGIN, '*', true);
generateTest(HTTPS_REMOTE_ORIGIN, "self", false); generateFrameTest(HTTPS_REMOTE_ORIGIN, 'self', false);
// We need the backslash to escape the close parenthesis in a wpt pipe. // We need the backslash to escape the close parenthesis in a wpt pipe.
generateTest(HTTPS_REMOTE_ORIGIN, "(\\)", false); generateFrameTest(HTTPS_REMOTE_ORIGIN, '(\\)', false);
generateDedicatedWorkerTest('https', undefined, true);
generateDedicatedWorkerTest('https', '*', true);
generateDedicatedWorkerTest('https', 'self', true);
// We need the backslash to escape the close parenthesis in a wpt pipe.
generateDedicatedWorkerTest('https', '(\\)', false);
generateDedicatedWorkerTest('data', undefined, false);
generateDedicatedWorkerTest('data', '*', false);
generateDedicatedWorkerTest('data', 'self', false);
// We need the backslash to escape the close parenthesis in a wpt pipe.
generateDedicatedWorkerTest('data', '(\\)', false);
generateDedicatedWorkerTest('blob', undefined, true);
generateDedicatedWorkerTest('blob', '*', true);
generateDedicatedWorkerTest('blob', 'self', true);
// We need the backslash to escape the close parenthesis in a wpt pipe.
generateDedicatedWorkerTest('blob', '(\\)', false);
generateSharedWorkerTest(false);
generateSharedWorkerTest(true);
generateServiceWorkerTest(false);
generateServiceWorkerTest(true);
</script> </script>
</body> </body>
</html> </html>

View file

@ -0,0 +1,11 @@
// For DedicatedWorker and ServiceWorker
self.addEventListener('message', (e) => {
e.data.port.postMessage(self.crossOriginIsolated);
});
// For SharedWorker
self.addEventListener('connect', (e) => {
e.ports[0].onmessage = (ev) => {
ev.data.port.postMessage(self.crossOriginIsolated);
};
});

View file

@ -50,14 +50,14 @@ self.postMessage({ origin: self.origin, view });
`; `;
} }
function propertyTests(name) { function propertyTests(name, crossOriginIsolated) {
return ` return `
test(() => { test(() => {
assert_equals(self.origin, self.location.origin); assert_equals(self.origin, self.location.origin);
}, "${name}: self.origin"); }, "${name}: self.origin");
test(() => { test(() => {
assert_true(self.crossOriginIsolated); assert_equals(self.crossOriginIsolated, ${crossOriginIsolated});
}, "${name}: self.crossOriginIsolated"); }, "${name}: self.crossOriginIsolated");
test(() => { test(() => {
@ -74,7 +74,7 @@ ${httpWorkerIncrementerTest("blob worker")}
${blobWorkerIncrementerTest("blob worker", self.location.origin)} ${blobWorkerIncrementerTest("blob worker", self.location.origin)}
${propertyTests("blob worker")} ${propertyTests("blob worker", true)}
done(); done();
`; `;
@ -90,7 +90,7 @@ ${httpWorkerIncrementerTest("blob frame")}
${blobWorkerIncrementerTest("blob frame", self.location.origin)} ${blobWorkerIncrementerTest("blob frame", self.location.origin)}
${propertyTests("blob frame")} ${propertyTests("blob frame", true)}
<\/script> <\/script>
`; `;
@ -106,7 +106,7 @@ importScripts("${url.origin}/resources/testharness.js?pipe=header(Cross-Origin-R
${blobWorkerIncrementerTest("data worker")} ${blobWorkerIncrementerTest("data worker")}
${propertyTests("data worker")} ${propertyTests("data worker", false)}
done(); done();
`; `;
@ -121,7 +121,7 @@ const dataFrameScript = `
${blobWorkerIncrementerTest("data frame")} ${blobWorkerIncrementerTest("data frame")}
${propertyTests("data frame")} ${propertyTests("data frame", true)}
<\/script> <\/script>
`; `;

View file

@ -1,7 +1,7 @@
<!doctype html> <!doctype html>
<title>CSS Color Adjust Test: meta color-scheme - attribute changes</title> <title>Meta color-scheme - attribute changes</title>
<meta id="meta" name="color-scheme" content="dark"> <meta id="meta" name="color-scheme" content="dark">
<link rel="help" href="https://drafts.csswg.org/css-color-adjust-1/#color-scheme-meta"> <link rel="help" href="https://html.spec.whatwg.org/multipage/semantics.html#meta-color-scheme">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="support/compute-root-color-scheme.js"></script> <script src="support/compute-root-color-scheme.js"></script>

View file

@ -1,7 +1,7 @@
<!doctype html> <!doctype html>
<title>CSS Color Adjust Test: meta color-scheme - empty content value</title> <title>Meta color-scheme - empty content value</title>
<meta name="color-scheme" content=""> <meta name="color-scheme" content="">
<link rel="help" href="https://drafts.csswg.org/css-color-adjust-1/#color-scheme-meta"> <link rel="help" href="https://html.spec.whatwg.org/multipage/semantics.html#meta-color-scheme">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="support/compute-root-color-scheme.js"></script> <script src="support/compute-root-color-scheme.js"></script>

Some files were not shown because too many files have changed in this diff Show more