mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Update web-platform-tests to revision 755d18230983e9c7d894768b73fabff8bc290d91
This commit is contained in:
parent
d544c186b9
commit
fa788e624b
70 changed files with 1929 additions and 380 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[vertical-align-top-bottom-padding.html]
|
||||
expected: FAIL
|
|
@ -74,3 +74,6 @@
|
|||
[opacity end]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width end]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[vh_not_refreshing_on_chrome.html]
|
||||
bug: https://github.com/servo/servo/issues/8984
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_5.html]
|
||||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[DOMContentLoaded-defer.html]
|
||||
[The end: DOMContentLoaded and defer scripts]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -0,0 +1,4 @@
|
|||
<!DOCTYPE html>
|
||||
<div style="padding: 100px">
|
||||
<div style="width: 256px; height: 256px; background: lime"></div>
|
||||
</div>
|
|
@ -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">
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>א</div>
|
||||
<p>Ab</p><div>א</div>
|
||||
|
|
|
@ -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>
|
||||
<p>Ab</p>
|
||||
|
|
|
@ -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?
|
||||
|
||||
|
|
|
@ -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
a multiline

placeholder">
<input id="dynamic">
<script>
document.querySelector("#dynamic")
.setAttribute("placeholder", "this is\ra multiline\r\rplaceholder");
document.documentElement.classList.remove("reftest-wait");
</script>
</html>
|
|
@ -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
a multiline

placeholder">
<input id="dynamic">
<script>
document.querySelector("#dynamic")
.setAttribute("placeholder", "this is\ra multiline\r\rplaceholder");
document.documentElement.classList.remove("reftest-wait");
</script>
</html>
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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() {
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
Loading…
Add table
Add a link
Reference in a new issue