| # Copyright 2024 The Chromium Authors |
| # Use of this source code is governed by a BSD - style license that can be |
| # found in the LICENSE file. |
| |
| import("//ui/webui/resources/tools/build_webui.gni") |
| import("//ui/webui/resources/tools/optimize_webui.gni") |
| |
| assert(enable_glic) |
| |
| build_webui("build") { |
| grd_prefix = "glic" |
| |
| static_files = [ |
| "glic.css", |
| "glic.html", |
| ] |
| |
| ts_files = [ |
| "browser_proxy.ts", |
| "glic_api/glic_api.ts", |
| "glic_api_impl/conversions.ts", |
| "glic_api_impl/glic_api_client.ts", |
| "glic_api_impl/glic_api_host.ts", |
| "glic_api_impl/glic_api_injected_client.ts", |
| "glic_api_impl/post_message_transport.ts", |
| "glic_api_impl/request_types.ts", |
| "glic_app_controller.ts", |
| "icons.html.ts", |
| "main.ts", |
| "observable.ts", |
| "app_router.ts", |
| "timer.ts", |
| "webview.ts", |
| ] |
| |
| webui_context_type = "trusted" |
| ts_deps = [ |
| "//chrome/browser/resources/glic/fre:build_ts", |
| "//chrome/browser/resources/glic/shared:build_ts", |
| "//ui/webui/resources/cr_elements:build_ts", |
| "//ui/webui/resources/js:build_ts", |
| "//ui/webui/resources/mojo:build_ts", |
| ] |
| |
| extra_grdp_deps = [ ":glic_api_injection_grdp" ] |
| extra_grdp_files = [ "$target_gen_dir/glic_api_injection.grdp" ] |
| |
| mojo_files_deps = [ |
| "//chrome/browser/glic:mojo_bindings_ts__generator", |
| "//chrome/common:actor_webui_mojom_ts__generator", |
| "//components/content_settings/core/common:content_settings_types_ts__generator", |
| "//components/optimization_guide/content/mojom:mojo_interfaces_ts__generator", |
| "//third_party/blink/public/mojom/content_extraction:content_extraction_ts__generator", |
| ] |
| mojo_files = [ |
| "$root_gen_dir/chrome/browser/glic/host/glic.mojom-webui.ts", |
| "$root_gen_dir/components/content_settings/core/common/content_settings_types.mojom-webui.ts", |
| "$root_gen_dir/third_party/blink/public/mojom/content_extraction/ai_page_content_metadata.mojom-webui.ts", |
| "$root_gen_dir/chrome/common/actor_webui.mojom-webui.ts", |
| ] |
| |
| ts_definitions = [ |
| "//tools/typescript/definitions/chrome_event.d.ts", |
| "//tools/typescript/definitions/context_menus.d.ts", |
| "//tools/typescript/definitions/extension_types.d.ts", |
| "//tools/typescript/definitions/metrics_private.d.ts", |
| "//tools/typescript/definitions/tabs.d.ts", |
| "//tools/typescript/definitions/web_request.d.ts", |
| "//tools/typescript/definitions/webview_tag.d.ts", |
| "url_pattern.d.ts", |
| ] |
| |
| ts_path_mappings = [ |
| "/shared/*|./shared/tsc/*", |
| "/fre/*|./fre/tsc/*", |
| ] |
| |
| ts_composite = true |
| } |
| |
| # Build the API provided to the Glic web client. It needs to be built into a |
| # single js file and sent to the Glic web client at runtime. |
| glic_api_injection_manifest = "$target_gen_dir/glic_api_injection_manifest.json" |
| optimize_webui("glic_api_injection") { |
| host = "about:blank" |
| input = rebase_path("$target_gen_dir/tsc", root_build_dir) |
| js_module_in_files = [ "glic_api_impl/glic_api_injected_client.js" ] |
| out_manifest = "$glic_api_injection_manifest" |
| deps = [ ":build_ts" ] |
| } |
| |
| generate_grd("glic_api_injection_grdp") { |
| manifest_files = [ "$glic_api_injection_manifest" ] |
| deps = [ ":glic_api_injection" ] |
| grd_prefix = "glic" |
| out_grd = "$target_gen_dir/glic_api_injection.grdp" |
| } |