Update web-platform-tests to revision 9c4b78680260532467b053e6bd0fd506251c4fdb

This commit is contained in:
WPT Sync Bot 2021-01-28 08:20:31 +00:00
parent 35d56e4a5a
commit 7e5a73a627
110 changed files with 703 additions and 1693 deletions

View file

@ -2,6 +2,3 @@
[Hit test intersecting scaled box] [Hit test intersecting scaled box]
expected: FAIL expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

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

View file

@ -0,0 +1,2 @@
[selectors-dir-selector-auto-direction-change-001.html]
expected: FAIL

View file

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

View file

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

View file

@ -0,0 +1,2 @@
[image-loads.html]
expected: TIMEOUT

View file

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

View file

@ -0,0 +1,8 @@
[window-open-blank-from-different-initiator.html]
expected: TIMEOUT
[No pending navigation]
expected: NOTRUN
[One pending navigation]
expected: TIMEOUT

View file

@ -1,8 +1,7 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: CRASH
[opener of discarded nested browsing context] [opener of discarded nested browsing context]
expected: FAIL expected: FAIL
[opener of discarded auxiliary browsing context] [opener of discarded auxiliary browsing context]
expected: TIMEOUT expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

@ -1,13 +1,7 @@
[select-event.html] [select-event.html]
[input type url: setRangeText() a second time (must not fire select)]
expected: FAIL
[textarea: selectionDirection a second time (must not fire select)] [textarea: selectionDirection a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type password: setRangeText() a second time (must not fire select)]
expected: FAIL
[input type search: setRangeText() a second time (must not fire select)] [input type search: setRangeText() a second time (must not fire select)]
expected: FAIL expected: FAIL
@ -17,51 +11,18 @@
[textarea: setSelectionRange() a second time (must not fire select)] [textarea: setSelectionRange() a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type text: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type password: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type tel: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type password: selectionStart a second time (must not fire select)]
expected: FAIL
[input type url: setSelectionRange() a second time (must not fire select)] [input type url: setSelectionRange() a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type url: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type password: selectionEnd out of range a second time (must not fire select)] [input type password: selectionEnd out of range a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type search: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type search: setSelectionRange() a second time (must not fire select)] [input type search: setSelectionRange() a second time (must not fire select)]
expected: FAIL expected: FAIL
[textarea: selectionStart a second time (must not fire select)]
expected: FAIL
[input type tel: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: selectionDirection a second time (must not fire select)] [input type tel: selectionDirection a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type url: select() a second time (must not fire select)]
expected: FAIL
[input type url: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type search: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type search: selectionDirection a second time (must not fire select)] [input type search: selectionDirection a second time (must not fire select)]
expected: FAIL expected: FAIL
@ -77,3 +38,33 @@
[input type url: selectionStart a second time (must not fire select)] [input type url: selectionStart a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type password: select() a second time (must not fire select)]
expected: FAIL
[input type text: setSelectionRange() a second time (must not fire select)]
expected: FAIL
[input type url: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type search: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: setSelectionRange() a second time (must not fire select)]
expected: FAIL
[input type text: selectionDirection a second time (must not fire select)]
expected: FAIL
[textarea: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type text: setRangeText() a second time (must not fire select)]
expected: FAIL
[input type password: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type url: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL

View file

@ -5,3 +5,9 @@
[popup element basic show/hide behavior] [popup element basic show/hide behavior]
expected: FAIL expected: FAIL
[The only visibility control for <popup> is through .show() and .hide().]
expected: FAIL
[The IDL "open" content attribute must have no effect, and must not be reflected to the WebIDL.]
expected: FAIL

View file

@ -0,0 +1,2 @@
[popup-hidden-display.tentative.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[popup-open-display.tentative.html]
expected: FAIL

View file

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

View file

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

View file

@ -1,10 +1,9 @@
[promise-job-entry.html] [promise-job-entry.html]
expected: TIMEOUT
[Fulfillment handler on fulfilled promise] [Fulfillment handler on fulfilled promise]
expected: FAIL expected: FAIL
[Rejection handler on pending-then-rejected promise] [Rejection handler on pending-then-rejected promise]
expected: TIMEOUT expected: FAIL
[Sanity check: this all works as expected with no promises involved] [Sanity check: this all works as expected with no promises involved]
expected: FAIL expected: FAIL
@ -16,5 +15,5 @@
expected: FAIL expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise] [Fulfillment handler on pending-then-fulfilled promise]
expected: TIMEOUT expected: FAIL

View file

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

View file

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

View file

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

View file

@ -121652,7 +121652,7 @@
] ]
], ],
"nested-scale-animations.html": [ "nested-scale-animations.html": [
"c96e555848f0886ceeaa563edd0b878b1fddd59a", "ba2f96939fdfdcbca16a4fdc3a8f6872b883d165",
[ [
null, null,
[ [
@ -121661,23 +121661,7 @@
"==" "=="
] ]
], ],
{ {}
"fuzzy": [
[
null,
[
[
0,
255
],
[
0,
400
]
]
]
]
}
] ]
], ],
"transform-animation-under-large-scale.html": [ "transform-animation-under-large-scale.html": [
@ -231842,6 +231826,19 @@
{} {}
] ]
], ],
"selectors-dir-selector-auto-direction-change-001.html": [
"f6c6393b08a940054b90b68fe3ebea9ebc8846ec",
[
null,
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"selectors-dir-selector-change-001.html": [ "selectors-dir-selector-change-001.html": [
"f952389643834f4a67062bf722d5ce4422253094", "f952389643834f4a67062bf722d5ce4422253094",
[ [
@ -249997,6 +249994,36 @@
] ]
} }
}, },
"interactive-elements": {
"the-popup-element": {
"popup-hidden-display.tentative.html": [
"c80aecf1d30a3686584bd0bea5988a0ddcc32e19",
[
null,
[
[
"/html/semantics/interactive-elements/the-popup-element/popup-hidden-display-ref.tentative.html",
"=="
]
],
{}
]
],
"popup-open-display.tentative.html": [
"0f6bd930212e2e9dd210c9af5814af5072706588",
[
null,
[
[
"/html/semantics/interactive-elements/the-popup-element/popup-open-display-ref.tentative.html",
"=="
]
],
{}
]
]
}
},
"links": { "links": {
"linktypes": { "linktypes": {
"alternate-css.html": [ "alternate-css.html": [
@ -281901,7 +281928,7 @@
"338bea13b84a2f5c4d95b778637409e2bf8d3263", "338bea13b84a2f5c4d95b778637409e2bf8d3263",
[] []
], ],
"frame-src-same-document.html.headers": [ "frame-src-same-document.sub.html.headers": [
"6502444407f59e6ea08da63c8dcdb22978e5ae83", "6502444407f59e6ea08da63c8dcdb22978e5ae83",
[] []
], ],
@ -302004,7 +302031,7 @@
[] []
], ],
"nested-scale-animations-ref.html": [ "nested-scale-animations-ref.html": [
"14b41366268c3a33f2d49e477bab2d40c6acb432", "feef006417e5ff6687448ee11e3ad3f2757fe871",
[] []
], ],
"support": { "support": {
@ -332482,7 +332509,7 @@
[] []
], ],
"test-common.css": [ "test-common.css": [
"dcbf4e1e0240bf622edcea2b7f68f58d89c5ff82", "218dfcb77060426b0588dd5b28979a4a038befd4",
[] []
] ]
}, },
@ -338388,7 +338415,7 @@
], ],
"resources": { "resources": {
"test-expectations.js": [ "test-expectations.js": [
"cc9b4ca3d121413ca4fa4bae5f255ff1e6dbe68e", "844eb92f95eaf5f2406eb60a8cccb78a5c8484b3",
[] []
], ],
"window-tests-blob.js": [ "window-tests-blob.js": [
@ -340663,6 +340690,10 @@
[] []
], ],
"resources": { "resources": {
"204-no-content.asis": [
"58e46abbc9e0d5d744cc41d49fdb869d23e23801",
[]
],
"check-sandbox-flags.html": [ "check-sandbox-flags.html": [
"0dc95315f164d693bd7bd0622880781f30bad7a1", "0dc95315f164d693bd7bd0622880781f30bad7a1",
[] []
@ -340671,6 +340702,10 @@
"136c494d5ad866a12e361b95e8ca29e377f4c0fd", "136c494d5ad866a12e361b95e8ca29e377f4c0fd",
[] []
], ],
"executor.html": [
"89bd268f9c73343f64648e91ed618c3e7096f567",
[]
],
"post-done-to-opener.html": [ "post-done-to-opener.html": [
"b47f0f274ef43148d3be418e2c0628a567f1c3c1", "b47f0f274ef43148d3be418e2c0628a567f1c3c1",
[] []
@ -345227,166 +345262,6 @@
"373309d1a9284f48510c34c86de6f625b381682d", "373309d1a9284f48510c34c86de6f625b381682d",
[] []
], ],
"plugin": {
"click-to-activate.js": [
"2ea2f19c2c951973a85f1a12cd9f964204218db8",
[]
],
"dragndrop.swf": [
"6b49d46c5f2deec418cc9acbd0039dc21f32db6c",
[]
],
"dragndropleavedeactivate.swf": [
"be486248d13667d4fa873cdfc4def134bdc0959a",
[]
],
"plugin-dnd-001.html": [
"96a502004410f976c2762992176310b00416c8d3",
[]
],
"plugin-dnd-002.html": [
"2958458e7eaad99dcd4efbca0d08c1266d4aa230",
[]
],
"plugin-dnd-003.html": [
"592192124ffad10624814a14880be1ce0fa4f527",
[]
],
"plugin-dnd-004.html": [
"a4e776be74e749961f17313d673a815b7487e2f1",
[]
],
"plugin-dnd-005.html": [
"67035acc71a0edf5eed3abcf5212b8f63c883614",
[]
],
"plugin-dnd-006.html": [
"5322edd7d66dfe6b18f93697e154707b028155a3",
[]
],
"plugin-dnd-007.html": [
"8ec0bebd3b2ae52f81c79681432598b8cceaae1e",
[]
],
"plugin-dnd-008.html": [
"017696e6079c3f001a853e4cb8161e104e14ce27",
[]
],
"plugin-dnd-009.html": [
"74761894d3260a9e705345168aedfd96e3317519",
[]
],
"plugin-dnd-010.html": [
"7ce900d8fd8427cc5e425efca7acbb00e7595b0d",
[]
],
"plugin-dnd-011.html": [
"e22c4eec224cea1e7b6e1b8c8cba147a9fef1819",
[]
],
"plugin-dnd-101.html": [
"5f28430aa8f3d2e819a487498e1ceef19e1049b9",
[]
],
"plugin-dnd-102.html": [
"79bb0dfd7e688436b759285ffc60dd1d291e9a27",
[]
],
"plugin-dnd-103.html": [
"3166b054f518a618023409726ae4ef2f294eeaa4",
[]
],
"plugin-dnd-104.html": [
"53128eeb4b30ca99c0fe35745fa1c4463c6b1da0",
[]
],
"plugin-dnd-105.html": [
"a146a4608dfa18aec7ca46e3f68f9bebc0c6ff98",
[]
],
"plugin-dnd-106.html": [
"4ee1923d2e485f13ee0a2e74abc5ef60218a162c",
[]
],
"plugin-dnd-107.html": [
"96dc126a26d6cdd546f22d7de4e18222366777fa",
[]
],
"plugin-dnd-108.html": [
"ba69dfedb30025159cf920dfb0a899ebc7c61020",
[]
],
"plugin-dnd-109.html": [
"8748d8745d428ddd07165dac7e027300ecdda153",
[]
],
"plugin-dnd-110.html": [
"fbf5b48fa4ae3525c112606062564ae1e0c97888",
[]
],
"plugin-dnd-111.html": [
"8687c74b121c304946afa58ad4754dd2baae2051",
[]
],
"plugin-dnd-203.html": [
"ed6048783bd94308fb5899abb4751455f6c6c87a",
[]
],
"plugin-dnd-204.html": [
"e11ce92f0a3cd70510028e3b25ca0e4d054f4a07",
[]
],
"plugin-dnd-205.html": [
"eaf3e188578e37a8a6a3b44fe878df129993d2a9",
[]
],
"plugin-dnd-206.html": [
"a39ab0bcbf9dd5bcf802306182f68fe23ee18cec",
[]
],
"plugin-dnd-207.html": [
"a9ddcba494af1cb128aa2732e1abfb61c9796940",
[]
],
"plugin-dnd-303.html": [
"91307e61600c0b569372e06026dd5584082120ad",
[]
],
"plugin-dnd-304.html": [
"d3d27ebb690bd89b02b47679b1dfe4c8b409784a",
[]
],
"plugin-dnd-305.html": [
"ed8561b9c3b5b9b398ea2082f835b2f1bfa59f51",
[]
],
"plugin-dnd-306.html": [
"8ea6001962476bafd2e3e1aa817621ffd72628f2",
[]
],
"plugin-dnd-307.html": [
"0e55a7b1bf4e407599ea5ab69b77cee9094ffc8c",
[]
],
"swfsources": {
"dragndrop.hx": [
"25fc51ef0d2b5f2d3cdd02b280e43ff94801ec84",
[]
],
"dragndrop.hxml": [
"71f2eb5b9c9a873833f7a64f188ea647cae58370",
[]
],
"mouseup.hx": [
"13a8757bd79bf20a3c90cf0b49fd96b938aedaf2",
[]
],
"mouseup.hxml": [
"d588590347fe575d8abade7e885cce47d4ea344f",
[]
]
}
},
"plugindrop.html": [ "plugindrop.html": [
"c34e60c4a941d53cf1f368edc288cc9a781a2668", "c34e60c4a941d53cf1f368edc288cc9a781a2668",
[] []
@ -349607,6 +349482,16 @@
[] []
] ]
} }
},
"the-popup-element": {
"popup-hidden-display-ref.tentative.html": [
"7f4ced38c511785382e7304004a6fac5fc9ff581",
[]
],
"popup-open-display-ref.tentative.html": [
"1b063444c3b9f0da6cf5ea4c0262d83d6dff0834",
[]
]
} }
}, },
"interfaces.js": [ "interfaces.js": [
@ -359599,7 +359484,7 @@
[] []
], ],
"testharness.js": [ "testharness.js": [
"11e31b133ddd20736119f216e0326f15dc82f691", "3623aa4d57e6bdab1fcab1b235646331381df31e",
[] []
], ],
"testharness.js.headers": [ "testharness.js.headers": [
@ -363971,7 +363856,7 @@
[] []
], ],
"safari-technology-preview.rb": [ "safari-technology-preview.rb": [
"628c5f60914cffa26da7d26d2d9a0502e1be735f", "7149e6b2f0fd2900e885dc80f1ed1d9ecbc118b0",
[] []
], ],
"system_info.yml": [ "system_info.yml": [
@ -462408,6 +462293,15 @@
null, null,
{} {}
] ]
],
"window-open-blank-from-different-initiator.html": [
"aa269fdf14ca00fe083f31a8f801ab996406860f",
[
null,
{
"timeout": "long"
}
]
] ]
}, },
"the-window-object": { "the-window-object": {
@ -492014,14 +491908,7 @@
}, },
"the-popup-element": { "the-popup-element": {
"popup-element-basic.tentative.html": [ "popup-element-basic.tentative.html": [
"41fa7d4e7f1adefc790e2e39b3b1e1a450499516", "3be3fae9ac9a5bbccc6784a1efb87240574207b8",
[
null,
{}
]
],
"popup-open.tentative.html": [
"d622b7d10538625d9db3858a933d7740e323986f",
[ [
null, null,
{} {}
@ -515619,7 +515506,7 @@
}, },
"raw-sockets": { "raw-sockets": {
"open-consume-activation.https.html": [ "open-consume-activation.https.html": [
"f6dda4488bafef83fddb4af0e9958ae8a5892153", "6cbf017712b197886fb2d8d620927ee03506f6d4",
[ [
null, null,
{ {
@ -546634,7 +546521,7 @@
] ]
], ],
"request-video-frame-callback-webrtc.https.html": [ "request-video-frame-callback-webrtc.https.html": [
"ce5b5ad6be699a917b3dce5559cdbfa8e334127d", "dcf97e4ca9105d7e29e579bdb632db554c525933",
[ [
null, null,
{} {}
@ -553763,7 +553650,7 @@
}, },
"webcodecs": { "webcodecs": {
"audio-decoder.any.js": [ "audio-decoder.any.js": [
"a6367231b234a6e078bd96dc2e689ffb429593c6", "17f5520d2c7bfd40d2949d96d452f3142c70f438",
[ [
"webcodecs/audio-decoder.any.html", "webcodecs/audio-decoder.any.html",
{ {
@ -553814,7 +553701,7 @@
] ]
], ],
"video-decoder.any.js": [ "video-decoder.any.js": [
"44e7375a78c013d0a9d0f60a33a04651473c48fb", "48568c170fc6195d924ac2b14be85dff00d3709d",
[ [
"webcodecs/video-decoder.any.html", "webcodecs/video-decoder.any.html",
{ {

View file

@ -2,6 +2,3 @@
[Hit test intersecting scaled box] [Hit test intersecting scaled box]
expected: FAIL expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

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

View file

@ -0,0 +1,2 @@
[selectors-dir-selector-auto-direction-change-001.html]
expected: FAIL

View file

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

View file

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

View file

@ -0,0 +1,2 @@
[image-loads.html]
expected: TIMEOUT

View file

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

View file

@ -0,0 +1,8 @@
[window-open-blank-from-different-initiator.html]
expected: TIMEOUT
[No pending navigation]
expected: NOTRUN
[One pending navigation]
expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: CRASH
[opener and "removed" embedded documents] [opener and "removed" embedded documents]
expected: FAIL expected: FAIL
@ -7,5 +6,5 @@
expected: FAIL expected: FAIL
[opener of discarded auxiliary browsing context] [opener of discarded auxiliary browsing context]
expected: TIMEOUT expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

@ -1,13 +1,7 @@
[select-event.html] [select-event.html]
[input type url: setRangeText() a second time (must not fire select)]
expected: FAIL
[textarea: selectionDirection a second time (must not fire select)] [textarea: selectionDirection a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type password: setRangeText() a second time (must not fire select)]
expected: FAIL
[input type search: setRangeText() a second time (must not fire select)] [input type search: setRangeText() a second time (must not fire select)]
expected: FAIL expected: FAIL
@ -17,51 +11,18 @@
[textarea: setSelectionRange() a second time (must not fire select)] [textarea: setSelectionRange() a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type text: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type password: selectionEnd a second time (must not fire select)]
expected: FAIL
[input type tel: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type password: selectionStart a second time (must not fire select)]
expected: FAIL
[input type url: setSelectionRange() a second time (must not fire select)] [input type url: setSelectionRange() a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type url: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type password: selectionEnd out of range a second time (must not fire select)] [input type password: selectionEnd out of range a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type search: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type search: setSelectionRange() a second time (must not fire select)] [input type search: setSelectionRange() a second time (must not fire select)]
expected: FAIL expected: FAIL
[textarea: selectionStart a second time (must not fire select)]
expected: FAIL
[input type tel: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: selectionDirection a second time (must not fire select)] [input type tel: selectionDirection a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type url: select() a second time (must not fire select)]
expected: FAIL
[input type url: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type search: selectionEnd out of range a second time (must not fire select)]
expected: FAIL
[input type search: selectionDirection a second time (must not fire select)] [input type search: selectionDirection a second time (must not fire select)]
expected: FAIL expected: FAIL
@ -77,3 +38,33 @@
[input type url: selectionStart a second time (must not fire select)] [input type url: selectionStart a second time (must not fire select)]
expected: FAIL expected: FAIL
[input type password: select() a second time (must not fire select)]
expected: FAIL
[input type text: setSelectionRange() a second time (must not fire select)]
expected: FAIL
[input type url: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type search: selectionStart out of range a second time (must not fire select)]
expected: FAIL
[input type tel: setSelectionRange() a second time (must not fire select)]
expected: FAIL
[input type text: selectionDirection a second time (must not fire select)]
expected: FAIL
[textarea: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL
[input type text: setRangeText() a second time (must not fire select)]
expected: FAIL
[input type password: selectionDirection a second time (must not fire select)]
expected: FAIL
[input type url: setSelectionRange out of range a second time (must not fire select)]
expected: FAIL

View file

@ -5,3 +5,9 @@
[popup element basic show/hide behavior] [popup element basic show/hide behavior]
expected: FAIL expected: FAIL
[The only visibility control for <popup> is through .show() and .hide().]
expected: FAIL
[The IDL "open" content attribute must have no effect, and must not be reflected to the WebIDL.]
expected: FAIL

View file

@ -0,0 +1,2 @@
[popup-hidden-display.tentative.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[popup-open-display.tentative.html]
expected: FAIL

View file

@ -1,7 +0,0 @@
[popup-open.tentative.html]
[On setting, the content open attribute must be removed if the IDL open attribute is set to false, and must be present if the IDL open attribute is set to true.]
expected: FAIL
[The IDL open attribute must return true if the content open attribute is set, and false if it is absent.]
expected: FAIL

View file

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

View file

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

View file

@ -1,10 +1,9 @@
[promise-job-entry.html] [promise-job-entry.html]
expected: TIMEOUT
[Fulfillment handler on fulfilled promise] [Fulfillment handler on fulfilled promise]
expected: FAIL expected: FAIL
[Rejection handler on pending-then-rejected promise] [Rejection handler on pending-then-rejected promise]
expected: TIMEOUT expected: FAIL
[Sanity check: this all works as expected with no promises involved] [Sanity check: this all works as expected with no promises involved]
expected: FAIL expected: FAIL
@ -16,5 +15,5 @@
expected: FAIL expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise] [Fulfillment handler on pending-then-fulfilled promise]
expected: TIMEOUT expected: FAIL

View file

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

View file

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

View file

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

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<div style="width: 200px; height: 100px; background: blue"></div> <div style="width: 200px; height: 95px; background: blue"></div>
<div style="width: 200px; height: 100px; background: green"></div> <div style="height: 10px"></div>
<div style="width: 200px; height: 95px; background: green"></div>

View file

@ -4,8 +4,6 @@
<link rel="author" title="Xianzhu Wang" href="mailto:wangxianzhu@chromium.org"> <link rel="author" title="Xianzhu Wang" href="mailto:wangxianzhu@chromium.org">
<link rel="help" href="https://crbug.com/1165408"> <link rel="help" href="https://crbug.com/1165408">
<link rel="match" href="nested-scale-animations-ref.html"> <link rel="match" href="nested-scale-animations-ref.html">
<!-- Allow blurry pixels in 2 rows. -->
<meta name="fuzzy" content="0-255;0-400">
<meta name="assert" content="Contents under nested scale animations should not be too blurry"> <meta name="assert" content="Contents under nested scale animations should not be too blurry">
<script src="/common/reftest-wait.js"></script> <script src="/common/reftest-wait.js"></script>
<style> <style>
@ -30,6 +28,9 @@
<div style="width: 2px; height: 1px; background: green"></div> <div style="width: 2px; height: 1px; background: green"></div>
</div> </div>
</div> </div>
<!-- To mask off the pixels that may be blurry/antialiased while the rendering
quality is acceptable. -->
<div style="position: absolute; top: 95px; left: 0; width: 200px; height: 10px; background: white"></div>
</div> </div>
<script> <script>
takeScreenshotDelayed(200); takeScreenshotDelayed(200);

View file

@ -0,0 +1,34 @@
<!doctype html>
<html>
<head>
<title>CSS Selectors Level 4 Test: Check for correctly updating :dir=auto when the the directionality is changed in a display:none subtree </title>
<meta charset="utf8">
<link rel="author" title="Miyoung Shin" href="mailto:myid.shin@igalia.com">
<link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<style>
#target {
width: 100px;
height: 100px;
background-color: red;
}
:dir(ltr) + #target {
background-color: green;
}
</style>
</head>
<body>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div dir="auto" style="display:none">
<div>
<div id="inner">رسمية</div>
</div>
</div>
<div id="target"></div>
<script>
inner.offsetTop;
inner.firstChild.data = "LTR";
</script>
</body>
</html>

View file

@ -16,3 +16,7 @@ li, p {
p { p {
padding-right: .5em; padding-right: .5em;
} }
li::marker {
/* Blink workaround of https://bugzilla.mozilla.org/show_bug.cgi?id=1688769 */
white-space: pre;
}

View file

@ -14,37 +14,54 @@ const MAC_FONTS = [
postscriptName: 'Monaco', postscriptName: 'Monaco',
fullName: 'Monaco', fullName: 'Monaco',
family: 'Monaco', family: 'Monaco',
style: 'Regular',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
// Tables related to TrueType. // Tables related to TrueType.
'cvt ', 'glyf', 'loca', 'prep', 'gasp', 'cvt ',
'glyf',
'loca',
'prep',
'gasp',
], ],
}, },
{ {
postscriptName: 'Menlo-Regular', postscriptName: 'Menlo-Regular',
fullName: 'Menlo Regular', fullName: 'Menlo Regular',
family: 'Menlo', family: 'Menlo',
style: 'Regular',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
{ {
postscriptName: 'Menlo-Bold', postscriptName: 'Menlo-Bold',
fullName: 'Menlo Bold', fullName: 'Menlo Bold',
family: 'Menlo', family: 'Menlo',
style: 'Bold',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
{ {
postscriptName: 'Menlo-BoldItalic', postscriptName: 'Menlo-BoldItalic',
fullName: 'Menlo Bold Italic', fullName: 'Menlo Bold Italic',
family: 'Menlo', family: 'Menlo',
style: 'Bold Italic',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
// Indic. // Indic.
@ -52,36 +69,52 @@ const MAC_FONTS = [
postscriptName: 'GujaratiMT', postscriptName: 'GujaratiMT',
fullName: 'Gujarati MT', fullName: 'Gujarati MT',
family: 'Gujarati MT', family: 'Gujarati MT',
style: 'Regular',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
{ {
postscriptName: 'GujaratiMT-Bold', postscriptName: 'GujaratiMT-Bold',
fullName: 'Gujarati MT Bold', fullName: 'Gujarati MT Bold',
family: 'Gujarati MT', family: 'Gujarati MT',
style: 'Bold',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
{ {
postscriptName: 'DevanagariMT', postscriptName: 'DevanagariMT',
fullName: 'Devanagari MT', fullName: 'Devanagari MT',
family: 'Devanagari MT', family: 'Devanagari MT',
style: 'Regular',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
{ {
postscriptName: 'DevanagariMT-Bold', postscriptName: 'DevanagariMT-Bold',
fullName: 'Devanagari MT Bold', fullName: 'Devanagari MT Bold',
family: 'Devanagari MT', family: 'Devanagari MT',
style: 'Bold',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
// Japanese. // Japanese.
@ -89,18 +122,22 @@ const MAC_FONTS = [
postscriptName: 'HiraMinProN-W3', postscriptName: 'HiraMinProN-W3',
fullName: 'Hiragino Mincho ProN W3', fullName: 'Hiragino Mincho ProN W3',
family: 'Hiragino Mincho ProN', family: 'Hiragino Mincho ProN',
style: 'Regular',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
expectedTables: [ expectedTables: [
'CFF ', 'VORG', 'CFF ',
'VORG',
], ],
}, },
{ {
postscriptName: 'HiraMinProN-W6', postscriptName: 'HiraMinProN-W6',
fullName: 'Hiragino Mincho ProN W6', fullName: 'Hiragino Mincho ProN W6',
family: 'Hiragino Mincho ProN', family: 'Hiragino Mincho ProN',
style: 'Regular',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
expectedTables: [ expectedTables: [
'CFF ', 'VORG', 'CFF ',
'VORG',
], ],
}, },
// Korean. // Korean.
@ -108,18 +145,24 @@ const MAC_FONTS = [
postscriptName: 'AppleGothic', postscriptName: 'AppleGothic',
fullName: 'AppleGothic Regular', fullName: 'AppleGothic Regular',
family: 'AppleGothic', family: 'AppleGothic',
style: 'Regular',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'cvt ',
'glyf',
'loca',
], ],
}, },
{ {
postscriptName: 'AppleMyungjo', postscriptName: 'AppleMyungjo',
fullName: 'AppleMyungjo Regular', fullName: 'AppleMyungjo Regular',
family: 'AppleMyungjo', family: 'AppleMyungjo',
style: 'Regular',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'cvt ',
'glyf',
'loca',
], ],
}, },
// Chinese. // Chinese.
@ -127,18 +170,26 @@ const MAC_FONTS = [
postscriptName: 'STHeitiTC-Light', postscriptName: 'STHeitiTC-Light',
fullName: 'Heiti TC Light', fullName: 'Heiti TC Light',
family: 'Heiti TC', family: 'Heiti TC',
style: 'Light',
label: TEST_SIZE_CATEGORY.large, label: TEST_SIZE_CATEGORY.large,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
{ {
postscriptName: 'STHeitiTC-Medium', postscriptName: 'STHeitiTC-Medium',
fullName: 'Heiti TC Medium', fullName: 'Heiti TC Medium',
family: 'Heiti TC', family: 'Heiti TC',
style: 'Medium',
label: TEST_SIZE_CATEGORY.large, label: TEST_SIZE_CATEGORY.large,
expectedTables: [ expectedTables: [
'cvt ', 'glyf', 'loca', 'prep', 'cvt ',
'glyf',
'loca',
'prep',
], ],
}, },
// Bitmap. // Bitmap.
@ -146,9 +197,11 @@ const MAC_FONTS = [
postscriptName: 'AppleColorEmoji', postscriptName: 'AppleColorEmoji',
fullName: 'Apple Color Emoji', fullName: 'Apple Color Emoji',
family: 'Apple Color Emoji', family: 'Apple Color Emoji',
style: 'Regular',
label: TEST_SIZE_CATEGORY.large, label: TEST_SIZE_CATEGORY.large,
expectedTables: [ expectedTables: [
'glyf', 'loca', 'glyf',
'loca',
// Tables related to Bitmap Glyphs. // Tables related to Bitmap Glyphs.
'sbix', 'sbix',
], ],
@ -160,6 +213,7 @@ const WIN_FONTS = [
postscriptName: 'Verdana', postscriptName: 'Verdana',
fullName: 'Verdana', fullName: 'Verdana',
family: 'Verdana', family: 'Verdana',
style: 'Regular',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
// Tables related to TrueType. // Tables related to TrueType.
@ -174,6 +228,7 @@ const WIN_FONTS = [
postscriptName: 'Verdana-Bold', postscriptName: 'Verdana-Bold',
fullName: 'Verdana Bold', fullName: 'Verdana Bold',
family: 'Verdana', family: 'Verdana',
style: 'Bold',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
// Tables related to TrueType. // Tables related to TrueType.
@ -188,6 +243,7 @@ const WIN_FONTS = [
postscriptName: 'Verdana-Italic', postscriptName: 'Verdana-Italic',
fullName: 'Verdana Italic', fullName: 'Verdana Italic',
family: 'Verdana', family: 'Verdana',
style: 'Italic',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
// Tables related to TrueType. // Tables related to TrueType.
@ -203,6 +259,7 @@ const WIN_FONTS = [
postscriptName: 'MalgunGothicBold', postscriptName: 'MalgunGothicBold',
fullName: 'Malgun Gothic Bold', fullName: 'Malgun Gothic Bold',
family: 'Malgun Gothic', family: 'Malgun Gothic',
style: 'Bold',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
expectedTables: [ expectedTables: [
// Tables related to TrueType. // Tables related to TrueType.
@ -218,12 +275,14 @@ const WIN_FONTS = [
postscriptName: 'MicrosoftYaHei', postscriptName: 'MicrosoftYaHei',
fullName: 'Microsoft YaHei', fullName: 'Microsoft YaHei',
family: 'Microsoft YaHei', family: 'Microsoft YaHei',
style: 'Regular',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
}, },
{ {
postscriptName: 'MicrosoftYaHei-Bold', postscriptName: 'MicrosoftYaHei-Bold',
fullName: 'Microsoft YaHei Bold', fullName: 'Microsoft YaHei Bold',
family: 'Microsoft YaHei', family: 'Microsoft YaHei',
style: 'Bold',
label: TEST_SIZE_CATEGORY.medium, label: TEST_SIZE_CATEGORY.medium,
}, },
]; ];
@ -233,6 +292,7 @@ const LINUX_FONTS = [
postscriptName: 'Ahem', postscriptName: 'Ahem',
fullName: 'Ahem', fullName: 'Ahem',
family: 'Ahem', family: 'Ahem',
style: 'Regular',
label: TEST_SIZE_CATEGORY.small, label: TEST_SIZE_CATEGORY.small,
expectedTables: [ expectedTables: [
// Tables related to TrueType. // Tables related to TrueType.
@ -330,17 +390,20 @@ function assert_fonts_exist(availableFonts, expectedFonts) {
const postscriptNameSet = new Set(); const postscriptNameSet = new Set();
const fullNameSet = new Set(); const fullNameSet = new Set();
const familySet = new Set(); const familySet = new Set();
const styleSet = new Set();
for (const f of expectedFonts) { for (const f of expectedFonts) {
postscriptNameSet.add(f.postscriptName); postscriptNameSet.add(f.postscriptName);
fullNameSet.add(f.fullName); fullNameSet.add(f.fullName);
familySet.add(f.family); familySet.add(f.family);
styleSet.add(f.style);
} }
for (const f of availableFonts) { for (const f of availableFonts) {
postscriptNameSet.delete(f.postscriptName); postscriptNameSet.delete(f.postscriptName);
fullNameSet.delete(f.fullName); fullNameSet.delete(f.fullName);
familySet.delete(f.family); familySet.delete(f.family);
styleSet.delete(f.style);
} }
assert_equals(postscriptNameSet.size, 0, assert_equals(postscriptNameSet.size, 0,
@ -349,6 +412,7 @@ function assert_fonts_exist(availableFonts, expectedFonts) {
`Missing Full names: ${setToString(fullNameSet)}.`); `Missing Full names: ${setToString(fullNameSet)}.`);
assert_equals(familySet.size, 0, assert_equals(familySet.size, 0,
`Missing Families: ${setToString(familySet)}.`); `Missing Families: ${setToString(familySet)}.`);
assert_equals(styleSet.size, 0, `Missing Styles: ${setToString(styleSet)}.`);
} }
function assert_postscript_name_exists( function assert_postscript_name_exists(

View file

@ -0,0 +1 @@
HTTP/1.1 204 No Content

View file

@ -0,0 +1,5 @@
<script>
// Execute arbitrary code from somewhere else, via postMessage.
window.addEventListener("message", event => eval(event.data));
window.opener.postMessage("ready", "*");
</script>

View file

@ -0,0 +1,91 @@
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="/common/utils.js"></script>
<script>
// This is a regression test for https://crbug.com/1170038.
//
// A document creates a popup and makes it navigate elsewhere. The navigation
// will never commit. The popup has not completed any real load outside of the
// initial empty document. Then from a different window with a different CSP
// policy, make it navigate to about:blank.
//
// Web browser behavior might change depending on whether a pending navigation
// exists for in the popup or not. Both are tested here.
const same_origin = get_host_info().HTTP_ORIGIN;
// Return a promise, resolving when |element| triggers |event_name| event.
const future = (element, event_name) => {
return new Promise(resolve => element.addEventListener(event_name, resolve));
};
// `createNewPopup` is a function returning a new window that has not committed
// any real load in its frame, outside of the initial empty document. The two
// tests below vary depending on whether there is a pending navigation in the
// frame or not.
const runTest = (description, createNewPopup) => {
promise_test(async test => {
// Open a same-origin window with a different CSP.
const executor_path =
"/html/browsers/sandboxing/resources/executor.html?pipe=";
const csp = "|header(Content-Security-Policy, " +
"sandbox" +
" allow-scripts" +
" allow-popups" +
" allow-same-origin" +
" allow-popups-to-escape-sandbox";
const executor = window.open(same_origin + executor_path + csp);
const executor_reply = await future(window, "message");
assert_equals(executor_reply.data, "ready");
const popup_name = token();
const popup = await createNewPopup(test, popup_name);
// Request the first real load from a DIFFERENT window with different CSPs.
const first_real_load = future(popup, "load");
executor.postMessage(`window.open("about:blank", "${popup_name}");`);
await first_real_load;
// The new blank document in the popup must inherit CSPs from |executor|:
let is_sandboxed = future(window, "message");
popup.document.write(`
<script>
try {
document.domain = document.domain;
opener.opener.postMessage("not sandboxed", "*");
} catch (error) {
opener.opener.postMessage("sandboxed", "*");
}
</scr`+`ipt>
`);
assert_equals((await is_sandboxed).data, "sandboxed");
}, description);
}
// Open a new window and start loading from an unresponsive server. The frame
// will be left with the initial empty document and a pending navigation.
runTest("One pending navigation", async (test, popup_name) => {
const unresponsive_path =
"/fetch/api/resources/infinite-slow-response.py";
return window.open(same_origin + unresponsive_path, popup_name);
});
// Open a new window and start loading. The response is a 204 and the navigation
// is canceled. As a result, the frame will be left with the initial empty
// document and NO pending navigation.
runTest("No pending navigation", async (test, popup_name) => {
const no_content_path =
"/html/browsers/sandboxing/resources/204-no-content.asis";
const popup = window.open(same_origin + no_content_path, popup_name);
// Unfortunately, there are no web API to detect a navigation has been
// canceled. Waiting using setTimeout is the only possible way to wait for it.
await new Promise(r => test.step_timeout(r, 1000));
return popup;
});
</script>

View file

@ -1 +0,0 @@
document.write(plugincode);

View file

@ -1,21 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop in Flash</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<p>Drag the orange square onto the blue square and release it. The orange square should disappear, and the blue square should turn yellow.</p>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,39 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop alternating between Flash and page</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square onto the blue square and release it. The drag placeholder should disappear (either when releasing, or when passing the black square), and the mouse cursor should return to normal.</li>
<li>Without moving your mouse outside the black square, drag the orange square onto the blue square and release it. The orange square should disappear, and the blue square should turn yellow. Fail if the orange square does not immediately respond to the drag attempt.</li>
<li>Drag the pink square onto the yellow square and release it. The drag placeholder should disappear, and the mouse cursor should return to normal. Fail if the pink square does not immediately respond to the drag attempt.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,22 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Incomplete drag and drop in Flash</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<!-- Test is based on expected behaviour where the mouseup is sent to the plugin because a drag was in operation. -->
<p>Drag the orange square until the mouse is outside the black square, then release it. Move the mouse over the blue square. Fail if the orange square continues to follow the mouse.</p>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop alternating between incompleted Flash drag and page</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the orange square until the mouse is outside the right side of the black square but the edge of the orange square can still be seen, then release it.</li>
<li>Without passing over the black square again, move the mouse to the pink square.</li>
<li>Drag the pink square onto the blue square and release it. The drag placeholder should disappear (either when releasing, or when passing the black square), and the mouse cursor should return to normal. Fail if the pink square does not immediately respond to the drag attempt.</li>
<li>Without passing over the black square again, move the mouse to the orange square. Fail if the orange square moves.</li>
<li>Drag the orange square onto the blue square and release it. The orange square should disappear, and the blue square should turn yellow. Fail if the orange square does not immediately respond to the drag attempt.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop in Flash with Alt+Tab</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the orange square over the blue square.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>Move the mouse around inside the black square. The orange square should continue to follow the mouse.</li>
</ol>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop in Flash with Alt+Tab over page</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the orange square around until the mouse is outside the black square.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>Move the mouse inside the black square. The orange square should continue to follow the mouse.</li>
</ol>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with Alt+Tab over Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the pink square over the blue square. The mouse cursor should be the no-drop cursor, or the platform's drop-allowed cursor.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>The mouse cursor should be the same cursor as in step 2.</li>
<li>Move the mouse outside the black square. The drag placeholder should follow the mouse (reappearing if it disappeared in step 2).</li>
<li>Release the drag. The drag placeholder should disappear, and the cursor should revert to the default mouse cursor.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with right click over Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square over the blue square.</li>
<li>Without releasing the drag, click the right mouse button.</li>
<li>If the platform's normal behaviour is to cancel a drag (eg. Windows and Unix+KDE), then the drag should be cancelled; moving the mouse outside the black square should not cause the drag placeholder to continue following the mouse, and the mouse cursor should revert to default.</li>
<li>If the platform's normal behaviour is not to cancel a drag (eg. Mac and Unix+Gnome), then the drag should not be cancelled; moving the mouse outside the black square should cause the drag placeholder to continue following the mouse, and the mouse cursor should show as no-drop or drop-allowed.</li>
<li>Fail in either case if the drag placeholder gets stuck temporarily or permanently over the blue square. Fail if an inappropriate right click function begins (eg. context menu opens).</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with right click and release over Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square over the blue square.</li>
<li>Without releasing the drag, click the right mouse button, then release the drag.</li>
<li>Fail if the drag placeholder gets stuck over the blue square.</li>
<li>Move the mouse outside the black square. The mouse cursor should be the default mouse cursor.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with middle click over Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square over the blue square.</li>
<li>Without releasing the drag, click the middle mouse button.</li>
<li>If the platform's normal behaviour is to cancel a drag (eg. Windows and Unix+KDE), then the drag should be cancelled; moving the mouse outside the black square should not cause the drag placeholder to continue following the mouse, and the mouse cursor should revert to default.</li>
<li>If the platform's normal behaviour is not to cancel a drag (eg. Mac and Unix+Gnome), then the drag should not be cancelled; moving the mouse outside the black square should cause the drag placeholder to continue following the mouse, and the mouse cursor should show as no-drop or drop-allowed.</li>
<li>Fail in either case if the drag placeholder gets stuck temporarily or permanently over the blue square. Fail if an inappropriate middle click function begins (eg. paste-and-go).</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with middle click and release over Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square over the blue square.</li>
<li>Without releasing the drag, click the middle mouse button, then release the drag.</li>
<li>Fail if the drag placeholder gets stuck over the blue square.</li>
<li>Move the mouse outside the black square. The mouse cursor should be the default mouse cursor.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,21 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop in windowless Flash</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<p>Drag the orange square onto the blue square and release it. The orange square should disappear, and the blue square should turn yellow.</p>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,39 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop alternating between windowless Flash and page</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square onto the blue square and release it. The drag placeholder should disappear (either when releasing, or when passing the black square), and the mouse cursor should return to normal.</li>
<li>Without moving your mouse outside the black square, drag the orange square onto the blue square and release it. The orange square should disappear, and the blue square should turn yellow. Fail if the orange square does not immediately respond to the drag attempt.</li>
<li>Drag the pink square onto the yellow square and release it. The drag placeholder should disappear, and the mouse cursor should return to normal. Fail if the pink square does not immediately respond to the drag attempt.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,22 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Incomplete drag and drop in windowless Flash</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<!-- Test is based on expected behaviour of windowless plugin where the mouseup is not sent to the plugin even though a drag was in operation. -->
<p>Drag the orange square until the mouse is outside the black square, then release it. Move the mouse over the blue square. Pass if the orange square follows the mouse.</p>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop alternating between incompleted windowless Flash drag and page</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the orange square until the mouse is outside the right side of the black square but the edge of the orange square can still be seen, then release it.</li>
<li>Without passing over the black square again, move the mouse to the pink square.</li>
<li>Drag the pink square onto the white area inside the black square and release it. The drag placeholder should disappear (either when releasing, or when passing the black square), and the mouse cursor should return to normal. The orange square should jump to the mouse position. Fail if the pink square does not immediately respond to the drag attempt.</li>
<li>The orange square may optionally continue to follow the mouse.</li>
<!-- There are no rules here. Browsers may mask the mouseup event from the plugin (since a dnd operation was in progress), or they may pass the mouseup to the plugin (since the dnd operation has completed). -->
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop in windowless Flash with Alt+Tab</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the orange square over the blue square.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>Move the mouse around inside the black square. The orange square should continue to follow the mouse.</li>
</ol>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop in windowless Flash with Alt+Tab over page</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the orange square around until the mouse is outside the black square.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>Move the mouse inside the black square. The orange square should continue to follow the mouse.</li>
</ol>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,43 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with Alt+Tab over windowless Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<p><strong>Note:</strong> Mac has no no-drop cursor.</p>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the pink square over the blue square. The mouse cursor should be the no-drop cursor, or the platform's drop-allowed cursor.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>The mouse cursor should be the same cursor as in step 2.</li>
<li>Move the mouse outside the black square. The drag placeholder should follow the mouse (reappearing if it disappeared in step 2).</li>
<li>Release the drag. The drag placeholder should disappear, and the cursor should revert to the default mouse cursor.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with right click over windowless Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square over the blue square.</li>
<li>Without releasing the drag, click the right mouse button.</li>
<li>If the platform's normal behaviour is to cancel a drag (eg. Windows and Unix+KDE), then the drag should be cancelled; moving the mouse outside the black square should not cause the drag placeholder to continue following the mouse, and the mouse cursor should revert to default.</li>
<li>If the platform's normal behaviour is not to cancel a drag (eg. Mac and Unix+Gnome), then the drag should not be cancelled; moving the mouse outside the black square should cause the drag placeholder to continue following the mouse, and the mouse cursor should show as no-drop or drop-allowed.</li>
<li>Fail in either case if the drag placeholder gets stuck temporarily or permanently over the blue square. Fail if an inappropriate right click function begins (eg. context menu opens).</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with right click and release over windowless Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square over the blue square.</li>
<li>Without releasing the drag, click the right mouse button, then release the drag.</li>
<li>Fail if the drag placeholder gets stuck over the blue square.</li>
<li>Move the mouse outside the black square. The mouse cursor should be the default mouse cursor.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with middle click over windowless Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square over the blue square.</li>
<li>Without releasing the drag, click the middle mouse button.</li>
<li>If the platform's normal behaviour is to cancel a drag (eg. Windows and Unix+KDE), then the drag should be cancelled; moving the mouse outside the black square should not cause the drag placeholder to continue following the mouse, and the mouse cursor should revert to default.</li>
<li>If the platform's normal behaviour is not to cancel a drag (eg. Mac and Unix+Gnome), then the drag should not be cancelled; moving the mouse outside the black square should cause the drag placeholder to continue following the mouse, and the mouse cursor should show as no-drop or drop-allowed.</li>
<li>Fail in either case if the drag placeholder gets stuck temporarily or permanently over the blue square. Fail if an inappropriate middle click function begins (eg. paste-and-go).</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with middle click and release over windowless Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the pink square over the blue square.</li>
<li>Without releasing the drag, click the middle mouse button, then release the drag.</li>
<li>Fail if the drag placeholder gets stuck over the blue square.</li>
<li>Move the mouse outside the black square. The mouse cursor should be the default mouse cursor.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,22 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Incomplete drag and drop with deactivate in Flash</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<!-- Test is based on expected behaviour where the mouseup is sent to the plugin because a drag was in operation. -->
<p>Drag the orange square until the mouse is outside the black square, then release it. Move the mouse over the blue square. Fail if the orange square continues to follow the mouse.</p>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with deactivate alternating between incompleted Flash drag and page</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the orange square until the mouse is outside the right side of the black square but the edge of the orange square can still be seen, then release it.</li>
<li>Without passing over the black square again, move the mouse to the pink square.</li>
<li>Drag the pink square onto the blue square and release it. The drag placeholder should disappear (either when releasing, or when passing the black square), and the mouse cursor should return to normal. Fail if the pink square does not immediately respond to the drag attempt.</li>
<li>Without passing over the black square again, move the mouse to the orange square. Fail if the orange square moves.</li>
<li>Drag the orange square onto the blue square and release it. The orange square should disappear, and the blue square should turn yellow. Fail if the orange square does not immediately respond to the drag attempt.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,27 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with deactivate in Flash with Alt+Tab</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the orange square over the blue square.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>Move the mouse around inside the black square. The orange square should not follow the mouse.</li>
<li>Release the mouse button over the white area inside the black square. The orange square should disappear, and the blue square should turn yellow.</li>
</ol>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with deactivate in Flash with Alt+Tab over page</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the orange square around until the mouse is outside the black square.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>Move the mouse over the blue square. The orange square should not continue to follow the mouse.</li>
</ol>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,43 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with deactivate with Alt+Tab over Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<p><strong>Note:</strong> Mac has no no-drop cursor.</p>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the pink square over the blue square. The mouse cursor should be the no-drop cursor, or the platform's drop-allowed cursor.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>The mouse cursor should be the same cursor as in step 2.</li>
<li>Move the mouse outside the black square. The drag placeholder should follow the mouse (reappearing if it disappeared in step 2).</li>
<li>Release the drag. The drag placeholder should disappear, and the cursor should revert to the default mouse cursor.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,22 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Incomplete drag and drop with deactivate in windowless Flash</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<!-- Test is based on expected behaviour of windowless plugin where the mouseup is not sent to the plugin even though a drag was in operation. -->
<p>Drag the orange square until the mouse is outside the black square, then release it. Move the mouse over the blue square. Pass if the orange square follows the mouse.</p>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with deactivate alternating between incompleted windowless Flash drag and page</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Drag the orange square until the mouse is outside the right side of the black square but the edge of the orange square can still be seen, then release it.</li>
<li>Without passing over the black square again, move the mouse to the pink square.</li>
<li>Drag the pink square onto the white area inside the black square and release it. The drag placeholder should disappear (either when releasing, or when passing the black square), and the mouse cursor should return to normal. The orange square should jump to the mouse position. Fail if the pink square does not immediately respond to the drag attempt.</li>
<li>The orange square may optionally continue to follow the mouse.</li>
<!-- There are no rules here. Browsers may mask the mouseup event from the plugin (since a dnd operation was in progress), or they may pass the mouseup to the plugin (since the dnd operation has completed). -->
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with deactivate in windowless Flash with Alt+Tab</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the orange square over the blue square.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>Move the mouse around inside the black square. The orange square should continue to follow the mouse.</li>
</ol>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with deactivate in windowless Flash with Alt+Tab over page</title>
<style type="text/css">
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the orange square around until the mouse is outside the black square.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>Move the mouse inside the black square. The orange square should continue to follow the mouse.</li>
</ol>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Drag and drop with deactivate with Alt+Tab over windowless Flash</title>
<style type="text/css">
div {
width: 100px;
height: 100px;
background: fuchsia;
}
object {
width: 400px;
height: 400px;
border: 5px solid black;
}
</style>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('div')[0].ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dummy text');
};
};
</script>
</head>
<body>
<noscript><p>Enable JavaScript and reload</p></noscript>
<ol>
<li>Ensure at least one other program is running, with its window maximised.</li>
<li>Drag the pink square over the blue square. The mouse cursor should be the no-drop cursor, or the platform's drop-allowed cursor.</li>
<li>Without releasing the mouse button, use Alt+Tab (or your system's equivalent) to switch to the other program, then back to this one.</li>
<li>The mouse cursor should be the same cursor as in step 2.</li>
<li>Move the mouse outside the black square. The drag placeholder should follow the mouse (reappearing if it disappeared in step 2).</li>
<li>Release the drag. The drag placeholder should disappear, and the cursor should revert to the default mouse cursor.</li>
</ol>
<div draggable="true"></div>
<script type="text/javascript">
var plugincode = '<object data="dragndropleavedeactivate.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
</script>
<script type="text/javascript" src="click-to-activate.js"></script>
</body>
</html>

View file

@ -1,133 +0,0 @@
import Std;
import flash.Lib;
import flash.events.MouseEvent;
class DragNDrop
{
static var s_box_draggable:Box;
static var s_box_target:Box;
static var s_dragging:Bool = false;
private static function main()
{
/* Blue box (target). */
s_box_target = new Box(0x0000ff, 100, 100, 150, 150);
/* Orange box (draggable). */
s_box_draggable = new Box(0xffa500, 25, 25, 50, 50);
flash.Lib.current.stage.addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown);
flash.Lib.current.stage.addEventListener(MouseEvent.MOUSE_MOVE, OnMouseMove);
flash.Lib.current.stage.addEventListener(MouseEvent.MOUSE_UP, OnMouseUp);
}
static function OnMouseDown(event:MouseEvent):Void
{
if (s_box_draggable.IsHit(event.stageX, event.stageY))
s_dragging = true;
}
static function OnMouseUp(event:MouseEvent):Void
{
s_dragging = false;
/* Check if passed. */
if (s_box_draggable.IsWithin(s_box_target))
{
s_box_draggable.Hide();
s_box_target.SetColor(0xffee00);
}
}
static function OnMouseMove(event:MouseEvent):Void
{
if (s_dragging)
{
ClearCanvas();
s_box_target.Redraw();
s_box_draggable.Move(event.stageX, event.stageY);
}
}
static function ClearCanvas():Void
{
var mc:flash.display.MovieClip = flash.Lib.current;
mc.graphics.beginFill(0xffffff);
mc.graphics.drawRect(0, 0, flash.Lib.current.stage.width, flash.Lib.current.stage.height);
mc.graphics.endFill();
}
}
class Box
{
var m_mc:flash.display.MovieClip;
var m_color:Int;
var m_rel_x:Float;
var m_rel_y:Float;
var m_x:Float;
var m_y:Float;
var m_width:Int;
var m_height:Int;
public function new(color:Int, x:Int, y:Int, width:Int, height:Int)
{
m_mc = flash.Lib.current;
m_color = color;
m_x = x;
m_y = y;
m_width = width;
m_height = height;
Redraw();
}
public function IsHit(x:Float, y:Float):Bool
{
if ((x >= m_x && x <= m_x + m_width) && (y >= m_y && y <= m_y + m_height))
{
m_rel_x = x - m_x;
m_rel_y = y - m_y;
return true;
}
return false;
}
public function IsWithin(other:Box):Bool
{
return m_x >= other.m_x && m_x + m_width <= other.m_x + other.m_width
&& m_y >= other.m_y && m_y + m_height <= other.m_y + other.m_height;
}
public function Hide():Void
{
m_width = 0;
m_height = 0;
}
public function SetColor(color:Int):Void
{
m_color = color;
Redraw();
}
public function Move(x:Float, y:Float):Void
{
/* Accounting for click offset. */
m_x = x - m_rel_x;
m_y = y - m_rel_y;
Draw(Std.int(m_x), Std.int(m_y), m_width, m_height);
}
public function Redraw():Void
{
Draw(Std.int(m_x), Std.int(m_y), m_width, m_height);
}
private function Draw(x:Int, y:Int, width:Int, height:Int)
{
/* Draw moved rect. */
m_mc.graphics.beginFill(m_color);
m_mc.graphics.drawRect(x, y, width, height);
m_mc.graphics.endFill();
}
}

View file

@ -1 +0,0 @@
-swf dragndrop.swf -swf-version 10 -main DragNDrop -swf-header 300:300:25:FFFFFF

View file

@ -1,34 +0,0 @@
import flash.Lib;
import flash.display.Sprite;
import flash.events.MouseEvent;
class MouseUp extends Sprite
{
var s:Sprite;
static function main()
{
new MouseUp();
}
public function new()
{
super();
flash.Lib.current.addChild(this);
s = new Sprite();
s.graphics.beginFill(0xffa500);
s.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
s.graphics.endFill();
stage.addChild(s);
stage.addEventListener(MouseEvent.MOUSE_UP, OnMouseUp);
}
function OnMouseUp(event:MouseEvent):Void
{
s.graphics.beginFill(0xffee00);
s.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
s.graphics.endFill();
}
}

View file

@ -1 +0,0 @@
-swf mouseup.swf -swf-version 10 -main MouseUp -swf-header 300:300:25:FFFFFF

View file

@ -5,22 +5,42 @@
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<popup id=popup>This is a popup</popup> <popup id=p1>This is a popup</popup>
<popup id=p2 open>This is another popup, with an unused "open" attribute</popup>
<script> <script>
test(function() { test(function() {
assert_true(document.createElement('popup') instanceof HTMLPopupElement); assert_true(document.createElement('popup') instanceof HTMLPopupElement);
}, "popup element exists") }, "popup element exists")
test(function() { const popup1 = document.getElementById('p1');
const popup = document.getElementById('popup'); const popup2 = document.getElementById('p2');
assert_equals(window.getComputedStyle(popup).getPropertyValue('display'),'none');
assert_equals(popup.getAttribute('open'),null); test(function(){
popup.show(); assert_false(popup1.open);
assert_equals(popup.getAttribute('open'),""); assert_false(popup2.open);
assert_equals(window.getComputedStyle(popup).getPropertyValue('display'),'block'); assert_equals(getComputedStyle(popup2).display,"none");
popup.hide(); }, 'The IDL "open" content attribute must have no effect, and must not be reflected to the WebIDL.');
assert_equals(popup.getAttribute('open'),null);
assert_equals(window.getComputedStyle(popup).getPropertyValue('display'),'none'); test(function(){
}, "popup element basic show/hide behavior") assert_false(popup1.open);
assert_false(popup1.hasAttribute("open"));
assert_equals(getComputedStyle(popup1).display,"none");
popup1.open = true; // Should have no effect
assert_false(popup1.open);
popup1.show();
assert_true(popup1.open);
assert_false(popup1.hasAttribute("open"));
assert_not_equals(getComputedStyle(popup1).display,"none");
popup1.open = false; // Should have no effect
assert_true(popup1.open);
popup1.hide();
assert_false(popup1.open);
assert_false(popup1.hasAttribute("open"));
assert_equals(getComputedStyle(popup1).display,"none");
popup1.setAttribute("open","");
assert_false(popup1.open,'Setting open attribute should not reflect to the WebIDL');
assert_true(popup1.hasAttribute("open"));
assert_equals(getComputedStyle(popup1).display,"none");
}, "The only visibility control for <popup> is through .show() and .hide().");
</script> </script>

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel=author title="Mason Freed" href="mailto:masonfreed@chromium.org">
No popup should be displayed here.<p>

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