<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[180952] trunk/LayoutTests</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/180952">180952</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2015-03-03 13:20:14 -0800 (Tue, 03 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Test legacy event handler attributes (ones with names like &quot;onclick&quot;)
https://bugs.webkit.org/show_bug.cgi?id=142221

Reviewed by Anders Carlsson.

* fast/dom/legacy-event-handler-attributes-expected.txt: Added.
* fast/dom/legacy-event-handler-attributes.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastdomlegacyeventhandlerattributesexpectedtxt">trunk/LayoutTests/fast/dom/legacy-event-handler-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomlegacyeventhandlerattributeshtml">trunk/LayoutTests/fast/dom/legacy-event-handler-attributes.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (180951 => 180952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-03-03 21:13:48 UTC (rev 180951)
+++ trunk/LayoutTests/ChangeLog        2015-03-03 21:20:14 UTC (rev 180952)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-03-03  Darin Adler  &lt;darin@apple.com&gt;
+
+        Test legacy event handler attributes (ones with names like &quot;onclick&quot;)
+        https://bugs.webkit.org/show_bug.cgi?id=142221
+
+        Reviewed by Anders Carlsson.
+
+        * fast/dom/legacy-event-handler-attributes-expected.txt: Added.
+        * fast/dom/legacy-event-handler-attributes.html: Added.
+
</ins><span class="cx"> 2015-03-03  Timothy Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         &lt;attachment&gt; label can get very wide, doesn't wrap/truncate
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomlegacyeventhandlerattributesexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/legacy-event-handler-attributes-expected.txt (0 => 180952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/legacy-event-handler-attributes-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/dom/legacy-event-handler-attributes-expected.txt        2015-03-03 21:20:14 UTC (rev 180952)
</span><span class="lines">@@ -0,0 +1,821 @@
</span><ins>+Test which event listeners are set up by legacy event handler attributes (the ones with names like onclick).
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Event names we expect to be able to set on the window object
+
+PASS testScriptAttribute(window, &quot;abort&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;animationend&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;animationiteration&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;animationstart&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;beforeunload&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;blur&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;canplay&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;canplaythrough&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;change&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;click&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;contextmenu&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;dblclick&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;drag&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;dragend&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;dragenter&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;dragleave&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;dragover&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;dragstart&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;drop&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;durationchange&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;emptied&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;ended&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;error&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;focus&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;hashchange&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;input&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;invalid&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;keydown&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;keypress&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;keyup&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;load&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;loadeddata&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;loadedmetadata&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;loadstart&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;message&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;mousedown&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;mouseenter&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;mouseleave&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;mousemove&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;mouseout&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;mouseover&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;mouseup&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;mousewheel&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;offline&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;online&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;pagehide&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;pageshow&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;pause&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;play&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;playing&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;popstate&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;progress&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;ratechange&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;reset&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;resize&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;scroll&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;search&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;seeked&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;seeking&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;select&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;stalled&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;storage&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;submit&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;suspend&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;timeupdate&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;transitionend&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;unload&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;volumechange&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;waiting&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;webkitanimationend&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;webkitanimationiteration&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;webkitanimationstart&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;webkittransitionend&quot;) is &quot;window&quot;
+PASS testScriptAttribute(window, &quot;wheel&quot;) is &quot;window&quot;
+
+Event names we expect not to be able to set on the window object
+
+PASS testScriptAttribute(window, &quot;beforecopy&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;beforecut&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;beforepaste&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;copy&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;cut&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;focusin&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;focusout&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;paste&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;readystatechange&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;selectionchange&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;selectstart&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;touchcancel&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;touchend&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;touchmove&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;touchstart&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;webkitkeyadded&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;webkitkeyerror&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;webkitkeymessage&quot;) is &quot;none&quot;
+PASS testScriptAttribute(window, &quot;webkitpresentationmodechanged&quot;) is &quot;none&quot;
+
+Event names we expect to be able to set on the document
+
+FAIL testScriptAttribute(document, &quot;abort&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;beforecopy&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;beforecut&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;beforepaste&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;blur&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;change&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;click&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;contextmenu&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;copy&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;cut&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;dblclick&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;drag&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;dragend&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;dragenter&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;dragleave&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;dragover&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;dragstart&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;drop&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;error&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;focus&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;input&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;invalid&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;keydown&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;keypress&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;keyup&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;load&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;mousedown&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;mouseenter&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;mouseleave&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;mousemove&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;mouseout&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;mouseover&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;mouseup&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;mousewheel&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;paste&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;readystatechange&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;reset&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;scroll&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;search&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;select&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;selectionchange&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;selectstart&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;submit&quot;) should be document. Was document, remove failed.
+FAIL testScriptAttribute(document, &quot;wheel&quot;) should be document. Was document, remove failed.
+
+Event names we expect not to be able to set on the document
+
+PASS testScriptAttribute(document, &quot;animationend&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;animationiteration&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;animationstart&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;beforeunload&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;canplay&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;canplaythrough&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;durationchange&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;emptied&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;ended&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;focusin&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;focusout&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;hashchange&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;loadeddata&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;loadedmetadata&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;loadstart&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;message&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;offline&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;online&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;pagehide&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;pageshow&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;pause&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;play&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;playing&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;popstate&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;progress&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;ratechange&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;resize&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;seeked&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;seeking&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;stalled&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;storage&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;suspend&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;timeupdate&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;touchcancel&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;touchend&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;touchmove&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;touchstart&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;transitionend&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;unload&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;volumechange&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;waiting&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;webkitanimationend&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;webkitanimationiteration&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;webkitanimationstart&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;webkitkeyadded&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;webkitkeyerror&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;webkitkeymessage&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;webkitpresentationmodechanged&quot;) is &quot;none&quot;
+PASS testScriptAttribute(document, &quot;webkittransitionend&quot;) is &quot;none&quot;
+
+Event names we expect to be able to set on an element (tested on the &lt;html&gt; element)
+
+PASS testElementAttribute(element, &quot;abort&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;animationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;animationstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;beforecopy&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;beforecut&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;beforepaste&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;blur&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;canplay&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;canplaythrough&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;change&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;click&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;contextmenu&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;copy&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;cut&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;dblclick&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;drag&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;dragend&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;dragenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;dragleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;dragover&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;dragstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;drop&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;durationchange&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;emptied&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;ended&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;error&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;focus&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;focusin&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;focusout&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;input&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;invalid&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;keydown&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;keypress&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;keyup&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;load&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;loadeddata&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;loadedmetadata&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;loadstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;mousedown&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;mouseenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;mouseleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;mousemove&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;mouseout&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;mouseover&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;mouseup&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;mousewheel&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;paste&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;pause&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;play&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;playing&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;progress&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;ratechange&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;reset&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;scroll&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;search&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(element, &quot;seeked&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;seeking&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;select&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;selectstart&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;stalled&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;submit&quot;) is &quot;target&quot;
+FAIL testElementAttribute(element, &quot;suspend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;timeupdate&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;touchend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;touchmove&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;touchstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;transitionend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;volumechange&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;waiting&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(element, &quot;webkitkeyadded&quot;) should be target. Was none.
+FAIL testElementAttribute(element, &quot;webkitkeyerror&quot;) should be target. Was none.
+FAIL testElementAttribute(element, &quot;webkitkeymessage&quot;) should be target. Was none.
+FAIL testElementAttribute(element, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
+FAIL testElementAttribute(element, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(element, &quot;wheel&quot;) is &quot;target&quot;
+
+Event names we expect not to be able to set on an element (tested on the &lt;html&gt; element)
+
+PASS testElementAttribute(element, &quot;beforeunload&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;hashchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;message&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;offline&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;online&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;pagehide&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;pageshow&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;popstate&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;readystatechange&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;resize&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;selectionchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;storage&quot;) is &quot;none&quot;
+PASS testElementAttribute(element, &quot;unload&quot;) is &quot;none&quot;
+
+Event names we expect to be able to set on an element (tested on the &lt;input&gt; element)
+
+PASS testElementAttribute(inputElement, &quot;abort&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;beforecopy&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;beforecut&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;beforepaste&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;blur&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;canplay&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;canplaythrough&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;change&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;click&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;contextmenu&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;copy&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;cut&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;dblclick&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;drag&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;dragend&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;dragenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;dragleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;dragover&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;dragstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;drop&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;durationchange&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;emptied&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;ended&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;error&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;focus&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;focusin&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;focusout&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;input&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;invalid&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;keydown&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;keypress&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;keyup&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;load&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;loadeddata&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;loadedmetadata&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;mousedown&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;mouseenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;mouseleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;mousemove&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;mouseout&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;mouseover&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;mouseup&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;mousewheel&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;paste&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;pause&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;play&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;playing&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;progress&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;ratechange&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;reset&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;scroll&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;search&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;select&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;selectstart&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;submit&quot;) is &quot;target&quot;
+FAIL testElementAttribute(inputElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;timeupdate&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;volumechange&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;waiting&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(inputElement, &quot;webkitkeyadded&quot;) should be target. Was none.
+FAIL testElementAttribute(inputElement, &quot;webkitkeyerror&quot;) should be target. Was none.
+FAIL testElementAttribute(inputElement, &quot;webkitkeymessage&quot;) should be target. Was none.
+FAIL testElementAttribute(inputElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
+FAIL testElementAttribute(inputElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(inputElement, &quot;wheel&quot;) is &quot;target&quot;
+
+Event names we expect not to be able to set on an element (tested on the &lt;input&gt; element)
+
+PASS testElementAttribute(inputElement, &quot;beforeunload&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;hashchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;message&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;offline&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;online&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;pagehide&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;pageshow&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;popstate&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;readystatechange&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;resize&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;selectionchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;storage&quot;) is &quot;none&quot;
+PASS testElementAttribute(inputElement, &quot;unload&quot;) is &quot;none&quot;
+
+Event names we expect to be able to set on an element (tested on the &lt;audio&gt; element)
+
+PASS testElementAttribute(audioElement, &quot;abort&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;beforecopy&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;beforecut&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;beforepaste&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;blur&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;canplay&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;canplaythrough&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;change&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;click&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;contextmenu&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;copy&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;cut&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;dblclick&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;drag&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;dragend&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;dragenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;dragleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;dragover&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;dragstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;drop&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;durationchange&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;emptied&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;ended&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;error&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;focus&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;focusin&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;focusout&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;input&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;invalid&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;keydown&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;keypress&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;keyup&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;load&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;loadeddata&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;loadedmetadata&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;mousedown&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;mouseenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;mouseleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;mousemove&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;mouseout&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;mouseover&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;mouseup&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;mousewheel&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;paste&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;pause&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;play&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;playing&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;progress&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;ratechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;reset&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;scroll&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;search&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(audioElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;select&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;selectstart&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;submit&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;timeupdate&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;volumechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;waiting&quot;) is &quot;target&quot;
+FAIL testElementAttribute(audioElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(audioElement, &quot;webkitkeyadded&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(audioElement, &quot;webkitkeyerror&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(audioElement, &quot;webkitkeymessage&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(audioElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
+FAIL testElementAttribute(audioElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(audioElement, &quot;wheel&quot;) is &quot;target&quot;
+
+Event names we expect not to be able to set on an element (tested on the &lt;audio&gt; element)
+
+PASS testElementAttribute(audioElement, &quot;beforeunload&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;hashchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;message&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;offline&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;online&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;pagehide&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;pageshow&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;popstate&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;readystatechange&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;resize&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;selectionchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;storage&quot;) is &quot;none&quot;
+PASS testElementAttribute(audioElement, &quot;unload&quot;) is &quot;none&quot;
+
+Event names we expect to be able to set on an element (tested on the &lt;video&gt; element)
+
+PASS testElementAttribute(videoElement, &quot;abort&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;beforecopy&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;beforecut&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;beforepaste&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;blur&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;canplay&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;canplaythrough&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;change&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;click&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;contextmenu&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;copy&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;cut&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;dblclick&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;drag&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;dragend&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;dragenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;dragleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;dragover&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;dragstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;drop&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;durationchange&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;emptied&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;ended&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;error&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;focus&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;focusin&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;focusout&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;input&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;invalid&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;keydown&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;keypress&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;keyup&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;load&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;loadeddata&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;loadedmetadata&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;mousedown&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;mouseenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;mouseleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;mousemove&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;mouseout&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;mouseover&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;mouseup&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;mousewheel&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;paste&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;pause&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;play&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;playing&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;progress&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;ratechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;reset&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;scroll&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;search&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(videoElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;select&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;selectstart&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;submit&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;timeupdate&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;volumechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;waiting&quot;) is &quot;target&quot;
+FAIL testElementAttribute(videoElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(videoElement, &quot;webkitkeyadded&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(videoElement, &quot;webkitkeyerror&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(videoElement, &quot;webkitkeymessage&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(videoElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
+FAIL testElementAttribute(videoElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(videoElement, &quot;wheel&quot;) is &quot;target&quot;
+
+Event names we expect not to be able to set on an element (tested on the &lt;video&gt; element)
+
+PASS testElementAttribute(videoElement, &quot;beforeunload&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;hashchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;message&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;offline&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;online&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;pagehide&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;pageshow&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;popstate&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;readystatechange&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;resize&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;selectionchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;storage&quot;) is &quot;none&quot;
+PASS testElementAttribute(videoElement, &quot;unload&quot;) is &quot;none&quot;
+
+Event names we expect to be forwarded from &lt;body&gt; element to window object)
+
+PASS testElementAttribute(bodyElement, &quot;beforeunload&quot;) is &quot;window&quot;
+PASS testElementAttribute(bodyElement, &quot;blur&quot;) is &quot;window&quot;
+FAIL testElementAttribute(bodyElement, &quot;error&quot;) should be window. Was script: window; content: target.
+PASS testElementAttribute(bodyElement, &quot;focus&quot;) is &quot;window&quot;
+PASS testElementAttribute(bodyElement, &quot;hashchange&quot;) is &quot;window&quot;
+PASS testElementAttribute(bodyElement, &quot;load&quot;) is &quot;window&quot;
+FAIL testElementAttribute(bodyElement, &quot;message&quot;) should be window. Was script: window; content: none.
+PASS testElementAttribute(bodyElement, &quot;offline&quot;) is &quot;window&quot;
+PASS testElementAttribute(bodyElement, &quot;online&quot;) is &quot;window&quot;
+FAIL testElementAttribute(bodyElement, &quot;pagehide&quot;) should be window. Was script: none; content: window.
+FAIL testElementAttribute(bodyElement, &quot;pageshow&quot;) should be window. Was script: none; content: window.
+PASS testElementAttribute(bodyElement, &quot;popstate&quot;) is &quot;window&quot;
+PASS testElementAttribute(bodyElement, &quot;resize&quot;) is &quot;window&quot;
+PASS testElementAttribute(bodyElement, &quot;storage&quot;) is &quot;window&quot;
+PASS testElementAttribute(bodyElement, &quot;unload&quot;) is &quot;window&quot;
+
+Event names we expect to be forwarded from &lt;body&gt; element to document)
+
+FAIL testElementAttribute(bodyElement, &quot;selectionchange&quot;) should be document. Was script: none; content: document, remove failed.
+
+Non-forwarded event names on &lt;body&gt; element
+
+PASS testElementAttribute(bodyElement, &quot;abort&quot;) is &quot;target&quot;
+FAIL testElementAttribute(bodyElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(bodyElement, &quot;beforecopy&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;beforecut&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;beforepaste&quot;) is &quot;target&quot;
+FAIL testElementAttribute(bodyElement, &quot;canplay&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;canplaythrough&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(bodyElement, &quot;change&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;click&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;contextmenu&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;copy&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;cut&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;dblclick&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;drag&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;dragend&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;dragenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;dragleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;dragover&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;dragstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;drop&quot;) is &quot;target&quot;
+FAIL testElementAttribute(bodyElement, &quot;durationchange&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;emptied&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;ended&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;focusin&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;focusout&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(bodyElement, &quot;input&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;invalid&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;keydown&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;keypress&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;keyup&quot;) is &quot;target&quot;
+FAIL testElementAttribute(bodyElement, &quot;loadeddata&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;loadedmetadata&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(bodyElement, &quot;mousedown&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;mouseenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;mouseleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;mousemove&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;mouseout&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;mouseover&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;mouseup&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;mousewheel&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;paste&quot;) is &quot;target&quot;
+FAIL testElementAttribute(bodyElement, &quot;pause&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;play&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;playing&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;progress&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;ratechange&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(bodyElement, &quot;reset&quot;) is &quot;target&quot;
+FAIL testElementAttribute(bodyElement, &quot;scroll&quot;) should be target. Was script: target; content: window.
+FAIL testElementAttribute(bodyElement, &quot;search&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(bodyElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(bodyElement, &quot;select&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;selectstart&quot;) is &quot;target&quot;
+FAIL testElementAttribute(bodyElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(bodyElement, &quot;submit&quot;) is &quot;target&quot;
+FAIL testElementAttribute(bodyElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;timeupdate&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;volumechange&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;waiting&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(bodyElement, &quot;webkitkeyadded&quot;) should be target. Was none.
+FAIL testElementAttribute(bodyElement, &quot;webkitkeyerror&quot;) should be target. Was none.
+FAIL testElementAttribute(bodyElement, &quot;webkitkeymessage&quot;) should be target. Was none.
+FAIL testElementAttribute(bodyElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
+FAIL testElementAttribute(bodyElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(bodyElement, &quot;wheel&quot;) is &quot;target&quot;
+
+Event names we expect to not be able to set on &lt;body&gt; element
+
+PASS testElementAttribute(bodyElement, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testElementAttribute(bodyElement, &quot;readystatechange&quot;) is &quot;none&quot;
+
+Event names we expect to be forwarded from &lt;frameset&gt; element to window object)
+
+PASS testElementAttribute(framesetElement, &quot;beforeunload&quot;) is &quot;window&quot;
+PASS testElementAttribute(framesetElement, &quot;blur&quot;) is &quot;window&quot;
+FAIL testElementAttribute(framesetElement, &quot;error&quot;) should be window. Was script: window; content: target.
+PASS testElementAttribute(framesetElement, &quot;focus&quot;) is &quot;window&quot;
+PASS testElementAttribute(framesetElement, &quot;hashchange&quot;) is &quot;window&quot;
+PASS testElementAttribute(framesetElement, &quot;load&quot;) is &quot;window&quot;
+FAIL testElementAttribute(framesetElement, &quot;message&quot;) should be window. Was script: window; content: none.
+PASS testElementAttribute(framesetElement, &quot;offline&quot;) is &quot;window&quot;
+PASS testElementAttribute(framesetElement, &quot;online&quot;) is &quot;window&quot;
+FAIL testElementAttribute(framesetElement, &quot;pagehide&quot;) should be window. Was none.
+FAIL testElementAttribute(framesetElement, &quot;pageshow&quot;) should be window. Was none.
+PASS testElementAttribute(framesetElement, &quot;popstate&quot;) is &quot;window&quot;
+PASS testElementAttribute(framesetElement, &quot;resize&quot;) is &quot;window&quot;
+PASS testElementAttribute(framesetElement, &quot;storage&quot;) is &quot;window&quot;
+PASS testElementAttribute(framesetElement, &quot;unload&quot;) is &quot;window&quot;
+
+Event names we expect to be forwarded from &lt;frameset&gt; element to document)
+
+FAIL testElementAttribute(framesetElement, &quot;selectionchange&quot;) should be document. Was none.
+
+Non-forwarded event names on &lt;frameset&gt; element
+
+PASS testElementAttribute(framesetElement, &quot;abort&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(framesetElement, &quot;beforecopy&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;beforecut&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;beforepaste&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;canplay&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;canplaythrough&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(framesetElement, &quot;change&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;click&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;contextmenu&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;copy&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;cut&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;dblclick&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;drag&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;dragend&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;dragenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;dragleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;dragover&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;dragstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;drop&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;durationchange&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;emptied&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;ended&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;focusin&quot;) should be target. Was script: none; content: window.
+FAIL testElementAttribute(framesetElement, &quot;focusout&quot;) should be target. Was script: none; content: window.
+PASS testElementAttribute(framesetElement, &quot;input&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;invalid&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;keydown&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;keypress&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;keyup&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;loadeddata&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;loadedmetadata&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(framesetElement, &quot;mousedown&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;mouseenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;mouseleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;mousemove&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;mouseout&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;mouseover&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;mouseup&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;mousewheel&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;paste&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;pause&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;play&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;playing&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;progress&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;ratechange&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(framesetElement, &quot;reset&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;scroll&quot;) should be target. Was script: target; content: window.
+FAIL testElementAttribute(framesetElement, &quot;search&quot;) should be target. Was script: target; content: none.
+FAIL testElementAttribute(framesetElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(framesetElement, &quot;select&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;selectstart&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(framesetElement, &quot;submit&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;timeupdate&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;volumechange&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;waiting&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(framesetElement, &quot;webkitkeyadded&quot;) should be target. Was none.
+FAIL testElementAttribute(framesetElement, &quot;webkitkeyerror&quot;) should be target. Was none.
+FAIL testElementAttribute(framesetElement, &quot;webkitkeymessage&quot;) should be target. Was none.
+FAIL testElementAttribute(framesetElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
+FAIL testElementAttribute(framesetElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(framesetElement, &quot;wheel&quot;) is &quot;target&quot;
+
+Event names we expect to not be able to set on &lt;frameset&gt; element
+
+PASS testElementAttribute(framesetElement, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testElementAttribute(framesetElement, &quot;readystatechange&quot;) is &quot;none&quot;
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomlegacyeventhandlerattributeshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/dom/legacy-event-handler-attributes.html (0 => 180952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/legacy-event-handler-attributes.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/legacy-event-handler-attributes.html        2015-03-03 21:20:14 UTC (rev 180952)
</span><span class="lines">@@ -0,0 +1,622 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;body&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+description(&quot;Test which event listeners are set up by legacy event handler attributes (the ones with names like onclick).&quot;);
+
+const unusualEventNames = {
+    &quot;webkitanimationend&quot;: &quot;webkitAnimationEnd&quot;,
+    &quot;webkitanimationiteration&quot;: &quot;webkitAnimationIteration&quot;,
+    &quot;webkitanimationstart&quot;: &quot;webkitAnimationStart&quot;,
+    &quot;webkittransitionend&quot;: &quot;webkitTransitionEnd&quot;,
+};
+
+const windowEvents = [
+    &quot;abort&quot;,
+    &quot;animationend&quot;,
+    &quot;animationiteration&quot;,
+    &quot;animationstart&quot;,
+    &quot;beforeunload&quot;,
+    &quot;blur&quot;,
+    &quot;canplay&quot;,
+    &quot;canplaythrough&quot;,
+    &quot;change&quot;,
+    &quot;click&quot;,
+    &quot;contextmenu&quot;,
+    &quot;dblclick&quot;,
+    &quot;drag&quot;,
+    &quot;dragend&quot;,
+    &quot;dragenter&quot;,
+    &quot;dragleave&quot;,
+    &quot;dragover&quot;,
+    &quot;dragstart&quot;,
+    &quot;drop&quot;,
+    &quot;durationchange&quot;,
+    &quot;emptied&quot;,
+    &quot;ended&quot;,
+    &quot;error&quot;,
+    &quot;focus&quot;,
+    &quot;hashchange&quot;,
+    &quot;input&quot;,
+    &quot;invalid&quot;,
+    &quot;keydown&quot;,
+    &quot;keypress&quot;,
+    &quot;keyup&quot;,
+    &quot;load&quot;,
+    &quot;loadeddata&quot;,
+    &quot;loadedmetadata&quot;,
+    &quot;loadstart&quot;,
+    &quot;message&quot;,
+    &quot;mousedown&quot;,
+    &quot;mouseenter&quot;,
+    &quot;mouseleave&quot;,
+    &quot;mousemove&quot;,
+    &quot;mouseout&quot;,
+    &quot;mouseover&quot;,
+    &quot;mouseup&quot;,
+    &quot;mousewheel&quot;,
+    &quot;offline&quot;,
+    &quot;online&quot;,
+    &quot;pagehide&quot;,
+    &quot;pageshow&quot;,
+    &quot;pause&quot;,
+    &quot;play&quot;,
+    &quot;playing&quot;,
+    &quot;popstate&quot;,
+    &quot;progress&quot;,
+    &quot;ratechange&quot;,
+    &quot;reset&quot;,
+    &quot;resize&quot;,
+    &quot;scroll&quot;,
+    &quot;search&quot;,
+    &quot;seeked&quot;,
+    &quot;seeking&quot;,
+    &quot;select&quot;,
+    &quot;stalled&quot;,
+    &quot;storage&quot;,
+    &quot;submit&quot;,
+    &quot;suspend&quot;,
+    &quot;timeupdate&quot;,
+    &quot;transitionend&quot;,
+    &quot;unload&quot;,
+    &quot;volumechange&quot;,
+    &quot;waiting&quot;,
+    &quot;webkitanimationend&quot;,
+    &quot;webkitanimationiteration&quot;,
+    &quot;webkitanimationstart&quot;,
+    &quot;webkittransitionend&quot;,
+    &quot;wheel&quot;,
+];
+
+const documentEvents = [
+    &quot;abort&quot;,
+    &quot;beforecopy&quot;,
+    &quot;beforecut&quot;,
+    &quot;beforepaste&quot;,
+    &quot;blur&quot;,
+    &quot;change&quot;,
+    &quot;click&quot;,
+    &quot;contextmenu&quot;,
+    &quot;copy&quot;,
+    &quot;cut&quot;,
+    &quot;dblclick&quot;,
+    &quot;drag&quot;,
+    &quot;dragend&quot;,
+    &quot;dragenter&quot;,
+    &quot;dragleave&quot;,
+    &quot;dragover&quot;,
+    &quot;dragstart&quot;,
+    &quot;drop&quot;,
+    &quot;error&quot;,
+    &quot;focus&quot;,
+    &quot;input&quot;,
+    &quot;invalid&quot;,
+    &quot;keydown&quot;,
+    &quot;keypress&quot;,
+    &quot;keyup&quot;,
+    &quot;load&quot;,
+    &quot;mousedown&quot;,
+    &quot;mouseenter&quot;,
+    &quot;mouseleave&quot;,
+    &quot;mousemove&quot;,
+    &quot;mouseout&quot;,
+    &quot;mouseover&quot;,
+    &quot;mouseup&quot;,
+    &quot;mousewheel&quot;,
+    &quot;paste&quot;,
+    &quot;readystatechange&quot;,
+    &quot;reset&quot;,
+    &quot;scroll&quot;,
+    &quot;search&quot;,
+    &quot;select&quot;,
+    &quot;selectionchange&quot;,
+    &quot;selectstart&quot;,
+    &quot;submit&quot;,
+    &quot;wheel&quot;,
+];
+
+const elementEvents = [
+    &quot;abort&quot;,
+    &quot;animationend&quot;,
+    &quot;animationiteration&quot;,
+    &quot;animationstart&quot;,
+    &quot;beforecopy&quot;,
+    &quot;beforecut&quot;,
+    &quot;beforepaste&quot;,
+    &quot;blur&quot;,
+    &quot;canplay&quot;,
+    &quot;canplaythrough&quot;,
+    &quot;change&quot;,
+    &quot;click&quot;,
+    &quot;contextmenu&quot;,
+    &quot;copy&quot;,
+    &quot;cut&quot;,
+    &quot;dblclick&quot;,
+    &quot;drag&quot;,
+    &quot;dragend&quot;,
+    &quot;dragenter&quot;,
+    &quot;dragleave&quot;,
+    &quot;dragover&quot;,
+    &quot;dragstart&quot;,
+    &quot;drop&quot;,
+    &quot;durationchange&quot;,
+    &quot;emptied&quot;,
+    &quot;ended&quot;,
+    &quot;error&quot;,
+    &quot;focus&quot;,
+    &quot;focusin&quot;,
+    &quot;focusout&quot;,
+    &quot;input&quot;,
+    &quot;invalid&quot;,
+    &quot;keydown&quot;,
+    &quot;keypress&quot;,
+    &quot;keyup&quot;,
+    &quot;load&quot;,
+    &quot;loadeddata&quot;,
+    &quot;loadedmetadata&quot;,
+    &quot;loadstart&quot;,
+    &quot;mousedown&quot;,
+    &quot;mouseenter&quot;,
+    &quot;mouseleave&quot;,
+    &quot;mousemove&quot;,
+    &quot;mouseout&quot;,
+    &quot;mouseover&quot;,
+    &quot;mouseup&quot;,
+    &quot;mousewheel&quot;,
+    &quot;paste&quot;,
+    &quot;pause&quot;,
+    &quot;play&quot;,
+    &quot;playing&quot;,
+    &quot;progress&quot;,
+    &quot;ratechange&quot;,
+    &quot;reset&quot;,
+    &quot;scroll&quot;,
+    &quot;search&quot;,
+    &quot;seeked&quot;,
+    &quot;seeking&quot;,
+    &quot;select&quot;,
+    &quot;selectstart&quot;,
+    &quot;stalled&quot;,
+    &quot;submit&quot;,
+    &quot;suspend&quot;,
+    &quot;timeupdate&quot;,
+    &quot;touchcancel&quot;,
+    &quot;touchend&quot;,
+    &quot;touchmove&quot;,
+    &quot;touchstart&quot;,
+    &quot;transitionend&quot;,
+    &quot;volumechange&quot;,
+    &quot;waiting&quot;,
+    &quot;webkitanimationend&quot;,
+    &quot;webkitanimationiteration&quot;,
+    &quot;webkitanimationstart&quot;,
+    &quot;webkitkeyadded&quot;,
+    &quot;webkitkeyerror&quot;,
+    &quot;webkitkeymessage&quot;,
+    &quot;webkitpresentationmodechanged&quot;,
+    &quot;webkittransitionend&quot;,
+    &quot;wheel&quot;,
+];
+
+const bodyElementWindowForwardedEvents = [
+    &quot;beforeunload&quot;,
+    &quot;blur&quot;,
+    &quot;error&quot;,
+    &quot;focus&quot;,
+    &quot;hashchange&quot;,
+    &quot;load&quot;,
+    &quot;message&quot;,
+    &quot;offline&quot;,
+    &quot;online&quot;,
+    &quot;pagehide&quot;,
+    &quot;pageshow&quot;,
+    &quot;popstate&quot;,
+    &quot;resize&quot;,
+    &quot;storage&quot;,
+    &quot;unload&quot;,
+];
+
+const bodyElementDocumentForwardedEvents = [
+    &quot;selectionchange&quot;,
+];
+
+const nonEventNames = [
+    &quot;noneventname&quot;,
+];
+
+var magicNumber = 2;
+var sideEffect;
+
+function testHandler(object, install, remove, eventName)
+{
+    const capturedMagicNumber = ++magicNumber;
+    install(capturedMagicNumber);
+
+    if (unusualEventNames[eventName])
+        eventName = unusualEventNames[eventName];
+
+    sideEffect = capturedMagicNumber - 1;
+    if (object !== window &amp;&amp; object !== document)
+        object.dispatchEvent(new Event(eventName));
+    const handlerOnTarget = sideEffect === capturedMagicNumber;
+    sideEffect = capturedMagicNumber - 1;
+    window.dispatchEvent(new Event(eventName));
+    const handlerOnWindow = sideEffect === capturedMagicNumber;
+    sideEffect = capturedMagicNumber - 1;
+    document.dispatchEvent(new Event(eventName));
+    const handlerOnDocument = sideEffect === capturedMagicNumber;
+
+    remove();
+
+    object.dispatchEvent(new Event(eventName));
+    window.dispatchEvent(new Event(eventName));
+    document.dispatchEvent(new Event(eventName));
+
+    const misfire = sideEffect === capturedMagicNumber;
+
+    var result;
+
+    if (!handlerOnTarget &amp;&amp; !handlerOnWindow &amp;&amp; !handlerOnDocument)
+        result = &quot;none&quot;;
+    else
+        result = ((handlerOnTarget ? &quot;, target&quot; : &quot;&quot;) + (handlerOnWindow ? &quot;, window&quot; : &quot;&quot;) + (handlerOnDocument ? &quot;, document&quot; : &quot;&quot;)).substring(2);
+
+    if (misfire)
+        result += &quot;, remove failed&quot;;
+
+    return result;
+}
+
+function testScriptAttribute(object, eventName)
+{
+    const attributeName = &quot;on&quot; + eventName;
+    return testHandler(object, function(capturedMagicNumber) {
+        object[attributeName] = function() { sideEffect = capturedMagicNumber };
+    }, function() {
+        object[attributeName] = null;
+    }, eventName);
+}
+
+function testContentAttribute(element, eventName)
+{
+    const attributeName = &quot;on&quot; + eventName;
+    return testHandler(element, function(capturedMagicNumber) {
+        element.setAttribute(attributeName, &quot;sideEffect = &quot; + capturedMagicNumber);
+    }, function() {
+        element.removeAttribute(attributeName);
+    }, eventName);
+}
+
+function testElementAttribute(object, eventName)
+{
+    const scriptAttributeResult = testScriptAttribute(object, eventName);
+    const contentAttributeResult = testContentAttribute(object, eventName);
+    if (scriptAttributeResult === contentAttributeResult)
+        return scriptAttributeResult;
+    return &quot;script: &quot; + scriptAttributeResult + &quot;; content: &quot; + contentAttributeResult;
+}
+
+function sortUnique(array)
+{
+    return array.sort().filter(function(item, i) {
+        return i === 0 || item !== array[i - 1];
+    });
+}
+
+function arrayUnion()
+{
+    var combined = [];
+    for (var i = 0; i &lt; arguments.length; ++i)
+        combined = combined.concat(arguments[i]);
+    return sortUnique(combined);
+}
+
+function arrayDifference(a, b)
+{
+    return a.filter(function(item) {
+        return b.indexOf(item) &lt; 0;
+    });
+}
+
+const allEventNames = arrayUnion(windowEvents, documentEvents, elementEvents, bodyElementWindowForwardedEvents, bodyElementDocumentForwardedEvents, nonEventNames);
+
+var sectionOpen = false;
+
+function endSection()
+{
+    if (sectionOpen) {
+        debug(&quot;&quot;);
+        sectionOpen = false;
+    }
+}
+
+function section(title)
+{
+    endSection();
+    debug(title);
+    debug(&quot;&quot;);
+    sectionOpen = true;
+}
+
+function testArray(array, prefix, expected, sectionName)
+{
+    section(sectionName);
+    for (var i = 0; i &lt; array.length; ++i) {
+        shouldBeEqualToString(prefix + &quot;, \&quot;&quot; + array[i] + &quot;\&quot;)&quot;, expected);
+    }
+}
+
+const element = document.documentElement;
+const bodyElement = document.body;
+const audioElement = document.createElement(&quot;video&quot;);
+const framesetElement = document.createElement(&quot;frameset&quot;);
+const inputElement = document.createElement(&quot;input&quot;);
+const videoElement = document.createElement(&quot;video&quot;);
+
+testArray(windowEvents, &quot;testScriptAttribute(window&quot;, &quot;window&quot;, &quot;Event names we expect to be able to set on the window object&quot;);
+testArray(arrayDifference(allEventNames, windowEvents), &quot;testScriptAttribute(window&quot;, &quot;none&quot;, &quot;Event names we expect not to be able to set on the window object&quot;);
+
+testArray(documentEvents, &quot;testScriptAttribute(document&quot;, &quot;document&quot;, &quot;Event names we expect to be able to set on the document&quot;);
+testArray(arrayDifference(allEventNames, documentEvents), &quot;testScriptAttribute(document&quot;, &quot;none&quot;, &quot;Event names we expect not to be able to set on the document&quot;);
+
+testArray(elementEvents, &quot;testElementAttribute(element&quot;, &quot;target&quot;, &quot;Event names we expect to be able to set on an element (tested on the &amp;lt;html&gt; element)&quot;);
+testArray(arrayDifference(allEventNames, elementEvents), &quot;testElementAttribute(element&quot;, &quot;none&quot;, &quot;Event names we expect not to be able to set on an element (tested on the &amp;lt;html&gt; element)&quot;);
+
+testArray(elementEvents, &quot;testElementAttribute(inputElement&quot;, &quot;target&quot;, &quot;Event names we expect to be able to set on an element (tested on the &amp;lt;input&gt; element)&quot;);
+testArray(arrayDifference(allEventNames, elementEvents), &quot;testElementAttribute(inputElement&quot;, &quot;none&quot;, &quot;Event names we expect not to be able to set on an element (tested on the &amp;lt;input&gt; element)&quot;);
+
+testArray(elementEvents, &quot;testElementAttribute(audioElement&quot;, &quot;target&quot;, &quot;Event names we expect to be able to set on an element (tested on the &amp;lt;audio&gt; element)&quot;);
+testArray(arrayDifference(allEventNames, elementEvents), &quot;testElementAttribute(audioElement&quot;, &quot;none&quot;, &quot;Event names we expect not to be able to set on an element (tested on the &amp;lt;audio&gt; element)&quot;);
+
+testArray(elementEvents, &quot;testElementAttribute(videoElement&quot;, &quot;target&quot;, &quot;Event names we expect to be able to set on an element (tested on the &amp;lt;video&gt; element)&quot;);
+testArray(arrayDifference(allEventNames, elementEvents), &quot;testElementAttribute(videoElement&quot;, &quot;none&quot;, &quot;Event names we expect not to be able to set on an element (tested on the &amp;lt;video&gt; element)&quot;);
+
+testArray(bodyElementWindowForwardedEvents, &quot;testElementAttribute(bodyElement&quot;, &quot;window&quot;, &quot;Event names we expect to be forwarded from &amp;lt;body&gt; element to window object)&quot;);
+testArray(bodyElementDocumentForwardedEvents, &quot;testElementAttribute(bodyElement&quot;, &quot;document&quot;, &quot;Event names we expect to be forwarded from &amp;lt;body&gt; element to document)&quot;);
+testArray(arrayDifference(elementEvents, arrayUnion(bodyElementWindowForwardedEvents, bodyElementDocumentForwardedEvents)), &quot;testElementAttribute(bodyElement&quot;, &quot;target&quot;, &quot;Non-forwarded event names on &amp;lt;body&gt; element&quot;);
+testArray(arrayDifference(allEventNames, arrayUnion(elementEvents, bodyElementWindowForwardedEvents, bodyElementDocumentForwardedEvents)), &quot;testElementAttribute(bodyElement&quot;, &quot;none&quot;, &quot;Event names we expect to not be able to set on &amp;lt;body&gt; element&quot;);
+
+testArray(bodyElementWindowForwardedEvents, &quot;testElementAttribute(framesetElement&quot;, &quot;window&quot;, &quot;Event names we expect to be forwarded from &amp;lt;frameset&gt; element to window object)&quot;);
+testArray(bodyElementDocumentForwardedEvents, &quot;testElementAttribute(framesetElement&quot;, &quot;document&quot;, &quot;Event names we expect to be forwarded from &amp;lt;frameset&gt; element to document)&quot;);
+testArray(arrayDifference(elementEvents, arrayUnion(bodyElementWindowForwardedEvents, bodyElementDocumentForwardedEvents)), &quot;testElementAttribute(framesetElement&quot;, &quot;target&quot;, &quot;Non-forwarded event names on &amp;lt;frameset&gt; element&quot;);
+testArray(arrayDifference(allEventNames, arrayUnion(elementEvents, bodyElementWindowForwardedEvents, bodyElementDocumentForwardedEvents)), &quot;testElementAttribute(framesetElement&quot;, &quot;none&quot;, &quot;Event names we expect to not be able to set on &amp;lt;frameset&gt; element&quot;);
+
+endSection();
+
+/*
+
+----------------
+
+To make the results of this test platform independent, there is no testing here for conditional events.
+An alternative would be to always make these event handler attributes work even if the feature
+that sends the events is turned off. See list here of IDL files that indicate these conditional events.
+
+page/DOMWindow.idl:#if defined(ENABLE_ORIENTATION_EVENTS) &amp;&amp; ENABLE_ORIENTATION_EVENTS
+page/DOMWindow.idl:    attribute EventListener onorientationchange;
+page/DOMWindow.idl:#endif
+page/DOMWindow.idl:    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
+page/DOMWindow.idl:    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
+page/DOMWindow.idl:    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
+page/DOMWindow.idl:    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
+page/DOMWindow.idl:    [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongesturestart;
+page/DOMWindow.idl:    [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongesturechange;
+page/DOMWindow.idl:    [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongestureend;
+page/DOMWindow.idl:    [Conditional=DEVICE_ORIENTATION] attribute EventListener ondevicemotion;
+page/DOMWindow.idl:    [Conditional=DEVICE_ORIENTATION] attribute EventListener ondeviceorientation;
+page/DOMWindow.idl:    [Conditional=PROXIMITY_EVENTS] attribute EventListener onwebkitdeviceproximity;
+page/DOMWindow.idl:    [Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealbottom;
+page/DOMWindow.idl:    [Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealleft;
+page/DOMWindow.idl:    [Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealright;
+page/DOMWindow.idl:    [Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealtop;
+
+dom/Document.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
+dom/Document.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
+dom/Document.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
+dom/Document.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
+dom/Document.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenchange;
+dom/Document.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenerror;
+dom/Document.idl:    [NotEnumerable, Conditional=POINTER_LOCK] attribute EventListener onpointerlockchange;
+dom/Document.idl:    [NotEnumerable, Conditional=POINTER_LOCK] attribute EventListener onpointerlockerror;
+dom/Document.idl:    [NotEnumerable, Conditional=CSP_NEXT] attribute EventListener onsecuritypolicyviolation;
+dom/Document.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealbottom;
+dom/Document.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealleft;
+dom/Document.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealright;
+dom/Document.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealtop;
+
+dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
+dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
+dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
+dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
+dom/Element.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenchange;
+dom/Element.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenerror;
+dom/Element.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealbottom;
+dom/Element.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealleft;
+dom/Element.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealright;
+dom/Element.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealtop;
+
+html/HTMLBodyElement.idl:    [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] attribute EventListener onorientationchange;
+
+html/HTMLFrameSetElement.idl:    [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] attribute EventListener onorientationchange;
+
+html/HTMLFormElement.idl:    [Conditional=REQUEST_AUTOCOMPLETE, NotEnumerable] attribute EventListener onautocomplete;
+html/HTMLFormElement.idl:    [Conditional=REQUEST_AUTOCOMPLETE, NotEnumerable] attribute EventListener onautocompleteerror;
+
+html/HTMLMediaElement.idl:    [Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2] attribute EventListener onwebkitneedkey;
+html/HTMLMediaElement.idl:    [Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitcurrentplaybacktargetiswirelesschanged;
+html/HTMLMediaElement.idl:    [Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitplaybacktargetavailabilitychanged;
+
+----------------
+
+It would be good to extend this test to cover more objects.
+See list below of IDL files that indicate objects have these attributes as of the writing of this test.
+
+Modules/battery/BatteryManager.idl:    attribute EventListener onchargingchange;
+Modules/battery/BatteryManager.idl:    attribute EventListener onchargingtimechange;
+Modules/battery/BatteryManager.idl:    attribute EventListener ondischargingtimechange;
+Modules/battery/BatteryManager.idl:    attribute EventListener onlevelchange;
+
+Modules/encryptedmedia/MediaKeySession.idl:    attribute EventListener onwebkitkeyadded;
+Modules/encryptedmedia/MediaKeySession.idl:    attribute EventListener onwebkitkeyerror;
+Modules/encryptedmedia/MediaKeySession.idl:    attribute EventListener onwebkitkeymessage;
+
+Modules/indexeddb/IDBDatabase.idl:    attribute EventListener onabort;
+Modules/indexeddb/IDBDatabase.idl:    attribute EventListener onerror;
+Modules/indexeddb/IDBDatabase.idl:    attribute EventListener onversionchange;
+
+Modules/indexeddb/IDBOpenDBRequest.idl:    attribute EventListener onblocked;
+Modules/indexeddb/IDBOpenDBRequest.idl:    attribute EventListener onupgradeneeded;
+
+Modules/indexeddb/IDBRequest.idl:    attribute EventListener onsuccess;
+Modules/indexeddb/IDBRequest.idl:    attribute EventListener onerror;
+
+Modules/indexeddb/IDBTransaction.idl:    attribute EventListener onabort;
+Modules/indexeddb/IDBTransaction.idl:    attribute EventListener oncomplete;
+Modules/indexeddb/IDBTransaction.idl:    attribute EventListener onerror;
+
+Modules/mediastream/MediaStream.idl:    attribute EventListener onactive;
+Modules/mediastream/MediaStream.idl:    attribute EventListener oninactive;
+Modules/mediastream/MediaStream.idl:    attribute EventListener onaddtrack;
+Modules/mediastream/MediaStream.idl:    attribute EventListener onremovetrack;
+Modules/mediastream/MediaStreamTrack.idl:    attribute EventListener onmute;
+Modules/mediastream/MediaStreamTrack.idl:    attribute EventListener onunmute;
+Modules/mediastream/MediaStreamTrack.idl:    attribute EventListener onstarted;
+Modules/mediastream/MediaStreamTrack.idl:    attribute EventListener onended;
+Modules/mediastream/MediaStreamTrack.idl:    attribute EventListener onoverconstrained;
+Modules/mediastream/RTCDTMFSender.idl:    attribute EventListener ontonechange;
+Modules/mediastream/RTCDataChannel.idl:    attribute EventListener onopen;
+Modules/mediastream/RTCDataChannel.idl:    attribute EventListener onerror;
+Modules/mediastream/RTCDataChannel.idl:    attribute EventListener onclose;
+Modules/mediastream/RTCDataChannel.idl:    attribute EventListener onmessage;
+Modules/mediastream/RTCPeerConnection.idl:    attribute EventListener onnegotiationneeded;
+Modules/mediastream/RTCPeerConnection.idl:    attribute EventListener onicecandidate;
+Modules/mediastream/RTCPeerConnection.idl:    attribute EventListener onsignalingstatechange;
+Modules/mediastream/RTCPeerConnection.idl:    attribute EventListener onaddstream;
+Modules/mediastream/RTCPeerConnection.idl:    attribute EventListener onremovestream;
+Modules/mediastream/RTCPeerConnection.idl:    attribute EventListener oniceconnectionstatechange;
+Modules/mediastream/RTCPeerConnection.idl:    attribute EventListener ondatachannel;
+
+Modules/notifications/Notification.idl:    attribute EventListener onshow;
+Modules/notifications/Notification.idl:    attribute EventListener ondisplay;
+Modules/notifications/Notification.idl:    attribute EventListener onerror;
+Modules/notifications/Notification.idl:    attribute EventListener onclose;
+Modules/notifications/Notification.idl:    attribute EventListener onclick;
+
+Modules/speech/SpeechSynthesisUtterance.idl:    attribute EventListener onstart;
+Modules/speech/SpeechSynthesisUtterance.idl:    attribute EventListener onend;
+Modules/speech/SpeechSynthesisUtterance.idl:    attribute EventListener onerror;
+Modules/speech/SpeechSynthesisUtterance.idl:    attribute EventListener onpause;
+Modules/speech/SpeechSynthesisUtterance.idl:    attribute EventListener onresume;
+Modules/speech/SpeechSynthesisUtterance.idl:    attribute EventListener onmark;
+Modules/speech/SpeechSynthesisUtterance.idl:    attribute EventListener onboundary;
+
+Modules/webaudio/AudioBufferSourceNode.idl:    attribute EventListener onended;
+Modules/webaudio/AudioContext.idl:    attribute EventListener oncomplete;
+Modules/webaudio/OscillatorNode.idl:    attribute EventListener onended;
+Modules/webaudio/ScriptProcessorNode.idl:    attribute EventListener onaudioprocess;
+
+Modules/websockets/WebSocket.idl:    attribute EventListener onopen;
+Modules/websockets/WebSocket.idl:    attribute EventListener onmessage;
+Modules/websockets/WebSocket.idl:    attribute EventListener onerror;
+Modules/websockets/WebSocket.idl:    attribute EventListener onclose;
+
+css/FontLoader.idl:    attribute EventListener onloading;
+css/FontLoader.idl:    attribute EventListener onloadingdone;
+css/FontLoader.idl:    attribute EventListener onloadstart;
+css/FontLoader.idl:    attribute EventListener onload;
+css/FontLoader.idl:    attribute EventListener onerror;
+
+dom/MessagePort.idl:    attribute EventListener onmessage;
+
+fileapi/FileReader.idl:    attribute EventListener onloadstart;
+fileapi/FileReader.idl:    attribute EventListener onprogress;
+fileapi/FileReader.idl:    attribute EventListener onload;
+fileapi/FileReader.idl:    attribute EventListener onabort;
+fileapi/FileReader.idl:    attribute EventListener onerror;
+fileapi/FileReader.idl:    attribute EventListener onloadend;
+
+html/track/AudioTrackList.idl:    attribute EventListener onchange;
+html/track/AudioTrackList.idl:    attribute EventListener onaddtrack;
+html/track/AudioTrackList.idl:    attribute EventListener onremovetrack;
+
+html/track/TextTrack.idl:             attribute EventListener oncuechange;
+html/track/TextTrackCue.idl:    attribute EventListener onenter;
+
+html/track/TextTrackCue.idl:    attribute EventListener onexit;
+html/track/TextTrackList.idl:    attribute EventListener onaddtrack;
+html/track/TextTrackList.idl:    attribute EventListener onchange;
+html/track/TextTrackList.idl:    attribute EventListener onremovetrack;
+
+html/track/VideoTrackList.idl:    attribute EventListener onchange;
+html/track/VideoTrackList.idl:    attribute EventListener onaddtrack;
+html/track/VideoTrackList.idl:    attribute EventListener onremovetrack;
+
+loader/appcache/DOMApplicationCache.idl:    attribute EventListener onchecking;
+loader/appcache/DOMApplicationCache.idl:    attribute EventListener onerror;
+loader/appcache/DOMApplicationCache.idl:    attribute EventListener onnoupdate;
+loader/appcache/DOMApplicationCache.idl:    attribute EventListener ondownloading;
+loader/appcache/DOMApplicationCache.idl:    attribute EventListener onprogress;
+loader/appcache/DOMApplicationCache.idl:    attribute EventListener onupdateready;
+loader/appcache/DOMApplicationCache.idl:    attribute EventListener oncached;
+loader/appcache/DOMApplicationCache.idl:    attribute EventListener onobsolete;
+
+page/EventSource.idl:    attribute EventListener onopen;
+page/EventSource.idl:    attribute EventListener onmessage;
+page/EventSource.idl:    attribute EventListener onerror;
+
+page/Performance.idl:    attribute EventListener onwebkitresourcetimingbufferfull;
+
+workers/AbstractWorker.idl:    attribute EventListener onerror;
+
+workers/DedicatedWorkerGlobalScope.idl:             attribute EventListener onmessage;
+
+workers/Worker.idl:    attribute EventListener onmessage;
+
+workers/WorkerGlobalScope.idl:    attribute EventListener onerror;
+workers/WorkerGlobalScope.idl:    attribute EventListener onoffline;
+workers/WorkerGlobalScope.idl:    attribute EventListener ononline;
+
+xml/XMLHttpRequest.idl:    attribute EventListener onabort;
+xml/XMLHttpRequest.idl:    attribute EventListener onerror;
+xml/XMLHttpRequest.idl:    attribute EventListener onload;
+xml/XMLHttpRequest.idl:    attribute EventListener onloadend;
+xml/XMLHttpRequest.idl:    attribute EventListener onloadstart;
+xml/XMLHttpRequest.idl:    attribute EventListener onprogress;
+xml/XMLHttpRequest.idl:    [Conditional=XHR_TIMEOUT] attribute EventListener ontimeout;
+xml/XMLHttpRequest.idl:    attribute EventListener onreadystatechange;
+
+xml/XMLHttpRequestUpload.idl:    attribute EventListener onabort;
+xml/XMLHttpRequestUpload.idl:    attribute EventListener onerror;
+xml/XMLHttpRequestUpload.idl:    attribute EventListener onload;
+xml/XMLHttpRequestUpload.idl:    attribute EventListener onloadend;
+xml/XMLHttpRequestUpload.idl:    attribute EventListener onloadstart;
+xml/XMLHttpRequestUpload.idl:    attribute EventListener onprogress;
+
+----------------
+
+*/
+
+&lt;/script&gt;
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre>
</div>
</div>

</body>
</html>