[go: nahoru, domu]

ash: Add //chrome/browser/ash/extensions/BUILD.gn

Bug: b:335293679
Change-Id: I2f7d5f6a4132575e37bbe190decdda9ee302cbe1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5677879
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Commit-Queue: Eriko Kurimoto <elkurin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1324172}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index d6fcce0..f58099b 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -5357,6 +5357,11 @@
       "//chrome/browser/ash/events",
       "//chrome/browser/ash/exo",
       "//chrome/browser/ash/extended_updates",
+      "//chrome/browser/ash/extensions",
+      "//chrome/browser/ash/extensions/autotest_private",
+      "//chrome/browser/ash/extensions/file_manager",
+      "//chrome/browser/ash/extensions/speech",
+      "//chrome/browser/ash/extensions/users_private",
       "//chrome/browser/ash/file_manager",
       "//chrome/browser/ash/file_manager/virtual_tasks",
       "//chrome/browser/ash/file_suggest",
@@ -5667,6 +5672,11 @@
       "//chrome/browser/ash/exo",
       "//chrome/browser/ash/extended_updates",
       "//chrome/browser/ash/file_suggest",
+      "//chrome/browser/ash/extensions",
+      "//chrome/browser/ash/extensions/autotest_private",
+      "//chrome/browser/ash/extensions/file_manager",
+      "//chrome/browser/ash/extensions/speech",
+      "//chrome/browser/ash/extensions/users_private",
       "//chrome/browser/ash/first_run",
       "//chrome/browser/ash/floating_workspace",
       "//chrome/browser/ash/fusebox",
diff --git a/chrome/browser/apps/app_preload_service/BUILD.gn b/chrome/browser/apps/app_preload_service/BUILD.gn
index 75b8e00c..37394b87e 100644
--- a/chrome/browser/apps/app_preload_service/BUILD.gn
+++ b/chrome/browser/apps/app_preload_service/BUILD.gn
@@ -45,6 +45,12 @@
     "//google_apis",
     "//services/network/public/cpp",
   ]
+
+  # TODO(crbug.com/40251081): Remove these deps. Needed only to allow circular includes.
+  deps += [ "//chrome/browser/ash/extensions" ]
+
+  # TODO(crbug.com/40251079): Remove circular dependencies.
+  allow_circular_includes_from = [ "//chrome/browser/ash/extensions" ]
 }
 
 source_set("unit_tests") {
diff --git a/chrome/browser/apps/app_service/BUILD.gn b/chrome/browser/apps/app_service/BUILD.gn
index ca7c670..a2fe9543 100644
--- a/chrome/browser/apps/app_service/BUILD.gn
+++ b/chrome/browser/apps/app_service/BUILD.gn
@@ -232,6 +232,9 @@
       "//chrome/browser/ash/child_accounts/on_device_controls",
       "//chrome/browser/ash/child_accounts/time_limits",
       "//chrome/browser/ash/crosapi",
+      "//chrome/browser/ash/extensions",
+      "//chrome/browser/ash/extensions/autotest_private",
+      "//chrome/browser/ash/extensions/file_manager",
       "//chrome/browser/ash/file_manager",
       "//chrome/browser/ash/file_manager/virtual_tasks",
       "//chrome/browser/ash/fusebox",
@@ -289,6 +292,9 @@
       "//chrome/browser/ash/crosapi",
       "//chrome/browser/ash/file_manager",
       "//chrome/browser/ash/guest_os",
+      "//chrome/browser/ash/extensions",
+      "//chrome/browser/ash/extensions/autotest_private",
+      "//chrome/browser/ash/extensions/file_manager",
       "//chrome/browser/ash/login/demo_mode",
       "//chrome/browser/ash/remote_apps",
       "//chrome/browser/ash/system_logs",
diff --git a/chrome/browser/apps/platform_apps/api/BUILD.gn b/chrome/browser/apps/platform_apps/api/BUILD.gn
index 54b76ba..cf8578bf 100644
--- a/chrome/browser/apps/platform_apps/api/BUILD.gn
+++ b/chrome/browser/apps/platform_apps/api/BUILD.gn
@@ -88,6 +88,13 @@
       "//chrome/browser/ash/remote_apps",
       "//ui/events:event_constants",
     ]
+
+    # TODO(crbug.com/40251081): Remove these deps. Needed only to allow circular includes.
+    deps += [ "//chrome/browser/ash/extensions/file_manager" ]
+
+    # TODO(crbug.com/40251079): Remove circular dependencies.
+    allow_circular_includes_from =
+        [ "//chrome/browser/ash/extensions/file_manager" ]
   }
 
   if (use_lld) {
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn
index f41ca9b..ac07ba6b 100644
--- a/chrome/browser/ash/BUILD.gn
+++ b/chrome/browser/ash/BUILD.gn
@@ -228,41 +228,6 @@
     "eol_incentive_util.h",
     "eol_notification.cc",
     "eol_notification.h",
-    "extensions/default_app_order.cc",
-    "extensions/default_app_order.h",
-    "extensions/device_local_account_management_policy_provider.cc",
-    "extensions/device_local_account_management_policy_provider.h",
-    "extensions/dictionary_event_router.cc",
-    "extensions/dictionary_event_router.h",
-    "extensions/extensions_permissions_tracker.cc",
-    "extensions/extensions_permissions_tracker.h",
-    "extensions/external_cache.cc",
-    "extensions/external_cache.h",
-    "extensions/external_cache_delegate.cc",
-    "extensions/external_cache_delegate.h",
-    "extensions/external_cache_impl.cc",
-    "extensions/external_cache_impl.h",
-    "extensions/gfx_utils.cc",
-    "extensions/gfx_utils.h",
-    "extensions/ime_menu_event_router.cc",
-    "extensions/ime_menu_event_router.h",
-    "extensions/input_method_event_router.cc",
-    "extensions/input_method_event_router.h",
-    "extensions/install_limiter.cc",
-    "extensions/install_limiter.h",
-    "extensions/install_limiter_factory.cc",
-    "extensions/install_limiter_factory.h",
-    "extensions/language_packs/language_pack_event_router.cc",
-    "extensions/language_packs/language_pack_event_router.h",
-    "extensions/language_packs/language_packs_extensions_util.cc",
-    "extensions/language_packs/language_packs_extensions_util.h",
-    "extensions/media_player_event_router.cc",
-    "extensions/media_player_event_router.h",
-    "extensions/signin_screen_extensions_external_loader.cc",
-    "extensions/signin_screen_extensions_external_loader.h",
-    "extensions/signin_screen_policy_provider.cc",
-    "extensions/signin_screen_policy_provider.h",
-    "extensions/url_constants.h",
     "external_metrics.cc",
     "external_metrics.h",
     "external_protocol_dialog.cc",
@@ -1398,88 +1363,6 @@
     "vm_starting_observer.h",
     "window_throttle_observer_base.cc",
     "window_throttle_observer_base.h",
-
-    # Extension API implementations.
-    "extensions/autotest_private/autotest_private_api.cc",
-    "extensions/autotest_private/autotest_private_api.h",
-    "extensions/file_manager/device_event_router.cc",
-    "extensions/file_manager/device_event_router.h",
-    "extensions/file_manager/drivefs_event_router.cc",
-    "extensions/file_manager/drivefs_event_router.h",
-    "extensions/file_manager/event_router.cc",
-    "extensions/file_manager/event_router.h",
-    "extensions/file_manager/event_router_factory.cc",
-    "extensions/file_manager/event_router_factory.h",
-    "extensions/file_manager/file_manager_private_api_functions.h",
-    "extensions/file_manager/file_stream_md5_digester.cc",
-    "extensions/file_manager/file_stream_md5_digester.h",
-    "extensions/file_manager/file_system_provider_metrics_util.cc",
-    "extensions/file_manager/file_system_provider_metrics_util.h",
-    "extensions/file_manager/fmpi_get_volume_root_function.cc",
-    "extensions/file_manager/fmpi_get_volume_root_function.h",
-    "extensions/file_manager/image_loader_private_api.cc",
-    "extensions/file_manager/image_loader_private_api.h",
-    "extensions/file_manager/logged_extension_function.cc",
-    "extensions/file_manager/logged_extension_function.h",
-    "extensions/file_manager/office_tasks.cc",
-    "extensions/file_manager/office_tasks.h",
-    "extensions/file_manager/private_api_dialog.cc",
-    "extensions/file_manager/private_api_dialog.h",
-    "extensions/file_manager/private_api_drive.cc",
-    "extensions/file_manager/private_api_drive.h",
-    "extensions/file_manager/private_api_file_system.cc",
-    "extensions/file_manager/private_api_file_system.h",
-    "extensions/file_manager/private_api_guest_os.cc",
-    "extensions/file_manager/private_api_guest_os.h",
-    "extensions/file_manager/private_api_holding_space.cc",
-    "extensions/file_manager/private_api_holding_space.h",
-    "extensions/file_manager/private_api_materialized_views.cc",
-    "extensions/file_manager/private_api_materialized_views.h",
-    "extensions/file_manager/private_api_media_parser.cc",
-    "extensions/file_manager/private_api_media_parser.h",
-    "extensions/file_manager/private_api_media_parser_util.cc",
-    "extensions/file_manager/private_api_media_parser_util.h",
-    "extensions/file_manager/private_api_misc.cc",
-    "extensions/file_manager/private_api_misc.h",
-    "extensions/file_manager/private_api_mount.cc",
-    "extensions/file_manager/private_api_mount.h",
-    "extensions/file_manager/private_api_sharesheet.cc",
-    "extensions/file_manager/private_api_sharesheet.h",
-    "extensions/file_manager/private_api_strings.cc",
-    "extensions/file_manager/private_api_strings.h",
-    "extensions/file_manager/private_api_tasks.cc",
-    "extensions/file_manager/private_api_tasks.h",
-    "extensions/file_manager/private_api_util.cc",
-    "extensions/file_manager/private_api_util.h",
-    "extensions/file_manager/scoped_suppress_drive_notifications_for_path.cc",
-    "extensions/file_manager/scoped_suppress_drive_notifications_for_path.h",
-    "extensions/file_manager/search_by_pattern.cc",
-    "extensions/file_manager/search_by_pattern.h",
-    "extensions/file_manager/select_file_dialog_extension_user_data.cc",
-    "extensions/file_manager/select_file_dialog_extension_user_data.h",
-    "extensions/file_manager/system_notification_manager.cc",
-    "extensions/file_manager/system_notification_manager.h",
-    "extensions/input_method_api.cc",
-    "extensions/input_method_api.h",
-    "extensions/login_screen_ui/login_screen_ui_api.cc",
-    "extensions/login_screen_ui/login_screen_ui_api.h",
-    "extensions/login_screen_ui/ui_handler.cc",
-    "extensions/login_screen_ui/ui_handler.h",
-    "extensions/media_player_api.cc",
-    "extensions/media_player_api.h",
-    "extensions/speech/speech_recognition_private_api.cc",
-    "extensions/speech/speech_recognition_private_api.h",
-    "extensions/speech/speech_recognition_private_delegate.h",
-    "extensions/speech/speech_recognition_private_manager.cc",
-    "extensions/speech/speech_recognition_private_manager.h",
-    "extensions/speech/speech_recognition_private_recognizer.cc",
-    "extensions/speech/speech_recognition_private_recognizer.h",
-    "extensions/users_private/users_private_api.cc",
-    "extensions/users_private/users_private_api.h",
-    "extensions/users_private/users_private_delegate.cc",
-    "extensions/users_private/users_private_delegate.h",
-    "extensions/users_private/users_private_delegate_factory.cc",
-    "extensions/users_private/users_private_delegate_factory.h",
   ]
 
   allow_circular_includes_from = [
@@ -1547,6 +1430,11 @@
     "//chrome/browser/ash/file_manager",
     "//chrome/browser/ash/file_manager/virtual_tasks",
     "//chrome/browser/ash/file_suggest",
+    "//chrome/browser/ash/extensions",
+    "//chrome/browser/ash/extensions/autotest_private",
+    "//chrome/browser/ash/extensions/file_manager",
+    "//chrome/browser/ash/extensions/login_screen_ui",
+    "//chrome/browser/ash/extensions/users_private",
     "//chrome/browser/ash/first_run",
     "//chrome/browser/ash/floating_workspace",
     "//chrome/browser/ash/fusebox",
@@ -2186,6 +2074,11 @@
     "//chrome/browser/ash/events",
     "//chrome/browser/ash/exo",
     "//chrome/browser/ash/extended_updates",
+    "//chrome/browser/ash/extensions",
+    "//chrome/browser/ash/extensions/autotest_private",
+    "//chrome/browser/ash/extensions/file_manager",
+    "//chrome/browser/ash/extensions/login_screen_ui",
+    "//chrome/browser/ash/extensions/users_private",
     "//chrome/browser/ash/file_suggest",
     "//chrome/browser/ash/first_run",
     "//chrome/browser/ash/floating_sso",
@@ -2714,8 +2607,6 @@
     "crostini/fake_crostini_features.h",
     "crostini/fake_crostini_installer_ui_delegate.cc",
     "crostini/fake_crostini_installer_ui_delegate.h",
-    "extensions/test_external_cache.cc",
-    "extensions/test_external_cache.h",
     "file_system_provider/fake_extension_provider.cc",
     "file_system_provider/fake_extension_provider.h",
     "file_system_provider/fake_provided_file_system.cc",
@@ -2978,6 +2869,7 @@
     "//chrome/browser/ash/arc/test:arc_test_support",
     "//chrome/browser/ash/attestation:test_support",
     "//chrome/browser/ash/child_accounts:test_support",
+    "//chrome/browser/ash/extensions",
     "//chrome/browser/ash/guest_os",
     "//chrome/browser/ash/guest_os/public",
     "//chrome/browser/ash/net",
@@ -3152,19 +3044,6 @@
     "dbus/vm/vm_applications_service_provider_unittest.cc",
     "dbus_schedqos_state_handler_unittest.cc",
     "eol_notification_unittest.cc",
-    "extensions/default_app_order_unittest.cc",
-    "extensions/device_local_account_management_policy_provider_unittest.cc",
-    "extensions/extensions_permissions_tracker_unittest.cc",
-    "extensions/external_cache_impl_unittest.cc",
-    "extensions/file_manager/device_event_router_unittest.cc",
-    "extensions/file_manager/drivefs_event_router_unittest.cc",
-    "extensions/file_manager/event_router_unittest.cc",
-    "extensions/file_manager/search_by_pattern_unittest.cc",
-    "extensions/file_manager/system_notification_manager_unittest.cc",
-    "extensions/gfx_utils_unittest.cc",
-    "extensions/install_limiter_unittest.cc",
-    "extensions/login_screen_ui/ui_handler_unittest.cc",
-    "extensions/signin_screen_policy_provider_unittest.cc",
     "external_metrics_unittest.cc",
     "file_system_provider/cloud_file_system_unittest.cc",
     "file_system_provider/content_cache/cache_manager_impl_unittest.cc",
@@ -3529,6 +3408,7 @@
     "//chrome/browser/ash/eche_app",
     "//chrome/browser/ash/extended_updates",
     "//chrome/browser/ash/extended_updates/test:test_support",
+    "//chrome/browser/ash/extensions/login_screen_ui",
     "//chrome/browser/ash/file_manager",
     "//chrome/browser/ash/file_manager:test_support",
     "//chrome/browser/ash/fusebox",
@@ -4057,6 +3937,9 @@
     "//chrome/browser/ash/events:unit_tests",
     "//chrome/browser/ash/exo:unit_tests",
     "//chrome/browser/ash/extended_updates:unit_tests",
+    "//chrome/browser/ash/extensions:unit_tests",
+    "//chrome/browser/ash/extensions/file_manager:unit_tests",
+    "//chrome/browser/ash/extensions/login_screen_ui:unit_tests",
     "//chrome/browser/ash/file_manager:unit_tests",
     "//chrome/browser/ash/file_suggest:unit_tests",
     "//chrome/browser/ash/fileapi:unit_tests",
diff --git a/chrome/browser/ash/accessibility/service/BUILD.gn b/chrome/browser/ash/accessibility/service/BUILD.gn
index eb49da6..1682b0b 100644
--- a/chrome/browser/ash/accessibility/service/BUILD.gn
+++ b/chrome/browser/ash/accessibility/service/BUILD.gn
@@ -29,6 +29,7 @@
   deps = [
     "//ash",
     "//ash/public/cpp",
+    "//chrome/browser/ash/extensions/speech",
     "//chrome/common:constants",
     "//content/public/browser",
     "//services/accessibility/public/mojom:os_service_mojom_shared",
@@ -87,6 +88,7 @@
     "//base",
     "//chrome/browser/ash/accessibility",
     "//chrome/browser/ash/accessibility:test_support",
+    "//chrome/browser/ash/extensions/speech",
     "//chrome/test:test_support",
   ]
 }
diff --git a/chrome/browser/ash/app_mode/BUILD.gn b/chrome/browser/ash/app_mode/BUILD.gn
index fbd91ef..7248613 100644
--- a/chrome/browser/ash/app_mode/BUILD.gn
+++ b/chrome/browser/ash/app_mode/BUILD.gn
@@ -103,6 +103,7 @@
     "//chrome/browser/ash/app_mode/metrics",
     "//chrome/browser/ash/app_mode/web_app",
     "//chrome/browser/ash/crosapi:browser_util",
+    "//chrome/browser/ash/extensions",
     "//chrome/browser/ash/login/app_mode",
     "//chrome/browser/ash/login/auth",
     "//chrome/browser/ash/notifications",
@@ -195,6 +196,8 @@
     "//chrome/browser/ash/app_mode/metrics:unit_tests",
     "//chrome/browser/ash/app_mode/web_app:unit_tests",
     "//chrome/browser/ash/crosapi:test_support",
+    "//chrome/browser/ash/extensions",
+    "//chrome/browser/ash/extensions:test_support",
     "//chrome/browser/ash/policy/core",
     "//chrome/browser/ui",
     "//chrome/browser/web_applications:web_applications_test_support",
diff --git a/chrome/browser/ash/arc/adbd/BUILD.gn b/chrome/browser/ash/arc/adbd/BUILD.gn
index 0c8ec9c5..3cc77fec 100644
--- a/chrome/browser/ash/arc/adbd/BUILD.gn
+++ b/chrome/browser/ash/arc/adbd/BUILD.gn
@@ -15,7 +15,6 @@
   deps = [
     "//ash/components/arc",
     "//base",
-    "//chrome/browser/ash/guest_os",
     "//chrome/browser/profiles:profile",
     "//chrome/common",
     "//chromeos/ash/components/system",
diff --git a/chrome/browser/ash/arc/session/BUILD.gn b/chrome/browser/ash/arc/session/BUILD.gn
index d1e9a600..cd6b337 100644
--- a/chrome/browser/ash/arc/session/BUILD.gn
+++ b/chrome/browser/ash/arc/session/BUILD.gn
@@ -78,7 +78,6 @@
     "//chrome/browser/ash/arc/vmm",
     "//chrome/browser/ash/arc/wallpaper",
     "//chrome/browser/ash/file_manager",
-    "//chrome/browser/ash/guest_os",
     "//chrome/browser/ash/guest_os/public",
     "//chrome/browser/ash/login/demo_mode",
     "//chrome/browser/ash/platform_keys/key_permissions",
@@ -125,7 +124,6 @@
     "//chrome/browser/ash/arc/policy",
     "//chrome/browser/ash/arc/vmm",
     "//chrome/browser/ash/file_manager",
-    "//chrome/browser/ash/guest_os",
     "//chrome/browser/ash/login/demo_mode",
     "//chrome/browser/ash/platform_keys/key_permissions",
   ]
diff --git a/chrome/browser/ash/customization/BUILD.gn b/chrome/browser/ash/customization/BUILD.gn
index e259ab71..baf6b20 100644
--- a/chrome/browser/ash/customization/BUILD.gn
+++ b/chrome/browser/ash/customization/BUILD.gn
@@ -20,6 +20,7 @@
     "//ash",
     "//base",
     "//chrome/browser:browser_process",
+    "//chrome/browser/ash/extensions",
     "//chrome/browser/ash/net",
     "//chrome/browser/profiles",
     "//chrome/common",
diff --git a/chrome/browser/ash/drive/BUILD.gn b/chrome/browser/ash/drive/BUILD.gn
index 40b8c6f..361eaea 100644
--- a/chrome/browser/ash/drive/BUILD.gn
+++ b/chrome/browser/ash/drive/BUILD.gn
@@ -37,6 +37,7 @@
     "//chrome/browser/ash/arc/fileapi",
     "//chrome/browser/ash/crosapi",
     "//chrome/browser/ash/crosapi:browser_util",
+    "//chrome/browser/ash/extensions/file_manager",
     "//chrome/browser/ash/file_manager",
     "//chrome/browser/ash/fileapi",
     "//chrome/browser/ash/guest_os",
@@ -71,6 +72,7 @@
     "//chrome/browser/ash/fileapi",
     "//chrome/browser/ash/crosapi",
     "//chrome/browser/ash/guest_os",
+    "//chrome/browser/ash/extensions/file_manager",
     "//chrome/browser/ash/system_web_apps/apps",
     "//chrome/browser/ash/wallpaper",
     "//chrome/browser/extensions",
diff --git a/chrome/browser/ash/extensions/BUILD.gn b/chrome/browser/ash/extensions/BUILD.gn
new file mode 100644
index 0000000..460952f
--- /dev/null
+++ b/chrome/browser/ash/extensions/BUILD.gn
@@ -0,0 +1,141 @@
+# 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("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash)
+
+static_library("extensions") {
+  sources = [
+    "default_app_order.cc",
+    "default_app_order.h",
+    "device_local_account_management_policy_provider.cc",
+    "device_local_account_management_policy_provider.h",
+    "dictionary_event_router.cc",
+    "dictionary_event_router.h",
+    "extensions_permissions_tracker.cc",
+    "extensions_permissions_tracker.h",
+    "external_cache.cc",
+    "external_cache.h",
+    "external_cache_delegate.cc",
+    "external_cache_delegate.h",
+    "external_cache_impl.cc",
+    "external_cache_impl.h",
+    "gfx_utils.cc",
+    "gfx_utils.h",
+    "ime_menu_event_router.cc",
+    "ime_menu_event_router.h",
+    "input_method_api.cc",
+    "input_method_api.h",
+    "input_method_event_router.cc",
+    "input_method_event_router.h",
+    "install_limiter.cc",
+    "install_limiter.h",
+    "install_limiter_factory.cc",
+    "install_limiter_factory.h",
+    "media_player_api.cc",
+    "media_player_api.h",
+    "media_player_event_router.cc",
+    "media_player_event_router.h",
+    "signin_screen_extensions_external_loader.cc",
+    "signin_screen_extensions_external_loader.h",
+    "signin_screen_policy_provider.cc",
+    "signin_screen_policy_provider.h",
+    "url_constants.h",
+  ]
+
+  deps = [
+    "//ash",
+    "//ash/constants",
+    "//ash/public/cpp",
+    "//ash/webui/mall:app_id",
+    "//ash/webui/projector_app/public/cpp",
+    "//ash/webui/system_apps/public:system_web_app_type",
+    "//base",
+    "//chrome/browser:browser_process",
+    "//chrome/browser/ash/crosapi:browser_util",
+    "//chrome/browser/ash/extensions/language_packs",
+    "//chrome/browser/ash/extensions/speech",
+    "//chrome/browser/ash/extensions/users_private",
+    "//chrome/browser/ash/file_manager",
+    "//chrome/browser/ash/guest_os",
+    "//chrome/browser/ash/input_method",
+    "//chrome/browser/ash/login/demo_mode",
+    "//chrome/browser/ash/policy/core",
+    "//chrome/browser/profiles:profile",
+    "//chrome/browser/resources/chromeos:app_icon_resources",
+    "//chrome/browser/web_applications",
+    "//chrome/common",
+    "//chromeos/ash/components/language_packs",
+    "//chromeos/ash/components/settings",
+    "//chromeos/components/kiosk",
+    "//chromeos/constants",
+    "//components/app_constants",
+    "//components/prefs",
+    "//content/public/browser",
+    "//extensions/browser",
+    "//extensions/browser/updater",
+    "//extensions/common",
+    "//ui/aura",
+    "//ui/base",
+    "//ui/gfx",
+  ]
+
+  allow_circular_includes_from = [
+    "//chrome/browser/ash/extensions/users_private",
+    "//chrome/browser/ash/login/demo_mode",
+    "//chrome/browser/ash/policy/core",
+  ]
+}
+
+static_library("test_support") {
+  testonly = true
+
+  sources = [
+    "test_external_cache.cc",
+    "test_external_cache.h",
+  ]
+
+  deps = [
+    ":extensions",
+    "//base",
+    "//chrome/browser",
+    "//extensions/browser",
+    "//extensions/browser/updater",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+
+  sources = [
+    "default_app_order_unittest.cc",
+    "device_local_account_management_policy_provider_unittest.cc",
+    "extensions_permissions_tracker_unittest.cc",
+    "external_cache_impl_unittest.cc",
+    "gfx_utils_unittest.cc",
+    "install_limiter_unittest.cc",
+    "signin_screen_policy_provider_unittest.cc",
+  ]
+
+  deps = [
+    ":extensions",
+    ":test_support",
+    "//ash/components/arc:arc_test_support",
+    "//base",
+    "//chrome/browser/ash:test_support",
+    "//chrome/browser/extensions:test_support",
+    "//chrome/common",
+    "//chrome/test:test_support",
+    "//chromeos/ash/components/install_attributes:test_support",
+    "//chromeos/ash/components/login/login_state:test_support",
+    "//components/app_constants",
+    "//components/user_manager",
+    "//components/version_info",
+    "//content/test:test_support",
+    "//extensions/browser",
+    "//extensions/common",
+    "//testing/gtest",
+  ]
+}
diff --git a/chrome/browser/ash/extensions/autotest_private/BUILD.gn b/chrome/browser/ash/extensions/autotest_private/BUILD.gn
new file mode 100644
index 0000000..be5b4159
--- /dev/null
+++ b/chrome/browser/ash/extensions/autotest_private/BUILD.gn
@@ -0,0 +1,80 @@
+# 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("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash)
+
+static_library("autotest_private") {
+  sources = [
+    "autotest_private_api.cc",
+    "autotest_private_api.h",
+  ]
+
+  deps = [
+    "//ash",
+    "//ash/components/arc",
+    "//ash/components/arc/mojom",
+    "//ash/constants",
+    "//ash/public/cpp",
+    "//base",
+    "//chrome/app:command_ids",
+    "//chrome/browser:browser_process",
+    "//chrome/browser/ash/arc",
+    "//chrome/browser/ash/arc/session",
+    "//chrome/browser/ash/arc/tracing",
+    "//chrome/browser/ash/assistant",
+    "//chrome/browser/ash/borealis:borealis_installer_types_mojom",
+    "//chrome/browser/ash/bruschetta",
+    "//chrome/browser/ash/crosapi",
+    "//chrome/browser/ash/crosapi:browser_util",
+    "//chrome/browser/ash/file_manager",
+    "//chrome/browser/ash/fusebox",
+    "//chrome/browser/ash/guest_os",
+    "//chrome/browser/ash/input_method",
+    "//chrome/browser/ash/plugin_vm",
+    "//chrome/browser/ash/policy/core",
+    "//chrome/browser/ash/power/ml/smart_dim",
+    "//chrome/browser/ash/system_web_apps",
+    "//chrome/common",
+    "//chromeos/ash/components/dbus",
+    "//chromeos/ash/components/dbus/session_manager",
+    "//chromeos/ash/components/metrics",
+    "//chromeos/ash/components/settings",
+    "//chromeos/ash/services/assistant:lib",
+    "//chromeos/ash/services/assistant/public/cpp",
+    "//chromeos/components/quick_answers/public/cpp",
+    "//chromeos/components/quick_answers/public/cpp:prefs",
+    "//chromeos/constants",
+    "//chromeos/printing",
+    "//chromeos/services/machine_learning/public/cpp",
+    "//chromeos/ui/base",
+    "//chromeos/ui/frame",
+    "//chromeos/ui/wm",
+    "//components/session_manager/core",
+    "//components/update_client",
+    "//components/user_manager",
+    "//components/variations",
+    "//components/viz/host",
+    "//content/public/browser",
+    "//extensions/browser",
+    "//extensions/common",
+    "//mojo/public/cpp/bindings",
+    "//net",
+    "//services/viz/public/mojom",
+    "//ui/aura",
+    "//ui/base",
+    "//ui/compositor",
+    "//ui/display",
+    "//ui/events",
+    "//ui/gfx",
+    "//ui/message_center",
+    "//ui/message_center/public/cpp",
+    "//ui/ozone",
+    "//ui/snapshot",
+    "//ui/views",
+    "//ui/wm",
+    "//url",
+  ]
+}
diff --git a/chrome/browser/ash/extensions/file_manager/BUILD.gn b/chrome/browser/ash/extensions/file_manager/BUILD.gn
new file mode 100644
index 0000000..275bd71
--- /dev/null
+++ b/chrome/browser/ash/extensions/file_manager/BUILD.gn
@@ -0,0 +1,179 @@
+# 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("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash)
+
+static_library("file_manager") {
+  sources = [
+    "device_event_router.cc",
+    "device_event_router.h",
+    "drivefs_event_router.cc",
+    "drivefs_event_router.h",
+    "event_router.cc",
+    "event_router.h",
+    "event_router_factory.cc",
+    "event_router_factory.h",
+    "file_manager_private_api_functions.h",
+    "file_stream_md5_digester.cc",
+    "file_stream_md5_digester.h",
+    "file_system_provider_metrics_util.cc",
+    "file_system_provider_metrics_util.h",
+    "fmpi_get_volume_root_function.cc",
+    "fmpi_get_volume_root_function.h",
+    "image_loader_private_api.cc",
+    "image_loader_private_api.h",
+    "logged_extension_function.cc",
+    "logged_extension_function.h",
+    "office_tasks.cc",
+    "office_tasks.h",
+    "private_api_dialog.cc",
+    "private_api_dialog.h",
+    "private_api_drive.cc",
+    "private_api_drive.h",
+    "private_api_file_system.cc",
+    "private_api_file_system.h",
+    "private_api_guest_os.cc",
+    "private_api_guest_os.h",
+    "private_api_holding_space.cc",
+    "private_api_holding_space.h",
+    "private_api_materialized_views.cc",
+    "private_api_materialized_views.h",
+    "private_api_media_parser.cc",
+    "private_api_media_parser.h",
+    "private_api_media_parser_util.cc",
+    "private_api_media_parser_util.h",
+    "private_api_misc.cc",
+    "private_api_misc.h",
+    "private_api_mount.cc",
+    "private_api_mount.h",
+    "private_api_sharesheet.cc",
+    "private_api_sharesheet.h",
+    "private_api_strings.cc",
+    "private_api_strings.h",
+    "private_api_tasks.cc",
+    "private_api_tasks.h",
+    "private_api_util.cc",
+    "private_api_util.h",
+    "scoped_suppress_drive_notifications_for_path.cc",
+    "scoped_suppress_drive_notifications_for_path.h",
+    "search_by_pattern.cc",
+    "search_by_pattern.h",
+    "select_file_dialog_extension_user_data.cc",
+    "select_file_dialog_extension_user_data.h",
+    "system_notification_manager.cc",
+    "system_notification_manager.h",
+  ]
+
+  deps = [
+    "//ash",
+    "//ash/components/arc",
+    "//ash/components/arc/mojom",
+    "//ash/constants",
+    "//ash/webui/settings/public/constants",
+    "//base",
+    "//chrome/app/vector_icons",
+    "//chrome/browser:browser_process",
+    "//chrome/browser/ash/arc",
+    "//chrome/browser/ash/arc/fileapi",
+    "//chrome/browser/ash/exo",
+    "//chrome/browser/ash/file_manager",
+    "//chrome/browser/ash/fileapi",
+    "//chrome/browser/ash/fusebox",
+    "//chrome/browser/ash/guest_os",
+    "//chrome/browser/ash/guest_os/public",
+    "//chrome/browser/ash/plugin_vm",
+    "//chrome/browser/ash/smb_client",
+    "//chrome/browser/ash/system_web_apps/apps",
+    "//chrome/browser/chromeos/drivefs:native_message_host_origins",
+    "//chrome/browser/devtools",
+    "//chrome/browser/pdf",
+    "//chrome/browser/pdf:pdf_pref_names",
+    "//chrome/browser/pdf:pdf_service",
+    "//chrome/browser/profiles:profile",
+    "//chrome/common",
+    "//chrome/services/media_gallery_util/public/cpp",
+    "//chrome/services/media_gallery_util/public/mojom",
+    "//chrome/services/pdf/public/mojom",
+    "//chromeos/ash/components/browser_context_helper",
+    "//chromeos/ash/components/dbus/cros_disks",
+    "//chromeos/ash/components/disks",
+    "//chromeos/ash/components/drivefs",
+    "//chromeos/ash/components/file_manager",
+    "//chromeos/ash/components/login/login_state",
+    "//chromeos/ash/components/network",
+    "//chromeos/ash/components/settings",
+    "//chromeos/components/disks:prefs",
+    "//chromeos/components/sharesheet:constants",
+    "//chromeos/dbus/dlp",
+    "//chromeos/dbus/power",
+    "//components/account_id",
+    "//components/arc",
+    "//components/drive",
+    "//components/drive:drive_chromeos",
+    "//components/enterprise/data_controls",
+    "//components/prefs",
+    "//components/services/unzip/content",
+    "//components/services/unzip/public/cpp",
+    "//components/storage_monitor",
+    "//components/user_manager",
+    "//components/zoom",
+    "//content/public/browser",
+    "//content/public/common",
+    "//extensions/browser",
+    "//google_apis/drive",
+    "//mojo/public/cpp/bindings",
+    "//net",
+    "//storage/browser",
+    "//storage/common",
+    "//third_party/nearby:presence_types",
+    "//third_party/private_membership",
+    "//ui/chromeos/strings",
+    "//ui/display",
+    "//ui/gfx",
+    "//ui/message_center/public/cpp",
+    "//ui/shell_dialogs",
+    "//url",
+  ]
+
+  allow_circular_includes_from = [
+    "//chrome/browser/ash/arc",
+    "//chrome/browser/ash/exo",
+    "//chrome/browser/ash/system_web_apps/apps",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+
+  sources = [
+    "device_event_router_unittest.cc",
+    "drivefs_event_router_unittest.cc",
+    "event_router_unittest.cc",
+    "search_by_pattern_unittest.cc",
+    "system_notification_manager_unittest.cc",
+  ]
+
+  deps = [
+    ":file_manager",
+    "//ash/components/arc",
+    "//base",
+    "//chrome/browser",
+    "//chrome/browser/ash",
+    "//chrome/common",
+    "//chrome/test:test_support",
+    "//chromeos/ash/components/dbus/cros_disks",
+    "//chromeos/ash/components/disks",
+    "//chromeos/ash/components/disks:test_support",
+    "//components/services/unzip/content",
+    "//components/services/unzip/public/cpp",
+    "//storage/browser",
+    "//storage/browser:test_support",
+    "//testing/gmock",
+    "//testing/gtest",
+    "//ui/chromeos/strings",
+    "//ui/display:test_support",
+  ]
+}
diff --git a/chrome/browser/ash/extensions/language_packs/BUILD.gn b/chrome/browser/ash/extensions/language_packs/BUILD.gn
new file mode 100644
index 0000000..1781144
--- /dev/null
+++ b/chrome/browser/ash/extensions/language_packs/BUILD.gn
@@ -0,0 +1,26 @@
+# 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("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash)
+
+static_library("language_packs") {
+  sources = [
+    "language_pack_event_router.cc",
+    "language_pack_event_router.h",
+    "language_packs_extensions_util.cc",
+    "language_packs_extensions_util.h",
+  ]
+
+  deps = [
+    "//base",
+    "//chrome/common",
+    "//chromeos/ash/components/language_packs",
+    "//content/public/browser",
+    "//extensions/browser",
+    "//ui/base",
+    "//ui/base/ime/ash",
+  ]
+}
diff --git a/chrome/browser/ash/extensions/login_screen_ui/BUILD.gn b/chrome/browser/ash/extensions/login_screen_ui/BUILD.gn
new file mode 100644
index 0000000..b3a4489
--- /dev/null
+++ b/chrome/browser/ash/extensions/login_screen_ui/BUILD.gn
@@ -0,0 +1,52 @@
+# 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("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash)
+
+static_library("login_screen_ui") {
+  sources = [
+    "login_screen_ui_api.cc",
+    "login_screen_ui_api.h",
+    "ui_handler.cc",
+    "ui_handler.h",
+  ]
+
+  deps = [
+    "//ash/public/cpp",
+    "//base",
+    "//chrome/browser/profiles:profile",
+    "//chrome/common",
+    "//chromeos/ash/components/install_attributes",
+    "//components/session_manager/core",
+    "//content/public/browser",
+    "//extensions/browser",
+    "//extensions/common",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+
+  sources = [ "ui_handler_unittest.cc" ]
+
+  deps = [
+    ":login_screen_ui",
+    "//base",
+    "//base/test:test_support",
+    "//chrome/browser/ash",
+    "//chrome/browser/ash:test_support",
+    "//chrome/browser/ui",
+    "//chrome/common",
+    "//chrome/test:test_support",
+    "//chromeos/ash/components/install_attributes:test_support",
+    "//components/session_manager/core",
+    "//components/version_info",
+    "//content/test:test_support",
+    "//extensions/browser",
+    "//extensions/common",
+    "//testing/gtest",
+  ]
+}
diff --git a/chrome/browser/ash/extensions/speech/BUILD.gn b/chrome/browser/ash/extensions/speech/BUILD.gn
new file mode 100644
index 0000000..60ea04b
--- /dev/null
+++ b/chrome/browser/ash/extensions/speech/BUILD.gn
@@ -0,0 +1,34 @@
+# 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("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash)
+
+static_library("speech") {
+  sources = [
+    "speech_recognition_private_api.cc",
+    "speech_recognition_private_api.h",
+    "speech_recognition_private_delegate.h",
+    "speech_recognition_private_manager.cc",
+    "speech_recognition_private_manager.h",
+    "speech_recognition_private_recognizer.cc",
+    "speech_recognition_private_recognizer.h",
+  ]
+
+  deps = [
+    "//ash/public/cpp",
+    "//base",
+    "//chrome/browser/profiles",
+    "//chrome/browser/profiles:profile",
+    "//chrome/common",
+    "//components/keyed_service/core",
+    "//components/language/core/browser",
+    "//components/prefs",
+    "//components/soda:constants",
+    "//content/public/browser",
+    "//extensions/browser",
+    "//media",
+  ]
+}
diff --git a/chrome/browser/ash/extensions/users_private/BUILD.gn b/chrome/browser/ash/extensions/users_private/BUILD.gn
new file mode 100644
index 0000000..c41785f
--- /dev/null
+++ b/chrome/browser/ash/extensions/users_private/BUILD.gn
@@ -0,0 +1,34 @@
+# 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("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash)
+
+static_library("users_private") {
+  sources = [
+    "users_private_api.cc",
+    "users_private_api.h",
+    "users_private_delegate.cc",
+    "users_private_delegate.h",
+    "users_private_delegate_factory.cc",
+    "users_private_delegate_factory.h",
+  ]
+
+  deps = [
+    "//base",
+    "//chrome/browser:browser_process",
+    "//chrome/browser/ash/ownership",
+    "//chrome/browser/ash/policy/core",
+    "//chrome/browser/profiles:profile",
+    "//chrome/common",
+    "//chromeos/ash/components/settings",
+    "//components/keyed_service/core",
+    "//components/session_manager/core",
+    "//components/user_manager",
+    "//extensions/browser",
+    "//extensions/common",
+    "//google_apis",
+  ]
+}
diff --git a/chrome/browser/ash/file_manager/BUILD.gn b/chrome/browser/ash/file_manager/BUILD.gn
index 8de905c..ac95f68 100644
--- a/chrome/browser/ash/file_manager/BUILD.gn
+++ b/chrome/browser/ash/file_manager/BUILD.gn
@@ -265,23 +265,9 @@
     "volume_manager_unittest.cc",
   ]
 
-  public_deps = [
-    "//base",
-    "//chrome/browser/ash",
-    "//chrome/browser/ash:test_support",
-    "//chrome/browser/ash/drive",
-    "//chrome/browser/ash/drive:test_support",
-    "//chrome/test:test_support",
-    "//chromeos/ash/components/disks:test_support",
-    "//components/user_manager",
-    "//content/test:test_support",
-    "//storage/browser",
-    "//testing/gtest",
-    "//third_party/blink/public/common:headers",
-  ]
-
   deps = [
     ":file_manager",
+    ":test_support",
     "//ash",
     "//ash/components/arc:arc_base_utils",
     "//ash/components/arc:arc_features",
@@ -290,13 +276,17 @@
     "//ash/components/arc:prefs",
     "//ash/components/arc/session",
     "//ash/constants",
+    "//base",
     "//base:i18n",
     "//base/test:test_support",
     "//chrome/browser",
     "//chrome/browser/apps/app_service",
     "//chrome/browser/apps/app_service:test_support",
+    "//chrome/browser/ash",
+    "//chrome/browser/ash:test_support",
     "//chrome/browser/ash/arc/fileapi",
-    "//chrome/browser/ash/file_manager:test_support",
+    "//chrome/browser/ash/drive",
+    "//chrome/browser/ash/drive:test_support",
     "//chrome/browser/ash/file_manager/virtual_tasks",
     "//chrome/browser/ash/file_manager/virtual_tasks:test_support",
     "//chrome/browser/ash/file_manager/virtual_tasks:unit_tests",
@@ -313,6 +303,7 @@
     "//chrome/browser/web_applications",
     "//chrome/common:chrome_features",
     "//chrome/common:constants",
+    "//chrome/test:test_support",
     "//chrome/test:test_support_unit",
     "//chromeos/ash/components/dbus/chunneld",
     "//chromeos/ash/components/dbus/cicerone",
@@ -321,6 +312,7 @@
     "//chromeos/ash/components/dbus/cros_disks",
     "//chromeos/ash/components/dbus/seneschal",
     "//chromeos/ash/components/disks",
+    "//chromeos/ash/components/disks:test_support",
     "//chromeos/ash/components/drivefs/mojom",
     "//chromeos/ash/components/settings",
     "//chromeos/ash/components/trash_service",
@@ -338,15 +330,20 @@
     "//components/services/app_service/public/cpp:test_support",
     "//components/storage_monitor",
     "//components/sync_preferences:test_support",
+    "//components/user_manager",
     "//components/user_manager:common",
+    "//content/test:test_support",
     "//extensions:test_support",
     "//extensions/common",
     "//google_apis/drive",
     "//mojo/public/cpp/bindings",
     "//services/device/public/mojom",
+    "//storage/browser",
     "//storage/browser:test_support",
     "//storage/common",
     "//testing/gmock",
+    "//testing/gtest",
+    "//third_party/blink/public/common:headers",
     "//third_party/blink/public/mojom:mojom_platform",
     "//ui/base/clipboard",
     "//ui/base/data_transfer_policy",
@@ -376,21 +373,9 @@
     "open_with_browser_browsertest.cc",
   ]
 
-  public_deps = [
-    "//base",
-    "//base/test:test_support",
-    "//chrome/browser/ash:test_support",
-    "//chrome/browser/ash/drive",
-    "//chrome/browser/profiles:profile",
-    "//chrome/test:test_support",
-    "//chrome/test:test_support_ui",
-    "//components/account_id",
-    "//components/webapps/common",
-    "//storage/browser",
-  ]
-
   deps = [
     ":file_manager",
+    ":test_support",
     "//ash",
     "//ash:test_support",
     "//ash/components/arc:arc_base_utils",
@@ -407,7 +392,9 @@
     "//ash/webui/file_manager:file_manager_ui",
     "//ash/webui/file_manager/resources:file_manager_swa_resources",
     "//ash/webui/system_apps/public:system_web_app_type",
+    "//base",
     "//base:base_static",
+    "//base/test:test_support",
     "//build:branding_buildflags",
     "//build/config/coverage:buildflags",
     "//chrome/browser",
@@ -417,12 +404,14 @@
     "//chrome/browser/apps/app_service:constants",
     "//chrome/browser/apps/app_service:test_support",
     "//chrome/browser/ash",
+    "//chrome/browser/ash:test_support",
     "//chrome/browser/ash/arc/fileapi",
     "//chrome/browser/ash/base",
     "//chrome/browser/ash/crosapi",
     "//chrome/browser/ash/crosapi:test_support",
+    "//chrome/browser/ash/drive",
     "//chrome/browser/ash/drive:test_support",
-    "//chrome/browser/ash/file_manager:test_support",
+    "//chrome/browser/ash/extensions/file_manager",
     "//chrome/browser/ash/guest_os",
     "//chrome/browser/ash/guest_os/public",
     "//chrome/browser/ash/system_web_apps",
@@ -430,6 +419,7 @@
     "//chrome/browser/chromeos:test_support",
     "//chrome/browser/enterprise/connectors/test:test_support",
     "//chrome/browser/extensions",
+    "//chrome/browser/profiles:profile",
     "//chrome/browser/ui",
     "//chrome/browser/ui/ash/system_web_apps",
     "//chrome/browser/web_applications",
@@ -437,6 +427,8 @@
     "//chrome/common:chrome_features",
     "//chrome/common:constants",
     "//chrome/common:non_code_constants",
+    "//chrome/test:test_support",
+    "//chrome/test:test_support_ui",
     "//chromeos/ash/components/browser_context_helper",
     "//chromeos/ash/components/dbus:vm_applications_apps_proto",
     "//chromeos/ash/components/dbus/cros_disks",
@@ -454,6 +446,7 @@
     "//chromeos/dbus/constants",
     "//chromeos/dbus/dlp",
     "//chromeos/dbus/dlp:dlp_proto",
+    "//components/account_id",
     "//components/download/public/common:public",
     "//components/drive",
     "//components/file_access:test_support",
@@ -469,6 +462,7 @@
     "//components/signin/public/identity_manager:test_support",
     "//components/user_manager",
     "//components/variations/service",
+    "//components/webapps/common",
     "//content/test:test_support",
     "//extensions:test_support",
     "//extensions/browser:test_support",
@@ -483,6 +477,7 @@
     "//net:test_support",
     "//pdf:buildflags",
     "//services/network:test_support",
+    "//storage/browser",
     "//storage/common",
     "//testing/gmock",
     "//testing/gtest",
diff --git a/chrome/browser/ash/guest_os/BUILD.gn b/chrome/browser/ash/guest_os/BUILD.gn
index b68e778..ff28da9 100644
--- a/chrome/browser/ash/guest_os/BUILD.gn
+++ b/chrome/browser/ash/guest_os/BUILD.gn
@@ -65,6 +65,8 @@
     "//chrome/browser/apps/app_service:constants",
     "//chrome/browser/apps/app_service/app_icon",
     "//chrome/browser/apps/app_service/app_icon:util",
+    "//chrome/browser/ash/arc/adbd",
+    "//chrome/browser/ash/arc/session",
     "//chrome/browser/ash/bruschetta",
     "//chrome/browser/ash/exo",
     "//chrome/browser/ash/file_manager",
@@ -104,6 +106,8 @@
 
   allow_circular_includes_from = [
     "//chrome/browser/apps/app_service/app_icon",
+    "//chrome/browser/ash/arc/adbd",
+    "//chrome/browser/ash/arc/session",
     "//chrome/browser/ash/bruschetta",
     "//chrome/browser/ash/file_manager",
     "//chrome/browser/ash/exo",
diff --git a/chrome/browser/ash/login/lock/BUILD.gn b/chrome/browser/ash/login/lock/BUILD.gn
index e413f602..76b4da5e 100644
--- a/chrome/browser/ash/login/lock/BUILD.gn
+++ b/chrome/browser/ash/login/lock/BUILD.gn
@@ -38,6 +38,8 @@
     "//chrome/browser:browser_process",
     "//chrome/browser:resources",
     "//chrome/browser/ash/child_accounts",
+    "//chrome/browser/ash/extensions/autotest_private",
+    "//chrome/browser/ash/extensions/file_manager",
     "//chrome/browser/ash/input_method",
     "//chrome/browser/ash/login/quick_unlock",
     "//chrome/browser/extensions",
@@ -63,6 +65,8 @@
 
   allow_circular_includes_from = [
     "//chrome/browser/ash/child_accounts",
+    "//chrome/browser/ash/extensions/autotest_private",
+    "//chrome/browser/ash/extensions/file_manager",
     "//chrome/browser/ash/input_method",
     "//chrome/browser/extensions",
   ]
diff --git a/chrome/browser/ash/system_web_apps/BUILD.gn b/chrome/browser/ash/system_web_apps/BUILD.gn
index 816fb83..5c1d2af 100644
--- a/chrome/browser/ash/system_web_apps/BUILD.gn
+++ b/chrome/browser/ash/system_web_apps/BUILD.gn
@@ -97,6 +97,7 @@
     "//chrome/browser/ash/accessibility",
     "//chrome/browser/ash/accessibility:test_support",
     "//chrome/browser/ash/app_list/test:test_support",
+    "//chrome/browser/ash/extensions",
     "//chrome/browser/ash/file_manager",
     "//chrome/browser/ash/file_manager:test_support",
     "//chrome/browser/ash/hats",
@@ -133,6 +134,7 @@
     "//ash/constants",
     "//base",
     "//base/test:test_support",
+    "//chrome/browser/ash/extensions",
     "//chrome/browser/ash/system_web_apps/test_support",
     "//chrome/browser/ash/system_web_apps/types",
     "//chrome/browser/web_applications",
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 90441b3..62402eb 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -425,6 +425,7 @@
       "//chrome/browser/ash/app_restore",
       "//chrome/browser/ash/arc",
       "//chrome/browser/ash/arc/enterprise/cert_store",
+      "//chrome/browser/ash/extensions/file_manager",
       "//chrome/browser/ash/arc/fileapi",
       "//chrome/browser/ash/arc/intent_helper",
       "//chrome/browser/ash/arc/policy",
@@ -465,6 +466,7 @@
       "//chrome/browser/ash/arc/policy",
       "//chrome/browser/ash/attestation",
       "//chrome/browser/ash/cert_provisioning",
+      "//chrome/browser/ash/extensions/file_manager",
       "//chrome/browser/ash/file_manager",
       "//chrome/browser/ash/file_manager/virtual_tasks",
       "//chrome/browser/ash/guest_os",
diff --git a/chrome/browser/chromeos/drivefs/BUILD.gn b/chrome/browser/chromeos/drivefs/BUILD.gn
index de09ae1..3c93433 100644
--- a/chrome/browser/chromeos/drivefs/BUILD.gn
+++ b/chrome/browser/chromeos/drivefs/BUILD.gn
@@ -2,6 +2,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/config/chromeos/ui_mode.gni")
+
 assert(is_chromeos)
 
 source_set("native_message_host_origins") {
@@ -25,11 +27,21 @@
     "//extensions/common",
     "//mojo/public/cpp/bindings",
   ]
+
   public_deps = [ ":native_message_host_origins" ]
   sources = [
     "drivefs_native_message_host.cc",
     "drivefs_native_message_host.h",
   ]
+
+  if (is_chromeos_ash) {
+    # TODO(crbug.com/40251081): Remove these deps. Needed only to allow circular includes.
+    deps += [ "//chrome/browser/ash/extensions/file_manager" ]
+
+    # TODO(crbug.com/40251079): Remove circular dependencies.
+    allow_circular_includes_from =
+        [ "//chrome/browser/ash/extensions/file_manager" ]
+  }
 }
 
 source_set("unit_tests") {
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index 1bddd7b..0ea352c3 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -1256,6 +1256,11 @@
       "//chrome/browser/ash/crosapi",
       "//chrome/browser/ash/crostini:crostini_installer_types_mojom",
       "//chrome/browser/ash/customization",
+      "//chrome/browser/ash/extensions",
+      "//chrome/browser/ash/extensions/autotest_private",
+      "//chrome/browser/ash/extensions/file_manager",
+      "//chrome/browser/ash/extensions/speech",
+      "//chrome/browser/ash/extensions/users_private",
       "//chrome/browser/ash/file_manager",
       "//chrome/browser/ash/fileapi",
       "//chrome/browser/ash/guest_os",
@@ -1347,6 +1352,11 @@
       "//chrome/browser/ash/guest_os",
       "//chrome/browser/ash/guest_os/public",
       "//chrome/browser/ash/guest_os/virtual_machines",
+      "//chrome/browser/ash/extensions",
+      "//chrome/browser/ash/extensions/autotest_private",
+      "//chrome/browser/ash/extensions/file_manager",
+      "//chrome/browser/ash/extensions/speech",
+      "//chrome/browser/ash/extensions/users_private",
       "//chrome/browser/ash/login/app_mode",
       "//chrome/browser/ash/login/demo_mode",
       "//chrome/browser/ash/login/quick_unlock",
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 988b7da..878cac1 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -3852,6 +3852,9 @@
       "//chrome/browser/ash/device_name",
       "//chrome/browser/ash/eche_app",
       "//chrome/browser/ash/extended_updates",
+      "//chrome/browser/ash/extensions",
+      "//chrome/browser/ash/extensions/autotest_private",
+      "//chrome/browser/ash/extensions/file_manager",
       "//chrome/browser/ash/file_manager",
       "//chrome/browser/ash/file_manager/virtual_tasks",
       "//chrome/browser/ash/file_suggest",
@@ -4207,6 +4210,9 @@
       "//chrome/browser/ash/eche_app",
       "//chrome/browser/ash/extended_updates",
       "//chrome/browser/ash/file_suggest",
+      "//chrome/browser/ash/extensions",
+      "//chrome/browser/ash/extensions/autotest_private",
+      "//chrome/browser/ash/extensions/file_manager",
       "//chrome/browser/ash/floating_workspace",
       "//chrome/browser/ash/geolocation",
       "//chrome/browser/ash/growth",
diff --git a/chrome/browser/ui/ash/system_web_apps/BUILD.gn b/chrome/browser/ui/ash/system_web_apps/BUILD.gn
index 617ef69..beceffd9 100644
--- a/chrome/browser/ui/ash/system_web_apps/BUILD.gn
+++ b/chrome/browser/ui/ash/system_web_apps/BUILD.gn
@@ -39,6 +39,8 @@
   # TODO(crbug.com/40251081): Remove these deps. Needed only to allow circular includes.
   deps += [
     "//chrome/browser/ash/crosapi",
+    "//chrome/browser/ash/extensions/autotest_private",
+    "//chrome/browser/ash/extensions/file_manager",
     "//chrome/browser/ash/guest_os",
     "//chrome/browser/ash/login/demo_mode",
     "//chrome/browser/ash/system_web_apps/apps",
@@ -50,6 +52,8 @@
   allow_circular_includes_from = [
     "//chrome/browser/ash/crosapi",
     "//chrome/browser/ash/guest_os",
+    "//chrome/browser/ash/extensions/autotest_private",
+    "//chrome/browser/ash/extensions/file_manager",
     "//chrome/browser/ash/file_manager",
     "//chrome/browser/ash/login/demo_mode",
     "//chrome/browser/ash/system_web_apps/apps",
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index acc1cf98..8d66e6c 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -911,6 +911,7 @@
       "//chrome/browser/ash/arc/boot_phase_monitor",
       "//chrome/browser/ash/arc/session",
       "//chrome/browser/ash/crosapi",
+      "//chrome/browser/ash/extensions",
       "//chrome/browser/ash/guest_os",
       "//chrome/browser/ash/guest_os/public",
       "//chrome/browser/ash/input_method",
@@ -2215,6 +2216,7 @@
         "//chrome/browser/ash/arc/accessibility",
         "//chrome/browser/ash/arc/auth",
         "//chrome/browser/ash/arc/enterprise/cert_store",
+        "//chrome/browser/ash/arc/extensions",
         "//chrome/browser/ash/arc/fileapi",
         "//chrome/browser/ash/arc/intent_helper",
         "//chrome/browser/ash/arc/keymaster",
@@ -2233,6 +2235,12 @@
         "//chrome/browser/ash/child_accounts/time_limits",
         "//chrome/browser/ash/child_accounts/time_limits:test_support",
         "//chrome/browser/ash/customization",
+        "//chrome/browser/ash/extensions",
+        "//chrome/browser/ash/extensions/autotest_private",
+        "//chrome/browser/ash/extensions/file_manager",
+        "//chrome/browser/ash/extensions/login_screen_ui",
+        "//chrome/browser/ash/extensions/speech",
+        "//chrome/browser/ash/extensions/users_private",
         "//chrome/browser/ash/file_manager",
         "//chrome/browser/ash/file_manager:test_support",
         "//chrome/browser/ash/file_suggest",
@@ -8841,6 +8849,7 @@
       "//chrome/browser/ash/crosapi:unit_tests",
       "//chrome/browser/ash/customization",
       "//chrome/browser/ash/eche_app",
+      "//chrome/browser/ash/extensions",
       "//chrome/browser/ash/file_manager",
       "//chrome/browser/ash/file_manager:test_support",
       "//chrome/browser/ash/file_suggest",