Update web-platform-tests to revision 755d18230983e9c7d894768b73fabff8bc290d91

This commit is contained in:
WPT Sync Bot 2019-05-31 10:26:18 +00:00
parent d544c186b9
commit fa788e624b
70 changed files with 1929 additions and 380 deletions

View file

@ -14,9 +14,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL
[url-with-fetch.any.html]
[Untitled]
@ -37,3 +34,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

View file

@ -14575,12 +14575,6 @@
{}
]
],
"pointerevents/pointerevent_touch-action-keyboard-manual.html": [
[
"pointerevents/pointerevent_touch-action-keyboard-manual.html",
{}
]
],
"pointerevents/pointerevent_touch-action-mouse-manual.html": [
[
"pointerevents/pointerevent_touch-action-mouse-manual.html",
@ -56523,6 +56517,18 @@
{}
]
],
"css/CSS2/linebox/vertical-align-top-bottom-padding.html": [
[
"css/CSS2/linebox/vertical-align-top-bottom-padding.html",
[
[
"/css/CSS2/linebox/vertical-align-top-bottom-padding-ref.html",
"=="
]
],
{}
]
],
"css/CSS2/lists/counter-increment-005.xht": [
[
"css/CSS2/lists/counter-increment-005.xht",
@ -140645,6 +140651,18 @@
{}
]
],
"css/css-tables/dynamic-table-cell-height.html": [
[
"css/css-tables/dynamic-table-cell-height.html",
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"css/css-tables/fixup-dynamic-anonymous-inline-table-001.html": [
[
"css/css-tables/fixup-dynamic-anonymous-inline-table-001.html",
@ -164747,6 +164765,18 @@
{}
]
],
"css/css-will-change/will-change-transform-image.html": [
[
"css/css-will-change/will-change-transform-image.html",
[
[
"/css/css-will-change/will-change-transform-image-ref.html",
"=="
]
],
{}
]
],
"css/css-will-change/will-change-will-change-1.html": [
[
"css/css-will-change/will-change-will-change-1.html",
@ -176755,6 +176785,138 @@
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-blur.html": [
[
"css/filter-effects/css-backdrop-filters-animation-blur.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-blur-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-brightness.html": [
[
"css/filter-effects/css-backdrop-filters-animation-brightness.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-brightness-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-combined.html": [
[
"css/filter-effects/css-backdrop-filters-animation-combined.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-combined-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-contrast.html": [
[
"css/filter-effects/css-backdrop-filters-animation-contrast.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-contrast-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-drop-shadow.html": [
[
"css/filter-effects/css-backdrop-filters-animation-drop-shadow.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-drop-shadow-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-grayscale.html": [
[
"css/filter-effects/css-backdrop-filters-animation-grayscale.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-grayscale-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-hue-rotate.html": [
[
"css/filter-effects/css-backdrop-filters-animation-hue-rotate.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-hue-rotate-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-invert.html": [
[
"css/filter-effects/css-backdrop-filters-animation-invert.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-invert-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-opacity.html": [
[
"css/filter-effects/css-backdrop-filters-animation-opacity.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-opacity-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-saturate.html": [
[
"css/filter-effects/css-backdrop-filters-animation-saturate.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-saturate-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-sepia.html": [
[
"css/filter-effects/css-backdrop-filters-animation-sepia.html",
[
[
"/css/filter-effects/css-backdrop-filters-animation-sepia-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/css-filters-animation-blur.html": [
[
"css/filter-effects/css-filters-animation-blur.html",
@ -197515,42 +197677,6 @@
{}
]
],
"html/input/the-placeholder-attribute/multiline-cr.html": [
[
"html/input/the-placeholder-attribute/multiline-cr.html",
[
[
"/html/input/the-placeholder-attribute/multiline-ref.html",
"=="
]
],
{}
]
],
"html/input/the-placeholder-attribute/multiline-crlf.html": [
[
"html/input/the-placeholder-attribute/multiline-crlf.html",
[
[
"/html/input/the-placeholder-attribute/multiline-ref.html",
"=="
]
],
{}
]
],
"html/input/the-placeholder-attribute/multiline.html": [
[
"html/input/the-placeholder-attribute/multiline.html",
[
[
"/html/input/the-placeholder-attribute/multiline-ref.html",
"=="
]
],
{}
]
],
"html/rendering/bindings/the-button-element/button-type-menu-historical.html": [
[
"html/rendering/bindings/the-button-element/button-type-menu-historical.html",
@ -199423,6 +199549,42 @@
{}
]
],
"html/semantics/forms/the-input-element/multiline-placeholder-cr.html": [
[
"html/semantics/forms/the-input-element/multiline-placeholder-cr.html",
[
[
"/html/semantics/forms/the-input-element/multiline-placeholder-ref.html",
"=="
]
],
{}
]
],
"html/semantics/forms/the-input-element/multiline-placeholder-crlf.html": [
[
"html/semantics/forms/the-input-element/multiline-placeholder-crlf.html",
[
[
"/html/semantics/forms/the-input-element/multiline-placeholder-ref.html",
"=="
]
],
{}
]
],
"html/semantics/forms/the-input-element/multiline-placeholder.html": [
[
"html/semantics/forms/the-input-element/multiline-placeholder.html",
[
[
"/html/semantics/forms/the-input-element/multiline-placeholder-ref.html",
"=="
]
],
{}
]
],
"html/semantics/forms/the-input-element/range-intrinsic-size.html": [
[
"html/semantics/forms/the-input-element/range-intrinsic-size.html",
@ -248182,6 +248344,11 @@
{}
]
],
"css/CSS2/linebox/vertical-align-top-bottom-padding-ref.html": [
[
{}
]
],
"css/CSS2/lists/counter-increment-014-ref.html": [
[
{}
@ -285197,6 +285364,11 @@
{}
]
],
"css/css-will-change/will-change-transform-image-ref.html": [
[
{}
]
],
"css/css-writing-modes/META.yml": [
[
{}
@ -288557,6 +288729,61 @@
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-blur-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-brightness-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-combined-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-contrast-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-drop-shadow-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-grayscale-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-hue-rotate-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-invert-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-opacity-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-saturate-ref.html": [
[
{}
]
],
"css/filter-effects/css-backdrop-filters-animation-sepia-ref.html": [
[
{}
]
],
"css/filter-effects/css-filters-animation-blur-ref.html": [
[
{}
@ -305967,11 +306194,6 @@
{}
]
],
"html/input/the-placeholder-attribute/multiline-ref.html": [
[
{}
]
],
"html/interaction/focus/document-level-focus-apis/test.html": [
[
{}
@ -307922,6 +308144,11 @@
{}
]
],
"html/semantics/forms/the-input-element/multiline-placeholder-ref.html": [
[
{}
]
],
"html/semantics/forms/the-input-element/range-intrinsic-size-ref.html": [
[
{}
@ -394650,12 +394877,6 @@
{}
]
],
"html/input/the-disabled-attribute/number-disabled.html": [
[
"html/input/the-disabled-attribute/number-disabled.html",
{}
]
],
"html/interaction/focus/composed.window.js": [
[
"html/interaction/focus/composed.window.html",
@ -399666,6 +399887,12 @@
{}
]
],
"html/semantics/forms/the-input-element/number-disabled.html": [
[
"html/semantics/forms/the-input-element/number-disabled.html",
{}
]
],
"html/semantics/forms/the-input-element/number.html": [
[
"html/semantics/forms/the-input-element/number.html",
@ -423031,6 +423258,15 @@
}
]
],
"pointerevents/pointerevent_touch-action-keyboard.html": [
[
"pointerevents/pointerevent_touch-action-keyboard.html",
{
"testdriver": true,
"timeout": "long"
}
]
],
"pointerevents/pointerevent_touch-action-none-css_touch.html": [
[
"pointerevents/pointerevent_touch-action-none-css_touch.html",
@ -456979,12 +457215,6 @@
{}
]
],
"webxr/xrSession_transfer_outputContext.https.html": [
[
"webxr/xrSession_transfer_outputContext.https.html",
{}
]
],
"webxr/xrSession_viewer_referenceSpace.https.html": [
[
"webxr/xrSession_viewer_referenceSpace.https.html",
@ -542509,6 +542739,14 @@
"80100809b3490a336dbbb08d79275d011da46d92",
"reftest"
],
"css/CSS2/linebox/vertical-align-top-bottom-padding-ref.html": [
"f855bab6a2f4a8845aebd98fb33b7c9e0d4adc8c",
"support"
],
"css/CSS2/linebox/vertical-align-top-bottom-padding.html": [
"21451a04fa5e9618276e0e518e82bbb7bb64b21d",
"reftest"
],
"css/CSS2/lists/counter-increment-003.xht": [
"ec01daee98f0871caca224a76ff27905b2a25853",
"visual"
@ -611561,6 +611799,10 @@
"8a2b60864228d2d79af3ad18e6b8366e340dbbe3",
"testharness"
],
"css/css-tables/dynamic-table-cell-height.html": [
"f6cd48e5ba5616a499809293714fcbb5b5742489",
"reftest"
],
"css/css-tables/fixed-layout-1.html": [
"3e0d013af1c6970a1180cf19db37e8e7b82cc0c0",
"testharness"
@ -629961,6 +630203,14 @@
"b01844aea5c66eb2f4d0e7698ab9032d8ddb1079",
"testharness"
],
"css/css-will-change/will-change-transform-image-ref.html": [
"d42d5b7fea22d3d2bc2abf782b1efc78f261f69e",
"support"
],
"css/css-will-change/will-change-transform-image.html": [
"edce6c1f9bfa840004d8e82e6720be9c18bd23b6",
"reftest"
],
"css/css-will-change/will-change-will-change-1.html": [
"812dc814a095841d8bd2c5dc23c8552922213e75",
"reftest"
@ -638261,6 +638511,94 @@
"82b907334fd71791cd2f6530e2e85169e29afa41",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-blur-ref.html": [
"e433070b686781c43ca186c9c1808c9f86dbf69a",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-blur.html": [
"3d883c2efd57c0654ef90007444e7cb9b80ed578",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-brightness-ref.html": [
"8ba5b45999ff53e392569fd4a5365a0254eab4d9",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-brightness.html": [
"d377e5e81fd2389e81c31fc2d6c8107894b02fe7",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-combined-ref.html": [
"b4c6bc90665f81772cde5e7ea929475528ae6cc2",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-combined.html": [
"920dc82393d10fec7fe94e6490f241a6a222c5da",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-contrast-ref.html": [
"e1bf06056e66c2c77f9261f641bf935ac81b8dff",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-contrast.html": [
"d9709f8614c438d30614a8d31a7c75bbc2e0c07e",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-drop-shadow-ref.html": [
"0b4a3f2d8dbd5372c6971db92a645f69eae8a850",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-drop-shadow.html": [
"c7e19a987d526486f6aeb1b07be72ab6394a99af",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-grayscale-ref.html": [
"75e457aa1f0d4fbaf9bf82fd7c603f7257a5e5eb",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-grayscale.html": [
"c04118c6a83cbc811df1c6d836e9fe37a532f0d0",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-hue-rotate-ref.html": [
"0651e89e41df36b8c47d93502faa2df37e0054b6",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-hue-rotate.html": [
"e3cdd1f8f1acc4037612757e2eb1feb981de3e9b",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-invert-ref.html": [
"509642001679daa39bd50d2d305811407b0a129c",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-invert.html": [
"963ab7ed571085d908a652172206b66d2a3bf530",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-opacity-ref.html": [
"fd92dba5e575dc298ebbd34c306ee506e6b40fcc",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-opacity.html": [
"d6c6d35efc670bc4b1f92696345052c71077553f",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-saturate-ref.html": [
"7f7b67f2adfec1a90717a7692833c37cc6dc27bf",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-saturate.html": [
"13e277393cd6545ff118768167c2a46aa5a89b42",
"reftest"
],
"css/filter-effects/css-backdrop-filters-animation-sepia-ref.html": [
"b368abba24979f47d6394f674f14b3398914bb80",
"support"
],
"css/filter-effects/css-backdrop-filters-animation-sepia.html": [
"8cd9290546a00b7bbd024c943cb055b9bdea9bc5",
"reftest"
],
"css/filter-effects/css-filters-animation-blur-ref.html": [
"3bde6f1826f7620fc0754fff46ed5ef382de3d4d",
"support"
@ -639650,11 +639988,11 @@
"testharness"
],
"css/selectors/floating-first-letter-05d0.html": [
"6848070e6dfecae8083a8676bf5e063633e191fd",
"68bc77b40f325bf486b15176022578198867297c",
"reftest"
],
"css/selectors/floating-first-letter-feff.html": [
"02d256ab7dce8b8754fc31668a3a894379eb6bd0",
"c5cec97fed8781f2b1ec171c6f009514616b29a8",
"reftest"
],
"css/selectors/floating-first-letter-ref.html": [
@ -651746,7 +652084,7 @@
"support"
],
"docs/writing-tests/testdriver-tutorial.md": [
"b82eb73ab33d6a2738640c6d1bb8dd0504b9dcf3",
"a8ef3e07a0da92f167d3dcf8ca7416748f1710dd",
"support"
],
"docs/writing-tests/testdriver.md": [
@ -668657,26 +668995,6 @@
"49c428c5bea12c200c155cdf70135f209b87c004",
"testharness"
],
"html/input/the-disabled-attribute/number-disabled.html": [
"11cb82fdda60d69f8b1dd7709ea99210238123f8",
"testharness"
],
"html/input/the-placeholder-attribute/multiline-cr.html": [
"4184ab2c5ce2a0b42ada8f97e1c32681fc37f052",
"reftest"
],
"html/input/the-placeholder-attribute/multiline-crlf.html": [
"50c91fbe35e572e923b92f9d606fa13fcbfb0aae",
"reftest"
],
"html/input/the-placeholder-attribute/multiline-ref.html": [
"2812f86e1e6c8e240f60ff313e856b6733e54b5e",
"support"
],
"html/input/the-placeholder-attribute/multiline.html": [
"2d7102bd4acd6a29a650f6e11479d7226f4c4327",
"reftest"
],
"html/interaction/focus/composed.window.js": [
"8951afc4e0ce643752754e67243532ae8e0fa9ae",
"testharness"
@ -674385,6 +674703,26 @@
"99be9bca673dacaf4101b27807623426b9956e02",
"testharness"
],
"html/semantics/forms/the-input-element/multiline-placeholder-cr.html": [
"06f07cbbd84b79fcc7389b1cb39d131fc6e48bbe",
"reftest"
],
"html/semantics/forms/the-input-element/multiline-placeholder-crlf.html": [
"b4336e24d29b2db71ca73abbf5b594e4e3c180c7",
"reftest"
],
"html/semantics/forms/the-input-element/multiline-placeholder-ref.html": [
"2812f86e1e6c8e240f60ff313e856b6733e54b5e",
"support"
],
"html/semantics/forms/the-input-element/multiline-placeholder.html": [
"4d2ec43c3f4582a7f94bf2c70edc2b1c4fb87ce7",
"reftest"
],
"html/semantics/forms/the-input-element/number-disabled.html": [
"11cb82fdda60d69f8b1dd7709ea99210238123f8",
"testharness"
],
"html/semantics/forms/the-input-element/number.html": [
"64868f02efca707cfe88a51e9bd91574dfbcaad9",
"testharness"
@ -681790,7 +682128,7 @@
"testharness"
],
"lint.whitelist": [
"06fcea129fe52a6631cffc839b9ba9e6139da32a",
"04738ee972705391dddef4031a8f7cb429a9e068",
"support"
],
"loading/preloader-css-import-no-quote.tentative.html": [
@ -694398,7 +694736,7 @@
"testharness"
],
"pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch.html": [
"f05aadf39e8435dea374386a796c15fc747f15b0",
"257043f2249c63b5ac6e3245d17acb80caa83732",
"testharness"
],
"pointerevents/pointerevent_touch-action-inherit_child-none_touch.html": [
@ -694421,9 +694759,9 @@
"d525fe6ccd16c9ff1de275b845441617d0b3a3fc",
"testharness"
],
"pointerevents/pointerevent_touch-action-keyboard-manual.html": [
"a41d7078f2ee87a8a5686379536aaf1e0de915df",
"manual"
"pointerevents/pointerevent_touch-action-keyboard.html": [
"fdddd3313f498abb89a0958fd302b3949abab355",
"testharness"
],
"pointerevents/pointerevent_touch-action-mouse-manual.html": [
"fcc8584515c51d60bb01092ffe1f701273c7bb58",
@ -704366,7 +704704,7 @@
"support"
],
"resize-observer/svg.html": [
"e3a1ab660760965f2b108e8b617427e57070e63e",
"61ca97a111bc063fd3bc28d9dc1dac1bb4f96e59",
"testharness"
],
"resource-timing/META.yml": [
@ -707634,7 +707972,7 @@
"testharness"
],
"service-workers/service-worker/Service-Worker-Allowed-header.https.html": [
"316067cc06679570866cd1ccf67f273cce57a15b",
"9045c0f4e791192c432d99156666292f8df42ab3",
"testharness"
],
"service-workers/service-worker/ServiceWorkerGlobalScope/close.https.html": [
@ -720742,7 +721080,7 @@
"support"
],
"tools/wptrunner/requirements.txt": [
"50560fa82255dd8c56f0b58e7d15539b75ede005",
"14cf86e95ceb7c9e7a1b2c92b48e9fe56a79cb46",
"support"
],
"tools/wptrunner/requirements_chrome.txt": [
@ -721026,7 +721364,7 @@
"support"
],
"tools/wptrunner/wptrunner/executors/executormarionette.py": [
"8ceb99261e28d7142b16ab736ba453d849065f89",
"7ab701879ff1c0186a077c9e0dad313f6064ed6a",
"support"
],
"tools/wptrunner/wptrunner/executors/executoropera.py": [
@ -732402,7 +732740,7 @@
"support"
],
"webxr/resources/webxr_util.js": [
"505a9281f57ecd13443dfff380e0028d74708990",
"860d363f2c96bbf108e38659b5b6afc90957817e",
"support"
],
"webxr/resources/xr-test-asserts.js": [
@ -732517,10 +732855,6 @@
"2fbf9b977ca153acf7028bd73844b7eb10c20b72",
"testharness"
],
"webxr/xrSession_transfer_outputContext.https.html": [
"759d97ba184067f0f4df431500f5eabddd788921",
"testharness"
],
"webxr/xrSession_viewer_referenceSpace.https.html": [
"85e5e87f8266f2701c96dc643e8890942ef013bd",
"testharness"

View file

@ -0,0 +1,2 @@
[vertical-align-top-bottom-padding.html]
expected: FAIL

View file

@ -74,3 +74,6 @@
[opacity end]
expected: FAIL
[border-bottom-width end]
expected: FAIL

View file

@ -1,3 +1,3 @@
[vh_not_refreshing_on_chrome.html]
bug: https://github.com/servo/servo/issues/8984
expected: CRASH
expected: TIMEOUT

View file

@ -1,2 +0,0 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

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

View file

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

View file

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

View file

@ -1,5 +1,24 @@
[open-features-negative-innerwidth-innerheight.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`]
expected: FAIL
[features "innerheight=-404.5" should NOT set "height=404"]
expected: TIMEOUT
[features "innerwidth=-404.5" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=-404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerheight=-404e1" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=-404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerwidth=-404e1" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,5 +1,24 @@
[open-features-negative-screenx-screeny.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `screenx`, `screeny`]
expected: FAIL
[features "screenx=-204" should NOT set "left=204"]
expected: TIMEOUT
[features "screeny=-204" should NOT set "top=204"]
expected: TIMEOUT
[features "screeny=-204.5" should NOT set "top=204"]
expected: TIMEOUT
[features "screeny=-0" should NOT set "top=204"]
expected: TIMEOUT
[features "screenx=-0" should NOT set "left=204"]
expected: TIMEOUT
[features "screenx=-204.5" should NOT set "left=204"]
expected: TIMEOUT

View file

@ -1,5 +1,24 @@
[open-features-negative-top-left.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for `top`, `left`]
expected: FAIL
[features "top=-204" should NOT set "top=204"]
expected: TIMEOUT
[features "top=-204.5" should NOT set "top=204"]
expected: TIMEOUT
[features "left=-204" should NOT set "left=204"]
expected: TIMEOUT
[features "top=-0" should NOT set "top=204"]
expected: TIMEOUT
[features "left=-204.5" should NOT set "left=204"]
expected: TIMEOUT
[features "left=-0" should NOT set "left=204"]
expected: TIMEOUT

View file

@ -1,5 +1,24 @@
[open-features-negative-width-height.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for `width`, `height`]
expected: FAIL
[features "height=-404" should NOT set "height=404"]
expected: TIMEOUT
[features "height=-404e1" should NOT set "height=404"]
expected: TIMEOUT
[features "height=-404.5" should NOT set "height=404"]
expected: TIMEOUT
[features "width=-404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=-404e1" should NOT set "width=404"]
expected: TIMEOUT
[features "width=-404.5" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,32 +1,48 @@
[open-features-non-integer-height.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `height`]
expected: FAIL
[features "height=405*3" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405.32" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405e1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405/5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405^4" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405.5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405e-1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405 " should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405LLl" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=/404" should NOT set "height=404"]
expected: TIMEOUT
[top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"]
expected: TIMEOUT
[top=0,left=0: absence of feature "height" should be treated same as "height=0"]
expected: TIMEOUT
[features "height=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "height=L404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-innerheight.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
expected: FAIL
[features "innerheight=405e-1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405LLl" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405^4" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405e1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405 " should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405/5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405.32" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405.5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405*3" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=L404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=/404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-innerwidth.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
expected: FAIL
[features "innerwidth=405e-1" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405*3" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405.5" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405e1" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405.32" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405 " should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405LLl" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405/5" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405^4" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=_404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=L404" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-left.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `left`]
expected: FAIL
[features "left=105e1" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105 " should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105/5" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105e-1" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105^4" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105LLl" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105.32" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105*3" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105.5" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=L104" should NOT set "left=104"]
expected: TIMEOUT
[features "left=/104" should NOT set "left=104"]
expected: TIMEOUT
[features "left=_104" should NOT set "left=104"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-screenx.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screenx`]
expected: FAIL
[features "screenx=105.5" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105e1" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105 " should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105*3" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105e-1" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105^4" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105LLl" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105/5" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105.32" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=_104" should NOT set "left=104"]
expected: TIMEOUT
[features "screenx=L104" should NOT set "left=104"]
expected: TIMEOUT
[features "screenx=/104" should NOT set "left=104"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-screeny.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screeny`]
expected: FAIL
[features "screeny=405^4" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405e-1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405LLl" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405e1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405 " should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405/5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405*3" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405.32" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405.5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "screeny=L404" should NOT set "height=404"]
expected: TIMEOUT
[features "screeny=/404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-top.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `top`]
expected: FAIL
[features "top=105/5" should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=105*3" should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=105LLl" should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=105e-1" should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=105.32" should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=105e1" should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=105 " should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=105^4" should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=105.5" should set "top=105"]
expected: FAIL
expected: TIMEOUT
[features "top=/104" should NOT set "top=104"]
expected: TIMEOUT
[features "top=_104" should NOT set "top=104"]
expected: TIMEOUT
[features "top=L104" should NOT set "top=104"]
expected: TIMEOUT

View file

@ -1,32 +1,48 @@
[open-features-non-integer-width.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `width`]
expected: FAIL
[features "width=405^4" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405.5" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405e1" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405 " should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405.32" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405LLl" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405*3" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405e-1" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405/5" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[top=0,left=0: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=_404" should NOT set "width=404"]
expected: TIMEOUT
[top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=L404" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -1,4 +1,5 @@
[promise-rejection-events.html]
expected: TIMEOUT
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
expected: FAIL
@ -8,3 +9,6 @@
[no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from createImageBitmap]
expected: FAIL
[rejectionhandled is dispatched from a queued task, and not immediately]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[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,2 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<style>
div {
margin-top: 50px;
font-size: 10px;
line-height: 1;
}
.inline-block {
display: inline-block;
height: 30px;
width: 30px;
background: blue;
}
.top .inline-block {
vertical-align: top;
}
.bottom .inline-block {
vertical-align: bottom;
}
</style>
<body>
<div class="top">
<span>
Next
<span class="inline-block"></span>
</span>
</div>
<div class="bottom">
<span>
Next
<span class="inline-block"></span>
</span>
</div>
</body>

View file

@ -0,0 +1,49 @@
<!DOCTYPE html>
<link rel="match" href="vertical-align-top-bottom-padding-ref.html">
<link rel="help" href="https://drafts.csswg.org/css2/visudet.html#propdef-vertical-align" />
<link rel="author" href="kojii@chromium.org">
<style>
div {
margin-top: 50px;
font-size: 10px;
line-height: 1;
}
.inline-block {
display: inline-block;
height: 30px;
width: 30px;
background: blue;
}
.top .padding {
padding-top: 20px;
}
.top .inline-block {
vertical-align: top;
}
.bottom .padding {
padding-bottom: 20px;
}
.bottom .inline-block {
vertical-align: bottom;
}
</style>
<body>
<div class="top">
<span class="padding">
Next
<span class="inline-block"></span>
</span>
</div>
<div class="bottom">
<span class="padding">
Next
<span class="inline-block"></span>
</span>
</div>
</body>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html class="reftest-wait">
<link rel="match" href="/css/reference/ref-filled-green-100px-square.xht">
<link rel="help" href="https://crbug.com/968016">
<script src="/common/reftest-wait.js"></script>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div style="display: table-cell; background: red; height: 50px;">
<div style="width: 100px; height: 100px; background: green; position: relative;">
<div id="target" style="position: absolute; width: 10px; height: 10px;"></div>
</div>
</div>
<script>
document.body.offsetTop;
document.getElementById('target').style.top = '10px';
document.body.offsetTop;
takeScreenshot();
</script>

View file

@ -0,0 +1,4 @@
<!DOCTYPE html>
<div style="padding: 100px">
<div style="width: 256px; height: 256px; background: lime"></div>
</div>

View file

@ -0,0 +1,4 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-will-change/#will-change">
<link rel="match" href="will-change-transform-image-ref.html">
<img style="padding: 100px; will-change: transform" src="../../images/green-256x256.png">

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Blur Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: blur(10px);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a blurred rectangle with a green box.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,49 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Blur</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-blur-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: blur(20px);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a blurred rectangle with a green box.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Brightness Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: brightness(50%);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a dark blue rectangle with a green box. Neither black nor blue.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Brightness</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-brightness-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: brightness(0%);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a dark blue rectangle with a green box. Neither black nor blue.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Combined filters 001 Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: black;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter:
blur(10px)
brightness(50%)
sepia(50%)
grayscale(50%)
saturate(50%)
hue-rotate(45deg)
invert(50%)
opacity(50%)
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a gray blurred rectangle with a green box.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,57 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Combined filters 001</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-combined-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter:
blur(20px)
brightness(0%)
sepia(100%)
grayscale(100%)
saturate(0%)
hue-rotate(90deg)
invert(100%)
opacity(0%)
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: black;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a gray blurred rectangle with a green box.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Contrast Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: black;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: contrast(50%);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a gray rectangle with a green box. Neither black nor white.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Contrast</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-contrast-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: contrast(0%);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: black;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a gray rectangle with a green box. Neither black nor white.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Drop Shadow Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: drop-shadow(15px 15px 0px rgba(0, 0, 0, 0.5));
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a blue rectangle in top of a gray one, with a green box on top.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Drop Shadow</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-drop-shadow-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: drop-shadow(30px 30px 0px black);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a blue rectangle in top of a gray one, with a green box on top.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Blur Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: grayscale(50%);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a dark blue rectangle with a green box.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Grayscale</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-grayscale-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: grayscale(100%);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a dark blue rectangle with a green box.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Hue-rotate Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: hue-rotate(45deg);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a violet rectangle with a green box. Neither red nor blue.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Hue-rotate</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-hue-rotate-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: hue-rotate(90deg);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a violet rectangle with a green box. Neither red nor blue.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Invert Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: black;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: invert(50%);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a gray rectangle with a green box. Neither black nor white.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Invert</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-invert-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: invert(100%);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: black;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a gray rectangle with a green box. Neither black nor white.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Opacity Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: black;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: opacity(50%);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a gray rectangle with a green box. Neither black nor white.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Opacity</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-opacity-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: opacity(0%);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: black;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a gray rectangle with a green box. Neither black nor white.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Saturate Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: #f4fbff;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: saturate(2500%);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a light-blue rectangle with a green box. Neither cyan nor white.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Saturate</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-saturate-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: saturate(4900%);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: #f4fbff;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a light-blue rectangle with a green box. Neither cyan nor white.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Sepia Reference</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<style>
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
backdrop-filter: sepia(50%);
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a dark blue rectangle with a green box.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<title>CSS Backdrop Filters Animation: Sepia</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="css-backdrop-filters-animation-sepia-ref.html">
<style>
@keyframes animate {
0% {
backdrop-filter: sepia(100%);
}
100% {
backdrop-filter: none;
}
}
.square {
position: absolute;
width: 100px;
height: 100px;
top: 100px;
left: 100px;
background: blue;
}
.filt {
position: absolute;
width: 200px;
height: 200px;
top: 50px;
left: 50px;
animation-name: animate;
animation-play-state: paused;
animation-delay: -2s;
animation-duration: 4s;
animation-timing-function: linear;
}
.greenbox {
position: absolute;
width: 50px;
height: 50px;
top: 75px;
left: 75px;
background: green;
}
</style>
<p>You should see a dark blue rectangle with a green box.</p>
<div class="square"></div>
<div class="filt">
<div class="greenbox"></div>
</div>

View file

@ -3,7 +3,7 @@
<title>Drop cap with U+05D0 in the document</title>
<meta name="assert" content="The text placement within :first-line should not be affected by later presence of a right-to-left character.">
<link rel=help href=https://drafts.csswg.org/css-pseudo-4/#first-line-styling>
<link rel=match href=/css/selectors/floating-first-letter-ref.html>
<link rel=match href=floating-first-letter-ref.html>
<style>
p:first-line {
background: lightblue;
@ -17,4 +17,4 @@
color: transparent;
}
</style>
<p>Ab</p><div>&#x05D0;</div>
<p>Ab</p><div>&#x05D0;</div>

View file

@ -3,7 +3,7 @@
<title>Drop cap with U+FEFF in the document</title>
<meta name="assert" content="The text placement within :first-line should not be affected by later presence of U+FEFF.">
<link rel=help href=https://drafts.csswg.org/css-pseudo-4/#first-line-styling>
<link rel=match href=/css/selectors/floating-first-letter-ref.html>
<link rel=match href=floating-first-letter-ref.html>
<style>
p:first-line {
background: lightblue;
@ -14,4 +14,4 @@
font-size: 4rem;
}
</style>
<p>Ab</p>&#xFEFF;
<p>Ab</p>&#xFEFF;

View file

@ -5,14 +5,14 @@ Adding new commands to testdriver.js
## Assumptions
We assume the following in this writeup:
- You know what web-platform-tests is and you have a working checkout and can run tests
- You know what WebDriver or Selenium is
- You know what WebDriver is
- Familiarity with JavaScript and Python
## Introduction!
Let's implement window resizing. We can do this via the [Set Window Rect](https://w3c.github.io/webdriver/webdriver-spec.html#dfn-set-window-rect) command in WebDriver.
First, we need to think of what the API will look like a little. We will be using Selenium and Marionette for this, so we can look and see that they take in x, y coordinates, width and height integers.
First, we need to think of what the API will look like a little. We will be using WebDriver and Marionette for this, so we can look and see that they take in x, y coordinates, width and height integers.
The first part of this will be browser agnostic, but later we will need to implement a specific layer for each browser (here we will do Firefox and Chrome).
@ -190,12 +190,12 @@ Now we write the browser specific implementations.
### Chrome
We will use [executorselenium](https://github.com/web-platform-tests/wpt/blob/master/tools/wptrunner/wptrunner/executors/executorselenium.py) and use the Selenium API (in the future there are plans to use the WebDriver API directly).
We will use [executorwebdriver](https://github.com/web-platform-tests/wpt/blob/master/tools/wptrunner/wptrunner/executors/executorwebdriver.py) and use the WebDriver API.
There isn't too much work to do here, we just need to define a subclass of the protocol part we defined earlier.
```python
class SeleniumSetWindowRectProtocolPart(SetWindowRectProtocolPart):
class WebDriverSetWindowRectProtocolPart(SetWindowRectProtocolPart):
def setup(self):
self.webdriver = self.parent.webdriver
@ -217,20 +217,20 @@ from .protocol import (BaseProtocolPart,
TestDriverProtocolPart)
```
Here we have the setup method which just redefines the webdriver object at this level. The important part is the `set_window_rect` function (and it's important it is named that since we called it that earlier). This will be call the Selenium API for [set window rect](http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver.set_window_rect) (`self.webdriver` is a Selenium WebDriver instance here).
Here we have the setup method which just redefines the webdriver object at this level. The important part is the `set_window_rect` function (and it's important it is named that since we called it that earlier). This will call the WebDriver API for [set window rect](https://w3c.github.io/webdriver/#set-window-rect).
Finally, we just need to tell the SeleniumProtocol to implement this part.
Finally, we just need to tell the WebDriverProtocol to implement this part.
```python
class SeleniumProtocol(Protocol):
implements = [SeleniumBaseProtocolPart,
SeleniumTestharnessProtocolPart,
SeleniumSelectorProtocolPart,
SeleniumClickProtocolPart,
SeleniumSendKeysProtocolPart,
class WebDriverProtocol(Protocol):
implements = [WebDriverBaseProtocolPart,
WebDriverTestharnessProtocolPart,
WebDriverSelectorProtocolPart,
WebDriverClickProtocolPart,
WebDriverSendKeysProtocolPart,
{... other protocol parts}
SeleniumSetWindowRectProtocolPart,
SeleniumTestDriverProtocolPart]
WebDriverSetWindowRectProtocolPart, # add this!
WebDriverTestDriverProtocolPart]
```
@ -264,9 +264,9 @@ from .protocol import (BaseProtocolPart,
TestDriverProtocolPart)
```
Here we have the setup method which just redefines the webdriver object at this level. The important part is the `set_window_rect` function (and it's important it is named that since we called it that earlier). This will be call the Marionette API for [set window rect](http://marionette-client.readthedocs.io/en/master/reference.html#marionette_driver.marionette.Marionette.set_window_rect) (`self.marionette` is a marionette instance here).
Here we have the setup method which just redefines the webdriver object at this level. The important part is the `set_window_rect` function (and it's important it is named that since we called it that earlier). This will call the Marionette API for [set window rect](https://firefox-source-docs.mozilla.org/python/marionette_driver.html#marionette_driver.marionette.Marionette.set_window_rect) (`self.marionette` is a marionette instance here).
Finally, we just need to tell the SeleniumProtocol to implement this part.
Finally, we just need to tell the MarionetteProtocol to implement this part.
```python
class MarionetteProtocol(Protocol):
@ -278,13 +278,13 @@ class MarionetteProtocol(Protocol):
MarionetteClickProtocolPart,
MarionetteSendKeysProtocolPart,
{... other protocol parts}
MarionetteSetWindowRectProtocolPart # add this
MarionetteSetWindowRectProtocolPart, # add this
MarionetteTestDriverProtocolPart]
```
### Other Browsers
Other browsers may also use executorselenium (such as safari), or a completely new executor (such as servo). For these, you must change the executor in the same way as we did with chrome and firefox.
Other browsers (such as safari) may use executorselenium, or a completely new executor (such as servo). For these, you must change the executor in the same way as we did with chrome and firefox.
### Write an infra test
@ -311,7 +311,7 @@ promise_test(async t => {
### What about testdriver-vendor.js?
The file [testdriver-vendor.js](https://github.com/web-platform-tests/wpt/blob/master/resources/testdriver-vendor.js) is the equivalent to testdriver-extra.js above, except it is
run instead of testdriver-extra.js in browser specific test environments. For example, in [Chromium LayoutTests](https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/?q=LayoutTests&sq=package:chromium&dr).
run instead of testdriver-extra.js in browser-specific test environments. For example, in [Chromium web_tests](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/).
### What if I need to return a value from my testdriver API?

View file

@ -1 +0,0 @@
<!doctype html> <html class="reftest-wait"> <meta charset="utf-8"> <title>input multiline placeholder (CRLF)</title> <link rel="help" href="https://html.spec.whatwg.org/multipage/input.html#the-placeholder-attribute"> <meta name="assert" content="input element's placeholder strips newlines (CRLF)"> <link rel="match" href="/html/input/the-placeholder-attribute/multiline-ref.html"> <input placeholder="this is a multiline placeholder"> <input placeholder="this is&#xd;a multiline&#xd;&#xd;placeholder"> <input id="dynamic"> <script> document.querySelector("#dynamic") .setAttribute("placeholder", "this is\ra multiline\r\rplaceholder"); document.documentElement.classList.remove("reftest-wait"); </script> </html>

View file

@ -0,0 +1 @@
<!doctype html> <html class="reftest-wait"> <meta charset="utf-8"> <title>input multiline placeholder (CR)</title> <link rel="help" href="https://html.spec.whatwg.org/multipage/input.html#the-placeholder-attribute"> <meta name="assert" content="input element's placeholder strips newlines (CR)"> <link rel="match" href="multiline-placeholder-ref.html"> <input placeholder="this is a multiline placeholder"> <input placeholder="this is&#xd;a multiline&#xd;&#xd;placeholder"> <input id="dynamic"> <script> document.querySelector("#dynamic") .setAttribute("placeholder", "this is\ra multiline\r\rplaceholder"); document.documentElement.classList.remove("reftest-wait"); </script> </html>

View file

@ -4,7 +4,7 @@
<title>input multiline placeholder (CRLF)</title>
<link rel="help" href="https://html.spec.whatwg.org/multipage/input.html#the-placeholder-attribute">
<meta name="assert" content="input element's placeholder strips newlines (CRLF)">
<link rel="match" href="/html/input/the-placeholder-attribute/multiline-ref.html">
<link rel="match" href="multiline-placeholder-ref.html">
<input placeholder="this is
a multiline

View file

@ -4,7 +4,7 @@
<title>input multiline placeholder</title>
<link rel="help" href="https://html.spec.whatwg.org/multipage/input.html#the-placeholder-attribute">
<meta name="assert" content="input element's placeholder strips newlines">
<link rel="match" href="/html/input/the-placeholder-attribute/multiline-ref.html">
<link rel="match" href="multiline-placeholder-ref.html">
<input placeholder="this is
a multiline

View file

@ -100,8 +100,8 @@ CR AT EOL: WebIDL/valid/idl/documentation-dos.widl
CR AT EOL: cors/resources/cors-headers.asis
CR AT EOL: html/semantics/forms/the-textarea-element/multiline-placeholder-cr.html
CR AT EOL: html/semantics/forms/the-textarea-element/multiline-placeholder-crlf.html
CR AT EOL: html/input/the-placeholder-attribute/multiline-cr.html
CR AT EOL: html/input/the-placeholder-attribute/multiline-crlf.html
CR AT EOL: html/semantics/forms/the-input-element/multiline-placeholder-cr.html
CR AT EOL: html/semantics/forms/the-input-element/multiline-placeholder-crlf.html
CR AT EOL: webvtt/parsing/file-parsing/tests/support/newlines.vtt
# Intentional use of tabs

View file

@ -92,7 +92,7 @@
function run() {
var target0 = document.getElementById("target0");
var btnComplete = document.getElementById("btnComplete");
var clickIsReceived = false;
var actions_promise;
// Check if touch-action attribute works properly for embedded divs
// Scrollable-Parent, Child: `auto`, Grand-Child: `none`
@ -103,7 +103,11 @@
assert_equals(target0.scrollLeft, 0, "scroll x offset should be 0 in the end of the test");
assert_equals(target0.scrollTop, 0, "scroll y offset should be 0 in the end of the test");
});
clickIsReceived = true;
// Make sure the test finishes after all the input actions are completed.
actions_promise.then( () => {
test_touchaction.done();
});
updateDescriptionComplete();
});
@ -112,15 +116,10 @@
});
// Inject touch inputs.
touchScrollInTarget(scrollTarget, 'down').then(function() {
actions_promise = touchScrollInTarget(scrollTarget, 'down').then(function() {
return touchScrollInTarget(scrollTarget, 'right');
}).then(function() {
return clickInTarget("touch", btnComplete);
}).then(function() {
test_touchaction.step(function () {
assert_true(clickIsReceived, "click should be received before the test finishes");
}, "click should be received before the test finishes");
test_touchaction.done();
});
}
</script>

View file

@ -7,6 +7,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="pointerevent_support.js"></script>
<style>
#target0 {
@ -84,6 +87,7 @@
var target0 = document.getElementById("target0");
var test_touchaction = async_test("touch-action attribute test");
var actions_promise;
xScr0 = target0.scrollLeft;
yScr0 = target0.scrollTop;
@ -107,10 +111,25 @@
}
if(xScrollIsReceived && yScrollIsReceived) {
test_touchaction.done();
// Make sure the test finishes after all the input actions are completed.
actions_promise.then( () => {
test_touchaction.done();
});
updateDescriptionComplete();
}
});
// Inject keyboard scroll inputs.
actions_promise = new test_driver.Actions()
.pointerMove(0, 0, {origin: target0})
.pointerDown()
.pointerUp()
.addTick()
.keyDown("\uE015")
.keyUp("\uE015")
.keyDown("\uE014")
.keyUp("\uE014")
.send();
}
function updateDescriptionNextStepKeyboard() {

View file

@ -188,7 +188,7 @@ function test5() {
function test6() {
let target = document.querySelector('polygon');
let helper = new ResizeTestHelper(
"test6: observe svg:path",
"test6: observe svg:polygon",
[
{
setup: observer => {
@ -311,6 +311,58 @@ function test10() {
return helper.start();
}
function test11() {
// <svg>
// <view></view>
// <defs>
// <linearGradient>
// <stop></stop>
// </linearGradient>
// </defs>
// </svg>
const svgNS = "http://www.w3.org/2000/svg";
let svg = document.createElementNS(svgNS, 'svg');
document.body.appendChild(svg);
let view = document.createElementNS(svgNS, 'view');
svg.appendChild(view);
let defs = document.createElementNS(svgNS, 'defs');
let linearGradient = document.createElementNS(svgNS, 'linearGradient');
let stop = document.createElementNS(svgNS, 'stop');
linearGradient.appendChild(stop);
defs.appendChild(linearGradient);
svg.appendChild(defs);
let helper = new ResizeTestHelper(
"test11: observe svg non-displayable element",
[
{
setup: observer => {
observer.observe(view);
},
notify: (entries, observer) => {
assert_unreached("no entries should be observed on <view> Element");
},
timeout: () => {
// expected
}
},
{
setup: observer => {
observer.observe(stop);
},
notify: (entries, observer) => {
assert_unreached("no entries should be observed on <stop> Element");
},
timeout: () => {
// expected
}
},
]);
return helper.start(() => svg.remove());
}
let guard;
test(_ => {
assert_own_property(window, "ResizeObserver");
@ -328,6 +380,7 @@ test0()
.then(() => { return test8(); })
.then(() => { return test9(); })
.then(() => { return test10(); })
.then(() => { return test11(); })
.then(() => { guard.done(); });
</script>

View file

@ -17,88 +17,72 @@ function build_script_url(allowed_path, origin) {
return `${url}?pipe=header(Service-Worker-Allowed,${allowed_path})`;
}
promise_test(async t => {
const script = build_script_url('/allowed-path');
const scope = '/allowed-path';
const registration = await service_worker_unregister_and_register(
t, script, scope);
assert_true(registration instanceof ServiceWorkerRegistration, 'registered');
assert_equals(registration.scope, normalizeURL(scope));
return registration.unregister();
}, 'Registering within Service-Worker-Allowed path');
// register_test is a promise_test that registers a service worker.
function register_test(script, scope, description) {
promise_test(async t => {
t.add_cleanup(() => {
return service_worker_unregister(t, scope);
});
promise_test(async t => {
const script = build_script_url(new URL('/allowed-path', document.location));
const scope = '/allowed-path';
const registration = await service_worker_unregister_and_register(
t, script, scope);
assert_true(registration instanceof ServiceWorkerRegistration, 'registered');
assert_equals(registration.scope, normalizeURL(scope));
return registration.unregister();
}, 'Registering within Service-Worker-Allowed path (absolute URL)');
const registration = await service_worker_unregister_and_register(
t, script, scope);
assert_true(registration instanceof ServiceWorkerRegistration, 'registered');
assert_equals(registration.scope, normalizeURL(scope));
}, description);
}
promise_test(async t => {
const script = build_script_url('../allowed-path-with-parent');
const scope = 'allowed-path-with-parent';
const registration = await service_worker_unregister_and_register(
t, script, scope);
assert_true(registration instanceof ServiceWorkerRegistration, 'registered');
assert_equals(registration.scope, normalizeURL(scope));
return registration.unregister();
}, 'Registering within Service-Worker-Allowed path with parent reference');
// register_fail_test is like register_test but expects a SecurityError.
function register_fail_test(script, scope, description) {
promise_test(async t => {
t.add_cleanup(() => {
return service_worker_unregister(t, scope);
});
promise_test(async t => {
const script = build_script_url('../allowed-path');
const scope = '/disallowed-path';
await service_worker_unregister(t, scope);
return promise_rejects(t,
'SecurityError',
navigator.serviceWorker.register(script, {scope: scope}),
'register should fail');
}, 'Registering outside Service-Worker-Allowed path');
await service_worker_unregister(t, scope);
await promise_rejects(t,
'SecurityError',
navigator.serviceWorker.register(script, {scope}));
}, description);
}
promise_test(async t => {
const script = build_script_url('../allowed-path-with-parent');
const scope = '/allowed-path-with-parent';
await service_worker_unregister(t, scope);
return promise_rejects(t,
'SecurityError',
navigator.serviceWorker.register(script, {scope: scope}),
'register should fail');
}, 'Registering outside Service-Worker-Allowed path with parent reference');
register_test(
build_script_url('/allowed-path'),
'/allowed-path',
'Registering within Service-Worker-Allowed path');
promise_test(async t => {
const script = build_script_url(
host_info.HTTPS_REMOTE_ORIGIN + '/');
const scope = 'resources/this-scope-is-normally-allowed'
const registration = await service_worker_unregister_and_register(
t, script, scope);
assert_true(registration instanceof ServiceWorkerRegistration, 'registered');
assert_equals(registration.scope, normalizeURL(scope));
return registration.unregister();
}, 'Service-Worker-Allowed is cross-origin to script, registering on a normally allowed scope');
register_test(
build_script_url(new URL('/allowed-path', document.location)),
'/allowed-path',
'Registering within Service-Worker-Allowed path (absolute URL)');
promise_test(async t => {
const script = build_script_url(
host_info.HTTPS_REMOTE_ORIGIN + '/');
const scope = '/this-scope-is-normally-disallowed'
const registration = await service_worker_unregister_and_register(
t, script, scope);
assert_true(registration instanceof ServiceWorkerRegistration, 'registered');
assert_equals(registration.scope, normalizeURL(scope));
return registration.unregister();
}, 'Service-Worker-Allowed is cross-origin to script, registering on a normally disallowed scope');
register_test(
build_script_url('../allowed-path-with-parent'),
'allowed-path-with-parent',
'Registering within Service-Worker-Allowed path with parent reference');
promise_test(async t => {
const script = build_script_url(
host_info.HTTPS_REMOTE_ORIGIN + '/cross-origin/',
host_info.HTTPS_REMOTE_ORIGIN);
const scope = '/cross-origin/';
await service_worker_unregister(t, scope);
return promise_rejects(t,
'SecurityError',
navigator.serviceWorker.register(script, {scope: scope}),
'register should fail');
}, 'Service-Worker-Allowed is cross-origin to page, same-origin to script');
register_fail_test(
build_script_url('../allowed-path'),
'/disallowed-path',
'Registering outside Service-Worker-Allowed path'),
register_fail_test(
build_script_url('../allowed-path-with-parent'),
'/allowed-path-with-parent',
'Registering outside Service-Worker-Allowed path with parent reference');
register_fail_test(
build_script_url(host_info.HTTPS_REMOTE_ORIGIN + '/'),
'resources/this-scope-is-normally-allowed',
'Service-Worker-Allowed is cross-origin to script, registering on a normally allowed scope');
register_fail_test(
build_script_url(host_info.HTTPS_REMOTE_ORIGIN + '/'),
'/this-scope-is-normally-disallowed',
'Service-Worker-Allowed is cross-origin to script, registering on a normally disallowed scope');
register_fail_test(
build_script_url(host_info.HTTPS_REMOTE_ORIGIN + '/cross-origin/',
host_info.HTTPS_REMOTE_ORIGIN),
'/cross-origin/',
'Service-Worker-Allowed is cross-origin to page, same-origin to script');
</script>

View file

@ -3,6 +3,6 @@ mozinfo==1.1.0
mozlog==4.1
mozdebug==0.1.1
pillow==6.0.0
urllib3[secure]==1.25.2
urllib3[secure]==1.25.3
requests==2.22.0
six>=1.8
six==1.12.0

View file

@ -257,6 +257,25 @@ class MarionettePrefsProtocolPart(PrefsProtocolPart):
case prefInterface.PREF_INT:
prefInterface.setIntPref(pref, value);
break;
case prefInterface.PREF_INVALID:
// Pref doesn't seem to be defined already; guess at the
// right way to set it based on the type of value we have.
switch (typeof value) {
case "boolean":
prefInterface.setBoolPref(pref, value);
break;
case "string":
prefInterface.setCharPref(pref, value);
break;
case "number":
prefInterface.setIntPref(pref, value);
break;
default:
throw new Error("Unknown pref value type: " + (typeof value));
}
break;
default:
throw new Error("Unknown pref type " + type);
}
""" % (name, value)
with self.marionette.using_context(self.marionette.CONTEXT_CHROME):

View file

@ -52,11 +52,13 @@ function xr_session_promise_test(
.then((session) => {
testSession = session;
session.mode = sessionMode;
let glLayer = new XRWebGLLayer(session, gl, {
compositionDisabled: session.mode == 'inline'
});
// Session must have a baseLayer or frame requests
// will be ignored.
session.updateRenderState({
baseLayer: new XRWebGLLayer(session, gl),
outputContext: getOutputContext()
baseLayer: glLayer
});
resolve(func(session, testDeviceController, t));
})
@ -78,15 +80,6 @@ function xr_session_promise_test(
properties);
}
// A utility function to create an output context as required by non-immersive
// sessions.
// https://immersive-web.github.io/webxr/#xrsessioncreationoptions-interface
function getOutputContext() {
let outputCanvas = document.createElement('canvas');
document.body.appendChild(outputCanvas);
return outputCanvas.getContext('xrpresent');
}
// This functions calls a callback with each API object as specified
// by https://immersive-web.github.io/webxr/spec/latest/, allowing
// checks to be made on all ojects.

View file

@ -1,59 +0,0 @@
<!DOCTYPE html>
<body>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="resources/webxr_util.js"></script>
<canvas></canvas>
<script>
xr_promise_test(
"Ensure that XRPresentationContexts are properly transfered between session",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:false })
.then( (controller) => {
return Promise.all([
navigator.xr.requestSession('inline'),
navigator.xr.requestSession('inline')
]).then((sessions) => {
t.step(() => {
assert_not_equals(sessions[0], null);
assert_not_equals(sessions[1], null);
});
const webglCanvas = document.getElementsByTagName('canvas')[0];
let gl = webglCanvas.getContext('webgl', {xrCompatible: true});
let outputContext = getOutputContext();
sessions[0].updateRenderState({
baseLayer: new XRWebGLLayer(sessions[0], gl),
outputContext: outputContext
});
return new Promise((resolve, reject) => {
sessions[0].requestAnimationFrame((time, xrFrame) => {
sessions[1].updateRenderState({
baseLayer: new XRWebGLLayer(sessions[1], gl),
outputContext: outputContext
});
t.step(() => {
// outputContext reassignment should not happen until the next frame is processed.
assert_equals(sessions[0].renderState.outputContext, outputContext);
assert_equals(sessions[1].renderState.outputContext, null);
});
sessions[1].requestAnimationFrame((time, xrFrame) => {
t.step(() => {
// Ensure the outputContext was properly reassigned from one context to the other.
assert_equals(sessions[0].renderState.outputContext, null);
assert_equals(sessions[1].renderState.outputContext, outputContext);
});
resolve();
});
});
});
});
});
});
</script>
</body>