Coverage Report

Created: 2025-03-04 07:22

/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
}