mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Auto merge of #28084 - servo-wpt-sync:wpt_update_21-01-2021, r=servo-wpt-sync
Sync WPT with upstream (21-01-2021) Automated downstream sync of changes from upstream as of 21-01-2021. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
500cb865bd
87 changed files with 1591 additions and 227 deletions
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-004.html]
|
|
||||||
[Miss float below something else]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-005.html]
|
|
||||||
[Miss clipped float]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[image-orientation-img-object-fit.html]
|
||||||
|
expected: FAIL
|
|
@ -1,4 +0,0 @@
|
||||||
[elementFromPoint-001.html]
|
|
||||||
[CSSOM View - 5 - extensions to the Document interface]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[elementsFromPoint-invalid-cases.html]
|
||||||
|
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -14,3 +14,21 @@
|
||||||
[:state() serialization]
|
[:state() serialization]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo in simple cases]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo serialization]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo parsing passes]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo and :host()]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo and other pseudo classes]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo and ::part()]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -312,12 +312,21 @@
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,3 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript error]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_2.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -147,3 +147,117 @@
|
||||||
[createImageBitmap with CanvasRenderingContext2D image source.]
|
[createImageBitmap with CanvasRenderingContext2D image source.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector HTMLImageElement source and a value of 0 int resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with a vector HTMLImageElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an OffscreenCanvas source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap SVGImageElement source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageData source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap HTMLImageElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with a vector SVGImageElement source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageBitmap source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageBitmap source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap HTMLImageElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageData source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an OffscreenCanvas source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector SVGImageElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a Blob source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement source and a value of 0 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement from a data URL source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with a vector SVGImageElement source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap SVGImageElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a Blob source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a Blob source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector HTMLImageElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement from a data URL source and a value of 0 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageBitmap source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageBitmap source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap SVGImageElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement source and a value of 0 int resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an OffscreenCanvas source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector HTMLImageElement source and a value of 0 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an OffscreenCanvas source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap SVGImageElement source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement from a data URL source and a value of 0 int resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageData source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement from a data URL source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageData source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector SVGImageElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a Blob source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,15 @@
|
||||||
[supported-elements.html]
|
[supported-elements.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[Contenteditable element should support autofocus]
|
[Contenteditable element should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Element with tabindex should support autofocus]
|
[Element with tabindex should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Area element should support autofocus]
|
[Area element should support autofocus]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Host element with delegatesFocus should support autofocus]
|
[Host element with delegatesFocus should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_escaping-1.html]
|
[iframe_sandbox_popups_escaping-1.html]
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-2.html]
|
[iframe_sandbox_popups_nonescaping-2.html]
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -2,75 +2,75 @@
|
||||||
[input type search: setRangeText() a second time (must not fire select)]
|
[input type search: setRangeText() a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: selectionEnd out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: setRangeText() a second time (must not fire select)]
|
[input type url: setRangeText() a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: selectionDirection a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type text: selectionStart a second time (must not fire select)]
|
[input type text: selectionStart a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[textarea: selectionEnd a second time (must not fire select)]
|
[textarea: selectionEnd a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: setSelectionRange() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type url: selectionStart out of range a second time (must not fire select)]
|
[input type url: selectionStart out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type tel: selectionDirection a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type url: select() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type search: selectionDirection a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type text: setRangeText() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type tel: select() 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
|
|
||||||
|
|
||||||
[input type tel: setRangeText() a second time (must not fire select)]
|
[input type tel: setRangeText() a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type search: setSelectionRange() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: setRangeText() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type password: setRangeText() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type password: selectionEnd a second time (must not fire select)]
|
[input type password: selectionEnd a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: selectionDirection a second time (must not fire select)]
|
[input type password: selectionDirection a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: selectionStart a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type password: select() 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 text: selectionEnd a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[textarea: selectionDirection a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type url: selectionEnd 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: setSelectionRange() 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 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 tel: setSelectionRange out of range a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type text: selectionDirection a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type password: selectionStart out of range a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type search: selectionStart a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[script-onerror-insertion-point-2.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[module-delayed.html]
|
||||||
|
[async document.write in a module]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -557,3 +557,9 @@
|
||||||
[X SNR (-192.20062600601898 dB) is not greater than or equal to 65.737. Got -192.20062600601898.]
|
[X SNR (-192.20062600601898 dB) is not greater than or equal to 65.737. Got -192.20062600601898.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[X SNR (-625.6872986351187 dB) is not greater than or equal to 65.737. Got -625.6872986351187.]
|
||||||
|
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[28696\]\t2.8580460955235994e+33\t9.3139332532882690e-1\t2.8580460955235994e+33\t3.0685705145187411e+33\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 2.8580460955235994e+33 at index of 28696.\n\tMax RelError of 3.0685705145187411e+33 at index of 28696.\n]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -152906,6 +152906,45 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"grid-content-distribution-026.html": [
|
||||||
|
"b56d6384379141e9deb8dddae9d59a4beaf3a614",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"grid-content-distribution-027.html": [
|
||||||
|
"f92ed520d0368d905146aae0da6fd66d9a7a082e",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"grid-content-distribution-028.html": [
|
||||||
|
"216b05a4d6c89dbe888caaeeff45818dec1ca537",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"grid-content-distribution-with-collapsed-tracks-001.html": [
|
"grid-content-distribution-with-collapsed-tracks-001.html": [
|
||||||
"ebd169cf5913112ef7c9c1fa02cdb2115ceef605",
|
"ebd169cf5913112ef7c9c1fa02cdb2115ceef605",
|
||||||
[
|
[
|
||||||
|
@ -159172,6 +159211,35 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"image-orientation-img-object-fit.html": [
|
||||||
|
"5551eb938455a3f56e2860c9d2af24dde12e1b98",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-images/image-orientation/reference/image-orientation-img-object-fit-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"fuzzy": [
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
5
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
375
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"image-orientation-list-style-image.html": [
|
"image-orientation-list-style-image.html": [
|
||||||
"ac735626dbd1ec8a0743cf480bddc40d85e93149",
|
"ac735626dbd1ec8a0743cf480bddc40d85e93149",
|
||||||
[
|
[
|
||||||
|
@ -180895,7 +180963,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"intrinsic-size-004.html": [
|
"intrinsic-size-004.html": [
|
||||||
"06fe0e58706059e48dc0c6f966aa9e2d4c59dd96",
|
"fe1a4d7a5deb596600c21eae861999593f115de8",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
[
|
[
|
||||||
|
@ -180972,6 +181040,32 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"intrinsic-size-010.html": [
|
||||||
|
"cf128cabd0507beead7e460844ccb346d7c8ac97",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/reference/ref-filled-green-100px-square.xht",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"intrinsic-size-011.html": [
|
||||||
|
"49bd5cebfd44c1b138ab5f79863d2d315380b8c1",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/reference/ref-filled-green-100px-square.xht",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"percentage-resolution-001.html": [
|
"percentage-resolution-001.html": [
|
||||||
"d606bfc65e340f95fbbc355b764a7de5e7aeb6a1",
|
"d606bfc65e340f95fbbc355b764a7de5e7aeb6a1",
|
||||||
[
|
[
|
||||||
|
@ -181428,7 +181522,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"table-element-001.html": [
|
"table-element-001.html": [
|
||||||
"fd2dcd81dd90c6d82a3652750cea2370979aff7a",
|
"51daf00957ee4a36ea5564831df4ea365233fa90",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
[
|
[
|
||||||
|
@ -183739,6 +183833,23 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"tentative": {
|
||||||
|
"paint": {
|
||||||
|
"background-image-column-collapsed.html": [
|
||||||
|
"6e6ae7a82cfd04c09989dcea682744eb79e982a7",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-tables/tentative/paint/background-image-column-collapsed-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"toggle-row-display-property-001.html": [
|
"toggle-row-display-property-001.html": [
|
||||||
"08e6635e12c42a4201ca955722227010834883e8",
|
"08e6635e12c42a4201ca955722227010834883e8",
|
||||||
[
|
[
|
||||||
|
@ -244472,6 +244583,84 @@
|
||||||
],
|
],
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-42.html": [
|
||||||
|
"9d4cfadcc0b1c018d3e98bee81b208634f47919f",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/forced-colors-mode/forced-colors-mode-42-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-43.html": [
|
||||||
|
"9b8c164908ea02a0693a4714024751fc7e2c1e46",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/forced-colors-mode/forced-colors-mode-43-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-44.html": [
|
||||||
|
"4526e19550e069cdfd2f8f57bec80b0138360554",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/forced-colors-mode/forced-colors-mode-44-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-45.html": [
|
||||||
|
"e667b8291417cfef3545c71d92f27ee5d35f2eee",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/forced-colors-mode/forced-colors-mode-45-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-46.html": [
|
||||||
|
"6fd50a37156a8f361ec4a7466b7cd4c1d4fbd0ca",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/forced-colors-mode/forced-colors-mode-46-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-47.html": [
|
||||||
|
"b5eb912d6bb1c98533b1834d085edef58e31ef84",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/forced-colors-mode/forced-colors-mode-47-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"html": {
|
"html": {
|
||||||
|
@ -251707,6 +251896,19 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"mover-accent-dynamic-change.html": [
|
||||||
|
"7cb0d05035ac7958b71afb5d8e6d0dd279847107",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/mathml/presentation-markup/scripts/mover-accent-dynamic-change-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"subsup-legacy-scriptshift-attributes-001.tentative.html": [
|
"subsup-legacy-scriptshift-attributes-001.tentative.html": [
|
||||||
"532271dbe049cbc12ced9f751a9099ec2a3bd220",
|
"532271dbe049cbc12ced9f751a9099ec2a3bd220",
|
||||||
[
|
[
|
||||||
|
@ -262827,7 +263029,7 @@
|
||||||
],
|
],
|
||||||
"security-features": {
|
"security-features": {
|
||||||
"README.md": [
|
"README.md": [
|
||||||
"fb9a2f108f9faf68bb86f0bd9f848dbd28630ca4",
|
"f957541f75ecc37416895d6bc19d1c229c0f71b8",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"__init__.py": [
|
"__init__.py": [
|
||||||
|
@ -315052,6 +315254,10 @@
|
||||||
"a9e9b3fbe308329defb6ecd6612eb10ff07cba13",
|
"a9e9b3fbe308329defb6ecd6612eb10ff07cba13",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"image-orientation-img-object-fit-ref.html": [
|
||||||
|
"0d84291e8a592395de745f4cec7635de0e381427",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"image-orientation-list-style-image-ref.html": [
|
"image-orientation-list-style-image-ref.html": [
|
||||||
"8dcef6a243927f927f9d6e42709959f265332db9",
|
"8dcef6a243927f927f9d6e42709959f265332db9",
|
||||||
[]
|
[]
|
||||||
|
@ -320603,6 +320809,12 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"tentative": {
|
"tentative": {
|
||||||
|
"paint": {
|
||||||
|
"background-image-column-collapsed-ref.html": [
|
||||||
|
"b3b1ce9ff37d19c2d43851399d22f299cb1608cf",
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
},
|
||||||
"support": {
|
"support": {
|
||||||
"README": [
|
"README": [
|
||||||
"67e87ca8916c94045f6d55238d387d5571fd694a",
|
"67e87ca8916c94045f6d55238d387d5571fd694a",
|
||||||
|
@ -337943,7 +338155,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"window-tests-enumeration.js": [
|
"window-tests-enumeration.js": [
|
||||||
"6b694044640a5ad7fedfd0f221dd6a6881e79a71",
|
"29bb581bd3dacf465966601466c6923025ba3145",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -338799,6 +339011,30 @@
|
||||||
"df6de6eda257ecb027b8d861cfe3cb2a5ab3ccce",
|
"df6de6eda257ecb027b8d861cfe3cb2a5ab3ccce",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"forced-colors-mode-42-ref.html": [
|
||||||
|
"7133c893cea0a1bbd24dace91a5bf7bf342ade44",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-43-ref.html": [
|
||||||
|
"0b98661896f6af563d4eeaf525b74bab09e6bdbc",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-44-ref.html": [
|
||||||
|
"46398de8829733e8c476298689eb1326dff15a36",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-45-ref.html": [
|
||||||
|
"c7d535c5278837fad2216965ec19b2244a392337",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-46-ref.html": [
|
||||||
|
"55259f7f7a5cf0fc24324e29ff5097420d88ca45",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-47-ref.html": [
|
||||||
|
"827cf86b238a33eb71781936927ba1e94d7f8615",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"resources": {
|
"resources": {
|
||||||
"float-image.jpg": [
|
"float-image.jpg": [
|
||||||
"ab06d5f94d16e22bb08fad79d6fef662b2a7de5a",
|
"ab06d5f94d16e22bb08fad79d6fef662b2a7de5a",
|
||||||
|
@ -352240,7 +352476,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"appmanifest.idl": [
|
"appmanifest.idl": [
|
||||||
"8d701371f85e7cc5af9d6c3447d6577b3c746381",
|
"e3117265450c2920212607575c8c1ba27c36596d",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"audio-output.idl": [
|
"audio-output.idl": [
|
||||||
|
@ -353459,6 +353695,10 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"mover-accent-dynamic-change-ref.html": [
|
||||||
|
"a4f16aa07f969e43dee4be45c48f7252e5c109ca",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"subsup-legacy-scriptshift-attributes-001.tentative-ref.html": [
|
"subsup-legacy-scriptshift-attributes-001.tentative-ref.html": [
|
||||||
"c1bf2e46954ee28d260371fb4fb981e9030e3051",
|
"c1bf2e46954ee28d260371fb4fb981e9030e3051",
|
||||||
[]
|
[]
|
||||||
|
@ -363438,7 +363678,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"install_chrome.yml": [
|
"install_chrome.yml": [
|
||||||
"fd650e80aaad309c8e983274d2b823bba91b1fb1",
|
"9ccdc49ba0ee1fa4382cf5e06c98a1498938a339",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"install_edge.yml": [
|
"install_edge.yml": [
|
||||||
|
@ -363446,7 +363686,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"install_firefox.yml": [
|
"install_firefox.yml": [
|
||||||
"de6d0335f221f6d2215ebdc8ef5d2ee269fdfdf3",
|
"7b8c7be05fee9bc6d6db9609a21a71b8cc93b26a",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"install_fonts.yml": [
|
"install_fonts.yml": [
|
||||||
|
@ -363458,7 +363698,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"install_safari.yml": [
|
"install_safari.yml": [
|
||||||
"6c1b562d411a2aeecc30d3fbc1aed6362f3526e5",
|
"1636b8e747432d7f0162879e868016df99d7d256",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"pip_install.yml": [
|
"pip_install.yml": [
|
||||||
|
@ -373378,6 +373618,10 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"resources": {
|
"resources": {
|
||||||
|
"cross-origin-no-cors.har": [
|
||||||
|
"96d0b4e453eab96d8fa1f9be1f6a880adb0f4c7c",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"cross-origin.har": [
|
"cross-origin.har": [
|
||||||
"7435393b13b1f640b0a1911e05456833febf7e8e",
|
"7435393b13b1f640b0a1911e05456833febf7e8e",
|
||||||
[]
|
[]
|
||||||
|
@ -373427,7 +373671,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"generate-test-wbns.sh": [
|
"generate-test-wbns.sh": [
|
||||||
"6683cb0dd84ebb059d26f26bdea5c7f4c05e08fc",
|
"0caef325d1f03846792094e2535c84daf8bf4516",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"location": {
|
"location": {
|
||||||
|
@ -373559,6 +373803,12 @@
|
||||||
"1f9278148313ad4b401a1025b5396a5b9bd60ff3",
|
"1f9278148313ad4b401a1025b5396a5b9bd60ff3",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"no-cors": {
|
||||||
|
"cross-origin.wbn": [
|
||||||
|
"b2adba654513322fde9b3a993ede4ea73ad898f3",
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
},
|
||||||
"path-restriction.wbn": [
|
"path-restriction.wbn": [
|
||||||
"e861469e122afd141bcec8d394a0d4504898208c",
|
"e861469e122afd141bcec8d394a0d4504898208c",
|
||||||
[]
|
[]
|
||||||
|
@ -406407,7 +406657,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"CSS-supports-CSSStyleDeclaration.html": [
|
"CSS-supports-CSSStyleDeclaration.html": [
|
||||||
"fd013b95e8af97da3772fc5b9978c0082c57cdb2",
|
"3a9786c510dedc80cf7a5af143960fbeb7a09371",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -418526,7 +418776,7 @@
|
||||||
],
|
],
|
||||||
"height-distribution": {
|
"height-distribution": {
|
||||||
"computing-row-measure-0.html": [
|
"computing-row-measure-0.html": [
|
||||||
"ba8bf73429ff3a74d3105ad842d15e4d44d403fc",
|
"ebaab2c359d4ddaf0b8179d35ca58b4868ea9f8d",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -430765,7 +431015,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"state-pseudo-class.html": [
|
"state-pseudo-class.html": [
|
||||||
"9a810b6b000c31b9521c205b65002e2c6205bccf",
|
"966dd1c9a79a9f1f2ae910d58afa1f8efa2e1044",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -458678,6 +458928,15 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"font_access-chooser-selection.tentative.manual.https.html": [
|
||||||
|
"73d0e7938efad2b8cb462e67612f9e5505af3693",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"font_access-chooser.tentative.manual.https.html": [
|
"font_access-chooser.tentative.manual.https.html": [
|
||||||
"8f623daa0b86c1af6141fee0cf8a8783559f2b16",
|
"8f623daa0b86c1af6141fee0cf8a8783559f2b16",
|
||||||
[
|
[
|
||||||
|
@ -458765,14 +459024,14 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"forced-colors-mode-40.html": [
|
"forced-colors-mode-40.html": [
|
||||||
"07316bda24610f87d0735a4835f865d176396d0d",
|
"481492d72e917a5b235b1aa55818519232ef32c1",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"forced-colors-mode-41.html": [
|
"forced-colors-mode-41.html": [
|
||||||
"ddb747d08186ede841356867657d8e3941b008a8",
|
"cf2c527be97458a9b6ccebd62b9ad4d703c90ec9",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -466252,7 +466511,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"createImageBitmap-invalid-args.html": [
|
"createImageBitmap-invalid-args.html": [
|
||||||
"3330cfb9189d42e43d79caf9669b5c05d5620379",
|
"74ca9a853e66591b5f043b3e9ea74346f985f7b5",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -503075,7 +503334,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"scriptlevel-001.html": [
|
"scriptlevel-001.html": [
|
||||||
"f91635b73879255422f3df613a40eac1df81f80b",
|
"11ad68d818829e2fe63510560b6d56ff39d833a8",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -512703,6 +512962,15 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"removed-from-document.html": [
|
||||||
|
"2c363a0eec69de8c822415e1c51f796fd5d0cebf",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"request-picture-in-picture-twice.html": [
|
"request-picture-in-picture-twice.html": [
|
||||||
"c1369ee8c3c1df2adf51210ff0031fa2eac14642",
|
"c1369ee8c3c1df2adf51210ff0031fa2eac14642",
|
||||||
[
|
[
|
||||||
|
@ -530368,7 +530636,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"claim-worker-fetch.https.html": [
|
"claim-worker-fetch.https.html": [
|
||||||
"389d001f31e2e9791198029c5e9877de5395e234",
|
"7cb26c742b97d3d768e01ec09adb1ceeca99dc86",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -549582,7 +549850,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"subresource-loading-cross-origin.tentative.html": [
|
"subresource-loading-cross-origin.tentative.html": [
|
||||||
"3991aef2c40ccfa6c82eee09e76e9b42e16c8cf5",
|
"b0072ddb1f6b19f5571b22ef35892ffd1d6db0a7",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-004.html]
|
|
||||||
[Miss float below something else]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-005.html]
|
|
||||||
[Miss clipped float]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[image-orientation-img-object-fit.html]
|
||||||
|
expected: FAIL
|
|
@ -1,4 +0,0 @@
|
||||||
[elementFromPoint-001.html]
|
|
||||||
[CSSOM View - 5 - extensions to the Document interface]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[elementsFromPoint-invalid-cases.html]
|
||||||
|
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -14,3 +14,21 @@
|
||||||
[:state() serialization]
|
[:state() serialization]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo in simple cases]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo serialization]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo parsing passes]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo and :host()]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo and other pseudo classes]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[:--foo and ::part()]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -312,12 +312,21 @@
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,3 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript error]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_2.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -147,3 +147,117 @@
|
||||||
[createImageBitmap with CanvasRenderingContext2D image source.]
|
[createImageBitmap with CanvasRenderingContext2D image source.]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector HTMLImageElement source and a value of 0 int resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with a vector HTMLImageElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an OffscreenCanvas source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap SVGImageElement source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageData source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap HTMLImageElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with a vector SVGImageElement source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageBitmap source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageBitmap source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap HTMLImageElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageData source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an OffscreenCanvas source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector SVGImageElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a Blob source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement source and a value of 0 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement from a data URL source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with a vector SVGImageElement source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap SVGImageElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a Blob source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a Blob source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector HTMLImageElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement from a data URL source and a value of 0 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageBitmap source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageBitmap source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap SVGImageElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement source and a value of 0 int resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an OffscreenCanvas source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector HTMLImageElement source and a value of 0 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an OffscreenCanvas source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a bitmap SVGImageElement source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement from a data URL source and a value of 0 int resizeWidth]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageData source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with an HTMLVideoElement from a data URL source and a value between 0 and 1 in resizeHeight]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[createImageBitmap with an ImageData source and a value of 0 int resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a vector SVGImageElement source and a value between 0 and 1 in resizeWidth]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[createImageBitmap with a Blob source and a value of 0 in resizeHeight]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[supported-elements.html]
|
[supported-elements.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[Contenteditable element should support autofocus]
|
[Contenteditable element should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -7,10 +6,10 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Area element should support autofocus]
|
[Area element should support autofocus]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Host element with delegatesFocus should support autofocus]
|
[Host element with delegatesFocus should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[iframe_sandbox_popups_escaping-1.html]
|
[iframe_sandbox_popups_escaping-1.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-2.html]
|
[iframe_sandbox_popups_nonescaping-2.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -2,75 +2,75 @@
|
||||||
[input type search: setRangeText() a second time (must not fire select)]
|
[input type search: setRangeText() a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: selectionEnd out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: setRangeText() a second time (must not fire select)]
|
[input type url: setRangeText() a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: selectionDirection a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type text: selectionStart a second time (must not fire select)]
|
[input type text: selectionStart a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[textarea: selectionEnd a second time (must not fire select)]
|
[textarea: selectionEnd a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: setSelectionRange() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type url: selectionStart out of range a second time (must not fire select)]
|
[input type url: selectionStart out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type tel: selectionDirection a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type url: select() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type search: selectionDirection a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type text: setRangeText() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type tel: select() 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
|
|
||||||
|
|
||||||
[input type tel: setRangeText() a second time (must not fire select)]
|
[input type tel: setRangeText() a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type search: setSelectionRange() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: setRangeText() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type password: setRangeText() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type password: selectionEnd a second time (must not fire select)]
|
[input type password: selectionEnd a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: selectionDirection a second time (must not fire select)]
|
[input type password: selectionDirection a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: selectionStart a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type password: select() 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 text: selectionEnd a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[textarea: selectionDirection a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type url: selectionEnd 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: setSelectionRange() 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 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 tel: setSelectionRange out of range a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type text: selectionDirection a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type password: selectionStart out of range a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type search: selectionStart a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[script-onerror-insertion-point-2.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[module-delayed.html]
|
||||||
|
[async document.write in a module]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -785,3 +785,9 @@
|
||||||
[X SNR (-192.20062600601898 dB) is not greater than or equal to 65.737. Got -192.20062600601898.]
|
[X SNR (-192.20062600601898 dB) is not greater than or equal to 65.737. Got -192.20062600601898.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[X SNR (-625.6872986351187 dB) is not greater than or equal to 65.737. Got -625.6872986351187.]
|
||||||
|
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[28696\]\t2.8580460955235994e+33\t9.3139332532882690e-1\t2.8580460955235994e+33\t3.0685705145187411e+33\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 2.8580460955235994e+33 at index of 28696.\n\tMax RelError of 3.0685705145187411e+33 at index of 28696.\n]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -278,9 +278,9 @@ The ```excluded_tests``` section have objects with the same format as [Test Expa
|
||||||
|
|
||||||
Taking the spec JSON, the generator follows this algorithm:
|
Taking the spec JSON, the generator follows this algorithm:
|
||||||
|
|
||||||
* Expand all ```excluded_tests``` to create a blacklist of selections
|
* Expand all ```excluded_tests``` to create a denylist of selections
|
||||||
|
|
||||||
* For each `specification` entries: Expand the ```test_expansion``` pattern into selections and check each against the blacklist, if not marked as suppresed, generate the test resources for the selection
|
* For each `specification` entries: Expand the ```test_expansion``` pattern into selections and check each against the denylist, if not marked as suppresed, generate the test resources for the selection
|
||||||
|
|
||||||
### SourceContext Resolution
|
### SourceContext Resolution
|
||||||
|
|
||||||
|
|
|
@ -612,6 +612,7 @@ const properties = [
|
||||||
"shape-rendering",
|
"shape-rendering",
|
||||||
"size",
|
"size",
|
||||||
"speak",
|
"speak",
|
||||||
|
"speak-as",
|
||||||
"src",
|
"src",
|
||||||
"stop-color",
|
"stop-color",
|
||||||
"stop-opacity",
|
"stop-opacity",
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-content-space-evenly">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
|
||||||
|
<meta name="assert" content="The fallback alignment for 'space-evenly' should be 'center'.">
|
||||||
|
<p>Test passes if there is a filled green square.</p>
|
||||||
|
<div style="display: grid; width: 50px; height: 50px; align-content: space-evenly; justify-content: space-evenly;">
|
||||||
|
<div style="width: 100px; height: 100px; background: green; position: relative; top: 25px; left: 25px;"></div>
|
||||||
|
</div>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-content-space-around">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
|
||||||
|
<meta name="assert" content="The fallback alignment for 'space-around' should be 'center'.">
|
||||||
|
<p>Test passes if there is a filled green square.</p>
|
||||||
|
<div style="display: grid; width: 50px; height: 50px; align-content: space-around; justify-content: space-around;">
|
||||||
|
<div style="width: 100px; height: 100px; background: green; position: relative; top: 25px; left: 25px;"></div>
|
||||||
|
</div>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-content-space-between">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
|
||||||
|
<meta name="assert" content="The fallback alignment for 'space-between' should be 'start'.">
|
||||||
|
<p>Test passes if there is a filled green square.</p>
|
||||||
|
<div style="display: grid; width: 50px; height: 50px; align-content: space-between; justify-content: space-between;">
|
||||||
|
<div style="width: 100px; height: 100px; background: green;"></div>
|
||||||
|
</div>
|
|
@ -0,0 +1,45 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Images Module Level 3: image-orientation: from-image</title>
|
||||||
|
<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation">
|
||||||
|
<link rel="match" href="reference/image-orientation-img-object-fit-ref.html">
|
||||||
|
<meta name=fuzzy content="0-5;0-375">
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
overflow: hidden;
|
||||||
|
image-orientation: from-image;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
position: absolute;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.cover {
|
||||||
|
object-fit: cover;
|
||||||
|
top: 10px;
|
||||||
|
}
|
||||||
|
.contain {
|
||||||
|
object-fit: contain;
|
||||||
|
top: 150px;
|
||||||
|
}
|
||||||
|
.wide {
|
||||||
|
width: 100px;
|
||||||
|
height: 50px;
|
||||||
|
left: 10px;
|
||||||
|
}
|
||||||
|
.tall {
|
||||||
|
width: 50px;
|
||||||
|
height: 100px;
|
||||||
|
left: 150px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<img class="cover wide" src="support/exif-orientation-5-lu.jpg"/>
|
||||||
|
<img class="cover tall" src="support/exif-orientation-5-lu.jpg"/>
|
||||||
|
<img class="contain wide" src="support/exif-orientation-5-lu.jpg"/>
|
||||||
|
<img class="contain tall" src="support/exif-orientation-5-lu.jpg"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,43 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Images Module Level 3: image-orientation: from-image</title>
|
||||||
|
<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation">
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
overflow: hidden;
|
||||||
|
image-orientation: from-image;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
position: absolute;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.cover {
|
||||||
|
object-fit: cover;
|
||||||
|
top: 10px;
|
||||||
|
}
|
||||||
|
.contain {
|
||||||
|
object-fit: contain;
|
||||||
|
top: 150px;
|
||||||
|
}
|
||||||
|
.wide {
|
||||||
|
width: 100px;
|
||||||
|
height: 50px;
|
||||||
|
left: 10px;
|
||||||
|
}
|
||||||
|
.tall {
|
||||||
|
width: 50px;
|
||||||
|
height: 100px;
|
||||||
|
left: 150px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<img class="cover wide" src="../support/exif-orientation-5-lu-pre-rotated.jpg"/>
|
||||||
|
<img class="cover tall" src="../support/exif-orientation-5-lu-pre-rotated.jpg"/>
|
||||||
|
<img class="contain wide" src="../support/exif-orientation-5-lu-pre-rotated.jpg"/>
|
||||||
|
<img class="contain tall" src="../support/exif-orientation-5-lu-pre-rotated.jpg"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -2,13 +2,11 @@
|
||||||
<title>CSS aspect-ratio: min-content size keyword</title>
|
<title>CSS aspect-ratio: min-content size keyword</title>
|
||||||
<link rel="author" title="Google LLC" href="https://www.google.com/">
|
<link rel="author" title="Google LLC" href="https://www.google.com/">
|
||||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
|
||||||
|
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5032">
|
||||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
|
||||||
|
|
||||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
|
||||||
<!-- This is still under discussion in https://github.com/w3c/csswg-drafts/issues/5032
|
<div style="height: 50px; width: min-content; aspect-ratio: 2/1; background: green;"></div>
|
||||||
but this testcase tests the likely outcome. -->
|
<!-- min-content in the block axis is treated as auto -->
|
||||||
|
<div style="height: min-content; width: 100px; aspect-ratio: 2/1; background: green;"></div>
|
||||||
<div style="height: 100px; width: min-content; aspect-ratio: 1/1; background: green;"></div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>CSS aspect-ratio: min-content size keyword together with min-size</title>
|
||||||
|
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
|
||||||
|
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5032">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
|
||||||
|
<style>
|
||||||
|
.target {
|
||||||
|
background: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
|
||||||
|
<!-- The tests below are based on the discussion:
|
||||||
|
https://github.com/w3c/csswg-drafts/issues/5032#issuecomment-655637111 -->
|
||||||
|
|
||||||
|
<!-- `min-width:auto` takes the content size into account.
|
||||||
|
`width: min-content` is resolved as 25px (= 25px * 1), and the content size
|
||||||
|
is 100px, so the final width should be max(25px, 100px) = 100px. -->
|
||||||
|
<div class="target" style="height: 25px; width: min-content; min-width: auto; aspect-ratio: 1/1;">
|
||||||
|
<div style="width: 100px;"></div>
|
||||||
|
</div>
|
||||||
|
<!-- `min-width:min-content` doesn't take the content size into account.
|
||||||
|
`width:auto` is resolved as 100px (= 25px * 4), and it shouldn't be
|
||||||
|
floored by the content size (i.e. 150px), so the final width is 100px. -->
|
||||||
|
<div class= "target" style="height: 25px; width: auto; min-width: min-content; aspect-ratio: 4/1;">
|
||||||
|
<div style="width: 150px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- `min-height:auto` takes the content size into account.
|
||||||
|
`height: min-content` is resolved as 10px (= 100px / 10), and the content
|
||||||
|
size is 25px, so the final height should be max(10px, 25px) = 25px. -->
|
||||||
|
<div class="target" style="height: min-content; min-height: auto; width: 100px; aspect-ratio: 10/1;">
|
||||||
|
<div style="height: 25px;"></div>
|
||||||
|
</div>
|
||||||
|
<!-- `min-height:min-content` doesn't take content size into account.
|
||||||
|
`height:auto` is resolved as 25px (= 100px / 4), and it shouldn't be
|
||||||
|
floored by the content size (i.e. 50px), so the final height is 25px. -->
|
||||||
|
<div class="target" style="height: auto; min-height: min-content; width: 100px; aspect-ratio: 4/1;">
|
||||||
|
<div style="height: 50px;"></div>
|
||||||
|
</div>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>CSS aspect-ratio: fit-content size keyword</title>
|
||||||
|
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#valdef-width-fit-content">
|
||||||
|
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5032">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
background: green;
|
||||||
|
aspect-ratio: 2/1;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
|
||||||
|
<div style="height: 50px; width: -moz-fit-content; width: fit-content;"></div>
|
||||||
|
<!-- fit-content in the block axis is treated as auto -->
|
||||||
|
<div style="height: -moz-fit-content; height: fit-content; width: 100px;"></div>
|
|
@ -19,6 +19,7 @@ th, td {
|
||||||
<tr>
|
<tr>
|
||||||
<th style='background: green; width: 100px; aspect-ratio: 1/1;'></th>
|
<th style='background: green; width: 100px; aspect-ratio: 1/1;'></th>
|
||||||
<td style='background: red; height: 50px; aspect-ratio: 4/1;'></td>
|
<td style='background: red; height: 50px; aspect-ratio: 4/1;'></td>
|
||||||
|
<td style='background: red; height: 50px; min-width: min-content; aspect-ratio: 4/1;'></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<!-- aspect-ratio should apply to the table element -->
|
<!-- aspect-ratio should apply to the table element -->
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
[
|
[
|
||||||
"Checking intermediate min-content height for span 1 (2)",
|
"Checking intermediate min-content height for span 1 (2)",
|
||||||
document.getElementById('two').offsetHeight,
|
document.getElementById('two').offsetHeight,
|
||||||
1
|
10
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"Checking intermediate min-content height for span 1 (3)",
|
"Checking intermediate min-content height for span 1 (3)",
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
<!doctype html>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
--peek: LightGreen;
|
||||||
|
}
|
||||||
|
.bg {
|
||||||
|
background-color: var(--peek);
|
||||||
|
background-image: linear-gradient(90deg, 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 170px, blue 170px);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 50px 200px;
|
||||||
|
}
|
||||||
|
main * {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.td {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
position:absolute;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<div style="position: relative;border: 10px solid transparent; width:210px; height: 210px">
|
||||||
|
<div class="td bg" style="top:-5px;left:-5px;height:200px"></div>
|
||||||
|
<div class="td bg" style="top:-5px;left:45px;height:200px"></div>
|
||||||
|
<div class="td" style="background:var(--peek); height:100px; left:95px;top:45px"></div>
|
||||||
|
<div class="td bg" style="top:-5px;left:145px;height:200px;width:100px;background-size: 100px 200px"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
|
@ -0,0 +1,68 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>Table collapsed 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-collapsed-ref.html" />
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
--peek: LightGreen;
|
||||||
|
}
|
||||||
|
.bg {
|
||||||
|
background-color: var(--peek);
|
||||||
|
background-image: linear-gradient(90deg, 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 170px, blue 170px);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
main * {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
main table {
|
||||||
|
border-spacing: 10px;
|
||||||
|
border: 10px solid transparent;
|
||||||
|
padding: 10px;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
main table:hover {
|
||||||
|
border: 10px solid yellow;
|
||||||
|
}
|
||||||
|
main td {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<table>
|
||||||
|
<col class="bg">
|
||||||
|
<col class="bg">
|
||||||
|
<col>
|
||||||
|
<colgroup class="bg" span="2">
|
||||||
|
<tr>
|
||||||
|
<td rowspan=4></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td rowspan=2 colspan=2></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</main>
|
||||||
|
</body>
|
|
@ -5,13 +5,13 @@
|
||||||
#state-and-part::part(inner) {
|
#state-and-part::part(inner) {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
#state-and-part::part(inner):state(innerFoo) {
|
#state-and-part::part(inner):--innerFoo {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
#state-and-part:state(outerFoo)::part(inner) {
|
#state-and-part:--outerFoo::part(inner) {
|
||||||
opacity: 0.25;
|
opacity: 0.25;
|
||||||
}
|
}
|
||||||
:state( \(escaped\ state ) {}
|
:--\(escaped\ state {}
|
||||||
</style>
|
</style>
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
|
@ -37,7 +37,7 @@ class ContainerElement extends HTMLElement {
|
||||||
:host {
|
:host {
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
}
|
}
|
||||||
:host(:state(dotted)) {
|
:host(:--dotted) {
|
||||||
border-style: dotted;
|
border-style: dotted;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -54,36 +54,38 @@ class ContainerElement extends HTMLElement {
|
||||||
customElements.define('container-element', ContainerElement);
|
customElements.define('container-element', ContainerElement);
|
||||||
|
|
||||||
test(() => {
|
test(() => {
|
||||||
assert_throws_dom('SyntaxError', () => { document.querySelector(':state'); });
|
document.querySelector(':--');
|
||||||
assert_throws_dom('SyntaxError', () => { document.querySelector(':state('); });
|
document.querySelector(':--16px');
|
||||||
assert_throws_dom('SyntaxError', () => { document.querySelector(':state()'); });
|
}, ':--foo parsing passes');
|
||||||
assert_throws_dom('SyntaxError', () => { document.querySelector(':state(=)'); });
|
|
||||||
assert_throws_dom('SyntaxError', () => { document.querySelector(':state(name=value)'); });
|
test(() => {
|
||||||
assert_throws_dom('SyntaxError', () => { document.querySelector(':state( foo bar)'); });
|
assert_throws_dom('SyntaxError', () => { document.querySelector(':--('); });
|
||||||
assert_throws_dom('SyntaxError', () => { document.querySelector(':state(16px)'); });
|
assert_throws_dom('SyntaxError', () => { document.querySelector(':--)'); });
|
||||||
}, ':state() parsing failures');
|
assert_throws_dom('SyntaxError', () => { document.querySelector(':--='); });
|
||||||
|
assert_throws_dom('SyntaxError', () => { document.querySelector(':--name=value'); });
|
||||||
|
}, ':--foo parsing failures');
|
||||||
|
|
||||||
test(() => {
|
test(() => {
|
||||||
assert_equals(document.styleSheets[0].cssRules[1].cssText,
|
assert_equals(document.styleSheets[0].cssRules[1].cssText,
|
||||||
'#state-and-part::part(inner):state(innerFoo) { opacity: 0.5; }');
|
'#state-and-part::part(inner):--innerFoo { opacity: 0.5; }');
|
||||||
assert_equals(document.styleSheets[0].cssRules[3].selectorText,
|
assert_equals(document.styleSheets[0].cssRules[3].selectorText,
|
||||||
':state(\\(escaped\\ state)');
|
':--\\(escaped\\ state');
|
||||||
}, ':state() serialization');
|
}, ':--foo serialization');
|
||||||
|
|
||||||
test(() => {
|
test(() => {
|
||||||
let element = new TestElement();
|
let element = new TestElement();
|
||||||
let states = element.i.states;
|
let states = element.i.states;
|
||||||
|
|
||||||
assert_false(element.matches(':state(foo)'));
|
assert_false(element.matches(':--foo'));
|
||||||
assert_true(element.matches(':not(:state(foo))'));
|
assert_true(element.matches(':not(:--foo)'));
|
||||||
states.add('foo');
|
states.add('--foo');
|
||||||
assert_true(element.matches(':state(foo)'));
|
assert_true(element.matches(':--foo'));
|
||||||
assert_true(element.matches(':is(:state(foo))'));
|
assert_true(element.matches(':is(:--foo)'));
|
||||||
element.classList.add('c1', 'c2');
|
element.classList.add('c1', 'c2');
|
||||||
assert_true(element.matches('.c1:state(foo)'));
|
assert_true(element.matches('.c1:--foo'));
|
||||||
assert_true(element.matches(':state(foo).c1'));
|
assert_true(element.matches(':--foo.c1'));
|
||||||
assert_true(element.matches('.c2:state(foo).c1'));
|
assert_true(element.matches('.c2:--foo.c1'));
|
||||||
}, ':state() in simple cases');
|
}, ':--foo in simple cases');
|
||||||
|
|
||||||
test(() => {
|
test(() => {
|
||||||
let element = new TestElement();
|
let element = new TestElement();
|
||||||
|
@ -92,10 +94,10 @@ test(() => {
|
||||||
element.focus();
|
element.focus();
|
||||||
let states = element.i.states;
|
let states = element.i.states;
|
||||||
|
|
||||||
states.value = 'foo';
|
states.value = '--foo';
|
||||||
assert_true(element.matches(':focus:state(foo)'));
|
assert_true(element.matches(':focus:--foo'));
|
||||||
assert_true(element.matches(':state(foo):focus'));
|
assert_true(element.matches(':--foo:focus'));
|
||||||
}, ':state() and other pseudo classes');
|
}, ':--foo and other pseudo classes');
|
||||||
|
|
||||||
test(() => {
|
test(() => {
|
||||||
let outer = new ContainerElement();
|
let outer = new ContainerElement();
|
||||||
|
@ -104,26 +106,26 @@ test(() => {
|
||||||
let inner = outer.innerElement;
|
let inner = outer.innerElement;
|
||||||
let innerStates = inner.i.states;
|
let innerStates = inner.i.states;
|
||||||
|
|
||||||
innerStates.add('innerFoo');
|
innerStates.add('--innerFoo');
|
||||||
assert_equals(getComputedStyle(inner).opacity, '0.5',
|
assert_equals(getComputedStyle(inner).opacity, '0.5',
|
||||||
'::part() followed by :state()');
|
'::part() followed by :--foo');
|
||||||
innerStates.replace('innerFoo', 'innerfoo');
|
innerStates.replace('--innerFoo', '--innerfoo');
|
||||||
assert_equals(getComputedStyle(inner).opacity, '0',
|
assert_equals(getComputedStyle(inner).opacity, '0',
|
||||||
':state() matching should be case-sensitive');
|
':--foo matching should be case-sensitive');
|
||||||
innerStates.remove('innerfoo');
|
innerStates.remove('--innerfoo');
|
||||||
|
|
||||||
outer.i.states.add('outerFoo');
|
outer.i.states.add('--outerFoo');
|
||||||
assert_equals(getComputedStyle(inner).opacity, '0.25',
|
assert_equals(getComputedStyle(inner).opacity, '0.25',
|
||||||
':state() followed by ::part()');
|
':--foo followed by ::part()');
|
||||||
}, ':state() and ::part()');
|
}, ':--foo and ::part()');
|
||||||
|
|
||||||
test(() => {
|
test(() => {
|
||||||
let outer = new ContainerElement();
|
let outer = new ContainerElement();
|
||||||
document.body.appendChild(outer);
|
document.body.appendChild(outer);
|
||||||
|
|
||||||
assert_equals(getComputedStyle(outer).borderStyle, 'solid');
|
assert_equals(getComputedStyle(outer).borderStyle, 'solid');
|
||||||
outer.i.states.toggle('dotted');
|
outer.i.states.toggle('--dotted');
|
||||||
assert_equals(getComputedStyle(outer).borderStyle, 'dotted');
|
assert_equals(getComputedStyle(outer).borderStyle, 'dotted');
|
||||||
}, ':state() and :host()');
|
}, ':--foo and :host()');
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>Local Font Access: Chooser</title>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
|
<script src="resources/test-expectations.js"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(async () => {
|
||||||
|
await new Promise(resolve => {
|
||||||
|
window.addEventListener('DOMContentLoaded', resolve);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Small delay to give chrome's test automation a chance to actually install
|
||||||
|
// itself.
|
||||||
|
await new Promise(resolve => step_timeout(resolve, 100));
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
await window.test_driver.bless('show a font chooser.<br />Please select all the fonts that shows up.');
|
||||||
|
// Arial is considered to be web-safe.
|
||||||
|
const fonts = await navigator.fonts.showFontChooser({select: ['ArialMT']});
|
||||||
|
assert_true(Array.isArray(fonts));
|
||||||
|
assert_equals(fonts.length, 1);
|
||||||
|
|
||||||
|
const postscriptName = fonts[0].postscriptName;
|
||||||
|
assert_equals(typeof postscriptName, "string");
|
||||||
|
assert_greater_than(postscriptName.length, 0);
|
||||||
|
}, 'showFontChooser with selection works');
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
await window.test_driver.bless('show a font chooser.<br />Please select all the fonts that shows up.');
|
||||||
|
const fonts = await navigator.fonts.showFontChooser({select: []});
|
||||||
|
assert_true(Array.isArray(fonts));
|
||||||
|
assert_greater_than_equal(fonts.length, 1);
|
||||||
|
|
||||||
|
const postscriptName = fonts[0].postscriptName;
|
||||||
|
assert_equals(typeof postscriptName, "string");
|
||||||
|
assert_greater_than(postscriptName.length, 0);
|
||||||
|
}, 'showFontChooser with empty selection bag works');
|
||||||
|
})();
|
||||||
|
</script>
|
|
@ -122,7 +122,7 @@ for (const test of non_ascii_input) {
|
||||||
fonts.push(f);
|
fonts.push(f);
|
||||||
}
|
}
|
||||||
assert_equals(
|
assert_equals(
|
||||||
fonts.length, 0,
|
fonts.length, 0,
|
||||||
`There should be no results. Instead got: ${JSON.stringify(fonts)}`);
|
`There should be no results. Instead got: ${JSON.stringify(fonts)}`);
|
||||||
}, `query(): No match for input: ${JSON.stringify(test)}`);
|
}, `query(): No match for input: ${JSON.stringify(test)}`);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,10 +10,14 @@
|
||||||
div {
|
div {
|
||||||
background-color: green;
|
background-color: green;
|
||||||
border-color: green;
|
border-color: green;
|
||||||
|
caret-color: green;
|
||||||
color: green;
|
color: green;
|
||||||
column-rule-color: green;
|
column-rule-color: green;
|
||||||
fill: green;
|
fill: green;
|
||||||
|
flood-color: green;
|
||||||
|
lighting-color: green;
|
||||||
outline-color: green;
|
outline-color: green;
|
||||||
|
stop-color: green;
|
||||||
stroke: green;
|
stroke: green;
|
||||||
text-decoration-color: green;
|
text-decoration-color: green;
|
||||||
-webkit-tap-highlight-color: green;
|
-webkit-tap-highlight-color: green;
|
||||||
|
@ -31,10 +35,14 @@
|
||||||
"border-left-color",
|
"border-left-color",
|
||||||
"border-right-color",
|
"border-right-color",
|
||||||
"border-top-color",
|
"border-top-color",
|
||||||
|
"caret-color",
|
||||||
"color",
|
"color",
|
||||||
"column-rule-color",
|
"column-rule-color",
|
||||||
"fill",
|
"fill",
|
||||||
|
"flood-color",
|
||||||
|
"lighting-color",
|
||||||
"outline-color",
|
"outline-color",
|
||||||
|
"stop-color",
|
||||||
"stroke",
|
"stroke",
|
||||||
"text-decoration-color",
|
"text-decoration-color",
|
||||||
"-webkit-tap-highlight-color",
|
"-webkit-tap-highlight-color",
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
div {
|
div {
|
||||||
background-color: green;
|
background-color: green;
|
||||||
border-color: green;
|
border-color: green;
|
||||||
|
caret-color: green;
|
||||||
color: green;
|
color: green;
|
||||||
outline-color: green;
|
outline-color: green;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +26,7 @@
|
||||||
"border-left-color",
|
"border-left-color",
|
||||||
"border-right-color",
|
"border-right-color",
|
||||||
"border-top-color",
|
"border-top-color",
|
||||||
|
"caret-color",
|
||||||
"color",
|
"color",
|
||||||
"outline-color"
|
"outline-color"
|
||||||
];
|
];
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - visited caret-color.</title>
|
||||||
|
<style>
|
||||||
|
a {
|
||||||
|
caret-color: VisitedText;
|
||||||
|
forced-color-adjust: none;
|
||||||
|
}
|
||||||
|
[contenteditable] {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<a id="link" contenteditable href="">link</a>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("link").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - visited caret-color.</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-colors-properties">
|
||||||
|
<link rel=match href="forced-colors-mode-42-ref.html">
|
||||||
|
<style>
|
||||||
|
a {
|
||||||
|
caret-color: orange;
|
||||||
|
}
|
||||||
|
a:visited {
|
||||||
|
caret-color: red;
|
||||||
|
}
|
||||||
|
[contenteditable] {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<a id="link" contenteditable href="">link</a>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("link").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - caret-color.</title>
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
caret-color: WindowText;
|
||||||
|
forced-color-adjust: none;
|
||||||
|
}
|
||||||
|
[contenteditable] {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id="caret" contenteditable>The caret color should be overridden to currentColor</a>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("caret").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - caret-color.</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-colors-properties">
|
||||||
|
<link rel=match href="forced-colors-mode-43-ref.html">
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
caret-color: red;
|
||||||
|
}
|
||||||
|
[contenteditable] {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id="caret" contenteditable>The caret color should be overridden to currentColor</a>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("caret").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - visited caret-color with system color.</title>
|
||||||
|
<style>
|
||||||
|
a {
|
||||||
|
caret-color: GrayText;
|
||||||
|
forced-color-adjust: none;
|
||||||
|
}
|
||||||
|
[contenteditable] {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<a id="link" contenteditable href="">link</a>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("link").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - visited caret-color with system color.</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-colors-properties">
|
||||||
|
<link rel=match href="forced-colors-mode-44-ref.html">
|
||||||
|
<style>
|
||||||
|
a {
|
||||||
|
caret-color: orange;
|
||||||
|
}
|
||||||
|
a:visited {
|
||||||
|
caret-color: GrayText;
|
||||||
|
}
|
||||||
|
[contenteditable] {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<a id="link" contenteditable href="">link</a>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("link").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - caret-color with system color.</title>
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
caret-color: GrayText;
|
||||||
|
forced-color-adjust: none;
|
||||||
|
}
|
||||||
|
[contenteditable] {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id="caret" contenteditable>The caret color should remain GrayText</a>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("caret").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - caret-color with system color.</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-colors-properties">
|
||||||
|
<link rel=match href="forced-colors-mode-45-ref.html">
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
caret-color: GrayText;
|
||||||
|
}
|
||||||
|
[contenteditable] {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id="caret" contenteditable>The caret color should remain GrayText</a>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("caret").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - lighting-color, flood-color, stop-color.</title>
|
||||||
|
<style>
|
||||||
|
svg {
|
||||||
|
forced-color-adjust: none;
|
||||||
|
height: 100px;
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="0" y="0" width="100" height="100" fill="WindowText"/>
|
||||||
|
<rect x="200" y="0" width="100" height="100" fill="WindowText"/>
|
||||||
|
<rect x="400" y="0" width="100" height="100" fill="WindowText"/>
|
||||||
|
</svg>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - lighting-color, flood-color, stop-color.</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-colors-properties">
|
||||||
|
<link rel=match href="forced-colors-mode-46-ref.html">
|
||||||
|
<style>
|
||||||
|
/* SVG elements are set to 'forced-color-adjust: none' by default. Set this to
|
||||||
|
auto instead in order to test that lighting-color, flood-color, stop-color
|
||||||
|
are properly overridden in forced colors mode. */
|
||||||
|
svg {
|
||||||
|
forced-color-adjust: auto;
|
||||||
|
height: 100px;
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- stop-color in forced colors mode -->
|
||||||
|
<linearGradient id="stop">
|
||||||
|
<stop offset="25%" stop-color="orange"/>
|
||||||
|
<stop offset="75%" stop-color="red"/>
|
||||||
|
</linearGradient>
|
||||||
|
<rect x="0" y="0" width="100" height="100" fill="url('#stop')"/>
|
||||||
|
|
||||||
|
<!-- lighting-color in forced colors mode -->
|
||||||
|
<filter id="lighting" x="0" y="0" width="100%" height="100%">
|
||||||
|
<feDiffuseLighting in="SourceGraphic" lighting-color="red">
|
||||||
|
<fePointLight x="250" y="50" z="10"/>
|
||||||
|
</feDiffuseLighting>
|
||||||
|
</filter>
|
||||||
|
<rect x="200" y="0" width="100" height="100" style="filter: url(#lighting);"/>
|
||||||
|
|
||||||
|
<!-- flood-color in forced colors mode -->
|
||||||
|
<filter id="flood" x="0" y="0" width="100%" height="100%">
|
||||||
|
<feFlood flood-color="red"/>
|
||||||
|
</filter>
|
||||||
|
<rect x="400" y="0" width="100" height="100" style="filter: url(#flood);"/>
|
||||||
|
</svg>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - lighting-color, flood-color, stop-color system colors.</title>
|
||||||
|
<style>
|
||||||
|
svg {
|
||||||
|
forced-color-adjust: none;
|
||||||
|
height: 100px;
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<linearGradient id="stop">
|
||||||
|
<stop offset="25%" stop-color="GrayText"/>
|
||||||
|
<stop offset="75%" stop-color="LinkText"/>
|
||||||
|
</linearGradient>
|
||||||
|
<rect x="0" y="0" width="100" height="100" fill="url('#stop')"/>
|
||||||
|
|
||||||
|
<filter id="lighting" x="0" y="0" width="100%" height="100%">
|
||||||
|
<feDiffuseLighting in="SourceGraphic" lighting-color="LinkText">
|
||||||
|
<fePointLight x="250" y="50" z="10"/>
|
||||||
|
</feDiffuseLighting>
|
||||||
|
</filter>
|
||||||
|
<rect x="200" y="0" width="100" height="100" style="filter: url(#lighting);"/>
|
||||||
|
|
||||||
|
<filter id="flood" x="0" y="0" width="100%" height="100%">
|
||||||
|
<feFlood flood-color="GrayText"/>
|
||||||
|
</filter>
|
||||||
|
<rect x="400" y="0" width="100" height="100" style="filter: url(#flood);"/>
|
||||||
|
</svg>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Forced colors mode - lighting-color, flood-color, stop-color system colors.</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-colors-properties">
|
||||||
|
<link rel=match href="forced-colors-mode-47-ref.html">
|
||||||
|
<style>
|
||||||
|
/* SVG elements are set to 'forced-color-adjust: none' by default. Set this to
|
||||||
|
auto instead in order to test that lighting-color, flood-color, stop-color
|
||||||
|
are properly handled in forced colors mode. */
|
||||||
|
svg {
|
||||||
|
forced-color-adjust: auto;
|
||||||
|
height: 100px;
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- stop-color in forced colors mode -->
|
||||||
|
<linearGradient id="stop">
|
||||||
|
<stop offset="25%" stop-color="GrayText"/>
|
||||||
|
<stop offset="75%" stop-color="LinkText"/>
|
||||||
|
</linearGradient>
|
||||||
|
<rect x="0" y="0" width="100" height="100" fill="url('#stop')"/>
|
||||||
|
|
||||||
|
<!-- lighting-color in forced colors mode -->
|
||||||
|
<filter id="lighting" x="0" y="0" width="100%" height="100%">
|
||||||
|
<feDiffuseLighting in="SourceGraphic" lighting-color="LinkText">
|
||||||
|
<fePointLight x="250" y="50" z="10"/>
|
||||||
|
</feDiffuseLighting>
|
||||||
|
</filter>
|
||||||
|
<rect x="200" y="0" width="100" height="100" style="filter: url(#lighting);"/>
|
||||||
|
|
||||||
|
<!-- flood-color in forced colors mode -->
|
||||||
|
<filter id="flood" x="0" y="0" width="100%" height="100%">
|
||||||
|
<feFlood flood-color="GrayText"/>
|
||||||
|
</filter>
|
||||||
|
<rect x="400" y="0" width="100" height="100" style="filter: url(#flood);"/>
|
||||||
|
</svg>
|
|
@ -83,6 +83,50 @@ testCases = [
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
description: 'createImageBitmap with <sourceType> source and ' +
|
||||||
|
'a value of 0 int resizeWidth',
|
||||||
|
promiseTestFunction:
|
||||||
|
(source, t) => {
|
||||||
|
return createImageBitmap(source, {resizeWidth:0, resizeHeight:10})
|
||||||
|
.catch(e => {
|
||||||
|
assert_throws_dom("InvalidStateError", () => { throw e });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description: 'createImageBitmap with <sourceType> source and ' +
|
||||||
|
'a value of 0 in resizeHeight',
|
||||||
|
promiseTestFunction:
|
||||||
|
(source, t) => {
|
||||||
|
return createImageBitmap(source, {resizeWidth:10, resizeHeight:0})
|
||||||
|
.catch(e => {
|
||||||
|
assert_throws_dom("InvalidStateError", () => { throw e });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description: 'createImageBitmap with <sourceType> source and ' +
|
||||||
|
'a value between 0 and 1 in resizeWidth',
|
||||||
|
promiseTestFunction:
|
||||||
|
(source, t) => {
|
||||||
|
return createImageBitmap(source, {resizeWidth:0.5, resizeHeight:10})
|
||||||
|
.catch(e => {
|
||||||
|
assert_throws_dom("InvalidStateError", () => { throw e });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description: 'createImageBitmap with <sourceType> source and ' +
|
||||||
|
'a value between 0 and 1 in resizeHeight',
|
||||||
|
promiseTestFunction:
|
||||||
|
(source, t) => {
|
||||||
|
return createImageBitmap(source, {resizeWidth:10, resizeHeight:0.5})
|
||||||
|
.catch(e => {
|
||||||
|
assert_throws_dom("InvalidStateError", () => { throw e });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
// Generate the test matrix for each sourceType + testCase combo.
|
// Generate the test matrix for each sourceType + testCase combo.
|
||||||
|
|
|
@ -8,11 +8,7 @@ dictionary WebAppManifest {
|
||||||
DOMString lang;
|
DOMString lang;
|
||||||
USVString name;
|
USVString name;
|
||||||
USVString short_name;
|
USVString short_name;
|
||||||
USVString description;
|
|
||||||
sequence<ManifestImageResource> icons;
|
sequence<ManifestImageResource> icons;
|
||||||
sequence<ManifestImageResource> screenshots;
|
|
||||||
sequence<USVString> categories;
|
|
||||||
DOMString iarc_rating_id;
|
|
||||||
USVString start_url;
|
USVString start_url;
|
||||||
DisplayModeType display = "browser";
|
DisplayModeType display = "browser";
|
||||||
OrientationLockType orientation;
|
OrientationLockType orientation;
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>MathML Reference</title>
|
||||||
|
<p>The 1's below should have the same size</p>
|
||||||
|
<math>
|
||||||
|
<mover accent="true">
|
||||||
|
<mn>1</mn>
|
||||||
|
<mn>1</mn>
|
||||||
|
</mover>
|
||||||
|
</math>
|
|
@ -0,0 +1,16 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>MathML: Dynamically change accent on mover</title>
|
||||||
|
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#displaystyle-and-scriptlevel-in-scripts">
|
||||||
|
<link rel="match" href="mover-accent-dynamic-change-ref.html">
|
||||||
|
<meta name="assert" content="Test that setting the accent attribute on mover takes effect">
|
||||||
|
<p>The 1's below should have the same size</p>
|
||||||
|
<math>
|
||||||
|
<mover id="m">
|
||||||
|
<mn>1</mn>
|
||||||
|
<mn>1</mn>
|
||||||
|
</mover>
|
||||||
|
</math>
|
||||||
|
<script>
|
||||||
|
document.body.offsetTop;
|
||||||
|
m.setAttribute("accent", "true");
|
||||||
|
</script>
|
|
@ -89,8 +89,8 @@
|
||||||
element.removeAttribute("accent");
|
element.removeAttribute("accent");
|
||||||
element.setAttribute("accentunder", "TrUe");
|
element.setAttribute("accentunder", "TrUe");
|
||||||
assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
|
assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
|
||||||
assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero * .71, epsilon, "over");
|
assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero, epsilon, "under");
|
||||||
assert_approx_equals(fontSize(element.children[2]), fontSizeAtScriptLevelZero, epsilon, "under");
|
assert_approx_equals(fontSize(element.children[2]), fontSizeAtScriptLevelZero * .71, epsilon, "over");
|
||||||
}, "checking dynamic/case-insensitive accent/accentunder");
|
}, "checking dynamic/case-insensitive accent/accentunder");
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>Test Picture-in-Picture when removed from document</title>
|
||||||
|
<script src="/common/media.js"></script>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
|
<script src="resources/picture-in-picture-helpers.js"></script>
|
||||||
|
<body></body>
|
||||||
|
<script>
|
||||||
|
promise_test(async t => {
|
||||||
|
const video = await loadVideo();
|
||||||
|
document.body.appendChild(video);
|
||||||
|
video.muted = true;
|
||||||
|
await video.play();
|
||||||
|
await requestPictureInPictureWithTrustedClick(video);
|
||||||
|
|
||||||
|
assert_false(video.paused);
|
||||||
|
document.body.offsetLeft;
|
||||||
|
document.body.removeChild(video);
|
||||||
|
await new Promise(resolve => step_timeout(resolve, 1000));
|
||||||
|
assert_false(video.paused);
|
||||||
|
}, 'Picture-in-Picture video does not pause when removed from document');
|
||||||
|
</script>
|
|
@ -19,6 +19,18 @@ promise_test((t) => {
|
||||||
return runTest(t, 'resources/claim-blob-url-worker-fetch-iframe.html');
|
return runTest(t, 'resources/claim-blob-url-worker-fetch-iframe.html');
|
||||||
}, 'fetch() in blob URL Worker should be intercepted after the client is claimed.');
|
}, 'fetch() in blob URL Worker should be intercepted after the client is claimed.');
|
||||||
|
|
||||||
|
promise_test((t) => {
|
||||||
|
return runTest(t, 'resources/nested-blob-url-workers.html');
|
||||||
|
}, 'fetch() in nested blob URL Worker created from a blob URL Worker should be intercepted after the client is claimed.');
|
||||||
|
|
||||||
|
promise_test((t) => {
|
||||||
|
return runTest(t, 'resources/nested-worker-created-from-blob-url-worker.html');
|
||||||
|
}, 'fetch() in nested Worker created from a blob URL Worker should be intercepted after the client is claimed.');
|
||||||
|
|
||||||
|
promise_test((t) => {
|
||||||
|
return runTest(t, 'resources/nested-blob-url-worker-created-from-worker.html');
|
||||||
|
}, 'fetch() in nested blob URL Worker created from a Worker should be intercepted after the client is claimed.');
|
||||||
|
|
||||||
async function runTest(t, iframe_url) {
|
async function runTest(t, iframe_url) {
|
||||||
const resource = 'simple.txt';
|
const resource = 'simple.txt';
|
||||||
const scope = 'resources/';
|
const scope = 'resources/';
|
||||||
|
|
|
@ -2,8 +2,9 @@ steps:
|
||||||
# The conflicting google-chrome and chromedriver casks are first uninstalled.
|
# The conflicting google-chrome and chromedriver casks are first uninstalled.
|
||||||
# The raw google-chrome-dev cask URL is used to bypass caching.
|
# The raw google-chrome-dev cask URL is used to bypass caching.
|
||||||
- script: |
|
- script: |
|
||||||
HOMEBREW_NO_AUTO_UPDATE=1 brew cask uninstall google-chrome || true
|
HOMEBREW_NO_AUTO_UPDATE=1 brew uninstall --cask google-chrome || true
|
||||||
HOMEBREW_NO_AUTO_UPDATE=1 brew cask uninstall chromedriver || true
|
HOMEBREW_NO_AUTO_UPDATE=1 brew uninstall --cask chromedriver || true
|
||||||
HOMEBREW_NO_AUTO_UPDATE=1 brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/google-chrome-dev.rb
|
curl https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/google-chrome-dev.rb > google-chrome-dev.rb
|
||||||
|
HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask google-chrome-dev.rb
|
||||||
displayName: 'Install Chrome Dev'
|
displayName: 'Install Chrome Dev'
|
||||||
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
|
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
steps:
|
steps:
|
||||||
# This is equivalent to `Homebrew/homebrew-cask-versions/firefox-nightly`,
|
# This is equivalent to `Homebrew/homebrew-cask-versions/firefox-nightly`,
|
||||||
# but the raw URL is used to bypass caching.
|
# but the raw URL is used to bypass caching.
|
||||||
- script: HOMEBREW_NO_AUTO_UPDATE=1 brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/firefox-nightly.rb
|
- script: |
|
||||||
|
curl https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/firefox-nightly.rb > firefox-nightly.rb
|
||||||
|
HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask firefox-nightly.rb
|
||||||
displayName: 'Install Firefox Nightly'
|
displayName: 'Install Firefox Nightly'
|
||||||
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
|
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
|
||||||
|
|
|
@ -8,7 +8,7 @@ steps:
|
||||||
condition: eq(variables['safaridriver_diagnose'], true)
|
condition: eq(variables['safaridriver_diagnose'], true)
|
||||||
- ${{ if eq(parameters.channel, 'preview') }}:
|
- ${{ if eq(parameters.channel, 'preview') }}:
|
||||||
- script: |
|
- script: |
|
||||||
HOMEBREW_NO_AUTO_UPDATE=1 brew cask install tools/ci/azure/safari-technology-preview.rb
|
HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask tools/ci/azure/safari-technology-preview.rb
|
||||||
# Workaround for `sudo safardriver --enable` not working on Catalina:
|
# Workaround for `sudo safardriver --enable` not working on Catalina:
|
||||||
# https://github.com/web-platform-tests/wpt/issues/21751
|
# https://github.com/web-platform-tests/wpt/issues/21751
|
||||||
mkdir -p ~/Library/WebDriver/
|
mkdir -p ~/Library/WebDriver/
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
{
|
||||||
|
"log": {
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"url": "https://web-platform.test:8444/web-bundle/resources/wbn/no-cors/resource.cors.json",
|
||||||
|
"headers": []
|
||||||
|
},
|
||||||
|
"response": {
|
||||||
|
"status": 200,
|
||||||
|
"headers": [
|
||||||
|
{
|
||||||
|
"name": "Content-type",
|
||||||
|
"value": "application/json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Access-Control-Allow-Origin",
|
||||||
|
"value": "*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": {
|
||||||
|
"text": "{ cors: 1 }"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"url": "https://web-platform.test:8444/web-bundle/resources/wbn/no-cors/resource.no-cors.json",
|
||||||
|
"headers": []
|
||||||
|
},
|
||||||
|
"response": {
|
||||||
|
"status": 200,
|
||||||
|
"headers": [
|
||||||
|
{
|
||||||
|
"name": "Content-type",
|
||||||
|
"value": "application/json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": {
|
||||||
|
"text": "{ no_cors: 1 }"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -76,3 +76,9 @@ gen-bundle \
|
||||||
-har cross-origin.har \
|
-har cross-origin.har \
|
||||||
-primaryURL $wpt_test_https_origin/web-bundle/resources/wbn/cors/resource.cors.json \
|
-primaryURL $wpt_test_https_origin/web-bundle/resources/wbn/cors/resource.cors.json \
|
||||||
-o wbn/cors/cross-origin.wbn
|
-o wbn/cors/cross-origin.wbn
|
||||||
|
|
||||||
|
gen-bundle \
|
||||||
|
-version b1 \
|
||||||
|
-har cross-origin-no-cors.har \
|
||||||
|
-primaryURL $wpt_test_https_origin/web-bundle/resources/wbn/no-cors/resource.cors.json \
|
||||||
|
-o wbn/no-cors/cross-origin.wbn
|
||||||
|
|
Binary file not shown.
|
@ -8,17 +8,17 @@
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<body>
|
<body>
|
||||||
<!--
|
<!--
|
||||||
This wpt should run on an origin which is different than https://web-platform.test:8444/,
|
This wpt should run on an origin different from https://web-platform.test:8444/,
|
||||||
from where cross-orign WebBundles are served.
|
from where cross-orign WebBundles are served.
|
||||||
|
|
||||||
This test uses the two cross-origin WebBundles:
|
This test uses the two cross-origin WebBundles:
|
||||||
|
|
||||||
1. https://web-platform.test:8444/web-bundle/resources/wbn/cors/cross-origin.wbn,
|
1. https://web-platform.test:8444/web-bundle/resources/wbn/cors/cross-origin.wbn,
|
||||||
which is served with an Access-Control-Allow-Origin response header.
|
which is served with an Access-Control-Allow-Origin response header.
|
||||||
2. http://web-platform.test:8444/web-bundle/resources/wbn/subreource.wbn,
|
2. http://web-platform.test:8444/web-bundle/resources/wbn/no-cors/cross-origin.wbn,
|
||||||
which is served *without* an Access-Control-Allow-Origin response header.
|
which is served *without* an Access-Control-Allow-Origin response header.
|
||||||
|
|
||||||
`cross-origin.wbn` includes two subresources:
|
Each `cross-origin.wbn` includes two subresources:
|
||||||
a. `resource.cors.json`, which includes an Access-Control-Allow-Origin response header.
|
a. `resource.cors.json`, which includes an Access-Control-Allow-Origin response header.
|
||||||
b. `resource.no-cors.json`, which doesn't include an Access-Control-Allow-Origin response header.
|
b. `resource.no-cors.json`, which doesn't include an Access-Control-Allow-Origin response header.
|
||||||
-->
|
-->
|
||||||
|
@ -34,6 +34,8 @@
|
||||||
"https://web-platform.test:8444/web-bundle/resources/wbn/cors/resource.cors.json"
|
"https://web-platform.test:8444/web-bundle/resources/wbn/cors/resource.cors.json"
|
||||||
);
|
);
|
||||||
assert_true(response.ok);
|
assert_true(response.ok);
|
||||||
|
const text = await response.text();
|
||||||
|
assert_equals(text, "{ cors: 1 }");
|
||||||
}, "A subresource which includes an Access-Control-Allow-Origin response header can be fetched");
|
}, "A subresource which includes an Access-Control-Allow-Origin response header can be fetched");
|
||||||
|
|
||||||
promise_test(async (t) => {
|
promise_test(async (t) => {
|
||||||
|
@ -46,21 +48,46 @@
|
||||||
);
|
);
|
||||||
}, "A subresource which does not include an Access-Control-Allow-Origin response header can not be fetched");
|
}, "A subresource which does not include an Access-Control-Allow-Origin response header can not be fetched");
|
||||||
|
|
||||||
promise_test(async () => {
|
promise_test(async (t) => {
|
||||||
return addLinkAndWaitForError(
|
const prefix =
|
||||||
"http://web-platform.test:8444/web-bundle/resources/wbn/subreource.wbn"
|
"http://web-platform.test:8444/web-bundle/resources/wbn/no-cors/";
|
||||||
);
|
const resources = [
|
||||||
}, "A cross-origin WebBundle which does not include an Access-Control-Allow-Origin response header should fire an error event on load");
|
prefix + "resource.cors.json",
|
||||||
|
prefix + "resource.no-cors.json",
|
||||||
|
]
|
||||||
|
// Should fire an error event on loading webbundle.
|
||||||
|
await addLinkAndWaitForError(prefix + "cross-origin.wbn", resources);
|
||||||
|
// A fetch should fail for any subresource specified in resources attribute.
|
||||||
|
for (const url of resources) {
|
||||||
|
await fetchAndWaitForReject(url);
|
||||||
|
}
|
||||||
|
}, "A cross-origin WebBundle which does not include an Access-Control-Allow-Origin response header should fire an error event on load, and a fetch should fail for any subresource");
|
||||||
|
|
||||||
function addLinkAndWaitForError(url) {
|
function addLinkAndWaitForError(url, resources) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const link = document.createElement("link");
|
const link = document.createElement("link");
|
||||||
link.rel = "webbundle";
|
link.rel = "webbundle";
|
||||||
link.href = url;
|
link.href = url;
|
||||||
|
for (const resource of resources) {
|
||||||
|
link.resources.add(resource);
|
||||||
|
}
|
||||||
link.onload = reject;
|
link.onload = reject;
|
||||||
link.onerror = () => resolve(link);
|
link.onerror = () => resolve(link);
|
||||||
document.body.appendChild(link);
|
document.body.appendChild(link);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fetchAndWaitForReject(url) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
fetch(url)
|
||||||
|
.then(() => {
|
||||||
|
reject();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -293,3 +293,6 @@
|
||||||
[WebGL test #41: attachment 4 should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 0,255,0,0]
|
[WebGL test #41: attachment 4 should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 0,255,0,0]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[WebGL test #52: attachment 7 should be 0,255,0,255\nat (4, 0) expected: 0,255,0,255 was 0,0,0,0]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue