From 6ef7d68ae1099c19ff4792af81f685a96f3ff869 Mon Sep 17 00:00:00 2001 From: Pete Miller Date: Wed, 29 Oct 2025 00:32:30 -0700 Subject: [PATCH] Move ui/webui/ai_chat to its own target (#32054) * Move ui/webui/ai_chat to its own target --- browser/ai_chat/BUILD.gn | 1 + browser/sources.gni | 5 ++ browser/ui/BUILD.gn | 18 +------ browser/ui/config.gni | 6 ++- browser/ui/views/side_panel/ai_chat/BUILD.gn | 1 + browser/ui/webui/ai_chat/BUILD.gn | 52 +++++++++++++++++++ .../ai_chat_untrusted_conversation_ui.cc | 2 +- 7 files changed, 65 insertions(+), 20 deletions(-) diff --git a/browser/ai_chat/BUILD.gn b/browser/ai_chat/BUILD.gn index ed29e84700f..bd21c13da72 100644 --- a/browser/ai_chat/BUILD.gn +++ b/browser/ai_chat/BUILD.gn @@ -360,6 +360,7 @@ source_set("browser_tests") { deps += [ ":content_agent_test_support", "//brave/browser/ai_chat:ai_chat_agent_profile", + "//brave/browser/ui/webui/ai_chat", "//brave/components/ai_chat/core/common:test_support", "//chrome/browser/actor", "//chrome/browser/ui", diff --git a/browser/sources.gni b/browser/sources.gni index a828f8017fa..48604224414 100644 --- a/browser/sources.gni +++ b/browser/sources.gni @@ -144,6 +144,7 @@ brave_chrome_browser_deps = [ "//brave/browser/themes", "//brave/browser/ui", "//brave/browser/ui/webui/ads_internals", + "//brave/browser/ui/webui/ai_chat", "//brave/browser/ui/webui/brave_account", "//brave/browser/updater:buildflags", "//brave/common", @@ -646,6 +647,10 @@ brave_chrome_browser_allow_circular_includes_from = [ "//brave/browser/brave_ads/creatives/search_result_ad", "//brave/browser/brave_stats", "//brave/browser/ntp_background", + + # TODO(https://github.com/brave/brave-browser/issues/50507): + # Remove this once webui/ai_chat does not depend on chrome/browser. + "//brave/browser/ui/webui/ai_chat", ] if (enable_brave_ai_chat_agent_profile) { diff --git a/browser/ui/BUILD.gn b/browser/ui/BUILD.gn index 3486b93ef7d..e7dcf012460 100644 --- a/browser/ui/BUILD.gn +++ b/browser/ui/BUILD.gn @@ -7,7 +7,6 @@ import("//brave/browser/shell_integrations/buildflags/buildflags.gni") import("//brave/browser/ui/config.gni") import("//brave/browser/updater/buildflags.gni") import("//brave/build/config.gni") -import("//brave/components/ai_chat/core/common/buildflags/buildflags.gni") import("//brave/components/ai_rewriter/common/buildflags/buildflags.gni") import("//brave/components/brave_education/buildflags.gni") import("//brave/components/brave_vpn/common/buildflags/buildflags.gni") @@ -60,7 +59,6 @@ source_set("ui") { "//brave/browser/skus", "//brave/browser/ui/page_info", "//brave/browser/ui/webui/brave_account", - "//brave/components/ai_chat/core/common/buildflags", "//brave/components/brave_origin", "//brave/components/brave_private_cdn", "//brave/components/brave_shields/core/browser", @@ -80,12 +78,6 @@ source_set("ui") { sources = [ "brave_ui_features.cc", "brave_ui_features.h", - "webui/ai_chat/ai_chat_ui.cc", - "webui/ai_chat/ai_chat_ui.h", - "webui/ai_chat/ai_chat_ui_page_handler.cc", - "webui/ai_chat/ai_chat_ui_page_handler.h", - "webui/ai_chat/ai_chat_untrusted_conversation_ui.cc", - "webui/ai_chat/ai_chat_untrusted_conversation_ui.h", "webui/brave_adblock_internals_ui.cc", "webui/brave_adblock_internals_ui.h", "webui/brave_adblock_ui.cc", @@ -155,6 +147,7 @@ source_set("ui") { ] deps += [ + "//brave/browser/ui/webui/ai_chat", "//brave/components/ai_rewriter/common", "//brave/components/ai_rewriter/resources/page:generated_resources", "//components/web_modal", @@ -783,12 +776,7 @@ source_set("ui") { # to pull in dependencies needed for the overwrite codes in chromium_src. "//brave/chromium_src/chrome/browser/ui", "//brave/common", - "//brave/components/ai_chat/content/browser", "//brave/components/ai_chat/core/browser", - "//brave/components/ai_chat/core/common", - "//brave/components/ai_chat/core/common/mojom", - "//brave/components/ai_chat/resources", - "//brave/components/ai_chat/resources/custom_site_distiller_scripts:generated_resources", "//brave/components/ai_rewriter/common/buildflags", "//brave/components/brave_adaptive_captcha", "//brave/components/brave_adblock_ui:generated_resources", @@ -1376,10 +1364,6 @@ source_set("ui") { ] } - if (enable_brave_ai_chat_agent_profile) { - deps += [ "//brave/browser/ai_chat:ai_chat_agent_profile" ] - } - if (enable_containers) { deps += [ "//brave/components/containers/core/browser", diff --git a/browser/ui/config.gni b/browser/ui/config.gni index 90ed2e58014..ff597029e14 100644 --- a/browser/ui/config.gni +++ b/browser/ui/config.gni @@ -7,8 +7,10 @@ import("//brave/components/containers/buildflags/buildflags.gni") import("//brave/components/speedreader/common/buildflags/buildflags.gni") import("//build/config/ui.gni") -brave_ui_allow_circular_includes_from = - [ "//brave/browser/ui/webui/ads_internals" ] +brave_ui_allow_circular_includes_from = [ + "//brave/browser/ui/webui/ads_internals", + "//brave/browser/ui/webui/ai_chat", +] if (!is_android) { brave_ui_allow_circular_includes_from += [ "//brave/browser/ui/browser_window/internal", diff --git a/browser/ui/views/side_panel/ai_chat/BUILD.gn b/browser/ui/views/side_panel/ai_chat/BUILD.gn index e206a561d9a..0b197759dc5 100644 --- a/browser/ui/views/side_panel/ai_chat/BUILD.gn +++ b/browser/ui/views/side_panel/ai_chat/BUILD.gn @@ -13,6 +13,7 @@ source_set("ai_chat") { deps = [ "//base", "//brave/browser/ai_chat", + "//brave/browser/ui/webui/ai_chat", "//brave/components/ai_chat/core/common", "//brave/components/constants", "//brave/components/resources:strings_grit", diff --git a/browser/ui/webui/ai_chat/BUILD.gn b/browser/ui/webui/ai_chat/BUILD.gn index be3b1bebf69..87ecb30867f 100644 --- a/browser/ui/webui/ai_chat/BUILD.gn +++ b/browser/ui/webui/ai_chat/BUILD.gn @@ -3,10 +3,61 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at https://mozilla.org/MPL/2.0/. +import("//brave/components/ai_chat/core/common/buildflags/buildflags.gni") + +source_set("ai_chat") { + sources = [ + "ai_chat_ui.cc", + "ai_chat_ui.h", + "ai_chat_ui_page_handler.cc", + "ai_chat_ui_page_handler.h", + "ai_chat_untrusted_conversation_ui.cc", + "ai_chat_untrusted_conversation_ui.h", + ] + + deps = [ + "//brave/browser/ai_chat", + "//brave/browser/misc_metrics", + "//brave/components/ai_chat/content/browser", + "//brave/components/ai_chat/core/browser", + "//brave/components/ai_chat/core/common", + "//brave/components/ai_chat/core/common/buildflags", + "//brave/components/ai_chat/core/common/mojom", + "//brave/components/ai_chat/resources", + "//brave/components/ai_chat/resources/custom_site_distiller_scripts:generated_resources", + "//brave/components/resources:strings_grit", + "//chrome/browser/favicon", + "//chrome/browser/history", + "//chrome/browser/profiles:profile", + "//components/favicon/core", + "//components/prefs", + "//components/strings:components_strings", + "//components/user_prefs", + "//content/public/browser", + "//ui/webui", + ] + + if (!is_android) { + deps += [ + "//chrome/browser/ui/tabs:tab_model", + "//chrome/browser/ui/thumbnails", + "//chrome/browser/ui/webui/top_chrome", + "//chrome/browser/ui/webui/util", + ] + } else { + deps += [ "//chrome/browser/ui/android/tab_model" ] + } + + if (enable_brave_ai_chat_agent_profile) { + deps += [ "//brave/browser/ai_chat:ai_chat_agent_profile" ] + } +} + source_set("unit_tests") { testonly = true deps = [ + ":ai_chat", "//brave/browser/ai_chat", "//brave/components/ai_chat/content/browser", "//brave/components/ai_chat/core/browser", @@ -25,6 +76,7 @@ source_set("browser_tests") { defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] deps = [ + ":ai_chat", "//brave/browser/ai_chat", "//brave/components/ai_chat/core/browser", "//brave/components/ai_chat/core/common", diff --git a/browser/ui/webui/ai_chat/ai_chat_untrusted_conversation_ui.cc b/browser/ui/webui/ai_chat/ai_chat_untrusted_conversation_ui.cc index 7c0b98c6707..b1a8fb3656a 100644 --- a/browser/ui/webui/ai_chat/ai_chat_untrusted_conversation_ui.cc +++ b/browser/ui/webui/ai_chat/ai_chat_untrusted_conversation_ui.cc @@ -30,7 +30,6 @@ #include "brave/components/constants/webui_url_constants.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/favicon_source.h" -#include "chrome/browser/ui/webui/util/image_util.h" #include "components/favicon_base/favicon_url_parser.h" #include "components/grit/brave_components_resources.h" #include "components/grit/brave_components_webui_strings.h" @@ -57,6 +56,7 @@ #include "chrome/browser/ui/chrome_pages.h" #include "chrome/browser/ui/thumbnails/thumbnail_tracker.h" #include "chrome/browser/ui/webui/theme_source.h" +#include "chrome/browser/ui/webui/util/image_util.h" #endif namespace {