include(libweb_generators) set(SOURCES ARIA/ARIAMixin.cpp ARIA/ARIAMixin.idl ARIA/Roles.cpp Bindings/AudioConstructor.cpp Bindings/HostDefined.cpp Bindings/ImageConstructor.cpp Bindings/Intrinsics.cpp Bindings/LegacyPlatformObject.cpp Bindings/LocationConstructor.cpp Bindings/MainThreadVM.cpp Bindings/OptionConstructor.cpp Bindings/PlatformObject.cpp Crypto/Crypto.cpp Crypto/SubtleCrypto.cpp CSS/Angle.cpp CSS/CalculatedOr.cpp CSS/Clip.cpp CSS/CSS.cpp CSS/CSSConditionRule.cpp CSS/CSSGroupingRule.cpp CSS/CSSImportRule.cpp CSS/CSSKeyframeRule.cpp CSS/CSSKeyframesRule.cpp CSS/CSSFontFaceRule.cpp CSS/CSSMediaRule.cpp CSS/CSSRule.cpp CSS/CSSRuleList.cpp CSS/CSSStyleDeclaration.cpp CSS/CSSStyleRule.cpp CSS/CSSStyleSheet.cpp CSS/CSSSupportsRule.cpp CSS/Display.cpp CSS/EdgeRect.cpp CSS/FontFace.cpp CSS/Frequency.cpp CSS/GridTrackPlacement.cpp CSS/GridTrackSize.cpp CSS/Length.cpp CSS/LengthBox.cpp CSS/MediaList.cpp CSS/MediaQuery.cpp CSS/MediaQueryList.cpp CSS/MediaQueryListEvent.cpp CSS/Parser/Block.cpp CSS/Parser/ComponentValue.cpp CSS/Parser/Declaration.cpp CSS/Parser/DeclarationOrAtRule.cpp CSS/Parser/Function.cpp CSS/Parser/Parser.cpp CSS/Parser/Rule.cpp CSS/Parser/Token.cpp CSS/Parser/Tokenizer.cpp CSS/PercentageOr.cpp CSS/Position.cpp CSS/PreferredColorScheme.cpp CSS/Ratio.cpp CSS/Resolution.cpp CSS/ResolvedCSSStyleDeclaration.cpp CSS/Screen.cpp CSS/Selector.cpp CSS/SelectorEngine.cpp CSS/Serialize.cpp CSS/Size.cpp CSS/StyleComputer.cpp CSS/StyleProperties.cpp CSS/StyleProperty.cpp CSS/StyleSheet.cpp CSS/StyleSheetList.cpp CSS/StyleValue.cpp CSS/StyleValues/AngleStyleValue.cpp CSS/StyleValues/BackgroundRepeatStyleValue.cpp CSS/StyleValues/BackgroundSizeStyleValue.cpp CSS/StyleValues/BackgroundStyleValue.cpp CSS/StyleValues/BorderRadiusShorthandStyleValue.cpp CSS/StyleValues/BorderRadiusStyleValue.cpp CSS/StyleValues/BorderStyleValue.cpp CSS/StyleValues/CalculatedStyleValue.cpp CSS/StyleValues/ColorStyleValue.cpp CSS/StyleValues/CompositeStyleValue.cpp CSS/StyleValues/ConicGradientStyleValue.cpp CSS/StyleValues/ContentStyleValue.cpp CSS/StyleValues/DisplayStyleValue.cpp CSS/StyleValues/EdgeStyleValue.cpp CSS/StyleValues/FilterValueListStyleValue.cpp CSS/StyleValues/FlexFlowStyleValue.cpp CSS/StyleValues/FlexStyleValue.cpp CSS/StyleValues/FontStyleValue.cpp CSS/StyleValues/GridAreaShorthandStyleValue.cpp CSS/StyleValues/GridTemplateAreaStyleValue.cpp CSS/StyleValues/GridTrackPlacementStyleValue.cpp CSS/StyleValues/GridTrackPlacementShorthandStyleValue.cpp CSS/StyleValues/GridTrackSizeListShorthandStyleValue.cpp CSS/StyleValues/GridTrackSizeListStyleValue.cpp CSS/StyleValues/IdentifierStyleValue.cpp CSS/StyleValues/ImageStyleValue.cpp CSS/StyleValues/IntegerStyleValue.cpp CSS/StyleValues/LengthStyleValue.cpp CSS/StyleValues/LinearGradientStyleValue.cpp CSS/StyleValues/ListStyleStyleValue.cpp CSS/StyleValues/NumberStyleValue.cpp CSS/StyleValues/OverflowStyleValue.cpp CSS/StyleValues/PlaceContentStyleValue.cpp CSS/StyleValues/PositionStyleValue.cpp CSS/StyleValues/RadialGradientStyleValue.cpp CSS/StyleValues/RectStyleValue.cpp CSS/StyleValues/ShadowStyleValue.cpp CSS/StyleValues/StyleValueList.cpp CSS/StyleValues/TextDecorationStyleValue.cpp CSS/StyleValues/TransformationStyleValue.cpp CSS/StyleValues/UnresolvedStyleValue.cpp CSS/Supports.cpp CSS/SyntaxHighlighter/SyntaxHighlighter.cpp CSS/Time.cpp Cookie/Cookie.cpp Cookie/ParsedCookie.cpp DOM/AbortController.cpp DOM/AbortSignal.cpp DOM/AbstractRange.cpp DOM/AccessibilityTreeNode.cpp DOM/Attr.cpp DOM/Attr.idl DOM/CDATASection.cpp DOM/CharacterData.cpp DOM/CharacterData.idl DOM/Comment.cpp DOM/CustomEvent.cpp DOM/DOMEventListener.cpp DOM/DOMImplementation.cpp DOM/DOMTokenList.cpp DOM/DOMTokenList.idl DOM/Document.cpp DOM/DocumentFragment.cpp DOM/DocumentLoadEventDelayer.cpp DOM/DocumentLoading.cpp DOM/DocumentObserver.cpp DOM/DocumentType.cpp DOM/Element.cpp DOM/ElementFactory.cpp DOM/Event.cpp DOM/EventDispatcher.cpp DOM/EventTarget.cpp DOM/HTMLCollection.cpp DOM/IDLEventListener.cpp DOM/LiveNodeList.cpp DOM/MutationObserver.cpp DOM/MutationRecord.cpp DOM/MutationType.cpp DOM/NamedNodeMap.cpp DOM/Node.cpp DOM/NodeFilter.cpp DOM/NodeIterator.cpp DOM/NodeList.cpp DOM/NodeOperations.cpp DOM/ParentNode.cpp DOM/Position.cpp DOM/ProcessingInstruction.cpp DOM/QualifiedName.cpp DOM/Range.cpp DOM/ShadowRoot.cpp DOM/StaticNodeList.cpp DOM/StaticRange.cpp DOM/StyleElementUtils.cpp DOM/Text.cpp DOM/Text.idl DOM/TreeWalker.cpp DOM/XMLDocument.cpp DOMParsing/InnerHTML.cpp DOMParsing/XMLSerializer.cpp Dump.cpp Encoding/TextDecoder.cpp Encoding/TextEncoder.cpp Fetch/Body.cpp Fetch/BodyInit.cpp Fetch/Enums.cpp Fetch/Fetching/Checks.cpp Fetch/Fetching/Fetching.cpp Fetch/Fetching/PendingResponse.cpp Fetch/Fetching/RefCountedFlag.cpp Fetch/FetchMethod.cpp Fetch/Headers.cpp Fetch/HeadersIterator.cpp Fetch/Infrastructure/ConnectionTimingInfo.cpp Fetch/Infrastructure/FetchAlgorithms.cpp Fetch/Infrastructure/FetchController.cpp Fetch/Infrastructure/FetchParams.cpp Fetch/Infrastructure/FetchTimingInfo.cpp Fetch/Infrastructure/HTTP.cpp Fetch/Infrastructure/HTTP/Bodies.cpp Fetch/Infrastructure/HTTP/Headers.cpp Fetch/Infrastructure/HTTP/Methods.cpp Fetch/Infrastructure/HTTP/Requests.cpp Fetch/Infrastructure/HTTP/Responses.cpp Fetch/Infrastructure/HTTP/Statuses.cpp Fetch/Infrastructure/MimeTypeBlocking.cpp Fetch/Infrastructure/NoSniffBlocking.cpp Fetch/Infrastructure/PortBlocking.cpp Fetch/Infrastructure/Task.cpp Fetch/Infrastructure/URL.cpp Fetch/Request.cpp Fetch/Response.cpp FileAPI/Blob.cpp FileAPI/File.cpp FileAPI/FileList.cpp FontCache.cpp Geometry/DOMMatrix.cpp Geometry/DOMMatrixReadOnly.cpp Geometry/DOMPoint.cpp Geometry/DOMPointReadOnly.cpp Geometry/DOMRect.cpp Geometry/DOMRectList.cpp Geometry/DOMRectReadOnly.cpp HTML/AnimatedBitmapDecodedImageData.cpp HTML/AttributeNames.cpp HTML/AudioTrack.cpp HTML/AudioTrackList.cpp HTML/BrowsingContext.cpp HTML/BrowsingContextGroup.cpp HTML/Canvas/CanvasDrawImage.cpp HTML/Canvas/CanvasPath.cpp HTML/Canvas/CanvasPathClipper.cpp HTML/Canvas/CanvasState.cpp HTML/CanvasGradient.cpp HTML/CanvasPattern.cpp HTML/CanvasRenderingContext2D.cpp HTML/CloseEvent.cpp HTML/CORSSettingAttribute.cpp HTML/CrossOrigin/AbstractOperations.cpp HTML/CrossOrigin/Reporting.cpp HTML/CustomElements/CustomElementName.cpp HTML/CustomElements/CustomElementReactionNames.cpp HTML/CustomElements/CustomElementRegistry.cpp HTML/DecodedImageData.cpp HTML/DocumentState.cpp HTML/DOMParser.cpp HTML/DOMStringMap.cpp HTML/ErrorEvent.cpp HTML/EventHandler.cpp HTML/EventLoop/EventLoop.cpp HTML/EventLoop/Task.cpp HTML/EventLoop/TaskQueue.cpp HTML/EventNames.cpp HTML/Focus.cpp HTML/FormAssociatedElement.cpp HTML/FormControlInfrastructure.cpp HTML/FormDataEvent.cpp HTML/GlobalEventHandlers.cpp HTML/History.cpp HTML/HTMLAnchorElement.cpp HTML/HTMLAreaElement.cpp HTML/HTMLAudioElement.cpp HTML/HTMLBRElement.cpp HTML/HTMLBaseElement.cpp HTML/HTMLBlinkElement.cpp HTML/HTMLBodyElement.cpp HTML/HTMLButtonElement.cpp HTML/HTMLCanvasElement.cpp HTML/HTMLDListElement.cpp HTML/HTMLDataElement.cpp HTML/HTMLDataListElement.cpp HTML/HTMLDetailsElement.cpp HTML/HTMLDialogElement.cpp HTML/HTMLDirectoryElement.cpp HTML/HTMLDivElement.cpp HTML/HTMLElement.cpp HTML/HTMLEmbedElement.cpp HTML/HTMLFieldSetElement.cpp HTML/HTMLFontElement.cpp HTML/HTMLFormElement.cpp HTML/HTMLFrameElement.cpp HTML/HTMLFrameSetElement.cpp HTML/HTMLHRElement.cpp HTML/HTMLHeadElement.cpp HTML/HTMLHeadingElement.cpp HTML/HTMLHtmlElement.cpp HTML/HTMLHyperlinkElementUtils.cpp HTML/HTMLIFrameElement.cpp HTML/HTMLImageElement.cpp HTML/HTMLInputElement.cpp HTML/HTMLLIElement.cpp HTML/HTMLLabelElement.cpp HTML/HTMLLegendElement.cpp HTML/HTMLLinkElement.cpp HTML/HTMLMapElement.cpp HTML/HTMLMarqueeElement.cpp HTML/HTMLMediaElement.cpp HTML/HTMLMenuElement.cpp HTML/HTMLMetaElement.cpp HTML/HTMLMeterElement.cpp HTML/HTMLModElement.cpp HTML/HTMLOListElement.cpp HTML/HTMLObjectElement.cpp HTML/HTMLOptGroupElement.cpp HTML/HTMLOptionElement.cpp HTML/HTMLOptionsCollection.cpp HTML/HTMLOutputElement.cpp HTML/HTMLParagraphElement.cpp HTML/HTMLParamElement.cpp HTML/HTMLPictureElement.cpp HTML/HTMLPreElement.cpp HTML/HTMLProgressElement.cpp HTML/HTMLQuoteElement.cpp HTML/HTMLScriptElement.cpp HTML/HTMLSelectElement.cpp HTML/HTMLSlotElement.cpp HTML/HTMLSourceElement.cpp HTML/HTMLSpanElement.cpp HTML/HTMLStyleElement.cpp HTML/HTMLSummaryElement.cpp HTML/HTMLTableCaptionElement.cpp HTML/HTMLTableCellElement.cpp HTML/HTMLTableColElement.cpp HTML/HTMLTableElement.cpp HTML/HTMLTableRowElement.cpp HTML/HTMLTableSectionElement.cpp HTML/HTMLTemplateElement.cpp HTML/HTMLTextAreaElement.cpp HTML/HTMLTimeElement.cpp HTML/HTMLTitleElement.cpp HTML/HTMLTrackElement.cpp HTML/HTMLUListElement.cpp HTML/HTMLUnknownElement.cpp HTML/HTMLVideoElement.cpp HTML/ImageData.cpp HTML/ImageRequest.cpp HTML/ListOfAvailableImages.cpp HTML/Location.cpp HTML/MediaError.cpp HTML/MessageChannel.cpp HTML/MessageEvent.cpp HTML/MessagePort.cpp HTML/MimeType.cpp HTML/MimeTypeArray.cpp HTML/Navigable.cpp HTML/NavigableContainer.cpp HTML/Navigator.cpp HTML/NavigatorID.cpp HTML/PageTransitionEvent.cpp HTML/Parser/Entities.cpp HTML/Parser/HTMLEncodingDetection.cpp HTML/Parser/HTMLParser.cpp HTML/Parser/HTMLToken.cpp HTML/Parser/HTMLTokenizer.cpp HTML/Parser/ListOfActiveFormattingElements.cpp HTML/Parser/StackOfOpenElements.cpp HTML/Path2D.cpp HTML/Plugin.cpp HTML/PluginArray.cpp HTML/PotentialCORSRequest.cpp HTML/PromiseRejectionEvent.cpp HTML/RemoteBrowsingContext.cpp HTML/Scripting/ClassicScript.cpp HTML/Scripting/Environments.cpp HTML/Scripting/ExceptionReporter.cpp HTML/Scripting/Fetching.cpp HTML/Scripting/ModuleMap.cpp HTML/Scripting/ModuleScript.cpp HTML/Scripting/Script.cpp HTML/Scripting/WindowEnvironmentSettingsObject.cpp HTML/SessionHistoryEntry.cpp HTML/SourceSet.cpp HTML/Storage.cpp HTML/StructuredSerialize.cpp HTML/SubmitEvent.cpp HTML/SyntaxHighlighter/SyntaxHighlighter.cpp HTML/TagNames.cpp HTML/TextMetrics.cpp HTML/Timer.cpp HTML/TimeRanges.cpp HTML/TrackEvent.cpp HTML/TraversableNavigable.cpp HTML/VideoTrack.cpp HTML/VideoTrackList.cpp HTML/Window.cpp HTML/WindowEventHandlers.cpp HTML/WindowOrWorkerGlobalScope.cpp HTML/WindowProxy.cpp HTML/Worker.cpp HTML/WorkerDebugConsoleClient.cpp HTML/WorkerGlobalScope.cpp HTML/WorkerLocation.cpp HTML/WorkerNavigator.cpp HighResolutionTime/Performance.cpp HighResolutionTime/TimeOrigin.cpp Infra/Base64.cpp Infra/ByteSequences.cpp Infra/JSON.cpp Infra/Strings.cpp IntersectionObserver/IntersectionObserver.cpp Layout/AudioBox.cpp Layout/AvailableSpace.cpp Layout/BlockContainer.cpp Layout/BlockFormattingContext.cpp Layout/Box.cpp Layout/BoxModelMetrics.cpp Layout/BreakNode.cpp Layout/ButtonBox.cpp Layout/CanvasBox.cpp Layout/CheckBox.cpp Layout/FlexFormattingContext.cpp Layout/FormattingContext.cpp Layout/FrameBox.cpp Layout/GridFormattingContext.cpp Layout/ImageBox.cpp Layout/Viewport.cpp Layout/InlineFormattingContext.cpp Layout/InlineLevelIterator.cpp Layout/InlineNode.cpp Layout/Label.cpp Layout/LabelableNode.cpp Layout/LayoutState.cpp Layout/LineBox.cpp Layout/LineBoxFragment.cpp Layout/LineBuilder.cpp Layout/ListItemBox.cpp Layout/ListItemMarkerBox.cpp Layout/Node.cpp Layout/Progress.cpp Layout/RadioButton.cpp Layout/ReplacedBox.cpp Layout/SVGBox.cpp Layout/SVGFormattingContext.cpp Layout/SVGGeometryBox.cpp Layout/SVGGraphicsBox.cpp Layout/SVGSVGBox.cpp Layout/SVGTextBox.cpp Layout/TableFormattingContext.cpp Layout/TableWrapper.cpp Layout/TextNode.cpp Layout/TreeBuilder.cpp Layout/VideoBox.cpp Loader/ContentFilter.cpp Loader/FileRequest.cpp Loader/FrameLoader.cpp Loader/LoadRequest.cpp Loader/ProxyMappings.cpp Loader/Resource.cpp Loader/ResourceLoader.cpp MimeSniff/MimeType.cpp Namespace.cpp NavigationTiming/EntryNames.cpp NavigationTiming/PerformanceTiming.cpp Page/EditEventHandler.cpp Page/EventHandler.cpp Page/Page.cpp Painting/AudioPaintable.cpp Painting/BackgroundPainting.cpp Painting/BorderPainting.cpp Painting/BorderRadiusCornerClipper.cpp Painting/ButtonPaintable.cpp Painting/CanvasPaintable.cpp Painting/CheckBoxPaintable.cpp Painting/GradientPainting.cpp Painting/FilterPainting.cpp Painting/ImagePaintable.cpp Painting/InlinePaintable.cpp Painting/LabelablePaintable.cpp Painting/MarkerPaintable.cpp Painting/MediaPaintable.cpp Painting/NestedBrowsingContextPaintable.cpp Painting/PaintContext.cpp Painting/Paintable.cpp Painting/PaintableBox.cpp Painting/ProgressPaintable.cpp Painting/RadioButtonPaintable.cpp Painting/SVGGeometryPaintable.cpp Painting/SVGGraphicsPaintable.cpp Painting/SVGPaintable.cpp Painting/SVGSVGPaintable.cpp Painting/SVGTextPaintable.cpp Painting/ShadowPainting.cpp Painting/StackingContext.cpp Painting/TextPaintable.cpp Painting/VideoPaintable.cpp PerformanceTimeline/EntryTypes.cpp PerformanceTimeline/PerformanceEntry.cpp PermissionsPolicy/AutoplayAllowlist.cpp Platform/AudioCodecPlugin.cpp Platform/EventLoopPlugin.cpp Platform/EventLoopPluginSerenity.cpp Platform/FontPlugin.cpp Platform/FontPluginSerenity.cpp Platform/ImageCodecPlugin.cpp Platform/Timer.cpp Platform/TimerSerenity.cpp ReferrerPolicy/AbstractOperations.cpp ReferrerPolicy/ReferrerPolicy.cpp RequestIdleCallback/IdleDeadline.cpp ResizeObserver/ResizeObserver.cpp SecureContexts/AbstractOperations.cpp SRI/SRI.cpp Streams/AbstractOperations.cpp Streams/ReadableByteStreamController.cpp Streams/ReadableStream.cpp Streams/ReadableStreamBYOBReader.cpp Streams/ReadableStreamBYOBRequest.cpp Streams/ReadableStreamDefaultController.cpp Streams/ReadableStreamDefaultReader.cpp Streams/ReadableStreamGenericReader.cpp Streams/UnderlyingSink.cpp Streams/UnderlyingSource.cpp Streams/WritableStream.cpp Streams/WritableStreamDefaultController.cpp Streams/WritableStreamDefaultWriter.cpp SVG/AttributeNames.cpp SVG/AttributeParser.cpp SVG/SVGAnimatedLength.cpp SVG/SVGAnimatedNumber.cpp SVG/SVGClipPathElement.cpp SVG/SVGDecodedImageData.cpp SVG/SVGDefsElement.cpp SVG/SVGElement.cpp SVG/SVGGElement.cpp SVG/SVGGeometryElement.cpp SVG/SVGGraphicsElement.cpp SVG/SVGGradientElement.cpp SVG/SVGPathElement.cpp SVG/SVGCircleElement.cpp SVG/SVGEllipseElement.cpp SVG/SVGForeignObjectElement.cpp SVG/SVGLength.cpp SVG/SVGLineElement.cpp SVG/SVGLinearGradientElement.cpp SVG/SVGPolygonElement.cpp SVG/SVGPolylineElement.cpp SVG/SVGRectElement.cpp SVG/SVGRadialGradientElement.cpp SVG/SVGSVGElement.cpp SVG/SVGStopElement.cpp SVG/SVGStyleElement.cpp SVG/SVGSymbolElement.cpp SVG/SVGTextContentElement.cpp SVG/SVGTitleElement.cpp SVG/SVGUseElement.cpp SVG/TagNames.cpp SVG/ViewBox.cpp Selection/Selection.cpp UIEvents/EventNames.cpp UIEvents/FocusEvent.cpp UIEvents/KeyboardEvent.cpp UIEvents/MouseEvent.cpp UIEvents/UIEvent.cpp UIEvents/WheelEvent.cpp URL/URL.cpp URL/URLSearchParams.cpp URL/URLSearchParamsIterator.cpp UserTiming/PerformanceMark.cpp UserTiming/PerformanceMeasure.cpp WebAssembly/Instance.cpp WebAssembly/Memory.cpp WebAssembly/Module.cpp WebAssembly/Table.cpp WebAssembly/WebAssembly.cpp WebAudio/AudioContext.cpp WebAudio/BaseAudioContext.cpp WebDriver/Capabilities.cpp WebDriver/Client.cpp WebDriver/Contexts.cpp WebDriver/ElementLocationStrategies.cpp WebDriver/Error.cpp WebDriver/ExecuteScript.cpp WebDriver/Response.cpp WebDriver/Screenshot.cpp WebDriver/TimeoutsConfiguration.cpp WebGL/EventNames.cpp WebGL/WebGLContextAttributes.cpp WebGL/WebGLContextEvent.cpp WebGL/WebGLRenderingContext.cpp WebGL/WebGLRenderingContextBase.cpp WebIDL/AbstractOperations.cpp WebIDL/CallbackType.cpp WebIDL/DOMException.cpp WebIDL/OverloadResolution.cpp WebIDL/Promise.cpp WebSockets/WebSocket.cpp XHR/EventNames.cpp XHR/FormData.cpp XHR/FormDataIterator.cpp XHR/ProgressEvent.cpp XHR/XMLHttpRequest.cpp XHR/XMLHttpRequestEventTarget.cpp XHR/XMLHttpRequestUpload.cpp XML/XMLDocumentBuilder.cpp ) generate_css_implementation() set(GENERATED_SOURCES CSS/DefaultStyleSheetSource.cpp CSS/Enums.cpp CSS/MediaFeatureID.cpp CSS/PropertyID.cpp CSS/QuirksModeStyleSheetSource.cpp CSS/TransformFunctions.cpp CSS/ValueID.cpp ) serenity_lib(LibWeb web) # NOTE: We link with LibSoftGPU here instead of lazy loading it via dlopen() so that we do not have to unveil the library and pledge prot_exec. target_link_libraries(LibWeb PRIVATE LibCore LibCrypto LibJS LibMarkdown LibHTTP LibGemini LibGL LibGUI LibGfx LibIPC LibLocale LibRegex LibSoftGPU LibSyntax LibTextCodec LibUnicode LibAudio LibVideo LibWasm LibXML LibIDL) link_with_locale_data(LibWeb) generate_js_bindings(LibWeb) # Note: If you're looking for the calls to "libweb_js_bindings()", # they have been moved to "idl_files.cmake"