mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Update web-platform-tests to revision 0c112f38ee0040ba788d927e73b1ab1a7b856230
This commit is contained in:
parent
0baa1ea7bd
commit
3173ca7ad9
146 changed files with 1587 additions and 1659 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[CaretPosition-001.html]
|
||||||
|
[Element at (400, 100)]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[matchMedia-display-none-iframe.html]
|
||||||
|
expected: ERROR
|
|
@ -1,7 +0,0 @@
|
||||||
[offsetTopLeft-border-box.html]
|
|
||||||
[container: 1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[container: 0]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[HTMLMediaElement.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_1.html]
|
||||||
|
[Multiple history traversals from the same task]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_2.html]
|
|
||||||
[Multiple history traversals, last would be aborted]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[cross-origin-objects-on-new-window.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[meta-color-scheme-attribute-changes.html]
|
||||||
|
expected: ERROR
|
||||||
|
[Meta color-scheme initially 'dark'.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-empty-content-value.html]
|
||||||
|
[Meta color-scheme with empty content attribute has no effect.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-first-valid-applies.html]
|
||||||
|
[Tree order decides which meta color-scheme applies.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-no-content-value.html]
|
||||||
|
[Meta color-scheme without content attribute has no effect.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-presentational-hint.html]
|
||||||
|
[Author origin style rule overrides meta color-scheme.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[meta-color-scheme-remove.html]
|
||||||
|
expected: ERROR
|
||||||
|
[First meta applies.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-single-value-in-body.html]
|
||||||
|
[Meta color-scheme in body should apply.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-single-value-in-head.html]
|
||||||
|
[Meta color-scheme in head applies.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[meta-color-scheme-single-value-in-shadow-tree.html]
|
||||||
|
expected: ERROR
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[form-double-submit-3.html]
|
||||||
|
[<button> should have the same double-submit protection as <input type=submit>]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[DOMContentLoaded-defer.html]
|
||||||
|
[The end: DOMContentLoaded and defer scripts]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[module-delayed.html]
|
|
||||||
[async document.write in a module]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
[constructor.any.worker.html]
|
|
||||||
[Proxy descriptor]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
||||||
[constructor.any.html]
|
|
||||||
[Proxy descriptor]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[018.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[origin of the script that invoked the method, javascript:]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[Worker-constructor.html]
|
||||||
|
expected: ERROR
|
|
@ -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
|
||||||
|
|
|
@ -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": {
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[CaretPosition-001.html]
|
||||||
|
[Element at (400, 100)]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[matchMedia-display-none-iframe.html]
|
||||||
|
expected: ERROR
|
|
@ -1,7 +0,0 @@
|
||||||
[offsetTopLeft-border-box.html]
|
|
||||||
[container: 1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[container: 0]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[HTMLMediaElement.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_1.html]
|
||||||
|
[Multiple history traversals from the same task]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_2.html]
|
|
||||||
[Multiple history traversals, last would be aborted]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[cross-origin-objects-on-new-window.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[meta-color-scheme-attribute-changes.html]
|
||||||
|
expected: ERROR
|
||||||
|
[Meta color-scheme initially 'dark'.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-empty-content-value.html]
|
||||||
|
[Meta color-scheme with empty content attribute has no effect.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-first-valid-applies.html]
|
||||||
|
[Tree order decides which meta color-scheme applies.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-no-content-value.html]
|
||||||
|
[Meta color-scheme without content attribute has no effect.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-presentational-hint.html]
|
||||||
|
[Author origin style rule overrides meta color-scheme.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[meta-color-scheme-remove.html]
|
||||||
|
expected: ERROR
|
||||||
|
[First meta applies.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-single-value-in-body.html]
|
||||||
|
[Meta color-scheme in body should apply.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-color-scheme-single-value-in-head.html]
|
||||||
|
[Meta color-scheme in head applies.]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[meta-color-scheme-single-value-in-shadow-tree.html]
|
||||||
|
expected: ERROR
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[form-double-submit-3.html]
|
||||||
|
[<button> should have the same double-submit protection as <input type=submit>]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[DOMContentLoaded-defer.html]
|
||||||
|
[The end: DOMContentLoaded and defer scripts]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[module-delayed.html]
|
|
||||||
[async document.write in a module]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[018.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[origin of the script that invoked the method, javascript:]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[Worker-constructor.html]
|
||||||
|
expected: ERROR
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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>
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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
|
||||||
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -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.
|
||||||
|
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.
|
// We need the backslash to escape the close parenthesis in a wpt pipe.
|
||||||
generateTest(HTTPS_REMOTE_ORIGIN, "(\\)", false);
|
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>
|
||||||
|
|
|
@ -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);
|
||||||
|
};
|
||||||
|
});
|
|
@ -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>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|
|
@ -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>
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue