mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Auto merge of #22875 - servo-wpt-sync:wpt_update_12-02-2019, r=jdm
Sync WPT with upstream (12-02-2019) Automated downstream sync of changes from upstream as of 12-02-2019. [no-wpt-sync] <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22875) <!-- Reviewable:end -->
This commit is contained in:
commit
b65828d909
45 changed files with 1112 additions and 114 deletions
|
@ -137125,6 +137125,78 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-001.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-replaced-001.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-002.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-replaced-002.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-003.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-replaced-003.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-004.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-replaced-004.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-005.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-replaced-005.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-006.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-replaced-006.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/orthogonal-writing-mode-float-in-inline.html": [
|
||||
[
|
||||
"/css/css-sizing/orthogonal-writing-mode-float-in-inline.html",
|
||||
|
@ -200451,6 +200523,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
".mailmap": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
".pyup.yml": [
|
||||
[
|
||||
{}
|
||||
|
@ -336568,6 +336645,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"animation-worklet/animate-multiple-effects-on-different-targets-via-main-thread.https.html": [
|
||||
[
|
||||
"/animation-worklet/animate-multiple-effects-on-different-targets-via-main-thread.https.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"animation-worklet/animation-worklet-inside-iframe.https.html": [
|
||||
[
|
||||
"/animation-worklet/animation-worklet-inside-iframe.https.html",
|
||||
|
@ -336590,6 +336673,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"animation-worklet/multiple-effects-on-same-target-driven-by-individual-local-time.https.html": [
|
||||
[
|
||||
"/animation-worklet/multiple-effects-on-same-target-driven-by-individual-local-time.https.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"animation-worklet/playback-rate.https.html": [
|
||||
[
|
||||
"/animation-worklet/playback-rate.https.html",
|
||||
|
@ -348918,6 +349007,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-syntax/unclosed-url-at-eof.html": [
|
||||
[
|
||||
"/css/css-syntax/unclosed-url-at-eof.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-syntax/unicode-range-selector.html": [
|
||||
[
|
||||
"/css/css-syntax/unicode-range-selector.html",
|
||||
|
@ -353534,6 +353629,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-values/calc-angle-values.html": [
|
||||
[
|
||||
"/css/css-values/calc-angle-values.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-values/calc-in-color-001.html": [
|
||||
[
|
||||
"/css/css-values/calc-in-color-001.html",
|
||||
|
@ -353576,6 +353677,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-values/calc-time-values.html": [
|
||||
[
|
||||
"/css/css-values/calc-time-values.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-values/calc-unit-analysis.html": [
|
||||
[
|
||||
"/css/css-values/calc-unit-analysis.html",
|
||||
|
@ -411032,6 +411139,14 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"screen-orientation/event-before-promise.html": [
|
||||
[
|
||||
"/screen-orientation/event-before-promise.html",
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"screen-orientation/idlharness.window.js": [
|
||||
[
|
||||
"/screen-orientation/idlharness.window.html",
|
||||
|
@ -449145,6 +449260,10 @@
|
|||
"f40c77f6331efbb7464a9180e999d77107f59180",
|
||||
"support"
|
||||
],
|
||||
".mailmap": [
|
||||
"5293948fc2311eb9b900a89a5b57e30f5c5c8eb2",
|
||||
"support"
|
||||
],
|
||||
".pyup.yml": [
|
||||
"2249e1a89dc7687fa04a38e1704ee22c325bd15b",
|
||||
"support"
|
||||
|
@ -457045,6 +457164,10 @@
|
|||
"c6918965843779e02522af1abf48acda8d0a128b",
|
||||
"support"
|
||||
],
|
||||
"animation-worklet/animate-multiple-effects-on-different-targets-via-main-thread.https.html": [
|
||||
"d22ed4cd251a20de43c4425e54abdc984b41976a",
|
||||
"testharness"
|
||||
],
|
||||
"animation-worklet/animation-worklet-inside-iframe.https.html": [
|
||||
"b02186309dc2cf8df05559ef9fb9bcacdf535112",
|
||||
"testharness"
|
||||
|
@ -457054,13 +457177,17 @@
|
|||
"support"
|
||||
],
|
||||
"animation-worklet/current-time.https.html": [
|
||||
"402c49307df75b0c6d264f8072425b617342d2c3",
|
||||
"a445d5b004f8d4849ac9a65ca6e1b0e7bf5d072d",
|
||||
"testharness"
|
||||
],
|
||||
"animation-worklet/idlharness.any.js": [
|
||||
"e821a2fee8a3ace54e8e7092ab17c490a0ded914",
|
||||
"testharness"
|
||||
],
|
||||
"animation-worklet/multiple-effects-on-same-target-driven-by-individual-local-time.https.html": [
|
||||
"edf8488deda79eeb8eec071bf24305543d2f6627",
|
||||
"testharness"
|
||||
],
|
||||
"animation-worklet/playback-rate.https.html": [
|
||||
"9c975814f1ed09b3e78493df177c3c0eddf74cdd",
|
||||
"testharness"
|
||||
|
@ -575445,6 +575572,30 @@
|
|||
"f105d942043c44efa0b9e1ec58798db8f9b64a8c",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-001.html": [
|
||||
"ebb93a225a7cc5df9a81d21ab218872077e93ab7",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-002.html": [
|
||||
"05051e63d8ce32b2d6dbd09655011d5427398c04",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-003.html": [
|
||||
"0f130b82db58a367b8751899c6dcfd224cb4631b",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-004.html": [
|
||||
"1c4002b0f8fc6d3c1819be013214a69a7e155923",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-005.html": [
|
||||
"84e945c833972afa92481ffd33574377ca7d48fa",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-replaced-006.html": [
|
||||
"bce0a18be6f66e57cad2e2e90694a6f53dab71c7",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/orthogonal-writing-mode-float-in-inline.html": [
|
||||
"fa95069dbf0083b0dc7095d2bb3acf20a6ccf898",
|
||||
"reftest"
|
||||
|
@ -575973,6 +576124,10 @@
|
|||
"3d7940387c810572159bd55fcc79fc10626221dc",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-syntax/unclosed-url-at-eof.html": [
|
||||
"7157896d97857f6aad35114f29323b2b6bdd9318",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-syntax/unicode-range-selector.html": [
|
||||
"db09540bb08c47f62b4255be6ba72b289987d64c",
|
||||
"testharness"
|
||||
|
@ -592113,6 +592268,10 @@
|
|||
"ec96924a6805bc6157a3845c12b630aed9e52fa8",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-values/calc-angle-values.html": [
|
||||
"e41beaff211b87dd74dd6fee6f05d894ba03988d",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-values/calc-ch-ex-lang-ref.html": [
|
||||
"e0ac1ead1e5247c7c1d5fb2dffdf9ee0b08dd497",
|
||||
"support"
|
||||
|
@ -592189,6 +592348,10 @@
|
|||
"f92de7338d3f05a6623f3aa882e21a724f1344e5",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-values/calc-time-values.html": [
|
||||
"60bcdcba594d8300091120100dfe8d878f8ff708",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-values/calc-unit-analysis.html": [
|
||||
"7508a3924162b87454a180f75f17c572192c3776",
|
||||
"testharness"
|
||||
|
@ -615638,7 +615801,7 @@
|
|||
"support"
|
||||
],
|
||||
"domparsing/XMLSerializer-serializeToString.html": [
|
||||
"d71da494fe7dbce56af5e45926739c7b6a232676",
|
||||
"ab373481204e64070b8e3fd5a0f52f06211153b4",
|
||||
"testharness"
|
||||
],
|
||||
"domparsing/createContextualFragment.html": [
|
||||
|
@ -621058,7 +621221,7 @@
|
|||
"support"
|
||||
],
|
||||
"fetch/stale-while-revalidate/stale-css.tentative.html": [
|
||||
"df03bd96243138cbaee076dc9b0a6cc3d15d9a16",
|
||||
"9b95b891fff2db4a29bd438208ea4274a762977d",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/stale-while-revalidate/stale-image.py": [
|
||||
|
@ -621066,7 +621229,7 @@
|
|||
"support"
|
||||
],
|
||||
"fetch/stale-while-revalidate/stale-image.tentative.html": [
|
||||
"d8383acb319c2e0398bd83632377ac8cb219da49",
|
||||
"a5d4e79c54b8fca7a7089efcca0bc5f6f7c1202a",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/stale-while-revalidate/stale-script.py": [
|
||||
|
@ -638966,7 +639129,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"html/semantics/text-level-semantics/historical.html": [
|
||||
"9de09fe5b389ba642ab5a55d96b5cb50918c2d73",
|
||||
"7fe83a95ed0464c5f6dac8ceb9b8327acbd70e16",
|
||||
"testharness"
|
||||
],
|
||||
"html/semantics/text-level-semantics/the-a-element/a-download-404.py": [
|
||||
|
@ -642350,7 +642513,7 @@
|
|||
"support"
|
||||
],
|
||||
"interfaces/web-bluetooth.idl": [
|
||||
"00b93a551335c1270a9529c36765ec8c858e18c1",
|
||||
"c5fd30cf320ac857d34758558110c972770fd428",
|
||||
"support"
|
||||
],
|
||||
"interfaces/web-nfc.idl": [
|
||||
|
@ -642406,7 +642569,7 @@
|
|||
"support"
|
||||
],
|
||||
"interfaces/webxr.idl": [
|
||||
"b1ed0f9072716efd5ef92ead32d58b396319dbfa",
|
||||
"2bc100e100d89da510c56dc51d13d45335f67740",
|
||||
"support"
|
||||
],
|
||||
"interfaces/worklets.idl": [
|
||||
|
@ -666905,6 +667068,10 @@
|
|||
"dc3f290196fabe6e4594a498282fc0091134bdad",
|
||||
"support"
|
||||
],
|
||||
"screen-orientation/event-before-promise.html": [
|
||||
"d876b0c8873ebe0f009ebe4e6ef02a8bac52cf9c",
|
||||
"testharness"
|
||||
],
|
||||
"screen-orientation/idlharness.window.js": [
|
||||
"115f6ccb1e393586f4076884c01443d4944bb413",
|
||||
"testharness"
|
||||
|
@ -672126,11 +672293,11 @@
|
|||
"testharness"
|
||||
],
|
||||
"svg/geometry/parsing/ry-invalid.svg": [
|
||||
"7a25a1ec0e61e4a36e65b7884d9667bb1614adfa",
|
||||
"5938ae830d52ad752a3f502a2308e9efae57dcdb",
|
||||
"testharness"
|
||||
],
|
||||
"svg/geometry/parsing/ry-valid.svg": [
|
||||
"e92e2cf6410ba4071baa81c18ec4462ba60b42dd",
|
||||
"178c0c007d649d75bd51a52a31f5c046eba9fd28",
|
||||
"testharness"
|
||||
],
|
||||
"svg/geometry/parsing/sizing-properties-computed.svg": [
|
||||
|
@ -675914,15 +676081,15 @@
|
|||
"support"
|
||||
],
|
||||
"tools/ci/ci_built_diff.sh": [
|
||||
"81bf098f56aad48b7b3fce2d7cabd606fefa2d4e",
|
||||
"709cc2aa7e6867f548d4efdd62d74abc185e657b",
|
||||
"support"
|
||||
],
|
||||
"tools/ci/ci_lint.sh": [
|
||||
"fe8bbfb8cf928d1982d302f6f91b64c37026ad25",
|
||||
"bf98f209eba1330c9a69d13ed0ca9380e3ec24a2",
|
||||
"support"
|
||||
],
|
||||
"tools/ci/ci_manifest.sh": [
|
||||
"695fd457d13081fb9814b9a9a266c75c9fd0c9f3",
|
||||
"7d0d5ca04189a099d8ac4d782f7be295437c648f",
|
||||
"support"
|
||||
],
|
||||
"tools/ci/ci_resources_unittest.sh": [
|
||||
|
@ -675954,7 +676121,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/ci/lib.sh": [
|
||||
"7c0b8253a906e05f7d793d1c6274f9aed01b7f83",
|
||||
"8d5e6aef73b456446aaf265e35c3d0d6d252d1a7",
|
||||
"support"
|
||||
],
|
||||
"tools/ci/make_hosts_file.py": [
|
||||
|
@ -676002,7 +676169,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/docker/start.sh": [
|
||||
"bfc7e9960abf595c8319c1865a2ad3c4d1c51087",
|
||||
"0675a0af2da2bb81b9a1d2f8cd062e3ee383e6b7",
|
||||
"support"
|
||||
],
|
||||
"tools/gitignore/__init__.py": [
|
||||
|
@ -676478,7 +676645,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/pywebsocket/mod_pywebsocket/memorizingfile.py": [
|
||||
"07bcbd5876cc355328ebf5c7a9cd98850abb8c6a",
|
||||
"ba70ceb4e29e6cec5425212d0891dca7752ea808",
|
||||
"support"
|
||||
],
|
||||
"tools/pywebsocket/mod_pywebsocket/msgutil.py": [
|
||||
|
@ -680682,7 +680849,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/wpt/browser.py": [
|
||||
"8c573a82bde2da17463943703d7ad20cb57df0cd",
|
||||
"5f711f47580fc54461c166771b28828693a63d5b",
|
||||
"support"
|
||||
],
|
||||
"tools/wpt/commands.json": [
|
||||
|
@ -680822,7 +680989,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/wptrunner/requirements_firefox.txt": [
|
||||
"0f2396afac1204af10a582f3d69162538a94625d",
|
||||
"656d57f4b200f3ac57efbc2b0b7ddbe4a880c57a",
|
||||
"support"
|
||||
],
|
||||
"tools/wptrunner/requirements_ie.txt": [
|
||||
|
@ -685214,7 +685381,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html": [
|
||||
"b69cb0e81259a4e47cff1ae11befbe63341d4849",
|
||||
"3700bfa8ce806a57a4df6c050a9d299d9274edea",
|
||||
"testharness"
|
||||
],
|
||||
"webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling.html": [
|
||||
|
|
|
@ -2,6 +2,15 @@
|
|||
[BluetoothRemoteGATTService interface: attribute oncharacteristicvaluechanged]
|
||||
expected: FAIL
|
||||
|
||||
[Bluetooth interface: navigator.bluetooth must inherit property "onadvertisementreceived" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Bluetooth interface: attribute onadvertisementreceived]
|
||||
expected: FAIL
|
||||
|
||||
[BluetoothDevice interface: attribute onadvertisementreceived]
|
||||
expected: FAIL
|
||||
|
||||
[Bluetooth interface: attribute onserviceadded]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -332,3 +332,6 @@
|
|||
[Matching font-style: 'oblique 0deg' should prefer 'oblique 5deg' over 'oblique 15deg 20deg']
|
||||
expected: FAIL
|
||||
|
||||
[Matching font-weight: '399' should prefer '500 501' over '502 510']
|
||||
expected: FAIL
|
||||
|
||||
|
|
82
tests/wpt/metadata/css/css-values/calc-angle-values.html.ini
Normal file
82
tests/wpt/metadata/css/css-values/calc-angle-values.html.ini
Normal file
|
@ -0,0 +1,82 @@
|
|||
[calc-angle-values.html]
|
||||
[substraction of angle unit: grad minus grad]
|
||||
expected: FAIL
|
||||
|
||||
[multiplication of angle unit: deg multiplied by int]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: deg plus deg]
|
||||
expected: FAIL
|
||||
|
||||
[division of angle unit: turn divided by int]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: deg plus turn]
|
||||
expected: FAIL
|
||||
|
||||
[multiplication of angle unit: int multiplied by turn]
|
||||
expected: FAIL
|
||||
|
||||
[substraction of angle unit: deg minus deg]
|
||||
expected: FAIL
|
||||
|
||||
[division of angle unit: rad divided by int]
|
||||
expected: FAIL
|
||||
|
||||
[substraction of angle unit: rad minus grad]
|
||||
expected: FAIL
|
||||
|
||||
[multiplication of angle unit: grad multiplied by int]
|
||||
expected: FAIL
|
||||
|
||||
[substraction of angle unit: rad minus turn]
|
||||
expected: FAIL
|
||||
|
||||
[substraction of angle unit: grad minus turn]
|
||||
expected: FAIL
|
||||
|
||||
[conversion of angle unit: grad into deg]
|
||||
expected: FAIL
|
||||
|
||||
[substraction of angle unit: deg minus rad]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: grad plus grad]
|
||||
expected: FAIL
|
||||
|
||||
[division of angle unit: grad divided by int]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: grad plus turn]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: rad plus turn]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: deg plus rad]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: rad plus grad]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: deg plus grad]
|
||||
expected: FAIL
|
||||
|
||||
[substraction of angle unit: deg minus turn]
|
||||
expected: FAIL
|
||||
|
||||
[division of angle unit: deg divided by int]
|
||||
expected: FAIL
|
||||
|
||||
[multiplication of angle unit: int multiplied by rad]
|
||||
expected: FAIL
|
||||
|
||||
[addition of 2 angle units: rad plus rad]
|
||||
expected: FAIL
|
||||
|
||||
[substraction of angle unit: rad minus rad]
|
||||
expected: FAIL
|
||||
|
||||
[substraction of angle unit: deg minus grad]
|
||||
expected: FAIL
|
||||
|
|
@ -3,9 +3,3 @@
|
|||
[scroll-behavior: smooth on DIV element]
|
||||
expected: FAIL
|
||||
|
||||
[Instant scrolling while doing history navigation.]
|
||||
expected: FAIL
|
||||
|
||||
[Smooth scrolling while doing history navigation.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -21,3 +21,9 @@
|
|||
[Check if "ns1" is generated even if the element already has xmlns:ns1.]
|
||||
expected: FAIL
|
||||
|
||||
[Check if attribute serialization takes into account of following xmlns:* attributes]
|
||||
expected: FAIL
|
||||
|
||||
[Check if attribute serialization takes into account of the same prefix declared in an ancestor element]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[iframe_005.html]
|
||||
[document.write external script into iframe write back into parent]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
||||
|
|
9
tests/wpt/web-platform-tests/.mailmap
Normal file
9
tests/wpt/web-platform-tests/.mailmap
Normal file
|
@ -0,0 +1,9 @@
|
|||
# People who've changed name:
|
||||
|
||||
# Sam Sneddon:
|
||||
Sam Sneddon <me@gsnedders.com>
|
||||
Sam Sneddon <me@gsnedders.com> <geoffers@gmail.com>
|
||||
|
||||
# Theresa O'Connor:
|
||||
Theresa O'Connor <eoconnor@apple.com>
|
||||
Theresa O'Connor <hober0@gmail.com>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Animate multiple effects on different targets via main thread</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/web-animations/testcommon.js"></script>
|
||||
<script src="common.js"></script>
|
||||
|
||||
<style>
|
||||
#target {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: green;
|
||||
}
|
||||
#target2 {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: blue;
|
||||
box-shadow: 4px 4px 25px blue;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="target"></div>
|
||||
<div id="target2"></div>
|
||||
|
||||
<script id="simple_animate" type="text/worklet">
|
||||
registerAnimator("test_animator", class {
|
||||
animate(currentTime, effect) {
|
||||
let effects = effect.getChildren();
|
||||
effects[0].localTime = 1000;
|
||||
effects[1].localTime = 1000;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
await runInAnimationWorklet(document.getElementById('simple_animate').textContent);
|
||||
|
||||
const effect = new KeyframeEffect(
|
||||
document.getElementById("target"),
|
||||
[
|
||||
{ background: 'green' },
|
||||
{ background: 'blue' },
|
||||
],
|
||||
{ duration: 2000 }
|
||||
);
|
||||
const effect2 = new KeyframeEffect(
|
||||
document.getElementById("target2"),
|
||||
[
|
||||
{ boxShadow: '4px 4px 25px blue' },
|
||||
{ boxShadow: '4px 4px 25px green' }
|
||||
],
|
||||
{ duration: 2000 }
|
||||
);
|
||||
|
||||
const animation = new WorkletAnimation('test_animator', [effect, effect2]);
|
||||
animation.play();
|
||||
await waitForAsyncAnimationFrames(1);
|
||||
|
||||
assert_equals(getComputedStyle(document.getElementById('target')).backgroundColor, "rgb(0, 64, 128)");
|
||||
assert_equals(getComputedStyle(document.getElementById('target2')).boxShadow, "rgb(0, 64, 128) 4px 4px 25px 0px");
|
||||
}, 'Animating multiple effects on different targets via main thread should produce new output values accordingly');
|
||||
</script>
|
|
@ -2,47 +2,63 @@
|
|||
<meta charset=utf-8>
|
||||
<title>The current time of a worklet animation</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/web-animations/testcommon.js"></script>
|
||||
<script src="common.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
|
||||
<div id="box"></div>
|
||||
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
const DURATION = 10000; // ms
|
||||
const KEYFRAMES = { height : ['100px', '50px'] };
|
||||
function CreateAnimation() {
|
||||
const box = document.getElementById('box');
|
||||
const effect = new KeyframeEffect(
|
||||
box,
|
||||
{ height: ['100px', '50px'] },
|
||||
10000);
|
||||
|
||||
return new WorkletAnimation('passthrough', effect);
|
||||
}
|
||||
|
||||
setup(setupAndRegisterTests, {explicit_done: true});
|
||||
|
||||
function setupAndRegisterTests() {
|
||||
registerPassthroughAnimator().then(() => {
|
||||
promise_test(async t => {
|
||||
await registerPassthroughAnimator();
|
||||
const animation =
|
||||
new WorkletAnimation('passthrough', new KeyframeEffect(createDiv(t),
|
||||
KEYFRAMES, DURATION), document.timeline);
|
||||
|
||||
const animation = CreateAnimation();
|
||||
animation.play();
|
||||
|
||||
assert_equals(animation.currentTime, 0,
|
||||
'Current time returns the hold time set when entering the play-pending' +
|
||||
'state');
|
||||
|
||||
animation.cancel();
|
||||
}, 'The current time returns the hold time when set');
|
||||
|
||||
promise_test(async t => {
|
||||
await registerPassthroughAnimator();
|
||||
const animation =
|
||||
new WorkletAnimation('passthrough', new KeyframeEffect(createDiv(t),
|
||||
KEYFRAMES, DURATION), document.timeline);
|
||||
|
||||
// TODO(majidvp): We should use Animation.startTime here because the
|
||||
// animation may not immediately start.
|
||||
const startTime = document.timeline.currentTime;
|
||||
const animation = CreateAnimation();
|
||||
animation.play();
|
||||
await waitForNextFrame();
|
||||
|
||||
// Allow one async animation frame to pass so that animation is running.
|
||||
await waitForAsyncAnimationFrames(1);
|
||||
assert_equals(animation.playState, "running");
|
||||
// Allow time to advance so that we have a non-zero current time.
|
||||
await waitForDocumentTimelineAdvance();
|
||||
const timelineTime = document.timeline.currentTime;
|
||||
assert_times_equal(animation.currentTime, (timelineTime - startTime));
|
||||
assert_greater_than(animation.currentTime, 0);
|
||||
assert_times_equal(animation.currentTime, (timelineTime - animation.startTime));
|
||||
|
||||
animation.cancel();
|
||||
}, 'The current time is calculated from the timeline time and start time');
|
||||
|
||||
done();
|
||||
});
|
||||
}
|
||||
|
||||
// TODO(majidvp): Add tests for playbackRate and animations that are not
|
||||
// associated with a timeline once these are supported in WorkletAnimation.
|
||||
// http://crbug.com/833846
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Multiple effects on same target driven by individual local time</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/web-animations/testcommon.js"></script>
|
||||
<script src="common.js"></script>
|
||||
|
||||
<style>
|
||||
#target {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: green;
|
||||
}
|
||||
#target2 {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: blue;
|
||||
box-shadow: 4px 4px 25px blue;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="target"></div>
|
||||
|
||||
<script id="simple_animate" type="text/worklet">
|
||||
registerAnimator("test_animator", class {
|
||||
animate(currentTime, effect) {
|
||||
let effects = effect.getChildren();
|
||||
effects[0].localTime = 0;
|
||||
effects[1].localTime = 1000;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
await runInAnimationWorklet(document.getElementById('simple_animate').textContent);
|
||||
|
||||
const effect = new KeyframeEffect(
|
||||
document.getElementById("target"),
|
||||
[
|
||||
{ background: 'green' },
|
||||
{ background: 'blue' },
|
||||
],
|
||||
{ duration: 2000 }
|
||||
);
|
||||
const effect2 = new KeyframeEffect(
|
||||
document.getElementById("target"),
|
||||
[
|
||||
{ width: '100px' },
|
||||
{ width: '200px' }
|
||||
],
|
||||
{ duration: 2000 }
|
||||
);
|
||||
|
||||
const animation = new WorkletAnimation('test_animator', [effect, effect2]);
|
||||
animation.play();
|
||||
await waitForAsyncAnimationFrames(1);
|
||||
|
||||
assert_equals(getComputedStyle(document.getElementById('target')).backgroundColor, "rgb(0, 128, 0)");
|
||||
assert_equals(getComputedStyle(document.getElementById('target')).width, "150px");
|
||||
}, `Animating multiple effects on the same target using effect specific local time should output values
|
||||
relative to each effects unique local time`);
|
||||
</script>
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes">
|
||||
<meta name="assert" content="Checks that a replaced element, with an aspect ratio, converts a percent height into an intrinsic width." />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<style>
|
||||
#float { float: left; height: 100px; background: green; }
|
||||
canvas { height: 100%; }
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
<div id=float>
|
||||
<canvas width=10 height=10></canvas>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
<!-- quirks mode -->
|
||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes">
|
||||
<meta name="assert" content="Checks that a replaced element, with an aspect ratio, converts a percent height into an intrinsic width." />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<style>
|
||||
#float { float: left; height: 100px; background: green; }
|
||||
canvas { height: 100%; }
|
||||
</style>
|
||||
<p style="margin-top: 1em;">Test passes if there is a filled green square.</p>
|
||||
<div id=float>
|
||||
<div>
|
||||
<canvas width=10 height=10></canvas>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,17 @@
|
|||
<!-- quirks mode -->
|
||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes">
|
||||
<meta name="assert" content="Checks that a replaced element, with an aspect ratio, converts a percent height into an intrinsic width." />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<style>
|
||||
#container { height: 200px; }
|
||||
#float { float: left; height: 50%; background: green; }
|
||||
canvas { height: 100%; }
|
||||
</style>
|
||||
<p style="margin-top: 1em;">Test passes if there is a filled green square.</p>
|
||||
<div id=container>
|
||||
<div id=float>
|
||||
<div>
|
||||
<canvas width=10 height=10></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,17 @@
|
|||
<!-- quirks mode -->
|
||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes">
|
||||
<meta name="assert" content="Checks that a replaced element, with an aspect ratio, converts a percent height into an intrinsic width." />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<style>
|
||||
#container { display: flex; height: 200px; }
|
||||
#float { float: left; height: 50%; background: green; }
|
||||
canvas { height: 100%; }
|
||||
</style>
|
||||
<p style="margin-top: 1em;">Test passes if there is a filled green square.</p>
|
||||
<div id=container>
|
||||
<div id=float>
|
||||
<div>
|
||||
<canvas width=10 height=10></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes">
|
||||
<meta name="assert" content="Checks that a replaced element, with an aspect ratio, converts a percent height into an intrinsic width." />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<style>
|
||||
#container { position: relative; height: 100px; }
|
||||
#abs { position: absolute; top: 0; bottom: 0; background: green; }
|
||||
canvas { height: 100%; }
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
<div id=container>
|
||||
<div id=abs>
|
||||
<canvas width=10 height=10></canvas>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,17 @@
|
|||
<!-- quirks mode -->
|
||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes">
|
||||
<meta name="assert" content="Checks that a replaced element, with an aspect ratio, converts a percent height into an intrinsic width." />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<style>
|
||||
#container { height: 100px; }
|
||||
#float { float: left; background: green; }
|
||||
canvas { height: 100%; }
|
||||
</style>
|
||||
<p style="margin-top: 1em;">Test passes if there is a filled green square.</p>
|
||||
<div id=container>
|
||||
<div id=float>
|
||||
<div>
|
||||
<canvas width=10 height=10></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,29 @@
|
|||
<!doctype html>
|
||||
<title>Unclosed URL At EOF</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<meta name=author title="Tab Atkins-Bittner">
|
||||
<link rel=help href="https://drafts.csswg.org/css-syntax/#consume-url-token">
|
||||
|
||||
<div id=test1-control style="background-image:url(foo)"></div>
|
||||
<div id=test1-experiment style="background-image:url(foo"></div>
|
||||
|
||||
<div id=test2-control style="background-image:url()"></div>
|
||||
<div id=test2-experiment style="background-image:url("></div>
|
||||
|
||||
<script>
|
||||
|
||||
test(()=>{
|
||||
const control = document.querySelector("#test1-control");
|
||||
const experiment = document.querySelector("#test1-experiment");
|
||||
assert_equals(control.style.backgroundImage, experiment.style.backgroundImage);
|
||||
}, "Unclosed url token at EOF is valid.");
|
||||
|
||||
test(()=>{
|
||||
const control = document.querySelector("#test2-control");
|
||||
const experiment = document.querySelector("#test2-experiment");
|
||||
assert_equals(control.style.backgroundImage, experiment.style.backgroundImage);
|
||||
}, "Unclosed empty url token at EOF is valid.");
|
||||
|
||||
</script>
|
|
@ -0,0 +1,295 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Values and Units Test: calc() function with angle values</title>
|
||||
|
||||
<!--
|
||||
|
||||
Original test is:
|
||||
|
||||
https://chromium.googlesource.com/chromium/src/+/c825d655f6aaf73484f9d56e9012793f5b9668cc/third_party/WebKit/LayoutTests/css3/calc/calc-with-time-angle-and-frequency-values.html
|
||||
|
||||
Issue 917718: [css-values] calc-with-time-angle-and-frequency-values
|
||||
test is highly unreliable, transition-delay testing causes side effects
|
||||
https://bugs.chromium.org/p/chromium/issues/detail?id=917718
|
||||
|
||||
-->
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-values-3/#calc-computed-value">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-values-3/#angles">
|
||||
|
||||
<meta content="This test checks that additions, substractions, multiplications and divisions in calc() function when applied to angle units." name="assert">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<div id="log"></div>
|
||||
|
||||
<div id="target"></div>
|
||||
|
||||
<script>
|
||||
function startTesting()
|
||||
{
|
||||
|
||||
var targetElement = document.getElementById("target");
|
||||
|
||||
function compareValueCloseTo(property_name, calcValue, epsilon, expectedValue, description)
|
||||
{
|
||||
|
||||
test(function()
|
||||
{
|
||||
|
||||
targetElement.style.setProperty(property_name, "initial");
|
||||
|
||||
/*
|
||||
Since we are running many consecutive tests on the same
|
||||
element, then it is necessary to reset its property
|
||||
to an initial value before actually re-testing it.
|
||||
*/
|
||||
|
||||
targetElement.style.setProperty(property_name, calcValue);
|
||||
|
||||
var computedCalcValue = getComputedStyle(targetElement)[property_name];
|
||||
|
||||
/*
|
||||
We first strip out the word "matrix" with the
|
||||
opening parenthesis "(" and the closing
|
||||
parenthesis ")"
|
||||
*/
|
||||
|
||||
computedCalcValue = computedCalcValue.replace("matrix(", "").replace(")", "");
|
||||
|
||||
/*
|
||||
Then, we split the string at each comma ","
|
||||
and store the resulting 6 sub-strings into
|
||||
tableSplitComputedCalcValue
|
||||
*/
|
||||
|
||||
var tableSplitCalcValue = computedCalcValue.split(",");
|
||||
|
||||
/*
|
||||
We convert the 6 sub-strings into numerical floating values
|
||||
so that mathematical operations (substraction, absolute value,
|
||||
comparison) can be performed.
|
||||
*/
|
||||
|
||||
tableSplitCalcValue[0] = parseFloat(tableSplitCalcValue[0]);
|
||||
tableSplitCalcValue[1] = parseFloat(tableSplitCalcValue[1]);
|
||||
tableSplitCalcValue[2] = parseFloat(tableSplitCalcValue[2]);
|
||||
tableSplitCalcValue[3] = parseFloat(tableSplitCalcValue[3]);
|
||||
tableSplitCalcValue[4] = parseFloat(tableSplitCalcValue[4]);
|
||||
tableSplitCalcValue[5] = parseFloat(tableSplitCalcValue[5]);
|
||||
|
||||
/*
|
||||
Now, we execute the same steps with the expectedValue
|
||||
*/
|
||||
|
||||
targetElement.style.setProperty(property_name, expectedValue);
|
||||
|
||||
var computedExpectedValue = getComputedStyle(targetElement)[property_name];
|
||||
|
||||
/*
|
||||
We first strip out the word "matrix" with the
|
||||
opening parenthesis "(" and the closing
|
||||
parenthesis ")"
|
||||
*/
|
||||
|
||||
computedExpectedValue = computedExpectedValue.replace("matrix(", "").replace(")", "");
|
||||
|
||||
/*
|
||||
Then, we split the string at each comma ","
|
||||
and store the resulting 6 sub-strings into
|
||||
tableSplitComputedCalcValue
|
||||
*/
|
||||
|
||||
var tableSplitExpectedValue = computedExpectedValue.split(",");
|
||||
|
||||
/*
|
||||
We convert the 6 sub-strings into numerical floating values
|
||||
so that mathematical operations (substraction, absolute value,
|
||||
comparison) can be performed.
|
||||
*/
|
||||
|
||||
tableSplitExpectedValue[0] = parseFloat(tableSplitExpectedValue[0]);
|
||||
tableSplitExpectedValue[1] = parseFloat(tableSplitExpectedValue[1]);
|
||||
tableSplitExpectedValue[2] = parseFloat(tableSplitExpectedValue[2]);
|
||||
tableSplitExpectedValue[3] = parseFloat(tableSplitExpectedValue[3]);
|
||||
tableSplitExpectedValue[4] = parseFloat(tableSplitExpectedValue[4]);
|
||||
tableSplitExpectedValue[5] = parseFloat(tableSplitExpectedValue[5]);
|
||||
|
||||
assert_array_approx_equals(tableSplitCalcValue, tableSplitExpectedValue, epsilon);
|
||||
|
||||
/*
|
||||
In this mega-test of 27 sub-tests, we intentionally
|
||||
set the tolerance precision (epsilon) to a rather big
|
||||
value (0.0001 === 100 millionths). The reason for this
|
||||
is we want to verify if browsers and CSS-capable
|
||||
applications do the right calculations. We do not want
|
||||
to penalize browsers and CSS-capable applications that
|
||||
have modest precision (not capable of a 1 millionth
|
||||
level precision).
|
||||
*/
|
||||
|
||||
} , description);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
deg
|
||||
Degrees. There are 360 degrees in a full circle.
|
||||
|
||||
grad
|
||||
Gradians, also known as "gons" or "grades". There are 400 gradians in a full circle.
|
||||
|
||||
rad
|
||||
Radians. There are 2π radians in a full circle.
|
||||
|
||||
1rad == 57.295779513°
|
||||
https://www.rapidtables.com/convert/number/radians-to-degrees.html
|
||||
|
||||
π == Math.PI == 3.141592653589793
|
||||
|
||||
turn
|
||||
Turns. There is 1 turn in a full circle.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/* Addition of angle units */
|
||||
|
||||
|
||||
/* compareValueCloseTo(property_name, calcValue, epsilon, expectedValue, description) */
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45deg + 45deg))", 0.0001, "rotate(90deg)", "addition of 2 angle units: deg plus deg");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45deg + 1rad))", 0.0001, "rotate(102.29578deg)", "addition of 2 angle units: deg plus rad");
|
||||
/*
|
||||
1 radian == 57.295779513 degrees
|
||||
The original test was using the slightly imprecise rotate(102.3deg)
|
||||
*/
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(20deg + 200grad))", 0.0001, "rotate(200deg)", "addition of 2 angle units: deg plus grad");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(200deg + 0.5turn))", 0.0001, "rotate(380deg)", "addition of 2 angle units: deg plus turn");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45rad + 45rad))", 0.0001, "rotate(90rad)", "addition of 2 angle units: rad plus rad");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(1rad + 40grad))", 0.0001, "rotate(93.29578deg)", "addition of 2 angle units: rad plus grad");
|
||||
|
||||
/*
|
||||
1 radian == 57.295779513 degrees; 40 gradians is 36 degrees.
|
||||
*/
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(1rad + 0.5turn))", 0.0001, "rotate(237.29578deg)", "addition of 2 angle units: rad plus turn");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45grad + 45grad))", 0.0001, "rotate(90grad)", "addition of 2 angle units: grad plus grad");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(10grad + 0.5turn))", 0.0001, "rotate(189deg)", "addition of 2 angle units: grad plus turn");
|
||||
|
||||
/*
|
||||
10 gradians is 9 degrees.
|
||||
*/
|
||||
|
||||
/* compareValueCloseTo(property_name, calcValue, epsilon, expectedValue, description) */
|
||||
|
||||
|
||||
/* Substraction of angle unit */
|
||||
|
||||
/* compareValueCloseTo(property_name, calcValue, epsilon, expectedValue, description) */
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45deg - 15deg))", 0.0001, "rotate(30deg)", "substraction of angle unit: deg minus deg");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(90deg - 1rad))", 0.0001, "rotate(32.70422deg)", "substraction of angle unit: deg minus rad");
|
||||
|
||||
/*
|
||||
1 radian == 57.295779513 degrees
|
||||
*/
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(38deg - 20grad))", 0.0001, "rotate(20deg)", "substraction of angle unit: deg minus grad");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(360deg - 0.5turn))", 0.0001, "rotate(180deg)", "substraction of angle unit: deg minus turn");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45rad - 15rad))", 0.0001, "rotate(30rad)", "substraction of angle unit: rad minus rad");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(30rad - 10grad))", 0.0001, "rotate(1709.87339deg)", "substraction of angle unit: rad minus grad");
|
||||
|
||||
/*
|
||||
30 radians is 1718.8733854 degrees ; 10 gradians is 9 degrees.
|
||||
*/
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(4rad - 0.1turn))", 0.0001, "rotate(193.18312deg)", "substraction of angle unit: rad minus turn");
|
||||
|
||||
/*
|
||||
4 radians is 229.183118052 degrees ; 0.1 turn is 36 degrees.
|
||||
*/
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45grad - 15grad))", 0.0001, "rotate(30grad)", "substraction of angle unit: grad minus grad");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(100grad - 0.25turn))", 0.0001, "rotate(0deg)", "substraction of angle unit: grad minus turn");
|
||||
|
||||
|
||||
/* Multiplication of angle unit */
|
||||
|
||||
/* compareValueCloseTo(property_name, calcValue, epsilon, expectedValue, description) */
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45deg * 2))", 0.0001, "rotate(90deg)", "multiplication of angle unit: deg multiplied by int");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(2 * 45rad))", 0.0001, "rotate(90rad)", "multiplication of angle unit: int multiplied by rad");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(45grad * 2))", 0.0001, "rotate(90grad)", "multiplication of angle unit: grad multiplied by int");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(2 * 45turn))", 0.0001, "rotate(90turn)", "multiplication of angle unit: int multiplied by turn");
|
||||
|
||||
|
||||
/* Division of angle unit */
|
||||
|
||||
/* compareValueCloseTo(property_name, calcValue, epsilon, expectedValue, description) */
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(90deg / 2))", 0.0001, "rotate(45deg)", "division of angle unit: deg divided by int");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(90rad / 2))", 0.0001, "rotate(45rad)", "division of angle unit: rad divided by int");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(90grad / 2))", 0.0001, "rotate(45grad)", "division of angle unit: grad divided by int");
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(90turn / 2))", 0.0001, "rotate(45turn)", "division of angle unit: turn divided by int");
|
||||
|
||||
/* compareValueCloseTo(property_name, calcValue, epsilon, expectedValue, description) */
|
||||
|
||||
/*
|
||||
|
||||
deg
|
||||
Degrees. There are 360 degrees in a full circle.
|
||||
|
||||
grad
|
||||
Gradians, also known as "gons" or "grades". There are 400 gradians in a full circle.
|
||||
|
||||
rad
|
||||
Radians. There are 2π radians in a full circle.
|
||||
|
||||
1rad == 57.295779513°
|
||||
https://www.rapidtables.com/convert/number/radians-to-degrees.html
|
||||
|
||||
π == Math.PI == 3.141592653589793
|
||||
|
||||
turn
|
||||
Turns. There is 1 turn in a full circle.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/* Testing conversion of angle unit */
|
||||
|
||||
/* compareValueCloseTo(property_name, calcValue, epsilon, expectedValue, description) */
|
||||
|
||||
compareValueCloseTo("transform", "rotate(calc(50grad)", 0.0001, "rotate(45deg)", "conversion of angle unit: grad into deg");
|
||||
|
||||
}
|
||||
|
||||
startTesting();
|
||||
|
||||
</script>
|
|
@ -0,0 +1,104 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Values and Units Test: calc() function with time values</title>
|
||||
|
||||
<!--
|
||||
|
||||
Original test is:
|
||||
|
||||
https://chromium.googlesource.com/chromium/src/+/c825d655f6aaf73484f9d56e9012793f5b9668cc/third_party/WebKit/LayoutTests/css3/calc/calc-with-time-angle-and-frequency-values.html
|
||||
|
||||
Issue 917718: [css-values] calc-with-time-angle-and-frequency-values
|
||||
test is highly unreliable, transition-delay testing causes side effects
|
||||
https://bugs.chromium.org/p/chromium/issues/detail?id=917718
|
||||
|
||||
-->
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-values-3/#calc-computed-value">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-values-3/#time">
|
||||
|
||||
<meta content="This test checks that additions, substractions, multiplications and divisions in calc() function when applied to time units." name="assert">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<div id="log"></div>
|
||||
|
||||
<div id="target"></div>
|
||||
|
||||
<script>
|
||||
function startTesting()
|
||||
{
|
||||
|
||||
var targetElement = document.getElementById("target");
|
||||
|
||||
function compareValue(property_name, calcValue, expectedValue, description)
|
||||
{
|
||||
|
||||
test(function()
|
||||
{
|
||||
|
||||
targetElement.style.setProperty(property_name, "inherit");
|
||||
|
||||
/*
|
||||
Since we are running many consecutive tests on the same
|
||||
element, then it is necessary to 'reset' its property
|
||||
to an initial value before actually re-testing it.
|
||||
*/
|
||||
|
||||
targetElement.style.setProperty(property_name, calcValue);
|
||||
|
||||
var computedCalcValue = getComputedStyle(targetElement)[property_name];
|
||||
|
||||
targetElement.style.setProperty(property_name, expectedValue);
|
||||
|
||||
var computedExpectedValue = getComputedStyle(targetElement)[property_name];
|
||||
|
||||
assert_equals(computedCalcValue, computedExpectedValue);
|
||||
|
||||
}, description);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Testing time units */
|
||||
|
||||
/* compareValue(property_name, calcValue, expectedValue, description) */
|
||||
|
||||
compareValue("transition-delay", "calc(4s + 1s)", "5s", "addition of 2 time units: s plus s");
|
||||
|
||||
compareValue("transition-delay", "calc(4s + 1ms)", "4.001s", "addition of 2 time units: s plus ms");
|
||||
|
||||
compareValue("transition-delay", "calc(4ms + 1ms)", "0.005s", "addition of 2 time units: ms plus ms");
|
||||
|
||||
compareValue("transition-delay", "calc(4s - 1s)", "3s", "substraction of time unit: s minus s");
|
||||
|
||||
compareValue("transition-delay", "calc(4s - 1ms)", "3.999s", "substraction of time unit: s minus ms");
|
||||
|
||||
compareValue("transition-delay", "calc(4 * 1s)", "4s", "multiplication of integer with a time unit: int multiplied by s");
|
||||
|
||||
compareValue("transition-delay", "calc(4 * 1ms)", "0.004s", "multiplication of integer with a time unit: int multiplied by ms");
|
||||
|
||||
compareValue("transition-delay", "calc(4s / 2)", "2s", "division of time unit with integer: s divided by int");
|
||||
|
||||
compareValue("transition-delay", "calc(4ms / 2)", "0.002s", "division of time unit with integer: ms divided by int");
|
||||
|
||||
/* compareValue(property_name, calcValue, expectedValue, description) */
|
||||
|
||||
|
||||
|
||||
/* Testing conversion of time unit */
|
||||
|
||||
/* compareValue(property_name, calcValue, expectedValue, description) */
|
||||
|
||||
compareValue("transition-delay", "calc(4000ms)", "4s", "conversion of time unit: ms into s");
|
||||
|
||||
}
|
||||
|
||||
startTesting();
|
||||
|
||||
</script>
|
|
@ -55,6 +55,22 @@ test(function() {
|
|||
'<root attr="
"/>', '<root attr=" "/>']);
|
||||
}, 'check XMLSerializer.serializeToString escapes attribute values for roundtripping');
|
||||
|
||||
test(function() {
|
||||
const root = (new Document()).createElement('root');
|
||||
root.setAttributeNS('uri1', 'p:foobar', 'value1');
|
||||
root.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:p', 'uri2');
|
||||
const xmlString = (new XMLSerializer()).serializeToString(root);
|
||||
assert_equals(xmlString, '<root xmlns:ns1="uri1" ns1:foobar="value1" xmlns:p="uri2"/>');
|
||||
}, 'Check if attribute serialization takes into account of following xmlns:* attributes');
|
||||
|
||||
test(function() {
|
||||
const input = '<root xmlns:p="uri1"><child/></root>';
|
||||
const root = (new DOMParser()).parseFromString(input, 'text/xml').documentElement;
|
||||
root.firstChild.setAttributeNS('uri2', 'p:foobar', 'v');
|
||||
const xmlString = (new XMLSerializer()).serializeToString(root);
|
||||
assert_equals(xmlString, '<root xmlns:p="uri1"><child xmlns:ns1="uri2" ns1:foobar="v"/></root>');
|
||||
}, 'Check if attribute serialization takes into account of the same prefix declared in an ancestor element');
|
||||
|
||||
test(function() {
|
||||
const input = '<root><child1/><child2/></root>';
|
||||
const root = (new DOMParser()).parseFromString(input, 'text/xml').documentElement;
|
||||
|
|
|
@ -12,7 +12,7 @@ https://github.com/whatwg/fetch/pull/853
|
|||
|
||||
async_test(t => {
|
||||
window.onload = t.step_func(() => {
|
||||
step_timeout(() => {
|
||||
t.step_timeout(() => {
|
||||
assert_equals(window.getComputedStyle(document.body).getPropertyValue('background-color'), "rgb(0, 128, 0)");
|
||||
var link2 = document.createElement("link");
|
||||
link2.onload = t.step_func(() => {
|
||||
|
|
|
@ -18,7 +18,7 @@ See: https://html.spec.whatwg.org/#the-list-of-available-images
|
|||
|
||||
async_test(t => {
|
||||
window.onload = t.step_func(() => {
|
||||
step_timeout(() => {
|
||||
t.step_timeout(() => {
|
||||
assert_equals(document.getElementById("firstimage").width, 16, "Width is 16");
|
||||
var childDocument = document.getElementById('child').contentDocument;
|
||||
var img2 = childDocument.createElement("img");
|
||||
|
|
|
@ -26,7 +26,4 @@ t('datetime', 'time');
|
|||
|
||||
// removed in https://github.com/whatwg/html/commit/66fcb2357f205448fe2f40d7834a1e8ea2ed283b
|
||||
t('media', ['a', 'area']);
|
||||
|
||||
// renamed to noreferrer in https://github.com/whatwg/html/commit/6a34274e99593e767ae99744a6c38a19489915c6
|
||||
t('noreferer', ['link', 'a', 'area']);
|
||||
</script>
|
||||
|
|
|
@ -199,6 +199,7 @@ interface mixin CharacteristicEventHandlers {
|
|||
|
||||
[SecureContext]
|
||||
interface mixin BluetoothDeviceEventHandlers {
|
||||
attribute EventHandler onadvertisementreceived;
|
||||
attribute EventHandler ongattserverdisconnected;
|
||||
};
|
||||
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
// (https://github.com/tidoust/reffy-reports)
|
||||
// Source: WebXR Device API (https://immersive-web.github.io/webxr/)
|
||||
|
||||
partial interface Navigator {
|
||||
[SecureContext, SameObject] readonly attribute XR xr;
|
||||
};
|
||||
|
||||
[SecureContext, Exposed=Window] interface XR : EventTarget {
|
||||
// Methods
|
||||
Promise<void> supportsSessionMode(XRSessionMode mode);
|
||||
|
@ -12,11 +16,6 @@
|
|||
attribute EventHandler ondevicechange;
|
||||
};
|
||||
|
||||
[SecureContext]
|
||||
partial interface Navigator {
|
||||
[SameObject] readonly attribute XR xr;
|
||||
};
|
||||
|
||||
enum XREnvironmentBlendMode {
|
||||
"opaque",
|
||||
"additive",
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<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>
|
||||
promise_test(async t => {
|
||||
await test_driver.bless("request full screen", () => {
|
||||
return document.documentElement.requestFullscreen();
|
||||
});
|
||||
|
||||
const promiseToChange = new Promise(resolve => {
|
||||
screen.orientation.addEventListener("change", resolve);
|
||||
});
|
||||
|
||||
const result = await Promise.race([
|
||||
screen.orientation.lock("landscape"),
|
||||
promiseToChange
|
||||
]);
|
||||
|
||||
assert_true(result instanceof Event, "Expected an instance of Event");
|
||||
}, "The 'change' event must fire before the [[orientationPendingPromise]] is resolved.");
|
||||
</script>
|
|
@ -2,10 +2,10 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||
width="800px" height="8000px">
|
||||
<title>SVG Geometry Properties: parsing rx with invalid values</title>
|
||||
<title>SVG Geometry Properties: parsing ry with invalid values</title>
|
||||
<metadata>
|
||||
<h:link rel="help" href="https://svgwg.org/svg2-draft/geometry.html#RY"/>
|
||||
<h:meta name="assert" content="rx supports only the grammar '<length-percentage> | auto'."/>
|
||||
<h:meta name="assert" content="ry supports only the grammar '<length-percentage> | auto'."/>
|
||||
</metadata>
|
||||
<g id="target"></g>
|
||||
<h:script src="/resources/testharness.js"/>
|
||||
|
@ -13,10 +13,10 @@
|
|||
<h:script src="/css/support/parsing-testcommon.js"/>
|
||||
<script><![CDATA[
|
||||
|
||||
test_invalid_value("rx", "10");
|
||||
test_invalid_value("rx", "none");
|
||||
test_invalid_value("rx", "10px 20px");
|
||||
test_invalid_value("rx", "-1px");
|
||||
test_invalid_value("ry", "10");
|
||||
test_invalid_value("ry", "none");
|
||||
test_invalid_value("ry", "10px 20px");
|
||||
test_invalid_value("ry", "-1px");
|
||||
|
||||
]]></script>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 798 B After Width: | Height: | Size: 798 B |
|
@ -2,10 +2,10 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||
width="800px" height="8000px">
|
||||
<title>SVG Geometry Properties: parsing rx with valid values</title>
|
||||
<title>SVG Geometry Properties: parsing ry with valid values</title>
|
||||
<metadata>
|
||||
<h:link rel="help" href="https://svgwg.org/svg2-draft/geometry.html#RY"/>
|
||||
<h:meta name="assert" content="rx supports the full grammar '<length-percentage> | auto'."/>
|
||||
<h:meta name="assert" content="ry supports the full grammar '<length-percentage> | auto'."/>
|
||||
</metadata>
|
||||
<g id="target"></g>
|
||||
<h:script src="/resources/testharness.js"/>
|
||||
|
@ -13,13 +13,13 @@
|
|||
<h:script src="/css/support/parsing-testcommon.js"/>
|
||||
<script><![CDATA[
|
||||
|
||||
test_valid_value("rx", "auto");
|
||||
test_valid_value("ry", "auto");
|
||||
|
||||
test_valid_value("rx", "0", "0px");
|
||||
test_valid_value("rx", "1px");
|
||||
test_valid_value("rx", "calc(2em + 3ex)");
|
||||
test_valid_value("rx", "4%");
|
||||
test_valid_value("rx", "5vh");
|
||||
test_valid_value("ry", "0", "0px");
|
||||
test_valid_value("ry", "1px");
|
||||
test_valid_value("ry", "calc(2em + 3ex)");
|
||||
test_valid_value("ry", "4%");
|
||||
test_valid_value("ry", "5vh");
|
||||
|
||||
]]></script>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 861 B After Width: | Height: | Size: 861 B |
0
tests/wpt/web-platform-tests/tools/ci/before_install.sh
Normal file → Executable file
0
tests/wpt/web-platform-tests/tools/ci/before_install.sh
Normal file → Executable file
|
@ -1,3 +1,4 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
SCRIPT_DIR=$(cd $(dirname "$0") && pwd -P)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
SCRIPT_DIR=$(cd $(dirname "$0") && pwd -P)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
SCRIPT_DIR=$(cd $(dirname "$0") && pwd -P)
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
hosts_fixup() {
|
||||
echo "travis_fold:start:hosts_fixup"
|
||||
echo "Rewriting hosts file"
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script is embedded in the docker image, and so the image must be updated when changes
|
||||
# to the script are made. To do this, assuming you have docker installed:
|
||||
# In tools/docker/ :
|
||||
|
@ -8,7 +10,6 @@
|
|||
# Update the `image` specified in the project's .taskcluster.yml file
|
||||
|
||||
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
REMOTE=${1:-https://github.com/web-platform-tests/wpt}
|
||||
|
|
0
tests/wpt/web-platform-tests/tools/manifest/update.py
Normal file → Executable file
0
tests/wpt/web-platform-tests/tools/manifest/update.py
Normal file → Executable file
|
@ -1,5 +1,3 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Copyright 2011, Google Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
|
|
|
@ -5,10 +5,13 @@ import shutil
|
|||
import stat
|
||||
import subprocess
|
||||
import tempfile
|
||||
import urlparse
|
||||
from abc import ABCMeta, abstractmethod
|
||||
from datetime import datetime, timedelta
|
||||
from distutils.spawn import find_executable
|
||||
|
||||
import requests
|
||||
|
||||
from utils import call, get, untar, unzip
|
||||
|
||||
uname = platform.uname()
|
||||
|
@ -93,30 +96,28 @@ class Firefox(Browser):
|
|||
def install(self, dest=None, channel="nightly"):
|
||||
"""Install Firefox."""
|
||||
|
||||
branch = {
|
||||
"nightly": "mozilla-central",
|
||||
"beta": "mozilla-beta",
|
||||
"stable": "mozilla-stable"
|
||||
}
|
||||
scraper = {
|
||||
"nightly": "daily",
|
||||
"beta": "release",
|
||||
"stable": "release"
|
||||
}
|
||||
version = {
|
||||
"stable": "latest",
|
||||
"beta": "latest-beta",
|
||||
"nightly": "latest"
|
||||
}
|
||||
|
||||
if channel not in branch:
|
||||
raise ValueError("Unrecognised release channel: %s" % channel)
|
||||
|
||||
from mozdownload import FactoryScraper
|
||||
import mozinstall
|
||||
|
||||
if self.platform is None:
|
||||
raise ValueError("Unable to construct a valid Firefox package name for current platform")
|
||||
product = {
|
||||
"nightly": "firefox-nightly-latest-ssl",
|
||||
"beta": "firefox-beta-latest-ssl",
|
||||
"stable": "firefox-beta-latest-ssl"
|
||||
}
|
||||
|
||||
os_builds = {
|
||||
("linux", "x86"): "linux",
|
||||
("linux", "x86_64"): "linux64",
|
||||
("win", "x86"): "win",
|
||||
("win", "x86_64"): "win64",
|
||||
("macos", "x86_64"): "osx",
|
||||
}
|
||||
os_key = (self.platform, uname[4])
|
||||
|
||||
if channel not in product:
|
||||
raise ValueError("Unrecognised release channel: %s" % channel)
|
||||
|
||||
if os_key not in os_builds:
|
||||
raise ValueError("Unsupported platform: %s %s" % os_key)
|
||||
|
||||
if dest is None:
|
||||
# os.getcwd() doesn't include the venv path
|
||||
|
@ -124,17 +125,35 @@ class Firefox(Browser):
|
|||
|
||||
dest = os.path.join(dest, "browsers", channel)
|
||||
|
||||
scraper = FactoryScraper(scraper[channel],
|
||||
branch=branch[channel],
|
||||
version=version[channel],
|
||||
destination=dest)
|
||||
if not os.path.exists(dest):
|
||||
os.makedirs(dest)
|
||||
|
||||
self.logger.info("Downloading Firefox from %s" % scraper.url)
|
||||
url = "https://download.mozilla.org/?product=%s&os=%s&lang=en-US" % (product[channel],
|
||||
os_builds[os_key])
|
||||
self.logger.info("Downloading Firefox from %s" % url)
|
||||
resp = requests.get(url)
|
||||
|
||||
filename = scraper.download()
|
||||
filename = None
|
||||
|
||||
content_disposition = resp.headers.get('content-disposition')
|
||||
if content_disposition:
|
||||
filenames = re.findall("filename=(.+)", content_disposition)
|
||||
if filenames:
|
||||
filename = filenames[0]
|
||||
|
||||
if not filename:
|
||||
filename = urlparse.urlsplit(resp.url).path.rsplit("/", 1)[1]
|
||||
|
||||
if not filename:
|
||||
filename = "firefox.tar.bz2"
|
||||
|
||||
installer_path = os.path.join(dest, filename)
|
||||
|
||||
with open(installer_path, "w") as f:
|
||||
f.write(resp.content)
|
||||
|
||||
try:
|
||||
mozinstall.install(filename, dest)
|
||||
mozinstall.install(installer_path, dest)
|
||||
except mozinstall.mozinstall.InstallError:
|
||||
if self.platform == "macos" and os.path.exists(os.path.join(dest, self.application_name.get(channel, "Firefox Nightly.app"))):
|
||||
# mozinstall will fail if nightly is already installed in the venv because
|
||||
|
@ -144,7 +163,7 @@ class Firefox(Browser):
|
|||
else:
|
||||
raise
|
||||
|
||||
os.remove(filename)
|
||||
os.remove(installer_path)
|
||||
return self.find_binary_path(dest)
|
||||
|
||||
def find_binary_path(self,path=None, channel="nightly"):
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
marionette_driver==2.7.0
|
||||
mozprofile==2.1.0
|
||||
mozprofile==2.2.0
|
||||
mozprocess==1.0.0
|
||||
mozcrash == 1.0
|
||||
mozrunner==7.3.0
|
||||
|
|
0
tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat
Normal file → Executable file
0
tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat
Normal file → Executable file
0
tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh
Normal file → Executable file
0
tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh
Normal file → Executable file
0
tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/formatters.py
Executable file → Normal file
0
tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/formatters.py
Executable file → Normal file
|
@ -26,7 +26,7 @@
|
|||
// Experimentally determined thresholds. DO NOT relax these values
|
||||
// to far from these values to make the tests pass.
|
||||
const errorThreshold = 9.0957e-5;
|
||||
const snrThreshold = 85.586;
|
||||
const snrThreshold = 85.580;
|
||||
|
||||
// Informative message
|
||||
should(sampleRate, 'Test 1: context.sampleRate')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue