Source code

Revision control

Copy as Markdown

Other Tools

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
* This file contains the list of event names that are exposed via IDL
* on various objects. It is designed to be used as inline input to
* various consumers through the magic of C preprocessing.
*
* Each entry consists of 4 pieces of information:
* 1) The name of the event
* 2) The event message
* 3) The event type (see the EventNameType enum in nsContentUtils.h)
* 4) The event struct type for this event.
* Items 2-4 might be empty strings for events for which they don't make sense.
*
* Event names that are exposed as content attributes on HTML elements
* and as IDL attributes on Elements, Documents and Windows and have
* no forwarding behavior should be enclosed in the EVENT macro.
*
* Event names that are exposed as content attributes on HTML elements
* and as IDL attributes on Elements, Documents and Windows and are
* forwarded from <body> and <frameset> to the Window should be
* enclosed in the FORWARDED_EVENT macro. If this macro is not
* defined, it will be defined to be equivalent to EVENT.
*
* Event names that are exposed as IDL attributes on Windows only
* should be enclosed in the WINDOW_ONLY_EVENT macro. If this macro
* is not defined, it will be defined to the empty string.
*
* Event names that are exposed as content and IDL attributes on
* <body> and <frameset>, which forward them to the Window, and are
* exposed as IDL attributes on the Window should be enclosed in the
* WINDOW_EVENT macro. If this macro is not defined, it will be
* defined to be equivalent to WINDOW_ONLY_EVENT.
*
* Touch-specific event names should be enclosed in TOUCH_EVENT. They
* are otherwise equivalent to those enclosed in EVENT. If
* TOUCH_EVENT is not defined, it will be defined to the empty string.
*
* Event names that are only exposed as IDL attributes on Documents
* should be enclosed in the DOCUMENT_ONLY_EVENT macro. If this macro is
* not defined, it will be defined to the empty string.
*
* Event names that are not exposed as IDL attributes at all should be
* enclosed in NON_IDL_EVENT. If NON_IDL_EVENT is not defined, it
* will be defined to the empty string.
*
* If you change which macros event names are enclosed in, please
* update the tests for bug 689564 and bug 659350 as needed.
*/
#ifdef MESSAGE_TO_EVENT
# ifdef EVENT
# error "Don't define EVENT"
# endif /* EVENT */
# ifdef WINDOW_ONLY_EVENT
# error "Don't define WINDOW_ONLY_EVENT"
# endif /* WINDOW_ONLY_EVENT */
# ifdef TOUCH_EVENT
# error "Don't define TOUCH_EVENT"
# endif /* TOUCH_EVENT */
# ifdef DOCUMENT_ONLY_EVENT
# error "Don't define DOCUMENT_ONLY_EVENT"
# endif /* DOCUMENT_ONLY_EVENT */
# ifdef NON_IDL_EVENT
# error "Don't define NON_IDL_EVENT"
# endif /* NON_IDL_EVENT */
# define EVENT MESSAGE_TO_EVENT
# define WINDOW_ONLY_EVENT MESSAGE_TO_EVENT
# define TOUCH_EVENT MESSAGE_TO_EVENT
# define DOCUMENT_ONLY_EVENT MESSAGE_TO_EVENT
# define NON_IDL_EVENT MESSAGE_TO_EVENT
#endif /* MESSAGE_TO_EVENT */
#ifdef DEFINED_FORWARDED_EVENT
# error "Don't define DEFINED_FORWARDED_EVENT"
#endif /* DEFINED_FORWARDED_EVENT */
#ifndef FORWARDED_EVENT
# define FORWARDED_EVENT EVENT
# define DEFINED_FORWARDED_EVENT
#endif /* FORWARDED_EVENT */
#ifdef DEFINED_WINDOW_ONLY_EVENT
# error "Don't define DEFINED_WINDOW_ONLY_EVENT"
#endif /* DEFINED_WINDOW_ONLY_EVENT */
#ifndef WINDOW_ONLY_EVENT
# define WINDOW_ONLY_EVENT(_name, _message, _type, _struct)
# define DEFINED_WINDOW_ONLY_EVENT
#endif /* WINDOW_ONLY_EVENT */
#ifdef DEFINED_WINDOW_EVENT
# error "Don't define DEFINED_WINDOW_EVENT"
#endif /* DEFINED_WINDOW_EVENT */
#ifndef WINDOW_EVENT
# define WINDOW_EVENT WINDOW_ONLY_EVENT
# define DEFINED_WINDOW_EVENT
#endif /* WINDOW_EVENT */
#ifdef DEFINED_TOUCH_EVENT
# error "Don't define DEFINED_TOUCH_EVENT"
#endif /* DEFINED_TOUCH_EVENT */
#ifndef TOUCH_EVENT
# define TOUCH_EVENT(_name, _message, _type, _struct)
# define DEFINED_TOUCH_EVENT
#endif /* TOUCH_EVENT */
#ifdef DEFINED_DOCUMENT_ONLY_EVENT
# error "Don't define DEFINED_DOCUMENT_ONLY_EVENT"
#endif /* DEFINED_DOCUMENT_ONLY_EVENT */
#ifndef DOCUMENT_ONLY_EVENT
# define DOCUMENT_ONLY_EVENT(_name, _message, _type, _struct)
# define DEFINED_DOCUMENT_ONLY_EVENT
#endif /* DOCUMENT_ONLY_EVENT */
#ifdef DEFINED_NON_IDL_EVENT
# error "Don't define DEFINED_NON_IDL_EVENT"
#endif /* DEFINED_NON_IDL_EVENT */
#ifndef NON_IDL_EVENT
# define NON_IDL_EVENT(_name, _message, _type, _struct)
# define DEFINED_NON_IDL_EVENT
#endif /* NON_IDL_EVENT */
#ifdef DEFINED_ERROR_EVENT
# error "Don't define DEFINED_ERROR_EVENT"
#endif /* DEFINED_ERROR_EVENT */
#ifndef ERROR_EVENT
# define ERROR_EVENT FORWARDED_EVENT
# define DEFINED_ERROR_EVENT
#endif /* ERROR_EVENT */
#ifdef DEFINED_BEFOREUNLOAD_EVENT
# error "Don't define DEFINED_BEFOREUNLOAD_EVENT"
#endif /* DEFINED_BEFOREUNLOAD_EVENT */
#ifndef BEFOREUNLOAD_EVENT
# define BEFOREUNLOAD_EVENT WINDOW_EVENT
# define DEFINED_BEFOREUNLOAD_EVENT
#endif /* BEFOREUNLOAD_EVENT */
EVENT(abort, eImageAbort, EventNameType_All, eBasicEventClass)
EVENT(beforetoggle, eBeforeToggle, EventNameType_HTMLXUL, eBasicEventClass)
EVENT(cancel, eCancel, EventNameType_HTMLXUL, eBasicEventClass)
EVENT(canplay, eCanPlay, EventNameType_HTML, eBasicEventClass)
EVENT(canplaythrough, eCanPlayThrough, EventNameType_HTML, eBasicEventClass)
EVENT(change, eFormChange, EventNameType_HTMLXUL, eBasicEventClass)
EVENT(CheckboxStateChange, eFormCheckboxStateChange, EventNameType_None,
eBasicEventClass)
EVENT(RadioStateChange, eFormRadioStateChange, EventNameType_None,
eBasicEventClass)
EVENT(auxclick, eMouseAuxClick, EventNameType_All, eMouseEventClass)
EVENT(click, eMouseClick, EventNameType_All, eMouseEventClass)
EVENT(close, eClose, EventNameType_HTMLXUL, eBasicEventClass)
EVENT(contextmenu, eContextMenu,
EventNameType_HTMLXUL | EventNameType_SVGGraphic, eMouseEventClass)
NON_IDL_EVENT(mouselongtap, eMouseLongTap, EventNameType_HTMLXUL,
eMouseEventClass)
EVENT(cuechange, eCueChange, EventNameType_All, eBasicEventClass)
EVENT(dblclick, eMouseDoubleClick, EventNameType_HTMLXUL, eMouseEventClass)
EVENT(drag, eDrag, EventNameType_HTMLXUL, eDragEventClass)
EVENT(dragend, eDragEnd, EventNameType_HTMLXUL, eDragEventClass)
EVENT(dragenter, eDragEnter, EventNameType_HTMLXUL, eDragEventClass)
EVENT(dragexit, eDragExit, EventNameType_HTMLXUL, eDragEventClass)
EVENT(dragleave, eDragLeave, EventNameType_HTMLXUL, eDragEventClass)
EVENT(dragover, eDragOver, EventNameType_HTMLXUL, eDragEventClass)
EVENT(dragstart, eDragStart, EventNameType_HTMLXUL, eDragEventClass)
EVENT(drop, eDrop, EventNameType_HTMLXUL, eDragEventClass)
EVENT(durationchange, eDurationChange, EventNameType_HTML, eBasicEventClass)
EVENT(emptied, eEmptied, EventNameType_HTML, eBasicEventClass)
EVENT(ended, eEnded, EventNameType_HTML, eBasicEventClass)
EVENT(formdata, eFormData, EventNameType_HTML, eBasicEventClass)
EVENT(fullscreenchange, eFullscreenChange, EventNameType_HTML, eBasicEventClass)
EVENT(fullscreenerror, eFullscreenError, EventNameType_HTML, eBasicEventClass)
EVENT(beforeinput, eEditorBeforeInput, EventNameType_HTMLXUL,
eEditorInputEventClass)
EVENT(input, eEditorInput, EventNameType_HTMLXUL, eEditorInputEventClass)
EVENT(invalid, eFormInvalid, EventNameType_HTMLXUL, eBasicEventClass)
EVENT(keydown, eKeyDown, EventNameType_HTMLXUL, eKeyboardEventClass)
EVENT(keypress, eKeyPress, EventNameType_HTMLXUL, eKeyboardEventClass)
EVENT(keyup, eKeyUp, EventNameType_HTMLXUL, eKeyboardEventClass)
NON_IDL_EVENT(mozaccesskeynotfound, eAccessKeyNotFound, EventNameType_None,
eKeyboardEventClass)
EVENT(loadeddata, eLoadedData, EventNameType_HTML, eBasicEventClass)
EVENT(loadedmetadata, eLoadedMetaData, EventNameType_HTML, eBasicEventClass)
EVENT(loadend, eLoadEnd, EventNameType_HTML, eBasicEventClass)
EVENT(loadstart, eLoadStart, EventNameType_HTML, eBasicEventClass)
EVENT(mousedown, eMouseDown, EventNameType_All, eMouseEventClass)
EVENT(mouseenter, eMouseEnter, EventNameType_All, eMouseEventClass)
EVENT(mouseleave, eMouseLeave, EventNameType_All, eMouseEventClass)
EVENT(mousemove, eMouseMove, EventNameType_All, eMouseEventClass)
EVENT(mouseout, eMouseOut, EventNameType_All, eMouseEventClass)
EVENT(mouseover, eMouseOver, EventNameType_All, eMouseEventClass)
EVENT(mouseup, eMouseUp, EventNameType_All, eMouseEventClass)
EVENT(mozfullscreenchange, eMozFullscreenChange, EventNameType_HTML,
eBasicEventClass)
EVENT(mozfullscreenerror, eMozFullscreenError, EventNameType_HTML,
eBasicEventClass)
EVENT(mozpointerlockchange, eMozPointerLockChange, EventNameType_HTML,
eBasicEventClass)
EVENT(mozpointerlockerror, eMozPointerLockError, EventNameType_HTML,
eBasicEventClass)
EVENT(pointerlockchange, ePointerLockChange, EventNameType_HTML,
eBasicEventClass)
EVENT(pointerlockerror, ePointerLockError, EventNameType_HTML, eBasicEventClass)
EVENT(pointerdown, ePointerDown, EventNameType_All, ePointerEventClass)
EVENT(pointermove, ePointerMove, EventNameType_All, ePointerEventClass)
EVENT(pointerup, ePointerUp, EventNameType_All, ePointerEventClass)
EVENT(pointercancel, ePointerCancel, EventNameType_All, ePointerEventClass)
EVENT(pointerover, ePointerOver, EventNameType_All, ePointerEventClass)
EVENT(pointerout, ePointerOut, EventNameType_All, ePointerEventClass)
EVENT(pointerenter, ePointerEnter, EventNameType_All, ePointerEventClass)
EVENT(pointerleave, ePointerLeave, EventNameType_All, ePointerEventClass)
EVENT(gotpointercapture, ePointerGotCapture, EventNameType_All,
ePointerEventClass)
EVENT(lostpointercapture, ePointerLostCapture, EventNameType_All,
ePointerEventClass)
EVENT(selectstart, eSelectStart, EventNameType_HTMLXUL, eBasicEventClass)
NON_IDL_EVENT(textInput, eLegacyTextInput, EventNameType_None,
eLegacyTextEventClass)
EVENT(contextlost, eContextLost, EventNameType_HTML, eBasicEventClass)
EVENT(contextrestored, eContextRestored, EventNameType_HTML, eBasicEventClass)
// Not supported yet; probably never because "wheel" is a better idea.
// EVENT(mousewheel)
EVENT(pause, ePause, EventNameType_HTML, eBasicEventClass)
EVENT(play, ePlay, EventNameType_HTML, eBasicEventClass)
EVENT(playing, ePlaying, EventNameType_HTML, eBasicEventClass)
EVENT(progress, eProgress, EventNameType_HTML, eBasicEventClass)
EVENT(ratechange, eRateChange, EventNameType_HTML, eBasicEventClass)
EVENT(reset, eFormReset, EventNameType_HTMLXUL, eBasicEventClass)
EVENT(securitypolicyviolation, eSecurityPolicyViolation, EventNameType_All,
eBasicEventClass)
EVENT(seeked, eSeeked, EventNameType_HTML, eBasicEventClass)
EVENT(seeking, eSeeking, EventNameType_HTML, eBasicEventClass)
EVENT(select, eFormSelect, EventNameType_HTMLXUL, eBasicEventClass)
EVENT(slotchange, eSlotChange, EventNameType_All, eBasicEventClass)
EVENT(stalled, eStalled, EventNameType_HTML, eBasicEventClass)
EVENT(submit, eFormSubmit, EventNameType_HTMLXUL, eBasicEventClass)
EVENT(suspend, eSuspend, EventNameType_HTML, eBasicEventClass)
EVENT(timeupdate, eTimeUpdate, EventNameType_HTML, eBasicEventClass)
EVENT(toggle, eToggle, EventNameType_HTML, eBasicEventClass)
EVENT(volumechange, eVolumeChange, EventNameType_HTML, eBasicEventClass)
EVENT(waiting, eWaiting, EventNameType_HTML, eBasicEventClass)
EVENT(wheel, eWheel, EventNameType_All, eWheelEventClass)
EVENT(copy, eCopy, EventNameType_HTMLXUL | EventNameType_SVGGraphic,
eClipboardEventClass)
EVENT(cut, eCut, EventNameType_HTMLXUL | EventNameType_SVGGraphic,
eClipboardEventClass)
EVENT(paste, ePaste, EventNameType_HTMLXUL | EventNameType_SVGGraphic,
eClipboardEventClass)
// Gecko-specific extensions that apply to elements
EVENT(beforescriptexecute, eBeforeScriptExecute, EventNameType_HTMLXUL,
eBasicEventClass)
EVENT(afterscriptexecute, eAfterScriptExecute, EventNameType_HTMLXUL,
eBasicEventClass)
FORWARDED_EVENT(blur, eBlur, EventNameType_HTMLXUL, eFocusEventClass)
ERROR_EVENT(error, eLoadError, EventNameType_All, eBasicEventClass)
FORWARDED_EVENT(focus, eFocus, EventNameType_HTMLXUL, eFocusEventClass)
FORWARDED_EVENT(focusin, eFocusIn, EventNameType_HTMLXUL, eFocusEventClass)
FORWARDED_EVENT(focusout, eFocusOut, EventNameType_HTMLXUL, eFocusEventClass)
FORWARDED_EVENT(load, eLoad, EventNameType_All, eBasicEventClass)
FORWARDED_EVENT(resize, eResize, EventNameType_All, eBasicEventClass)
FORWARDED_EVENT(scroll, eScroll, (EventNameType_HTMLXUL | EventNameType_SVGSVG),
eBasicEventClass)
NON_IDL_EVENT(mozvisualresize, eMozVisualResize, EventNameType_None,
eBasicEventClass)
NON_IDL_EVENT(mozvisualscroll, eMozVisualScroll, EventNameType_None,
eBasicEventClass)
WINDOW_EVENT(afterprint, eAfterPrint,
EventNameType_XUL | EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(beforeprint, eBeforePrint,
EventNameType_XUL | EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
BEFOREUNLOAD_EVENT(beforeunload, eBeforeUnload,
EventNameType_XUL | EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(hashchange, eHashChange,
EventNameType_XUL | EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(languagechange, eLanguageChange,
EventNameType_HTMLBodyOrFramesetOnly, eBasicEventClass)
// XXXbz Should the onmessage attribute on <body> really not work? If so, do we
// need a different macro to flag things like that (IDL, but not content
// attributes on body/frameset), or is just using EventNameType_None enough?
WINDOW_EVENT(message, eMessage, EventNameType_None, eBasicEventClass)
WINDOW_EVENT(rtctransform, eRTCTransform, EventNameType_None, eBasicEventClass)
WINDOW_EVENT(messageerror, eMessageError, EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(offline, eOffline,
EventNameType_XUL | EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(online, eOnline,
EventNameType_XUL | EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
#if defined(MOZ_WIDGET_ANDROID)
WINDOW_EVENT(orientationchange, eOrientationChange,
EventNameType_HTMLBodyOrFramesetOnly, eBasicEventClass)
#endif
WINDOW_EVENT(pagehide, ePageHide, EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(pageshow, ePageShow, EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(popstate, ePopState,
EventNameType_XUL | EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(rejectionhandled, eRejectionHandled,
EventNameType_HTMLBodyOrFramesetOnly, eBasicEventClass)
WINDOW_EVENT(storage, eStorage, EventNameType_HTMLBodyOrFramesetOnly,
eBasicEventClass)
WINDOW_EVENT(unhandledrejection, eUnhandledRejection,
EventNameType_HTMLBodyOrFramesetOnly, eBasicEventClass)
WINDOW_EVENT(unload, eUnload,
(EventNameType_XUL | EventNameType_SVGSVG |
EventNameType_HTMLBodyOrFramesetOnly),
eBasicEventClass)
WINDOW_ONLY_EVENT(devicemotion, eDeviceMotion, EventNameType_None,
eBasicEventClass)
WINDOW_ONLY_EVENT(deviceorientation, eDeviceOrientation, EventNameType_None,
eBasicEventClass)
WINDOW_ONLY_EVENT(deviceorientationabsolute, eDeviceOrientationAbsolute,
EventNameType_None, eBasicEventClass)
WINDOW_ONLY_EVENT(userproximity, eUserProximity, EventNameType_None,
eBasicEventClass)
WINDOW_ONLY_EVENT(devicelight, eDeviceLight, EventNameType_None,
eBasicEventClass)
WINDOW_ONLY_EVENT(vrdisplayactivate, eVRDisplayActivate, EventNameType_None,
eBasicEventClass)
WINDOW_ONLY_EVENT(vrdisplaydeactivate, eVRDisplayDeactivate, EventNameType_None,
eBasicEventClass)
WINDOW_ONLY_EVENT(vrdisplayconnect, eVRDisplayConnect, EventNameType_None,
eBasicEventClass)
WINDOW_ONLY_EVENT(vrdisplaydisconnect, eVRDisplayDisconnect, EventNameType_None,
eBasicEventClass)
WINDOW_ONLY_EVENT(vrdisplaypresentchange, eVRDisplayPresentChange,
EventNameType_None, eBasicEventClass)
TOUCH_EVENT(touchstart, eTouchStart, EventNameType_All, eTouchEventClass)
TOUCH_EVENT(touchend, eTouchEnd, EventNameType_All, eTouchEventClass)
TOUCH_EVENT(touchmove, eTouchMove, EventNameType_All, eTouchEventClass)
TOUCH_EVENT(touchcancel, eTouchCancel, EventNameType_All, eTouchEventClass)
DOCUMENT_ONLY_EVENT(readystatechange, eReadyStateChange, EventNameType_HTMLXUL,
eBasicEventClass)
EVENT(selectionchange, eSelectionChange, EventNameType_HTMLXUL,
eBasicEventClass)
DOCUMENT_ONLY_EVENT(visibilitychange, eVisibilityChange, EventNameType_HTMLXUL,
eBasicEventClass)
NON_IDL_EVENT(MozMouseHittest, eMouseHitTest, EventNameType_None,
eMouseEventClass)
NON_IDL_EVENT(MozMouseExploreByTouch, eMouseExploreByTouch, EventNameType_None,
eMouseEventClass)
NON_IDL_EVENT(DOMAttrModified, eLegacyAttrModified, EventNameType_HTMLXUL,
eMutationEventClass)
NON_IDL_EVENT(DOMCharacterDataModified, eLegacyCharacterDataModified,
EventNameType_HTMLXUL, eMutationEventClass)
NON_IDL_EVENT(DOMNodeInserted, eLegacyNodeInserted, EventNameType_HTMLXUL,
eMutationEventClass)
NON_IDL_EVENT(DOMNodeRemoved, eLegacyNodeRemoved, EventNameType_HTMLXUL,
eMutationEventClass)
NON_IDL_EVENT(DOMNodeInsertedIntoDocument, eLegacyNodeInsertedIntoDocument,
EventNameType_HTMLXUL, eMutationEventClass)
NON_IDL_EVENT(DOMNodeRemovedFromDocument, eLegacyNodeRemovedFromDocument,
EventNameType_HTMLXUL, eMutationEventClass)
NON_IDL_EVENT(DOMSubtreeModified, eLegacySubtreeModified, EventNameType_HTMLXUL,
eMutationEventClass)
NON_IDL_EVENT(DOMActivate, eLegacyDOMActivate, EventNameType_HTMLXUL,
eUIEventClass)
NON_IDL_EVENT(DOMFocusIn, eLegacyDOMFocusIn, EventNameType_HTMLXUL,
eUIEventClass)
NON_IDL_EVENT(DOMFocusOut, eLegacyDOMFocusOut, EventNameType_HTMLXUL,
eUIEventClass)
NON_IDL_EVENT(DOMMouseScroll, eLegacyMouseLineOrPageScroll,
EventNameType_HTMLXUL, eMouseScrollEventClass)
NON_IDL_EVENT(MozMousePixelScroll, eLegacyMousePixelScroll,
EventNameType_HTMLXUL, eMouseScrollEventClass)
NON_IDL_EVENT(open, eOpen, EventNameType_None, eBasicEventClass)
NON_IDL_EVENT(dataavailable, eMediaRecorderDataAvailable, EventNameType_None,
eBasicEventClass)
NON_IDL_EVENT(stop, eMediaRecorderStop, EventNameType_None, eBasicEventClass)
NON_IDL_EVENT(warning, eMediaRecorderWarning, EventNameType_None,
eBasicEventClass)
// Events that only have on* attributes on XUL elements
// "text" event is legacy event for modifying composition string in EditorBase.
// This shouldn't be used by web/xul apps. "compositionupdate" should be
// used instead.
NON_IDL_EVENT(text, eCompositionChange, EventNameType_XUL,
eCompositionEventClass)
NON_IDL_EVENT(compositionstart, eCompositionStart, EventNameType_XUL,
eCompositionEventClass)
NON_IDL_EVENT(compositionupdate, eCompositionUpdate, EventNameType_XUL,
eCompositionEventClass)
NON_IDL_EVENT(compositionend, eCompositionEnd, EventNameType_XUL,
eCompositionEventClass)
NON_IDL_EVENT(command, eXULCommand, EventNameType_XUL, eInputEventClass)
NON_IDL_EVENT(popupshowing, eXULPopupShowing, EventNameType_XUL,
eBasicEventClass)
NON_IDL_EVENT(popupshown, eXULPopupShown, EventNameType_XUL, eBasicEventClass)
NON_IDL_EVENT(popuphiding, eXULPopupHiding, EventNameType_XUL, eBasicEventClass)
NON_IDL_EVENT(popuphidden, eXULPopupHidden, EventNameType_XUL, eBasicEventClass)
NON_IDL_EVENT(broadcast, eXULBroadcast, EventNameType_XUL, eBasicEventClass)
NON_IDL_EVENT(commandupdate, eXULCommandUpdate, EventNameType_XUL,
eBasicEventClass)
NON_IDL_EVENT(overflow, eScrollPortOverflow, EventNameType_XUL,
eBasicEventClass)
NON_IDL_EVENT(underflow, eScrollPortUnderflow, EventNameType_XUL,
eBasicEventClass)
NON_IDL_EVENT(systemstatusbarclick, eXULSystemStatusBarClick, EventNameType_XUL,
eBasicEventClass)
// Various SVG events
NON_IDL_EVENT(SVGLoad, eSVGLoad, EventNameType_None, eBasicEventClass)
NON_IDL_EVENT(SVGScroll, eSVGScroll, EventNameType_None, eBasicEventClass)
// The three SMIL animation events. We mark these as NON_IDL_EVENT even though
// there exist IDL properties for them, because the IDL properties have
// different names (onbegin/onend/onrepeat rather than
// onbeginEvent/onendEvent/onrepeatEvent).
// And we use EventNameType_None because we don't want IsEventAttributeName to
// return true for onbeginEvent etc.
NON_IDL_EVENT(beginEvent, eSMILBeginEvent, EventNameType_None,
eSMILTimeEventClass)
NON_IDL_EVENT(endEvent, eSMILEndEvent, EventNameType_None, eSMILTimeEventClass)
NON_IDL_EVENT(repeatEvent, eSMILRepeatEvent, EventNameType_None,
eSMILTimeEventClass)
#ifndef MESSAGE_TO_EVENT
// Repeat the SMIL animation events once more without the Event suffix,
// so that IsEventAttributeName() will return the right thing for these events.
// We use eUnidentifiedEvent here so that we don't accidentally treat these
// as alternate event names for the actual events.
// See bug 1845422 for cleaning this up.
NON_IDL_EVENT(begin, eUnidentifiedEvent, EventNameType_SMIL,
eSMILTimeEventClass)
NON_IDL_EVENT(end, eUnidentifiedEvent, EventNameType_SMIL, eSMILTimeEventClass)
NON_IDL_EVENT(repeat, eUnidentifiedEvent, EventNameType_SMIL,
eSMILTimeEventClass)
#endif
NON_IDL_EVENT(MozAfterPaint, eAfterPaint, EventNameType_None, eBasicEventClass)
NON_IDL_EVENT(MozScrolledAreaChanged, eScrolledAreaChanged, EventNameType_None,
eScrollAreaEventClass)
NON_IDL_EVENT(gamepadbuttondown, eGamepadButtonDown, EventNameType_None,
eBasicEventClass)
NON_IDL_EVENT(gamepadbuttonup, eGamepadButtonUp, EventNameType_None,
eBasicEventClass)
NON_IDL_EVENT(gamepadaxismove, eGamepadAxisMove, EventNameType_None,
eBasicEventClass)
WINDOW_EVENT(gamepadconnected, eGamepadConnected, EventNameType_None,
eBasicEventClass)
WINDOW_EVENT(gamepaddisconnected, eGamepadDisconnected, EventNameType_None,
eBasicEventClass)
// Simple gesture events
NON_IDL_EVENT(MozSwipeGestureMayStart, eSwipeGestureMayStart,
EventNameType_None, eSimpleGestureEventClass)
NON_IDL_EVENT(MozSwipeGestureStart, eSwipeGestureStart, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozSwipeGestureUpdate, eSwipeGestureUpdate, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozSwipeGestureEnd, eSwipeGestureEnd, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozSwipeGesture, eSwipeGesture, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozMagnifyGestureStart, eMagnifyGestureStart, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozMagnifyGestureUpdate, eMagnifyGestureUpdate,
EventNameType_None, eSimpleGestureEventClass)
NON_IDL_EVENT(MozMagnifyGesture, eMagnifyGesture, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozRotateGestureStart, eRotateGestureStart, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozRotateGestureUpdate, eRotateGestureUpdate, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozRotateGesture, eRotateGesture, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozTapGesture, eTapGesture, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozPressTapGesture, ePressTapGesture, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozEdgeUIStarted, eEdgeUIStarted, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozEdgeUICanceled, eEdgeUICanceled, EventNameType_None,
eSimpleGestureEventClass)
NON_IDL_EVENT(MozEdgeUICompleted, eEdgeUICompleted, EventNameType_None,
eSimpleGestureEventClass)
// CSS Transition & Animation events:
EVENT(transitionstart, eTransitionStart, EventNameType_All,
eTransitionEventClass)
EVENT(transitionrun, eTransitionRun, EventNameType_All, eTransitionEventClass)
EVENT(transitionend, eTransitionEnd, EventNameType_All, eTransitionEventClass)
EVENT(transitioncancel, eTransitionCancel, EventNameType_All,
eTransitionEventClass)
EVENT(animationstart, eAnimationStart, EventNameType_All, eAnimationEventClass)
EVENT(animationend, eAnimationEnd, EventNameType_All, eAnimationEventClass)
EVENT(animationiteration, eAnimationIteration, EventNameType_All,
eAnimationEventClass)
EVENT(animationcancel, eAnimationCancel, EventNameType_All,
eAnimationEventClass)
// Webkit-prefixed versions of Transition & Animation events, for web compat:
EVENT(webkitAnimationEnd, eWebkitAnimationEnd, EventNameType_All,
eAnimationEventClass)
EVENT(webkitAnimationIteration, eWebkitAnimationIteration, EventNameType_All,
eAnimationEventClass)
EVENT(webkitAnimationStart, eWebkitAnimationStart, EventNameType_All,
eAnimationEventClass)
EVENT(webkitTransitionEnd, eWebkitTransitionEnd, EventNameType_All,
eTransitionEventClass)
#ifndef MESSAGE_TO_EVENT
// These are only here so that IsEventAttributeName() will return the right
// thing for these events. We could probably remove them if we used
// Element::GetEventNameForAttr on the input to IsEventAttributeName before
// looking it up in the hashtable... see bug 1845422.
EVENT(webkitanimationend, eUnidentifiedEvent, EventNameType_All,
eAnimationEventClass)
EVENT(webkitanimationiteration, eUnidentifiedEvent, EventNameType_All,
eAnimationEventClass)
EVENT(webkitanimationstart, eUnidentifiedEvent, EventNameType_All,
eAnimationEventClass)
EVENT(webkittransitionend, eUnidentifiedEvent, EventNameType_All,
eTransitionEventClass)
#endif
NON_IDL_EVENT(audioprocess, eAudioProcess, EventNameType_None, eBasicEventClass)
NON_IDL_EVENT(complete, eAudioComplete, EventNameType_None, eBasicEventClass)
EVENT(scrollend, eScrollend, EventNameType_All, eBasicEventClass)
#ifdef DEFINED_FORWARDED_EVENT
# undef DEFINED_FORWARDED_EVENT
# undef FORWARDED_EVENT
#endif /* DEFINED_FORWARDED_EVENT */
#ifdef DEFINED_WINDOW_EVENT
# undef DEFINED_WINDOW_EVENT
# undef WINDOW_EVENT
#endif /* DEFINED_WINDOW_EVENT */
#ifdef DEFINED_WINDOW_ONLY_EVENT
# undef DEFINED_WINDOW_ONLY_EVENT
# undef WINDOW_ONLY_EVENT
#endif /* DEFINED_WINDOW_ONLY_EVENT */
#ifdef DEFINED_TOUCH_EVENT
# undef DEFINED_TOUCH_EVENT
# undef TOUCH_EVENT
#endif /* DEFINED_TOUCH_EVENT */
#ifdef DEFINED_DOCUMENT_ONLY_EVENT
# undef DEFINED_DOCUMENT_ONLY_EVENT
# undef DOCUMENT_ONLY_EVENT
#endif /* DEFINED_DOCUMENT_ONLY_EVENT */
#ifdef DEFINED_NON_IDL_EVENT
# undef DEFINED_NON_IDL_EVENT
# undef NON_IDL_EVENT
#endif /* DEFINED_NON_IDL_EVENT */
#ifdef DEFINED_ERROR_EVENT
# undef DEFINED_ERROR_EVENT
# undef ERROR_EVENT
#endif /* DEFINED_ERROR_EVENT */
#ifdef DEFINED_BEFOREUNLOAD_EVENT
# undef DEFINED_BEFOREUNLOAD_EVENT
# undef BEFOREUNLOAD_EVENT
#endif /* BEFOREUNLOAD_EVENT */
#ifdef MESSAGE_TO_EVENT
# undef EVENT
# undef WINDOW_ONLY_EVENT
# undef TOUCH_EVENT
# undef DOCUMENT_ONLY_EVENT
# undef NON_IDL_EVENT
#endif /* MESSAGE_TO_EVENT */