| # Copyright 2019 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//chrome/common/features.gni") |
| import("./new_tab_page.gni") |
| |
| import("//ui/webui/resources/tools/build_webui.gni") |
| |
| assert(!is_android) |
| |
| grd_prefix = "new_tab_page" |
| |
| build_webui("build") { |
| icons_html_files = [ |
| "modules/icons.html", |
| "modules/most_relevant_tab_resumption/icons.html", |
| "modules/tab_groups/icons.html", |
| "ntp_promo/ntp_promo_icons.html", |
| ] |
| |
| static_files = [ |
| "new_tab_page.html", |
| "shared_vars.css", |
| ] |
| |
| extra_grdp_files = [ |
| "$target_gen_dir/icons/resources.grdp", |
| "$target_gen_dir/modules/authentication/icons/resources.grdp", |
| "$target_gen_dir/modules/calendar/icons/resources.grdp", |
| "$target_gen_dir/modules/tab_groups/icons/resources.grdp", |
| ] |
| |
| extra_grdp_deps = [ |
| "icons:build_grdp", |
| "modules/authentication/icons:build_grdp", |
| "modules/calendar/icons:build_grdp", |
| "modules/tab_groups/icons:build_grdp", |
| ] |
| |
| if (optimize_webui) { |
| extra_grdp_files += [ "$target_gen_dir/mojo_resources.grdp" ] |
| extra_grdp_deps += [ ":build_mojo_grdp" ] |
| } |
| |
| web_component_files = all_web_component_files |
| ts_files = all_ts_files |
| css_files = all_css_files |
| |
| mojo_files_deps = [ |
| "//chrome/browser/new_tab_page/modules/file_suggestion:mojo_bindings_ts__generator", |
| "//chrome/browser/new_tab_page/modules/v2/authentication:mojo_bindings_ts__generator", |
| "//chrome/browser/new_tab_page/modules/v2/calendar:mojo_bindings_ts__generator", |
| "//chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption:mojo_bindings_ts__generator", |
| "//chrome/browser/new_tab_page/modules/v2/tab_groups:mojo_bindings_ts__generator", |
| "//chrome/browser/ui/webui/customize_buttons:mojo_bindings_ts__generator", |
| "//chrome/browser/ui/webui/new_tab_page:mojo_bindings_ts__generator", |
| "//chrome/browser/ui/webui/new_tab_page/ntp_promo:mojo_bindings_ts__generator", |
| "//chrome/browser/ui/webui/ntp_microsoft_auth:shared_ts__generator", |
| "//chrome/browser/ui/webui/side_panel/customize_chrome:mojo_bindings_ts__generator", |
| "//components/ntp_tiles:mojo_bindings_ts__generator", |
| "//components/omnibox/composebox:mojo_bindings_ts__generator", |
| "//components/tab_groups/public/mojom:mojo_bindings_ts__generator", |
| "//ui/webui/resources/cr_components/composebox:mojo_bindings_ts__generator", |
| ] |
| mojo_files = [ |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/file_suggestion/drive_suggestion.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/file_suggestion/file_suggestion.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/file_suggestion/microsoft_files.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/calendar/calendar_data.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/calendar/google_calendar.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/calendar/outlook_calendar.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/url_visit_types.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/tab_groups/tab_groups.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/ui/webui/ntp_microsoft_auth/ntp_microsoft_auth_shared_ui.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/ui/webui/customize_buttons/customize_buttons.mojom-webui.ts", |
| "$root_gen_dir/ui/webui/resources/cr_components/composebox/composebox.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome.mojom-webui.ts", |
| "$root_gen_dir/chrome/browser/ui/webui/new_tab_page/ntp_promo/ntp_promo.mojom-webui.ts", |
| "$root_gen_dir/components/omnibox/composebox/composebox_query.mojom-webui.ts", |
| "$root_gen_dir/components/ntp_tiles/tile_type.mojom-webui.ts", |
| "$root_gen_dir/components/tab_groups/public/mojom/tab_group_types.mojom-webui.ts", |
| ] |
| |
| if (!is_official_build) { |
| mojo_files_deps += [ |
| "//chrome/browser/ui/webui/new_tab_page/foo:mojo_bindings_ts__generator", |
| ] |
| mojo_files += [ "$root_gen_dir/chrome/browser/ui/webui/new_tab_page/foo/foo.mojom-webui.ts" ] |
| } |
| |
| ts_tsconfig_base = "tsconfig_base.json" |
| ts_composite = true |
| ts_definitions = [ |
| "//tools/typescript/definitions/metrics_private.d.ts", |
| "//tools/typescript/definitions/pending.d.ts", |
| ] |
| ts_deps = [ |
| "//chrome/browser/resources/new_tab_shared:build_ts", |
| "//third_party/lit/v3_0:build_ts", |
| "//ui/webui/resources/cr_components/color_change_listener:build_ts", |
| "//ui/webui/resources/cr_components/composebox:build_ts", |
| "//ui/webui/resources/cr_components/help_bubble:build_ts", |
| "//ui/webui/resources/cr_components/most_visited:build_ts", |
| "//ui/webui/resources/cr_components/page_image_service:build_ts", |
| "//ui/webui/resources/cr_components/searchbox:build_ts", |
| "//ui/webui/resources/cr_elements:build_ts", |
| "//ui/webui/resources/js:build_ts", |
| "//ui/webui/resources/mojo:build_ts", |
| ] |
| |
| ts_path_mappings = |
| [ "chrome://new-tab-page/shared/*|" + |
| rebase_path( |
| "$root_gen_dir/chrome/browser/resources/new_tab_shared/tsc/*", |
| target_gen_dir) ] |
| |
| webui_context_type = "trusted" |
| optimize = optimize_webui |
| if (optimize) { |
| optimize_webui_host = "new-tab-page" |
| optimize_webui_in_files = [ |
| "new_tab_page.js", |
| "lazy_load.js", |
| ] |
| optimize_webui_excludes = [ |
| "chrome://resources/cr_components/color_change_listener/color_change_listener.mojom-webui.js", |
| "chrome://resources/cr_components/most_visited/most_visited.mojom-webui.js", |
| "chrome://resources/cr_components/page_image_service/page_image_service.mojom-webui.js", |
| "chrome://resources/mojo/omnibox/browser/searchbox.mojom-webui.js", |
| "chrome://resources/cr_components/searchbox/searchbox.mojom-webui.js", |
| "chrome://resources/cr_components/composebox/composebox.mojom-webui.js", |
| "chrome://resources/cr_components/composebox/composebox_query.mojom-webui.js", |
| "chrome://resources/js/browser_command/browser_command.mojom-webui.js", |
| "chrome://resources/js/metrics_reporter/metrics_reporter.mojom-webui.js", |
| "chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-webui.js", |
| "chrome://resources/mojo/mojo/public/mojom/base/text_direction.mojom-webui.js", |
| "chrome://resources/mojo/mojo/public/mojom/base/time.mojom-webui.js", |
| "chrome://resources/mojo/skia/public/mojom/skcolor.mojom-webui.js", |
| "chrome://resources/mojo/url/mojom/url.mojom-webui.js", |
| ] + mojo_js_files |
| optimize_webui_external_paths = |
| [ "chrome://new-tab-page/shared|" + |
| rebase_path( |
| "$root_gen_dir/chrome/browser/resources/new_tab_shared/tsc", |
| root_build_dir) ] |
| } |
| } |
| |
| if (optimize_webui) { |
| # Register all mojo files to their own grdp, since they are excluded from the |
| # bundle on optimized builds and need to be registered separately. |
| generate_grd("build_mojo_grdp") { |
| grd_prefix = grd_prefix |
| out_grd = "$target_gen_dir/mojo_resources.grdp" |
| input_files = mojo_js_files |
| input_files_base_dir = rebase_path("$target_gen_dir/tsc", root_build_dir) |
| deps = [ ":build_ts" ] |
| } |
| } |