ladybird/Libraries/LibWeb/CMakeLists.txt
Andreas Kling 66263f142b LibWeb: Add StyleScope to keep style caches per Document/ShadowRoot
Before this change, we've been maintaining various StyleComputer caches
at the document level.

This made sense for old-school documents without shadow trees, since
all the style information was document-wide anyway. However, documents
with many shadow trees ended up suffering since any time you mutated
a style sheet inside a shadow tree, *all* style caches for the entire
document would get invalidated.

This was particularly expensive on Reddit, which has tons of shadow
trees with their own style elements. Every time we'd create one of their
custom elements, we'd invalidate the document-level "rule cache" and
have to rebuild it, taking about ~60ms each time (ouch).

This commit introduces a new object called StyleScope.

Every Document and ShadowRoot has its own StyleScope. Rule caches etc
are moved from StyleComputer to StyleScope.

Rule cache invalidation now happens at StyleScope level. As an example,
rule cache rebuilds now take ~1ms on Reddit instead of ~60ms.

This is largely a mechanical change, moving things around, but there's
one key detail to be aware of: due to the :host selector, which works
across the shadow DOM boundary and reaches from inside a shadow tree out
into the light tree, there are various places where we have to check
both the shadow tree's StyleScope *and* the document-level StyleScope
in order to get all rules that may apply.
2025-11-14 22:05:33 +01:00

1177 lines
38 KiB
CMake

include(libweb_generators)
include(vulkan)
include(skia)
include(SDL3)
find_package(unofficial-angle CONFIG)
if(unofficial-angle_FOUND)
set(ANGLE_TARGETS unofficial::angle::libEGL unofficial::angle::libGLESv2)
else()
find_package(PkgConfig)
pkg_check_modules(angle REQUIRED IMPORTED_TARGET angle)
set(ANGLE_TARGETS PkgConfig::angle)
endif()
set(SOURCES
Animations/Animatable.cpp
Animations/Animation.cpp
Animations/AnimationEffect.cpp
Animations/AnimationPlaybackEvent.cpp
Animations/AnimationTimeline.cpp
Animations/DocumentTimeline.cpp
Animations/KeyframeEffect.cpp
Animations/PseudoElementParsing.cpp
ARIA/AriaData.cpp
ARIA/ARIAMixin.cpp
ARIA/AttributeNames.cpp
ARIA/Roles.cpp
ARIA/RoleType.cpp
ARIA/StateAndProperties.cpp
Bindings/AudioConstructor.cpp
Bindings/HostDefined.cpp
Bindings/ImageConstructor.cpp
Bindings/Intrinsics.cpp
Bindings/LocationConstructor.cpp
Bindings/MainThreadVM.cpp
Bindings/OptionConstructor.cpp
Bindings/PlatformObject.cpp
Bindings/PrincipalHostDefined.cpp
Bindings/SyntheticHostDefined.cpp
Clipboard/Clipboard.cpp
Clipboard/ClipboardEvent.cpp
Clipboard/ClipboardItem.cpp
Clipboard/SystemClipboard.cpp
Compression/CompressionStream.cpp
Compression/DecompressionStream.cpp
ContentSecurityPolicy/BlockingAlgorithms.cpp
ContentSecurityPolicy/Directives/BaseUriDirective.cpp
ContentSecurityPolicy/Directives/ChildSourceDirective.cpp
ContentSecurityPolicy/Directives/ConnectSourceDirective.cpp
ContentSecurityPolicy/Directives/DefaultSourceDirective.cpp
ContentSecurityPolicy/Directives/Directive.cpp
ContentSecurityPolicy/Directives/DirectiveFactory.cpp
ContentSecurityPolicy/Directives/DirectiveOperations.cpp
ContentSecurityPolicy/Directives/FontSourceDirective.cpp
ContentSecurityPolicy/Directives/FormActionDirective.cpp
ContentSecurityPolicy/Directives/FrameAncestorsDirective.cpp
ContentSecurityPolicy/Directives/FrameSourceDirective.cpp
ContentSecurityPolicy/Directives/ImageSourceDirective.cpp
ContentSecurityPolicy/Directives/KeywordSources.cpp
ContentSecurityPolicy/Directives/KeywordTrustedTypes.cpp
ContentSecurityPolicy/Directives/ManifestSourceDirective.cpp
ContentSecurityPolicy/Directives/MediaSourceDirective.cpp
ContentSecurityPolicy/Directives/Names.cpp
ContentSecurityPolicy/Directives/ObjectSourceDirective.cpp
ContentSecurityPolicy/Directives/ReportToDirective.cpp
ContentSecurityPolicy/Directives/ReportUriDirective.cpp
ContentSecurityPolicy/Directives/SandboxDirective.cpp
ContentSecurityPolicy/Directives/ScriptSourceAttributeDirective.cpp
ContentSecurityPolicy/Directives/ScriptSourceDirective.cpp
ContentSecurityPolicy/Directives/ScriptSourceElementDirective.cpp
ContentSecurityPolicy/Directives/SerializedDirective.cpp
ContentSecurityPolicy/Directives/SourceExpression.cpp
ContentSecurityPolicy/Directives/StyleSourceAttributeDirective.cpp
ContentSecurityPolicy/Directives/StyleSourceDirective.cpp
ContentSecurityPolicy/Directives/StyleSourceElementDirective.cpp
ContentSecurityPolicy/Directives/WebRTCDirective.cpp
ContentSecurityPolicy/Directives/WorkerSourceDirective.cpp
ContentSecurityPolicy/Policy.cpp
ContentSecurityPolicy/PolicyList.cpp
ContentSecurityPolicy/SecurityPolicyViolationEvent.cpp
ContentSecurityPolicy/SerializedPolicy.cpp
ContentSecurityPolicy/Violation.cpp
Cookie/Cookie.cpp
Cookie/ParsedCookie.cpp
CookieStore/CookieChangeEvent.cpp
CookieStore/CookieStore.cpp
CredentialManagement/Credential.cpp
CredentialManagement/CredentialsContainer.cpp
CredentialManagement/FederatedCredential.cpp
CredentialManagement/PasswordCredential.cpp
Crypto/Crypto.cpp
Crypto/CryptoAlgorithms.cpp
Crypto/CryptoBindings.cpp
Crypto/CryptoKey.cpp
Crypto/KeyAlgorithms.cpp
Crypto/SubtleCrypto.cpp
CSS/Angle.cpp
CSS/AnimationEvent.cpp
CSS/BooleanExpression.cpp
CSS/CalculatedOr.cpp
CSS/CascadedProperties.cpp
CSS/Clip.cpp
CSS/ComputedProperties.cpp
CSS/CountersSet.cpp
CSS/CSS.cpp
CSS/CSSAnimation.cpp
CSS/CSSConditionRule.cpp
CSS/CSSCounterStyleRule.cpp
CSS/CSSDescriptors.cpp
CSS/CSSFontFaceDescriptors.cpp
CSS/CSSFontFaceRule.cpp
CSS/CSSGroupingRule.cpp
CSS/CSSImageValue.cpp
CSS/CSSImportRule.cpp
CSS/CSSKeyframeRule.cpp
CSS/CSSKeyframesRule.cpp
CSS/CSSKeywordValue.cpp
CSS/CSSLayerBlockRule.cpp
CSS/CSSLayerStatementRule.cpp
CSS/CSSMarginRule.cpp
CSS/CSSMathClamp.cpp
CSS/CSSMathInvert.cpp
CSS/CSSMathMax.cpp
CSS/CSSMathMin.cpp
CSS/CSSMathNegate.cpp
CSS/CSSMathProduct.cpp
CSS/CSSMathSum.cpp
CSS/CSSMathValue.cpp
CSS/CSSMatrixComponent.cpp
CSS/CSSMediaRule.cpp
CSS/CSSNamespaceRule.cpp
CSS/CSSNestedDeclarations.cpp
CSS/CSSNumericArray.cpp
CSS/CSSNumericValue.cpp
CSS/CSSPageRule.cpp
CSS/CSSPageDescriptors.cpp
CSS/CSSPerspective.cpp
CSS/CSSPropertyRule.cpp
CSS/CSSRotate.cpp
CSS/CSSRule.cpp
CSS/CSSRuleList.cpp
CSS/CSSScale.cpp
CSS/CSSSkew.cpp
CSS/CSSSkewX.cpp
CSS/CSSSkewY.cpp
CSS/CSSStyleDeclaration.cpp
CSS/CSSStyleProperties.cpp
CSS/CSSStyleRule.cpp
CSS/CSSStyleSheet.cpp
CSS/CSSStyleValue.cpp
CSS/CSSSupportsRule.cpp
CSS/CSSTransformComponent.cpp
CSS/CSSTransformValue.cpp
CSS/CSSTransition.cpp
CSS/CSSTranslate.cpp
CSS/CSSUnitValue.cpp
CSS/CSSUnparsedValue.cpp
CSS/CSSVariableReferenceValue.cpp
CSS/Descriptor.cpp
CSS/Display.cpp
CSS/EasingFunction.cpp
CSS/EdgeRect.cpp
CSS/Fetch.cpp
CSS/Flex.cpp
CSS/FontFace.cpp
CSS/FontFaceSet.cpp
CSS/Frequency.cpp
CSS/GridTrackPlacement.cpp
CSS/GridTrackSize.cpp
CSS/Interpolation.cpp
CSS/InvalidationSet.cpp
CSS/Length.cpp
CSS/LengthBox.cpp
CSS/MediaList.cpp
CSS/MediaQuery.cpp
CSS/MediaQueryList.cpp
CSS/MediaQueryListEvent.cpp
CSS/Number.cpp
CSS/NumericType.cpp
CSS/PageSelector.cpp
CSS/ParsedFontFace.cpp
CSS/Parser/ArbitrarySubstitutionFunctions.cpp
CSS/Parser/ComponentValue.cpp
CSS/Parser/DescriptorParsing.cpp
CSS/Parser/ErrorReporter.cpp
CSS/Parser/GradientParsing.cpp
CSS/Parser/Helpers.cpp
CSS/Parser/MediaParsing.cpp
CSS/Parser/Parser.cpp
CSS/Parser/PropertyParsing.cpp
CSS/Parser/RuleContext.cpp
CSS/Parser/RuleParsing.cpp
CSS/Parser/SelectorParsing.cpp
CSS/Parser/Syntax.cpp
CSS/Parser/SyntaxParsing.cpp
CSS/Parser/Token.cpp
CSS/Parser/Tokenizer.cpp
CSS/Parser/Types.cpp
CSS/Parser/ValueParsing.cpp
CSS/PreferredColorScheme.cpp
CSS/PreferredContrast.cpp
CSS/PreferredMotion.cpp
CSS/Ratio.cpp
CSS/Resolution.cpp
CSS/Screen.cpp
CSS/ScreenOrientation.cpp
CSS/Selector.cpp
CSS/SelectorEngine.cpp
CSS/Serialize.cpp
CSS/Size.cpp
CSS/Sizing.cpp
CSS/StyleComputer.cpp
CSS/StyleInvalidation.cpp
CSS/StyleInvalidationData.cpp
CSS/StyleProperty.cpp
CSS/StylePropertyMapReadOnly.cpp
CSS/StylePropertyMap.cpp
CSS/StyleScope.cpp
CSS/StyleSheet.cpp
CSS/StyleSheetIdentifier.cpp
CSS/StyleSheetList.cpp
CSS/StyleValues/AbstractImageStyleValue.cpp
CSS/StyleValues/AnchorStyleValue.cpp
CSS/StyleValues/AnchorSizeStyleValue.cpp
CSS/StyleValues/AngleStyleValue.cpp
CSS/StyleValues/BackgroundSizeStyleValue.cpp
CSS/StyleValues/BasicShapeStyleValue.cpp
CSS/StyleValues/BorderImageSliceStyleValue.cpp
CSS/StyleValues/BorderRadiusStyleValue.cpp
CSS/StyleValues/CalculatedStyleValue.cpp
CSS/StyleValues/ColorFunctionStyleValue.cpp
CSS/StyleValues/ColorMixStyleValue.cpp
CSS/StyleValues/ColorSchemeStyleValue.cpp
CSS/StyleValues/ColorStyleValue.cpp
CSS/StyleValues/ConicGradientStyleValue.cpp
CSS/StyleValues/ContentStyleValue.cpp
CSS/StyleValues/CounterDefinitionsStyleValue.cpp
CSS/StyleValues/CounterStyleValue.cpp
CSS/StyleValues/CursorStyleValue.cpp
CSS/StyleValues/CustomIdentStyleValue.cpp
CSS/StyleValues/DimensionStyleValue.cpp
CSS/StyleValues/DisplayStyleValue.cpp
CSS/StyleValues/EasingStyleValue.cpp
CSS/StyleValues/EdgeStyleValue.cpp
CSS/StyleValues/FilterValueListStyleValue.cpp
CSS/StyleValues/FontSourceStyleValue.cpp
CSS/StyleValues/FontStyleStyleValue.cpp
CSS/StyleValues/GridAutoFlowStyleValue.cpp
CSS/StyleValues/GridTemplateAreaStyleValue.cpp
CSS/StyleValues/GridTrackPlacementStyleValue.cpp
CSS/StyleValues/GridTrackSizeListStyleValue.cpp
CSS/StyleValues/HSLColorStyleValue.cpp
CSS/StyleValues/HWBColorStyleValue.cpp
CSS/StyleValues/ImageStyleValue.cpp
CSS/StyleValues/IntegerStyleValue.cpp
CSS/StyleValues/KeywordStyleValue.cpp
CSS/StyleValues/LCHLikeColorStyleValue.cpp
CSS/StyleValues/LabLikeColorStyleValue.cpp
CSS/StyleValues/LengthStyleValue.cpp
CSS/StyleValues/LightDarkStyleValue.cpp
CSS/StyleValues/LinearGradientStyleValue.cpp
CSS/StyleValues/MathDepthStyleValue.cpp
CSS/StyleValues/NumberStyleValue.cpp
CSS/StyleValues/OpenTypeTaggedStyleValue.cpp
CSS/StyleValues/PositionStyleValue.cpp
CSS/StyleValues/RGBColorStyleValue.cpp
CSS/StyleValues/RadialGradientStyleValue.cpp
CSS/StyleValues/RectStyleValue.cpp
CSS/StyleValues/RepeatStyleStyleValue.cpp
CSS/StyleValues/ScrollbarColorStyleValue.cpp
CSS/StyleValues/ShadowStyleValue.cpp
CSS/StyleValues/ShorthandStyleValue.cpp
CSS/StyleValues/StyleValue.cpp
CSS/StyleValues/StyleValueList.cpp
CSS/StyleValues/SuperellipseStyleValue.cpp
CSS/StyleValues/TextUnderlinePositionStyleValue.cpp
CSS/StyleValues/TransformationStyleValue.cpp
CSS/StyleValues/TreeCountingFunctionStyleValue.cpp
CSS/StyleValues/UnicodeRangeStyleValue.cpp
CSS/StyleValues/UnresolvedStyleValue.cpp
CSS/Supports.cpp
CSS/SyntaxHighlighter/SyntaxHighlighter.cpp
CSS/SystemColor.cpp
CSS/Time.cpp
CSS/Transformation.cpp
CSS/TransitionEvent.cpp
CSS/URL.cpp
CSS/ValueType.cpp
CSS/VisualViewport.cpp
DOM/AbortController.cpp
DOM/AbortSignal.cpp
DOM/AbstractElement.cpp
DOM/AbstractRange.cpp
DOM/AccessibilityTreeNode.cpp
DOM/AdoptedStyleSheets.cpp
DOM/Attr.cpp
DOM/CDATASection.cpp
DOM/CharacterData.cpp
DOM/Comment.cpp
DOM/CustomEvent.cpp
DOM/Document.cpp
DOM/DocumentFragment.cpp
DOM/DocumentLoadEventDelayer.cpp
DOM/DocumentLoading.cpp
DOM/DocumentObserver.cpp
DOM/DocumentType.cpp
DOM/DOMEventListener.cpp
DOM/DOMImplementation.cpp
DOM/DOMTokenList.cpp
DOM/EditingHostManager.cpp
DOM/Element.cpp
DOM/ElementByIdMap.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/PseudoElement.cpp
DOM/QualifiedName.cpp
DOM/Range.cpp
DOM/ShadowRoot.cpp
DOM/Slot.cpp
DOM/Slottable.cpp
DOM/StaticNodeList.cpp
DOM/StaticRange.cpp
DOM/StyleElementUtils.cpp
DOM/StyleInvalidator.cpp
DOM/Text.cpp
DOM/TreeWalker.cpp
DOM/Utils.cpp
DOM/XMLDocument.cpp
DOMURL/DOMURL.cpp
DOMURL/URLSearchParams.cpp
DOMURL/URLSearchParamsIterator.cpp
Dump.cpp
Editing/CommandNames.cpp
Editing/Commands.cpp
Editing/ExecCommand.cpp
Editing/Internal/Algorithms.cpp
Encoding/TextDecoder.cpp
Encoding/TextEncoder.cpp
Encoding/TextEncoderCommon.cpp
Encoding/TextEncoderStream.cpp
EncryptedMediaExtensions/Algorithms.cpp
EncryptedMediaExtensions/MediaKeySystemAccess.cpp
EncryptedMediaExtensions/NavigatorEncryptedMediaExtensionsPartial.cpp
EntriesAPI/FileSystemEntry.cpp
EventTiming/PerformanceEventTiming.cpp
Fetch/Body.cpp
Fetch/BodyInit.cpp
Fetch/Enums.cpp
Fetch/Fetching/Checks.cpp
Fetch/Fetching/FetchedDataReceiver.cpp
Fetch/Fetching/Fetching.cpp
Fetch/Fetching/PendingResponse.cpp
Fetch/Fetching/RefCountedFlag.cpp
Fetch/FetchMethod.cpp
Fetch/Headers.cpp
Fetch/HeadersIterator.cpp
Fetch/Infrastructure/FetchAlgorithms.cpp
Fetch/Infrastructure/FetchController.cpp
Fetch/Infrastructure/FetchParams.cpp
Fetch/Infrastructure/FetchRecord.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/IncrementalReadLoopReadRequest.cpp
Fetch/Infrastructure/MimeTypeBlocking.cpp
Fetch/Infrastructure/NetworkPartitionKey.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/BlobURLStore.cpp
FileAPI/File.cpp
FileAPI/FileList.cpp
FileAPI/FileReader.cpp
FileAPI/FileReaderSync.cpp
Gamepad/EventNames.cpp
Gamepad/Gamepad.cpp
Gamepad/GamepadButton.cpp
Gamepad/GamepadEvent.cpp
Gamepad/GamepadHapticActuator.cpp
Gamepad/NavigatorGamepad.cpp
Geolocation/Geolocation.cpp
Serial/Serial.cpp
Serial/SerialPort.cpp
Geolocation/GeolocationCoordinates.cpp
Geolocation/GeolocationPosition.cpp
Geolocation/GeolocationPositionError.cpp
Geometry/DOMMatrix.cpp
Geometry/DOMMatrixReadOnly.cpp
Geometry/DOMPoint.cpp
Geometry/DOMPointReadOnly.cpp
Geometry/DOMQuad.cpp
Geometry/DOMRect.cpp
Geometry/DOMRectList.cpp
Geometry/DOMRectReadOnly.cpp
GPC/GlobalPrivacyControl.cpp
GraphemeEdgeTracker.cpp
HighResolutionTime/Performance.cpp
HighResolutionTime/TimeOrigin.cpp
HTML/AbstractWorker.cpp
HTML/AnimatedBitmapDecodedImageData.cpp
HTML/AnimationFrameCallbackDriver.cpp
HTML/AttributeNames.cpp
HTML/AudioTrack.cpp
HTML/AudioTrackList.cpp
HTML/AutocompleteElement.cpp
HTML/BarProp.cpp
HTML/BeforeUnloadEvent.cpp
HTML/BroadcastChannel.cpp
HTML/BrowsingContext.cpp
HTML/BrowsingContextGroup.cpp
HTML/Canvas/CanvasDrawImage.cpp
HTML/Canvas/CanvasFillStrokeStyles.cpp
HTML/Canvas/CanvasPath.cpp
HTML/Canvas/CanvasSettings.cpp
HTML/Canvas/CanvasState.cpp
HTML/Canvas/CanvasTextDrawingStyles.cpp
HTML/Canvas/SerializeBitmap.cpp
HTML/CanvasGradient.cpp
HTML/CanvasPattern.cpp
HTML/CanvasRenderingContext2D.cpp
HTML/CloseEvent.cpp
HTML/CloseWatcher.cpp
HTML/CloseWatcherManager.cpp
HTML/CommandEvent.cpp
HTML/CORSSettingAttribute.cpp
HTML/CrossOrigin/AbstractOperations.cpp
HTML/CrossOrigin/Reporting.cpp
HTML/CustomElements/CustomElementDefinition.cpp
HTML/CustomElements/CustomElementName.cpp
HTML/CustomElements/CustomElementReactionNames.cpp
HTML/CustomElements/CustomElementRegistry.cpp
HTML/CustomElements/CustomStateSet.cpp
HTML/DataTransfer.cpp
HTML/DataTransferItem.cpp
HTML/DataTransferItemList.cpp
HTML/Dates.cpp
HTML/DecodedImageData.cpp
HTML/DedicatedWorkerGlobalScope.cpp
HTML/DocumentState.cpp
HTML/DOMParser.cpp
HTML/DOMStringList.cpp
HTML/DOMStringMap.cpp
HTML/DragDataStore.cpp
HTML/DragEvent.cpp
HTML/ElementInternals.cpp
HTML/EmbedderPolicy.cpp
HTML/ErrorEvent.cpp
HTML/EventHandler.cpp
HTML/EventLoop/EventLoop.cpp
HTML/EventLoop/Task.cpp
HTML/EventLoop/TaskQueue.cpp
HTML/EventNames.cpp
HTML/EventSource.cpp
HTML/FileFilter.cpp
HTML/Focus.cpp
HTML/FormAssociatedElement.cpp
HTML/FormControlInfrastructure.cpp
HTML/FormDataEvent.cpp
HTML/GlobalEventHandlers.cpp
HTML/HashChangeEvent.cpp
HTML/History.cpp
HTML/HTMLAllCollection.cpp
HTML/HTMLAnchorElement.cpp
HTML/HTMLAreaElement.cpp
HTML/HTMLAudioElement.cpp
HTML/HTMLBaseElement.cpp
HTML/HTMLBodyElement.cpp
HTML/HTMLBRElement.cpp
HTML/HTMLButtonElement.cpp
HTML/HTMLCanvasElement.cpp
HTML/HTMLDataElement.cpp
HTML/HTMLDataListElement.cpp
HTML/HTMLDetailsElement.cpp
HTML/HTMLDialogElement.cpp
HTML/HTMLDirectoryElement.cpp
HTML/HTMLDivElement.cpp
HTML/HTMLDListElement.cpp
HTML/HTMLDocument.cpp
HTML/HTMLElement.cpp
HTML/HTMLEmbedElement.cpp
HTML/HTMLFieldSetElement.cpp
HTML/HTMLFontElement.cpp
HTML/HTMLFormControlsCollection.cpp
HTML/HTMLFormElement.cpp
HTML/HTMLFrameElement.cpp
HTML/HTMLFrameSetElement.cpp
HTML/HTMLHeadElement.cpp
HTML/HTMLHeadingElement.cpp
HTML/HTMLHRElement.cpp
HTML/HTMLHtmlElement.cpp
HTML/HTMLHyperlinkElementUtils.cpp
HTML/HTMLIFrameElement.cpp
HTML/HTMLImageElement.cpp
HTML/HTMLInputElement.cpp
HTML/HTMLLabelElement.cpp
HTML/HTMLLegendElement.cpp
HTML/HTMLLIElement.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/HTMLObjectElement.cpp
HTML/HTMLOListElement.cpp
HTML/HTMLOptGroupElement.cpp
HTML/HTMLOptionElement.cpp
HTML/HTMLOptionsCollection.cpp
HTML/HTMLOrSVGElement.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/ImageBitmap.cpp
HTML/ImageData.cpp
HTML/ImageRequest.cpp
HTML/ListOfAvailableImages.cpp
HTML/Location.cpp
HTML/MediaError.cpp
HTML/MediaTrackBase.cpp
HTML/MessageChannel.cpp
HTML/MessageEvent.cpp
HTML/MessagePort.cpp
HTML/MimeType.cpp
HTML/MimeTypeArray.cpp
HTML/Navigable.cpp
HTML/NavigableContainer.cpp
HTML/NavigateEvent.cpp
HTML/Navigation.cpp
HTML/NavigationCurrentEntryChangeEvent.cpp
HTML/NavigationDestination.cpp
HTML/NavigationHistoryEntry.cpp
HTML/NavigationObserver.cpp
HTML/NavigationParams.cpp
HTML/NavigationTransition.cpp
HTML/Navigator.cpp
HTML/NavigatorBeacon.cpp
HTML/NavigatorID.cpp
HTML/Numbers.cpp
HTML/OffscreenCanvas.cpp
HTML/OffscreenCanvasRenderingContext2D.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/PolicyContainers.cpp
HTML/PopoverInvokerElement.cpp
HTML/PopStateEvent.cpp
HTML/PotentialCORSRequest.cpp
HTML/PromiseRejectionEvent.cpp
HTML/RadioNodeList.cpp
HTML/RenderingThread.cpp
HTML/SandboxingFlagSet.cpp
HTML/Scripting/Agent.cpp
HTML/Scripting/ClassicScript.cpp
HTML/Scripting/Environments.cpp
HTML/Scripting/EnvironmentSettingsSnapshot.cpp
HTML/Scripting/ExceptionReporter.cpp
HTML/Scripting/Fetching.cpp
HTML/Scripting/ImportMap.cpp
HTML/Scripting/ImportMapParseResult.cpp
HTML/Scripting/ModuleMap.cpp
HTML/Scripting/ModuleScript.cpp
HTML/Scripting/Script.cpp
HTML/Scripting/SerializedEnvironmentSettingsObject.cpp
HTML/Scripting/SimilarOriginWindowAgent.cpp
HTML/Scripting/SyntheticRealmSettings.cpp
HTML/Scripting/TemporaryExecutionContext.cpp
HTML/Scripting/WindowEnvironmentSettingsObject.cpp
HTML/Scripting/WorkerAgent.cpp
HTML/Scripting/WorkerEnvironmentSettingsObject.cpp
HTML/SelectedFile.cpp
HTML/SelectItem.cpp
HTML/SerializedPolicyContainer.cpp
HTML/SessionHistoryEntry.cpp
HTML/SessionHistoryTraversalQueue.cpp
HTML/ShadowRealmGlobalScope.cpp
HTML/SharedResourceRequest.cpp
HTML/SharedWorker.cpp
HTML/SharedWorkerGlobalScope.cpp
HTML/SourceSet.cpp
HTML/SourceSnapshotParams.cpp
HTML/Storage.cpp
HTML/StorageEvent.cpp
HTML/StructuredSerialize.cpp
HTML/SubmitEvent.cpp
HTML/SyntaxHighlighter/SyntaxHighlighter.cpp
HTML/TagNames.cpp
HTML/TextMetrics.cpp
HTML/TextTrack.cpp
HTML/TextTrackCue.cpp
HTML/TextTrackCueList.cpp
HTML/TextTrackList.cpp
HTML/TextTrackObserver.cpp
HTML/Timer.cpp
HTML/TimeRanges.cpp
HTML/ToggleEvent.cpp
HTML/TokenizedFeatures.cpp
HTML/TrackEvent.cpp
HTML/TraversableNavigable.cpp
HTML/UniversalGlobalScope.cpp
HTML/UserActivation.cpp
HTML/UserNavigationInvolvement.cpp
HTML/ValidityState.cpp
HTML/VideoTrack.cpp
HTML/VideoTrackList.cpp
HTML/WebViewHints.cpp
HTML/Window.cpp
HTML/WindowEventHandlers.cpp
HTML/WindowOrWorkerGlobalScope.cpp
HTML/WindowProxy.cpp
HTML/Worker.cpp
HTML/WorkerAgentParent.cpp
HTML/WorkerDebugConsoleClient.cpp
HTML/WorkerGlobalScope.cpp
HTML/WorkerLocation.cpp
HTML/WorkerNavigator.cpp
HTML/WorkletGlobalScope.cpp
HTML/XMLSerializer.cpp
IndexedDB/IDBCursor.cpp
IndexedDB/IDBDatabase.cpp
IndexedDB/IDBFactory.cpp
IndexedDB/IDBIndex.cpp
IndexedDB/IDBKeyRange.cpp
IndexedDB/IDBObjectStore.cpp
IndexedDB/IDBOpenDBRequest.cpp
IndexedDB/IDBRecord.cpp
IndexedDB/IDBRequest.cpp
IndexedDB/IDBTransaction.cpp
IndexedDB/IDBVersionChangeEvent.cpp
IndexedDB/Internal/Algorithms.cpp
IndexedDB/Internal/Database.cpp
IndexedDB/Internal/IDBDatabaseObserver.cpp
IndexedDB/Internal/IDBRequestObserver.cpp
IndexedDB/Internal/IDBTransactionObserver.cpp
IndexedDB/Internal/Index.cpp
IndexedDB/Internal/Key.cpp
IndexedDB/Internal/ObjectStore.cpp
IndexedDB/Internal/RequestList.cpp
Infra/ByteSequences.cpp
Infra/JSON.cpp
Infra/Strings.cpp
Internals/InternalAnimationTimeline.cpp
Internals/InternalGamepad.cpp
Internals/Internals.cpp
Internals/InternalsBase.cpp
Internals/WebUI.cpp
IntersectionObserver/IntersectionObserver.cpp
IntersectionObserver/IntersectionObserverEntry.cpp
Layout/AudioBox.cpp
Layout/AvailableSpace.cpp
Layout/BlockContainer.cpp
Layout/BlockFormattingContext.cpp
Layout/Box.cpp
Layout/BreakNode.cpp
Layout/CanvasBox.cpp
Layout/CheckBox.cpp
Layout/FieldSetBox.cpp
Layout/FlexFormattingContext.cpp
Layout/FormattingContext.cpp
Layout/GridFormattingContext.cpp
Layout/ImageBox.cpp
Layout/ImageProvider.cpp
Layout/InlineFormattingContext.cpp
Layout/InlineLevelIterator.cpp
Layout/InlineNode.cpp
Layout/Label.cpp
Layout/LabelableNode.cpp
Layout/LayoutState.cpp
Layout/LegendBox.cpp
Layout/LineBox.cpp
Layout/LineBoxFragment.cpp
Layout/LineBuilder.cpp
Layout/ListItemBox.cpp
Layout/ListItemMarkerBox.cpp
Layout/NavigableContainerViewport.cpp
Layout/Node.cpp
Layout/RadioButton.cpp
Layout/ReplacedBox.cpp
Layout/SVGBox.cpp
Layout/SVGClipBox.cpp
Layout/SVGForeignObjectBox.cpp
Layout/SVGFormattingContext.cpp
Layout/SVGGeometryBox.cpp
Layout/SVGGraphicsBox.cpp
Layout/SVGImageBox.cpp
Layout/SVGMaskBox.cpp
Layout/SVGSVGBox.cpp
Layout/SVGTextBox.cpp
Layout/SVGTextPathBox.cpp
Layout/TableFormattingContext.cpp
Layout/TableGrid.cpp
Layout/TableWrapper.cpp
Layout/TextNode.cpp
Layout/TreeBuilder.cpp
Layout/VideoBox.cpp
Layout/Viewport.cpp
Loader/ContentFilter.cpp
Loader/FileRequest.cpp
Loader/GeneratedPagesLoader.cpp
Loader/LoadRequest.cpp
Loader/ProxyMappings.cpp
Loader/ResourceLoader.cpp
MathML/AttributeNames.cpp
MathML/MathMLElement.cpp
MathML/MathMLMiElement.cpp
MathML/MathMLMspaceElement.cpp
MathML/TagNames.cpp
MediaCapabilitiesAPI/MediaCapabilities.cpp
MediaSourceExtensions/BufferedChangeEvent.cpp
MediaSourceExtensions/EventNames.cpp
MediaSourceExtensions/ManagedMediaSource.cpp
MediaSourceExtensions/ManagedSourceBuffer.cpp
MediaSourceExtensions/MediaSource.cpp
MediaSourceExtensions/MediaSourceHandle.cpp
MediaSourceExtensions/SourceBuffer.cpp
MediaSourceExtensions/SourceBufferList.cpp
MimeSniff/MimeType.cpp
MimeSniff/Resource.cpp
MixedContent/AbstractOperations.cpp
Namespace.cpp
NavigationTiming/EntryNames.cpp
NavigationTiming/PerformanceNavigation.cpp
NavigationTiming/PerformanceTiming.cpp
NotificationsAPI/Notification.cpp
Page/DragAndDropEventHandler.cpp
Page/EventHandler.cpp
Page/InputEvent.cpp
Page/Page.cpp
Painting/AudioPaintable.cpp
Painting/BackgroundPainting.cpp
Painting/BackingStoreManager.cpp
Painting/BorderPainting.cpp
Painting/BorderRadiiData.cpp
Painting/BorderRadiusCornerClipper.cpp
Painting/BordersData.cpp
Painting/BoxModelMetrics.cpp
Painting/CanvasPaintable.cpp
Painting/CheckBoxPaintable.cpp
Painting/ClipFrame.cpp
Painting/DisplayList.cpp
Painting/DisplayListCommand.cpp
Painting/DisplayListPlayerSkia.cpp
Painting/DisplayListRecorder.cpp
Painting/DisplayListRecordingContext.cpp
Painting/FieldSetPaintable.cpp
Painting/GradientPainting.cpp
Painting/ImagePaintable.cpp
Painting/LabelablePaintable.cpp
Painting/MarkerPaintable.cpp
Painting/MediaPaintable.cpp
Painting/NavigableContainerViewportPaintable.cpp
Painting/Paintable.cpp
Painting/PaintableBox.cpp
Painting/PaintableFragment.cpp
Painting/RadioButtonPaintable.cpp
Painting/ScrollFrame.cpp
Painting/ScrollState.cpp
Painting/ShadowPainting.cpp
Painting/StackingContext.cpp
Painting/SVGClipPaintable.cpp
Painting/SVGForeignObjectPaintable.cpp
Painting/SVGGraphicsPaintable.cpp
Painting/SVGMaskable.cpp
Painting/SVGMaskPaintable.cpp
Painting/SVGPaintable.cpp
Painting/SVGPathPaintable.cpp
Painting/SVGSVGPaintable.cpp
Painting/TableBordersPainting.cpp
Painting/TextPaintable.cpp
Painting/VideoPaintable.cpp
Painting/ViewportPaintable.cpp
PerformanceTimeline/EntryTypes.cpp
PerformanceTimeline/EventNames.cpp
PerformanceTimeline/PerformanceEntry.cpp
PerformanceTimeline/PerformanceObserver.cpp
PerformanceTimeline/PerformanceObserverEntryList.cpp
PermissionsPolicy/AutoplayAllowlist.cpp
PixelUnits.cpp
Platform/EventLoopPlugin.cpp
Platform/EventLoopPluginSerenity.cpp
Platform/FontPlugin.cpp
Platform/ImageCodecPlugin.cpp
Platform/Timer.cpp
Platform/TimerSerenity.cpp
ReferrerPolicy/AbstractOperations.cpp
ReferrerPolicy/ReferrerPolicy.cpp
RequestIdleCallback/IdleDeadline.cpp
ResizeObserver/ResizeObservation.cpp
ResizeObserver/ResizeObserver.cpp
ResizeObserver/ResizeObserverEntry.cpp
ResizeObserver/ResizeObserverSize.cpp
ResourceTiming/PerformanceResourceTiming.cpp
SecureContexts/AbstractOperations.cpp
Selection/Selection.cpp
ServiceWorker/CacheStorage.cpp
ServiceWorker/EventNames.cpp
ServiceWorker/Job.cpp
ServiceWorker/Registration.cpp
ServiceWorker/ServiceWorker.cpp
ServiceWorker/ServiceWorkerContainer.cpp
ServiceWorker/ServiceWorkerGlobalScope.cpp
ServiceWorker/ServiceWorkerRecord.cpp
ServiceWorker/ServiceWorkerRegistration.cpp
SRI/SRI.cpp
StorageAPI/NavigatorStorage.cpp
StorageAPI/StorageBottle.cpp
StorageAPI/StorageEndpoint.cpp
StorageAPI/StorageKey.cpp
StorageAPI/StorageManager.cpp
StorageAPI/StorageShed.cpp
StorageAPI/StorageShelf.cpp
Streams/AbstractOperations.cpp
Streams/ByteLengthQueuingStrategy.cpp
Streams/CountQueuingStrategy.cpp
Streams/GenericTransformStream.cpp
Streams/ReadableByteStreamController.cpp
Streams/ReadableStream.cpp
Streams/ReadableStreamAsyncIterator.cpp
Streams/ReadableStreamBYOBReader.cpp
Streams/ReadableStreamBYOBRequest.cpp
Streams/ReadableStreamDefaultController.cpp
Streams/ReadableStreamDefaultReader.cpp
Streams/ReadableStreamGenericReader.cpp
Streams/ReadableStreamOperations.cpp
Streams/ReadableStreamPipeTo.cpp
Streams/ReadableStreamTee.cpp
Streams/Transformer.cpp
Streams/TransformStream.cpp
Streams/TransformStreamDefaultController.cpp
Streams/TransformStreamOperations.cpp
Streams/UnderlyingSink.cpp
Streams/UnderlyingSource.cpp
Streams/WritableStream.cpp
Streams/WritableStreamDefaultController.cpp
Streams/WritableStreamDefaultWriter.cpp
Streams/WritableStreamOperations.cpp
SVG/AttributeNames.cpp
SVG/AttributeParser.cpp
SVG/Path.cpp
SVG/SVGAElement.cpp
SVG/SVGAnimatedEnumeration.cpp
SVG/SVGAnimatedLength.cpp
SVG/SVGAnimatedNumber.cpp
SVG/SVGAnimatedNumberList.cpp
SVG/SVGAnimatedRect.cpp
SVG/SVGAnimatedString.cpp
SVG/SVGAnimatedTransformList.cpp
SVG/SVGAnimationElement.cpp
SVG/SVGCircleElement.cpp
SVG/SVGClipPathElement.cpp
SVG/SVGComponentTransferFunctionElement.cpp
SVG/SVGDecodedImageData.cpp
SVG/SVGDefsElement.cpp
SVG/SVGDescElement.cpp
SVG/SVGElement.cpp
SVG/SVGEllipseElement.cpp
SVG/SVGFEBlendElement.cpp
SVG/SVGFEColorMatrixElement.cpp
SVG/SVGFEComponentTransferElement.cpp
SVG/SVGFECompositeElement.cpp
SVG/SVGFEFloodElement.cpp
SVG/SVGFEFuncAElement.cpp
SVG/SVGFEFuncBElement.cpp
SVG/SVGFEFuncGElement.cpp
SVG/SVGFEFuncRElement.cpp
SVG/SVGFEGaussianBlurElement.cpp
SVG/SVGFEImageElement.cpp
SVG/SVGFEMergeElement.cpp
SVG/SVGFEMergeNodeElement.cpp
SVG/SVGFEOffsetElement.cpp
SVG/SVGFilterElement.cpp
SVG/SVGFilterPrimitiveStandardAttributes.cpp
SVG/SVGFitToViewBox.cpp
SVG/SVGForeignObjectElement.cpp
SVG/SVGGElement.cpp
SVG/SVGGeometryElement.cpp
SVG/SVGGradientElement.cpp
SVG/SVGGraphicsElement.cpp
SVG/SVGImageElement.cpp
SVG/SVGLength.cpp
SVG/SVGLinearGradientElement.cpp
SVG/SVGLineElement.cpp
SVG/SVGList.cpp
SVG/SVGMaskElement.cpp
SVG/SVGMetadataElement.cpp
SVG/SVGNumber.cpp
SVG/SVGNumberList.cpp
SVG/SVGPathElement.cpp
SVG/SVGPolygonElement.cpp
SVG/SVGPolylineElement.cpp
SVG/SVGRadialGradientElement.cpp
SVG/SVGRectElement.cpp
SVG/SVGScriptElement.cpp
SVG/SVGStopElement.cpp
SVG/SVGStyleElement.cpp
SVG/SVGSVGElement.cpp
SVG/SVGSymbolElement.cpp
SVG/SVGTextContentElement.cpp
SVG/SVGTextElement.cpp
SVG/SVGTextPathElement.cpp
SVG/SVGTextPositioningElement.cpp
SVG/SVGTitleElement.cpp
SVG/SVGTransform.cpp
SVG/SVGTransformList.cpp
SVG/SVGTSpanElement.cpp
SVG/SVGUseElement.cpp
SVG/SVGViewElement.cpp
SVG/TagNames.cpp
TrustedTypes/InjectionSink.cpp
TrustedTypes/RequireTrustedTypesForDirective.cpp
TrustedTypes/TrustedHTML.cpp
TrustedTypes/TrustedScript.cpp
TrustedTypes/TrustedScriptURL.cpp
TrustedTypes/TrustedTypePolicy.cpp
TrustedTypes/TrustedTypePolicyFactory.cpp
UIEvents/CompositionEvent.cpp
UIEvents/EventNames.cpp
UIEvents/FocusEvent.cpp
UIEvents/InputEvent.cpp
UIEvents/InputTypes.cpp
UIEvents/KeyboardEvent.cpp
UIEvents/MouseEvent.cpp
UIEvents/PointerEvent.cpp
UIEvents/TextEvent.cpp
UIEvents/UIEvent.cpp
UIEvents/WheelEvent.cpp
URLPattern/URLPattern.cpp
UserTiming/PerformanceMark.cpp
UserTiming/PerformanceMeasure.cpp
ViewTransition/ViewTransition.cpp
WebAssembly/Global.cpp
WebAssembly/Instance.cpp
WebAssembly/Memory.cpp
WebAssembly/Module.cpp
WebAssembly/Table.cpp
WebAssembly/WebAssembly.cpp
WebAudio/AnalyserNode.cpp
WebAudio/AudioBuffer.cpp
WebAudio/AudioBufferSourceNode.cpp
WebAudio/AudioContext.cpp
WebAudio/AudioDestinationNode.cpp
WebAudio/AudioListener.cpp
WebAudio/AudioNode.cpp
WebAudio/AudioParam.cpp
WebAudio/AudioScheduledSourceNode.cpp
WebAudio/BaseAudioContext.cpp
WebAudio/BiquadFilterNode.cpp
WebAudio/ChannelMergerNode.cpp
WebAudio/ChannelSplitterNode.cpp
WebAudio/ConstantSourceNode.cpp
WebAudio/DelayNode.cpp
WebAudio/DynamicsCompressorNode.cpp
WebAudio/GainNode.cpp
WebAudio/MediaElementAudioSourceNode.cpp
WebAudio/OfflineAudioContext.cpp
WebAudio/OscillatorNode.cpp
WebAudio/PannerNode.cpp
WebAudio/PeriodicWave.cpp
WebAudio/ScriptProcessorNode.cpp
WebAudio/StereoPannerNode.cpp
WebDriver/Actions.cpp
WebDriver/Capabilities.cpp
WebDriver/Client.cpp
WebDriver/Contexts.cpp
WebDriver/ElementLocationStrategies.cpp
WebDriver/ElementReference.cpp
WebDriver/Error.cpp
WebDriver/ExecuteScript.cpp
WebDriver/HeapTimer.cpp
WebDriver/InputSource.cpp
WebDriver/InputState.cpp
WebDriver/JSON.cpp
WebDriver/Proxy.cpp
WebDriver/Response.cpp
WebDriver/Screenshot.cpp
WebDriver/TimeoutsConfiguration.cpp
WebDriver/UserPrompt.cpp
WebGL/EventNames.cpp
WebGL/Extensions/ANGLEInstancedArrays.cpp
WebGL/Extensions/EXTBlendMinMax.cpp
WebGL/Extensions/EXTColorBufferFloat.cpp
WebGL/Extensions/EXTRenderSnorm.cpp
WebGL/Extensions/EXTTextureFilterAnisotropic.cpp
WebGL/Extensions/EXTTextureNorm16.cpp
WebGL/Extensions/OESStandardDerivatives.cpp
WebGL/Extensions/OESVertexArrayObject.cpp
WebGL/Extensions/WebGLCompressedTextureS3tc.cpp
WebGL/Extensions/WebGLCompressedTextureS3tcSrgb.cpp
WebGL/Extensions/WebGLDrawBuffers.cpp
WebGL/Extensions/WebGLVertexArrayObjectOES.cpp
WebGL/OpenGLContext.cpp
WebGL/WebGL2RenderingContext.cpp
WebGL/WebGL2RenderingContextImpl.cpp
WebGL/WebGL2RenderingContextOverloads.cpp
WebGL/WebGLActiveInfo.cpp
WebGL/WebGLBuffer.cpp
WebGL/WebGLContextAttributes.cpp
WebGL/WebGLContextEvent.cpp
WebGL/WebGLFramebuffer.cpp
WebGL/WebGLObject.cpp
WebGL/WebGLProgram.cpp
WebGL/WebGLQuery.cpp
WebGL/WebGLRenderbuffer.cpp
WebGL/WebGLRenderingContext.cpp
WebGL/WebGLRenderingContextBase.cpp
WebGL/WebGLRenderingContextImpl.cpp
WebGL/WebGLRenderingContextOverloads.cpp
WebGL/WebGLSampler.cpp
WebGL/WebGLShader.cpp
WebGL/WebGLShaderPrecisionFormat.cpp
WebGL/WebGLSync.cpp
WebGL/WebGLTexture.cpp
WebGL/WebGLTransformFeedback.cpp
WebGL/WebGLUniformLocation.cpp
WebGL/WebGLVertexArrayObject.cpp
WebIDL/AbstractOperations.cpp
WebIDL/AsyncIterator.cpp
WebIDL/Buffers.cpp
WebIDL/CallbackType.cpp
WebIDL/DOMException.cpp
WebIDL/ObservableArray.cpp
WebIDL/OverloadResolution.cpp
WebIDL/Promise.cpp
WebIDL/Tracing.cpp
WebSockets/WebSocket.cpp
WebVTT/VTTCue.cpp
WebVTT/VTTRegion.cpp
Worker/WebWorkerClient.cpp
XHR/EventNames.cpp
XHR/FormData.cpp
XHR/FormDataIterator.cpp
XHR/ProgressEvent.cpp
XHR/XMLHttpRequest.cpp
XHR/XMLHttpRequestEventTarget.cpp
XHR/XMLHttpRequestUpload.cpp
XLink/AttributeNames.cpp
XML/XMLDocumentBuilder.cpp
XML/XMLFragmentParser.cpp
XPath/XPath.cpp
XPath/XPathEvaluator.cpp
XPath/XPathExpression.cpp
XPath/XPathNSResolver.cpp
XPath/XPathResult.cpp
)
compile_ipc(Worker/WebWorkerClient.ipc Worker/WebWorkerClientEndpoint.h)
compile_ipc(Worker/WebWorkerServer.ipc Worker/WebWorkerServerEndpoint.h)
invoke_cpp_generator(
"AriaRoles.cpp"
Lagom::GenerateAriaRoles
"${CMAKE_CURRENT_SOURCE_DIR}/ARIA/AriaRoles.json"
"ARIA/AriaRoles.h"
"ARIA/AriaRoles.cpp"
arguments -j "${CMAKE_CURRENT_SOURCE_DIR}/ARIA/AriaRoles.json"
)
generate_css_implementation()
generate_html_implementation()
set(GENERATED_SOURCES
ARIA/AriaRoles.cpp
CSS/DefaultStyleSheetSource.cpp
CSS/DescriptorID.cpp
CSS/Enums.cpp
CSS/EnvironmentVariable.cpp
CSS/GeneratedCSSNumericFactoryMethods.cpp
CSS/GeneratedCSSNumericFactoryMethods.idl
CSS/GeneratedCSSStyleProperties.cpp
CSS/GeneratedCSSStyleProperties.idl
CSS/Keyword.cpp
CSS/MathFunctions.cpp
CSS/MediaFeatureID.cpp
CSS/PropertyID.cpp
CSS/PseudoClass.cpp
CSS/PseudoElement.cpp
CSS/QuirksModeStyleSheetSource.cpp
CSS/TransformFunctions.cpp
CSS/Units.cpp
MathML/MathMLStyleSheetSource.cpp
SVG/SVGStyleSheetSource.cpp
Worker/WebWorkerClientEndpoint.h
Worker/WebWorkerServerEndpoint.h
HTML/Parser/NamedCharacterReferences.cpp
)
ladybird_lib(LibWeb web EXPLICIT_SYMBOL_EXPORT)
find_package(LibXml2 REQUIRED)
target_link_libraries(LibWeb PRIVATE LibCore LibCompress LibCrypto LibJS LibHTTP LibGfx LibIPC LibRegex LibSyntax LibTextCodec LibUnicode LibMedia LibWasm LibXML LibIDL LibURL LibTLS LibRequests LibGC LibThreading skia ${ANGLE_TARGETS} SDL3::SDL3 LibXml2::LibXml2)
# FIXME: https://github.com/microsoft/vcpkg/issues/42324
target_include_directories(LibWeb PRIVATE ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include)
generate_js_bindings(LibWeb)
if (ENABLE_SWIFT)
include(collections)
set(generated_headers ${GENERATED_SOURCES})
list(FILTER generated_headers INCLUDE REGEX "\\.h$")
list(TRANSFORM generated_headers PREPEND "${CMAKE_CURRENT_BINARY_DIR}/")
list(APPEND LIBWEB_ALL_GENERATED_HEADERS ${generated_headers})
generate_clang_module_map(LibWeb GENERATED_FILES ${LIBWEB_ALL_GENERATED_HEADERS})
target_sources(LibWeb PRIVATE
HTML/Parser/HTMLToken.swift
HTML/Parser/HTMLTokenizer.swift
HTML/Parser/HTMLTokenizerHelpers.cpp
HTML/Parser/SpeculativeHTMLParser.swift
)
target_link_libraries(LibWeb PRIVATE AK Collections)
add_swift_target_properties(LibWeb LAGOM_LIBRARIES AK LibGfx LibGC)
endif()