Meta: Add gn build rules for LibWeb

This commit is contained in:
Andrew Kaster 2023-05-05 13:05:39 -06:00 committed by Andrew Kaster
parent 7b3d0fb002
commit 85c8cd5205
Notes: sideshowbarker 2024-07-17 14:33:07 +09:00
60 changed files with 1966 additions and 0 deletions

View file

@ -0,0 +1,64 @@
# This file introduces a template for calling embed_as_string_view.py.
#
# embed_as_string_view behaves like C++23 #embed, converting an input file into
# an AK::StringView literal rather than a C-string literal. The literal will
# be placed into a global variable, optionally with a namespace wrapping it.
#
# Note that the file must not contain any tokens that need to be escaped
# in C++, or the script will fail to produce a valid C++ translation unit.
#
# Parameters:
#
# input (required) [string]
#
# output (required) [string]
#
# variable_name (required) [string]
#
# namespace (optional) [string]
#
# Example use:
#
# embed_as_string_view("embed_my_file") {
# input = "MyFile.txt"
# output = "$root_gen_dir/MyDirectory/MyFile.cpp"
# variable_name = "my_file_contents"
# namespace = "My::NS"
# }
template("embed_as_string_view") {
assert(defined(invoker.input), "must set 'input' in $target_name")
assert(defined(invoker.output), "must set 'output' in $target_name")
assert(defined(invoker.variable_name),
"must set 'variable_name' in $target_name")
action(target_name) {
script = "//Meta/gn/build/embed_as_string_view.py"
sources = [ invoker.input ]
outputs = [ invoker.output ]
args = [
"-o",
rebase_path(outputs[0], root_build_dir),
"-n",
invoker.variable_name,
]
if (defined(invoker.namespace)) {
args += [
"-s",
invoker.namespace,
]
}
args += [ rebase_path(sources[0], root_build_dir) ]
forward_variables_from(invoker,
[
"configs",
"deps",
"public_configs",
"public_deps",
"testonly",
"visibility",
])
}
}

View file

@ -0,0 +1,38 @@
#!/usr/bin/env python3
r"""
Embeds a file into a StringView, a la #embed from C++23
"""
import argparse
import sys
def main():
parser = argparse.ArgumentParser(
epilog=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('input', help='input file to stringify')
parser.add_argument('-o', '--output', required=True,
help='output file')
parser.add_argument('-n', '--variable-name', required=True,
help='name of the C++ variable')
parser.add_argument('-s', '--namespace', required=False,
help='C++ namespace to put the string into')
args = parser.parse_args()
with open(args.output, 'w') as f:
f.write("#include <AK/StringView.h>\n")
if args.namespace:
f.write(f"namespace {args.namespace} {{\n")
f.write(f"extern StringView {args.variable_name};\n")
f.write(f"StringView {args.variable_name} = R\"~~~(")
with open(args.input, 'r') as input:
for line in input.readlines():
f.write(f"{line}")
f.write(")~~~\"sv;\n")
if args.namespace:
f.write("}\n")
if __name__ == '__main__':
sys.exit(main())

View file

@ -0,0 +1,16 @@
source_set("ARIA") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AriaData.cpp",
"AriaData.h",
"ARIAMixin.cpp",
"ARIAMixin.h",
"RoleType.cpp",
"RoleType.h",
"Roles.cpp",
"Roles.h",
"StateAndProperties.cpp",
"StateAndProperties.h",
]
}

View file

@ -0,0 +1,285 @@
import("//Meta/gn/build/compiled_action.gni")
import("//Meta/gn/build/embed_as_string_view.gni")
import("generate_idl_bindings.gni")
import("idl_files.gni")
generate_idl_bindings("standard_idl_bindings") {
idl_list = standard_idl_files
type = "standard"
}
generate_idl_bindings("iterable_idl_bindings") {
idl_list = iterable_idl_files
type = "iterable"
}
generate_idl_bindings("namespace_idl_bindings") {
idl_list = namespace_idl_files
type = "namespace"
}
generate_idl_bindings("global_idl_bindings") {
idl_list = global_idl_files
type = "global"
}
generate_idl_targets = [
":standard_idl_bindings_generated",
":iterable_idl_bindings_generated",
":namespace_idl_bindings_generated",
":global_idl_bindings_generated",
]
idl_sources_targets = [
":standard_idl_bindings_sources",
":iterable_idl_bindings_sources",
":namespace_idl_bindings_sources",
":global_idl_bindings_sources",
]
compiled_action("generate_window_or_worker_interfaces") {
tool = "//Meta/Lagom/Tools/CodeGenerators/LibWeb:GenerateWindowOrWorkerInterfaces"
inputs = standard_idl_files + iterable_idl_files + namespace_idl_files +
global_idl_files
outputs = [
"$target_gen_dir/Bindings/Forward.h",
"$target_gen_dir/Bindings/IntrinsicDefinitions.cpp",
"$target_gen_dir/Bindings/DedicatedWorkerExposedInterfaces.cpp",
"$target_gen_dir/Bindings/DedicatedWorkerExposedInterfaces.h",
"$target_gen_dir/Bindings/SharedWorkerExposedInterfaces.cpp",
"$target_gen_dir/Bindings/SharedWorkerExposedInterfaces.h",
"$target_gen_dir/Bindings/WindowExposedInterfaces.cpp",
"$target_gen_dir/Bindings/WindowExposedInterfaces.h",
]
args = [
"-o",
rebase_path("$target_gen_dir/Bindings", root_build_dir),
"-b",
rebase_path("//Userland/Libraries/LibWeb", root_build_dir),
]
foreach(idl, inputs) {
args += [ rebase_path(idl, root_build_dir) ]
}
}
compiled_action("generate_aria_roles") {
tool = "//Meta/Lagom/Tools/CodeGenerators/LibWeb:GenerateAriaRoles"
inputs = [ "ARIA/AriaRoles.json" ]
outputs = [
"$target_gen_dir/ARIA/AriaRoles.h",
"$target_gen_dir/ARIA/AriaRoles.cpp"
]
args = [
"-h",
rebase_path(outputs[0], root_build_dir),
"-c",
rebase_path(outputs[1], root_build_dir),
"-j",
rebase_path(inputs[0], root_build_dir)
]
}
compiled_action("generate_css_enums") {
tool = "//Meta/Lagom/Tools/CodeGenerators/LibWeb:GenerateCSSEnums"
inputs = [ "CSS/Enums.json" ]
outputs = [
"$target_gen_dir/CSS/Enums.h",
"$target_gen_dir/CSS/Enums.cpp",
]
args = [
"-h",
rebase_path(outputs[0], root_build_dir),
"-c",
rebase_path(outputs[1], root_build_dir),
"-j",
rebase_path(inputs[0], root_build_dir),
]
}
compiled_action("generate_css_media_feature_id") {
tool = "//Meta/Lagom/Tools/CodeGenerators/LibWeb:GenerateCSSMediaFeatureID"
inputs = [ "CSS/MediaFeatures.json" ]
outputs = [
"$target_gen_dir/CSS/MediaFeatureID.h",
"$target_gen_dir/CSS/MediaFeatureID.cpp",
]
args = [
"-h",
rebase_path(outputs[0], root_build_dir),
"-c",
rebase_path(outputs[1], root_build_dir),
"-j",
rebase_path(inputs[0], root_build_dir),
]
}
compiled_action("generate_css_property_id") {
tool = "//Meta/Lagom/Tools/CodeGenerators/LibWeb:GenerateCSSPropertyID"
inputs = [ "CSS/Properties.json" ]
outputs = [
"$target_gen_dir/CSS/PropertyID.h",
"$target_gen_dir/CSS/PropertyID.cpp",
]
args = [
"-h",
rebase_path(outputs[0], root_build_dir),
"-c",
rebase_path(outputs[1], root_build_dir),
"-j",
rebase_path(inputs[0], root_build_dir),
]
}
compiled_action("generate_css_transform_functions") {
tool =
"//Meta/Lagom/Tools/CodeGenerators/LibWeb:GenerateCSSTransformFunctions"
inputs = [ "CSS/TransformFunctions.json" ]
outputs = [
"$target_gen_dir/CSS/TransformFunctions.h",
"$target_gen_dir/CSS/TransformFunctions.cpp",
]
args = [
"-h",
rebase_path(outputs[0], root_build_dir),
"-c",
rebase_path(outputs[1], root_build_dir),
"-j",
rebase_path(inputs[0], root_build_dir),
]
}
compiled_action("generate_css_value_id") {
tool = "//Meta/Lagom/Tools/CodeGenerators/LibWeb:GenerateCSSValueID"
inputs = [ "CSS/Identifiers.json" ]
outputs = [
"$target_gen_dir/CSS/ValueID.h",
"$target_gen_dir/CSS/ValueID.cpp",
]
args = [
"-h",
rebase_path(outputs[0], root_build_dir),
"-c",
rebase_path(outputs[1], root_build_dir),
"-j",
rebase_path(inputs[0], root_build_dir),
]
}
embed_as_string_view("generate_default_stylesheet_source") {
input = "CSS/Default.css"
output = "$target_gen_dir/CSS/DefaultStyleSheetSource.cpp"
variable_name = "default_stylesheet_source"
namespace = "Web::CSS"
}
embed_as_string_view("generate_quirks_mode_stylesheet_source") {
input = "CSS/QuirksMode.css"
output = "$target_gen_dir/CSS/QuirksModeStyleSheetSource.cpp"
variable_name = "quirks_mode_stylesheet_source"
namespace = "Web::CSS"
}
source_set("all_generated") {
generated_deps = [
":generate_aria_roles",
":generate_css_enums",
":generate_css_media_feature_id",
":generate_css_property_id",
":generate_css_transform_functions",
":generate_css_value_id",
":generate_default_stylesheet_source",
":generate_quirks_mode_stylesheet_source",
":generate_window_or_worker_interfaces",
]
configs += [ ":configs" ]
sources = []
foreach(dep, generated_deps) {
sources += get_target_outputs(dep)
}
deps = generated_deps + generate_idl_targets
}
config("configs") {
include_dirs = [
"//Userland/Libraries",
"$target_gen_dir/..",
]
configs = [ "//AK:ak_headers" ]
}
shared_library("LibWeb") {
output_name = "web"
public_configs = [ ":configs" ]
sources = [
"Dump.cpp",
"FontCache.cpp",
"Namespace.cpp",
]
deps = [
":all_generated",
"ARIA",
"Bindings",
"CSS",
"Cookie",
"Crypto",
"DOM",
"DOMParsing",
"Encoding",
"Fetch",
"FileAPI",
"Geometry",
"HTML",
"HighResolutionTime",
"Infra",
"IntersectionObserver",
"Layout",
"Loader",
"MimeSniff",
"NavigationTiming",
"Page",
"Painting",
"PerformanceTimeline",
"PermissionsPolicy",
"Platform",
"ReferrerPolicy",
"RequestIdleCallback",
"ResizeObserver",
"SRI",
"SVG",
"SecureContexts",
"Selection",
"Streams",
"UIEvents",
"URL",
"UserTiming",
"WebAssembly",
"WebDriver",
"WebGL",
"WebIDL",
"WebSockets",
"XHR",
"XML",
"//AK",
"//Userland/Libraries/LibAudio",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibCrypto",
"//Userland/Libraries/LibGL",
"//Userland/Libraries/LibGUI",
"//Userland/Libraries/LibGemini",
"//Userland/Libraries/LibGfx",
"//Userland/Libraries/LibHTTP",
"//Userland/Libraries/LibIDL",
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibJS",
"//Userland/Libraries/LibLocale",
"//Userland/Libraries/LibMarkdown",
"//Userland/Libraries/LibRegex",
"//Userland/Libraries/LibSoftGPU",
"//Userland/Libraries/LibSyntax",
"//Userland/Libraries/LibTextCodec",
"//Userland/Libraries/LibUnicode",
"//Userland/Libraries/LibVideo",
"//Userland/Libraries/LibWasm",
"//Userland/Libraries/LibXML",
] + idl_sources_targets
}

View file

@ -0,0 +1,23 @@
source_set("Bindings") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AudioConstructor.cpp",
"AudioConstructor.h",
"ExceptionOrUtils.h",
"HostDefined.cpp",
"HostDefined.h",
"ImageConstructor.cpp",
"ImageConstructor.h",
"Intrinsics.cpp",
"Intrinsics.h",
"LegacyPlatformObject.cpp",
"LegacyPlatformObject.h",
"MainThreadVM.cpp",
"MainThreadVM.h",
"OptionConstructor.cpp",
"OptionConstructor.h",
"PlatformObject.cpp",
"PlatformObject.h",
]
}

View file

@ -0,0 +1,60 @@
source_set("CSS") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [
"Parser",
"StyleValues",
"SyntaxHighlighter",
"//Userland/Libraries/LibWeb:all_generated",
]
sources = [
"Angle.cpp",
"CSS.cpp",
"CSSConditionRule.cpp",
"CSSFontFaceRule.cpp",
"CSSGroupingRule.cpp",
"CSSImportRule.cpp",
"CSSKeyframeRule.cpp",
"CSSKeyframesRule.cpp",
"CSSMediaRule.cpp",
"CSSNumerictype.cpp",
"CSSRule.cpp",
"CSSRuleList.cpp",
"CSSStyleDeclaration.cpp",
"CSSStyleRule.cpp",
"CSSStyleSheet.cpp",
"CSSSupportsRule.cpp",
"CalculatedOr.cpp",
"Clip.cpp",
"Display.cpp",
"EdgeRect.cpp",
"FontFace.cpp",
"Frequency.cpp",
"GridTrackPlacement.cpp",
"GridTrackSize.cpp",
"Length.cpp",
"LengthBox.cpp",
"MediaList.cpp",
"MediaQuery.cpp",
"MediaQueryList.cpp",
"MediaQueryListEvent.cpp",
"PercentageOr.cpp",
"Position.cpp",
"PreferredColorScheme.cpp",
"Ratio.cpp",
"Resolution.cpp",
"ResolvedCSSStyleDeclaration.cpp",
"Screen.cpp",
"Selector.cpp",
"SelectorEngine.cpp",
"Serialize.cpp",
"Size.cpp",
"StyleComputer.cpp",
"StyleProperties.cpp",
"StyleProperty.cpp",
"StyleSheet.cpp",
"StyleSheetList.cpp",
"StyleValue.cpp",
"Supports.cpp",
"Time.cpp",
]
}

View file

@ -0,0 +1,15 @@
source_set("Parser") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Block.cpp",
"ComponentValue.cpp",
"Declaration.cpp",
"DeclarationOrAtRule.cpp",
"Function.cpp",
"Parser.cpp",
"Rule.cpp",
"Token.cpp",
"Tokenizer.cpp",
]
}

View file

@ -0,0 +1,47 @@
source_set("StyleValues") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AngleStyleValue.cpp",
"BackgroundRepeatStyleValue.cpp",
"BackgroundSizeStyleValue.cpp",
"BackgroundStyleValue.cpp",
"BorderRadiusShorthandStyleValue.cpp",
"BorderRadiusStyleValue.cpp",
"BorderStyleValue.cpp",
"CalculatedStyleValue.cpp",
"ColorStyleValue.cpp",
"CompositeStyleValue.cpp",
"ConicGradientStyleValue.cpp",
"ContentStyleValue.cpp",
"DisplayStyleValue.cpp",
"EdgeStyleValue.cpp",
"FilterValueListStyleValue.cpp",
"FlexFlowStyleValue.cpp",
"FlexStyleValue.cpp",
"FontStyleValue.cpp",
"GridAreaShorthandStyleValue.cpp",
"GridTemplateAreaStyleValue.cpp",
"GridTrackPlacementShorthandStyleValue.cpp",
"GridTrackPlacementStyleValue.cpp",
"GridTrackSizeListShorthandStyleValue.cpp",
"GridTrackSizeListStyleValue.cpp",
"IdentifierStyleValue.cpp",
"ImageStyleValue.cpp",
"IntegerStyleValue.cpp",
"LengthStyleValue.cpp",
"LinearGradientStyleValue.cpp",
"ListStyleStyleValue.cpp",
"NumberStyleValue.cpp",
"OverflowStyleValue.cpp",
"PlaceContentStyleValue.cpp",
"PositionStyleValue.cpp",
"RadialGradientStyleValue.cpp",
"RectStyleValue.cpp",
"ShadowStyleValue.cpp",
"StyleValueList.cpp",
"TextDecorationStyleValue.cpp",
"TransformationStyleValue.cpp",
"UnresolvedStyleValue.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("SyntaxHighlighter") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
include_dirs = [
"//Userland", # For LibSyntax needing LibGUI needing WindowServer types
]
sources = [ "SyntaxHighlighter.cpp" ]
}

View file

@ -0,0 +1,10 @@
source_set("Cookie") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Cookie.cpp",
"Cookie.h",
"ParsedCookie.cpp",
"ParsedCookie.h",
]
}

View file

@ -0,0 +1,10 @@
source_set("Crypto") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Crypto.cpp",
"Crypto.h",
"SubtleCrypto.cpp",
"SubtleCrypto.h",
]
}

View file

@ -0,0 +1,52 @@
source_set("DOM") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AbortController.cpp",
"AbortSignal.cpp",
"AbstractRange.cpp",
"AccessibilityTreeNode.cpp",
"Attr.cpp",
"CDATASection.cpp",
"CharacterData.cpp",
"Comment.cpp",
"CustomEvent.cpp",
"DOMEventListener.cpp",
"DOMImplementation.cpp",
"DOMTokenList.cpp",
"Document.cpp",
"DocumentFragment.cpp",
"DocumentLoadEventDelayer.cpp",
"DocumentLoading.cpp",
"DocumentObserver.cpp",
"DocumentType.cpp",
"Element.cpp",
"ElementFactory.cpp",
"Event.cpp",
"EventDispatcher.cpp",
"EventTarget.cpp",
"HTMLCollection.cpp",
"IDLEventListener.cpp",
"LiveNodeList.cpp",
"MutationObserver.cpp",
"MutationRecord.cpp",
"MutationType.cpp",
"NamedNodeMap.cpp",
"Node.cpp",
"NodeFilter.cpp",
"NodeIterator.cpp",
"NodeList.cpp",
"NodeOperations.cpp",
"ParentNode.cpp",
"Position.cpp",
"ProcessingInstruction.cpp",
"QualifiedName.cpp",
"Range.cpp",
"ShadowRoot.cpp",
"StaticNodeList.cpp",
"StaticRange.cpp",
"StyleElementUtils.cpp",
"Text.cpp",
"TreeWalker.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("DOMParsing") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"InnerHTML.cpp",
"XMLSerializer.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("Encoding") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"TextDecoder.cpp",
"TextEncoder.cpp",
]
}

View file

@ -0,0 +1,18 @@
source_set("Fetch") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [
"Fetching",
"Infrastructure",
"//Userland/Libraries/LibWeb:all_generated",
]
sources = [
"Body.cpp",
"BodyInit.cpp",
"Enums.cpp",
"FetchMethod.cpp",
"Headers.cpp",
"HeadersIterator.cpp",
"Request.cpp",
"Response.cpp",
]
}

View file

@ -0,0 +1,10 @@
source_set("Fetching") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Checks.cpp",
"Fetching.cpp",
"PendingResponse.cpp",
"RefCountedFlag.cpp",
]
}

View file

@ -0,0 +1,20 @@
source_set("Infrastructure") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [
"HTTP",
"//Userland/Libraries/LibWeb:all_generated",
]
sources = [
"ConnectionTimingInfo.cpp",
"FetchAlgorithms.cpp",
"FetchController.cpp",
"FetchParams.cpp",
"FetchTimingInfo.cpp",
"HTTP.cpp",
"MimeTypeBlocking.cpp",
"NoSniffBlocking.cpp",
"PortBlocking.cpp",
"Task.cpp",
"URL.cpp",
]
}

View file

@ -0,0 +1,12 @@
source_set("HTTP") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Bodies.cpp",
"Headers.cpp",
"Methods.cpp",
"Requests.cpp",
"Responses.cpp",
"Statuses.cpp",
]
}

View file

@ -0,0 +1,9 @@
source_set("FileAPI") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Blob.cpp",
"File.cpp",
"FileList.cpp",
]
}

View file

@ -0,0 +1,13 @@
source_set("Geometry") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"DOMMatrix.cpp",
"DOMMatrixReadOnly.cpp",
"DOMPoint.cpp",
"DOMPointReadOnly.cpp",
"DOMRect.cpp",
"DOMRectList.cpp",
"DOMRectReadOnly.cpp",
]
}

View file

@ -0,0 +1,159 @@
source_set("HTML") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [
"Canvas",
"CrossOrigin",
"CustomElements",
"EventLoop",
"Parser",
"Scripting",
"SyntaxHighlighter",
"//Userland/Libraries/LibWeb:all_generated",
]
sources = [
"AnimatedBitmapDecodedImageData.cpp",
"AttributeNames.cpp",
"AudioTrack.cpp",
"AudioTrackList.cpp",
"BrowsingContext.cpp",
"BrowsingContextGroup.cpp",
"CORSSettingAttribute.cpp",
"CanvasGradient.cpp",
"CanvasPattern.cpp",
"CanvasRenderingContext2D.cpp",
"CloseEvent.cpp",
"DOMParser.cpp",
"DOMStringMap.cpp",
"DecodedImageData.cpp",
"DocumentState.cpp",
"ErrorEvent.cpp",
"EventHandler.cpp",
"EventNames.cpp",
"Focus.cpp",
"FormAssociatedElement.cpp",
"FormControlInfrastructure.cpp",
"FormDataEvent.cpp",
"GlobalEventHandlers.cpp",
"HTMLAnchorElement.cpp",
"HTMLAreaElement.cpp",
"HTMLAudioElement.cpp",
"HTMLBRElement.cpp",
"HTMLBaseElement.cpp",
"HTMLBlinkElement.cpp",
"HTMLBodyElement.cpp",
"HTMLButtonElement.cpp",
"HTMLCanvasElement.cpp",
"HTMLDListElement.cpp",
"HTMLDataElement.cpp",
"HTMLDataListElement.cpp",
"HTMLDetailsElement.cpp",
"HTMLDialogElement.cpp",
"HTMLDirectoryElement.cpp",
"HTMLDivElement.cpp",
"HTMLDocument.cpp",
"HTMLElement.cpp",
"HTMLEmbedElement.cpp",
"HTMLFieldSetElement.cpp",
"HTMLFontElement.cpp",
"HTMLFormElement.cpp",
"HTMLFrameElement.cpp",
"HTMLFrameSetElement.cpp",
"HTMLHRElement.cpp",
"HTMLHeadElement.cpp",
"HTMLHeadingElement.cpp",
"HTMLHtmlElement.cpp",
"HTMLHyperlinkElementUtils.cpp",
"HTMLIFrameElement.cpp",
"HTMLImageElement.cpp",
"HTMLInputElement.cpp",
"HTMLLIElement.cpp",
"HTMLLabelElement.cpp",
"HTMLLegendElement.cpp",
"HTMLLinkElement.cpp",
"HTMLMapElement.cpp",
"HTMLMarqueeElement.cpp",
"HTMLMediaElement.cpp",
"HTMLMenuElement.cpp",
"HTMLMetaElement.cpp",
"HTMLMeterElement.cpp",
"HTMLModElement.cpp",
"HTMLOListElement.cpp",
"HTMLObjectElement.cpp",
"HTMLOptGroupElement.cpp",
"HTMLOptionElement.cpp",
"HTMLOptionsCollection.cpp",
"HTMLOutputElement.cpp",
"HTMLParagraphElement.cpp",
"HTMLParamElement.cpp",
"HTMLPictureElement.cpp",
"HTMLPreElement.cpp",
"HTMLProgressElement.cpp",
"HTMLQuoteElement.cpp",
"HTMLScriptElement.cpp",
"HTMLSelectElement.cpp",
"HTMLSlotElement.cpp",
"HTMLSourceElement.cpp",
"HTMLSpanElement.cpp",
"HTMLStyleElement.cpp",
"HTMLSummaryElement.cpp",
"HTMLTableCaptionElement.cpp",
"HTMLTableCellElement.cpp",
"HTMLTableColElement.cpp",
"HTMLTableElement.cpp",
"HTMLTableRowElement.cpp",
"HTMLTableSectionElement.cpp",
"HTMLTemplateElement.cpp",
"HTMLTextAreaElement.cpp",
"HTMLTimeElement.cpp",
"HTMLTitleElement.cpp",
"HTMLTrackElement.cpp",
"HTMLUListElement.cpp",
"HTMLUnknownElement.cpp",
"HTMLVideoElement.cpp",
"History.cpp",
"ImageData.cpp",
"ImageRequest.cpp",
"ListOfAvailableImages.cpp",
"Location.cpp",
"MediaError.cpp",
"MessageChannel.cpp",
"MessageEvent.cpp",
"MessagePort.cpp",
"MimeType.cpp",
"MimeTypeArray.cpp",
"Navigable.cpp",
"NavigableContainer.cpp",
"Navigator.cpp",
"NavigatorID.cpp",
"PageTransitionEvent.cpp",
"Path2D.cpp",
"Plugin.cpp",
"PluginArray.cpp",
"PotentialCORSRequest.cpp",
"PromiseRejectionEvent.cpp",
"RemoteBrowsingContext.cpp",
"SessionHistoryEntry.cpp",
"SharedImageRequest.cpp",
"SourceSet.cpp",
"Storage.cpp",
"StructuredSerialize.cpp",
"SubmitEvent.cpp",
"TagNames.cpp",
"TextMetrics.cpp",
"TimeRanges.cpp",
"Timer.cpp",
"TrackEvent.cpp",
"TraversableNavigable.cpp",
"VideoTrack.cpp",
"VideoTrackList.cpp",
"Window.cpp",
"WindowEventHandlers.cpp",
"WindowOrWorkerGlobalScope.cpp",
"WindowProxy.cpp",
"Worker.cpp",
"WorkerDebugConsoleClient.cpp",
"WorkerGlobalScope.cpp",
"WorkerLocation.cpp",
"WorkerNavigator.cpp",
]
}

View file

@ -0,0 +1,10 @@
source_set("Canvas") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"CanvasDrawImage.cpp",
"CanvasPath.cpp",
"CanvasPathClipper.cpp",
"CanvasState.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("CrossOrigin") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AbstractOperations.cpp",
"Reporting.cpp",
]
}

View file

@ -0,0 +1,9 @@
source_set("CustomElements") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"CustomElementName.cpp",
"CustomElementReactionNames.cpp",
"CustomElementRegistry.cpp",
]
}

View file

@ -0,0 +1,9 @@
source_set("EventLoop") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"EventLoop.cpp",
"Task.cpp",
"TaskQueue.cpp",
]
}

View file

@ -0,0 +1,13 @@
source_set("Parser") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Entities.cpp",
"HTMLEncodingDetection.cpp",
"HTMLParser.cpp",
"HTMLToken.cpp",
"HTMLTokenizer.cpp",
"ListOfActiveFormattingElements.cpp",
"StackOfOpenElements.cpp",
]
}

View file

@ -0,0 +1,15 @@
source_set("Scripting") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"ClassicScript.cpp",
"Environments.cpp",
"ExceptionReporter.cpp",
"Fetching.cpp",
"ModuleMap.cpp",
"ModuleScript.cpp",
"Script.cpp",
"TemporaryExecutionContext.cpp",
"WindowEnvironmentSettingsObject.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("SyntaxHighlighter") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
include_dirs = [
"//Userland/", # For LibSyntax needing LibGUI needing WindowServer types
]
sources = [ "SyntaxHighlighter.cpp" ]
}

View file

@ -0,0 +1,8 @@
source_set("HighResolutionTime") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Performance.cpp",
"TimeOrigin.cpp",
]
}

View file

@ -0,0 +1,10 @@
source_set("Infra") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Base64.cpp",
"ByteSequences.cpp",
"JSON.cpp",
"Strings.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("IntersectionObserver") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"IntersectionObserver.cpp",
"IntersectionObserverEntry.cpp",
]
}

View file

@ -0,0 +1,51 @@
source_set("Layout") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
include_dirs = [
"//Userland/", # For LibGUI needing WindowServer types
]
sources = [
"AudioBox.cpp",
"AvailableSpace.cpp",
"BlockContainer.cpp",
"BlockFormattingContext.cpp",
"Box.cpp",
"BoxModelMetrics.cpp",
"BreakNode.cpp",
"ButtonBox.cpp",
"CanvasBox.cpp",
"CheckBox.cpp",
"FlexFormattingContext.cpp",
"FormattingContext.cpp",
"FrameBox.cpp",
"GridFormattingContext.cpp",
"ImageBox.cpp",
"InlineFormattingContext.cpp",
"InlineLevelIterator.cpp",
"InlineNode.cpp",
"Label.cpp",
"LabelableNode.cpp",
"LayoutState.cpp",
"LineBox.cpp",
"LineBoxFragment.cpp",
"LineBuilder.cpp",
"ListItemBox.cpp",
"ListItemMarkerBox.cpp",
"Node.cpp",
"Progress.cpp",
"RadioButton.cpp",
"ReplacedBox.cpp",
"SVGBox.cpp",
"SVGFormattingContext.cpp",
"SVGGeometryBox.cpp",
"SVGGraphicsBox.cpp",
"SVGSVGBox.cpp",
"SVGTextBox.cpp",
"TableFormattingContext.cpp",
"TableWrapper.cpp",
"TextNode.cpp",
"TreeBuilder.cpp",
"VideoBox.cpp",
"Viewport.cpp",
]
}

View file

@ -0,0 +1,13 @@
source_set("Loader") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"ContentFilter.cpp",
"FileRequest.cpp",
"FrameLoader.cpp",
"LoadRequest.cpp",
"ProxyMappings.cpp",
"Resource.cpp",
"ResourceLoader.cpp",
]
}

View file

@ -0,0 +1,5 @@
source_set("MimeSniff") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "MimeType.cpp" ]
}

View file

@ -0,0 +1,8 @@
source_set("NavigationTiming") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"EntryNames.cpp",
"PerformanceTiming.cpp",
]
}

View file

@ -0,0 +1,12 @@
source_set("Page") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
include_dirs = [
"//Userland/", # For LibGUI needing WindowServer types
]
sources = [
"EditEventHandler.cpp",
"EventHandler.cpp",
"Page.cpp",
]
}

View file

@ -0,0 +1,39 @@
source_set("Painting") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
include_dirs = [
"//Userland/", # For LibGfx needing LibGUI needing WindowServer types
]
sources = [
"AudioPaintable.cpp",
"BackgroundPainting.cpp",
"BorderPainting.cpp",
"BorderRadiusCornerClipper.cpp",
"ButtonPaintable.cpp",
"CanvasPaintable.cpp",
"CheckBoxPaintable.cpp",
"FilterPainting.cpp",
"GradientPainting.cpp",
"ImagePaintable.cpp",
"InlinePaintable.cpp",
"LabelablePaintable.cpp",
"MarkerPaintable.cpp",
"MediaPaintable.cpp",
"NestedBrowsingContextPaintable.cpp",
"PaintContext.cpp",
"Paintable.cpp",
"PaintableBox.cpp",
"ProgressPaintable.cpp",
"RadioButtonPaintable.cpp",
"SVGGeometryPaintable.cpp",
"SVGGraphicsPaintable.cpp",
"SVGPaintable.cpp",
"SVGSVGPaintable.cpp",
"SVGTextPaintable.cpp",
"ShadowPainting.cpp",
"StackingContext.cpp",
"TableBordersPainting.cpp",
"TextPaintable.cpp",
"VideoPaintable.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("PerformanceTimeline") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"EntryTypes.cpp",
"PerformanceEntry.cpp",
]
}

View file

@ -0,0 +1,5 @@
source_set("PermissionsPolicy") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "AutoplayAllowlist.cpp" ]
}

View file

@ -0,0 +1,14 @@
source_set("Platform") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AudioCodecPlugin.cpp",
"EventLoopPlugin.cpp",
"EventLoopPluginSerenity.cpp",
"FontPlugin.cpp",
"FontPluginSerenity.cpp",
"ImageCodecPlugin.cpp",
"Timer.cpp",
"TimerSerenity.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("ReferrerPolicy") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AbstractOperations.cpp",
"ReferrerPolicy.cpp",
]
}

View file

@ -0,0 +1,5 @@
source_set("RequestIdleCallback") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "IdleDeadline.cpp" ]
}

View file

@ -0,0 +1,5 @@
source_set("ResizeObserver") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "ResizeObserver.cpp" ]
}

View file

@ -0,0 +1,5 @@
source_set("SRI") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "SRI.cpp" ]
}

View file

@ -0,0 +1,38 @@
source_set("SVG") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AttributeNames.cpp",
"AttributeParser.cpp",
"SVGAnimatedLength.cpp",
"SVGAnimatedNumber.cpp",
"SVGCircleElement.cpp",
"SVGClipPathElement.cpp",
"SVGDecodedImageData.cpp",
"SVGDefsElement.cpp",
"SVGElement.cpp",
"SVGEllipseElement.cpp",
"SVGForeignObjectElement.cpp",
"SVGGElement.cpp",
"SVGGeometryElement.cpp",
"SVGGradientElement.cpp",
"SVGGraphicsElement.cpp",
"SVGLength.cpp",
"SVGLineElement.cpp",
"SVGLinearGradientElement.cpp",
"SVGPathElement.cpp",
"SVGPolygonElement.cpp",
"SVGPolylineElement.cpp",
"SVGRadialGradientElement.cpp",
"SVGRectElement.cpp",
"SVGSVGElement.cpp",
"SVGStopElement.cpp",
"SVGStyleElement.cpp",
"SVGSymbolElement.cpp",
"SVGTextContentElement.cpp",
"SVGTitleElement.cpp",
"SVGUseElement.cpp",
"TagNames.cpp",
"ViewBox.cpp",
]
}

View file

@ -0,0 +1,5 @@
source_set("SecureContexts") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "AbstractOperations.cpp" ]
}

View file

@ -0,0 +1,5 @@
source_set("Selection") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "Selection.cpp" ]
}

View file

@ -0,0 +1,19 @@
source_set("Streams") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AbstractOperations.cpp",
"ReadableByteStreamController.cpp",
"ReadableStream.cpp",
"ReadableStreamBYOBReader.cpp",
"ReadableStreamBYOBRequest.cpp",
"ReadableStreamDefaultController.cpp",
"ReadableStreamDefaultReader.cpp",
"ReadableStreamGenericReader.cpp",
"UnderlyingSink.cpp",
"UnderlyingSource.cpp",
"WritableStream.cpp",
"WritableStreamDefaultController.cpp",
"WritableStreamDefaultWriter.cpp",
]
}

View file

@ -0,0 +1,15 @@
source_set("UIEvents") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
include_dirs = [
"//Userland/", # For LibGUI needing WindowServer types
]
sources = [
"EventNames.cpp",
"FocusEvent.cpp",
"KeyboardEvent.cpp",
"MouseEvent.cpp",
"UIEvent.cpp",
"WheelEvent.cpp",
]
}

View file

@ -0,0 +1,9 @@
source_set("URL") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"URL.cpp",
"URLSearchParams.cpp",
"URLSearchParamsIterator.cpp",
]
}

View file

@ -0,0 +1,8 @@
source_set("UserTiming") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"PerformanceMark.cpp",
"PerformanceMeasure.cpp",
]
}

View file

@ -0,0 +1,11 @@
source_set("WebAssembly") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Instance.cpp",
"Memory.cpp",
"Module.cpp",
"Table.cpp",
"WebAssembly.cpp",
]
}

View file

@ -0,0 +1,15 @@
source_set("WebDriver") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"Capabilities.cpp",
"Client.cpp",
"Contexts.cpp",
"ElementLocationStrategies.cpp",
"Error.cpp",
"ExecuteScript.cpp",
"Response.cpp",
"Screenshot.cpp",
"TimeoutsConfiguration.cpp",
]
}

View file

@ -0,0 +1,11 @@
source_set("WebGL") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"EventNames.cpp",
"WebGLContextAttributes.cpp",
"WebGLContextEvent.cpp",
"WebGLRenderingContext.cpp",
"WebGLRenderingContextBase.cpp",
]
}

View file

@ -0,0 +1,11 @@
source_set("WebIDL") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"AbstractOperations.cpp",
"CallbackType.cpp",
"DOMException.cpp",
"OverloadResolution.cpp",
"Promise.cpp",
]
}

View file

@ -0,0 +1,5 @@
source_set("WebSockets") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "WebSocket.cpp" ]
}

View file

@ -0,0 +1,13 @@
source_set("XHR") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [
"EventNames.cpp",
"FormData.cpp",
"FormDataIterator.cpp",
"ProgressEvent.cpp",
"XMLHttpRequest.cpp",
"XMLHttpRequestEventTarget.cpp",
"XMLHttpRequestUpload.cpp",
]
}

View file

@ -0,0 +1,5 @@
source_set("XML") {
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps = [ "//Userland/Libraries/LibWeb:all_generated" ]
sources = [ "XMLDocumentBuilder.cpp" ]
}

View file

@ -0,0 +1,367 @@
#
# This file introduces templates for generating JS bindings for Web Platform
# Objects using IDL files.
#
# The public generate_idl_bindings template invokes the binding generator
# for each IDL file in the input idl_list. It creates two source_set targets
# for the input target_name, one ending in "_generated" and one ending in
# "_sources". The "_generated" target is simply the code generator invocation,
# while the "_sources" target is the actual generated C++ sources files.
#
#
# Parameters:
# idl_list (required) [string]
# List of IDL files that are all the same type.
# Expected to be an absolute path.
#
# type (required) string
# "global", "iterable", "namespace", or "standard"
#
# Example use:
#
# standard_idl_files = get_path_info(
# [
# "//Library/Foo.idl",
# "//Bar.idl"
# ],
# "abspath")
#
# generate_idl_bindings("standard_idl_bindings") {
# idl_list = standard_idl_files
# type = "standard"
# }
#
# shared_library("Library") {
# deps = [
# ":standard_idl_bindings_generated"
# ":standard_idl_bindings_sources"
# ]
# }
#
import("//Meta/gn/build/compiled_action.gni")
# FIXME: rewrite these in terms of action_foreach
template("_invoke_bindings_generator") {
# FIXME: Can we update the bindings generator to output the .h and .cpp at the same time?
assert(defined(invoker.type), "$target_name must have 'type' defined")
# FIXME: This is pretty gross. Can we make the source file name match the command line argument to the generator more closely?
# GN can't (and probably shouldn't) siwzzle our strings for us in this way automagically
assert(defined(invoker.type_filename_fragment),
"$target_name must have 'type_filename_fragment' defined")
assert(defined(invoker.name), "$target_name must have 'name' defined")
assert(defined(invoker.path), "$target_name must have 'path' defined")
forward_variables_from(invoker,
[
"configs",
"include_dirs",
"public_configs",
"testonly",
"visibility",
])
if (!defined(include_dirs)) {
include_dirs = [ "//Userland/Libraries" ]
}
rel_include_dirs = []
foreach(d, include_dirs) {
rel_include_dirs += [
"-i",
rebase_path(d, root_build_dir),
]
}
name_and_type = string_replace(invoker.name + "_" + invoker.type, "-", "_")
type = invoker.type
gen_dir = get_label_info("//Userland/Libraries/LibWeb", "target_gen_dir")
out_name = get_path_info(invoker.path, "name")
compiled_action(name_and_type + "_impl") {
tool = "//Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator"
inputs = [ invoker.path + ".idl" ]
outputs = [ gen_dir + "/Bindings/" + out_name +
invoker.type_filename_fragment + ".cpp" ]
depfile = outputs[0] + ".d"
args = [
"--$type-implementation",
"-o",
rebase_path(outputs[0], root_build_dir),
"--depfile",
rebase_path(depfile, root_build_dir),
"--depfile-target",
rebase_path(outputs[0], root_build_dir),
] + rel_include_dirs +
[
rebase_path(inputs[0], root_build_dir),
# FIXME: Get caller path from invoker?
rebase_path("//Userland/Libraries/LibWeb", root_build_dir),
]
}
compiled_action(name_and_type + "_header") {
tool = "//Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator"
inputs = [ invoker.path + ".idl" ]
outputs = [ gen_dir + "/Bindings/" + out_name +
invoker.type_filename_fragment + ".h" ]
depfile = outputs[0] + ".d"
args = [
"--$type-header",
"-o",
rebase_path(outputs[0], root_build_dir),
"--depfile",
rebase_path(depfile, root_build_dir),
"--depfile-target",
rebase_path(outputs[0], root_build_dir),
] + rel_include_dirs +
[
rebase_path(inputs[0], root_build_dir),
# FIXME: Get caller path from invoker?
rebase_path("//Userland/Libraries/LibWeb", root_build_dir),
]
}
source_set("generate_" + name_and_type) {
deps = [
":" + name_and_type + "_impl",
":" + name_and_type + "_header",
]
}
source_set(name_and_type + "_sources") {
deps = [
":" + name_and_type + "_impl",
":" + name_and_type + "_header",
]
sources = get_target_outputs(deps[0]) + get_target_outputs(deps[1])
configs += [ "//Userland/Libraries/LibWeb:configs" ]
deps += [ "//Userland/Libraries/LibWeb:all_generated" ]
}
}
# FIXME: Deduplicate these templates
template("_bind_web_namespace") {
forward_variables_from(invoker,
[
"configs",
"inputs",
"include_dirs",
"outputs",
"public_configs",
"testonly",
"visibility",
])
interface_name = target_name
_invoke_bindings_generator(interface_name) {
type = "namespace"
type_filename_fragment = "Namespace"
name = interface_name
path = invoker.path
}
source_set(interface_name + "_sources") {
deps = [ ":" + interface_name + "_namespace_sources" ]
}
source_set("generate_" + interface_name) {
deps = [ ":generate_" + interface_name + "_namespace" ]
}
}
# FIXME: Deduplicate these templates
template("_bind_web_iterable_interface") {
forward_variables_from(invoker,
[
"configs",
"inputs",
"include_dirs",
"outputs",
"public_configs",
"testonly",
"visibility",
])
interface_name = target_name
_invoke_bindings_generator(interface_name) {
type = "prototype"
type_filename_fragment = "Prototype"
name = interface_name
path = invoker.path
}
_invoke_bindings_generator(interface_name) {
type = "constructor"
type_filename_fragment = "Constructor"
name = interface_name
path = invoker.path
}
_invoke_bindings_generator(interface_name) {
type = "iterator-prototype"
type_filename_fragment = "IteratorPrototype"
name = interface_name
path = invoker.path
}
source_set(interface_name + "_sources") {
deps = [
":" + interface_name + "_prototype_sources",
":" + interface_name + "_constructor_sources",
":" + interface_name + "_iterator_prototype_sources",
]
}
source_set("generate_" + interface_name) {
deps = [
":generate_" + interface_name + "_prototype",
":generate_" + interface_name + "_constructor",
":generate_" + interface_name + "_iterator_prototype",
]
}
}
# FIXME: Deduplicate these templates
template("_bind_web_global_interface") {
forward_variables_from(invoker,
[
"configs",
"inputs",
"include_dirs",
"outputs",
"public_configs",
"testonly",
"visibility",
])
interface_name = target_name
_invoke_bindings_generator(interface_name) {
type = "prototype"
type_filename_fragment = "Prototype"
name = interface_name
path = invoker.path
}
_invoke_bindings_generator(interface_name) {
type = "constructor"
type_filename_fragment = "Constructor"
name = interface_name
path = invoker.path
}
_invoke_bindings_generator(interface_name) {
type = "global-mixin"
type_filename_fragment = "GlobalMixin"
name = interface_name
path = invoker.path
}
source_set(interface_name + "_sources") {
deps = [
":" + interface_name + "_prototype_sources",
":" + interface_name + "_constructor_sources",
":" + interface_name + "_global_mixin_sources",
]
}
source_set("generate_" + interface_name) {
deps = [
":generate_" + interface_name + "_prototype",
":generate_" + interface_name + "_constructor",
":generate_" + interface_name + "_global_mixin",
]
}
}
# FIXME: Deduplicate these templates
template("_bind_web_interface") {
forward_variables_from(invoker,
[
"configs",
"inputs",
"include_dirs",
"outputs",
"public_configs",
"testonly",
"visibility",
])
interface_name = target_name
_invoke_bindings_generator(interface_name) {
type = "prototype"
type_filename_fragment = "Prototype"
name = interface_name
path = invoker.path
}
_invoke_bindings_generator(interface_name) {
type = "constructor"
type_filename_fragment = "Constructor"
name = interface_name
path = invoker.path
}
source_set(interface_name + "_sources") {
deps = [
":" + interface_name + "_prototype_sources",
":" + interface_name + "_constructor_sources",
]
}
source_set("generate_" + interface_name) {
deps = [
":generate_" + interface_name + "_prototype",
":generate_" + interface_name + "_constructor",
]
}
}
template("generate_idl_bindings") {
forward_variables_from(invoker,
[
"type",
"idl_list",
])
idl_sources = []
generate_idl = []
foreach(idl, idl_list) {
path = get_path_info(rebase_path(idl, "//Userland/Libraries/LibWeb"),
"dir") + "/" + get_path_info(idl, "name")
name = string_replace(path, "/", "_")
if (type == "standard") {
_bind_web_interface(name) {
path = path
}
} else if (type == "iterable") {
_bind_web_iterable_interface(name) {
path = path
}
} else if (type == "namespace") {
_bind_web_namespace(name) {
path = path
}
} else {
assert(type == "global")
_bind_web_global_interface(name) {
path = path
}
}
generate_idl += [ ":generate_" + name ]
idl_sources += [ ":" + name + "_sources" ]
}
source_set(target_name + "_generated") {
deps = generate_idl
}
source_set(target_name + "_sources") {
deps = idl_sources
}
}

View file

@ -0,0 +1,268 @@
# This file lists all IDL files in LibWeb
#
# Adding a new IDL file involves adding it to the corresponding list.
# Most IDL files are going to be "standard".
#
iterable_idl_files =
get_path_info([
"//Userland/Libraries/LibWeb/Fetch/Headers.idl",
"//Userland/Libraries/LibWeb/URL/URLSearchParams.idl",
"//Userland/Libraries/LibWeb/XHR/FormData.idl",
],
"abspath")
namespace_idl_files =
get_path_info([
"//Userland/Libraries/LibWeb/CSS/CSS.idl",
"//Userland/Libraries/LibWeb/WebAssembly/WebAssembly.idl",
],
"abspath")
global_idl_files =
get_path_info([ "//Userland/Libraries/LibWeb/HTML/Window.idl" ], "abspath")
# Standard idl files are neither iterable, namespaces, or global
standard_idl_files = get_path_info(
[
"//Userland/Libraries/LibWeb/Crypto/Crypto.idl",
"//Userland/Libraries/LibWeb/Crypto/SubtleCrypto.idl",
"//Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSFontFaceRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSKeyframeRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSKeyframesRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSImportRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSMediaRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSRuleList.idl",
"//Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl",
"//Userland/Libraries/LibWeb/CSS/CSSStyleRule.idl",
"//Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl",
"//Userland/Libraries/LibWeb/CSS/CSSSupportsRule.idl",
"//Userland/Libraries/LibWeb/CSS/MediaList.idl",
"//Userland/Libraries/LibWeb/CSS/MediaQueryList.idl",
"//Userland/Libraries/LibWeb/CSS/MediaQueryListEvent.idl",
"//Userland/Libraries/LibWeb/CSS/Screen.idl",
"//Userland/Libraries/LibWeb/CSS/StyleSheet.idl",
"//Userland/Libraries/LibWeb/CSS/StyleSheetList.idl",
"//Userland/Libraries/LibWeb/DOM/AbstractRange.idl",
"//Userland/Libraries/LibWeb/DOM/Attr.idl",
"//Userland/Libraries/LibWeb/DOM/AbortController.idl",
"//Userland/Libraries/LibWeb/DOM/AbortSignal.idl",
"//Userland/Libraries/LibWeb/DOM/CDATASection.idl",
"//Userland/Libraries/LibWeb/DOM/CharacterData.idl",
"//Userland/Libraries/LibWeb/DOM/Comment.idl",
"//Userland/Libraries/LibWeb/DOM/CustomEvent.idl",
"//Userland/Libraries/LibWeb/DOM/Document.idl",
"//Userland/Libraries/LibWeb/DOM/DocumentFragment.idl",
"//Userland/Libraries/LibWeb/DOM/DocumentType.idl",
"//Userland/Libraries/LibWeb/DOM/DOMImplementation.idl",
"//Userland/Libraries/LibWeb/DOM/DOMTokenList.idl",
"//Userland/Libraries/LibWeb/DOM/Element.idl",
"//Userland/Libraries/LibWeb/DOM/Event.idl",
"//Userland/Libraries/LibWeb/DOM/EventTarget.idl",
"//Userland/Libraries/LibWeb/DOM/HTMLCollection.idl",
"//Userland/Libraries/LibWeb/DOM/MutationRecord.idl",
"//Userland/Libraries/LibWeb/DOM/MutationObserver.idl",
"//Userland/Libraries/LibWeb/DOM/NamedNodeMap.idl",
"//Userland/Libraries/LibWeb/DOM/Node.idl",
"//Userland/Libraries/LibWeb/DOM/NodeFilter.idl",
"//Userland/Libraries/LibWeb/DOM/NodeIterator.idl",
"//Userland/Libraries/LibWeb/DOM/NodeList.idl",
"//Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl",
"//Userland/Libraries/LibWeb/DOM/Range.idl",
"//Userland/Libraries/LibWeb/DOM/ShadowRoot.idl",
"//Userland/Libraries/LibWeb/DOM/StaticRange.idl",
"//Userland/Libraries/LibWeb/DOM/Text.idl",
"//Userland/Libraries/LibWeb/DOM/TreeWalker.idl",
"//Userland/Libraries/LibWeb/DOM/XMLDocument.idl",
"//Userland/Libraries/LibWeb/DOMParsing/XMLSerializer.idl",
"//Userland/Libraries/LibWeb/Encoding/TextDecoder.idl",
"//Userland/Libraries/LibWeb/Encoding/TextEncoder.idl",
"//Userland/Libraries/LibWeb/Fetch/Request.idl",
"//Userland/Libraries/LibWeb/Fetch/Response.idl",
"//Userland/Libraries/LibWeb/FileAPI/Blob.idl",
"//Userland/Libraries/LibWeb/FileAPI/File.idl",
"//Userland/Libraries/LibWeb/FileAPI/FileList.idl",
"//Userland/Libraries/LibWeb/Geometry/DOMMatrix.idl",
"//Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.idl",
"//Userland/Libraries/LibWeb/Geometry/DOMPoint.idl",
"//Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.idl",
"//Userland/Libraries/LibWeb/Geometry/DOMRect.idl",
"//Userland/Libraries/LibWeb/Geometry/DOMRectList.idl",
"//Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.idl",
"//Userland/Libraries/LibWeb/HTML/AudioTrack.idl",
"//Userland/Libraries/LibWeb/HTML/AudioTrackList.idl",
"//Userland/Libraries/LibWeb/HTML/CanvasGradient.idl",
"//Userland/Libraries/LibWeb/HTML/CanvasPattern.idl",
"//Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl",
"//Userland/Libraries/LibWeb/HTML/CloseEvent.idl",
"//Userland/Libraries/LibWeb/HTML/CustomElements/CustomElementRegistry.idl",
"//Userland/Libraries/LibWeb/HTML/DOMParser.idl",
"//Userland/Libraries/LibWeb/HTML/DOMStringMap.idl",
"//Userland/Libraries/LibWeb/HTML/ErrorEvent.idl",
"//Userland/Libraries/LibWeb/HTML/FormDataEvent.idl",
"//Userland/Libraries/LibWeb/HTML/History.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLDocument.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLModElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLOptionsCollection.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl",
"//Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl",
"//Userland/Libraries/LibWeb/HTML/ImageData.idl",
"//Userland/Libraries/LibWeb/HTML/Location.idl",
"//Userland/Libraries/LibWeb/HTML/MediaError.idl",
"//Userland/Libraries/LibWeb/HTML/MessageChannel.idl",
"//Userland/Libraries/LibWeb/HTML/MessageEvent.idl",
"//Userland/Libraries/LibWeb/HTML/MessagePort.idl",
"//Userland/Libraries/LibWeb/HTML/MimeType.idl",
"//Userland/Libraries/LibWeb/HTML/MimeTypeArray.idl",
"//Userland/Libraries/LibWeb/HTML/Navigator.idl",
"//Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl",
"//Userland/Libraries/LibWeb/HTML/Path2D.idl",
"//Userland/Libraries/LibWeb/HTML/Plugin.idl",
"//Userland/Libraries/LibWeb/HTML/PluginArray.idl",
"//Userland/Libraries/LibWeb/HTML/PromiseRejectionEvent.idl",
"//Userland/Libraries/LibWeb/HTML/Storage.idl",
"//Userland/Libraries/LibWeb/HTML/SubmitEvent.idl",
"//Userland/Libraries/LibWeb/HTML/TextMetrics.idl",
"//Userland/Libraries/LibWeb/HTML/TimeRanges.idl",
"//Userland/Libraries/LibWeb/HTML/TrackEvent.idl",
"//Userland/Libraries/LibWeb/HTML/VideoTrack.idl",
"//Userland/Libraries/LibWeb/HTML/VideoTrackList.idl",
"//Userland/Libraries/LibWeb/HTML/Worker.idl",
"//Userland/Libraries/LibWeb/HTML/WorkerGlobalScope.idl",
"//Userland/Libraries/LibWeb/HTML/WorkerLocation.idl",
"//Userland/Libraries/LibWeb/HTML/WorkerNavigator.idl",
"//Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl",
"//Userland/Libraries/LibWeb/IntersectionObserver/IntersectionObserver.idl",
"//Userland/Libraries/LibWeb/IntersectionObserver/IntersectionObserverEntry.idl",
"//Userland/Libraries/LibWeb/NavigationTiming/PerformanceTiming.idl",
"//Userland/Libraries/LibWeb/PerformanceTimeline/PerformanceEntry.idl",
"//Userland/Libraries/LibWeb/RequestIdleCallback/IdleDeadline.idl",
"//Userland/Libraries/LibWeb/ResizeObserver/ResizeObserver.idl",
"//Userland/Libraries/LibWeb/Streams/ReadableByteStreamController.idl",
"//Userland/Libraries/LibWeb/Streams/ReadableStream.idl",
"//Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.idl",
"//Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBRequest.idl",
"//Userland/Libraries/LibWeb/Streams/ReadableStreamDefaultController.idl",
"//Userland/Libraries/LibWeb/Streams/ReadableStreamDefaultReader.idl",
"//Userland/Libraries/LibWeb/Streams/WritableStream.idl",
"//Userland/Libraries/LibWeb/Streams/WritableStreamDefaultWriter.idl",
"//Userland/Libraries/LibWeb/SVG/SVGAnimatedLength.idl",
"//Userland/Libraries/LibWeb/SVG/SVGAnimatedNumber.idl",
"//Userland/Libraries/LibWeb/SVG/SVGClipPathElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGDefsElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGGradientElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGCircleElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGEllipseElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGForeignObjectElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGLength.idl",
"//Userland/Libraries/LibWeb/SVG/SVGLineElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGLinearGradientElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGPathElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGPolygonElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGPolylineElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGRadialGradientElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGRectElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGStopElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGStyleElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGSymbolElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGTextContentElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGTitleElement.idl",
"//Userland/Libraries/LibWeb/SVG/SVGUseElement.idl",
"//Userland/Libraries/LibWeb/Selection/Selection.idl",
"//Userland/Libraries/LibWeb/UIEvents/FocusEvent.idl",
"//Userland/Libraries/LibWeb/UIEvents/KeyboardEvent.idl",
"//Userland/Libraries/LibWeb/UIEvents/MouseEvent.idl",
"//Userland/Libraries/LibWeb/UIEvents/UIEvent.idl",
"//Userland/Libraries/LibWeb/UIEvents/WheelEvent.idl",
"//Userland/Libraries/LibWeb/URL/URL.idl",
"//Userland/Libraries/LibWeb/UserTiming/PerformanceMark.idl",
"//Userland/Libraries/LibWeb/UserTiming/PerformanceMeasure.idl",
"//Userland/Libraries/LibWeb/WebAssembly/Instance.idl",
"//Userland/Libraries/LibWeb/WebAssembly/Memory.idl",
"//Userland/Libraries/LibWeb/WebAssembly/Module.idl",
"//Userland/Libraries/LibWeb/WebAssembly/Table.idl",
"//Userland/Libraries/LibWeb/WebGL/WebGLContextEvent.idl",
"//Userland/Libraries/LibWeb/WebGL/WebGLRenderingContext.idl",
"//Userland/Libraries/LibWeb/WebIDL/DOMException.idl",
"//Userland/Libraries/LibWeb/WebSockets/WebSocket.idl",
"//Userland/Libraries/LibWeb/XHR/ProgressEvent.idl",
"//Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl",
"//Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl",
"//Userland/Libraries/LibWeb/XHR/XMLHttpRequestUpload.idl",
],
"abspath")