<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<script>
description("Test which event listeners are set up by event handler attributes (the ones with names like onclick).");

const unusualEventNames = {
    "webkitanimationend": "webkitAnimationEnd",
    "webkitanimationiteration": "webkitAnimationIteration",
    "webkitanimationstart": "webkitAnimationStart",
    "webkittransitionend": "webkitTransitionEnd",
};

const eventsInGlobalEventHandlers = [
    "abort",
    "animationend",
    "animationiteration",
    "animationstart",
    "blur",
    "canplay",
    "canplaythrough",
    "change",
    "click",
    "contextmenu",
    "dblclick",
    "drag",
    "dragend",
    "dragenter",
    "dragleave",
    "dragover",
    "dragstart",
    "drop",
    "durationchange",
    "emptied",
    "ended",
    "error",
    "focus",
    "input",
    "invalid",
    "keydown",
    "keypress",
    "keyup",
    "load",
    "loadeddata",
    "loadedmetadata",
    "loadstart",
    "mousedown",
    "mouseenter",
    "mouseleave",
    "mousemove",
    "mouseout",
    "mouseover",
    "mouseup",
    "mousewheel",
    "pause",
    "play",
    "playing",
    "progress",
    "ratechange",
    "reset",
    "resize",
    "scroll",
    "seeked",
    "seeking",
    "select",
    "selectionchange",
    "selectstart",
    "stalled",
    "submit",
    "suspend",
    "timeupdate",
    "transitionend",
    "volumechange",
    "waiting",
    "search",
    "wheel",
    "webkitanimationend",
    "webkitanimationiteration",
    "webkitanimationstart",
    "webkittransitionend"
];

const eventsInWindowEventHandlers = [
    "beforeunload",
    "hashchange",
    "message",
    "offline",
    "online",
    "pagehide",
    "pageshow",
    "popstate",
    "storage",
    "unload",
];

const elementAndDocumentEvents = [
    "beforecopy",
    "beforecut",
    "beforepaste",
    "copy",
    "cut",
    "paste"
];

const elementAndWindowEvents = [
    "webkitanimationend",
    "webkitanimationiteration",
    "webkitanimationstart",
    "webkittransitionend"
];

const uniqueDocumentEvents = [
    "readystatechange"
];

const uniqueElementEvents = [
    "beforeload"
];

const elementBodyAndFrameSetEvents = [
    "focusin",
    "focusout"
];

const bodyElementWindowForwardedEvents = [
    "beforeunload",
    "blur",
    "error",
    "focus",
    "focusin",
    "focusout",
    "hashchange",
    "load",
    "message",
    "offline",
    "online",
    "pagehide",
    "pageshow",
    "popstate",
    "resize",
    "storage",
    "unload",
];

const nonEventNames = [
    "noneventname",
];

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 && 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();

    sideEffect = capturedMagicNumber - 1;

    object.dispatchEvent(new Event(eventName));
    window.dispatchEvent(new Event(eventName));
    document.dispatchEvent(new Event(eventName));

    const misfire = sideEffect === capturedMagicNumber;

    var result;

    if (!handlerOnTarget && !handlerOnWindow && !handlerOnDocument)
        result = "none";
    else
        result = ((handlerOnTarget ? ", target" : "") + (handlerOnWindow ? ", window" : "") + (handlerOnDocument ? ", document" : "")).substring(2);

    if (misfire)
        result += ", remove failed";

    return result;
}

function testScriptAttribute(object, eventName)
{
    const attributeName = "on" + eventName;
    return testHandler(object, function(capturedMagicNumber) {
        object[attributeName] = function() { sideEffect = capturedMagicNumber };
    }, function() {
        object[attributeName] = null;
    }, eventName);
}

function testContentAttribute(element, eventName)
{
    const attributeName = "on" + eventName;
    return testHandler(element, function(capturedMagicNumber) {
        element.setAttribute(attributeName, "sideEffect = " + 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 "script: " + scriptAttributeResult + "; content: " + 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 < arguments.length; ++i)
        combined = combined.concat(arguments[i]);
    return sortUnique(combined);
}

function arrayDifference(a, b)
{
    return a.filter(function(item) {
        return b.indexOf(item) < 0;
    });
}

const windowEvents = arrayUnion(eventsInGlobalEventHandlers, eventsInWindowEventHandlers, elementAndWindowEvents);
const documentEvents = arrayUnion(eventsInGlobalEventHandlers, elementAndDocumentEvents, uniqueDocumentEvents);
const elementEvents = arrayUnion(eventsInGlobalEventHandlers, elementAndDocumentEvents, elementAndWindowEvents, elementBodyAndFrameSetEvents, uniqueElementEvents);

const allEventNames = arrayUnion(windowEvents, documentEvents, elementEvents, bodyElementWindowForwardedEvents, nonEventNames);

var sectionOpen = false;

function endSection()
{
    if (sectionOpen) {
        debug("");
        sectionOpen = false;
    }
}

function section(title)
{
    endSection();
    debug(title);
    debug("");
    sectionOpen = true;
}

function testArray(array, prefix, expected, sectionName)
{
    section(sectionName);
    for (var i = 0; i < array.length; ++i) {
        shouldBeEqualToString(prefix + ", \"" + array[i] + "\")", expected);
    }
}

var nonHTMLElement = document.createElementNS("foo", "foo");
var element = document.documentElement;
var bodyElement = document.body;
var audioElement = document.createElement("video");
var framesetElement = document.createElement("frameset");
var inputElement = document.createElement("input");
var videoElement = document.createElement("video");
var rectElement = document.createElementNS("http://www.w3.org/2000/svg", "rect");

testArray(windowEvents, "testScriptAttribute(window", "window", "Event names we expect to be able to set on the window object");
testArray(arrayDifference(allEventNames, windowEvents), "testScriptAttribute(window", "none", "Event names we expect not to be able to set on the window object");

testArray(documentEvents, "testScriptAttribute(document", "document", "Event names we expect to be able to set on the document");
testArray(arrayDifference(allEventNames, documentEvents), "testScriptAttribute(document", "none", "Event names we expect not to be able to set on the document");

testArray(elementEvents, "testElementAttribute(element", "target", "Event names we expect to be able to set on an element (tested on the &lt;html> element)");
testArray(arrayDifference(allEventNames, elementEvents), "testElementAttribute(element", "none", "Event names we expect not to be able to set on an element (tested on the &lt;html> element)");

testArray(elementEvents, "testElementAttribute(inputElement", "target", "Event names we expect to be able to set on an element (tested on the &lt;input> element)");
testArray(arrayDifference(allEventNames, elementEvents), "testElementAttribute(inputElement", "none", "Event names we expect not to be able to set on an element (tested on the &lt;input> element)");

testArray(elementEvents, "testElementAttribute(audioElement", "target", "Event names we expect to be able to set on an element (tested on the &lt;audio> element)");
testArray(arrayDifference(allEventNames, elementEvents), "testElementAttribute(audioElement", "none", "Event names we expect not to be able to set on an element (tested on the &lt;audio> element)");

testArray(elementEvents, "testElementAttribute(videoElement", "target", "Event names we expect to be able to set on an element (tested on the &lt;video> element)");
testArray(arrayDifference(allEventNames, elementEvents), "testElementAttribute(videoElement", "none", "Event names we expect not to be able to set on an element (tested on the &lt;video> element)");

testArray(bodyElementWindowForwardedEvents, "testElementAttribute(bodyElement", "window", "Event names we expect to be forwarded from &lt;body> element to window object)");
testArray(arrayDifference(elementEvents, bodyElementWindowForwardedEvents), "testElementAttribute(bodyElement", "target", "Non-forwarded event names on &lt;body> element");
testArray(arrayDifference(allEventNames, arrayUnion(elementEvents, bodyElementWindowForwardedEvents)), "testElementAttribute(bodyElement", "none", "Event names we expect to not be able to set on &lt;body> element");

testArray(bodyElementWindowForwardedEvents, "testElementAttribute(framesetElement", "window", "Event names we expect to be forwarded from &lt;frameset> element to window object)");
testArray(arrayDifference(elementEvents, bodyElementWindowForwardedEvents), "testElementAttribute(framesetElement", "target", "Non-forwarded event names on &lt;frameset> element");
testArray(arrayDifference(allEventNames, arrayUnion(elementEvents, bodyElementWindowForwardedEvents)), "testElementAttribute(framesetElement", "none", "Event names we expect to not be able to set on &lt;frameset> element");

testArray(elementEvents, "testElementAttribute(rectElement", "target", "Event names we expect to be able to set on an element (tested on the SVG &lt;rect> element)");
testArray(arrayDifference(allEventNames, elementEvents), "testElementAttribute(rectElement", "none", "Event names we expect not to be able to set on an element (tested on the SVG &lt;rect> element)");

testArray(allEventNames, "testElementAttribute(nonHTMLElement", "none", "Event names on a non-HTML element");

section("onselectionchange IDL attribute doesn't forward event listeners from &lt;body> element to document");

document.body.onselectionchange = function() {};
shouldBe("document.onselectionchange", "null");

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 include these conditional events.

html/HTMLBodyElement.idl:    [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] attribute EventListener onorientationchange;

html/HTMLFrameSetElement.idl:    [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] attribute EventListener onorientationchange;

----------------

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/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/DOMWindow.idl:    [NotEnumerable, Conditional=DEVICE_ORIENTATION] attribute EventHandler ondevicemotion;
page/DOMWindow.idl:    [NotEnumerable, Conditional=DEVICE_ORIENTATION] attribute EventHandler ondeviceorientation;
page/DOMWindow.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchcancel;
page/DOMWindow.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchend;
page/DOMWindow.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchmove;
page/DOMWindow.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchstart;
page/DOMWindow.idl:    [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturechange;
page/DOMWindow.idl:    [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongestureend;
page/DOMWindow.idl:    [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturestart;
page/DOMWindow.idl:    [NotEnumerable, Conditional=ORIENTATION_EVENTS] attribute EventHandler onorientationchange;
page/DOMWindow.idl:    [NotEnumerable, Conditional=PROXIMITY_EVENTS] attribute EventHandler onwebkitdeviceproximity;
page/DOMWindow.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcecancelled;
page/DOMWindow.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcechanged;
page/DOMWindow.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforceclick;
page/DOMWindow.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcedown;
page/DOMWindow.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforceup;
page/DOMWindow.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcewillbegin;
 
dom/Document.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchcancel;
dom/Document.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchend;
dom/Document.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchmove;
dom/Document.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchstart;
dom/Document.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcecancelled;
dom/Document.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcechanged;
dom/Document.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforceclick;
dom/Document.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcedown;
dom/Document.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforceup;
dom/Document.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcewillbegin;
dom/Document.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenchange;
dom/Document.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenerror;
dom/Document.idl:    [NotEnumerable, Conditional=POINTER_LOCK] attribute EventHandler onpointerlockchange;
dom/Document.idl:    [NotEnumerable, Conditional=POINTER_LOCK] attribute EventHandler onpointerlockerror;
 
dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchcancel;
dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchend;
dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchmove;
dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventHandler ontouchstart;
dom/Element.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcecancelled;
dom/Element.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcechanged;
dom/Element.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforceclick;
dom/Element.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcedown;
dom/Element.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforcewillbegin;
dom/Element.idl:    [NotEnumerable, Conditional=MOUSE_FORCE_EVENTS] attribute EventHandler onwebkitmouseforceup;
dom/Element.idl:    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventHandler onwebkitkeyadded;
dom/Element.idl:    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventHandler onwebkitkeyerror;
dom/Element.idl:    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventHandler onwebkitkeymessage;
dom/Element.idl:    [NotEnumerable, Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2] attribute EventHandler onwebkitneedkey;
dom/Element.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenchange;
dom/Element.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenerror;
dom/Element.idl:    [NotEnumerable, Conditional=REQUEST_AUTOCOMPLETE] attribute EventHandler onautocomplete;
dom/Element.idl:    [NotEnumerable, Conditional=REQUEST_AUTOCOMPLETE] attribute EventHandler onautocompleteerror;
dom/Element.idl:    [NotEnumerable, Conditional=VIDEO_PRESENTATION_MODE] attribute EventHandler onwebkitpresentationmodechanged;
dom/Element.idl:    [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitcurrentplaybacktargetiswirelesschanged;
dom/Element.idl:    [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitplaybacktargetavailabilitychanged;

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;

----------------

*/

</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
