aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/wpt/meta/MANIFEST.json65
-rw-r--r--tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini12
-rw-r--r--tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/overflow-inline-transform-relative.html.ini3
-rw-r--r--tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini3
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-001.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-002.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-003.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-005.tentative.html.ini3
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-009.html.ini6
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-010.tentative.html.ini6
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-001.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-002.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-003.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-004.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-005.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-006.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-unreachable-region.html.ini168
-rw-r--r--tests/wpt/meta/css/css-will-change/will-change-fixedpos-cb-003.html.ini2
-rw-r--r--tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-001.html.ini12
-rw-r--r--tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini240
-rw-r--r--tests/wpt/meta/css/cssom-view/table-scroll-props.html.ini6
-rw-r--r--tests/wpt/meta/css/filter-effects/filtered-html-is-not-container.html.ini2
-rw-r--r--tests/wpt/meta/dom/nodes/insertion-removing-steps/blur-event.window.js.ini2
-rw-r--r--tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini3
-rw-r--r--tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini3
-rw-r--r--tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini3
-rw-r--r--tests/wpt/meta/focus/iframe-focuses-parent-same-site.html.ini2
-rw-r--r--tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini3
-rw-r--r--tests/wpt/meta/html/browsers/the-window-object/focus.window.js.ini3
-rw-r--r--tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini6
-rw-r--r--tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini5
-rw-r--r--tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini2
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini2
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini2
-rw-r--r--tests/wpt/meta/html/dom/idlharness.https.html.ini12
-rw-r--r--tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini6
-rw-r--r--tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini3
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json16
-rw-r--r--tests/wpt/mozilla/tests/mozilla/FocusEvent.html7
-rw-r--r--tests/wpt/mozilla/tests/mozilla/focus_inter_documents.html207
-rw-r--r--tests/wpt/mozilla/tests/mozilla/form_reset-crash.html7
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-004.html53
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-005.tentative.html68
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-006.html44
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-007.html46
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-008.html44
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-009.html65
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-010.tentative.html49
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-unreachable-region.html95
-rw-r--r--tests/wpt/tests/focus/focus-element-crash.html33
56 files changed, 1095 insertions, 329 deletions
diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json
index b61673238d5..750266dc59c 100644
--- a/tests/wpt/meta/MANIFEST.json
+++ b/tests/wpt/meta/MANIFEST.json
@@ -7459,6 +7459,15 @@
}
}
},
+ "focus": {
+ "focus-element-crash.html": [
+ "27df1c0b13081827685fa96e0cba2f7b9b03c89a",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"fullscreen": {
"crashtests": {
"backdrop-list-item.html": [
@@ -595710,6 +595719,55 @@
{}
]
],
+ "scrollable-overflow-transform-004.html": [
+ "b398167fa309885658f044ccdd1df75bca880701",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-005.tentative.html": [
+ "837b95ba96db71e7d696edfe4bb6c7c489e7a411",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-006.html": [
+ "2eea759da6a1adad341b2145a8b29725e84c2db6",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-007.html": [
+ "8aa6e5f17d8633e759d5b52b5096057c367d7b58",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-008.html": [
+ "df1daeb842405ba6107be563e1652651ec232d58",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-009.html": [
+ "aca1b28418adf361a38f59bb10e6ba3cdabd3097",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-010.tentative.html": [
+ "e2c62cb4474ecbd486360fdd4aeb1c306a433f2d",
+ [
+ null,
+ {}
+ ]
+ ],
"scrollable-overflow-transform-dynamic-001.html": [
"a233376bdb222e5eeb45e3b5f646a84a665e6594",
[
@@ -595752,6 +595810,13 @@
{}
]
],
+ "scrollable-overflow-transform-unreachable-region.html": [
+ "91e987bf82654415f47500f9d6d7d568e4eefcbc",
+ [
+ null,
+ {}
+ ]
+ ],
"scrollable-overflow-vertical-rl-dynamic.html": [
"07f322901748c9709c3037d0223a546549cc9cff",
[
diff --git a/tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini b/tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini
index 38100976826..e483189946d 100644
--- a/tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini
+++ b/tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini
@@ -5,21 +5,9 @@
[.flexbox 11]
expected: FAIL
- [.flexbox 6]
- expected: FAIL
-
- [.flexbox 7]
- expected: FAIL
-
- [.flexbox 1]
- expected: FAIL
-
[.flexbox 2]
expected: FAIL
- [.flexbox 3]
- expected: FAIL
-
[.flexbox 8]
expected: FAIL
diff --git a/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini
index bad0d70b3b5..794226f82ac 100644
--- a/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini
+++ b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini
@@ -11,20 +11,11 @@
[.grid 4]
expected: FAIL
- [.grid 5]
- expected: FAIL
-
- [.grid 6]
- expected: FAIL
-
[.grid 7]
expected: FAIL
[.grid 8]
expected: FAIL
- [.grid 11]
- expected: FAIL
-
[.grid 12]
expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/overflow-inline-transform-relative.html.ini b/tests/wpt/meta/css/css-overflow/overflow-inline-transform-relative.html.ini
deleted file mode 100644
index 0ba0b29e0f2..00000000000
--- a/tests/wpt/meta/css/css-overflow/overflow-inline-transform-relative.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[overflow-inline-transform-relative.html]
- [#target used transform when computing scroll overflow]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini b/tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini
index b4b8f3830d9..1738329f50c 100644
--- a/tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini
+++ b/tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini
@@ -1,7 +1,4 @@
[scroll-overflow-padding-block-001.html]
expected: ERROR
- [undefined block-end]
- expected: FAIL
-
[undefined block-start]
expected: [PASS, FAIL]
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-001.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-001.html.ini
deleted file mode 100644
index e19232bb0b8..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-001.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-001.html]
- [.container 1]
- expected: FAIL
-
- [.container 2]
- expected: FAIL
-
- [.container 3]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-002.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-002.html.ini
deleted file mode 100644
index eae09f05def..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-002.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-002.html]
- [.container 1]
- expected: FAIL
-
- [.container 2]
- expected: FAIL
-
- [.container 3]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-003.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-003.html.ini
deleted file mode 100644
index 10ac7e63897..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-003.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-003.html]
- [.container 1]
- expected: FAIL
-
- [.container 2]
- expected: FAIL
-
- [.container 3]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-005.tentative.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-005.tentative.html.ini
new file mode 100644
index 00000000000..901184b8ed2
--- /dev/null
+++ b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-005.tentative.html.ini
@@ -0,0 +1,3 @@
+[scrollable-overflow-transform-005.tentative.html]
+ [.container 6]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-009.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-009.html.ini
new file mode 100644
index 00000000000..cd8e986f634
--- /dev/null
+++ b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-009.html.ini
@@ -0,0 +1,6 @@
+[scrollable-overflow-transform-009.html]
+ [.container 2]
+ expected: FAIL
+
+ [.container 3]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-010.tentative.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-010.tentative.html.ini
new file mode 100644
index 00000000000..94ff7fba3fb
--- /dev/null
+++ b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-010.tentative.html.ini
@@ -0,0 +1,6 @@
+[scrollable-overflow-transform-010.tentative.html]
+ [.container 1]
+ expected: FAIL
+
+ [.container 2]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-001.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-001.html.ini
deleted file mode 100644
index c4639b846ba..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-001.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-001.html]
- [Check scrollWidth before and after transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-002.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-002.html.ini
deleted file mode 100644
index ff8be1e2e49..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-002.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-002.html]
- [Check scrollWidth before and after transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-003.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-003.html.ini
deleted file mode 100644
index 227a2451b5e..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-003.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-003.html]
- [Check scrollWidth before and after transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-004.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-004.html.ini
deleted file mode 100644
index d346a0658c9..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-004.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-004.html]
- [Check scrollWidth before and after position and transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after position and transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight after position and transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-005.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-005.html.ini
deleted file mode 100644
index 3561e692dab..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-005.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-005.html]
- [Check scrollWidth before and after appendChild() and transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after appendChild() and transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after appendChild() and transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-006.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-006.html.ini
deleted file mode 100644
index f8a8cae0ae5..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-006.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-006.html]
- [Check scrollWidth before and after removeChild() and transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after removeChild() and transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after removeChild() and transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-unreachable-region.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-unreachable-region.html.ini
new file mode 100644
index 00000000000..0a46e380a0b
--- /dev/null
+++ b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-unreachable-region.html.ini
@@ -0,0 +1,168 @@
+[scrollable-overflow-transform-unreachable-region.html]
+ [scrollWidth of display: flow-root; direction: ltr; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flow-root; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flow-root; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flow-root; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: column; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: column; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: column; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: column; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: grid; direction: ltr; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: grid; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: grid; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: grid; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-will-change/will-change-fixedpos-cb-003.html.ini b/tests/wpt/meta/css/css-will-change/will-change-fixedpos-cb-003.html.ini
deleted file mode 100644
index 77a5d26e728..00000000000
--- a/tests/wpt/meta/css/css-will-change/will-change-fixedpos-cb-003.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[will-change-fixedpos-cb-003.html]
- expected: FAIL
diff --git a/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-001.html.ini b/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-001.html.ini
deleted file mode 100644
index 01bd97ce10d..00000000000
--- a/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-001.html.ini
+++ /dev/null
@@ -1,12 +0,0 @@
-[scrollWidthHeight-negative-margin-001.html]
- [scrollWidth/Height with negative margins: overflow: visible;]
- expected: FAIL
-
- [scrollWidth/Height with negative margins: overflow: hidden;]
- expected: FAIL
-
- [scrollWidth/Height with negative margins: overflow: auto;]
- expected: FAIL
-
- [scrollWidth/Height with negative margins: overflow: clip;]
- expected: FAIL
diff --git a/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini b/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini
index e92445207b7..531b67bb161 100644
--- a/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini
+++ b/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini
@@ -121,97 +121,97 @@
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
@@ -220,49 +220,49 @@
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: row-reverse wrap-reverse;]
expected: FAIL
@@ -313,145 +313,145 @@
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
@@ -505,85 +505,70 @@
expected: FAIL
[scrollWidth with negative margins: display: flow-root; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
@@ -592,13 +577,13 @@
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: row-reverse wrap-reverse;]
expected: FAIL
@@ -613,37 +598,37 @@
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
@@ -661,61 +646,46 @@
expected: FAIL
[scrollWidth with negative margins: display: grid; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: visible; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: hidden; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: auto; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: clip; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: scroll; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
diff --git a/tests/wpt/meta/css/cssom-view/table-scroll-props.html.ini b/tests/wpt/meta/css/cssom-view/table-scroll-props.html.ini
new file mode 100644
index 00000000000..745c51cd4c7
--- /dev/null
+++ b/tests/wpt/meta/css/cssom-view/table-scroll-props.html.ini
@@ -0,0 +1,6 @@
+[table-scroll-props.html]
+ [Table with separated border]
+ expected: FAIL
+
+ [Table with collapsed border]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/filter-effects/filtered-html-is-not-container.html.ini b/tests/wpt/meta/css/filter-effects/filtered-html-is-not-container.html.ini
deleted file mode 100644
index b366310b98b..00000000000
--- a/tests/wpt/meta/css/filter-effects/filtered-html-is-not-container.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[filtered-html-is-not-container.html]
- expected: FAIL
diff --git a/tests/wpt/meta/dom/nodes/insertion-removing-steps/blur-event.window.js.ini b/tests/wpt/meta/dom/nodes/insertion-removing-steps/blur-event.window.js.ini
deleted file mode 100644
index 9b57360d600..00000000000
--- a/tests/wpt/meta/dom/nodes/insertion-removing-steps/blur-event.window.js.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[blur-event.window.html]
- expected: CRASH
diff --git a/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini b/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini
deleted file mode 100644
index 8f3aec5177f..00000000000
--- a/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html]
- [Check focus event and active element after focusing different site iframe then immediately focusing back]
- expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe.html.ini b/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe.html.ini
deleted file mode 100644
index b489ab52a39..00000000000
--- a/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[activeelement-after-focusing-different-site-iframe.html]
- [Check trailing events]
- expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini b/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini
index 5864035c9e1..612b845c7e9 100644
--- a/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini
+++ b/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini
@@ -1,2 +1,3 @@
[activeelement-after-focusing-same-site-iframe-contentwindow.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe.html.ini b/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe.html.ini
deleted file mode 100644
index 406e6a58324..00000000000
--- a/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[activeelement-after-focusing-same-site-iframe.html]
- [Check trailing events]
- expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini b/tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini
index 532cbcbabfe..a58db5d3146 100644
--- a/tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini
+++ b/tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini
@@ -1,2 +1,3 @@
[activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini b/tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini
index 8483775c0c1..d8b0d3212c9 100644
--- a/tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini
+++ b/tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini
@@ -1,2 +1,3 @@
[activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini b/tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini
index 8bdcea27053..1e3e377f307 100644
--- a/tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini
+++ b/tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini
@@ -1,2 +1,3 @@
[focus-restoration-in-different-site-iframes-window.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini b/tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini
index 53f4db35f7e..f19949138fa 100644
--- a/tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini
+++ b/tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini
@@ -1,2 +1,3 @@
[focus-restoration-in-same-site-iframes-window.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/iframe-focuses-parent-same-site.html.ini b/tests/wpt/meta/focus/iframe-focuses-parent-same-site.html.ini
deleted file mode 100644
index 8877baa8ac6..00000000000
--- a/tests/wpt/meta/focus/iframe-focuses-parent-same-site.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[iframe-focuses-parent-same-site.html]
- expected: TIMEOUT
diff --git a/tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini b/tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini
index 6720c0f77da..3e682215a0e 100644
--- a/tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini
+++ b/tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini
@@ -1,7 +1,4 @@
[cross-origin-objects-function-caching.html]
- [Cross-origin Window methods are cached]
- expected: FAIL
-
[Cross-origin Location `replace` method is cached]
expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/the-window-object/focus.window.js.ini b/tests/wpt/meta/html/browsers/the-window-object/focus.window.js.ini
deleted file mode 100644
index 27a9640a02c..00000000000
--- a/tests/wpt/meta/html/browsers/the-window-object/focus.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[focus.window.html]
- [focus]
- expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini b/tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini
index 8afe0888e4e..32cd3f302d4 100644
--- a/tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini
+++ b/tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini
@@ -328,9 +328,3 @@
[A SecurityError exception must be thrown when window.stop is accessed from a different origin.]
expected: FAIL
-
- [A SecurityError exception should not be thrown when window.blur is accessed from a different origin.]
- expected: FAIL
-
- [A SecurityError exception should not be thrown when window.focus is accessed from a different origin.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini b/tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini
index e9061d31d26..94ad9ce191c 100644
--- a/tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini
+++ b/tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini
@@ -1,9 +1,4 @@
[window-properties.https.html]
- [Window method: focus]
- expected: FAIL
-
- [Window method: blur]
- expected: FAIL
[Window method: print]
expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini b/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini
deleted file mode 100644
index f6455f9bd76..00000000000
--- a/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[2d.canvas.host.size.large.html]
- expected: CRASH
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini
deleted file mode 100644
index f6455f9bd76..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[2d.canvas.host.size.large.html]
- expected: CRASH
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini
deleted file mode 100644
index d571dfa4cf9..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[2d.canvas.host.size.large.worker.html]
- expected: CRASH
diff --git a/tests/wpt/meta/html/dom/idlharness.https.html.ini b/tests/wpt/meta/html/dom/idlharness.https.html.ini
index 23b8e353fb0..64533ac1838 100644
--- a/tests/wpt/meta/html/dom/idlharness.https.html.ini
+++ b/tests/wpt/meta/html/dom/idlharness.https.html.ini
@@ -1738,9 +1738,6 @@
[Document interface: attribute all]
expected: FAIL
- [Window interface: operation focus()]
- expected: FAIL
-
[Window interface: attribute scrollbars]
expected: FAIL
@@ -1870,9 +1867,6 @@
[Document interface: new Document() must inherit property "dir" with the proper type]
expected: FAIL
- [Window interface: window must inherit property "blur()" with the proper type]
- expected: FAIL
-
[Document interface: operation execCommand(DOMString, optional boolean, optional DOMString)]
expected: FAIL
@@ -1897,9 +1891,6 @@
[Document interface: iframe.contentDocument must inherit property "queryCommandEnabled(DOMString)" with the proper type]
expected: FAIL
- [Window interface: operation blur()]
- expected: FAIL
-
[Document interface: iframe.contentDocument must inherit property "onslotchange" with the proper type]
expected: FAIL
@@ -1924,9 +1915,6 @@
[Document interface: documentWithHandlers must inherit property "onauxclick" with the proper type]
expected: FAIL
- [Window interface: window must inherit property "focus()" with the proper type]
- expected: FAIL
-
[Document interface: documentWithHandlers must inherit property "onwebkitanimationend" with the proper type]
expected: FAIL
diff --git a/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini b/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini
index c00e2949bf5..b229be268ec 100644
--- a/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini
+++ b/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini
@@ -1,12 +1,6 @@
[event-listeners.window.html]
- [Standard event listeners are to be removed from Window]
- expected: FAIL
-
[Standard event listeners are to be removed from Window for an active but not fully active document]
expected: FAIL
- [Standard event listeners are to be removed from Window for a non-active document that is the associated Document of a Window (frame is removed)]
- expected: FAIL
-
[Custom event listeners are to be removed from Window for an active but not fully active document]
expected: FAIL
diff --git a/tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini b/tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini
index 492ba730948..b63c174f353 100644
--- a/tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini
+++ b/tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini
@@ -1,6 +1,3 @@
[global-object-implicit-this-value-cross-realm.html]
- [Cross-realm global object's operation throws when called on incompatible object]
- expected: FAIL
-
[Cross-realm global object's operation called on null / undefined]
expected: FAIL
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index d3a939eab57..a3f77769a9d 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -25,6 +25,13 @@
{}
]
],
+ "form_reset-crash.html": [
+ "b23cbf6aefdef8231e2cc4cb0e6416195d5bdf71",
+ [
+ null,
+ {}
+ ]
+ ],
"global-enumerate-crash.html": [
"a77e79b1465bf7555340dd5e9bf94a4c8caa85f2",
[
@@ -12737,7 +12744,7 @@
]
},
"FocusEvent.html": [
- "9e002c1088de060b5e7f94c4152bf9fb779c04cc",
+ "7fb7aebf2afbac7f68a16308b9cc5d4588b7022f",
[
null,
{}
@@ -13271,6 +13278,13 @@
{}
]
],
+ "focus_inter_documents.html": [
+ "5c759772367e844066d1df0081917c9e129d09ec",
+ [
+ null,
+ {}
+ ]
+ ],
"follow-hyperlink.html": [
"6ac9eaeb5814a663988ed8c664c113072e329dc5",
[
diff --git a/tests/wpt/mozilla/tests/mozilla/FocusEvent.html b/tests/wpt/mozilla/tests/mozilla/FocusEvent.html
index 9e002c1088d..7fb7aebf2af 100644
--- a/tests/wpt/mozilla/tests/mozilla/FocusEvent.html
+++ b/tests/wpt/mozilla/tests/mozilla/FocusEvent.html
@@ -48,13 +48,6 @@
]
},
- {
- element: document.body,
- expected_events: [
- {element: input3, event_name: "blur"},
- ]
- }
-
];
var idx = 0;
diff --git a/tests/wpt/mozilla/tests/mozilla/focus_inter_documents.html b/tests/wpt/mozilla/tests/mozilla/focus_inter_documents.html
new file mode 100644
index 00000000000..5c759772367
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/focus_inter_documents.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <iframe id="f1"></iframe>
+ <iframe id="f2"></iframe>
+ <input id="d0">
+ <script>
+
+ /** Wait for an `event` event to be fired on `element`. Resolves to a boolean
+ * value indicating whether the event was fired within a predetermined period. */
+ async function waitForEvent(element, event) {
+ let listener;
+ try {
+ return await new Promise(resolve => {
+ setTimeout(() => resolve(false), 1000);
+ listener = () => resolve(true);
+ element.addEventListener(event, listener);
+ });
+ } finally {
+ if (listener) {
+ element.removeEventListener(event, listener);
+ }
+ }
+ }
+
+ promise_test(async t => {
+ await new Promise(r => window.onload = r);
+
+ const d0 = document.getElementById("d0");
+
+ // This test requires the document to have focus as a starting condition.
+ if (!document.hasFocus() || document.activeElement !== d0) {
+ const p = new Promise(r => d0.onfocus = r);
+ d0.focus();
+ await p;
+ }
+
+ assert_true(document.hasFocus(), "Document has focus as starting condition.");
+ assert_equals(document.activeElement, d0, "`d0` has focus as starting condition.");
+ }, "Starting condition");
+
+ promise_test(async t => {
+ const d0 = document.getElementById("d0");
+ const f1 = document.getElementById("f1");
+ f1.contentDocument.body.innerHTML = '<input id=d1>';
+ const d1 = f1.contentDocument.getElementById("d1");
+
+ const p0 = waitForEvent(d1, 'focus');
+ const p1 = waitForEvent(f1, 'focus');
+ const p2 = waitForEvent(f1.contentWindow, 'focus');
+ const p3 = waitForEvent(d0, 'blur');
+
+ d1.focus();
+
+ assert_true(await p0, "`d1.focus` fires in time");
+ await p1; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p2, "`f1.contentWindow.focus` fires in time");
+ assert_true(await p3, "`d0.blur` fires in time");
+
+ assert_equals(document.activeElement, f1, "The top-level document's activeElement is `f1`");
+ assert_true(f1.contentDocument.hasFocus(), "f1's contentDocument has focus");
+ assert_equals(f1.contentDocument.activeElement, d1, "f1's contentDocument's activeElement is `d1`");
+ }, "Focusing an element in a nested browsing context also focuses the container");
+
+ promise_test(async t => {
+ const f1 = document.getElementById("f1");
+ const d1 = f1.contentDocument.getElementById("d1");
+
+ const f2 = document.getElementById("f2");
+ f2.contentDocument.body.innerHTML = '<input id=d2>';
+ const d2 = f2.contentDocument.getElementById("d2");
+
+ const p0 = waitForEvent(d1, 'blur');
+ const p1 = waitForEvent(f1, 'blur');
+ const p2 = waitForEvent(f1.contentWindow, 'blur');
+
+ d2.focus();
+
+ assert_true(await p0, "`d1.blur` fires in time");
+ await p1; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p2, "`f1.contentWindow.blur` fires in time");
+
+ // Wait for any ongoing execution of the focus update steps to complete
+ await new Promise(r => window.setTimeout(r, 0));
+
+ assert_equals(document.activeElement, f2, "The top-level document's activeElement is `f2`");
+ assert_true(f2.contentDocument.hasFocus(), "f2's contentDocument has focus");
+ assert_equals(f2.contentDocument.activeElement, d2, "f2's contentDocument's activeElement is `d2`");
+ assert_false(f1.contentDocument.hasFocus(), "f1's contentDocument does not have focus");
+ assert_equals(f1.contentDocument.activeElement, f1.contentDocument.body, "f1's contentDocument's activeElement is its body");
+ }, "Focusing an element in a different container also unfocuses the previously focused element and its container");
+
+ promise_test(async t => {
+ const d0 = document.getElementById("d0");
+
+ const f2 = document.getElementById("f2");
+ const d2 = f2.contentDocument.getElementById("d2");
+
+ const p0 = waitForEvent(d2, 'blur');
+ const p1 = waitForEvent(f2, 'blur');
+ const p2 = waitForEvent(f2.contentWindow, 'blur');
+ const p3 = waitForEvent(d0, 'focus');
+
+ d0.focus();
+
+ assert_true(await p0, "`d2.blur` fires in time");
+ await p1; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p2, "`f2.contentWindow.blur` fires in time");
+ assert_true(await p3, "`d0.focus` fires in time");
+
+ // Wait for any ongoing execution of the focus update steps to complete
+ await new Promise(r => window.setTimeout(r, 0));
+
+ assert_equals(document.activeElement, d0, "The top-level document's activeElement is `d0`");
+ assert_false(f2.contentDocument.hasFocus(), "f2's contentDocument does not have focus");
+ assert_equals(f2.contentDocument.activeElement, f2.contentDocument.body, "f2's contentDocument's activeElement is its body");
+ }, "Unfocusing a container also unfocuses any focused elements within");
+
+ promise_test(async t => {
+ const f1 = document.getElementById("f1");
+
+ const p0 = waitForEvent(f1, 'focus');
+ const p1 = waitForEvent(f1.contentWindow, 'focus');
+
+ f1.focus();
+
+ await p0; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p1, "`f1.contentWindow.focus` fires in time");
+
+ assert_equals(document.activeElement, f1, "The top-level document's activeElement is `f1`");
+ assert_true(f1.contentDocument.hasFocus(), "f1's contentDocument has focus");
+ }, "Focusing a container changes the contained document's 'has focus steps' result");
+
+ promise_test(async t => {
+ const f1 = document.getElementById("f1");
+
+ // `f1` should be focused because of the previous step
+ assert_equals(document.activeElement, f1, "The top-level document's activeElement is `f1`");
+
+ // Navigate the focused container
+ const pLoad = new Promise(resolve => window.subframeIsReady = resolve);
+ f1.srcdoc = "<script>window.parent.subframeIsReady();</" + "script>";
+ await pLoad;
+
+ // Allow some delay before the document finally receives focus
+ if (!f1.contentDocument.hasFocus()) {
+ await waitForEvent(f1.contentWindow, 'focus');
+ }
+
+ assert_true(f1.contentDocument.hasFocus(), "f1's contentDocument has focus");
+ }, "When a focused container navigates, the new document should receive focus");
+
+ promise_test(async t => {
+ const f2 = document.getElementById("f2");
+
+ const p0 = waitForEvent(f2, 'focus');
+ const p1 = waitForEvent(f2.contentWindow, 'focus');
+
+ f2.contentWindow.focus();
+
+ await p0; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p1, "`f2.contentWindow.focus` fires in time");
+
+ assert_equals(document.activeElement, f2, "The top-level document's activeElement is `f2`");
+ assert_true(f2.contentDocument.hasFocus(), "f2's contentDocument has focus");
+ }, "Focusing the window of a nested browsing context also focuses the container");
+
+ promise_test(async t => {
+ const f2 = document.getElementById("f2");
+ const d2 = f2.contentDocument.getElementById("d2");
+
+ {
+ const p = waitForEvent(d2, 'focus');
+ f2.focus();
+ d2.focus();
+ await p;
+ }
+
+ const p0 = waitForEvent(d2, 'blur');
+ d2.blur();
+ assert_true(await p0, "`d2.blur` fires in time");
+
+ // FIXME: This passes on Firefox, Blink, and WebKit but is not spec-
+ // compliant. Per spec, the top-level document's viewport should be
+ // focused instead.
+ //
+ // <https://html.spec.whatwg.org/multipage/#get-the-focusable-area>
+ //
+ // > The unfocusing steps for an object `old focus target`` that is either a
+ // > focusable area or an element that is not a focusable area are as
+ // > follows: [...]
+ // >
+ // > 7. If `topDocument`'s browsing context has system focus, then run the
+ // > focusing steps for topDocument's viewport.
+
+ assert_equals(document.activeElement, f2, "The top-level document's activeElement is `f2`");
+ assert_equals(f2.contentDocument.activeElement, f2.contentDocument.body, "f2's contentDocument's activeElement is its body");
+ assert_true(f2.contentDocument.hasFocus(), "f2's contentDocument has focus");
+ }, "Blurring an element in a nested browsing context focuses its node document");
+ </script>
+</body>
+</html>
diff --git a/tests/wpt/mozilla/tests/mozilla/form_reset-crash.html b/tests/wpt/mozilla/tests/mozilla/form_reset-crash.html
new file mode 100644
index 00000000000..b23cbf6aefd
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/form_reset-crash.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<form id="form">
+ <output><textarea></textarea></output>
+</form>
+<script>
+form.reset();
+</script>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-004.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-004.html
new file mode 100644
index 00000000000..b398167fa30
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-004.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Scroll Container</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the box of scroll container with transform contribute to the scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: auto;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+ background: lime;
+ }
+
+ .element-content {
+ width: 500px;
+ height: 500px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="250">
+ <div style="transform: translateX(200px);" class="element">
+ <div class="element-content"></div>
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-height="350">
+ <div style="transform: translateY(300px);" class="element">
+ <div class="element-content"></div>
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="250" data-expected-scroll-height="350">
+ <div style="transform: translate(200px, 300px);" class="element">
+ <div class="element-content"></div>
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-005.tentative.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-005.tentative.html
new file mode 100644
index 00000000000..837b95ba96d
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-005.tentative.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Exclusion of Untransformed Child Box</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable"/>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12113"/>
+<meta name="assert" content="Checks that the untransformed child box is not included in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 100px;
+ height: 100px;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-200px, -200px);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="150" data-expected-scroll-height="150">
+ <div style="transform: translate(-25%, -25%);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-height="100" data-expected-scroll-height="100">
+ <div style="width: 100px; height: 100px;">
+ <div style="transform: translate(-200px, -200px);" class="element">
+ </div>
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="150" data-expected-scroll-height="150">
+ <div style="width: 100px; height: 100px;">
+ <div style="transform: translate(-25%, -25%);" class="element">
+ </div>
+ </div>
+ </div>
+
+ <div class="container" style="position: relative;" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-200px, -200px); position: absolute;" class="element">
+ </div>
+ </div>
+
+ <div class="container" style="position: relative;" data-expected-scroll-width="150" data-expected-scroll-height="150">
+ <div style="transform: translate(-25%, -25%); position: absolute;" class="element">
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-006.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-006.html
new file mode 100644
index 00000000000..2eea759da6a
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-006.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Rotate</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the bounding rectangle of rotated element is included correctly in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 200px;
+ height: 200px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="241" data-expected-scroll-height="241">
+ <div style="transform: rotate(45deg);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="241" data-expected-scroll-height="241">
+ <div style="transform: rotate(-45deg);" class="element">
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-007.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-007.html
new file mode 100644
index 00000000000..8aa6e5f17d8
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-007.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Scale</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the bounding rectangle of scaled element is included correctly in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 200px;
+ height: 200px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="300" data-expected-scroll-height="300">
+ <div style="transform: scale(2);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-height="250" data-expected-scroll-height="250">
+ <div style="transform: scale(0.5);" class="element">
+ <div style="transform: scale(3);" class="element-2">
+ </div>
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-008.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-008.html
new file mode 100644
index 00000000000..df1daeb8424
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-008.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Skew</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the bounding rectangle of skewed element is included correctly in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 200px;
+ height: 200px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="227" data-expected-scroll-height="227">
+ <div style="transform: skew(-15deg, -15deg);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="227" data-expected-scroll-height="227">
+ <div style="transform: skew(15deg, 15deg);" class="element">
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-009.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-009.html
new file mode 100644
index 00000000000..aca1b28418a
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-009.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Unreachable Scrollable Overflow</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the box in unreachable scrollable overflow region with transform is not included in the calculation.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .relative {
+ position: relative;
+ }
+
+ .absolute {
+ position: absolute;
+ }
+
+ .element {
+ width: 100px;
+ height: 100px;
+ background: lime;
+ }
+</style>
+<body onload="checkLayout('.container')">
+ <div class="container" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-300px, -300px);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(300px, -300px);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-300px, 300px);" class="element">
+ </div>
+ </div>
+
+ <div class="container relative" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-300px, -300px);" class="element absolute">
+ </div>
+ </div>
+
+ <div class="container relative" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(300px, -300px);" class="element absolute">
+ </div>
+ </div>
+
+ <div class="container relative" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-300px, 300px);" class="element absolute">
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-010.tentative.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-010.tentative.html
new file mode 100644
index 00000000000..e2c62cb4474
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-010.tentative.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Rotate Nested Element</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable"/>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12112"/>
+<meta name="assert" content="Checks that the bounding rectangle of nested rotated element is included correctly in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 200px;
+ height: 200px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-height="241" data-expected-scroll-height="241">
+ <div style="transform: rotate(-45deg);" class="element">
+ <div style="transform: rotate(45deg);" class="element-2">
+ </div>
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-height="222" data-expected-scroll-height="222">
+ <div style="transform: rotate(30deg) rotate(-15deg);" class="element">
+ <div style="transform: rotate(-30deg) rotate(105deg);" class="element-2">
+ </div>
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-unreachable-region.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-unreachable-region.html
new file mode 100644
index 00000000000..91e987bf826
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-unreachable-region.html
@@ -0,0 +1,95 @@
+<!doctype html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<title>Scrollable Overflow of a Scroll Container with Transformed Child in Unreachable Scrollable Overflow Region.</title>
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#unreachable-scrollable-overflow-region">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable">
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+body { margin: 0 }
+.wrapper {
+ width: 100px;
+ height: 200px;
+ overflow: scroll;
+}
+.inner {
+ width: 100px;
+ height: 200px;
+ background-color: lime;
+ transform: translate(-3px, -6px) scale(1.10);
+}
+</style>
+<div class="wrapper">
+ <div class="inner"></div>
+</div>
+<script>
+const wrapper = document.querySelector(".wrapper");
+const contentBox = {
+ width: 100,
+ height: 200,
+};
+
+function getCurrentTestName(display, direction, writingMode, flexDirection, flexWrap) {
+ return `display: ${display}; ` +
+ `direction: ${direction}; ` +
+ `writing-mode: ${writingMode}; ` +
+ `flex-direction: ${flexDirection}; ` +
+ `flex-wrap: ${flexWrap};`;
+}
+
+for (let display of ["flow-root", "flex", "grid"]) {
+ for (let flexDirection of ["row", "row-reverse", "column", "column-reverse"]) {
+ if (flexDirection != "row" && display != "flex") {
+ // Don't bother retesting with all flexDirection values unless we're actually a flex container
+ continue;
+ }
+ for (let flexWrap of ["nowrap", "wrap-reverse"]) {
+ if (flexWrap != "nowrap" && display != "flex") {
+ // Don't bother retesting with all flexWrap values unless we're actually a flex container
+ continue;
+ }
+ for (let direction of ["ltr", "rtl"]) {
+ for (let writingMode of ["horizontal-tb", "vertical-lr", "vertical-rl"]) {
+ wrapper.style.display = display;
+ wrapper.style.direction = direction;
+ wrapper.style.writingMode = writingMode;
+ wrapper.style.flexDirection = flexDirection;
+ wrapper.style.flexWrap = flexWrap;
+ // Suppress scrollbars because they get added to the padding are
+ // and would need to account for them in flexbox.
+ wrapper.style.scrollbarWidth = display == "flex" ? "none" : "";
+ let vertical = writingMode.startsWith("vertical");
+ let scrollToTop = vertical && direction == "rtl";
+ let scrollToLeft = (!vertical && direction == "rtl") || writingMode == "vertical-rl";
+ let flexMainAxisIsVertical = flexDirection.startsWith("row") == vertical;
+ if (display == "flex") {
+ if (flexDirection.endsWith("-reverse")) {
+ if (flexMainAxisIsVertical) {
+ scrollToTop = !scrollToTop;
+ } else {
+ scrollToLeft = !scrollToLeft;
+ }
+ }
+ if (flexWrap == "wrap-reverse") {
+ if (flexMainAxisIsVertical) {
+ scrollToLeft = !scrollToLeft;
+ } else {
+ scrollToTop = !scrollToTop;
+ }
+ }
+ }
+ currentTestName = getCurrentTestName(display, direction, writingMode, flexDirection, flexWrap);
+ test(function() {
+ assert_equals(wrapper.scrollWidth, (scrollToLeft ? 108 : 102), "scrollWidth");
+ }, "scrollWidth of " + currentTestName);
+ test(function() {
+ assert_equals(wrapper.scrollHeight, (scrollToTop ? 216 : 204), "scrollHeight");
+ }, "scrollHeight of " + currentTestName);
+ }
+ }
+ }
+ }
+}
+</script>
diff --git a/tests/wpt/tests/focus/focus-element-crash.html b/tests/wpt/tests/focus/focus-element-crash.html
new file mode 100644
index 00000000000..27df1c0b130
--- /dev/null
+++ b/tests/wpt/tests/focus/focus-element-crash.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<meta charset="utf-8">
+<meta name="assert" content="focus element adopted or remounted shouldn't crash.">
+
+<body>
+
+<!--focus element remounted test case-->
+<audio onloadstart="select.focus()" src=""></audio>
+<iframe id="iframe"></iframe>
+<table id="table">
+ <td>
+ <select id="select" onblur=";"></select>
+ </td>
+</table>
+<script>
+ window.addEventListener("load", _ => iframe.appendChild(table));
+</script>
+
+<!--focus element adopted test case-->
+<input id="username" type="text" placeholder="username">
+<input id="password" type="text" placeholder="password">
+</body>
+<script>
+ let search = document.getElementById("search");
+ let username = document.getElementById("username");
+ username.focus();
+ window.onload = () => document.adoptNode(username);
+ username.addEventListener("blur", function (e) {
+ document.body.append(`event:${e.type} fire.`)
+ });
+</script>
+</html>