blob: 8f81b79c6d7568a4b734f75880d8df6328b07c6d [file] [log] [blame]
/*
* Copyright (C) 2006, 2007, 2009, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
// https://dom.spec.whatwg.org/#interface-event
[
Constructor(DOMString type, optional EventInit eventInitDict),
Exposed=(Window,Worker),
WillBeGarbageCollected,
] interface Event {
readonly attribute DOMString type;
readonly attribute EventTarget? target;
readonly attribute EventTarget? currentTarget;
const unsigned short NONE = 0;
const unsigned short CAPTURING_PHASE = 1;
const unsigned short AT_TARGET = 2;
const unsigned short BUBBLING_PHASE = 3;
readonly attribute unsigned short eventPhase;
void stopPropagation();
void stopImmediatePropagation();
readonly attribute boolean bubbles;
readonly attribute boolean cancelable;
void preventDefault();
readonly attribute boolean defaultPrevented;
[RuntimeEnabled=ShadowDOMV1, MeasureAs=EventScoped] readonly attribute boolean scoped;
[RuntimeEnabled=TrustedEvents, Unforgeable] readonly attribute boolean isTrusted;
// TODO(majidvp): At the moment the actual return value type can either
// be:
// - DOMTimeStamp (i.e. long long): legacy type
// - DOMHighResTimeStamp (i.e. double): HighResEventTimeStamp REF is
// enabled
// Below IDL definition uses DOMHighResTimeStamp because all DOMTimeStamp
// values can be represented in double type without any loss of precision.
// Once the feature is enabled by default the return value type will always
// match the definition here.
[CallWith=ScriptState] readonly attribute DOMHighResTimeStamp timeStamp;
// FIXME: initEvent()'s arguments should not be optional.
[Measure] void initEvent([Default=Undefined] optional DOMString type,
[Default=Undefined] optional boolean bubbles,
[Default=Undefined] optional boolean cancelable);
// Shadow DOM
// https://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event-interface
[MeasureAs=EventPath, CallWith=ScriptState] readonly attribute EventTarget[] path;
[RuntimeEnabled=ShadowDOMV1, ImplementedAs=path, MeasureAs=EventDeepPath, CallWith=ScriptState] readonly attribute EventTarget[] deepPath;
// Non-standard APIs
const unsigned short MOUSEDOWN = 1;
const unsigned short MOUSEUP = 2;
const unsigned short MOUSEOVER = 4;
const unsigned short MOUSEOUT = 8;
const unsigned short MOUSEMOVE = 16;
const unsigned short MOUSEDRAG = 32;
const unsigned short CLICK = 64;
const unsigned short DBLCLICK = 128;
const unsigned short KEYDOWN = 256;
const unsigned short KEYUP = 512;
const unsigned short KEYPRESS = 1024;
const unsigned short DRAGDROP = 2048;
const unsigned short FOCUS = 4096;
const unsigned short BLUR = 8192;
const unsigned short SELECT = 16384;
const unsigned short CHANGE = 32768;
[MeasureAs=EventSrcElement] readonly attribute EventTarget srcElement;
[MeasureAs=EventReturnValue, CallWith=ExecutionContext, ImplementedAs=legacyReturnValue] attribute boolean returnValue;
[MeasureAs=EventCancelBubble] attribute boolean cancelBubble;
};