include(libweb_generators) set(SOURCES Bindings/AudioConstructor.cpp Bindings/CrossOriginAbstractOperations.cpp Bindings/CSSNamespace.cpp Bindings/CSSRuleWrapperFactory.cpp Bindings/CSSStyleDeclarationWrapperCustom.cpp Bindings/EventListenerWrapper.cpp Bindings/EventTargetWrapperFactory.cpp Bindings/EventWrapperFactory.cpp Bindings/IDLAbstractOperations.cpp Bindings/ImageConstructor.cpp Bindings/LocationConstructor.cpp Bindings/LocationObject.cpp Bindings/MainThreadVM.cpp Bindings/NavigatorConstructor.cpp Bindings/NavigatorObject.cpp Bindings/NodeWrapperFactory.cpp Bindings/OptionConstructor.cpp Bindings/WindowConstructor.cpp Bindings/WindowObject.cpp Bindings/WindowProxy.cpp Bindings/Wrappable.cpp Crypto/Crypto.cpp Crypto/SubtleCrypto.cpp CSS/Angle.cpp CSS/CSSConditionRule.cpp CSS/CSSGroupingRule.cpp CSS/CSSImportRule.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/FontFace.cpp CSS/Frequency.cpp CSS/Length.cpp CSS/MediaList.cpp CSS/MediaQuery.cpp CSS/MediaQueryList.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/Percentage.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/StyleComputer.cpp CSS/StyleProperties.cpp CSS/StyleSheet.cpp CSS/StyleSheetList.cpp CSS/StyleValue.cpp CSS/Supports.cpp CSS/SyntaxHighlighter/SyntaxHighlighter.cpp CSS/Time.cpp Cookie/ParsedCookie.cpp DOM/AbortController.cpp DOM/AbortSignal.cpp DOM/Attribute.cpp DOM/Attribute.idl 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/DocumentType.cpp DOM/Element.cpp DOM/ElementFactory.cpp DOM/Event.cpp DOM/EventDispatcher.cpp DOM/EventTarget.cpp DOM/HTMLCollection.cpp DOM/LiveNodeList.cpp DOM/NamedNodeMap.cpp DOM/Node.cpp DOM/NodeIterator.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/Text.cpp DOM/Text.idl DOM/TreeWalker.cpp DOMParsing/InnerHTML.cpp Dump.cpp Encoding/TextDecoder.cpp Encoding/TextEncoder.cpp Fetch/AbstractOperations.cpp FontCache.cpp Geometry/DOMRectList.cpp HTML/AttributeNames.cpp HTML/BrowsingContext.cpp HTML/BrowsingContextContainer.cpp HTML/CanvasGradient.cpp HTML/CanvasRenderingContext2D.cpp HTML/CrossOrigin/Reporting.cpp HTML/DOMParser.cpp HTML/DOMStringMap.cpp HTML/EventLoop/EventLoop.cpp HTML/EventLoop/Task.cpp HTML/EventLoop/TaskQueue.cpp HTML/EventNames.cpp HTML/FormAssociatedElement.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/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/MessageChannel.cpp HTML/MessagePort.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/Scripting/ClassicScript.cpp HTML/Scripting/Environments.cpp HTML/Scripting/ExceptionReporter.cpp HTML/Scripting/Script.cpp HTML/Scripting/WindowEnvironmentSettingsObject.cpp HTML/Storage.cpp HTML/SyntaxHighlighter/SyntaxHighlighter.cpp HTML/TagNames.cpp HTML/TextMetrics.cpp HTML/Timer.cpp HTML/Window.cpp HTML/Worker.cpp HTML/WorkerDebugConsoleClient.cpp HTML/WorkerGlobalScope.cpp HTML/WorkerLocation.cpp HighResolutionTime/Performance.cpp ImageDecoding.cpp IntersectionObserver/IntersectionObserver.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/FormattingState.cpp Layout/FrameBox.cpp Layout/ImageBox.cpp Layout/InitialContainingBlock.cpp Layout/InlineFormattingContext.cpp Layout/InlineLevelIterator.cpp Layout/InlineNode.cpp Layout/Label.cpp Layout/LabelableNode.cpp Layout/LayoutPosition.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/TableBox.cpp Layout/TableCellBox.cpp Layout/TableFormattingContext.cpp Layout/TableRowBox.cpp Layout/TableRowGroupBox.cpp Layout/TextNode.cpp Layout/TreeBuilder.cpp Loader/ContentFilter.cpp Loader/FileRequest.cpp Loader/FrameLoader.cpp Loader/ImageLoader.cpp Loader/ImageResource.cpp Loader/LoadRequest.cpp Loader/ProxyMappings.cpp Loader/Resource.cpp Loader/ResourceLoader.cpp MimeSniff/MimeType.cpp Namespace.cpp NavigationTiming/PerformanceTiming.cpp Page/EditEventHandler.cpp Page/EventHandler.cpp Page/Page.cpp Painting/BackgroundPainting.cpp Painting/BorderPainting.cpp Painting/BorderRadiusCornerClipper.cpp Painting/ButtonPaintable.cpp Painting/CanvasPaintable.cpp Painting/CheckBoxPaintable.cpp Painting/ImagePaintable.cpp Painting/InlinePaintable.cpp Painting/LabelablePaintable.cpp Painting/MarkerPaintable.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/TextPaintable.cpp Painting/ShadowPainting.cpp Painting/StackingContext.cpp RequestIdleCallback/IdleDeadline.cpp ResizeObserver/ResizeObserver.cpp SVG/AttributeNames.cpp SVG/AttributeParser.cpp SVG/SVGAnimatedLength.cpp SVG/SVGClipPathElement.cpp SVG/SVGDefsElement.cpp SVG/SVGElement.cpp SVG/SVGElement.cpp SVG/SVGGElement.cpp SVG/SVGGeometryElement.cpp SVG/SVGGraphicsElement.cpp SVG/SVGPathElement.cpp SVG/SVGCircleElement.cpp SVG/SVGEllipseElement.cpp SVG/SVGLength.cpp SVG/SVGLineElement.cpp SVG/SVGPolygonElement.cpp SVG/SVGPolylineElement.cpp SVG/SVGRectElement.cpp SVG/SVGSVGElement.cpp SVG/SVGTextContentElement.cpp SVG/TagNames.cpp SVG/ViewBox.cpp Selection/Selection.cpp UIEvents/EventNames.cpp UIEvents/FocusEvent.cpp UIEvents/KeyboardEvent.cpp UIEvents/MouseEvent.cpp URL/URL.cpp URL/URLSearchParams.cpp URL/URLSearchParamsIterator.cpp WebAssembly/WebAssemblyInstanceConstructor.cpp WebAssembly/WebAssemblyInstanceObject.cpp WebAssembly/WebAssemblyInstanceObjectPrototype.cpp WebAssembly/WebAssemblyMemoryConstructor.cpp WebAssembly/WebAssemblyMemoryPrototype.cpp WebAssembly/WebAssemblyModuleConstructor.cpp WebAssembly/WebAssemblyModuleObject.cpp WebAssembly/WebAssemblyObject.cpp WebAssembly/WebAssemblyTableConstructor.cpp WebAssembly/WebAssemblyTableObject.cpp WebAssembly/WebAssemblyTablePrototype.cpp WebGL/WebGLContextAttributes.cpp WebGL/WebGLRenderingContext.cpp WebGL/WebGLRenderingContextBase.cpp WebSockets/WebSocket.cpp XHR/EventNames.cpp XHR/XMLHttpRequest.cpp XHR/XMLHttpRequestEventTarget.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 LibCore LibJS LibMarkdown LibGemini LibGL LibGUI LibGfx LibSoftGPU LibTextCodec LibWasm LibXML) link_with_unicode_data(LibWeb) generate_js_wrappers(LibWeb) # Note: If you're looking for the calls to "libweb_js_wrapper()", # they have been moved to "idl_files.cmake"