/src/serenity/Userland/Libraries/LibWeb/Bindings/PlatformObject.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (c) 2022, Andreas Kling <kling@serenityos.org> |
3 | | * |
4 | | * SPDX-License-Identifier: BSD-2-Clause |
5 | | */ |
6 | | |
7 | | #pragma once |
8 | | |
9 | | #include <AK/Weakable.h> |
10 | | #include <LibJS/Runtime/Object.h> |
11 | | #include <LibWeb/Forward.h> |
12 | | |
13 | | namespace Web::Bindings { |
14 | | |
15 | | #define WEB_PLATFORM_OBJECT(class_, base_class) \ |
16 | | JS_OBJECT(class_, base_class) \ |
17 | | virtual bool implements_interface(String const& interface) const override \ |
18 | 0 | { \ |
19 | 0 | if (interface == #class_) \ |
20 | 0 | return true; \ |
21 | 0 | return Base::implements_interface(interface); \ |
22 | 0 | } Unexecuted instantiation: Web::WebIDL::DOMException::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Animations::AnimationEffect::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Animations::KeyframeEffect::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::EventTarget::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOMParsing::XMLSerializer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::Node::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::ParentNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Geometry::DOMRectReadOnly::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Geometry::DOMRect::implements_interface(AK::String const&) const Unexecuted instantiation: Web::IntersectionObserver::IntersectionObserverEntry::implements_interface(AK::String const&) const Unexecuted instantiation: Web::IntersectionObserver::IntersectionObserver::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::Element::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::MutationRecord::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::MutationObserver::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSStyleDeclaration::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::PropertyOwningCSSStyleDeclaration::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::ElementInlineCSSStyleDeclaration::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSNamespaceRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSRuleList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSGroupingRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSStyleRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::MediaList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::StyleSheet::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSStyleSheet::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::StyleSheetList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::FileAPI::Blob::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::ReadableStream::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::NavigableContainer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLScriptElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::History::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::Document::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::Location::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::Event::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::PromiseRejectionEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::MimeType::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::Plugin::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Fetch::Headers::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Fetch::Request::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLRenderingContextBase::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLRenderingContext::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLCanvasElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLImageElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLMediaElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLVideoElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ImageBitmap::implements_interface(AK::String const&) const Unexecuted instantiation: Web::PerformanceTimeline::PerformanceEntry::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::Window::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLOptionElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSConditionRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSMediaRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSImportRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSFontFaceRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSKeyframeRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSKeyframesRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSLayerBlockRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSSupportsRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLHtmlElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSLayerStatementRule::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSNestedDeclarations::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Animations::AnimationTimeline::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Animations::DocumentTimeline::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::AnimationEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Animations::Animation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSAnimation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::CSSTransition::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::Attr::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::DocumentFragment::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::ShadowRoot::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLBRElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::CharacterData::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::Text::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::NamedNodeMap::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLAnchorElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLAreaElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLButtonElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLDetailsElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLDialogElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::HTMLCollection::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLFieldSetElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::FileAPI::File::implements_interface(AK::String const&) const Unexecuted instantiation: Web::FileAPI::FileList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLInputElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLOptGroupElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLProgressElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLOptionsCollection::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLSelectElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTextAreaElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Animations::AnimationPlaybackEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UserTiming::PerformanceMark::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UserTiming::PerformanceMeasure::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HighResolutionTime::Performance::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::FontFace::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::FontFaceSet::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::MediaQueryList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::MediaQueryListEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::VisualViewport::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::CDATASection::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::Comment::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::CustomEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::DOMImplementation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::DocumentObserver::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::DocumentType::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::NodeList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::LiveNodeList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::NodeFilter::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::NodeIterator::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::ProcessingInstruction::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::AbstractRange::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Selection::Selection::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::Range::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::TreeWalker::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOMURL::URLSearchParams::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOMURL::DOMURL::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::BeforeUnloadEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::CustomElementRegistry::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLAllCollection::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLBaseElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLBodyElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLDocument::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLEmbedElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLFormElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLFrameSetElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLHeadElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLIFrameElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLLinkElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLObjectElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLStyleElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTitleElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HashChangeEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::MessageEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::MessagePort::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::Navigation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::PopStateEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGAnimatedString::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGTransform::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGTransformList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGAnimatedTransformList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGAnimatedNumber::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGStopElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGGradientElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGGraphicsElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::ResizeObserver::ResizeObserverSize::implements_interface(AK::String const&) const Unexecuted instantiation: Web::ResizeObserver::ResizeObserverEntry::implements_interface(AK::String const&) const Unexecuted instantiation: Web::ResizeObserver::ResizeObserver::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGStyleElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGTitleElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::UIEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::CompositionEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::FocusEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::KeyboardEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::MouseEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::TextEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::StaticNodeList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::AbortSignal::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::XMLDocument::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::ResolvedCSSStyleDeclaration::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::DOMTokenList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Geometry::DOMRectList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLSlotElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTableCaptionElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTableRowElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTableSectionElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTableElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTemplateElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLAudioElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLDListElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLDataElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLDataListElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLDirectoryElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLDivElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLFontElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLFrameElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLHRElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLHeadingElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLLIElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLLabelElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLLegendElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLMapElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLMarqueeElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLMenuElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLMetaElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLMeterElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLModElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLOListElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLOutputElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLParagraphElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLParamElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLPictureElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLPreElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLQuoteElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLSourceElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLSpanElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLSummaryElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTableCellElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTableColElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTimeElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::TextTrack::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLTrackElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLUListElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLUnknownElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::DOMStringMap::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MathML::MathMLElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGAElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGLength::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGAnimatedLength::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Geometry::DOMPointReadOnly::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Geometry::DOMPoint::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGGeometryElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGCircleElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGClipPathElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGDefsElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGDescElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGEllipseElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGForeignObjectElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGGElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGImageElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGLineElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGLinearGradientElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGMaskElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGMetadataElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGPathElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGPolygonElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGPolylineElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGRadialGradientElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGRectElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Geometry::DOMMatrixReadOnly::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Geometry::DOMMatrix::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGSVGElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGScriptElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGSymbolElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGTextContentElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGTextPositioningElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGTSpanElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGTextElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGTextPathElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGUseElement::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::CloseWatcherManager::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ErrorEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::ReadableStreamDefaultReader::implements_interface(AK::String const&) const Unexecuted instantiation: Web::XHR::FormData::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Crypto::CryptoKey::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Crypto::SubtleCrypto::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Crypto::Crypto::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::CloseWatcher::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::FormDataEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::AudioTrack::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::AudioTrackList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ImageData::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::CanvasGradient::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::CanvasPattern::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::Path2D::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::TextMetrics::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::CanvasRenderingContext2D::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ToggleEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ElementInternals::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::PointerEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::HTMLFormControlsCollection::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::RadioNodeList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::SubmitEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Fetch::Response::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ValidityState::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::WorkerLocation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ServiceWorkerContainer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MediaCapabilitiesAPI::MediaCapabilities::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::WorkerNavigator::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::WorkerGlobalScope::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::TransformStream::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::TransformStreamDefaultController::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::MediaError::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::TextTrackList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::TimeRanges::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::TrackEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::VideoTrack::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::VideoTrackList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::NavigationObserver::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::AbortController::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::NavigateEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::NavigationCurrentEntryChangeEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::NavigationDestination::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::NavigationHistoryEntry::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::NavigationTransition::implements_interface(AK::String const&) const Unexecuted instantiation: Web::StorageAPI::StorageManager::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Geometry::DOMQuad::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::Screen::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::MimeTypeArray::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::PluginArray::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::UserActivation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::Navigator::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::PageTransitionEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::Storage::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Internals::Inspector::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Internals::InternalAnimationTimeline::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Internals::Internals::implements_interface(AK::String const&) const Unexecuted instantiation: Web::RequestIdleCallback::IdleDeadline::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Clipboard::Clipboard::implements_interface(AK::String const&) const Unexecuted instantiation: Web::CSS::ScreenOrientation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::EventSource::implements_interface(AK::String const&) const Unexecuted instantiation: Web::IndexedDB::IDBFactory::implements_interface(AK::String const&) const Unexecuted instantiation: Web::PerformanceTimeline::PerformanceObserver::implements_interface(AK::String const&) const Unexecuted instantiation: Web::PerformanceTimeline::PerformanceObserverEntryList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::NavigationTiming::PerformanceNavigation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::NavigationTiming::PerformanceTiming::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOM::StaticRange::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::InputEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::UIEvents::WheelEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::DataTransfer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::DragEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::EntriesAPI::FileSystemEntry::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::DataTransferItem::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::DataTransferItemList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::ReadableByteStreamController::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::ReadableStreamBYOBReader::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::ReadableStreamBYOBRequest::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::ReadableStreamDefaultController::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::WritableStream::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::WritableStreamDefaultController::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::WritableStreamDefaultWriter::implements_interface(AK::String const&) const Unexecuted instantiation: Web::SVG::SVGAnimatedRect::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLContextEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ServiceWorkerRegistration::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::Worker::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::ServiceWorker::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Clipboard::ClipboardEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::DOMURL::URLSearchParamsIterator::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Encoding::TextDecoder::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Encoding::TextEncoder::implements_interface(AK::String const&) const Unexecuted instantiation: Web::EventTiming::PerformanceEventTiming::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Fetch::HeadersIterator::implements_interface(AK::String const&) const Unexecuted instantiation: Web::FileAPI::FileReader::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::BroadcastChannel::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::CloseEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::DedicatedWorkerGlobalScope::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::DOMParser::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::DOMStringList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::MessageChannel::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::TextTrackCue::implements_interface(AK::String const&) const Unexecuted instantiation: Web::HTML::TextTrackCueList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::IndexedDB::IDBRequest::implements_interface(AK::String const&) const Unexecuted instantiation: Web::IndexedDB::IDBOpenDBRequest::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MediaSourceExtensions::BufferedChangeEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MediaSourceExtensions::MediaSource::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MediaSourceExtensions::ManagedMediaSource::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MediaSourceExtensions::MediaSourceHandle::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MediaSourceExtensions::SourceBufferList::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MediaSourceExtensions::SourceBuffer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::MediaSourceExtensions::ManagedSourceBuffer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::ByteLengthQueuingStrategy::implements_interface(AK::String const&) const Unexecuted instantiation: Web::Streams::CountQueuingStrategy::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAssembly::Instance::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAssembly::Module::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAssembly::Memory::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAssembly::Table::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::AudioBuffer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::AudioParam::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::AudioListener::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::AudioNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::BiquadFilterNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::BaseAudioContext::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::AudioScheduledSourceNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::AudioBufferSourceNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::AudioDestinationNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::DynamicsCompressorNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::GainNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::OscillatorNode::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::AudioContext::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::OfflineAudioContext::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebAudio::PeriodicWave::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLActiveInfo::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLObject::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLBuffer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLFramebuffer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLProgram::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLRenderbuffer::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLShader::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLShaderPrecisionFormat::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLTexture::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebGL::WebGLUniformLocation::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebSockets::WebSocket::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebVTT::VTTRegion::implements_interface(AK::String const&) const Unexecuted instantiation: Web::WebVTT::VTTCue::implements_interface(AK::String const&) const Unexecuted instantiation: Web::XHR::FormDataIterator::implements_interface(AK::String const&) const Unexecuted instantiation: Web::XHR::ProgressEvent::implements_interface(AK::String const&) const Unexecuted instantiation: Web::XHR::XMLHttpRequestEventTarget::implements_interface(AK::String const&) const Unexecuted instantiation: Web::XHR::XMLHttpRequest::implements_interface(AK::String const&) const Unexecuted instantiation: Web::XHR::XMLHttpRequestUpload::implements_interface(AK::String const&) const |
23 | | |
24 | | // https://webidl.spec.whatwg.org/#dfn-platform-object |
25 | | class PlatformObject : public JS::Object { |
26 | | JS_OBJECT(PlatformObject, JS::Object); |
27 | | |
28 | | public: |
29 | | virtual ~PlatformObject() override; |
30 | | |
31 | | JS::Realm& realm() const; |
32 | | |
33 | | // https://webidl.spec.whatwg.org/#implements |
34 | | // This is implemented by overrides that get generated by the WEB_PLATFORM_OBJECT macro. |
35 | 0 | [[nodiscard]] virtual bool implements_interface(String const&) const { return false; } |
36 | | |
37 | | // ^JS::Object |
38 | | virtual JS::ThrowCompletionOr<Optional<JS::PropertyDescriptor>> internal_get_own_property(JS::PropertyKey const&) const override; |
39 | | virtual JS::ThrowCompletionOr<bool> internal_set(JS::PropertyKey const&, JS::Value, JS::Value, JS::CacheablePropertyMetadata* = nullptr) override; |
40 | | virtual JS::ThrowCompletionOr<bool> internal_define_own_property(JS::PropertyKey const&, JS::PropertyDescriptor const&, Optional<JS::PropertyDescriptor>* precomputed_get_own_property = nullptr) override; |
41 | | virtual JS::ThrowCompletionOr<bool> internal_delete(JS::PropertyKey const&) override; |
42 | | virtual JS::ThrowCompletionOr<bool> internal_prevent_extensions() override; |
43 | | virtual JS::ThrowCompletionOr<JS::MarkedVector<JS::Value>> internal_own_property_keys() const override; |
44 | | |
45 | | JS::ThrowCompletionOr<bool> is_named_property_exposed_on_object(JS::PropertyKey const&) const; |
46 | | |
47 | | protected: |
48 | | explicit PlatformObject(JS::Realm&, MayInterfereWithIndexedPropertyAccess = MayInterfereWithIndexedPropertyAccess::No); |
49 | | explicit PlatformObject(JS::Object& prototype, MayInterfereWithIndexedPropertyAccess = MayInterfereWithIndexedPropertyAccess::No); |
50 | | |
51 | | struct LegacyPlatformObjectFlags { |
52 | | u16 supports_indexed_properties : 1 = false; |
53 | | u16 supports_named_properties : 1 = false; |
54 | | u16 has_indexed_property_setter : 1 = false; |
55 | | u16 has_named_property_setter : 1 = false; |
56 | | u16 has_named_property_deleter : 1 = false; |
57 | | u16 has_legacy_unenumerable_named_properties_interface_extended_attribute : 1 = false; |
58 | | u16 has_legacy_override_built_ins_interface_extended_attribute : 1 = false; |
59 | | u16 has_global_interface_extended_attribute : 1 = false; |
60 | | u16 indexed_property_setter_has_identifier : 1 = false; |
61 | | u16 named_property_setter_has_identifier : 1 = false; |
62 | | u16 named_property_deleter_has_identifier : 1 = false; |
63 | | }; |
64 | | Optional<LegacyPlatformObjectFlags> m_legacy_platform_object_flags = {}; |
65 | | |
66 | | enum class IgnoreNamedProps { |
67 | | No, |
68 | | Yes, |
69 | | }; |
70 | | JS::ThrowCompletionOr<Optional<JS::PropertyDescriptor>> legacy_platform_object_get_own_property(JS::PropertyKey const&, IgnoreNamedProps ignore_named_props) const; |
71 | | |
72 | | virtual Optional<JS::Value> item_value(size_t index) const; |
73 | | virtual JS::Value named_item_value(FlyString const& name) const; |
74 | | virtual Vector<FlyString> supported_property_names() const; |
75 | | virtual bool is_supported_property_name(FlyString const&) const; |
76 | | bool is_supported_property_index(u32) const; |
77 | | |
78 | | // NOTE: These will crash if you make has_named_property_setter return true but do not override these methods. |
79 | | // NOTE: This is only used if named_property_setter_has_identifier returns false, otherwise set_value_of_named_property is used instead. |
80 | | virtual WebIDL::ExceptionOr<void> set_value_of_new_named_property(String const&, JS::Value); |
81 | | virtual WebIDL::ExceptionOr<void> set_value_of_existing_named_property(String const&, JS::Value); |
82 | | |
83 | | // NOTE: These will crash if you make has_named_property_setter return true but do not override these methods. |
84 | | // NOTE: This is only used if you make named_property_setter_has_identifier return true, otherwise set_value_of_{new,existing}_named_property is used instead. |
85 | | virtual WebIDL::ExceptionOr<void> set_value_of_named_property(String const&, JS::Value); |
86 | | |
87 | | // NOTE: These will crash if you make has_indexed_property_setter return true but do not override these methods. |
88 | | // NOTE: This is only used if indexed_property_setter_has_identifier returns false, otherwise set_value_of_indexed_property is used instead. |
89 | | virtual WebIDL::ExceptionOr<void> set_value_of_new_indexed_property(u32, JS::Value); |
90 | | virtual WebIDL::ExceptionOr<void> set_value_of_existing_indexed_property(u32, JS::Value); |
91 | | |
92 | | // NOTE: These will crash if you make has_named_property_setter return true but do not override these methods. |
93 | | // NOTE: This is only used if indexed_property_setter_has_identifier returns true, otherwise set_value_of_{new,existing}_indexed_property is used instead. |
94 | | virtual WebIDL::ExceptionOr<void> set_value_of_indexed_property(u32, JS::Value); |
95 | | |
96 | | enum class DidDeletionFail { |
97 | | // If the named property deleter has an identifier, but does not return a boolean. |
98 | | // This is done because we don't know the return type of the deleter outside of the IDL generator. |
99 | | NotRelevant, |
100 | | No, |
101 | | Yes, |
102 | | }; |
103 | | |
104 | | // NOTE: This will crash if you make has_named_property_deleter return true but do not override this method. |
105 | | virtual WebIDL::ExceptionOr<DidDeletionFail> delete_value(String const&); |
106 | | |
107 | | private: |
108 | | WebIDL::ExceptionOr<void> invoke_indexed_property_setter(JS::PropertyKey const&, JS::Value); |
109 | | WebIDL::ExceptionOr<void> invoke_named_property_setter(FlyString const&, JS::Value); |
110 | | }; |
111 | | |
112 | | } |