From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- dom/events/nsIEventListenerService.idl | 128 +++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 dom/events/nsIEventListenerService.idl (limited to 'dom/events/nsIEventListenerService.idl') diff --git a/dom/events/nsIEventListenerService.idl b/dom/events/nsIEventListenerService.idl new file mode 100644 index 0000000000..ead3cc4af1 --- /dev/null +++ b/dom/events/nsIEventListenerService.idl @@ -0,0 +1,128 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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/. */ + +#include "nsISupports.idl" + +webidl EventTarget; + +interface nsIArray; + +/** + * Contains an event target along with a count of event listener changes + * affecting accessibility. + */ +[scriptable, uuid(07222b02-da12-4cf4-b2f7-761da007a8d8)] +interface nsIEventListenerChange : nsISupports +{ + readonly attribute EventTarget target; + + [noscript] + readonly attribute uint32_t countOfEventListenerChangesAffectingAccessibility; +}; + +[scriptable, function, uuid(aa7c95f6-d3b5-44b3-9597-1d9f19b9c5f2)] +interface nsIListenerChangeListener : nsISupports +{ + void listenersChanged(in nsIArray aEventListenerChanges); +}; + +/** + * An instance of this interface describes how an event listener + * was added to an event target. + */ +[scriptable, uuid(11ba5fd7-8db2-4b1a-9f67-342cfa11afad)] +interface nsIEventListenerInfo : nsISupports +{ + /** + * The type of the event for which the listener was added. + * Null if the listener is for all the events. + */ + readonly attribute AString type; + readonly attribute boolean capturing; + readonly attribute boolean allowsUntrusted; + readonly attribute boolean inSystemEventGroup; + + /** + * Changing the enabled state works only with listeners implemented in + * JS. An error is thrown for native listeners. + */ + attribute boolean enabled; + + /** + * The underlying JS object of the event listener, if this listener + * has one. Null otherwise. + */ + [implicit_jscontext] + readonly attribute jsval listenerObject; + + /** + * Tries to serialize event listener to a string. + * Returns null if serialization isn't possible + * (for example with C++ listeners). + */ + AString toSource(); +}; + +[scriptable, uuid(77aab5f7-213d-4db4-9f22-e46dfb774f15)] +interface nsIEventListenerService : nsISupports +{ + /** + * Returns an array of nsIEventListenerInfo objects. + * If aEventTarget doesn't have any listeners, this returns null. + */ + Array getListenerInfoFor(in EventTarget aEventTarget); + + /** + * Returns an array of event targets. + * aEventTarget will be at index 0. + * The objects are the ones that would be used as DOMEvent.currentTarget while + * dispatching an event to aEventTarget + * @note Some events, especially 'load', may actually have a shorter + * event target chain than what this methods returns. + */ + [can_run_script] + Array getEventTargetChainFor(in EventTarget aEventTarget, + in boolean composed); + + /** + * Returns true if a event target has any listener for the given type. + */ + boolean hasListenersFor(in EventTarget aEventTarget, + in AString aType); + + /** + * Add a system-group eventlistener to a event target. + */ + [implicit_jscontext] + void addSystemEventListener(in EventTarget target, + in AString type, + in jsval listener, + in boolean useCapture); + + /** + * Remove a system-group eventlistener from a event target. + */ + [implicit_jscontext] + void removeSystemEventListener(in EventTarget target, + in AString type, + in jsval listener, + in boolean useCapture); + + [implicit_jscontext] + void addListenerForAllEvents(in EventTarget target, + in jsval listener, + [optional] in boolean aUseCapture, + [optional] in boolean aWantsUntrusted, + [optional] in boolean aSystemEventGroup); + + [implicit_jscontext] + void removeListenerForAllEvents(in EventTarget target, + in jsval listener, + [optional] in boolean aUseCapture, + [optional] in boolean aSystemEventGroup); + + void addListenerChangeListener(in nsIListenerChangeListener aListener); + void removeListenerChangeListener(in nsIListenerChangeListener aListener); +}; -- cgit v1.2.3