Update web-platform-tests to revision b'0339b7e9ebef65f3288f07167a17c123a782c66f'

This commit is contained in:
WPT Sync Bot 2021-03-09 08:20:22 +00:00
parent 550d80ad4f
commit 6c98c32c8a
92 changed files with 1650 additions and 2114 deletions

View file

@ -245,3 +245,39 @@
[Web Animations: property <border-left-width> from [0px\] to [10px\] at (1) should be [10px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (-0.3) should be [0px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (0) should be [3px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (0.3) should be [9px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (0.6) should be [15px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (1) should be [23px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (1.5) should be [33px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (-0.3) should be [0px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (0) should be [3px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (0.3) should be [9px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (0.6) should be [15px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (1) should be [23px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (1.5) should be [33px\]]
expected: FAIL

View file

@ -53,129 +53,6 @@
[background-position length(px) / events]
expected: FAIL
[background-color color(rgba) / values]
expected: FAIL
[border-top-width length(pt) / values]
expected: FAIL
[border-top-width length(pc) / values]
expected: FAIL
[border-top-width length(px) / values]
expected: FAIL
[border-top-width length(em) / values]
expected: FAIL
[border-top-width length(ex) / values]
expected: FAIL
[border-top-width length(mm) / values]
expected: FAIL
[border-top-width length(cm) / values]
expected: FAIL
[border-top-width length(in) / values]
expected: FAIL
[border-right-width length(pt) / values]
expected: FAIL
[border-right-width length(pc) / values]
expected: FAIL
[border-right-width length(px) / values]
expected: FAIL
[border-right-width length(em) / values]
expected: FAIL
[border-right-width length(ex) / values]
expected: FAIL
[border-right-width length(mm) / values]
expected: FAIL
[border-right-width length(cm) / values]
expected: FAIL
[border-right-width length(in) / values]
expected: FAIL
[border-bottom-width length(pt) / values]
expected: FAIL
[border-bottom-width length(pc) / values]
expected: FAIL
[border-bottom-width length(px) / values]
expected: FAIL
[border-bottom-width length(em) / values]
expected: FAIL
[border-bottom-width length(ex) / values]
expected: FAIL
[border-bottom-width length(mm) / values]
expected: FAIL
[border-bottom-width length(cm) / values]
expected: FAIL
[border-bottom-width length(in) / values]
expected: FAIL
[border-left-width length(pt) / values]
expected: FAIL
[border-left-width length(pc) / values]
expected: FAIL
[border-left-width length(px) / values]
expected: FAIL
[border-left-width length(em) / values]
expected: FAIL
[border-left-width length(ex) / values]
expected: FAIL
[border-left-width length(mm) / values]
expected: FAIL
[border-left-width length(cm) / values]
expected: FAIL
[border-left-width length(in) / values]
expected: FAIL
[border-top-color color(rgba) / values]
expected: FAIL
[border-right-color color(rgba) / values]
expected: FAIL
[border-bottom-color color(rgba) / values]
expected: FAIL
[border-left-color color(rgba) / values]
expected: FAIL
[padding-bottom length(pt) / values]
expected: FAIL
[padding-bottom length(pc) / values]
expected: FAIL
[padding-bottom length(px) / values]
expected: FAIL
[padding-bottom length(em) / values]
expected: FAIL
[padding-bottom length(ex) / values]
expected: FAIL
@ -326,303 +203,3 @@
[margin-right length(mm) / values]
expected: FAIL
[margin-right length(cm) / values]
expected: FAIL
[margin-right length(in) / values]
expected: FAIL
[margin-top length(pt) / values]
expected: FAIL
[margin-top length(pc) / values]
expected: FAIL
[margin-top length(px) / values]
expected: FAIL
[margin-top length(em) / values]
expected: FAIL
[margin-top length(ex) / values]
expected: FAIL
[margin-top length(mm) / values]
expected: FAIL
[margin-top length(cm) / values]
expected: FAIL
[margin-top length(in) / values]
expected: FAIL
[height length(pt) / values]
expected: FAIL
[height length(pc) / values]
expected: FAIL
[height length(px) / values]
expected: FAIL
[height length(em) / values]
expected: FAIL
[height length(ex) / values]
expected: FAIL
[height length(mm) / values]
expected: FAIL
[height length(cm) / values]
expected: FAIL
[height length(in) / values]
expected: FAIL
[height percentage(%) / values]
expected: FAIL
[width length(pt) / values]
expected: FAIL
[width length(pc) / values]
expected: FAIL
[width length(px) / values]
expected: FAIL
[width length(em) / values]
expected: FAIL
[width length(ex) / values]
expected: FAIL
[width length(mm) / values]
expected: FAIL
[width length(cm) / values]
expected: FAIL
[width length(in) / values]
expected: FAIL
[width percentage(%) / values]
expected: FAIL
[min-height length(pt) / values]
expected: FAIL
[min-height length(pc) / values]
expected: FAIL
[min-height length(px) / values]
expected: FAIL
[min-height length(em) / values]
expected: FAIL
[min-height length(ex) / values]
expected: FAIL
[min-height length(mm) / values]
expected: FAIL
[min-height length(cm) / values]
expected: FAIL
[min-height length(in) / values]
expected: FAIL
[min-height percentage(%) / values]
expected: FAIL
[min-width length(pt) / values]
expected: FAIL
[min-width length(pc) / values]
expected: FAIL
[min-width length(px) / values]
expected: FAIL
[min-width length(em) / values]
expected: FAIL
[min-width length(ex) / values]
expected: FAIL
[min-width length(mm) / values]
expected: FAIL
[min-width length(cm) / values]
expected: FAIL
[min-width length(in) / values]
expected: FAIL
[min-width percentage(%) / values]
expected: FAIL
[max-height length(pt) / values]
expected: FAIL
[max-height length(pc) / values]
expected: FAIL
[max-height length(px) / values]
expected: FAIL
[max-height length(em) / values]
expected: FAIL
[max-height length(ex) / values]
expected: FAIL
[max-height length(mm) / values]
expected: FAIL
[max-height length(cm) / values]
expected: FAIL
[max-height length(in) / values]
expected: FAIL
[max-height percentage(%) / values]
expected: FAIL
[max-width length(pt) / values]
expected: FAIL
[max-width length(pc) / values]
expected: FAIL
[max-width length(px) / values]
expected: FAIL
[max-width length(em) / values]
expected: FAIL
[max-width length(ex) / values]
expected: FAIL
[max-width length(mm) / values]
expected: FAIL
[max-width length(cm) / values]
expected: FAIL
[max-width length(in) / values]
expected: FAIL
[max-width percentage(%) / values]
expected: FAIL
[top length(pt) / values]
expected: FAIL
[top length(pc) / values]
expected: FAIL
[top length(px) / values]
expected: FAIL
[top length(em) / values]
expected: FAIL
[top length(ex) / values]
expected: FAIL
[top length(mm) / values]
expected: FAIL
[top length(cm) / values]
expected: FAIL
[top length(in) / values]
expected: FAIL
[top percentage(%) / values]
expected: FAIL
[right length(pt) / values]
expected: FAIL
[right length(pc) / values]
expected: FAIL
[right length(px) / values]
expected: FAIL
[right length(em) / values]
expected: FAIL
[right length(ex) / values]
expected: FAIL
[right length(mm) / values]
expected: FAIL
[right length(cm) / values]
expected: FAIL
[right length(in) / values]
expected: FAIL
[right percentage(%) / values]
expected: FAIL
[bottom length(pt) / values]
expected: FAIL
[bottom length(pc) / values]
expected: FAIL
[bottom length(px) / values]
expected: FAIL
[bottom length(em) / values]
expected: FAIL
[bottom length(ex) / values]
expected: FAIL
[bottom length(mm) / values]
expected: FAIL
[bottom length(cm) / values]
expected: FAIL
[bottom length(in) / values]
expected: FAIL
[bottom percentage(%) / values]
expected: FAIL
[left length(pt) / values]
expected: FAIL
[left length(pc) / values]
expected: FAIL
[left length(px) / values]
expected: FAIL
[left length(em) / values]
expected: FAIL
[left length(ex) / values]
expected: FAIL
[left length(mm) / values]
expected: FAIL
[left length(cm) / values]
expected: FAIL
[left length(in) / values]
expected: FAIL
[left percentage(%) / values]
expected: FAIL

View file

@ -5,15 +5,9 @@
[background-position length(pt) / events]
expected: FAIL
[text-indent percentage(%) / events]
expected: FAIL
[background-position length(px) / values]
expected: FAIL
[text-shadow shadow(shadow) / events]
expected: FAIL
[background-position length(cm) / events]
expected: FAIL
@ -23,30 +17,9 @@
[background-position length(in) / events]
expected: FAIL
[text-indent length(mm) / events]
expected: FAIL
[text-indent length(ex) / events]
expected: FAIL
[background-position length(em) / events]
expected: FAIL
[text-indent length(in) / events]
expected: FAIL
[text-indent length(pc) / events]
expected: FAIL
[text-indent length(em) / events]
expected: FAIL
[text-indent length(px) / events]
expected: FAIL
[text-indent length(cm) / events]
expected: FAIL
[visibility visibility(keyword) / values]
expected: FAIL
@ -56,9 +29,6 @@
[background-position length(cm) / values]
expected: FAIL
[text-indent length(pt) / events]
expected: FAIL
[background-position length(ex) / events]
expected: FAIL
@ -236,126 +206,6 @@
[margin-right length(mm) / events]
expected: FAIL
[color color(rgba) / events]
expected: FAIL
[font-size length(pt) / events]
expected: FAIL
[font-size length(pc) / events]
expected: FAIL
[font-size length(px) / events]
expected: FAIL
[font-size length(em) / events]
expected: FAIL
[font-size length(ex) / events]
expected: FAIL
[font-size length(mm) / events]
expected: FAIL
[font-size length(cm) / events]
expected: FAIL
[font-size length(in) / events]
expected: FAIL
[font-size percentage(%) / events]
expected: FAIL
[font-weight font-weight(keyword) / events]
expected: FAIL
[font-weight font-weight(numeric) / events]
expected: FAIL
[line-height number(integer) / events]
expected: FAIL
[line-height number(decimal) / events]
expected: FAIL
[line-height length(pt) / events]
expected: FAIL
[line-height length(pc) / events]
expected: FAIL
[line-height length(px) / events]
expected: FAIL
[line-height length(em) / events]
expected: FAIL
[line-height length(ex) / events]
expected: FAIL
[line-height length(mm) / events]
expected: FAIL
[line-height length(cm) / events]
expected: FAIL
[line-height length(in) / events]
expected: FAIL
[line-height percentage(%) / events]
expected: FAIL
[letter-spacing length(pt) / events]
expected: FAIL
[letter-spacing length(pc) / events]
expected: FAIL
[letter-spacing length(px) / events]
expected: FAIL
[letter-spacing length(em) / events]
expected: FAIL
[letter-spacing length(ex) / events]
expected: FAIL
[letter-spacing length(mm) / events]
expected: FAIL
[letter-spacing length(cm) / events]
expected: FAIL
[letter-spacing length(in) / events]
expected: FAIL
[word-spacing length(pt) / events]
expected: FAIL
[word-spacing length(pc) / events]
expected: FAIL
[word-spacing length(px) / events]
expected: FAIL
[word-spacing length(em) / events]
expected: FAIL
[word-spacing length(ex) / events]
expected: FAIL
[word-spacing length(mm) / events]
expected: FAIL
[word-spacing length(cm) / events]
expected: FAIL
[word-spacing length(in) / events]
expected: FAIL
[word-spacing percentage(%) / events]
expected: FAIL
[background-color color(rgba) / events]
expected: FAIL
@ -629,153 +479,3 @@
[left percentage(%) / events]
expected: FAIL
[margin-right length(cm) / events]
expected: FAIL
[margin-right length(in) / events]
expected: FAIL
[margin-top length(pt) / events]
expected: FAIL
[margin-top length(pc) / events]
expected: FAIL
[margin-top length(px) / events]
expected: FAIL
[margin-top length(em) / events]
expected: FAIL
[margin-top length(ex) / events]
expected: FAIL
[margin-top length(mm) / events]
expected: FAIL
[margin-top length(cm) / events]
expected: FAIL
[margin-top length(in) / events]
expected: FAIL
[height length(pt) / events]
expected: FAIL
[height length(pc) / events]
expected: FAIL
[height length(px) / events]
expected: FAIL
[height length(em) / events]
expected: FAIL
[height length(ex) / events]
expected: FAIL
[height length(mm) / events]
expected: FAIL
[height length(cm) / events]
expected: FAIL
[height length(in) / events]
expected: FAIL
[height percentage(%) / events]
expected: FAIL
[width length(pt) / events]
expected: FAIL
[width length(pc) / events]
expected: FAIL
[width length(px) / events]
expected: FAIL
[width length(em) / events]
expected: FAIL
[width length(ex) / events]
expected: FAIL
[width length(mm) / events]
expected: FAIL
[width length(cm) / events]
expected: FAIL
[width length(in) / events]
expected: FAIL
[width percentage(%) / events]
expected: FAIL
[min-height length(pt) / events]
expected: FAIL
[min-height length(pc) / events]
expected: FAIL
[min-height length(px) / events]
expected: FAIL
[min-height length(em) / events]
expected: FAIL
[min-height length(ex) / events]
expected: FAIL
[min-height length(mm) / events]
expected: FAIL
[min-height length(cm) / events]
expected: FAIL
[min-height length(in) / events]
expected: FAIL
[min-height percentage(%) / events]
expected: FAIL
[min-width length(pt) / events]
expected: FAIL
[min-width length(pc) / events]
expected: FAIL
[min-width length(px) / events]
expected: FAIL
[min-width length(em) / events]
expected: FAIL
[min-width length(ex) / events]
expected: FAIL
[min-width length(mm) / events]
expected: FAIL
[min-width length(cm) / events]
expected: FAIL
[min-width length(in) / events]
expected: FAIL
[min-width percentage(%) / events]
expected: FAIL
[max-height length(pt) / events]
expected: FAIL
[max-height length(pc) / events]
expected: FAIL
[max-height length(px) / events]
expected: FAIL
[max-height length(em) / events]
expected: FAIL

View file

@ -14,6 +14,3 @@
[test some point of the element: bottom right corner]
expected: FAIL
[test the top of layer]
expected: FAIL

View file

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

View file

@ -309,15 +309,21 @@
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: NOTRUN
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript;charset=windows-1252 error text/javascript]
[separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL

View file

@ -5,15 +5,3 @@
[Test javascript URL string return values in direct and indirect (target) frame contexts. 9]
expected: FAIL
[Test javascript URL string return values in direct and indirect (target) frame contexts. 5]
expected: FAIL
[Test javascript URL string return values in direct and indirect (target) frame contexts. 6]
expected: FAIL
[Test javascript URL string return values in direct and indirect (target) frame contexts. 7]
expected: FAIL
[Test javascript URL string return values in direct and indirect (target) frame contexts. 8]
expected: FAIL

View file

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

View file

@ -1,5 +1,4 @@
[supported-elements.html]
expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
@ -10,7 +9,7 @@
expected: FAIL
[Area element should support autofocus]
expected: TIMEOUT
expected: FAIL
[Host element with delegatesFocus should support autofocus]
expected: FAIL

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_escaping-3.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
expected: FAIL

View file

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

View file

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

View file

@ -14,9 +14,6 @@
[input type text: selectionStart a second time (must not fire select)]
expected: FAIL
[input type text: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type search: setRangeText() a second time (must not fire select)]
expected: FAIL
@ -26,39 +23,12 @@
[input type url: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: setSelectionRange() a second time (must not fire select)]
expected: FAIL
[input type url: selectionStart a second time (must not fire select)]
expected: FAIL
[input type password: select() a second time (must not fire select)]
expected: FAIL
[input type password: selectionDirection a second time (must not fire select)]
expected: FAIL
[textarea: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type text: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type text: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type search: selectionStart a second time (must not fire select)]
expected: FAIL
[input type search: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type search: setSelectionRange() a second time (must not fire select)]
expected: FAIL
[input type search: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: select() a second time (must not fire select)]
expected: FAIL
@ -68,9 +38,39 @@
[input type url: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type url: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type password: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type text: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type search: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type search: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type tel: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type tel: setRangeText() a second time (must not fire select)]
expected: FAIL
[input type tel: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type url: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type url: setRangeText() a second time (must not fire select)]
expected: FAIL
[input type password: selectionStart a second time (must not fire select)]
expected: FAIL
[input type password: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL

View file

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

View file

@ -650,3 +650,15 @@
[X SNR (40.857403325561265 dB) is not greater than or equal to 65.737. Got 40.857403325561265.]
expected: FAIL
[X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[15240\]\t3.2010779250413179e-5\t3.3531737327575684e-1\t3.3528536249650642e-1\t9.9990453587615313e-1\t9.0957000000000003e-5\n\t[15241\]\t4.5781822127956099e-41\t3.9367997646331787e-1\t3.9367997646331787e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 3.9367997646331787e-1 at index of 15241.\n\tMax RelError of 1.0000000000000000e+0 at index of 15241.\n]
expected: FAIL
[X SNR (49.16246869313734 dB) is not greater than or equal to 85.58. Got 49.16246869313734.]
expected: FAIL
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[7189\]\t3.3559179428266361e-5\t-9.8956179618835449e-1\t9.8959535536778276e-1\t1.0000339131720297e+0\t3.8985999999999999e-3\n\t[7190\]\t-8.8409073650836945e-2\t-9.9664616584777832e-1\t9.0823709219694138e-1\t9.1129341918891205e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.8959535536778276e-1 at index of 7189.\n\tMax RelError of 1.0000339131720297e+0 at index of 7189.\n]
expected: FAIL
[X SNR (40.857243958094884 dB) is not greater than or equal to 65.737. Got 40.857243958094884.]
expected: FAIL

View file

@ -1,4 +1,5 @@
[audiocontext-not-fully-active.html]
expected: TIMEOUT
[frame in navigated remote-site frame]
expected: FAIL

View file

@ -5,3 +5,6 @@
[test_no_browsing_context]
expected: ERROR
[test_null_response_value]
expected: ERROR

View file

@ -2,6 +2,3 @@
[test_element_in_object]
expected: FAIL
[test_element_in_collection]
expected: FAIL

View file

@ -0,0 +1,7 @@
[json_serialize_windowproxy.py]
[test_window_open]
expected: ERROR
[test_frame]
expected: ERROR

View file

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

View file

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

View file

@ -316,6 +316,15 @@
]
]
},
"css-lists": {
"list-marker-position-crash.html": [
"06ae5fa45bd06f5df306d96a665d6c7653c4dff0",
[
null,
{}
]
]
},
"css-multicol": {
"abspos-in-multicol-with-spanner-crash.html": [
"c30a19d001b530c304def61e1e6d55dc0f6b0318",
@ -128863,6 +128872,32 @@
{}
]
],
"transform-006.html": [
"eb0500318bfb9a75bdbab1b4d64d0c4770590850",
[
null,
[
[
"/css/css-break/transform-006-ref.html",
"=="
]
],
{}
]
],
"transform-007.html": [
"22b8276f28b4bebb7d4a7279b4187eb3f3f439e2",
[
null,
[
[
"/css/css-break/transform-007-ref.html",
"=="
]
],
{}
]
],
"widows-001.html": [
"eb453ee64d8cfa1bcee456d614b64a3d67be122e",
[
@ -190792,6 +190827,71 @@
],
{}
]
],
"background-image-column.html": [
"c795aac5ea79db26b449bfcf8bce2b56b00d380e",
[
null,
[
[
"/css/css-tables/tentative/paint/background-image-column-ref.html",
"=="
]
],
{}
]
],
"background-image-row-collapsed.html": [
"c70c6abd9227f32ff56aaf141e484f4ca73e30c1",
[
null,
[
[
"/css/css-tables/tentative/paint/background-image-row-collapsed-ref.html",
"=="
]
],
{}
]
],
"background-image-row.html": [
"69105e6937a766e8d05518936f9dfbc527dbd60c",
[
null,
[
[
"/css/css-tables/tentative/paint/background-image-row-ref.html",
"=="
]
],
{}
]
],
"collapsed-border-large-cell.html": [
"60e1390b7b807cb94954b6fc39a89c946f03a686",
[
null,
[
[
"/css/css-tables/tentative/paint/collapsed-border-large-cell-ref.html",
"=="
]
],
{}
]
],
"overflow-hidden-table.html": [
"dc252b1652d57bd4bdfdc0d7edea7f0b1d8b1c93",
[
null,
[
[
"/css/css-tables/tentative/paint/overflow-hidden-table-ref.html",
"=="
]
],
{}
]
]
}
},
@ -286008,6 +286108,14 @@
"prefetch-header-allowed.html.headers": [
"2b1d42a8d16c04cf339366b05262c27516e4196c",
[]
],
"prefetch-header-blocked-by-default.html.headers": [
"6d19ed181eeb513622eab41dcd8f94967338b387",
[]
],
"prefetch-header-blocked.html.headers": [
"732f62d58a5989786ec98d1c14eb4d54574a8d93",
[]
]
},
"reporting": {
@ -286608,7 +286716,7 @@
[]
],
"prefetch-helper.js": [
"db6d87593df17e93c3672a65141d46b0ec89bdb7",
"4beae888593395c4cfdc4d1d1fcbc920f1233edd",
[]
],
"prefetch-subresource.css": [
@ -307256,6 +307364,14 @@
"relpos-inline-ref.html": [
"8c19f1cf4c6c0173b45face28d624368d365ec70",
[]
],
"transform-006-ref.html": [
"ffb859017da98baed10da8099979a069b34710cb",
[]
],
"transform-007-ref.html": [
"50599b119a7f0ab5246389de57c439e086b8797d",
[]
]
},
"css-cascade": {
@ -324381,7 +324497,7 @@
[]
],
"common.js": [
"038ef07a6d92af585101c864cdd048cffb68f3bc",
"7b91100b7719a15cdf430117525a7fd1ae984d13",
[]
],
"scroll-target-align-001-iframe.html": [
@ -326112,6 +326228,26 @@
"background-image-column-collapsed-ref.html": [
"b3b1ce9ff37d19c2d43851399d22f299cb1608cf",
[]
],
"background-image-column-ref.html": [
"5b04f0074c39159f34718a1850fd527f6a18243d",
[]
],
"background-image-row-collapsed-ref.html": [
"8ab0992e0896fdd92575fff328376e1ac6ae7d1c",
[]
],
"background-image-row-ref.html": [
"1150a63e17995cf5094cb577892b3ef7f8653971",
[]
],
"collapsed-border-large-cell-ref.html": [
"40d80cac48568e922b84106360409f9f2a8c7f87",
[]
],
"overflow-hidden-table-ref.html": [
"fca7b4196cbc9a38ca01fc116e0c758c1a8e041f",
[]
]
},
"support": {
@ -330993,7 +331129,7 @@
[]
],
"properties.js": [
"9ca23450c8d574a20475e4aa737bcaab9335f76d",
"3255261f6c604ee2bdfc3b07f6acd917408cd677",
[]
],
"ruler-h-50%.png": [
@ -337299,10 +337435,6 @@
[]
]
},
"check-for-references.sh": [
"adcc7dd2e7dca8a2c820dcf8e1844667a7333b0b",
[]
],
"counter-styles-3": {
"dependent-builtin-ref.html": [
"a558ce29e6c2b0a2fd13238e9887b0e9bd169938",
@ -337847,14 +337979,6 @@
[]
]
},
"sync-tests-filter": [
"1d487fe3a9826c76846f13f8f574c45c66d5f819",
[]
],
"sync-tests.sh": [
"7e3f087681e99002f3532950716b7ef414e6ddfb",
[]
],
"text-decor-3": {
"ruby-text-decoration-01-ref.html": [
"c1b08d05c3e29b02fc69625fd6884e2edf8fb61b",
@ -357031,7 +357155,7 @@
[]
],
"background-sync.idl": [
"12707e9289a9d785997c87ea64fa145e5bed5d95",
"79a13a617af8aeac14038bd49acfd01bf0bb52d1",
[]
],
"badging.idl": [
@ -357299,7 +357423,7 @@
[]
],
"keyboard-map.idl": [
"8d95d8850582674bf8083b8aef420a46fbc478a7",
"ea7fd5c76a3bfbaed621209f4973e7f7f30dca39",
[]
],
"largest-contentful-paint.idl": [
@ -357932,7 +358056,7 @@
]
},
"lint.ignore": [
"bcf58ea5cfe0f668aef0087a398677f56e05f210",
"5d8db43125e75236420bcb0ce97ee73f6a0033ff",
[]
],
"loading": {
@ -366364,6 +366488,10 @@
"5a3f2eb23590a37b415cfe8c2d647ad57878064c",
[]
],
"type-check-worker.js": [
"1779e2323d92c4c1cf2b5b789932f8e57d860560",
[]
],
"unregister-controller-page.html": [
"18a95ee892b1c9ee7ca597cb2655e6c4504a7912",
[]
@ -376920,7 +377048,7 @@
]
},
"requirements.txt": [
"059f211eae0b77945630fc038292ce854958ee58",
"3f1f243a9a770526f3f97723b1829569233b0d3f",
[]
],
"requirements_android_webview.txt": [
@ -377870,7 +377998,7 @@
[]
],
"test_pipes.py": [
"8b40e1c84ff2a74ac12c7062489eac03ec486fd6",
"904bfb4ee4cc6cae4fb6d350e2da35e8202b1bb5",
[]
],
"test_request.py": [
@ -377933,7 +378061,7 @@
[]
],
"pipes.py": [
"2aa0aaaee8d57889c6b860396853325d5b2406c1",
"6845c33e9855ebda8d277ab05098a5f119a104e3",
[]
],
"ranges.py": [
@ -406885,7 +407013,7 @@
]
],
"document-write-iframe.html": [
"a84e3a37031280ec33ccb98307f422e3ca468744",
"d6ad88ddc93df40894ee27d9a141219d9f1725e8",
[
null,
{}
@ -407515,6 +407643,13 @@
{}
]
],
"prefetch-blocked-by-default.html": [
"0e54de66de541426eb55b1719f9db81bdc3dbabf",
[
null,
{}
]
],
"prefetch-blocked.html": [
"890a65f82cf58b045bffc91fd10f6f7aa91ae185",
[
@ -407529,8 +407664,15 @@
{}
]
],
"prefetch-header-blocked-by-default.html": [
"e43dca76599dd1471634c000a179f7a84dd40760",
[
null,
{}
]
],
"prefetch-header-blocked.html": [
"382c99a80d34ab25b8acc2cfbff2a0d85ac8b9e2",
"a2abef3c17b899ec13973ebd438e2528be31bda7",
[
null,
{}
@ -410577,7 +410719,7 @@
]
],
"fetch.https.html": [
"89050e03afd7f5aab3288be468f2dbf9712cc71d",
"934fc06765c48434e560128f116af013914901c6",
[
null,
{
@ -410603,7 +410745,7 @@
]
],
"form-get-blank.https.html": [
"6fe28c21cc0c3a5912ef3f69e751ba7e936a15c0",
"3b059174d0b9e75c1560bd6775565aa2a17574b9",
[
null,
{
@ -410629,7 +410771,7 @@
]
],
"form-post-blank.https.html": [
"d3cd369ca67a86bcd25c4f5a901e669beb77446c",
"cc37f08dd1fa5396c6303c102c6b1ec6205d168c",
[
null,
{
@ -410683,7 +410825,7 @@
]
],
"img.https.html": [
"bf76216e804a36a063308f691e6e48093ae3186f",
"68603fd39d9c80d1c4033f0bdb6532e65dbf78b6",
[
null,
{
@ -410698,7 +410840,7 @@
]
],
"multiple-samesite-attributes.https.html": [
"312fa2a2cc9adeb251a9dbc061cbf150ae3e2c45",
"f1e52a3aea3b8f48dd215a7a3ab2ad94a60dc933",
[
null,
{
@ -413119,7 +413261,7 @@
]
],
"border-width-interpolation.html": [
"11f92f41652a9f1b167c5a399849d1e1e61c4df7",
"69f117b03ebc872485d299ad815290f48454c4c6",
[
null,
{}
@ -424466,7 +424608,7 @@
],
"input": {
"keyboard.html": [
"2d39e0dd22ccbb24afe67c2b7871b3a1c9c2af78",
"ffb6ef6f308bc75ea0104dbf76d90a82145549a7",
[
null,
{
@ -430596,13 +430738,6 @@
}
]
],
"properties-value-auto-001.html": [
"6c932aa7cd6c9156e943027551a7cbbce3786365",
[
null,
{}
]
],
"properties-value-implicit-001.html": [
"8500436c529707f43349354ee87ef460e2d7d63b",
[
@ -490267,6 +490402,24 @@
}
]
],
"navigate-to-aboutblank.https.html": [
"8e3da11e04d3acac1b2f36e3ee97813373723856",
[
null,
{
"timeout": "long"
}
]
],
"navigate-top-to-aboutblank.https.html": [
"34a75cee57a1f63beeafcd5dd1475d7fda739137",
[
null,
{
"timeout": "long"
}
]
],
"no-https.html": [
"db15d5c676efb6f5761dec52ad56580fdfc1acbf",
[
@ -541084,7 +541237,7 @@
]
],
"registration-schedule-job.https.html": [
"8ac5d49e8c3d352f204f35695bb467fa62eef326",
"25d758ee8f0e26459218c7359faf7d3866b313cf",
[
null,
{
@ -564483,7 +564636,7 @@
]
],
"RTCPeerConnection-iceGatheringState.html": [
"870e6ad72ec356ecefbca68878da731e347ed17c",
"58b1489d9ff9a63ebf28c1e69296a3bc251fc780",
[
null,
{}

View file

@ -248,3 +248,39 @@
[Web Animations: property <border-left-width> from [0px\] to [10px\] at (1) should be [10px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (-0.3) should be [0px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (0) should be [3px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (0.3) should be [9px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (0.6) should be [15px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (1) should be [23px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [initial\] to [23px\] at (1.5) should be [33px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (-0.3) should be [0px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (0) should be [3px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (0.3) should be [9px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (0.6) should be [15px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (1) should be [23px\]]
expected: FAIL
[Web Animations: property <border-left-width> from [unset\] to [23px\] at (1.5) should be [33px\]]
expected: FAIL

View file

@ -53,129 +53,6 @@
[background-position length(px) / events]
expected: FAIL
[background-color color(rgba) / values]
expected: FAIL
[border-top-width length(pt) / values]
expected: FAIL
[border-top-width length(pc) / values]
expected: FAIL
[border-top-width length(px) / values]
expected: FAIL
[border-top-width length(em) / values]
expected: FAIL
[border-top-width length(ex) / values]
expected: FAIL
[border-top-width length(mm) / values]
expected: FAIL
[border-top-width length(cm) / values]
expected: FAIL
[border-top-width length(in) / values]
expected: FAIL
[border-right-width length(pt) / values]
expected: FAIL
[border-right-width length(pc) / values]
expected: FAIL
[border-right-width length(px) / values]
expected: FAIL
[border-right-width length(em) / values]
expected: FAIL
[border-right-width length(ex) / values]
expected: FAIL
[border-right-width length(mm) / values]
expected: FAIL
[border-right-width length(cm) / values]
expected: FAIL
[border-right-width length(in) / values]
expected: FAIL
[border-bottom-width length(pt) / values]
expected: FAIL
[border-bottom-width length(pc) / values]
expected: FAIL
[border-bottom-width length(px) / values]
expected: FAIL
[border-bottom-width length(em) / values]
expected: FAIL
[border-bottom-width length(ex) / values]
expected: FAIL
[border-bottom-width length(mm) / values]
expected: FAIL
[border-bottom-width length(cm) / values]
expected: FAIL
[border-bottom-width length(in) / values]
expected: FAIL
[border-left-width length(pt) / values]
expected: FAIL
[border-left-width length(pc) / values]
expected: FAIL
[border-left-width length(px) / values]
expected: FAIL
[border-left-width length(em) / values]
expected: FAIL
[border-left-width length(ex) / values]
expected: FAIL
[border-left-width length(mm) / values]
expected: FAIL
[border-left-width length(cm) / values]
expected: FAIL
[border-left-width length(in) / values]
expected: FAIL
[border-top-color color(rgba) / values]
expected: FAIL
[border-right-color color(rgba) / values]
expected: FAIL
[border-bottom-color color(rgba) / values]
expected: FAIL
[border-left-color color(rgba) / values]
expected: FAIL
[padding-bottom length(pt) / values]
expected: FAIL
[padding-bottom length(pc) / values]
expected: FAIL
[padding-bottom length(px) / values]
expected: FAIL
[padding-bottom length(em) / values]
expected: FAIL
[padding-bottom length(ex) / values]
expected: FAIL
@ -326,303 +203,3 @@
[margin-right length(mm) / values]
expected: FAIL
[margin-right length(cm) / values]
expected: FAIL
[margin-right length(in) / values]
expected: FAIL
[margin-top length(pt) / values]
expected: FAIL
[margin-top length(pc) / values]
expected: FAIL
[margin-top length(px) / values]
expected: FAIL
[margin-top length(em) / values]
expected: FAIL
[margin-top length(ex) / values]
expected: FAIL
[margin-top length(mm) / values]
expected: FAIL
[margin-top length(cm) / values]
expected: FAIL
[margin-top length(in) / values]
expected: FAIL
[height length(pt) / values]
expected: FAIL
[height length(pc) / values]
expected: FAIL
[height length(px) / values]
expected: FAIL
[height length(em) / values]
expected: FAIL
[height length(ex) / values]
expected: FAIL
[height length(mm) / values]
expected: FAIL
[height length(cm) / values]
expected: FAIL
[height length(in) / values]
expected: FAIL
[height percentage(%) / values]
expected: FAIL
[width length(pt) / values]
expected: FAIL
[width length(pc) / values]
expected: FAIL
[width length(px) / values]
expected: FAIL
[width length(em) / values]
expected: FAIL
[width length(ex) / values]
expected: FAIL
[width length(mm) / values]
expected: FAIL
[width length(cm) / values]
expected: FAIL
[width length(in) / values]
expected: FAIL
[width percentage(%) / values]
expected: FAIL
[min-height length(pt) / values]
expected: FAIL
[min-height length(pc) / values]
expected: FAIL
[min-height length(px) / values]
expected: FAIL
[min-height length(em) / values]
expected: FAIL
[min-height length(ex) / values]
expected: FAIL
[min-height length(mm) / values]
expected: FAIL
[min-height length(cm) / values]
expected: FAIL
[min-height length(in) / values]
expected: FAIL
[min-height percentage(%) / values]
expected: FAIL
[min-width length(pt) / values]
expected: FAIL
[min-width length(pc) / values]
expected: FAIL
[min-width length(px) / values]
expected: FAIL
[min-width length(em) / values]
expected: FAIL
[min-width length(ex) / values]
expected: FAIL
[min-width length(mm) / values]
expected: FAIL
[min-width length(cm) / values]
expected: FAIL
[min-width length(in) / values]
expected: FAIL
[min-width percentage(%) / values]
expected: FAIL
[max-height length(pt) / values]
expected: FAIL
[max-height length(pc) / values]
expected: FAIL
[max-height length(px) / values]
expected: FAIL
[max-height length(em) / values]
expected: FAIL
[max-height length(ex) / values]
expected: FAIL
[max-height length(mm) / values]
expected: FAIL
[max-height length(cm) / values]
expected: FAIL
[max-height length(in) / values]
expected: FAIL
[max-height percentage(%) / values]
expected: FAIL
[max-width length(pt) / values]
expected: FAIL
[max-width length(pc) / values]
expected: FAIL
[max-width length(px) / values]
expected: FAIL
[max-width length(em) / values]
expected: FAIL
[max-width length(ex) / values]
expected: FAIL
[max-width length(mm) / values]
expected: FAIL
[max-width length(cm) / values]
expected: FAIL
[max-width length(in) / values]
expected: FAIL
[max-width percentage(%) / values]
expected: FAIL
[top length(pt) / values]
expected: FAIL
[top length(pc) / values]
expected: FAIL
[top length(px) / values]
expected: FAIL
[top length(em) / values]
expected: FAIL
[top length(ex) / values]
expected: FAIL
[top length(mm) / values]
expected: FAIL
[top length(cm) / values]
expected: FAIL
[top length(in) / values]
expected: FAIL
[top percentage(%) / values]
expected: FAIL
[right length(pt) / values]
expected: FAIL
[right length(pc) / values]
expected: FAIL
[right length(px) / values]
expected: FAIL
[right length(em) / values]
expected: FAIL
[right length(ex) / values]
expected: FAIL
[right length(mm) / values]
expected: FAIL
[right length(cm) / values]
expected: FAIL
[right length(in) / values]
expected: FAIL
[right percentage(%) / values]
expected: FAIL
[bottom length(pt) / values]
expected: FAIL
[bottom length(pc) / values]
expected: FAIL
[bottom length(px) / values]
expected: FAIL
[bottom length(em) / values]
expected: FAIL
[bottom length(ex) / values]
expected: FAIL
[bottom length(mm) / values]
expected: FAIL
[bottom length(cm) / values]
expected: FAIL
[bottom length(in) / values]
expected: FAIL
[bottom percentage(%) / values]
expected: FAIL
[left length(pt) / values]
expected: FAIL
[left length(pc) / values]
expected: FAIL
[left length(px) / values]
expected: FAIL
[left length(em) / values]
expected: FAIL
[left length(ex) / values]
expected: FAIL
[left length(mm) / values]
expected: FAIL
[left length(cm) / values]
expected: FAIL
[left length(in) / values]
expected: FAIL
[left percentage(%) / values]
expected: FAIL

View file

@ -1,85 +0,0 @@
[properties-value-auto-001.html]
[top auto(to) / values]
expected: FAIL
[z-index auto(to) / values]
expected: FAIL
[left auto(to) / values]
expected: FAIL
[margin-bottom auto(from) / values]
expected: FAIL
[margin-bottom auto(to) / values]
expected: FAIL
[right auto(from) / values]
expected: FAIL
[marker-offset auto(to) / events]
expected: FAIL
[height auto(to) / values]
expected: FAIL
[marker-offset auto(from) / events]
expected: FAIL
[margin-top auto(from) / values]
expected: FAIL
[width auto(from) / values]
expected: FAIL
[margin-left auto(from) / values]
expected: FAIL
[margin-right auto(from) / values]
expected: FAIL
[margin-top auto(to) / values]
expected: FAIL
[clip auto(from) / values]
expected: FAIL
[marker-offset auto(to) / values]
expected: FAIL
[bottom auto(to) / values]
expected: FAIL
[marker-offset auto(from) / values]
expected: FAIL
[z-index auto(from) / values]
expected: FAIL
[width auto(to) / values]
expected: FAIL
[height auto(from) / values]
expected: FAIL
[margin-right auto(to) / values]
expected: FAIL
[right auto(to) / values]
expected: FAIL
[margin-left auto(to) / values]
expected: FAIL
[top auto(from) / values]
expected: FAIL
[bottom auto(from) / values]
expected: FAIL
[clip auto(to) / values]
expected: FAIL
[left auto(from) / values]
expected: FAIL

View file

@ -206,156 +206,6 @@
[margin-right length(mm) / events]
expected: FAIL
[color color(rgba) / events]
expected: FAIL
[font-size length(pt) / events]
expected: FAIL
[font-size length(pc) / events]
expected: FAIL
[font-size length(px) / events]
expected: FAIL
[font-size length(em) / events]
expected: FAIL
[font-size length(ex) / events]
expected: FAIL
[font-size length(mm) / events]
expected: FAIL
[font-size length(cm) / events]
expected: FAIL
[font-size length(in) / events]
expected: FAIL
[font-size percentage(%) / events]
expected: FAIL
[font-weight font-weight(keyword) / events]
expected: FAIL
[font-weight font-weight(numeric) / events]
expected: FAIL
[line-height number(integer) / events]
expected: FAIL
[line-height number(decimal) / events]
expected: FAIL
[line-height length(pt) / events]
expected: FAIL
[line-height length(pc) / events]
expected: FAIL
[line-height length(px) / events]
expected: FAIL
[line-height length(em) / events]
expected: FAIL
[line-height length(ex) / events]
expected: FAIL
[line-height length(mm) / events]
expected: FAIL
[line-height length(cm) / events]
expected: FAIL
[line-height length(in) / events]
expected: FAIL
[line-height percentage(%) / events]
expected: FAIL
[letter-spacing length(pt) / events]
expected: FAIL
[letter-spacing length(pc) / events]
expected: FAIL
[letter-spacing length(px) / events]
expected: FAIL
[letter-spacing length(em) / events]
expected: FAIL
[letter-spacing length(ex) / events]
expected: FAIL
[letter-spacing length(mm) / events]
expected: FAIL
[letter-spacing length(cm) / events]
expected: FAIL
[letter-spacing length(in) / events]
expected: FAIL
[word-spacing length(pt) / events]
expected: FAIL
[word-spacing length(pc) / events]
expected: FAIL
[word-spacing length(px) / events]
expected: FAIL
[word-spacing length(em) / events]
expected: FAIL
[word-spacing length(ex) / events]
expected: FAIL
[word-spacing length(mm) / events]
expected: FAIL
[word-spacing length(cm) / events]
expected: FAIL
[word-spacing length(in) / events]
expected: FAIL
[word-spacing percentage(%) / events]
expected: FAIL
[text-indent length(pt) / events]
expected: FAIL
[text-indent length(pc) / events]
expected: FAIL
[text-indent length(px) / events]
expected: FAIL
[text-indent length(em) / events]
expected: FAIL
[text-indent length(ex) / events]
expected: FAIL
[text-indent length(mm) / events]
expected: FAIL
[text-indent length(cm) / events]
expected: FAIL
[text-indent length(in) / events]
expected: FAIL
[text-indent percentage(%) / events]
expected: FAIL
[text-shadow shadow(shadow) / events]
expected: FAIL
[background-color color(rgba) / events]
expected: FAIL
@ -629,153 +479,3 @@
[left percentage(%) / events]
expected: FAIL
[margin-right length(cm) / events]
expected: FAIL
[margin-right length(in) / events]
expected: FAIL
[margin-top length(pt) / events]
expected: FAIL
[margin-top length(pc) / events]
expected: FAIL
[margin-top length(px) / events]
expected: FAIL
[margin-top length(em) / events]
expected: FAIL
[margin-top length(ex) / events]
expected: FAIL
[margin-top length(mm) / events]
expected: FAIL
[margin-top length(cm) / events]
expected: FAIL
[margin-top length(in) / events]
expected: FAIL
[height length(pt) / events]
expected: FAIL
[height length(pc) / events]
expected: FAIL
[height length(px) / events]
expected: FAIL
[height length(em) / events]
expected: FAIL
[height length(ex) / events]
expected: FAIL
[height length(mm) / events]
expected: FAIL
[height length(cm) / events]
expected: FAIL
[height length(in) / events]
expected: FAIL
[height percentage(%) / events]
expected: FAIL
[width length(pt) / events]
expected: FAIL
[width length(pc) / events]
expected: FAIL
[width length(px) / events]
expected: FAIL
[width length(em) / events]
expected: FAIL
[width length(ex) / events]
expected: FAIL
[width length(mm) / events]
expected: FAIL
[width length(cm) / events]
expected: FAIL
[width length(in) / events]
expected: FAIL
[width percentage(%) / events]
expected: FAIL
[min-height length(pt) / events]
expected: FAIL
[min-height length(pc) / events]
expected: FAIL
[min-height length(px) / events]
expected: FAIL
[min-height length(em) / events]
expected: FAIL
[min-height length(ex) / events]
expected: FAIL
[min-height length(mm) / events]
expected: FAIL
[min-height length(cm) / events]
expected: FAIL
[min-height length(in) / events]
expected: FAIL
[min-height percentage(%) / events]
expected: FAIL
[min-width length(pt) / events]
expected: FAIL
[min-width length(pc) / events]
expected: FAIL
[min-width length(px) / events]
expected: FAIL
[min-width length(em) / events]
expected: FAIL
[min-width length(ex) / events]
expected: FAIL
[min-width length(mm) / events]
expected: FAIL
[min-width length(cm) / events]
expected: FAIL
[min-width length(in) / events]
expected: FAIL
[min-width percentage(%) / events]
expected: FAIL
[max-height length(pt) / events]
expected: FAIL
[max-height length(pc) / events]
expected: FAIL
[max-height length(px) / events]
expected: FAIL
[max-height length(em) / events]
expected: FAIL

View file

@ -18,6 +18,3 @@
[test some point of the element: bottom right corner]
expected: FAIL
[test the top of layer]
expected: FAIL

View file

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

View file

@ -309,15 +309,21 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript;charset=windows-1252 error text/javascript]
[separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL

View file

@ -5,15 +5,3 @@
[Test javascript URL string return values in direct and indirect (target) frame contexts. 9]
expected: FAIL
[Test javascript URL string return values in direct and indirect (target) frame contexts. 5]
expected: FAIL
[Test javascript URL string return values in direct and indirect (target) frame contexts. 6]
expected: FAIL
[Test javascript URL string return values in direct and indirect (target) frame contexts. 7]
expected: FAIL
[Test javascript URL string return values in direct and indirect (target) frame contexts. 8]
expected: FAIL

View file

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

View file

@ -1,5 +1,4 @@
[supported-elements.html]
expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
@ -10,7 +9,7 @@
expected: FAIL
[Area element should support autofocus]
expected: TIMEOUT
expected: FAIL
[Host element with delegatesFocus should support autofocus]
expected: FAIL

View file

@ -1,6 +1,5 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
expected: FAIL

View file

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

View file

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

View file

@ -14,9 +14,6 @@
[input type text: selectionStart a second time (must not fire select)]
expected: FAIL
[input type text: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type search: setRangeText() a second time (must not fire select)]
expected: FAIL
@ -26,39 +23,12 @@
[input type url: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: setSelectionRange() a second time (must not fire select)]
expected: FAIL
[input type url: selectionStart a second time (must not fire select)]
expected: FAIL
[input type password: select() a second time (must not fire select)]
expected: FAIL
[input type password: selectionDirection a second time (must not fire select)]
expected: FAIL
[textarea: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type text: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type text: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type search: selectionStart a second time (must not fire select)]
expected: FAIL
[input type search: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type search: setSelectionRange() a second time (must not fire select)]
expected: FAIL
[input type search: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: select() a second time (must not fire select)]
expected: FAIL
@ -68,9 +38,39 @@
[input type url: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type url: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type password: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type text: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type search: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type search: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type tel: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type tel: setRangeText() a second time (must not fire select)]
expected: FAIL
[input type tel: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type url: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type url: setRangeText() a second time (must not fire select)]
expected: FAIL
[input type password: selectionStart a second time (must not fire select)]
expected: FAIL
[input type password: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL

View file

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

View file

@ -878,3 +878,15 @@
[X SNR (40.857403325561265 dB) is not greater than or equal to 65.737. Got 40.857403325561265.]
expected: FAIL
[X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[15240\]\t3.2010779250413179e-5\t3.3531737327575684e-1\t3.3528536249650642e-1\t9.9990453587615313e-1\t9.0957000000000003e-5\n\t[15241\]\t4.5781822127956099e-41\t3.9367997646331787e-1\t3.9367997646331787e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 3.9367997646331787e-1 at index of 15241.\n\tMax RelError of 1.0000000000000000e+0 at index of 15241.\n]
expected: FAIL
[X SNR (49.16246869313734 dB) is not greater than or equal to 85.58. Got 49.16246869313734.]
expected: FAIL
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[7189\]\t3.3559179428266361e-5\t-9.8956179618835449e-1\t9.8959535536778276e-1\t1.0000339131720297e+0\t3.8985999999999999e-3\n\t[7190\]\t-8.8409073650836945e-2\t-9.9664616584777832e-1\t9.0823709219694138e-1\t9.1129341918891205e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.8959535536778276e-1 at index of 7189.\n\tMax RelError of 1.0000339131720297e+0 at index of 7189.\n]
expected: FAIL
[X SNR (40.857243958094884 dB) is not greater than or equal to 65.737. Got 40.857243958094884.]
expected: FAIL

View file

@ -1,4 +1,5 @@
[audiocontext-not-fully-active.html]
expected: TIMEOUT
[frame in navigated remote-site frame]
expected: FAIL

View file

@ -5,3 +5,6 @@
[test_no_top_browsing_context]
expected: ERROR
[test_null_response_value]
expected: ERROR

View file

@ -2,6 +2,3 @@
[test_element_in_object]
expected: FAIL
[test_element_in_collection]
expected: FAIL

View file

@ -1,9 +1,9 @@
[json_serialize_windowproxy.py]
[test_frame]
expected: FAIL
expected: ERROR
[test_window_open]
expected: FAIL
expected: ERROR
[test_initial_window]
expected: FAIL

View file

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

View file

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

View file

@ -3,67 +3,63 @@
<meta http-equiv="Content-Security-Policy" content="img-src 'none'">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<title>document.open() does not change Content Security Policies</title>
</head>
<body>
<script>
var t0 = async_test("Image loaded in srcdoc iframe using document.write is blocked");
var t1 = async_test("Image loaded in normal iframe using document.write is blocked");
var t2 = async_test("Image loaded directly in simple srcdoc iframe is blocked");
window.onmessage = function(e) {
var current_test;
if (e.data.type == "spv0") {
current_test = t0;
} else if (e.data.type == "spv1") {
current_test = t1;
} else if (e.data.type == "spv2") {
current_test = t2;
} else {
t0.step(function() {assert_true(false, "Unexpected message received from child frames")});
t1.step(function() {assert_true(false, "Unexpected message received from child frames")});
t2.step(function() {assert_true(false, "Unexpected message received from child frames")});
}
current_test.step(function() {
assert_equals(e.data.violatedDirective, 'img-src');
current_test.done();
let message_from = (w) => {
return new Promise(resolve => {
let listener = msg => {
if (msg.source != w)
return;
window.removeEventListener('message', listener);
resolve(msg.data);
};
window.addEventListener('message', listener);
});
}
</script>
};
<!--As discovered thanks to crbug.com/920531, there is a bug in CSP where the
CSP is not inherited when using document.open/document.write to edit a
document's contents. -->
<iframe id="frame1" srcdoc=""></iframe>
<!-- This is speculatively correct https://github.com/whatwg/html/issues/4510 -->
<iframe id="frame2" src="/content-security-policy/common/blank.html"></iframe>
<!--<script>
var documentBody = function(should_load) {
let image = should_load ? "pass.png" : "fail.png";
return `
<script>
function loaded() {
window.top.postMessage("loaded", '*');
};
window.addEventListener('securitypolicyviolation', function(e) {
window.top.postMessage({type: 'spv2', violatedDirective: e.violatedDirective}, '*');
window.top.postMessage("blocked", '*');
});
</script>
<img src='/content-security-policy/support/fail.png'>
-->
<iframe srcdoc="<script>window.addEventListener('securitypolicyviolation', function(e) {window.top.postMessage({type: 'spv2', violatedDirective: e.violatedDirective}, '*');});</script><img src='/content-security-policy/support/fail.png'>"></iframe>
<script>
var frames = ['frame1', 'frame2'];
for (var i = 0; i < frames.length; i++) {
var body_text = ['<script>',
' window.addEventListener("securitypolicyviolation", function(e) {',
' window.top.postMessage({type: "spv'+ i + '", violatedDirective: e.violatedDirective}, "*");',
' });',
'</scr' + 'ipt>',
'<img src="/content-security-policy/support/fail.png">'].join('\n');
</scr`+`ipt>
<img src='/content-security-policy/support/${image}' onload='loaded()'>`;
};
promise_test(async () => {
let iframe = document.createElement('iframe');
document.body.appendChild(iframe);
let msg = message_from(iframe.contentWindow);
let doc = iframe.contentWindow.document;
doc.open();
doc.write("<html><body>" + documentBody(false) + "</body></html>");
doc.close();
assert_equals(await msg, "blocked");
}, "document.open() keeps inherited CSPs on empty iframe.");
promise_test(async () => {
let iframe = document.createElement('iframe');
let loaded = new Promise(resolve => iframe.onload = resolve);
iframe.src = "/common/blank.html";
document.body.appendChild(iframe);
await loaded;
let msg = message_from(iframe.contentWindow);
let doc = iframe.contentWindow.document;
doc.open();
doc.write("<html><body>" + documentBody(true) + "</body></html>");
doc.close();
assert_equals(await msg, "loaded");
}, "document.open() does not change delivered CSPs.");
var e = document.getElementById(frames[i]);
var n = e.contentWindow.document;
n.open();
n.write("<html><body>" + body_text + "</body></html>");
n.close();
}
</script>
</body>
</html>

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<!-- Block everything by default, but allow the page's scripts to execute. -->
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline' 'self'">
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src='/content-security-policy/support/testharness-helper.js'></script>
<script src='/content-security-policy/support/prefetch-helper.js'></script>
<script>
async_test(t => {
let url = window.origin + '/content-security-policy/support/fail.png';
let link = document.createElement('link');
link.rel = 'prefetch';
link.href = url;
assert_link_does_not_prefetch(t, link);
}, "`default-src`-blocked prefetch generates report.");
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<!-- Headers:
Content-Security-Policy: default-src 'none'; script-src 'unsafe-inline' 'self'; img-src 'self'; style-src 'self'
Link: </content-security-policy/support/fail.png>;rel=prefetch
-->
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src='/content-security-policy/support/testharness-helper.js'></script>
<script src='/content-security-policy/support/prefetch-helper.js'></script>
<script>
async_test(t => {
let url = window.origin + '/content-security-policy/support/fail.png';
waitUntilCSPEventForURL(t, url)
.then(t.step_func_done(e => {
assert_equals(e.violatedDirective, 'prefetch-src');
// This assert verifies both that the resource wasn't downloaded
// when prefetched via `Link` on both this document itself, and
// on the stylesheet subresource below.
assert_resource_not_downloaded(t, url);
}));
// Load a stylesheet that tries to trigger a prefetch:
let link = document.createElement('link');
link.rel = 'stylesheet';
link.href = '/content-security-policy/support/prefetch-subresource.css';
document.head.appendChild(link);
}, 'Prefetch via `Link` header blocked when allowed by default-src');
</script>
</head>
<body>
</body>
</html>

View file

@ -0,0 +1,2 @@
Content-Security-Policy: default-src 'none'; script-src 'unsafe-inline' 'self'; img-src 'self'; style-src 'self'
Link: </content-security-policy/support/fail.png>;rel=prefetch

View file

@ -1,7 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="prefetch-src 'none'">
<!-- Headers:
Content-Security-Policy: prefetch-src 'none'
Link: </content-security-policy/support/fail.png>;rel=prefetch
-->
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src='/content-security-policy/support/testharness-helper.js'></script>
@ -12,15 +15,19 @@
waitUntilCSPEventForURL(t, url)
.then(t.step_func_done(e => {
assert_equals(e.violatedDirective, 'prefetch-src');
// This assert verifies both that the resource wasn't downloaded
// when prefetched via `Link` on both this document itself, and
// on the stylesheet subresource below.
assert_resource_not_downloaded(t, url);
}));
// Load a stylesheet that tries to trigger a prefetch:
let link = document.createElement('link');
link.rel = 'stylesheet';
link.href = '/content-security-policy/support/prefetch-subresource.css';
document.head.appendChild(link);
}, 'Prefetch via `Link` header succeeds when allowed by prefetch-src');
// Load a stylesheet that tries to trigger a prefetch:
let link = document.createElement('link');
link.rel = 'stylesheet';
link.href = '/content-security-policy/support/prefetch-subresource.css';
document.head.appendChild(link);
}, 'Prefetch via `Link` header blocked when allowed by prefetch-src');
</script>
</head>
<body>

View file

@ -0,0 +1,2 @@
Content-Security-Policy: prefetch-src 'none'
Link: </content-security-policy/support/fail.png>;rel=prefetch

View file

@ -1,10 +1,11 @@
test(t => {
assert_true(document.createElement('link').relList.supports('prefetch'));
}, "Browser supports prefetch.");
test(t => {
assert_true(!!window.PerformanceResourceTiming);
}, "Browser supports performance APIs.");
setup(_ => {
assert_implements_optional(
document.createElement('link').relList.supports('prefetch'),
"Browser supports prefetch.");
assert_implements_optional(
"PerformanceResourceTiming" in window,
"Browser supports performance APIs.");
});
async function waitUntilResourceDownloaded(url) {
await new Promise((resolve, reject) => {

View file

@ -28,12 +28,12 @@
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to same-host fetches are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to same-host fetches are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to same-host fetches are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to same-host fetches are cross-site");
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to subdomain fetches are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to subdomain fetches are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to subdomain fetches are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to subdomain fetches are cross-site");
// Redirect from {same-host,subdomain,cross-site} to cross-site:
create_test(SECURE_CROSS_SITE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_CROSS_SITE_ORIGIN), SameSiteStatus.CROSS_SITE, "Same-host redirecting to cross-site fetches are cross-site");

View file

@ -55,12 +55,12 @@
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to same-host top-level form GETs are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to same-host top-level form GETs are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to same-host top-level form GETs are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.LAX, "Cross-site redirecting to same-host top-level form GETs are laxly same-site");
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to subdomain top-level form GETs are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to subdomain top-level form GETs are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to subdomain top-level form GETs are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.LAX, "Cross-site redirecting to subdomain top-level form GETs are laxly same-site");
// Redirect from {same-host,subdomain,cross-site} to cross-site:
create_test(SECURE_CROSS_SITE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_CROSS_SITE_ORIGIN), SameSiteStatus.LAX, "Same-host redirecting to cross-site top-level form GETs are laxly same-site");

View file

@ -44,12 +44,12 @@
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to same-host top-level form POSTs are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to same-host top-level form POSTs are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to same-host top-level form POSTs are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to same-host top-level form POSTs are cross-site");
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to subdomain top-level form POSTs are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to subdomain top-level form POSTs are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to subdomain top-level form POSTs are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to subdomain top-level form POSTs are cross-site");
// Redirect from {same-host,subdomain,cross-site} to cross-site:
create_test(SECURE_CROSS_SITE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_CROSS_SITE_ORIGIN), SameSiteStatus.CROSS_SITE, "Same-host redirecting to cross-site top-level form POSTs are cross-site");

View file

@ -68,12 +68,12 @@
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to same-host images are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to same-host images are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to same-host images are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to same-host images are cross-site");
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to subdomain images are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to subdomain images are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to subdomain images are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to subdomain images are cross-site");
// Redirect from {same-host,subdomain,cross-site} to cross-site:
create_test(SECURE_CROSS_SITE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_CROSS_SITE_ORIGIN), SameSiteStatus.CROSS_SITE, "Same-host redirecting to cross-site images are cross-site");

View file

@ -89,12 +89,12 @@
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to same-host images are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to same-host images are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to same-host images are strictly same-site");
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to same-host images are cross-site");
// Redirect from {same-host,subdomain,cross-site} to same-host:
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to subdomain images are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to subdomain images are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to subdomain images are strictly same-site");
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to subdomain images are cross-site");
// Redirect from {same-host,subdomain,cross-site} to cross-site:
create_test(SECURE_CROSS_SITE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_CROSS_SITE_ORIGIN), SameSiteStatus.CROSS_SITE, "Same-host redirecting to cross-site images are cross-site");

View file

@ -68,14 +68,14 @@ test_interpolation({
test_interpolation({
property: 'border-left-width',
from: 'initial',
to: '20px',
to: '23px',
}, [
{at: -0.3, expect: '0px'},
{at: 0, expect: '3px'},
{at: 0.3, expect: '8.1px'},
{at: 0.6, expect: '13.2px'},
{at: 1, expect: '20px'},
{at: 1.5, expect: '28.5px'},
{at: 0.3, expect: '9px'},
{at: 0.6, expect: '15px'},
{at: 1, expect: '23px'},
{at: 1.5, expect: '33px'},
]);
test_interpolation({
@ -94,14 +94,14 @@ test_interpolation({
test_interpolation({
property: 'border-left-width',
from: 'unset',
to: '20px',
to: '23px',
}, [
{at: -0.3, expect: '0px'},
{at: 0, expect: '3px'},
{at: 0.3, expect: '8.1px'},
{at: 0.6, expect: '13.2px'},
{at: 1, expect: '20px'},
{at: 1.5, expect: '28.5px'},
{at: 0.3, expect: '9px'},
{at: 0.6, expect: '15px'},
{at: 1, expect: '23px'},
{at: 1.5, expect: '33px'},
]);
test_interpolation({

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
.transformed {
transform: rotate(25deg);
transform-origin: bottom right;
background: hotpink;
}
.child {
margin-left: auto;
width: 50px;
background: lime;
}
.fake-column {
float: left;
width: 100px;
height: 100px;
}
.fake-column:not(:last-child) {
margin-right: 20px;
}
</style>
<div style="width:460px; column-gap:20px; margin-top:50px; height:100px; background:yellow;">
<div class="fake-column">
<div class="transformed" style="margin-top:50px; height:50px;">
<div class="child" style="height:50px;"></div>
</div>
</div>
<div class="fake-column">
<div class="transformed" style="height:100px;">
<div class="child" style="height:100px;"></div>
</div>
</div>
<div class="fake-column">
<div class="transformed" style="height:25px;">
<div class="child" style="height:100px;"></div>
</div>
</div>
<div class="fake-column">
<div class="transformed" style="height:0;">
<div class="child" style="height:50px;"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-break-3/#transforms">
<meta name="assert" content="Test that transform-origin is calculated correctly and individually for each fragment, also when the transform-establishing element is overflowed.">
<link rel="match" href="transform-006-ref.html">
<style>
.transformed {
transform: rotate(25deg);
transform-origin: bottom right;
background: hotpink;
}
.child {
margin-left: auto;
width: 50px;
background: lime;
}
</style>
<div style="columns:4; column-fill:auto; width:460px; column-gap:20px; margin-top:50px; height:100px; background:yellow;">
<div class="transformed" style="margin-top:50px; height:175px;">
<div class="child" style="height:300px;"></div>
</div>
</div>

View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
.transformed {
will-change: transform;
transform: rotate(25deg);
transform-origin: bottom right;
background: hotpink;
}
.child {
margin-left: auto;
width: 50px;
background: lime;
}
.fake-column {
float: left;
width: 100px;
height: 100px;
}
.fake-column:not(:last-child) {
margin-right: 20px;
}
</style>
<div style="width:460px; column-gap:20px; margin-top:50px; height:100px; background:yellow;">
<div class="fake-column">
<div class="transformed" style="margin-top:50px; height:50px;">
<div class="child" style="height:50px;"></div>
</div>
</div>
<div class="fake-column">
<div class="transformed" style="height:100px;">
<div class="child" style="height:100px;"></div>
</div>
</div>
<div class="fake-column">
<div class="transformed" style="height:25px;">
<div class="child" style="height:100px;"></div>
</div>
</div>
<div class="fake-column">
<div class="transformed" style="height:0;">
<div class="child" style="height:50px;"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-break-3/#transforms">
<meta name="assert" content="Test that transform-origin is calculated correctly and individually for each fragment, also when the transform-establishing element is overflowed.">
<link rel="match" href="transform-007-ref.html">
<style>
.transformed {
will-change: transform;
transform: rotate(25deg);
transform-origin: bottom right;
background: hotpink;
}
.child {
margin-left: auto;
width: 50px;
background: lime;
}
</style>
<div style="columns:4; column-fill:auto; width:460px; column-gap:20px; margin-top:50px; height:100px; background:yellow;">
<div class="transformed" style="margin-top:50px; height:175px;">
<div class="child" style="height:300px;"></div>
</div>
</div>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1183869">
<div>
<div style="width: 1000px; display: list-item; float: right;"></div>
<table style="max-height: 0; display: list-item;">
<caption style="display: list-item;">
<button style="padding-top: 6%; display: list-item;">
<big style="float: right;">
<button style="display; list-item;"></button>
</big>
</button>
</caption>
</table>
<h2 style="padding:0 2147483652%; max-height: 0; display: list-item;"></h2>
</div>

View file

@ -35,32 +35,28 @@ promise_test(async t => {
scroller.scrollTo(0, 0);
assert_equals(scroller.scrollTop, 0, "verify test pre-condition");
await keyPress(scroller, "ArrowDown");
await waitForAnimationEnd(scrollTop);
assert_equals(scroller.scrollTop, 400);
await waitForScrollEnd(scroller, scrollTop, 400);
}, "Snaps to bottom-left after pressing ArrowDown");
promise_test(async t => {
scroller.scrollTo(0, 400);
assert_equals(scroller.scrollTop, 400, "verify test pre-condition");
await keyPress(scroller, "ArrowUp");
await waitForAnimationEnd(scrollTop);
assert_equals(scroller.scrollTop, 0);
await waitForScrollEnd(scroller, scrollTop, 0);
}, "Snaps to top-left after pressing ArrowUp");
promise_test(async t => {
scroller.scrollTo(0, 0);
assert_equals(scroller.scrollTop, 0, "verify test pre-condition");
await keyPress(scroller, "ArrowRight");
await waitForAnimationEnd(scrollLeft);
assert_equals(scroller.scrollLeft, 400);
await waitForScrollEnd(scroller, scrollLeft, 400);
}, "Snaps to top-right after pressing ArrowRight");
promise_test(async t => {
scroller.scrollTo(400, 0);
assert_equals(scroller.scrollLeft, 400, "verify test pre-condition");
await keyPress(scroller, "ArrowLeft");
await waitForAnimationEnd(scrollLeft);
assert_equals(scroller.scrollLeft, 0);
await waitForScrollEnd(scroller, scrollLeft, 0);
}, "Snaps to top-left after pressing ArrowLeft");
promise_test(async t => {
@ -76,7 +72,9 @@ promise_test(async t => {
topRight.style.left = "500px";
scroller.scrollTo(0, 0);
assert_equals(scroller.scrollLeft, 0, "verify test pre-condition");
const scrollPromise = waitForScrollEvent(scroller);
await keyPress(scroller, "ArrowRight");
await scrollPromise;
await waitForAnimationEnd(scrollLeft);
assert_between_exclusive(scroller.scrollLeft, 0, 500);
}, "If the original intended offset is valid as making a snap area cover the"
@ -96,8 +94,7 @@ promise_test(async t => {
scroller.scrollTo(0, 0);
assert_equals(scroller.scrollLeft, 0, "verify test pre-condition");
await keyPress(scroller, "ArrowRight");
await waitForAnimationEnd(scrollLeft);
assert_equals(scroller.scrollLeft, 20);
await waitForScrollEnd(scroller, scrollLeft, 20);
}, "If the original intended offset is valid as making a snap area cover the "
+ "snapport, but there's a defined snap offset in between, use the defined snap"
+ " offset.");
@ -105,8 +102,7 @@ promise_test(async t => {
promise_test(async t => {
scroller.scrollTo(400, 0);
await keyPress(scroller, "ArrowRight");
await waitForAnimationEnd(scrollLeft);
assert_equals(scroller.scrollLeft, 400);
await waitForScrollEnd(scroller, scrollLeft, 400);
}, "If there is no valid snap offset on the arrow key's direction other than "
+ "the current offset, and the scroll-snap-type is mandatory, stay at the "
+ "current offset.");
@ -119,10 +115,12 @@ promise_test(async t => {
scroller.style.scrollSnapType = "both proximity";
scroller.scrollTo(400, 0);
assert_equals(scroller.scrollLeft, 400, "verify test pre-condition");
const scrollPromise = waitForScrollEvent(scroller);
await keyPress(scroller, "ArrowRight");
await scrollPromise;
await waitForAnimationEnd(scrollLeft);
assert_greater_than(scroller.scrollLeft, 400);
}, "If there is no valid snap offset on the arrow key's direction other than "
+ "the current offset, and the scroll-snap-type is proximity, go to the "
+ "original intended offset");
</script>
</script>

View file

@ -55,3 +55,28 @@ function waitForAnimationEnd(getValue) {
});
}
function waitForScrollEvent(eventTarget) {
return new Promise((resolve, reject) => {
const scrollListener = () => {
eventTarget.removeEventListener('scroll', scrollListener);
resolve();
};
eventTarget.addEventListener('scroll', scrollListener);
});
}
function waitForScrollEnd(eventTarget, getValue, targetValue) {
return new Promise((resolve, reject) => {
const scrollListener = () => {
if (getValue() == targetValue) {
eventTarget.removeEventListener('scroll', scrollListener);
resolve();
}
};
if (getValue() == targetValue)
resolve();
else
eventTarget.addEventListener('scroll', scrollListener);
});
}

View file

@ -0,0 +1,44 @@
<!doctype html>
<style>
body {
--peek: LightGreen;
}
.bg {
background-color: var(--peek);
background-image: linear-gradient(45deg, orange 0px, orange 10px, gainsboro 3px, gainsboro 25%, rgba(160,160,160,0.5) 25%, rgba(160,160,160,0.5) 50%, silver 50%, silver 75%, darkgray 75%, darkgray 220px, blue 220px);
background-repeat: no-repeat;
background-size: 50px 230px;
}
main * {
box-sizing: border-box;
}
.td {
width: 50px;
height: 50px;
position:absolute;
border: 4px solid black;
}
</style>
<main>
<div style="position: relative;border: 10px solid yellow; width:290px; height: 290px">
<!-- row 1 -->
<div class="td bg" style="top:20px;left:20px;height:230px"></div>
<div class="td bg" style="top:20px;left:80px;"></div>
<div class="td" style="top:20px; left: 140px;"></div>
<div class="td" style="top:20px; left: 200px;"></div>
<!-- row 2
additional -4 offsets on background-position are for borders.
columns do not have borders.
-->
<div class="td bg" style="top:80px;left:80px;width:110px;height:110px;background-position-y:-64px;background-position-x:-4px"></div>
<div class="td" style="top:80px; left: 200px;"></div>
<!-- row 3 -->
<div class="td" style="top:140px; left: 200px;"></div>
<!-- row 4 -->
<div class="td bg" style="top:200px;left:80px;background-position-y:-180px"></div>
<div class="td" style="top:200px; left: 140px;"></div>
<div class="td" style="top:200px; left: 200px;"></div>
</div>
</main>

View file

@ -0,0 +1,56 @@
<!DOCTYPE html>
<title>Table column background image geometry</title>
<link rel="author" title="Aleks Totic" href="atotic@chromium.org" />
<link rel="help" href="https://www.w3.org/TR/css-tables-3/#drawing-backgrounds-and-borders" />
<link rel="match" href="background-image-column-ref.html" />
<meta name="assert" content="Column backgrounds get painted into cells with correct geometry.">
<style>
body {
--peek: LightGreen;
}
.bg {
background-color: var(--peek);
background-image: linear-gradient(45deg, orange 0px, orange 10px, gainsboro 3px, gainsboro 25%, rgba(160,160,160,0.5) 25%, rgba(160,160,160,0.5) 50%, silver 50%, silver 75%, darkgray 75%, darkgray 220px, blue 220px);
background-repeat: no-repeat;
}
main * {
box-sizing: border-box;
}
main table {
border-spacing: 10px;
border: 10px solid yellow;
padding: 10px;
}
main td {
width: 50px;
height: 50px;
padding: 0px;
border: 4px solid black;
}
</style>
<body>
<main>
<table>
<col class="bg">
<col class="bg">
<tr>
<td rowspan=4></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td rowspan=2 colspan=2></td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</main>
</body>

View file

@ -0,0 +1,60 @@
<!doctype html>
<style>
body {
--peek: LightGreen;
--border: transparent;
margin:0;
}
.bg {
background-color: var(--peek);
background-image: linear-gradient(45deg, orange 0px, orange 5px, gainsboro 3px, gainsboro 25%, rgba(160,160,160,0.5) 25%, rgba(160,160,160,0.5) 50%, silver 50%, silver 75%, darkgray 75%, darkgray 99%, blue 99%);
background-size: 200px 50px;
background-repeat: no-repeat; /* FF defaults to no-repeat, Chrome to repeat */
}
main > * {
box-sizing: border-box;
}
.table {
width: 200px;
position: relative;
margin-top: 5px;
margin-left:5px;
}
.row {
width: 200px;
height: 50px;
}
.cell {
width: 50px;
height: 50px;
display: inline-block;
vertical-align: top;
}
.bigsquarecell {
width: 100px;
height: 100px;
display: inline-block;
vertical-align: top;
background-position-x: -50px;
}
.c2 {
background-position-x: -50px
}
.c3 {
background-position-x: -100px;
}
.c4 {
background-position-x: -150px;
}
.bottomrow > .cell {
margin-top: 5px;
}
</style>
<main>
<div class="table">
<div class="row bg"></div>
<div><div class="cell firstcell bg"></div><div class="bigsquarecell bg"></div><div class="cell c4 bg"></div></div>
<div class="row bg"></div>
<div style="position:absolute;top:-5px;left:-5px;bottom:-5px;right:-5px;border: 10px solid var(--border)"></div>
</div>
</main>

View file

@ -0,0 +1,53 @@
<!DOCTYPE html>
<title>Collapsed table row background image geometry</title>
<link rel="author" title="Aleks Totic" href="atotic@chromium.org" />
<link rel="help" href="https://www.w3.org/TR/css-tables-3/#drawing-backgrounds-and-borders" />
<link rel="match" href="background-image-row-collapsed-ref.html" />
<style>
body {
--peek: LightGreen;
--border: transparent;
margin:0;
}
.bg {
background-color: var(--peek);
background-image: linear-gradient(45deg, orange 0px, orange 5px, gainsboro 3px, gainsboro 25%, rgba(160,160,160,0.5) 25%, rgba(160,160,160,0.5) 50%, silver 50%, silver 75%, darkgray 75%, darkgray 99%, blue 99%);
background-repeat: no-repeat;
}
main * {
box-sizing: border-box;
}
main table {
border: 10px solid var(--border);
border-collapse: collapse;
}
main td {
width: 50px;
height: 50px;
padding: 0px;
}
</style>
<body>
<main>
<table>
<tr class="bg">
<td colspan=4></td>
</tr>
<tr class="bg">
<td></td>
<td rowspan=2 colspan=2></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr class="bg">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</main>
</body>

View file

@ -0,0 +1,68 @@
<!doctype html>
<style>
body {
--peek: LightGreen;
}
.bg {
background-color: var(--peek);
background-image: linear-gradient(45deg, orange 0px, orange 5px, gainsboro 3px, gainsboro 25%, rgba(160,160,160,0.5) 25%, rgba(160,160,160,0.5) 50%, silver 50%, silver 75%, darkgray 75%, darkgray 99%, blue 99%);
background-size: 230px 50px;
background-repeat: no-repeat; /* FF defaults to no-repeat, Chrome to repeat */
}
main > * {
box-sizing: border-box;
}
.table {
border: 10px solid yellow;
padding: 10px;
width: 290px;
}
.row {
margin-left: 10px;
margin-top: 10px;
width: 230px;
height: 50px;
}
.cell {
margin: 10px;
margin-right: 5px;
margin-left: 5px;
width: 50px;
height: 50px;
display: inline-block;
vertical-align: top;
}
.firstcell {
margin-left: 10px;
}
.bigsquarecell {
margin:10px;
margin-left: 5px;
margin-right: 5px;
margin-bottom: 5px;
width: 110px;
height: 110px;
display: inline-block;
vertical-align: top;
background-position-x: -60px;
}
.c2 {
background-position-x: -60px
}
.c3 {
background-position-x: -120px;
}
.c4 {
background-position-x: -180px;
}
.bottomrow > .cell {
margin-top: 5px;
}
</style>
<main>
<div class="table">
<div class="row bg"></div>
<div><div class="cell firstcell bg"></div><div class="bigsquarecell bg"></div><div class="cell c4 bg"></div></div>
<div class="bottomrow"><div class="cell firstcell bg"></div><div class="cell c2 bg"></div><div class="cell c3 bg"></div><div class="cell c4 bg"></div>
</div>
</main>

View file

@ -0,0 +1,55 @@
<!DOCTYPE html>
<title>Table row background image geometry</title>
<link rel="author" title="Aleks Totic" href="atotic@chromium.org" />
<link rel="help" href="https://www.w3.org/TR/css-tables-3/#drawing-backgrounds-and-borders" />
<link rel="match" href="background-image-row-ref.html" />
<meta name="assert" content="Row backgrounds get painted into cells with correct geometry.">
<style>
body {
--peek: LightGreen;
}
.bg {
background-color: var(--peek);
background-image: linear-gradient(45deg, orange 0px, orange 5px, gainsboro 3px, gainsboro 25%, rgba(160,160,160,0.5) 25%, rgba(160,160,160,0.5) 50%, silver 50%, silver 75%, darkgray 75%, darkgray 99%, blue 99%);
background-size: 230px 50px;
background-repeat: no-repeat;
/* FF sometimes defaults to no-repeat for background images */
}
main > * {
box-sizing: border-box;
}
main table {
border-spacing: 10px;
border: 10px solid yellow;
padding: 10px;
}
main td {
width: 50px;
height: 50px;
padding: 0px;
}
</style>
<body>
<main>
<table>
<tr class="bg">
<td colspan=4></td>
</tr>
<tr class="bg">
<td></td>
<td rowspan=2 colspan=2></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr class="bg">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</main>
</body>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<style>
body {
--bluetrans: rgba(0,0,255,0.5);
--yellowtrans: rgba(255,255, 0, 0.5);
--orangetrans: rgba(255,165,0,0.5);
--greentrans: rgba(0,255,0, 0.5);
}
body * {
box-sizing: border-box;
}
#container > * {
position:absolute;
}
</style>
<div id="container" style="position:relative;width:200px;height:200px">
<!-- blues -->
<div style="width:56px;height:150px;background:var(--bluetrans);border: 6px solid blue;border-bottom:none;"></div>
<div style="width:56px;height:56px;top:150px;background:var(--bluetrans);border-left: 6px solid blue;border-bottom:6px solid blue;"></div>
<!-- green -->
<div style="width:94px;height:55px;top:51px;left:56px;background:var(--greentrans);border-top:4px solid green;"></div>
<div style="width:99px;height:44px;top:106px;left:56px;
background:var(--greentrans);border-right:4px solid green;"></div>
<!-- yellow -->
<div style="width:56px;height:56px;top:50px;left:150px;background:var(--yellowtrans);border:6px solid yellow"></div>
<!-- orange -->
<div style="width:156px;height:56px;top:150px;left:50px;background:var(--orangetrans);border: 6px solid orange"></div>
<!-- transparent -->
<div style="width:48px;height:49px;top:2px;left:56px;border-top: 2px solid black;border-right:2px solid black"></div>
<div style="width:50px;height:48px;top:2px;left:104px;border-top: 2px solid black;border-right:2px solid black"></div>
<div style="width:50px;height:48px;top:2px;left:154px;border-top: 2px solid black;border-right:2px solid black"></div>
<div style="width:50px;height:44px;top:106px;left:154px;border-right:2px solid black"></div>
</div>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<title>Collapsed borders of large cells</title>
<link rel="author" title="Aleks Totic" href="atotic@chromium.org" />
<link rel="help" href="https://www.w3.org/TR/css-tables-3/#drawing-backgrounds-and-borders" />
<link rel="match" href="collapsed-border-large-cell-ref.html" />
<meta name="assert" content="Collapsed borders of large cells can collapse a single edge.">
<style>
main * {
box-sizing: border-box;
}
main table {
border-collapse: collapse;
}
main td {
padding:0px;
width: 50px;
height:50px;
border: 2px solid black;
}
</style>
<main>
<table>
<colgroup style="border:6px solid blue;background:rgba(0,0,255,0.5);"></colgroup>
<tr>
<td rowspan=4></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td rowspan=2 colspan=2 style="border:4px solid green; background: rgba(0,255,0, 0.5);"></td>
<td style="border: 6px solid yellow;background:rgba(255,255, 0, 0.5)"></td>
</tr>
<td></td>
<tr>
<td colspan=3 style="border:6px solid orange;background:rgba(255,165,0,0.5)"></td>
</tr>
</table>
</main>

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<style>
main * {
box-sizing: border-box;
}
main .table {
overflow: hidden;
border: 20px solid green;
width:90px;
}
main .caption {
height: 30px;
background: lightblue;
width:90px;
text-align: center;
}
main .cell {
padding:0px;
width: 50px;
height:50px;
}
</style>
<main>
<div class="table">
<div class="cell">
<div style="width:50px;height:50px">
<div style="width:500px;height:500px;background:pink"></div>
</div>
</div>
</div>
<div class="caption" style="caption-side:bottom">caption</caption>
</main>

View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<title>Overflow hidden and captions</title>
<link rel="author" title="Aleks Totic" href="atotic@chromium.org" />
<link rel="help" href="https://www.w3.org/TR/css-tables-3/#global-style-overrides" />
<link rel="match" href="overflow-hidden-table-ref.html" />
<meta name="assert" content="Overflow hidden clips table grid, but not captions.">
<style>
main * {
box-sizing: border-box;
}
main table {
overflow: hidden;
border: 20px solid green;
border-spacing: 0px;
}
main caption {
height: 30px;
background: lightblue;
}
main td {
padding:0px;
width: 50px;
height:50px;
}
</style>
<main>
<table>
<tr>
<td>
<div style="width:50px;height:50px">
<div style="width:500px;height:500px;background:pink"></div>
</div>
</td>
</tr>
<caption style="caption-side:bottom">caption</caption>
</table>
</main>

View file

@ -1,135 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Transitions Test: transitioning property value "auto"</title>
<meta name="assert" content="Test checks that properties are transitioned from an to auto-value">
<link rel="help" title="2. Transitions" href="http://www.w3.org/TR/css3-transitions/#transitions">
<link rel="author" title="Rodney Rehm" href="http://rodneyrehm.de/en/">
<meta name="flags" content="dom ">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
<script src="./support/generalParallelTest.js" type="text/javascript"></script>
<script src="./support/properties.js" type="text/javascript"></script>
<style type="text/css">
#offscreen {
position: absolute;
top: -100000px;
left: -100000px;
width: 100000px;
height: 100000px;
}
</style>
</head>
<body>
<!-- required by testharnessreport.js -->
<div id="log"></div>
<!-- elements used for testing -->
<div id="fixture" class="fixture">
<div class="container">
<div class="transition">Text sample</div>
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// see README.md for an explanation of how this test suite works
// this suite tests properties that haven't been specified at all
// (like background-image and column-rule-width)
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getAutoPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
// or filter using one of:
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '2s';
runParallelAsyncHarness({
// array of test data
tests: tests,
// the number of tests to run in parallel
testsPerSlice: 50,
// milliseconds to wait before calling teardown and ending test
duration: parseFloat(duration) * 1200,
// prepare individual test
setup: function(data, options) {
var styles = {
'.fixture': {},
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
// cleanup after individual test
teardown: generalParallelTest.teardown,
// invoked prior to running a slice of tests
sliceStart: generalParallelTest.sliceStart,
// invoked after running a slice of tests
sliceDone: generalParallelTest.sliceDone,
// test cases, make them as granular as possible
cases: {
// test property values while transitioning
// values.start kicks off a transition
'values': {
// run actual test, assertions can be used here!
start: function(test, data, options) {
// identify initial and target values
generalParallelTest.getStyle(data);
// make sure values differ, if they don't, the property could most likely not be parsed
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
assert_not_equals(current, data.transition.to, "must not be target value after start");
},
done: function(test, data, options) {
// make sure the property's value were neither initial nor target while transitioning
test.step(generalParallelTest.assertIntermediateValuesFunc(data, 'transition'));
}
},
// test TransitionEnd events
'events': {
done: function(test, data, options) {
// make sure there were no events on parent
test.step(generalParallelTest.assertExpectedEventsFunc(data, 'container', ""));
// make sure we got the event for the tested property only
test.step(generalParallelTest.assertExpectedEventsFunc(data, 'transition', addVendorPrefix(data.property) + ":" + duration));
}
}
},
// called once all tests are done
done: generalParallelTest.done
});
</script>
</body>
</html>

View file

@ -90,15 +90,6 @@ var values = {
keyword: ['visible', 'hidden', {discrete: true}]
};
},
'auto': function(property) {
var types = properties[property] || unspecified_properties[property];
var val = values[types[0]](property);
var key = Object.keys(val).shift();
return {
to: [val[key][1], 'auto'],
from: ['auto', val[key][1]]
};
},
// types reqired for non-specified properties
'border-radius': function() {
return {
@ -228,26 +219,6 @@ var properties = {
'z-index': ['integer']
};
/*
* Property to auto-value mapping
* (lazily taken from http://www.siliconbaytraining.com/pages/csspv.html)
*/
var properties_auto = [
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
'height',
'width',
'clip',
'marker-offset',
'top',
'right',
'left',
'bottom',
'z-index'
];
/*
* Property to Type table
* (missing value-types of specified properties)
@ -405,16 +376,6 @@ root.getFontSizeRelativePropertyTests = function() {
return assemble(accepted);
};
root.getAutoPropertyTests = function() {
var accepted = {};
for (var i = 0, key; key = properties_auto[i]; i++) {
accepted[key] = ['auto'];
}
return assemble(accepted);
};
root.filterPropertyTests = function(tests, names) {
var allowed = {};
var accepted = [];

View file

@ -1,27 +0,0 @@
#!/bin/bash
cd "$(dirname "$0")"
find . -name reftest.list | sed 's,/reftest.list$,,' | while read DIRNAME
do
cat "$DIRNAME/reftest.list" | grep -v -e "^defaults" -e "include " | sed 's/ #.*//;s/^#.*//;s/.* == /== /;s/.* != /!= /' | grep -v "^ *$" | while read TYPE TEST REF
do
REFTYPE=""
if [ "$TYPE" == "==" ]
then
REFTYPE="match"
elif [ "$TYPE" == "!=" ]
then
REFTYPE="mismatch"
else
echo "Unexpected type $TYPE for $DIRNAME/$TEST"
fi
if grep "rel=\(\"$REFTYPE\"\|'$REFTYPE'\)" "$DIRNAME/$TEST" | head -1 | grep -q "href=\(\"$REF\"\|'$REF'\)"
then
#echo "Good link for $DIRNAME/$TEST"
echo -n
else
echo "Missing link for $DIRNAME/$TEST"
#echo "<link rel=\"$REFTYPE\" href=\"$REF\">" >> "$DIRNAME/$TEST"
fi
done
done

View file

@ -1,22 +0,0 @@
# This file is an rsync filter. See the "FILTER RULES" section of
# 'man rsync'.
##### Files not to touch at either end.
- /README
##### Files not to write or delete at the destination end
P /sync-tests.sh
P /sync-tests-filter
##### Files not to read at the source end (and thus to delete from the
##### destination end if present).
H /test-template-001.xht
H /references/test-template-001.xht
# css-supports-027 uses @-moz-document, so we don't submit it.
# css-supports-046 tests the equivalent with @media.
H /conditional3/css-supports-027.xht
# css-supports-028 uses @-moz-document, so we don't submit it.
# css-supports-026 tests the equivalent with @media.
H /conditional3/css-supports-028.xht

View file

@ -1,28 +0,0 @@
#!/bin/bash
if [ "x$1" != "x" ]; then
MOZTREE="$1"
else
MOZTREE="$HOME/builds/clean-mozilla-central/mozilla/"
fi
cd "$(dirname "$0")"
if [ "$(git status -s . | wc -l)" != "0" ]
then
echo "Directory not clean" 1>&2
exit 1
fi
if [ -e "$MOZTREE/.git" ]
then
MOZREV="$(cd "$MOZTREE" && git cinnabar git2hg HEAD)"
else
MOZREV="$(cd "$MOZTREE" && hg par --temp='{node}')"
fi
rsync -avz --delete --filter=". ./sync-tests-filter" "$MOZTREE"/layout/reftests/w3c-css/submitted/ ./
sed -i -e 's/^\(\(fails\|needs-focus\|random\|skip\|asserts\|slow\|require-or\|silentfail\|pref\|test-pref\|ref-pref\|fuzzy\)[^ ]* *\?\)\+//;/^defaults /d;s/ \?# \?\(TC: \)\?[bB]ug.*//' $(find . -name reftest.list)
sed -i -e 's/-moz-crisp-edges/pixelated/g' $(find . -regex ".*\.\(xht\|xhtml\|html\|css\)")
git add -A .
git commit -m"Sync Mozilla CSS tests as of https://hg.mozilla.org/mozilla-central/rev/$MOZREV ." -e .

View file

@ -0,0 +1,176 @@
<title>
This tests the inheritance of COOP for navigations to about:blank.
</title>
<meta name=timeout content=long>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="/common/utils.js"></script>
<script src="reporting/resources/dispatcher.js"></script>
<script src="reporting/resources/try-access.js"></script>
<p>Non-initial empty documents (about:blank) should inherit their
cross-origin-opener-policy from the navigation's initiator top level document,
if the initiator and its top level document are same-origin, or default
(unsafe-none) otherwise.
</p>
<ol>
<li>Create the opener popup with a given COOP <code>openerCOOP</code>.</li>
<li>Add iframe to the opener popup that is either same-origin or
cross-origin.
</li>
<li>Opener's iframe opens a new window, to a network document with <code>openeeCOOP</code>.</li>
<li>Opener's iframe navigates the openee popup to about:blank.</li>
</ol>
<script>
const directory = "/html/cross-origin-opener-policy";
const executor_path = directory + "/reporting/resources/executor.html?pipe=";
const same_origin = get_host_info().HTTPS_ORIGIN;
const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
const coop_same_origin_header =
'|header(Cross-Origin-Opener-Policy,same-origin)';
const coop_same_origin_allow_popups_header =
'|header(Cross-Origin-Opener-Policy,same-origin-allow-popups)';
const coop_unsafe_none_header =
'|header(Cross-Origin-Opener-Policy,unsafe-none)';
function navigateToAboutBlankTest(
opener_COOP_header,
iframe_origin,
openee_COOP_header,
openee_origin,
expect_openee_closed
){
return promise_test(async t => {
const this_window_token = token();
const opener_token = token();
const openee_token = token();
const iframe_token = token();
const opener_url = same_origin + executor_path + opener_COOP_header +
`&uuid=${opener_token}`;
const openee_url = openee_origin + executor_path + openee_COOP_header +
`&uuid=${openee_token}`;
const iframe_url = iframe_origin + executor_path + `&uuid=${iframe_token}`;
t.add_cleanup(() => {
send(openee_token, "window.close()");
send(opener_token, "window.close()");
});
// 1. Create the opener window.
let opener_window_proxy = window.open(opener_url, opener_token);
// 2. Create the iframe.
send(opener_token, `
iframe = document.createElement('iframe');
iframe.src = "${iframe_url}";
document.body.appendChild(iframe);
`);
// 3. The iframe opens its openee window.
send(iframe_token, `
window.openee = window.open(
'${openee_url.replace(/,/g, '\\,')}',
"${openee_token}"
);
`);
// 4. Ensure the popup is fully loaded.
send(openee_token, `send("${this_window_token}", "Ack");`);
assert_equals(await receive(this_window_token), "Ack");
// 5. The iframe navigates openee to about:blank.
send(iframe_token, `
window.openee_blank = window.open('about:blank', "${openee_token}");
(async function() {
const timeout = 2000;
const retry_delay = 100;
for(let i = 0; i * retry_delay < timeout; ++i) {
// A try-catch block is used, because of same-origin policy,
// preventing access to the document before committing about:blank.
try {
if (window.openee_blank.closed ||
window.openee_blank.document.location.href == "about:blank") {
send("${this_window_token}", "about:blank loaded");
return;
}
} catch(e) {}
await new Promise(resolve => setTimeout(resolve, retry_delay));
}
send("${this_window_token}", "about:blank not loaded");
})()
`);
assert_equals(await receive(this_window_token), "about:blank loaded");
// 6. Retrieve and check the results.
send(iframe_token, `
send("${this_window_token}", window.openee.closed);
`);
assert_equals(await receive(this_window_token), `${expect_openee_closed}`);
}, `Navigate to about:blank from iframe with opener.top \
COOP: ${opener_COOP_header}, iframe origin: ${iframe_origin}, \
openee COOP: ${openee_COOP_header}, openee origin: ${openee_origin}.`);
};
// iframe same-origin with its top-level embedder:
// initial empty document and about:blank navigations initiated from the
// same-origin iframe will inherit the COOP from the iframe's top-level embedder.
// Since all navigations of openee are within same-origin pages with the
// same COOP value, there are no browsing context group switches.
navigateToAboutBlankTest(
coop_same_origin_header,
same_origin,
coop_same_origin_header,
same_origin,
false
);
// Since all navigations of openee are within same-origin pages with the
// same COOP value, there are no browsing context group switches.
navigateToAboutBlankTest(
coop_same_origin_allow_popups_header,
same_origin,
coop_same_origin_allow_popups_header,
same_origin,
false
);
// The first openee navigation, from initial empty document to
// cross-origin will not switch the browsing context group, thanks to the
// same-origin-allow-popups behavior.
// The second openee navigation, to about:blank, will inherit from the
// iniatiator's, the iframe, top. Navigating from a COOP: unsafe-none page to
// a COOP: same-origin-allow-popups page causes a browsing context group
// switch.
navigateToAboutBlankTest(
coop_same_origin_allow_popups_header,
same_origin,
coop_unsafe_none_header,
cross_origin,
true
);
// iframe cross-origin with its top-level embedder:
// initial empty document and about:blank navigations initiated from the
// cross-origin iframe will default COOP to unsafe-none.
// The navigation from the initial empty document and the cross_origin url
// does not cause a browsing context group switch
// (both have COOP: unsafe-none).
// The navigation from the cross-origin url to about:blank does not cause a
// browsing context group swich, about:blank defaulted its COOP value to
// unsafe-none.
navigateToAboutBlankTest(
coop_same_origin_allow_popups_header,
cross_origin,
coop_unsafe_none_header,
cross_origin,
false
);
</script>

View file

@ -0,0 +1,166 @@
<title>
This tests the inheritance of COOP for navigations of the top document to about:blank.
</title>
<meta name=timeout content=long>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="/common/utils.js"></script>
<script src="reporting/resources/dispatcher.js"></script>
<script src="reporting/resources/try-access.js"></script>
<p>Non-initial empty documents (about:blank) should inherit their
cross-origin-opener-policy from the navigation's initiator top level document,
if the initiator and its top level document are same-origin, or default (to
unsafe-none) otherwise.
</p>
<ol>
<li>Create the opener popup with a given COOP <code>openerCOOP</code>.</li>
<li>Add iframe to the opener popup that is either same-origin or
cross-origin.
</li>
<li>Opener opens a new window, to a network document with the same origin and
COOP value as opener.</li>
<li>Opener's iframe navigates its parent frame (opener) to about:blank.</li>
<li>Verify the openee still has access to its opener.</li>
</ol>
<script>
const directory = "/html/cross-origin-opener-policy";
const executor_path = directory + "/reporting/resources/executor.html?pipe=";
const same_origin = get_host_info().HTTPS_ORIGIN;
const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
const coop_same_origin_header =
'|header(Cross-Origin-Opener-Policy,same-origin)';
const coop_same_origin_allow_popups_header =
'|header(Cross-Origin-Opener-Policy,same-origin-allow-popups)';
const coop_unsafe_none_header =
'|header(Cross-Origin-Opener-Policy,unsafe-none)';
function navigateToAboutBlankTest(
COOP_header,
iframe_origin,
expect_opener_closed
){
return promise_test(async t => {
const this_window_token = token();
const opener_token = token();
const openee_token = token();
const iframe_token = token();
const opener_url = same_origin + executor_path + COOP_header +
`&uuid=${opener_token}`;
const openee_url = same_origin + executor_path + COOP_header +
`&uuid=${openee_token}`;
const iframe_url = iframe_origin + executor_path + `&uuid=${iframe_token}`;
t.add_cleanup(() => {
send(opener_token, "window.close()");
send(openee_token, "window.close()");
});
// 1. Create the opener window.
let opener_window_proxy = window.open(opener_url, opener_token);
// 2. Create the iframe.
// The allow-top-navigation sandbox flags disables the intervention
// requiring a user gesture to navigate top.
send(opener_token, `
iframe = document.createElement('iframe');
iframe.src = "${iframe_url}";
iframe.sandbox = "allow-top-navigation allow-scripts";
document.body.appendChild(iframe);
`);
// 3. The opener opens openee window.
send(opener_token, `
window.openee = window.open(
'${openee_url.replace(/,/g, '\\,')}'
);
`);
// 4. Ensure the popup is fully loaded.
send(openee_token, `send("${this_window_token}", "Ack");`);
assert_equals(await receive(this_window_token), "Ack");
// 5. The iframe navigates its top-level document to about:blank.
send(iframe_token, `
top.location.href = "about:blank";
`);
// 6. Ensure opener is fully loaded and then retrieve the results.
send(openee_token, `
(async function() {
const timeout = 2000;
const retry_delay = 100;
for(let i = 0; i * retry_delay < timeout; ++i) {
// A try-catch block is used, because of same-origin policy,
// which may prevent the access to the opener if its origin changed,
// after a navigation to about:blank from the cross origin iframe.
try {
if (
window.opener === null ||
window.opener.closed ||
window.opener.document.location.href == "about:blank") {
send("${this_window_token}", "about:blank loaded");
return;
}
} catch(e) {
// The exception is thrown when about:blank is loaded and is
// cross-origin with openee.
send("${this_window_token}", "about:blank loaded");
return;
}
await new Promise(resolve => setTimeout(resolve, retry_delay));
}
send("${this_window_token}", "about:blank NOT loaded");
})()
`);
assert_equals(await receive(this_window_token), "about:blank loaded");
// 7. Retrieve and check the results.
send(openee_token, `
send(
"${this_window_token}",
window.opener === null || window.opener.closed);
`);
assert_equals(await receive(this_window_token), `${expect_opener_closed}`);
}, `Navigate top to about:blank from iframe with \
opener COOP: ${COOP_header}, iframe origin: ${iframe_origin}`);
};
// iframe same-origin with its top-level embedder:
// initial empty document and about:blank navigations initiated from the
// same-origin iframe will inherit COOP from the iframe's top-level embedder.
// Opener's navigation to about:blank stays in the same browsing context group.
navigateToAboutBlankTest(
coop_same_origin_header,
same_origin,
false
);
// iframe cross-origin with its top-level embedder:
// initial empty document and about:blank navigations initiated from the
// cross-origin iframe will default COOP to unsafe-none.
// Opener's navigation to about:blank doesn't inherit COOP, leading to a
// browsing context group switch.
navigateToAboutBlankTest(
coop_same_origin_header,
cross_origin,
true
);
// Same origin allow popups allows the navigation of top to the cross-origin
// about:blank (origin inherited from the iframe) page, which does not have COOP
// (initiator is a cross origin iframe).
navigateToAboutBlankTest(
coop_same_origin_allow_popups_header,
cross_origin,
false
);
</script>

View file

@ -9,7 +9,7 @@ partial interface ServiceWorkerRegistration {
[Exposed=(Window,Worker)]
interface SyncManager {
Promise<void> register(DOMString tag);
Promise<undefined> register(DOMString tag);
Promise<sequence<DOMString>> getTags();
};

View file

@ -8,6 +8,7 @@ partial interface Navigator {
[SecureContext, SameObject] readonly attribute Keyboard keyboard;
};
[Exposed=Window]
interface KeyboardLayoutMap {
readonly maplike<DOMString, DOMString>;
};

View file

@ -309,6 +309,8 @@ SET TIMEOUT: feature-policy/experimental-features/resources/focus-without-user-a
SET TIMEOUT: permissions-policy/experimental-features/resources/focus-without-user-activation-iframe-tentative.html
SET TIMEOUT: html/browsers/windows/auxiliary-browsing-contexts/resources/close-opener.html
SET TIMEOUT: html/cross-origin-embedder-policy/resources/reporting-worker.js
SET TIMEOUT: html/cross-origin-opener-policy/navigate-to-aboutblank.https.html
SET TIMEOUT: html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html
SET TIMEOUT: html/cross-origin-opener-policy/reporting/resources/dispatcher.js
SET TIMEOUT: html/dom/documents/dom-tree-accessors/Document.currentScript.html
SET TIMEOUT: html/webappapis/timers/*

View file

@ -5,6 +5,7 @@
<script src="/resources/testharness.js"></script>
<script src="resources/testharness-helpers.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<script>
// Tests for https://w3c.github.io/ServiceWorker/#schedule-job-algorithm
// Non-equivalent register jobs should not be coalesced.
@ -22,14 +23,6 @@ function absolute_url(url) {
return new URL(url, self.location).toString();
}
// A helper that returns the newest worker of the registration. This helps the
// test fail with stable output on browers that incorrectly coalesce
// register jobs, since then sometimes registration.installing is not
// a new worker as expected.
function get_newest_worker(registration) {
return registration.installing || registration.waiting || registration.active;
}
// Test that a change to `script` starts a new register job.
promise_test(async t => {
await cleanup();
@ -72,17 +65,43 @@ promise_test(async t => {
await cleanup();
t.add_cleanup(cleanup);
const scriptForTypeCheck = 'resources/type-check-worker.js';
// Check defaults.
const registration = await
navigator.serviceWorker.register(script1, {scope});
assert_equals(registration.installing.type, 'classic');
navigator.serviceWorker.register(scriptForTypeCheck, {scope});
let worker_type = await new Promise((resolve) => {
navigator.serviceWorker.onmessage = (event) => {
resolve(event.data);
};
// The jobs should not have been coalesced. get_newest_worker() helps the
// test fail with stable output on browers that incorrectly coalesce
// register jobs, since then sometimes registration is not a new worker as
// expected.
const worker = get_newest_worker(registration);
// The argument of postMessage doesn't matter for this case.
worker.postMessage('');
});
assert_equals(worker_type, 'classic');
// Schedule two more register jobs.
navigator.serviceWorker.register(script1, {scope});
await navigator.serviceWorker.register(script1, {scope, type: 'module'});
navigator.serviceWorker.register(scriptForTypeCheck, {scope});
await navigator.serviceWorker.register(scriptForTypeCheck, {scope, type: 'module'});
// The jobs should not have been coalesced.
const worker = get_newest_worker(registration.installing);
assert_equals(worker.type, 'module');
worker_type = await new Promise((resolve) => {
navigator.serviceWorker.onmessage = (event) => {
resolve(event.data);
};
// The jobs should not have been coalesced. get_newest_worker() helps the
// test fail with stable output on browers that incorrectly coalesce
// register jobs, since then sometimes registration is not a new worker as
// expected.
const worker = get_newest_worker(registration);
// The argument of postMessage doesn't matter for this case.
worker.postMessage('');
});
assert_equals(worker_type, 'module');
}, 'different type');
</script>

View file

@ -0,0 +1,10 @@
let type = '';
try {
importScripts('empty.js');
type = 'classic';
} catch (e) {
type = 'module';
}
onmessage = e => {
e.source.postMessage(type);
};

View file

@ -4,7 +4,7 @@ mozlog==7.1.0
mozdebug==0.2
# Pillow 7 requires Python 3
pillow==6.2.2; python_version <= '2.7' # pyup: <7.0
pillow==8.1.1; python_version >= '3.0'
pillow==8.1.2; python_version >= '3.0'
urllib3[secure]==1.26.2
requests==2.25.1
six==1.15.0

View file

@ -224,5 +224,10 @@ class TestPipesWithVariousHandlers(TestUsingServer):
self.assertTrue(b'Content' in resp.read())
self.assertGreater(6, t1-t0)
def test_gzip_handler(self):
resp = self.request("/document.txt", query="pipe=gzip")
self.assertEqual(resp.getcode(), 200)
if __name__ == '__main__':
unittest.main()

View file

@ -7,7 +7,7 @@ import re
import time
import uuid
from io import StringIO
from io import BytesIO
try:
from html import escape
@ -548,7 +548,7 @@ def gzip(request, response):
content = resolve_content(response)
response.headers.set("Content-Encoding", "gzip")
out = StringIO()
out = BytesIO()
with gzip_module.GzipFile(fileobj=out, mode="w") as f:
f.write(content)
response.content = out.getvalue()

View file

@ -11,7 +11,7 @@
// https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html
// The following helper functions are called from RTCPeerConnection-helper.js:
// exchangeOfferAnswer
// exchangeAnswer
// exchangeIceCandidates
// generateAudioReceiveOnlyOffer
@ -52,6 +52,8 @@
*/
test(t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
assert_equals(pc.iceGatheringState, 'new');
}, 'Initial iceGatheringState should be new');
@ -162,7 +164,12 @@
}, 'renegotiation that closes all transports should result in ICE gathering state "new"');
/*
4.4.2. RTCIceGatheringState Enum
4.3.2. RTCIceGatheringState Enum
new
Any of the RTCIceTransports are in the "new" gathering state and none
of the transports are in the "gathering" state, or there are no
transports.
gathering
Any of the RTCIceTransport s are in the gathering state.
@ -179,7 +186,7 @@
indication for this transport has been sent. It will not gather candidates
again until an ICE restart causes it to restart.
*/
async_test(t => {
promise_test(async t => {
const pc1 = new RTCPeerConnection();
t.add_cleanup(() => pc1.close());
const pc2 = new RTCPeerConnection();
@ -193,7 +200,7 @@
const iceTransport = pc2.sctp.transport.iceTransport;
assert_equals(iceTransport.gatheringState, 'gathering',
'Expect ICE transport to be in checking gatheringState when iceGatheringState is checking');
'Expect ICE transport to be in gathering gatheringState when iceGatheringState is gathering');
} else if(iceGatheringState === 'complete') {
const iceTransport = pc2.sctp.transport.iceTransport;
@ -207,17 +214,20 @@
pc1.createDataChannel('test');
assert_equals(pc2.onicegatheringstatechange, null,
'Expect connection to have icegatheringstatechange event');
// Spec bug w3c/webrtc-pc#1382
// Because sctp is only defined when answer is set, we listen
// to pc2 so that we can be confident that sctp is defined
// when icegatheringstatechange event is fired.
pc2.addEventListener('icegatheringstatechange', onIceGatheringStateChange);
exchangeIceCandidates(pc1, pc2);
exchangeOfferAnswer(pc1, pc2);
await pc1.setLocalDescription();
assert_equals(pc1.sctp.transport.iceTransport.gatheringState, 'new');
await pc2.setRemoteDescription(pc1.localDescription);
await exchangeAnswer(pc1, pc2);
}, 'connection with one data channel should eventually have connected connection state');
/*