/* * Copyright (C) 2006, 2007, 2009, 2015 Apple Inc. All rights reserved. * Copyright (C) 2006 Samuel Weinig * * 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. */ [ CustomToJSObject, DOMJIT, JSCustomHeader, JSGenerateToNativeObject, ExportMacro=WEBCORE_EXPORT, Exposed=Window ] interface Element : Node { readonly attribute DOMString? namespaceURI; readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString tagName; [CEReactions, Reflect] attribute DOMString id; [CEReactions, Reflect=class] attribute DOMString className; [SameObject, PutForwards=value] readonly attribute DOMTokenList classList; [CEReactions, Reflect, Unscopable] attribute DOMString slot; [SameObject, PutForwards=value] readonly attribute DOMTokenList part; [DOMJIT=ReadDOM] boolean hasAttributes(); [SameObject] readonly attribute NamedNodeMap attributes; sequence getAttributeNames(); [DOMJIT=ReadDOM] DOMString? getAttribute([AtomString] DOMString qualifiedName); DOMString? getAttributeNS([AtomString] DOMString? namespaceURI, [AtomString] DOMString localName); [CEReactions] undefined setAttribute([AtomString] DOMString qualifiedName, [AtomString] DOMString value); [CEReactions] undefined setAttributeNS([AtomString] DOMString? namespaceURI, [AtomString] DOMString qualifiedName, [AtomString] DOMString value); [CEReactions, ImplementedAs=removeAttributeForBindings] undefined removeAttribute([AtomString] DOMString qualifiedName); [CEReactions, ImplementedAs=removeAttributeNSForBindings] undefined removeAttributeNS([AtomString] DOMString? namespaceURI, [AtomString] DOMString localName); [CEReactions] boolean toggleAttribute([AtomString] DOMString qualifiedName, optional boolean force); boolean hasAttribute([AtomString] DOMString qualifiedName); boolean hasAttributeNS([AtomString] DOMString? namespaceURI, [AtomString] DOMString localName); [DOMJIT=ReadDOM] Attr? getAttributeNode([AtomString] DOMString qualifiedName); Attr? getAttributeNodeNS([AtomString] DOMString? namespaceURI, [AtomString] DOMString localName); [CEReactions] Attr? setAttributeNode(Attr attr); [CEReactions] Attr? setAttributeNodeNS(Attr attr); [CEReactions] Attr removeAttributeNode(Attr attr); ShadowRoot attachShadow(ShadowRootInit init); [ImplementedAs=shadowRootForBindings, CallWith=CurrentGlobalObject] readonly attribute ShadowRoot? shadowRoot; Element? closest(DOMString selectors); boolean matches(DOMString selectors); [ImplementedAs=matches] boolean webkitMatchesSelector(DOMString selectors); // Historical alias of .matches. [DOMJIT=ReadDOM] HTMLCollection getElementsByTagName([AtomString] DOMString qualifiedName); HTMLCollection getElementsByTagNameNS([AtomString] DOMString? namespaceURI, [AtomString] DOMString localName); HTMLCollection getElementsByClassName([AtomString] DOMString name); [CEReactions] Element? insertAdjacentElement(DOMString where, Element element); // Historical. undefined insertAdjacentText(DOMString where, DOMString data); // Historical. // FIXME: Most of the following non-standard event handlers probably make more sense as part of the GlobalEventHandlers mixin. // Non-standard: Cannot find these in the latest specification (https://w3c.github.io/uievents/#events-focus-types). [NotEnumerable] attribute EventHandler onfocusin; [NotEnumerable] attribute EventHandler onfocusout; // Non-standard: https://developer.apple.com/reference/webkitjs/gestureevent. [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturechange; [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongestureend; [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturestart; // Non-standard: https://developer.apple.com/reference/webkitjs/element/1633146-onbeforeload. [NotEnumerable] attribute EventHandler onbeforeload; // Non-standard: https://developer.apple.com/reference/webkitjs/element/1634205-onwebkitneedkey. [NotEnumerable, Conditional=LEGACY_ENCRYPTED_MEDIA, EnabledBySetting=LegacyEncryptedMediaAPIEnabled] attribute EventHandler onwebkitneedkey; // Non-standard: https://developer.apple.com/reference/webkitjs/element/1633943-onwebkitpresentationmodechanged. [NotEnumerable, Conditional=VIDEO_PRESENTATION_MODE] attribute EventHandler onwebkitpresentationmodechanged; // Non-standard: https://developer.apple.com/reference/webkitjs/element/1630042-onwebkitcurrentplaybacktargetisw. [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitcurrentplaybacktargetiswirelesschanged; // Non-standard: https://developer.apple.com/reference/webkitjs/element/1629580-onwebkitplaybacktargetavailabili. [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitplaybacktargetavailabilitychanged; }; Element includes AccessibilityRole; Element includes AriaAttributes; Element includes Animatable; Element includes ChildNode; Element includes NonDocumentTypeChildNode; Element includes ParentNode; Element includes Slotable; Element includes InnerHTML;