diff --git a/Meta/gn/build/embed_as_string_view.gni b/Meta/gn/build/embed_as_string_view.gni new file mode 100644 index 0000000000..6bc7d8032c --- /dev/null +++ b/Meta/gn/build/embed_as_string_view.gni @@ -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", + ]) + } +} diff --git a/Meta/gn/build/embed_as_string_view.py b/Meta/gn/build/embed_as_string_view.py new file mode 100644 index 0000000000..a9bd7a16e1 --- /dev/null +++ b/Meta/gn/build/embed_as_string_view.py @@ -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 \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()) diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/ARIA/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/ARIA/BUILD.gn new file mode 100644 index 0000000000..eada7acf4d --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/ARIA/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/BUILD.gn new file mode 100644 index 0000000000..9c566de5a6 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/BUILD.gn @@ -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 +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Bindings/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Bindings/BUILD.gn new file mode 100644 index 0000000000..801c6738e4 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Bindings/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/BUILD.gn new file mode 100644 index 0000000000..2ab8119136 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/Parser/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/Parser/BUILD.gn new file mode 100644 index 0000000000..9d2cff021e --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/Parser/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/StyleValues/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/StyleValues/BUILD.gn new file mode 100644 index 0000000000..2e5691ee46 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/StyleValues/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/BUILD.gn new file mode 100644 index 0000000000..64672b1cc5 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/BUILD.gn @@ -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" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Cookie/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Cookie/BUILD.gn new file mode 100644 index 0000000000..bff3119517 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Cookie/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Crypto/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Crypto/BUILD.gn new file mode 100644 index 0000000000..318af7770c --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Crypto/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/DOM/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/DOM/BUILD.gn new file mode 100644 index 0000000000..0d78e2327c --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/DOM/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/DOMParsing/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/DOMParsing/BUILD.gn new file mode 100644 index 0000000000..cb5694ef68 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/DOMParsing/BUILD.gn @@ -0,0 +1,8 @@ +source_set("DOMParsing") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "InnerHTML.cpp", + "XMLSerializer.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Encoding/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Encoding/BUILD.gn new file mode 100644 index 0000000000..a0fedfd271 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Encoding/BUILD.gn @@ -0,0 +1,8 @@ +source_set("Encoding") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "TextDecoder.cpp", + "TextEncoder.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/BUILD.gn new file mode 100644 index 0000000000..db5a1f0903 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Fetching/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Fetching/BUILD.gn new file mode 100644 index 0000000000..64f85c8b91 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Fetching/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Infrastructure/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Infrastructure/BUILD.gn new file mode 100644 index 0000000000..0b8824f674 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Infrastructure/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/BUILD.gn new file mode 100644 index 0000000000..ebd058f41a --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/FileAPI/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/FileAPI/BUILD.gn new file mode 100644 index 0000000000..553f02f947 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/FileAPI/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Geometry/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Geometry/BUILD.gn new file mode 100644 index 0000000000..b30b84f283 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Geometry/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/BUILD.gn new file mode 100644 index 0000000000..c2c2a86832 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Canvas/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Canvas/BUILD.gn new file mode 100644 index 0000000000..f28b1a7ba1 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Canvas/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/CrossOrigin/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/CrossOrigin/BUILD.gn new file mode 100644 index 0000000000..43cccd7f08 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/CrossOrigin/BUILD.gn @@ -0,0 +1,8 @@ +source_set("CrossOrigin") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "AbstractOperations.cpp", + "Reporting.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/CustomElements/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/CustomElements/BUILD.gn new file mode 100644 index 0000000000..28e1d2aee5 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/CustomElements/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/EventLoop/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/EventLoop/BUILD.gn new file mode 100644 index 0000000000..94e6520f72 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/EventLoop/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Parser/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Parser/BUILD.gn new file mode 100644 index 0000000000..5afd9b3bb4 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Parser/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Scripting/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Scripting/BUILD.gn new file mode 100644 index 0000000000..beb0a26503 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/Scripting/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/BUILD.gn new file mode 100644 index 0000000000..bafe4a1874 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/BUILD.gn @@ -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" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/HighResolutionTime/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/HighResolutionTime/BUILD.gn new file mode 100644 index 0000000000..bb9845dbf0 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/HighResolutionTime/BUILD.gn @@ -0,0 +1,8 @@ +source_set("HighResolutionTime") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "Performance.cpp", + "TimeOrigin.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Infra/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Infra/BUILD.gn new file mode 100644 index 0000000000..5acdfaa9a5 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Infra/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/IntersectionObserver/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/IntersectionObserver/BUILD.gn new file mode 100644 index 0000000000..082cc41c2f --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/IntersectionObserver/BUILD.gn @@ -0,0 +1,8 @@ +source_set("IntersectionObserver") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "IntersectionObserver.cpp", + "IntersectionObserverEntry.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Layout/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Layout/BUILD.gn new file mode 100644 index 0000000000..46f7485761 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Layout/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Loader/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Loader/BUILD.gn new file mode 100644 index 0000000000..34109d2b9d --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Loader/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/MimeSniff/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/MimeSniff/BUILD.gn new file mode 100644 index 0000000000..f20888ce9e --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/MimeSniff/BUILD.gn @@ -0,0 +1,5 @@ +source_set("MimeSniff") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "MimeType.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/NavigationTiming/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/NavigationTiming/BUILD.gn new file mode 100644 index 0000000000..fcc3f47672 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/NavigationTiming/BUILD.gn @@ -0,0 +1,8 @@ +source_set("NavigationTiming") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "EntryNames.cpp", + "PerformanceTiming.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Page/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Page/BUILD.gn new file mode 100644 index 0000000000..07f45baa52 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Page/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Painting/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Painting/BUILD.gn new file mode 100644 index 0000000000..cc1f6eaf30 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Painting/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/PerformanceTimeline/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/PerformanceTimeline/BUILD.gn new file mode 100644 index 0000000000..4e348ee49f --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/PerformanceTimeline/BUILD.gn @@ -0,0 +1,8 @@ +source_set("PerformanceTimeline") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "EntryTypes.cpp", + "PerformanceEntry.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/PermissionsPolicy/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/PermissionsPolicy/BUILD.gn new file mode 100644 index 0000000000..bc04cf47cc --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/PermissionsPolicy/BUILD.gn @@ -0,0 +1,5 @@ +source_set("PermissionsPolicy") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "AutoplayAllowlist.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Platform/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Platform/BUILD.gn new file mode 100644 index 0000000000..709eac7ff4 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Platform/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/ReferrerPolicy/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/ReferrerPolicy/BUILD.gn new file mode 100644 index 0000000000..245f117a15 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/ReferrerPolicy/BUILD.gn @@ -0,0 +1,8 @@ +source_set("ReferrerPolicy") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "AbstractOperations.cpp", + "ReferrerPolicy.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/RequestIdleCallback/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/RequestIdleCallback/BUILD.gn new file mode 100644 index 0000000000..acba5361e6 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/RequestIdleCallback/BUILD.gn @@ -0,0 +1,5 @@ +source_set("RequestIdleCallback") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "IdleDeadline.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/ResizeObserver/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/ResizeObserver/BUILD.gn new file mode 100644 index 0000000000..375e13b5d0 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/ResizeObserver/BUILD.gn @@ -0,0 +1,5 @@ +source_set("ResizeObserver") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "ResizeObserver.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/SRI/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/SRI/BUILD.gn new file mode 100644 index 0000000000..2103f5e07f --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/SRI/BUILD.gn @@ -0,0 +1,5 @@ +source_set("SRI") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "SRI.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/SVG/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/SVG/BUILD.gn new file mode 100644 index 0000000000..9bc0cf7b86 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/SVG/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/SecureContexts/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/SecureContexts/BUILD.gn new file mode 100644 index 0000000000..014edeba07 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/SecureContexts/BUILD.gn @@ -0,0 +1,5 @@ +source_set("SecureContexts") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "AbstractOperations.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Selection/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Selection/BUILD.gn new file mode 100644 index 0000000000..c073858b64 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Selection/BUILD.gn @@ -0,0 +1,5 @@ +source_set("Selection") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "Selection.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/Streams/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/Streams/BUILD.gn new file mode 100644 index 0000000000..acdfd65f3a --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/Streams/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/UIEvents/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/UIEvents/BUILD.gn new file mode 100644 index 0000000000..04d82ebc59 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/UIEvents/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/URL/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/URL/BUILD.gn new file mode 100644 index 0000000000..73babc2a6d --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/URL/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/UserTiming/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/UserTiming/BUILD.gn new file mode 100644 index 0000000000..54a5a95656 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/UserTiming/BUILD.gn @@ -0,0 +1,8 @@ +source_set("UserTiming") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ + "PerformanceMark.cpp", + "PerformanceMeasure.cpp", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/WebAssembly/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebAssembly/BUILD.gn new file mode 100644 index 0000000000..dac2b7c453 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebAssembly/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/WebDriver/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebDriver/BUILD.gn new file mode 100644 index 0000000000..1e8fbdb66b --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebDriver/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/WebGL/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebGL/BUILD.gn new file mode 100644 index 0000000000..b7e2d05aaa --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebGL/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/WebIDL/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebIDL/BUILD.gn new file mode 100644 index 0000000000..7f8d4144d2 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebIDL/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/WebSockets/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebSockets/BUILD.gn new file mode 100644 index 0000000000..a6352aa8c3 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/WebSockets/BUILD.gn @@ -0,0 +1,5 @@ +source_set("WebSockets") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "WebSocket.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/XHR/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/XHR/BUILD.gn new file mode 100644 index 0000000000..dbd6a0938e --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/XHR/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/XML/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/XML/BUILD.gn new file mode 100644 index 0000000000..105f187879 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/XML/BUILD.gn @@ -0,0 +1,5 @@ +source_set("XML") { + configs += [ "//Userland/Libraries/LibWeb:configs" ] + deps = [ "//Userland/Libraries/LibWeb:all_generated" ] + sources = [ "XMLDocumentBuilder.cpp" ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/generate_idl_bindings.gni b/Meta/gn/secondary/Userland/Libraries/LibWeb/generate_idl_bindings.gni new file mode 100644 index 0000000000..a1636ec3ae --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/generate_idl_bindings.gni @@ -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 + } +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/idl_files.gni b/Meta/gn/secondary/Userland/Libraries/LibWeb/idl_files.gni new file mode 100644 index 0000000000..4a5f1f5ffd --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/idl_files.gni @@ -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")