Auto merge of #27728 - servo-wpt-sync:wpt_update_31-10-2020, r=jdm

Sync WPT with upstream (31-10-2020)

Automated downstream sync of changes from upstream as of 31-10-2020.
[no-wpt-sync]
r? @servo-wpt-sync
This commit is contained in:
bors-servo 2020-10-31 16:47:47 -04:00 committed by GitHub
commit c1dbf011b5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
102 changed files with 2164 additions and 281 deletions

View file

@ -0,0 +1,4 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

@ -1,4 +1,4 @@
[hit-test-floats-003.html]
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -1,4 +0,0 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,2 @@
[border-radius-clip-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[border-radius-clip-002.htm]
expected: FAIL

View file

@ -0,0 +1,2 @@
[box-shadow-029.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[box-shadow-039.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[box-shadow-040.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[box-shadow-041.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[box-shadow-042.html]
expected: FAIL

View file

@ -1,4 +1,10 @@
[rotate-composition.html]
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (0.75) should be [0.27 0.53 0.8 90deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [none\] to replace [0 1 0 100deg\] at (0) should be [1 2 3 90deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [none\] to replace [0 1 0 100deg\] at (-1) should be [0.31 -0.22 0.92 131.66deg\]]
expected: FAIL
@ -71,9 +77,6 @@
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (2) should be [-3.3235e-17 -1 -9.97049e-17 160deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [none\] to replace [0 1 0 100deg\] at (0) should be [1 2 3 90deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [100deg\] from add [10deg\] to add [30deg\] at (1) should be [130deg\]]
expected: FAIL
@ -197,3 +200,126 @@
[Compositing: property <rotate> underlying [1 0 0 90deg\] from add [0 1 0 180deg\] to replace [0 0 1 90deg\] at (0) should be [-4.32978e-17 -0.707107 -0.707107 180deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (-1) should be [0.27 0.53 0.8 10deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (0) should be [0.27 0.53 0.8 50deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (0.25) should be [y 25deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (2) should be [y 200deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (-1) should be [0.27 0.53 0.8 540deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (-1) should be [y -100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (-1) should be [0 -1 0 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (2) should be [0.27 0.53 0.8 -360deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (1) should be [0 0.71 0.71 135deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (0.75) should be [y 75deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (0) should be [0.27 0.53 0.8 360deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (0.25) should be [0.27 0.53 0.8 270deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (1) should be [y 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (2) should be [0.27 0.53 0.8 -270deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (0.25) should be [0.54 0.8 0.26 94.83deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (0.75) should be [y 75deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (2) should be [y 200deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (0.25) should be [y 25deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (-1) should be [0.67 -0.06 -0.74 124.97deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (1) should be [0.27 0.53 0.8 0deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (0) should be [0.27 0.53 0.8 270deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (0.75) should be [y 75deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (0.25) should be [0.27 0.53 0.8 60deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (0) should be [y 0deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (2) should be [-0.52 0.29 0.81 208.96deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (0.75) should be [0.27 0.53 0.8 80deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (1) should be [0.27 0.53 0.8 0deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (1) should be [y 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (2) should be [0.27 0.53 0.8 130deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (0.25) should be [0.27 0.53 0.8 202.5deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (0) should be [0.71 0.71 0 90deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (0.25) should be [y 25deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (2) should be [y 200deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (1) should be [y 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (0) should be [0.27 0.53 0.8 360deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (1) should be [0.27 0.53 0.8 90deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (0.75) should be [0.17 0.78 0.61 118.68deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (-1) should be [0 -1 0 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (0) should be [0.27 0.53 0.8 360deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (-1) should be [0.27 0.53 0.8 720deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (0.75) should be [0.27 0.53 0.8 67.5deg\]]
expected: FAIL

View file

@ -0,0 +1,2 @@
[rotate-transform-equivalent.html]
expected: TIMEOUT

View file

@ -318,18 +318,18 @@
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate 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 */*;charset=gbk]
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

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

View file

@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
[Content-Type-Options%3A%20nosniff]
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
expected: FAIL

View file

@ -1,10 +1,10 @@
[idlharness.window.html]
[idlharness]
expected: FAIL
[idlharness.https.window.html]
[GamepadEvent must be primary interface of new GamepadEvent("gamepad")]
expected: FAIL
[Stringification of new GamepadEvent("gamepad")]
expected: FAIL
[GamepadEvent interface: new GamepadEvent("gamepad") must inherit property "gamepad" with the proper type]
expected: FAIL
[Stringification of new GamepadEvent("gamepad")]
expected: FAIL

View file

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

View file

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

View file

@ -171,6 +171,3 @@
[XHTML img usemap="#hash-id"]
expected: FAIL
[HTML (standards) IMG usemap="no-hash-name"]
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2,9 +2,3 @@
[DOMParser]
expected: FAIL
[createHTMLDocument]
expected: FAIL
[<template>]
expected: FAIL

View file

@ -0,0 +1,4 @@
[async_004.htm]
[async script executes as soon as possible after a download is complete]
expected: FAIL

View file

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

View file

@ -1,4 +0,0 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

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

View file

@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[audiobuffersource-duration-loop.html]
[X The array length does not match.]
expected: FAIL

View file

@ -221,3 +221,6 @@
[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\]\t-3.5237828125000000e+4\t9.3139332532882690e-1\t3.5238759518325329e+4\t3.7834455712772411e+4\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 3.5238759518325329e+4 at index of 28696.\n\tMax RelError of 3.7834455712772411e+4 at index of 28696.\n]
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\]\t-1.0115346998129159e-34\t9.3139332532882690e-1\t9.3139332532882690e-1\t1.0000000000000000e+0\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 9.3139332532882690e-1 at index of 28696.\n\tMax RelError of 1.0000000000000000e+0 at index of 28696.\n]
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -1,5 +1,4 @@
[003.html]
expected: ERROR
[shared]
expected: FAIL

View file

@ -126563,6 +126563,32 @@
{}
]
],
"border-radius-clip-001.html": [
"585b62677f4c439deb077a5ab4aba96559366c72",
[
null,
[
[
"/css/css-backgrounds/reference/border-radius-clipping-ref.html",
"=="
]
],
{}
]
],
"border-radius-clip-002.htm": [
"c6aa0c6a3e10b639673541d7a16e1c7a43ac8fd2",
[
null,
[
[
"/css/css-backgrounds/reference/border-radius-clip-002-ref.htm",
"=="
]
],
{}
]
],
"border-radius-clipping-002.html": [
"eea0ee104fc2610a722f5bbae200c8f6d1ac9823",
[
@ -126576,19 +126602,6 @@
{}
]
],
"border-radius-clipping.html": [
"331bc61f20392a7f815014b738a7e01ea92db850",
[
null,
[
[
"/css/css-backgrounds/reference/border-radius-clipping-ref.html",
"=="
]
],
{}
]
],
"border-radius-dynamic-from-no-radius.html": [
"335548f33ad4bb9d7c42b4b07323c0a398aa28fc",
[
@ -126888,6 +126901,71 @@
{}
]
],
"box-shadow-029.html": [
"aa0fbfd6ddfd976fb1254d0f7df8ef2ccad9698c",
[
null,
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"box-shadow-039.html": [
"c3badbc211b7995aa8bd4db165d3667eb61848c9",
[
null,
[
[
"/css/css-backgrounds/reference/box-shadow-039-ref.html",
"=="
]
],
{}
]
],
"box-shadow-040.html": [
"dea5d5bfaf443ca11c0e1619931a5e929e3e3571",
[
null,
[
[
"/css/css-backgrounds/reference/box-shadow-040-ref.html",
"=="
]
],
{}
]
],
"box-shadow-041.html": [
"907ca82a6df5ab070b7531a5893b965ddcc6dcfa",
[
null,
[
[
"/css/css-backgrounds/reference/box-shadow-041-ref.html",
"=="
]
],
{}
]
],
"box-shadow-042.html": [
"ec9212e5b6c9ace7787a5d0321dfa6be17f7ae75",
[
null,
[
[
"/css/css-backgrounds/reference/box-shadow-042-ref.html",
"=="
]
],
{}
]
],
"box-shadow-body.html": [
"88d888a7710c7bdd2831a4908a30108b3a34670a",
[
@ -169042,6 +169120,19 @@
{}
]
],
"placeholder-excluded-properties.html": [
"dc5718164ce23a6cb35ba85644e6bc5f2f0dcc69",
[
null,
[
[
"/css/css-pseudo/reference/placeholder-excluded-properties-ref.html",
"=="
]
],
{}
]
],
"placeholder-input-number.html": [
"a557f1091ec29dd90cd4290cf96ac4752b04ff3f",
[
@ -191643,6 +191734,19 @@
]
],
"animation": {
"rotate-transform-equivalent.html": [
"7474c79e7e6d974133abd226368ec636f0e4f49c",
[
null,
[
[
"/css/css-transforms/animation/rotate-transform-equivalent-ref.html",
"=="
]
],
{}
]
],
"transform-interpolation-matrix.html": [
"b5f9c3cd3084024756ef95e46e85d0110273cab5",
[
@ -299536,8 +299640,12 @@
"22c5f4dfb8b40fddeb3eeb0af52056dfebf623e1",
[]
],
"border-radius-clip-002-ref.htm": [
"2a68ea3587a23e6eef1dce22511a7f14ffc0d3a3",
[]
],
"border-radius-clipping-ref.html": [
"344cd01c7a1b339cb7edbd8cd050b2180507abc9",
"2aeef90eb05afc930b3836c50d97e2e3484d95db",
[]
],
"border-radius-horizontal-value-is-zero-ref.html": [
@ -299556,6 +299664,22 @@
"81a5cbf6b8e06f6435bc133287f128ed6af8ed62",
[]
],
"box-shadow-039-ref.html": [
"6f364d09a2b2a33a085af99c9ea92c83e1d07a39",
[]
],
"box-shadow-040-ref.html": [
"14159cfcdf5d06021d98e04d0ee6367d16cdeda7",
[]
],
"box-shadow-041-ref.html": [
"8b93bbdf112e09c3a5e4242b8905d01afda6297a",
[]
],
"box-shadow-042-ref.html": [
"ccc209a02d281b9aa05b590ca9292328e2f60f12",
[]
],
"box-shadow-body-ref.html": [
"d2ae1ebd84b7ed80bcee9e0b457a41c0b8f17cf9",
[]
@ -314388,6 +314512,10 @@
"17d69f306d77411f2ef0a7dab682b119c5b59e50",
[]
],
"placeholder-excluded-properties-ref.html": [
"0e573cb3d6cbac837c9e10552e360aa713fee60b",
[]
],
"selection-contenteditable-011-ref.html": [
"0677a4b6b39f26aa4b3acc7480240b9d061e4929",
[]
@ -319604,6 +319732,10 @@
[]
],
"animation": {
"rotate-transform-equivalent-ref.html": [
"e95e62be888216d9bcd2487c54c1da602973de75",
[]
],
"support": {
"transform-interpolation-reftests.js": [
"0094b8a2c7590151e551aa1fde5be67e82779b6a",
@ -326764,7 +326896,7 @@
[]
],
"interpolation-testcommon.js": [
"16a1c0e7f7fb83f52b3b5d55fda4d49462fa9fe6",
"999a1e0542858689f66c2afac50f43fd742476f8",
[]
],
"numeric-testcommon.js": [
@ -348675,7 +348807,7 @@
[]
],
"gamepad.idl": [
"c8a2fc590a84937912f873a15ef666ab55013c77",
"e8252e2a85b3867fe0390706449ea3269762b7d7",
[]
],
"generic-sensor.idl": [
@ -366550,7 +366682,7 @@
[]
],
"firefox_android.py": [
"bea0d9f4ee33ab051b00cba5b8a4afc017c37501",
"b219079de3df793ba5c74de8706d4c9ad0526194",
[]
],
"ie.py": [
@ -408340,6 +408472,20 @@
{}
]
],
"getclientrects-000.html": [
"be11ba99493c12d75e8dd42ed55ca998bbe66001",
[
null,
{}
]
],
"getclientrects-001.html": [
"630e5ee0f77166a14a911dbf11c68ec41aeabc68",
[
null,
{}
]
],
"going-out-of-flow-after-spanner.html": [
"2fe0e42a7522647b7eca4db1e6f710a9975faaa4",
[
@ -415648,7 +415794,7 @@
]
],
"rotate-composition.html": [
"fa0118d50f457b3021a28a7e12a21c96c1c5a23c",
"f9a4527342ffb44cf389cf9ab5ded0e59492b9e3",
[
null,
{}
@ -452724,10 +452870,10 @@
}
]
],
"idlharness.window.js": [
"idlharness.https.window.js": [
"0bbb0b3c701515743c24ca8ca67a96b5c61fa3cc",
[
"gamepad/idlharness.window.html",
"gamepad/idlharness.https.window.html",
{
"script_metadata": [
[
@ -496872,6 +497018,13 @@
]
},
"mediacapture-fromelement": {
"HTMLCanvasElement-getImageData-noframe.html": [
"48d445f897d7f80b013204f78f52670e31da1c1c",
[
null,
{}
]
],
"capture.html": [
"74858737f13f818ed4f52d71221580957302676f",
[
@ -503446,6 +503599,13 @@
{}
]
],
"fcp-ensure-update-the-rendering-step.html": [
"700707de33a6ada29220d3c914000d1868edd36e",
[
null,
{}
]
],
"fcp-gradient.html": [
"c1e147472ff076cb2aa72b7dfc45cd6d3a00ed34",
[
@ -519182,7 +519342,7 @@
]
],
"scroll-timeline-cssom.tentative.html": [
"d9e4cc08cbe1649ed8c60697f28fd43b86053584",
"1e6f581992f239f863e6a0afea27654d142ee291",
[
null,
{}
@ -540866,6 +541026,13 @@
{}
]
],
"audiobuffersource-duration-loop.html": [
"5fb8536b137ea7c18ff6d77bc29855e772e669f6",
[
null,
{}
]
],
"audiobuffersource-ended.html": [
"b9922f61ef399bf558a2f6d3c61154b9f14a512f",
[
@ -575699,20 +575866,6 @@
{}
]
],
"border-radius-clip-001.htm": [
"bf754be90ff0cf3ee2d65e68c758d88686506787",
[
null,
{}
]
],
"border-radius-clip-002.htm": [
"c8eba29fe9d34d3b5a6b34b9745a03a1c639aa18",
[
null,
{}
]
],
"border-radius-content-edge-001.htm": [
"72cd3a6f2afe26b771fd92d7fe5c568a36b68928",
[

View file

@ -0,0 +1,4 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

@ -1,4 +1,4 @@
[hit-test-floats-003.html]
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -1,4 +0,0 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,2 @@
[border-radius-clip-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[border-radius-clip-002.htm]
expected: FAIL

View file

@ -1,3 +0,0 @@
[border-radius-clipping.html]
type: reftest
disabled: https://github.com/servo/webrender/issues/1256

View file

@ -0,0 +1,2 @@
[box-shadow-041.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[box-shadow-042.html]
expected: FAIL

View file

@ -185,3 +185,126 @@
[Compositing: property <rotate> underlying [1 0 0 90deg\] from add [0 1 0 180deg\] to replace [0 0 1 90deg\] at (0) should be [-4.32978e-17 -0.707107 -0.707107 180deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (-1) should be [0.27 0.53 0.8 10deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (0) should be [0.27 0.53 0.8 50deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (0.25) should be [y 25deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (2) should be [y 200deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (-1) should be [0.27 0.53 0.8 540deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (-1) should be [y -100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (-1) should be [0 -1 0 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (2) should be [0.27 0.53 0.8 -360deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (1) should be [0 0.71 0.71 135deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (0.75) should be [y 75deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (0) should be [0.27 0.53 0.8 360deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (0.25) should be [0.27 0.53 0.8 270deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (1) should be [y 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (2) should be [0.27 0.53 0.8 -270deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (0.25) should be [0.54 0.8 0.26 94.83deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (0.75) should be [y 75deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (2) should be [y 200deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (0.25) should be [y 25deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (-1) should be [0.67 -0.06 -0.74 124.97deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (1) should be [0.27 0.53 0.8 0deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (0) should be [0.27 0.53 0.8 270deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (0.75) should be [y 75deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (0.25) should be [0.27 0.53 0.8 60deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (0) should be [y 0deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (2) should be [-0.52 0.29 0.81 208.96deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (0.75) should be [0.27 0.53 0.8 80deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (1) should be [0.27 0.53 0.8 0deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (1) should be [y 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (2) should be [0.27 0.53 0.8 130deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (0.25) should be [0.27 0.53 0.8 202.5deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (0) should be [0.71 0.71 0 90deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (0.25) should be [y 25deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [none\] to replace [0 1 0 100deg\] at (2) should be [y 200deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (1) should be [y 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (0) should be [0.27 0.53 0.8 360deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 40deg\] from add [2 4 6 10deg\] to add [3 6 9 50deg\] at (1) should be [0.27 0.53 0.8 90deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 0 0 0deg\] from add [1 1 0 90deg\] to replace [0 1 1 135deg\] at (0.75) should be [0.17 0.78 0.61 118.68deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 270deg\] from add [1 2 3 90deg\] to replace [0 1 0 100deg\] at (-1) should be [0 -1 0 100deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [0 1 0 100deg\] at (0) should be [0.27 0.53 0.8 360deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [1 2 3 90deg\] from add [2 4 6 270deg\] to replace [none\] at (-1) should be [0.27 0.53 0.8 720deg\]]
expected: FAIL
[Compositing: property <rotate> underlying [none\] from add [2 4 6 270deg\] to replace [none\] at (0.75) should be [0.27 0.53 0.8 67.5deg\]]
expected: FAIL

View file

@ -0,0 +1,2 @@
[rotate-transform-equivalent.html]
expected: TIMEOUT

View file

@ -318,18 +318,18 @@
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate 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 */*;charset=gbk]
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

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

View file

@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
[Content-Type-Options%3A%20nosniff]
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
expected: FAIL

View file

@ -0,0 +1,10 @@
[idlharness.https.window.html]
[GamepadEvent must be primary interface of new GamepadEvent("gamepad")]
expected: FAIL
[GamepadEvent interface: new GamepadEvent("gamepad") must inherit property "gamepad" with the proper type]
expected: FAIL
[Stringification of new GamepadEvent("gamepad")]
expected: FAIL

View file

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

View file

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

View file

@ -172,6 +172,3 @@
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
expected: FAIL
[HTML (standards) IMG usemap="no-hash-name"]
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2,9 +2,3 @@
[DOMParser]
expected: FAIL
[createHTMLDocument]
expected: FAIL
[<template>]
expected: FAIL

View file

@ -0,0 +1,4 @@
[async_004.htm]
[async script executes as soon as possible after a download is complete]
expected: FAIL

View file

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

View file

@ -1,4 +0,0 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

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

View file

@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[audiobuffersource-duration-loop.html]
[X The array length does not match.]
expected: FAIL

View file

@ -449,3 +449,6 @@
[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\]\t-3.5237828125000000e+4\t9.3139332532882690e-1\t3.5238759518325329e+4\t3.7834455712772411e+4\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 3.5238759518325329e+4 at index of 28696.\n\tMax RelError of 3.7834455712772411e+4 at index of 28696.\n]
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\]\t-1.0115346998129159e-34\t9.3139332532882690e-1\t9.3139332532882690e-1\t1.0000000000000000e+0\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 9.3139332532882690e-1 at index of 28696.\n\tMax RelError of 1.0000000000000000e+0 at index of 28696.\n]
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -1,6 +1,5 @@
[003.html]
type: testharness
expected: ERROR
[shared]
expected: FAIL

View file

@ -1,34 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: 'Overflow' clips to the curve of the rounded corner.</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/css3-background/#border-radius" />
<meta name="flags" content="" />
<meta name="assert" content="'Overflow' clips to the curve of the rounded corner." />
<style type="text/css">
div
{
border: solid black;
border-radius: 40px;
height: 1in;
width: 2in;
overflow: hidden;
}
</style>
</head>
<body>
<p>Test passes if the 'Filler Text' below is clipped to the curve of the rounded corners.</p>
<div>
Filler Text. Filler Text.
Filler Text. Filler Text.
Filler Text. Filler Text.
Filler Text. Filler Text.
Filler Text. Filler Text.
Filler Text. Filler Text.
Filler Text. Filler Text.
Filler Text. Filler Text.
Filler Text. Filler Text.
</div>
</body>
</html>

View file

@ -0,0 +1,73 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Backgrounds and Borders Test: 'border-radius' and corner-clipping of content</title>
<link rel="author" title="zhouli" href="mailto:liz@oupeng.com">
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
<link rel="help" href="http://www.w3.org/TR/css-background-3/#corner-clipping">
<link rel="match" href="reference/border-radius-clipping-ref.html">
<meta name="assert" content="Test passes if a box with border-radius that clips its content to a box edge clips to the border-radius curve in the corners.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
body > div { float: left; }
.round
{
border: transparent double 20px;
border-radius: 50%;
padding: 10px;
}
#bg, #txt, #img-contain
{
overflow: hidden;
width: 80px;
}
#bg > div
{
margin: -10px;
background-image: url("support/100x100-green-with-red-corners.png");
height: 100px;
width: 100px;
}
#txt > div
{
margin: -10px;
color: green;
font: 50px/1 Ahem;
}
img
{
display: block;
}
#img-contain > img
{
margin: -10px;
}
#img-self
{
margin: -10px;
}
</style>
<p>Test passes if there are four filled green circles and <strong>no red</strong>.
<div id="bg" class="round">
<div></div>
</div>
<div id="txt" class="round">
<div>XX<br>XX</div>
</div>
<div id="img-contain" class="round">
<img src="support/swatch-green.png" width=100 height=100>
</div>
<div>
<img id="img-self" class="round" src="support/swatch-green.png" width=100>
</div>

View file

@ -1,36 +1,58 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE html>
<html>
<head>
<title>CSS Test: Background is clipped to the curve of the content-box when 'background-clip: content-box'</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/css3-background/#border-radius" />
<meta name="flags" content="" />
<meta name="assert" content="Background is clipped to the curve of the content-box when 'background-clip: content-box'" />
<link rel="author" title="Microsoft" href="http://www.microsoft.com/">
<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
<link rel="match" href="reference/border-radius-clip-002-ref.htm">
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#corner-clipping">
<meta name="assert" content="Background is clipped to the curve of the content-box when 'background-clip: content-box'">
<style type="text/css">
#test
#test-base
{
width: 100px;
height: 100px;
border: 10px solid black;
padding: 10px;
width: 98px;
height: 98px;
border: 10px double black;
padding: 11px;
border-radius: 40px;
background: red;
background: red url(support/swatch-red.png);
background-clip: content-box;
}
#reference
#reference-cover
{
margin-top: -120px;
margin-left: 20px;
margin: -120px 0 40px 20px;
width: 100px;
height: 100px;
border-radius: 20px;
background-color: black;
}
#reference-base
{
width: 98px;
height: 98px;
margin-left: 20px;
border-radius: 20px;
background: red url(support/swatch-red.png);
}
#test-cover
{
margin-top: -120px;
border: 10px double black;
padding: 10px;
width: 100px;
height: 100px;
border-radius: 40px;
background-color: black;
background-clip: content-box;
}
</style>
</head>
<body>
<p>Test passes if there is no red visible on the page.</p>
<div id="test"></div>
<div id="reference"></div>
<div id="test-base"></div>
<div id="reference-cover"></div>
<div id="reference-base"></div>
<div id="test-cover"></div>
</body>
</html>
</html>

View file

@ -1,37 +0,0 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Backgrounds and Borders Test: 'border-radius' and corner-clipping of content elements</title>
<link rel="author" title="zhouli" href="mailto:liz@oupeng.com">
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="http://www.w3.org/TR/css3-background/#corner-clipping">
<link rel="match" href="reference/border-radius-clipping-ref.html">
<meta content="" name="flag">
<meta name="assert" content="When set with 'overflow: hidden', an outer container must clip background area of its child element at its corners. In this test, the outer container has a 'border-radius' declaration which implies that the clipping must occur at its curves.">
<style>
div#parent
{
border: transparent solid 20px;
border-radius: 50%;
overflow: hidden;
width: 100px;
}
div#son
{
background-color: red;
background-image: url("support/100x100-green-with-red-corners.png");
height: 100px;
width: 100px;
}
</style>
<p>Test passes if there is a filled green circle and <strong>no red</strong>.
<div id="parent">
<div id="son"></div>
</div>

View file

@ -0,0 +1,63 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Backgrounds Test: box-shadow and empty box (edge)</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#the-box-shadow">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<meta content="" name="flags">
<meta content="This test checks that an empty box can have a box shadow." name="assert">
<!--
<shadow> = inset? && <length>{2,4} && <color>?
A comma-separated pair of numbers in curly braces {A,B}
indicates that the preceding type, word, or group occurs
at least A and at most B times.
A question mark (?) indicates that the preceding type,
word, or group is optional (occurs zero or one times).
The components of each <shadow> are interpreted as follows:
1st <length>
Specifies the horizontal offset
of the shadow. A positive value draws a shadow that is offset to the right of the box, a negative length to the left.
2nd <length>
Specifies the vertical offset
of the shadow. A positive value offsets the shadow down, a negative one up.
4th <length>
Specifies the spread distance. Positive values cause the shadow to expand in all directions by the specified radius. Negative values cause the shadow to contract.
-->
<style>
div#green-overlapping-test
{
background-color: red;
height: 0px;
width: 0px;
box-shadow: green 50px 50px 0px 50px;
}
div#red-overlapped-reference
{
background-color: red;
height: 100px;
position: relative;
width: 100px;
z-index: -1;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.
<div id="green-overlapping-test"></div>
<div id="red-overlapped-reference"></div>

View file

@ -0,0 +1,78 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Backgrounds Test: box-shadow in 3 sub-tests with not inset and Npx 0px</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#the-box-shadow">
<link rel="match" href="reference/box-shadow-039-ref.html">
<meta content="" name="flags">
<!--
<shadow> = inset? && <length>{2,4} && <color>?
A comma-separated pair of numbers in curly braces {A,B}
indicates that the preceding type, word, or group occurs
at least A and at most B times.
A question mark (?) indicates that the preceding type,
word, or group is optional (occurs zero or one times).
The components of each <shadow> are interpreted as follows:
1st <length>
Specifies the horizontal offset
of the shadow. A positive value draws a shadow that is offset to
the right of the box, a negative length to the left.
2nd <length>
Specifies the vertical offset
of the shadow. A positive value offsets the shadow down, a negative one up.
4th <length>
Specifies the spread distance.
Positive values cause the shadow to expand in all directions
by the specified radius.
Negative values cause the shadow to contract.
-->
<style>
div
{
background-color: rgba(0, 0, 255, 0.5); /* semi-transparent blue */
border: black double 18px;
height: 36px;
margin-bottom: 36px;
width: 36px;
}
/* Npx 0px, zero spread, not-inset */
div#sub-test1
{
box-shadow: 36px 0px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
/* Npx 0px, positive spread, not-inset */
div#sub-test2
{
box-shadow: 36px 0px 0px 18px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
/* Npx 0px, negative spread, not-inset */
div#sub-test3
{
box-shadow: 36px 0px 0px -18px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
</style>
<h3>Not inset and Npx 0px: 36px 0px</h3>
<div id="sub-test1"></div>
<div id="sub-test2"></div>
<div id="sub-test3"></div>

View file

@ -0,0 +1,78 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Backgrounds Test: box-shadow in 3 sub-tests with not inset and Npx Mpx</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#the-box-shadow">
<link rel="match" href="reference/box-shadow-040-ref.html">
<meta content="" name="flags">
<!--
<shadow> = inset? && <length>{2,4} && <color>?
A comma-separated pair of numbers in curly braces {A,B}
indicates that the preceding type, word, or group occurs
at least A and at most B times.
A question mark (?) indicates that the preceding type,
word, or group is optional (occurs zero or one times).
The components of each <shadow> are interpreted as follows:
1st <length>
Specifies the horizontal offset
of the shadow. A positive value draws a shadow that is offset to
the right of the box, a negative length to the left.
2nd <length>
Specifies the vertical offset
of the shadow. A positive value offsets the shadow down, a negative one up.
4th <length>
Specifies the spread distance.
Positive values cause the shadow to expand in all directions
by the specified radius.
Negative values cause the shadow to contract.
-->
<style>
div
{
background-color: rgba(0, 0, 255, 0.5); /* semi-transparent blue */
border: black double 18px;
height: 36px;
margin-bottom: 54px;
width: 36px;
}
/* Npx Mpx, zero spread, not-inset */
div#sub-test4
{
box-shadow: 36px 18px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
/* Npx Mpx, positive spread, not-inset */
div#sub-test5
{
box-shadow: 36px 18px 0px 18px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
/* Npx Mpx, negative spread, not-inset */
div#sub-test6
{
box-shadow: 36px 18px 0px -18px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
</style>
<h3>Not inset and Npx Mpx: 36px 18px</h3>
<div id="sub-test4"></div>
<div id="sub-test5"></div>
<div id="sub-test6"></div>

View file

@ -0,0 +1,78 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Backgrounds Test: box-shadow in 3 sub-tests with inset and Npx 0px</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#the-box-shadow">
<link rel="match" href="reference/box-shadow-041-ref.html">
<meta content="" name="flags">
<!--
<shadow> = inset? && <length>{2,4} && <color>?
A comma-separated pair of numbers in curly braces {A,B}
indicates that the preceding type, word, or group occurs
at least A and at most B times.
A question mark (?) indicates that the preceding type,
word, or group is optional (occurs zero or one times).
The components of each <shadow> are interpreted as follows:
1st <length>
Specifies the horizontal offset
of the shadow. A positive value draws a shadow that is offset to
the right of the box, a negative length to the left.
2nd <length>
Specifies the vertical offset
of the shadow. A positive value offsets the shadow down, a negative one up.
4th <length>
Specifies the spread distance.
Positive values cause the shadow to expand in all directions
by the specified radius.
Negative values cause the shadow to contract.
-->
<style>
div
{
background-color: rgba(0, 0, 255, 0.5); /* semi-transparent blue */
border: black double 18px;
height: 36px;
margin-bottom: 36px;
width: 36px;
}
/* inset, Npx 0px, zero spread */
div#sub-test7
{
box-shadow: inset 18px 0px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
/* inset, Npx 0px, positive spread */
div#sub-test8
{
box-shadow: inset 18px 0px 0px 12px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
/* inset, Npx 0px, negative spread */
div#sub-test9
{
box-shadow: inset 18px 0px 0px -6px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
</style>
<h3>With inset and Npx 0px: 18px 0px</h3>
<div id="sub-test7"></div>
<div id="sub-test8"></div>
<div id="sub-test9"></div>

View file

@ -0,0 +1,78 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Backgrounds Test: box-shadow in 3 sub-tests with inset and Npx Mpx</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#the-box-shadow">
<link rel="match" href="reference/box-shadow-042-ref.html">
<meta content="" name="flags">
<!--
<shadow> = inset? && <length>{2,4} && <color>?
A comma-separated pair of numbers in curly braces {A,B}
indicates that the preceding type, word, or group occurs
at least A and at most B times.
A question mark (?) indicates that the preceding type,
word, or group is optional (occurs zero or one times).
The components of each <shadow> are interpreted as follows:
1st <length>
Specifies the horizontal offset
of the shadow. A positive value draws a shadow that is offset to
the right of the box, a negative length to the left.
2nd <length>
Specifies the vertical offset
of the shadow. A positive value offsets the shadow down, a negative one up.
4th <length>
Specifies the spread distance.
Positive values cause the shadow to expand in all directions
by the specified radius.
Negative values cause the shadow to contract.
-->
<style>
div
{
background-color: rgba(0, 0, 255, 0.5); /* semi-transparent blue */
border: black double 18px;
height: 36px;
margin-bottom: 36px;
width: 36px;
}
/* inset, Npx Mpx, zero spread */
div#sub-test10
{
box-shadow: inset 18px 12px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
/* inset, Npx Mpx, positive spread */
div#sub-test11
{
box-shadow: inset 18px 12px 0px 12px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
/* inset, Npx Mpx, negative spread */
div#sub-test12
{
box-shadow: inset 18px 12px 0px -6px rgba(255, 165, 0, 0.5); /* semi-transparent orange */
}
</style>
<h3>With inset and Npx Mpx: 18px 12px</h3>
<div id="sub-test10"></div>
<div id="sub-test11"></div>
<div id="sub-test12"></div>

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Test: Background is clipped to the curve of the content-box when 'background-clip: content-box'</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/">
<style type="text/css">
.base
{
width: 98px;
height: 98px;
border: 10px double black;
padding: 11px;
border-radius: 40px;
}
.cover
{
margin: -120px 0 40px 20px;
width: 100px;
height: 100px;
border-radius: 20px;
background-color: black;
}
</style>
</head>
<body>
<p>Test passes if there is no red visible on the page.</p>
<div class="base"></div>
<div class="cover"></div>
<div class="base"></div>
<div class="cover"></div>
</body>
</html>

View file

@ -11,14 +11,19 @@
{
background-color: green;
border-radius: 50%;
margin: 20px;
height: 100px;
left: 20px;
position: relative;
top: 20px;
width: 100px;
float: left;
}
</style>
<p>Test passes if there is a filled green circle and <strong>no red</strong>.
<p>Test passes if there are four filled green circles and <strong>no red</strong>.
<div></div>
<div></div>
<div></div>
<div></div>

View file

@ -0,0 +1,75 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference Test</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<style>
div.blue
{
background-color: rgba(0, 0, 255, 0.5); /* semi-transparent blue */
border: black double 18px;
height: 36px;
width: 36px;
}
div#sub-test1-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 72px; /* offsetHeight == 72px */
height: 72px;
left: 72px; /* offsetWidth == 72px */
position: relative;
width: 36px;
}
div#sub-test21-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 126px; /* 18px + 72px + 36px == 126px */
height: 18px;
left: 18px;
position: relative;
width: 108px;
}
div#sub-test22-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 126px;
height: 72px;
left: 72px;
position: relative;
width: 54px;
}
div#sub-test23-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 126px;
height: 18px;
left: 18px;
position: relative;
width: 108px;
}
div#sub-test3-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 162px;
height: 36px;
left: 72px;
position: relative;
width: 18px;
}
</style>
<h3>Not inset and Npx 0px: 36px 0px</h3>
<div class="blue"></div><div id="sub-test1-orange"></div>
<div class="blue" style="position: relative; bottom: 36px;"></div><div id="sub-test21-orange"></div><div id="sub-test22-orange"></div><div id="sub-test23-orange"></div>
<div class="blue" style="position: relative; bottom: 108px;"></div><div id="sub-test3-orange"></div>

View file

@ -0,0 +1,75 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference Test</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<style>
div.blue
{
background-color: rgba(0, 0, 255, 0.5); /* semi-transparent blue */
border: black double 18px;
height: 36px;
width: 36px;
}
div#sub-test41-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 54px; /* offsetHeight == 54px */
height: 54px;
left: 72px;
position: relative;
width: 36px;
}
div#sub-test42-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 54px;
height: 18px;
left: 36px;
position: relative;
width: 72px;
}
div#sub-test51-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 90px; /* 18px + 72px == 90px */
height: 72px;
left: 72px;
position: relative;
width: 54px;
}
div#sub-test52-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 90px;
height: 36px;
left: 18px;
position: relative;
width: 108px;
}
div#sub-test6-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
bottom: 108px;
height: 36px;
left: 72px;
position: relative;
width: 18px;
}
</style>
<h3>Not inset and Npx Mpx: 36px 18px</h3>
<div class="blue"></div><div id="sub-test41-orange"></div><div id="sub-test42-orange"></div>
<div class="blue" style="position: relative; bottom: 18px;"></div><div id="sub-test51-orange"></div><div id="sub-test52-orange"></div>
<div class="blue" style="position: relative; bottom: 72px;"></div><div id="sub-test6-orange"></div>

View file

@ -0,0 +1,54 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference Test</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<style>
div.blue
{
background-color: rgba(0, 0, 255, 0.5); /* semi-transparent blue */
border: black double 18px;
height: 36px;
margin-bottom: 36px;
width: 36px;
}
div#sub-test7-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 36px;
width: 18px;
}
div#sub-test81-orange , div#sub-test83-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 12px;
width: 36px;
}
div#sub-test82-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 12px;
width: 30px;
}
div#sub-test9-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 36px;
width: 12px;
}
</style>
<h3>With inset and Npx 0px: 18px 0px</h3>
<div class="blue"><div id="sub-test7-orange"></div></div>
<div class="blue"><div id="sub-test81-orange"></div><div id="sub-test82-orange"></div><div id="sub-test83-orange"></div></div>
<div class="blue"><div id="sub-test9-orange"></div></div>

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference Test</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<style>
div.blue
{
background-color: rgba(0, 0, 255, 0.5); /* semi-transparent blue */
border: black double 18px;
height: 36px;
margin-bottom: 36px;
width: 36px;
}
div#sub-test101-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 12px;
width: 36px;
}
div#sub-test102-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 24px;
width: 18px;
}
div#sub-test111-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 24px;
width: 36px;
}
div#sub-test112-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 12px;
width: 30px;
}
div#sub-test121-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 6px;
width: 36px;
}
div#sub-test122-orange
{
background-color: rgba(255, 165, 0, 0.5); /* semi-transparent orange */
height: 30px;
width: 12px;
}
</style>
<h3>With inset and Npx Mpx: 18px 12px</h3>
<div class="blue"><div id="sub-test101-orange"></div><div id="sub-test102-orange"></div></div>
<div class="blue"><div id="sub-test111-orange"></div><div id="sub-test112-orange"></div></div>
<div class="blue"><div id="sub-test121-orange"></div><div id="sub-test122-orange"></div></div>

View file

@ -0,0 +1,148 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://developer.mozilla.org/en-US/docs/Web/API/Element/getClientRects">
<link rel="help" href="https://drafts.csswg.org/css-multicol/">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
.multicol {
visibility: hidden;
position: absolute;
left: 100px;
top: 50px;
columns: 3;
column-gap: 10px;
inline-size: 290px;
font: 20px/1 Ahem;
orphans: 1;
widows: 1;
}
#horizontalTbLtr {
writing-mode: horizontal-tb;
}
#verticalLrLtr {
writing-mode: vertical-lr;
}
#verticalRlLtr {
writing-mode: vertical-rl;
}
#horizontalTbRtl {
writing-mode: horizontal-tb;
direction: rtl;
}
#verticalLrRtl {
writing-mode: vertical-lr;
direction: rtl;
}
#verticalRlRtl {
writing-mode: vertical-rl;
direction: rtl;
}
</style>
<div class="multicol" id="horizontalTbLtr">
<div style="block-size:20px;"></div>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="verticalLrLtr">
<div style="block-size:20px;"></div>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="verticalRlLtr">
<div style="block-size:20px;"></div>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="horizontalTbRtl" >
<div style="block-size:20px;"></div>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="verticalLrRtl">
<div style="block-size:20px;"></div>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="verticalRlRtl">
<div style="block-size:20px;"></div>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
var span = document.querySelector("#horizontalTbLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 100);
assert_equals(rects[0].top, 70);
assert_equals(rects[1].left, 200);
assert_equals(rects[1].top, 50);
assert_equals(rects[2].left, 200);
assert_equals(rects[2].top, 70);
assert_equals(rects[3].left, 300);
assert_equals(rects[3].top, 50);
}, "horizontal-tb ltr");
test(()=> {
var span = document.querySelector("#verticalLrLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 120);
assert_equals(rects[0].top, 50);
assert_equals(rects[1].left, 100);
assert_equals(rects[1].top, 150);
assert_equals(rects[2].left, 120);
assert_equals(rects[2].top, 150);
assert_equals(rects[3].left, 100);
assert_equals(rects[3].top, 250);
}, "vertical-lr ltr");
test(()=> {
var span = document.querySelector("#verticalRlLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 100);
assert_equals(rects[0].top, 50);
assert_equals(rects[1].left, 120);
assert_equals(rects[1].top, 150);
assert_equals(rects[2].left, 100);
assert_equals(rects[2].top, 150);
assert_equals(rects[3].left, 120);
assert_equals(rects[3].top, 250);
}, "vertical-rl ltr");
test(()=> {
var span = document.querySelector("#horizontalTbRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 310);
assert_equals(rects[0].top, 70);
assert_equals(rects[1].left, 210);
assert_equals(rects[1].top, 50);
assert_equals(rects[2].left, 210);
assert_equals(rects[2].top, 70);
assert_equals(rects[3].left, 110);
assert_equals(rects[3].top, 50);
}, "horizontal-tb rtl");
test(()=> {
var span = document.querySelector("#verticalLrRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 120);
assert_equals(rects[0].top, 260);
assert_equals(rects[1].left, 100);
assert_equals(rects[1].top, 160);
assert_equals(rects[2].left, 120);
assert_equals(rects[2].top, 160);
assert_equals(rects[3].left, 100);
assert_equals(rects[3].top, 60);
}, "vertical-lr rtl");
test(()=> {
var span = document.querySelector("#verticalRlRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 100);
assert_equals(rects[0].top, 260);
assert_equals(rects[1].left, 120);
assert_equals(rects[1].top, 160);
assert_equals(rects[2].left, 100);
assert_equals(rects[2].top, 160);
assert_equals(rects[3].left, 120);
assert_equals(rects[3].top, 60);
}, "vertical-rl rtl");
</script>

View file

@ -0,0 +1,148 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://developer.mozilla.org/en-US/docs/Web/API/Element/getClientRects">
<link rel="help" href="https://drafts.csswg.org/css-multicol/">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
.multicol {
visibility: hidden;
position: absolute;
left: 100px;
top: 50px;
columns: 3;
column-gap: 10px;
inline-size: 290px;
font: 20px/1 Ahem;
orphans: 1;
widows: 1;
}
#horizontalTbLtr {
writing-mode: horizontal-tb;
}
#verticalLrLtr {
writing-mode: vertical-lr;
}
#verticalRlLtr {
writing-mode: vertical-rl;
}
#horizontalTbRtl {
writing-mode: horizontal-tb;
direction: rtl;
}
#verticalLrRtl {
writing-mode: vertical-lr;
direction: rtl;
}
#verticalRlRtl {
writing-mode: vertical-rl;
direction: rtl;
}
</style>
<div class="multicol" id="horizontalTbLtr">
<br>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="verticalLrLtr">
<br>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="verticalRlLtr">
<br>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="horizontalTbRtl" >
<br>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="verticalLrRtl">
<br>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<div class="multicol" id="verticalRlRtl">
<br>
<span>XXXX XXXX XXXX XXXX</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
var span = document.querySelector("#horizontalTbLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 100);
assert_equals(rects[0].top, 70);
assert_equals(rects[1].left, 200);
assert_equals(rects[1].top, 50);
assert_equals(rects[2].left, 200);
assert_equals(rects[2].top, 70);
assert_equals(rects[3].left, 300);
assert_equals(rects[3].top, 50);
}, "horizontal-tb ltr");
test(()=> {
var span = document.querySelector("#verticalLrLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 120);
assert_equals(rects[0].top, 50);
assert_equals(rects[1].left, 100);
assert_equals(rects[1].top, 150);
assert_equals(rects[2].left, 120);
assert_equals(rects[2].top, 150);
assert_equals(rects[3].left, 100);
assert_equals(rects[3].top, 250);
}, "vertical-lr ltr");
test(()=> {
var span = document.querySelector("#verticalRlLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 100);
assert_equals(rects[0].top, 50);
assert_equals(rects[1].left, 120);
assert_equals(rects[1].top, 150);
assert_equals(rects[2].left, 100);
assert_equals(rects[2].top, 150);
assert_equals(rects[3].left, 120);
assert_equals(rects[3].top, 250);
}, "vertical-rl ltr");
test(()=> {
var span = document.querySelector("#horizontalTbRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 310);
assert_equals(rects[0].top, 70);
assert_equals(rects[1].left, 210);
assert_equals(rects[1].top, 50);
assert_equals(rects[2].left, 210);
assert_equals(rects[2].top, 70);
assert_equals(rects[3].left, 110);
assert_equals(rects[3].top, 50);
}, "horizontal-tb rtl");
test(()=> {
var span = document.querySelector("#verticalLrRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 120);
assert_equals(rects[0].top, 260);
assert_equals(rects[1].left, 100);
assert_equals(rects[1].top, 160);
assert_equals(rects[2].left, 120);
assert_equals(rects[2].top, 160);
assert_equals(rects[3].left, 100);
assert_equals(rects[3].top, 60);
}, "vertical-lr rtl");
test(()=> {
var span = document.querySelector("#verticalRlRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
assert_equals(rects[0].left, 100);
assert_equals(rects[0].top, 260);
assert_equals(rects[1].left, 120);
assert_equals(rects[1].top, 160);
assert_equals(rects[2].left, 100);
assert_equals(rects[2].top, 160);
assert_equals(rects[3].left, 120);
assert_equals(rects[3].top, 60);
}, "vertical-rl rtl");
</script>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<title>::placeholder should not support 'writing-mode', 'direction', and 'text-orientation'</title>
<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#placeholder-pseudo">
<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#first-line-styling">
<link rel="match" href="reference/placeholder-excluded-properties-ref.html">
<style>
.horizontal::placeholder {
writing-mode: vertical-rl;
direction: rtl;
}
.vertical {
writing-mode: vertical-rl;
}
.vertical::placeholder {
text-orientation: upright;
}
</style>
<body>
<input class="horizontal" placeholder="placeholder">
<input class="vertical" placeholder="placeholder">
</body>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<style>
.vertical {
writing-mode: vertical-rl;
}
</style>
<body>
<input placeholder="placeholder">
<input class="vertical" placeholder="placeholder">
</body>

View file

@ -10,11 +10,59 @@
<body>
<script>
// Numerical precision may cause an axis aligned rotation to appear slightly
// misaligned. Convert to (x, y, z, angle) form with rounding for comparison.
function parseRotation(args) {
const array = args.split(' ');
if (array.length == 1) {
// Angle or 'none'.
return !!parseFloat(args) ? roundNumbers('0 0 1 ' + args) : args;
}
if (array.length == 2) {
// Axis name + angle
let axis = array[0];
let angle = array[1];
switch (array[0]) {
case 'x':
axis = '1 0 0 ';
break;
case 'y':
axis = '0 1 0';
break;
case 'z':
axis = '0 0 1';
break;
}
return roundNumbers(axis + ' ' + angle);
}
if (array.length == 4) {
// Axis as [x,y,z] triplet + angle.
// Normalize the axis (if possible) for comparison.
let x = parseFloat(array[0]);
let y = parseFloat(array[1]);
let z = parseFloat(array[2]);
const angle = array[3];
const length = Math.sqrt(x*x + y*y + z*z);
if (length > 1e-4) {
x /= length;
y /= length;
z /= length;
}
return roundNumbers(`${x} ${y} ${z} ${angle}`);
}
return args;
}
function compareRotations(actual, expected) {
assert_equals(parseRotation(actual), parseRotation(expected));
}
test_composition({
property: 'rotate',
underlying: '100deg',
addFrom: '10deg',
addTo: '30deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '90deg'},
{at: 0, expect: '110deg'},
@ -29,6 +77,7 @@ test_composition({
underlying: '1 0 0 200deg',
addFrom: '1 0 0 -100deg',
replaceTo: '1 0 0 40deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '1 0 0 160deg'},
{at: 0, expect: '1 0 0 100deg'},
@ -43,6 +92,7 @@ test_composition({
underlying: '0 1 0 -40deg',
replaceFrom: '0 1 0 50deg',
addTo: '0 1 0 10deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '0 1 0 130deg'},
{at: 0, expect: '0 1 0 50deg'},
@ -57,13 +107,14 @@ test_composition({
underlying: '1 2 3 40deg',
addFrom: '2 4 6 10deg',
addTo: '3 6 9 50deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '1 2 3 10deg'},
{at: 0, expect: '1 2 3 50deg'},
{at: 0.25, expect: '1 2 3 60deg'},
{at: 0.75, expect: '1 2 3 80deg'},
{at: 1, expect: '1 2 3 90deg'},
{at: 2, expect: '1 2 3 130deg'},
{at: -1, expect: '0.27 0.53 0.8 10deg'},
{at: 0, expect: '0.27 0.53 0.8 50deg'},
{at: 0.25, expect: '0.27 0.53 0.8 60deg'},
{at: 0.75, expect: '0.27 0.53 0.8 80deg'},
{at: 1, expect: '0.27 0.53 0.8 90deg'},
{at: 2, expect: '0.27 0.53 0.8 130deg'},
]);
test_composition({
@ -71,13 +122,15 @@ test_composition({
underlying: '1 2 3 270deg',
addFrom: '1 2 3 90deg',
replaceTo: '0 1 0 100deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '-5.49276e-17 -1 -1.64783e-16 100deg'},
{at: 0, expect: '1 2 3 360deg'},
{at: 0.25, expect: '-1.20172e-16 1 -3.60516e-16 25deg'},
{at: 0.75, expect: '-1.51909e-17 1 -4.55726e-17 75deg'},
{at: 1, expect: '0 1 0 100deg'},
{at: 2, expect: '-3.3235e-17 -1 -9.97049e-17 160deg'},
{at: -1, expect: '0 -1 0 100deg'},
{at: 0, expect: '0.27 0.53 0.8 360deg'},
{at: 0.25, expect: 'y 25deg'},
{at: 0.75, expect: 'y 75deg'},
{at: 1, expect: 'y 100deg'},
// Accept both the SLERP and the common axis solution, which are equivalent.
{at: 2, expect: '0 -1 0 160deg', option: 'y 200deg'},
]);
test_composition({
@ -85,27 +138,30 @@ test_composition({
underlying: '1 2 3 90deg',
addFrom: '2 4 6 270deg',
replaceTo: '0 1 0 100deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '-5.49276e-17 -1 -1.64783e-16 100deg'},
{at: 0, expect: '1 2 3 360deg'},
{at: 0.25, expect: '-1.20172e-16 1 -3.60516e-16 25deg'},
{at: 0.75, expect: '-1.51909e-17 1 -4.55726e-17 75deg'},
{at: 1, expect: '0 1 0 100deg'},
{at: 2, expect: '-3.3235e-17 -1 -9.97049e-17 160deg'},
{at: -1, expect: '0 -1 0 100deg'},
{at: 0, expect: '0.27 0.53 0.8 360deg'},
{at: 0.25, expect: 'y 25deg'},
{at: 0.75, expect: 'y 75deg'},
{at: 1, expect: 'y 100deg'},
// Accept both the SLERP and the common axis solution, which are equivalent.
{at: 2, expect: '0 -1 0 160deg', option: 'y 200deg'},
]);
test_composition({
property: 'rotate',
underlying: '1 0 0 90deg',
addFrom: '0 1 0 180deg',
replaceTo: '0 0 1 90deg',
underlying: '1 0 0 0deg',
addFrom: '1 1 0 90deg',
replaceTo: '0 1 1 135deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '-6.12323e-17 -1 1.57009e-16 90deg'},
{at: 0, expect: '-4.32978e-17 -0.707107 -0.707107 180deg'},
{at: 0.25, expect: '-1.48952e-16 -0.894427 -0.447214 131.81deg'},
{at: 0.75, expect: '-2.94392e-17 -0.707107 0.707107 70.5288deg'},
{at: 1, expect: '90deg'},
{at: 2, expect: '-6.12323e-17 -1 -4.71028e-16 90deg'},
{at: -1, expect: '0.67 -0.06 -0.74 124.97deg'},
{at: 0, expect: '0.71 0.71 0 90deg'},
{at: 0.25, expect: '0.54 0.8 0.26 94.83deg'},
{at: 0.75, expect: '0.17 0.78 0.61 118.68deg'},
{at: 1, expect: '0 0.71 0.71 135deg'},
{at: 2, expect: '-0.52 0.29 0.81 208.96deg'},
]);
test_composition({
@ -113,13 +169,14 @@ test_composition({
underlying: 'none',
addFrom: 'none',
replaceTo: '0 1 0 100deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '0 1 0 -100deg'},
{at: 0, expect: 'none'},
{at: 0.25, expect: '0 1 0 25deg'},
{at: 0.75, expect: '0 1 0 75deg'},
{at: 1, expect: '0 1 0 100deg'},
{at: 2, expect: '0 1 0 200deg'},
{at: -1, expect: 'y -100deg'},
{at: 0, expect: 'y 0deg'},
{at: 0.25, expect: 'y 25deg'},
{at: 0.75, expect: 'y 75deg'},
{at: 1, expect: 'y 100deg'},
{at: 2, expect: 'y 200deg'},
]);
test_composition({
@ -127,13 +184,14 @@ test_composition({
underlying: 'none',
addFrom: '2 4 6 270deg',
replaceTo: 'none',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '2 4 6 540deg'},
{at: 0, expect: '2 4 6 270deg'},
{at: 0.25, expect: '2 4 6 202.5deg'},
{at: 0.75, expect: '2 4 6 67.5deg'},
{at: 1, expect: 'none'},
{at: 2, expect: '2 4 6 -270deg'},
{at: -1, expect: '0.27 0.53 0.8 540deg'},
{at: 0, expect: '0.27 0.53 0.8 270deg'},
{at: 0.25, expect: '0.27 0.53 0.8 202.5deg'},
{at: 0.75, expect: '0.27 0.53 0.8 67.5deg'},
{at: 1, expect: '0.27 0.53 0.8 0deg'},
{at: 2, expect: '0.27 0.53 0.8 -270deg'},
]);
test_composition({
@ -141,6 +199,7 @@ test_composition({
underlying: '1 2 3 90deg',
addFrom: 'none',
replaceTo: '0 1 0 100deg',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '0.31 -0.22 0.92 131.66deg'},
{at: 0, expect: '1 2 3 90deg'},
@ -155,13 +214,14 @@ test_composition({
underlying: '1 2 3 90deg',
addFrom: '2 4 6 270deg',
replaceTo: 'none',
comparisonFunction: compareRotations
}, [
{at: -1, expect: '1 2 3 720deg'},
{at: 0, expect: '1 2 3 360deg'},
{at: 0.25, expect: '1 2 3 270deg'},
{at: 0.75, expect: '1 2 3 90deg'},
{at: 1, expect: 'none'},
{at: 2, expect: '1 2 3 -360deg'},
{at: -1, expect: '0.27 0.53 0.8 720deg'},
{at: 0, expect: '0.27 0.53 0.8 360deg'},
{at: 0.25, expect: '0.27 0.53 0.8 270deg'},
{at: 0.75, expect: '0.27 0.53 0.8 90deg'},
{at: 1, expect: '0.27 0.53 0.8 0deg'},
{at: 2, expect: '0.27 0.53 0.8 -360deg'},
]);
</script>
</body>

View file

@ -0,0 +1,54 @@
<!doctype html>
<html class="reftest-wait">
<meta charset="utf-8">
<title>Reference for rotate transform equivalent</title>
<script src="/common/reftest-wait.js"></script>
<style>
.block {
border: 2px solid white; /* Avoid anti-aliasing artifacts */
height: 100px;
width: 100px;
position: absolute;
left: 100px;
top: 100px;
}
.overlay {
background: green;
z-index: 2;
}
</style>
<body>
<div id="transform" class="block overlay"></div>
<script>
'use strict';
async function waitForNextFrame() {
return new Promise(resolve => {
window.requestAnimationFrame(() => {
resolve();
});
});
}
async function createAnimation(elementName, keyframes) {
const element = document.getElementById(elementName);
const anim = element.animate(keyframes, 1000);
anim.pause();
anim.currentTime = 500;
return anim.ready;
}
onload = async function() {
await waitForNextFrame();
await createAnimation('transform', [
{transform: 'matrix3d(1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1)'},
{transform: 'matrix(0, 1, -1, 0, 0, 0)'}]);
await waitForNextFrame();
takeScreenshot();
};
</script>
</body>

View file

@ -0,0 +1,73 @@
<!doctype html>
<html class="reftest-wait">
<meta charset="utf-8">
<title>Rotate transform equivalent</title>
<link rel="match" href="rotate-transform-equivalent-ref.html">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#ctm">
<script src="/common/reftest-wait.js"></script>
<style>
.block {
border: 2px solid white; /* Avoid anti-aliasing artifacts */
height: 100px;
width: 100px;
position: absolute;
left: 100px;
top: 100px;
}
.rotation {
background: red;
}
.overlay {
background: green;
}
#rotateAdd {
rotate: 1 0 0 45deg;
}
</style>
<body>
<div id="rotateAdd" class="block rotation"></div>
<div id="rotateReplace" class="block rotation"></div>
<div id="transform" class="block overlay"></div>
<script>
'use strict';
async function waitForNextFrame() {
return new Promise(resolve => {
window.requestAnimationFrame(() => {
resolve();
});
});
}
async function createAnimation(elementName, keyframes) {
const element = document.getElementById(elementName);
const anim = element.animate(keyframes, 1000);
anim.pause();
anim.currentTime = 500;
return anim.ready;
}
onload = async function() {
await waitForNextFrame();
await createAnimation('rotateAdd', [
{rotate: '1 0 0 45deg', composite: 'add'},
{rotate: '0 0 1 90deg'}]);
await createAnimation('rotateReplace', [
{rotate: '1 0 0 90deg'},
{rotate: '0 0 1 90deg'}]);
await createAnimation('transform', [
{transform: 'matrix3d(1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1)'},
{transform: 'matrix(0, 1, -1, 0, 0, 0)'}]);
await waitForNextFrame();
takeScreenshot();
};
</script>
</body>

View file

@ -421,4 +421,5 @@
window.test_no_interpolation = test_no_interpolation;
window.test_composition = test_composition;
window.neutralKeyframe = neutralKeyframe;
window.roundNumbers = roundNumbers;
})();

View file

@ -3,7 +3,7 @@
// (https://github.com/w3c/webref)
// Source: Gamepad (https://w3c.github.io/gamepad/)
[Exposed=Window]
[Exposed=Window, SecureContext]
interface Gamepad {
readonly attribute DOMString id;
readonly attribute long index;
@ -14,7 +14,7 @@ interface Gamepad {
readonly attribute FrozenArray<GamepadButton> buttons;
};
[Exposed=Window]
[Exposed=Window, SecureContext]
interface GamepadButton {
readonly attribute boolean pressed;
readonly attribute boolean touched;
@ -31,7 +31,7 @@ partial interface Navigator {
sequence<Gamepad?> getGamepads();
};
[Exposed=Window]
[Exposed=Window, SecureContext]
interface GamepadEvent: Event {
constructor(DOMString type, GamepadEventInit eventInitDict);

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html>
<body>
<canvas id="canvas"></canvas>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
promise_test(async t => {
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
const stream = canvas.captureStream();
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const video = document.createElement("video");
video.srcObject = stream;
ctx.getImageData(0, 0, canvas.width, canvas.height);
assert_equals(video.readyState, video.HAVE_NOTHING,
"Video element was just created");
// Wait a bit so the video element can update readyState in case of a frame.
await new Promise(r => t.step_timeout(r, 100));
assert_equals(video.readyState, video.HAVE_NOTHING,
"Video element did not get a frame from the canvas");
}, "CanvasRenderingContext2D.getImageData() does not lead to a frame being captured");
</script>
</body>
</html>

View file

@ -0,0 +1,55 @@
<!DOCTYPE html>
<head>
<title>
Ensure the timing is marked during the `update the rendering` step.
</title>
</head>
<style>
#main {
width: 100px;
height: 100px;
left: 0px;
position: relative;
top: 0;
background-image: url(../resources/circles.png);
opacity: 0;
}
#main.contentful {
opacity: 0.1;
}
</style>
<body>
<script src="../resources/utils.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="main"></div>
<script>
setup({"hide_test_state": true});
async_test(function (t) {
assert_implements(window.PerformancePaintTiming, "Paint Timing isn't supported.");
let fired = false;
const main = document.getElementById('main');
let animationFrameStamps = [];
requestAnimationFrame(function frame(stamp) {
animationFrameStamps.unshift(stamp);
main.className = "contentful";
while (performance.now() - stamp <= 5) {
/* Busy-wait */
}
if(!fired)
requestAnimationFrame(frame);
});
new PerformanceObserver(t.step_func(list=>{
for (let entry of list.getEntries()) {
if (entry.name == "first-contentful-paint") {
fired = true;
assert_any(assert_approx_equals, entry.startTime, animationFrameStamps, 1, "One of the past requestAnimationFrame should have the same timestamp as paint entry");
t.done();
}
}
})).observe({type: "paint"});
}, 'The first-contentful-paint timestamp should be same as the last RAF');
</script>
</body>
</html>

View file

@ -100,6 +100,75 @@ test_name('a\\9 b', 'a\tb'); // U+0009 CHARACTER TABULATION
test_name('"foo"', 'foo');
test_name('"none"', 'none');
// CSSScrollTimelineRule.cssText
function test_csstext(description, specified, expected) {
if (typeof(expected) == 'undefined')
expected = specified;
test_stylesheet(specified, (rules) => {
assert_equals(rules.length, 1);
assert_equals(rules[0].constructor.name, 'CSSScrollTimelineRule');
assert_equals(rules[0].cssText, expected);
}, `CSSScrollTimelineRule.cssText: ${description}`);
}
test_csstext(
'empty rule',
`@scroll-timeline timeline {}`,
`@scroll-timeline timeline { }`);
// U+0009 CHARACTER TABULATION
test_csstext(
'escaped name',
`@scroll-timeline tab\\9 tab {}`,
`@scroll-timeline tab\\9 tab { }`);
test_csstext(
'source descriptor',
`@scroll-timeline timeline { source: selector(#foo); }`);
test_csstext(
'orientation descriptor',
`@scroll-timeline timeline { orientation: inline; }`);
test_csstext(
'start descriptor (px)',
`@scroll-timeline timeline { start: 100px; }`);
test_csstext(
'start descriptor (offset)',
`@scroll-timeline timeline { start: selector(#bar); }`);
test_csstext(
'start descriptor (offset with edge)',
`@scroll-timeline timeline { start: selector(#bar) start; }`);
test_csstext(
'start descriptor (offset with threshold)',
`@scroll-timeline timeline { start: selector(#bar) 1; }`);
test_csstext(
'start descriptor (offset with edge and threshold)',
`@scroll-timeline timeline { start: selector(#bar) start 1; }`);
test_csstext(
'start descriptor (offset with threshold and edge)',
`@scroll-timeline timeline { start: selector(#bar) 1 start; }`,
`@scroll-timeline timeline { start: selector(#bar) start 1; }`);
test_csstext(
'time-range descriptor',
`@scroll-timeline timeline { time-range: 10s; }`);
test_csstext(
'defaults',
`@scroll-timeline timeline { source: none; orientation: auto; start: auto; end: auto; time-range: auto; }`);
test_csstext(
'order',
`@scroll-timeline timeline { orientation: auto; time-range: auto; source: none; end: auto; start: auto; }`,
`@scroll-timeline timeline { source: none; orientation: auto; start: auto; end: auto; time-range: auto; }`);
// CSSScrollTimelineRule.source
function test_source(specified, expected) {

View file

@ -87,10 +87,10 @@ def env_options():
class ProfileCreator(FirefoxProfileCreator):
def __init__(self, logger, prefs_root, config, test_type, extra_prefs, e10s,
def __init__(self, logger, prefs_root, config, test_type, extra_prefs,
enable_fission, browser_channel, certutil_binary, ca_certificate_path):
super(ProfileCreator, self).__init__(logger, prefs_root, config, test_type, extra_prefs,
e10s, enable_fission, browser_channel, None,
True, enable_fission, browser_channel, None,
certutil_binary, ca_certificate_path)
def _set_required_prefs(self, profile):
@ -100,11 +100,9 @@ class ProfileCreator(FirefoxProfileCreator):
"places.history.enabled": False,
"dom.send_after_paint_to_content": True,
"network.preload": True,
"browser.tabs.remote.autostart": True,
})
if self.e10s:
profile.set_preferences({"browser.tabs.remote.autostart": True})
if self.test_type == "reftest":
self.logger.info("Setting android reftest preferences")
profile.set_preferences({
@ -142,7 +140,7 @@ class FirefoxAndroidBrowser(Browser):
self.stackwalk_binary = stackwalk_binary
self.certutil_binary = certutil_binary
self.ca_certificate_path = ca_certificate_path
self.e10s = e10s
self.e10s = True
self.enable_webrender = enable_webrender
self.stackfix_dir = stackfix_dir
self.binary_args = binary_args
@ -162,7 +160,6 @@ class FirefoxAndroidBrowser(Browser):
config,
test_type,
extra_prefs,
e10s,
False,
browser_channel,
certutil_binary,

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