Move Screen AI management files to c/b/screen_ai.

Screen AI service management classes (download, installation, and
factory to create and access the services) are moved from
components/services/screen_ai/public/cpp to chrome/browser/screen_ai.

Since all these classes are triggered from the browser process, having
them in browser layer makes it easier to manage the service, e.g.
access to g_browser_process to call installer or use prefs.

The first patch of this CL only moves the files and the next patches
have the updates required in them and other files.

Bug: 1278249
Change-Id: I9e744c2c9eac17dcbe360b204ff9a9d45552e0df
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4545861
Commit-Queue: Ramin Halavati <[email protected]>
Reviewed-by: David Tseng <[email protected]>
Auto-Submit: Ramin Halavati <[email protected]>
Reviewed-by: Joshua Pawlicki <[email protected]>
Reviewed-by: Mike West <[email protected]>
Reviewed-by: Roman Sorokin <[email protected]>
Reviewed-by: Dominic Battre <[email protected]>
Reviewed-by: Colin Blundell <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1147698}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 03851ab..109debfc 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2483,9 +2483,10 @@
       "renderer_context_menu/pdf_ocr_menu_observer.h",
     ]
     deps += [
+      "//chrome/browser/screen_ai:prefs",
+      "//chrome/browser/screen_ai:screen_ai_install_state",
+      "//chrome/browser/screen_ai:screen_ai_service_router_factory",
       "//components/services/screen_ai",
-      "//components/services/screen_ai/public/cpp:screen_ai_install_state",
-      "//components/services/screen_ai/public/cpp:screen_ai_service_router_factory",
       "//components/services/screen_ai/public/cpp:utilities",
       "//components/services/screen_ai/public/mojom",
     ]
diff --git a/chrome/browser/accessibility/ax_screen_ai_annotator.cc b/chrome/browser/accessibility/ax_screen_ai_annotator.cc
index 79cfa6b0..e1897365 100644
--- a/chrome/browser/accessibility/ax_screen_ai_annotator.cc
+++ b/chrome/browser/accessibility/ax_screen_ai_annotator.cc
@@ -11,9 +11,9 @@
 #include "base/strings/strcat.h"
 #include "base/task/sequenced_task_runner.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router_factory.h"
 #include "chrome/browser/ui/browser.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/web_contents.h"
 #include "ui/accessibility/ax_tree_update.h"
diff --git a/chrome/browser/accessibility/ax_screen_ai_annotator.h b/chrome/browser/accessibility/ax_screen_ai_annotator.h
index 418116b..e9c5d2b 100644
--- a/chrome/browser/accessibility/ax_screen_ai_annotator.h
+++ b/chrome/browser/accessibility/ax_screen_ai_annotator.h
@@ -10,8 +10,8 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observation.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "components/keyed_service/core/keyed_service.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
 #include "components/services/screen_ai/public/mojom/screen_ai_service.mojom.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
diff --git a/chrome/browser/accessibility/pdf_ocr_controller.cc b/chrome/browser/accessibility/pdf_ocr_controller.cc
index f2e3c66..61d491b 100644
--- a/chrome/browser/accessibility/pdf_ocr_controller.cc
+++ b/chrome/browser/accessibility/pdf_ocr_controller.cc
@@ -7,11 +7,11 @@
 #include "base/check_is_test.h"
 #include "base/check_op.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router_factory.h"
 #include "chrome/common/pdf_util.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_service.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h"
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/render_widget_host.h"
 #include "content/public/browser/render_widget_host_iterator.h"
diff --git a/chrome/browser/accessibility/pdf_ocr_controller.h b/chrome/browser/accessibility/pdf_ocr_controller.h
index 26e12f16..7c1baae1 100644
--- a/chrome/browser/accessibility/pdf_ocr_controller.h
+++ b/chrome/browser/accessibility/pdf_ocr_controller.h
@@ -8,9 +8,9 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observation.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/prefs/pref_change_registrar.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
 
 class Profile;
 
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn
index b20e2e2..3e0c7f1 100644
--- a/chrome/browser/ash/BUILD.gn
+++ b/chrome/browser/ash/BUILD.gn
@@ -3819,6 +3819,7 @@
     "//chrome/browser/resources:component_extension_resources",
     "//chrome/browser/resources/chromeos:app_icon_resources",
     "//chrome/browser/resources/settings/chromeos:resources",
+    "//chrome/browser/screen_ai:screen_ai_chromeos_installer",
     "//chrome/browser/ui/ash/system_web_apps",
     "//chrome/browser/ui/webui/ash/cloud_upload:mojo_bindings_shared",
     "//chrome/browser/ui/webui/ash/crostini_upgrader:mojo_bindings",
@@ -3973,7 +3974,6 @@
     "//components/services/app_service/public/cpp:types",
     "//components/services/app_service/public/protos",
     "//components/services/filesystem/public/mojom",
-    "//components/services/screen_ai/public/cpp:screen_ai_chromeos_installer",
     "//components/services/unzip/content",
     "//components/services/unzip/public/mojom",
     "//components/signin/public/base",
@@ -5812,6 +5812,7 @@
     "//chrome/browser/policy/messaging_layer/proto:crd_event_proto",
     "//chrome/browser/policy/messaging_layer/proto:log_upload_event_proto",
     "//chrome/browser/profiles:profile",
+    "//chrome/browser/screen_ai:screen_ai_install_state",
     "//chrome/browser/ui",
     "//chrome/browser/ui:ash_test_support",
     "//chrome/browser/ui:test_support",
@@ -6083,7 +6084,6 @@
     "//components/services/app_service/public/cpp:test_support",
     "//components/services/app_service/public/protos",
     "//components/services/filesystem/public/mojom",
-    "//components/services/screen_ai/public/cpp:screen_ai_install_state",
     "//components/session_manager:base",
     "//components/session_manager/core",
     "//components/sessions:test_support",
diff --git a/chrome/browser/ash/app_list/search/local_images/image_annotation_worker.cc b/chrome/browser/ash/app_list/search/local_images/image_annotation_worker.cc
index 2716d1e2..19db3d8 100644
--- a/chrome/browser/ash/app_list/search/local_images/image_annotation_worker.cc
+++ b/chrome/browser/ash/app_list/search/local_images/image_annotation_worker.cc
@@ -22,10 +22,10 @@
 #include "base/time/time.h"
 #include "chrome/browser/ash/app_list/search/local_images/annotation_storage.h"
 #include "chrome/browser/ash/app_list/search/local_images/search_utils.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "chromeos/services/machine_learning/public/cpp/service_connection.h"
 #include "chromeos/services/machine_learning/public/mojom/image_content_annotation.mojom.h"
 #include "chromeos/services/machine_learning/public/mojom/machine_learning_service.mojom.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
 
 namespace app_list {
 namespace {
diff --git a/chrome/browser/ash/app_list/search/local_images/image_annotation_worker.h b/chrome/browser/ash/app_list/search/local_images/image_annotation_worker.h
index 4bfdbfe3..4c8392a 100644
--- a/chrome/browser/ash/app_list/search/local_images/image_annotation_worker.h
+++ b/chrome/browser/ash/app_list/search/local_images/image_annotation_worker.h
@@ -17,9 +17,9 @@
 #include "base/sequence_checker.h"
 #include "base/task/sequenced_task_runner.h"
 #include "chrome/browser/ash/app_list/search/local_images/annotation_storage.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router.h"
 #include "chromeos/services/machine_learning/public/mojom/image_content_annotation.mojom.h"
 #include "chromeos/services/machine_learning/public/mojom/machine_learning_service.mojom.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router.h"
 #include "mojo/public/cpp/bindings/remote.h"
 
 namespace base {
diff --git a/chrome/browser/ash/login/session/user_session_initializer.cc b/chrome/browser/ash/login/session/user_session_initializer.cc
index cd2b14a..2f8f7009 100644
--- a/chrome/browser/ash/login/session/user_session_initializer.cc
+++ b/chrome/browser/ash/login/session/user_session_initializer.cc
@@ -40,6 +40,7 @@
 #include "chrome/browser/net/nss_service.h"
 #include "chrome/browser/net/nss_service_factory.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/screen_ai/screen_ai_chromeos_installer.h"
 #include "chrome/browser/ui/ash/calendar/calendar_keyed_service_factory.h"
 #include "chrome/browser/ui/ash/clipboard_image_model_factory_impl.h"
 #include "chrome/browser/ui/ash/glanceables/chrome_glanceables_delegate.h"
@@ -55,7 +56,6 @@
 #include "chromeos/ash/components/peripheral_notification/peripheral_notification_manager.h"
 #include "components/live_caption/caption_util.h"
 #include "components/prefs/pref_service.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_chromeos_installer.h"
 #include "components/user_manager/user_manager.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc
index 3fe1b8a..0d339c9 100644
--- a/chrome/browser/chrome_browser_interface_binders.cc
+++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -102,8 +102,8 @@
 #include "ui/accessibility/accessibility_features.h"
 
 #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router_factory.h"
 #endif
 
 #if BUILDFLAG(ENABLE_UNHANDLED_TAP)
diff --git a/chrome/browser/component_updater/screen_ai_component_installer.cc b/chrome/browser/component_updater/screen_ai_component_installer.cc
index a882f16..22d3007 100644
--- a/chrome/browser/component_updater/screen_ai_component_installer.cc
+++ b/chrome/browser/component_updater/screen_ai_component_installer.cc
@@ -8,9 +8,9 @@
 #include "base/files/file_util.h"
 #include "base/logging.h"
 #include "base/values.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "components/component_updater/component_updater_service.h"
 #include "components/crx_file/id_util.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
 #include "components/services/screen_ai/public/cpp/utilities.h"
 #include "components/update_client/update_client_errors.h"
 #include "content/public/browser/browser_thread.h"
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 3792484..2bc5695 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -221,7 +221,7 @@
 #endif  // BUILDFLAG(ENABLE_PDF)
 
 #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
-#include "components/services/screen_ai/public/cpp/pref_names.h"  // nogncheck
+#include "chrome/browser/screen_ai/pref_names.h"
 #endif
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
index d7a7fe7..1c3ad5fc 100644
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -427,7 +427,7 @@
 #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
 #include "chrome/browser/accessibility/ax_screen_ai_annotator_factory.h"
 #include "chrome/browser/accessibility/pdf_ocr_controller_factory.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router_factory.h"
 #endif
 
 #if BUILDFLAG(USE_NSS_CERTS)
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 023ce8f..c75a578 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -246,7 +246,7 @@
 #endif  // BUILDFLAG(ENABLE_PRINTING)
 
 #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #endif
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc b/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc
index 234b2f2..bf14b37e1 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc
@@ -134,7 +134,7 @@
 #endif
 
 #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #endif
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/browser/screen_ai/BUILD.gn b/chrome/browser/screen_ai/BUILD.gn
new file mode 100644
index 0000000..43f87a8
--- /dev/null
+++ b/chrome/browser/screen_ai/BUILD.gn
@@ -0,0 +1,62 @@
+# Copyright 2023 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/ui.gni")
+
+if (is_chromeos_ash) {
+  source_set("screen_ai_chromeos_installer") {
+    sources = [
+      "screen_ai_chromeos_installer.cc",
+      "screen_ai_chromeos_installer.h",
+    ]
+
+    deps = [
+      ":screen_ai_install_state",
+      "//chromeos/ash/components/dbus/dlcservice",
+      "//chromeos/ash/components/dbus/dlcservice:dlcservice_proto",
+      "//components/services/screen_ai/public/cpp:utilities",
+    ]
+  }
+}
+
+source_set("screen_ai_install_state") {
+  sources = [
+    "screen_ai_install_state.cc",
+    "screen_ai_install_state.h",
+  ]
+
+  deps = [
+    ":prefs",
+    "//base",
+    "//components/prefs",
+    "//components/services/screen_ai/public/cpp:utilities",
+    "//ui/accessibility:ax_base",
+  ]
+}
+
+source_set("screen_ai_service_router_factory") {
+  sources = [
+    "screen_ai_service_router.cc",
+    "screen_ai_service_router.h",
+    "screen_ai_service_router_factory.cc",
+    "screen_ai_service_router_factory.h",
+  ]
+
+  deps = [
+    ":screen_ai_install_state",
+    "//components/keyed_service/content",
+    "//components/keyed_service/core",
+    "//components/services/screen_ai/public/mojom",
+    "//content/public/browser",
+  ]
+}
+
+source_set("prefs") {
+  sources = [
+    "pref_names.cc",
+    "pref_names.h",
+  ]
+
+  deps = [ "//components/prefs" ]
+}
diff --git a/chrome/browser/screen_ai/DEPS b/chrome/browser/screen_ai/DEPS
new file mode 100644
index 0000000..7e7224c
--- /dev/null
+++ b/chrome/browser/screen_ai/DEPS
@@ -0,0 +1,7 @@
+include_rules = [
+  "+components/keyed_service/core",
+  "+components/keyed_service/content",
+  "+components/prefs",
+  "+components/component_updater",
+  "+chromeos/ash/components/dbus/dlcservice"
+]
diff --git a/chrome/browser/screen_ai/OWNERS b/chrome/browser/screen_ai/OWNERS
new file mode 100644
index 0000000..b17fac0b
--- /dev/null
+++ b/chrome/browser/screen_ai/OWNERS
@@ -0,0 +1,2 @@
[email protected]
+file://ui/accessibility/OWNERS
diff --git a/components/services/screen_ai/public/cpp/pref_names.cc b/chrome/browser/screen_ai/pref_names.cc
similarity index 90%
rename from components/services/screen_ai/public/cpp/pref_names.cc
rename to chrome/browser/screen_ai/pref_names.cc
index da4b287..92d2dbe0 100644
--- a/components/services/screen_ai/public/cpp/pref_names.cc
+++ b/chrome/browser/screen_ai/pref_names.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/services/screen_ai/public/cpp/pref_names.h"
+#include "chrome/browser/screen_ai/pref_names.h"
 
 #include "base/files/file_path.h"
 #include "components/prefs/pref_registry_simple.h"
@@ -21,4 +21,4 @@
                              base::Time());
 }
 
-}  // namespace screen_ai
\ No newline at end of file
+}  // namespace screen_ai
diff --git a/components/services/screen_ai/public/cpp/pref_names.h b/chrome/browser/screen_ai/pref_names.h
similarity index 73%
rename from components/services/screen_ai/public/cpp/pref_names.h
rename to chrome/browser/screen_ai/pref_names.h
index 5ab2aa0..3d9ee81 100644
--- a/components/services/screen_ai/public/cpp/pref_names.h
+++ b/chrome/browser/screen_ai/pref_names.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_PREF_NAMES_H_
-#define COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_PREF_NAMES_H_
+#ifndef CHROME_BROWSER_SCREEN_AI_PREF_NAMES_H_
+#define CHROME_BROWSER_SCREEN_AI_PREF_NAMES_H_
 
 class PrefRegistrySimple;
 
@@ -21,4 +21,4 @@
 
 }  // namespace screen_ai
 
-#endif  // COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_PREF_NAMES_H_
+#endif  // CHROME_BROWSER_SCREEN_AI_PREF_NAMES_H_
diff --git a/components/services/screen_ai/public/cpp/screen_ai_chromeos_installer.cc b/chrome/browser/screen_ai/screen_ai_chromeos_installer.cc
similarity index 91%
rename from components/services/screen_ai/public/cpp/screen_ai_chromeos_installer.cc
rename to chrome/browser/screen_ai/screen_ai_chromeos_installer.cc
index 165953a..feb1db7 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_chromeos_installer.cc
+++ b/chrome/browser/screen_ai/screen_ai_chromeos_installer.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/services/screen_ai/public/cpp/screen_ai_chromeos_installer.h"
+#include "chrome/browser/screen_ai/screen_ai_chromeos_installer.h"
 
 #include "base/functional/bind.h"
 #include "base/logging.h"
 #include "base/task/thread_pool.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "chromeos/ash/components/dbus/dlcservice/dlcservice.pb.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
 #include "components/services/screen_ai/public/cpp/utilities.h"
 
 namespace {
@@ -34,8 +34,9 @@
 }
 
 void OnUninstallCompleted(const std::string& err) {
-  if (err != dlcservice::kErrorNone)
+  if (err != dlcservice::kErrorNone) {
     VLOG(0) << "Unistall failed: " << err;
+  }
 }
 
 void OnInstallProgress(double progress) {
diff --git a/components/services/screen_ai/public/cpp/screen_ai_chromeos_installer.h b/chrome/browser/screen_ai/screen_ai_chromeos_installer.h
similarity index 67%
rename from components/services/screen_ai/public/cpp/screen_ai_chromeos_installer.h
rename to chrome/browser/screen_ai/screen_ai_chromeos_installer.h
index 0b830d6..6c9a799 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_chromeos_installer.h
+++ b/chrome/browser/screen_ai/screen_ai_chromeos_installer.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_CHROMEOS_INSTALLER_H_
-#define COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_CHROMEOS_INSTALLER_H_
+#ifndef CHROME_BROWSER_SCREEN_AI_SCREEN_AI_CHROMEOS_INSTALLER_H_
+#define CHROME_BROWSER_SCREEN_AI_SCREEN_AI_CHROMEOS_INSTALLER_H_
 
 #include "chromeos/ash/components/dbus/dlcservice/dlcservice_client.h"
 
@@ -17,4 +17,4 @@
 
 }  // namespace screen_ai::chrome_os_installer
 
-#endif  // COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_CHROMEOS_INSTALLER_H_
+#endif  // CHROME_BROWSER_SCREEN_AI_SCREEN_AI_CHROMEOS_INSTALLER_H_
diff --git a/components/services/screen_ai/public/cpp/screen_ai_install_state.cc b/chrome/browser/screen_ai/screen_ai_install_state.cc
similarity index 93%
rename from components/services/screen_ai/public/cpp/screen_ai_install_state.cc
rename to chrome/browser/screen_ai/screen_ai_install_state.cc
index 93e90323..dd96085 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_install_state.cc
+++ b/chrome/browser/screen_ai/screen_ai_install_state.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 
 #include <memory>
 
@@ -12,8 +12,8 @@
 #include "base/ranges/algorithm.h"
 #include "base/task/thread_pool.h"
 #include "base/time/time.h"
+#include "chrome/browser/screen_ai/pref_names.h"
 #include "components/prefs/pref_service.h"
-#include "components/services/screen_ai/public/cpp/pref_names.h"
 #include "components/services/screen_ai/public/cpp/utilities.h"
 #include "ui/accessibility/accessibility_features.h"
 
@@ -24,7 +24,7 @@
 namespace {
 const int kScreenAICleanUpDelayInDays = 30;
 const char kMinExpectedVersion[] = "114.0";
-}
+}  // namespace
 
 namespace {
 
@@ -76,8 +76,9 @@
 
 // static
 bool ScreenAIInstallState::ShouldUninstall(PrefService* local_state) {
-  if (features::IsScreenAIServiceNeeded())
+  if (features::IsScreenAIServiceNeeded()) {
     return false;
+  }
 
   base::Time deletion_time =
       local_state->GetTime(prefs::kScreenAIScheduledDeletionTimePrefName);
@@ -107,8 +108,9 @@
 void ScreenAIInstallState::RemoveObserver(
     ScreenAIInstallState::Observer* observer) {
   auto pos = base::ranges::find(observers_, observer);
-  if (pos != observers_.end())
+  if (pos != observers_.end()) {
     observers_.erase(pos);
+  }
 }
 
 void ScreenAIInstallState::SetComponentFolder(
@@ -140,8 +142,9 @@
   }
 
   state_ = state;
-  for (ScreenAIInstallState::Observer* observer : observers_)
+  for (ScreenAIInstallState::Observer* observer : observers_) {
     observer->StateChanged(state_);
+  }
 }
 
 void ScreenAIInstallState::DownloadComponent() {
@@ -151,8 +154,9 @@
 
 void ScreenAIInstallState::SetDownloadProgress(double progress) {
   DCHECK_EQ(state_, State::kDownloading);
-  for (ScreenAIInstallState::Observer* observer : observers_)
+  for (ScreenAIInstallState::Observer* observer : observers_) {
     observer->DownloadProgressChanged(progress);
+  }
 }
 
 bool ScreenAIInstallState::IsComponentAvailable() {
diff --git a/components/services/screen_ai/public/cpp/screen_ai_install_state.h b/chrome/browser/screen_ai/screen_ai_install_state.h
similarity index 92%
rename from components/services/screen_ai/public/cpp/screen_ai_install_state.h
rename to chrome/browser/screen_ai/screen_ai_install_state.h
index 2ef4f1c..dcc135a 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_install_state.h
+++ b/chrome/browser/screen_ai/screen_ai_install_state.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_INSTALL_STATE_H_
-#define COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_INSTALL_STATE_H_
+#ifndef CHROME_BROWSER_SCREEN_AI_SCREEN_AI_INSTALL_STATE_H_
+#define CHROME_BROWSER_SCREEN_AI_SCREEN_AI_INSTALL_STATE_H_
 
 #include <vector>
 
@@ -94,4 +94,4 @@
 
 }  // namespace screen_ai
 
-#endif  // COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_INSTALL_STATE_H_
+#endif  // CHROME_BROWSER_SCREEN_AI_SCREEN_AI_INSTALL_STATE_H_
diff --git a/components/services/screen_ai/public/cpp/screen_ai_install_state_unittest.cc b/chrome/browser/screen_ai/screen_ai_install_state_unittest.cc
similarity index 95%
rename from components/services/screen_ai/public/cpp/screen_ai_install_state_unittest.cc
rename to chrome/browser/screen_ai/screen_ai_install_state_unittest.cc
index bbdf2501..b8b6c73e 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_install_state_unittest.cc
+++ b/chrome/browser/screen_ai/screen_ai_install_state_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 
 #include "base/files/file_path.h"
 #include "base/scoped_observation.h"
diff --git a/components/services/screen_ai/public/cpp/screen_ai_service_router.cc b/chrome/browser/screen_ai/screen_ai_service_router.cc
similarity index 97%
rename from components/services/screen_ai/public/cpp/screen_ai_service_router.cc
rename to chrome/browser/screen_ai/screen_ai_service_router.cc
index 67d070a..c618b6fc 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_service_router.cc
+++ b/chrome/browser/screen_ai/screen_ai_service_router.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router.h"
 
 #include <utility>
 
@@ -11,7 +11,7 @@
 #include "base/functional/bind.h"
 #include "base/location.h"
 #include "base/task/thread_pool.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/service_process_host.h"
 #include "content/public/browser/service_process_host_passkeys.h"
diff --git a/components/services/screen_ai/public/cpp/screen_ai_service_router.h b/chrome/browser/screen_ai/screen_ai_service_router.h
similarity index 88%
rename from components/services/screen_ai/public/cpp/screen_ai_service_router.h
rename to chrome/browser/screen_ai/screen_ai_service_router.h
index 1025b6e..60c718b 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_service_router.h
+++ b/chrome/browser/screen_ai/screen_ai_service_router.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_SERVICE_ROUTER_H_
-#define COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_SERVICE_ROUTER_H_
+#ifndef CHROME_BROWSER_SCREEN_AI_SCREEN_AI_SERVICE_ROUTER_H_
+#define CHROME_BROWSER_SCREEN_AI_SCREEN_AI_SERVICE_ROUTER_H_
 
 #include "base/memory/weak_ptr.h"
 #include "components/keyed_service/core/keyed_service.h"
@@ -57,4 +57,4 @@
 
 }  // namespace screen_ai
 
-#endif  // COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_SERVICE_ROUTER_H_
+#endif  // CHROME_BROWSER_SCREEN_AI_SCREEN_AI_SERVICE_ROUTER_H_
diff --git a/components/services/screen_ai/public/cpp/screen_ai_service_router_factory.cc b/chrome/browser/screen_ai/screen_ai_service_router_factory.cc
similarity index 89%
rename from components/services/screen_ai/public/cpp/screen_ai_service_router_factory.cc
rename to chrome/browser/screen_ai/screen_ai_service_router_factory.cc
index b806fef0..25dfeee05 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_service_router_factory.cc
+++ b/chrome/browser/screen_ai/screen_ai_service_router_factory.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router_factory.h"
 
+#include "chrome/browser/screen_ai/screen_ai_service_router.h"
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router.h"
 #include "content/public/browser/browser_context.h"
 
 namespace screen_ai {
diff --git a/components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h b/chrome/browser/screen_ai/screen_ai_service_router_factory.h
similarity index 81%
rename from components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h
rename to chrome/browser/screen_ai/screen_ai_service_router_factory.h
index edfc32665..84a1699 100644
--- a/components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h
+++ b/chrome/browser/screen_ai/screen_ai_service_router_factory.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_SERVICE_ROUTER_FACTORY_H_
-#define COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_SERVICE_ROUTER_FACTORY_H_
+#ifndef CHROME_BROWSER_SCREEN_AI_SCREEN_AI_SERVICE_ROUTER_FACTORY_H_
+#define CHROME_BROWSER_SCREEN_AI_SCREEN_AI_SERVICE_ROUTER_FACTORY_H_
 
 #include "base/no_destructor.h"
 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
@@ -41,4 +41,4 @@
 
 }  // namespace screen_ai
 
-#endif  // COMPONENTS_SERVICES_SCREEN_AI_PUBLIC_CPP_SCREEN_AI_SERVICE_ROUTER_FACTORY_H_
+#endif  // CHROME_BROWSER_SCREEN_AI_SCREEN_AI_SERVICE_ROUTER_FACTORY_H_
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 62a378f..8e0ef2e 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -5814,8 +5814,8 @@
 
     if (enable_screen_ai_service) {
       deps += [
-        "//components/services/screen_ai/public/cpp:screen_ai_install_state",
-        "//components/services/screen_ai/public/cpp:screen_ai_service_router_factory",
+        "//chrome/browser/screen_ai:screen_ai_install_state",
+        "//chrome/browser/screen_ai:screen_ai_service_router_factory",
       ]
     }
   }
diff --git a/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.cc b/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.cc
index 7920260..ed56b84 100644
--- a/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.cc
+++ b/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.cc
@@ -5,9 +5,9 @@
 #include <string>
 
 #include "base/feature_list.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.h"
 #include "chrome/grit/generated_resources.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
 #include "ui/accessibility/accessibility_features.h"
 #include "ui/base/l10n/l10n_util.h"
 
diff --git a/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.h b/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.h
index ceb5009..f40a392 100644
--- a/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.h
+++ b/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler.h
@@ -7,8 +7,8 @@
 
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observation.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
 
 namespace settings {
 
diff --git a/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler_unittest.cc b/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler_unittest.cc
index cc7ba38..8936b13 100644
--- a/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/ash/pdf_ocr_handler_unittest.cc
@@ -7,8 +7,8 @@
 
 #include "base/memory/raw_ptr.h"
 #include "base/test/scoped_feature_list.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #include "chrome/test/base/testing_profile.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/browser_task_environment.h"
 #include "content/public/test/test_web_ui.h"
diff --git a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.cc b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.cc
index 1741dda..c1dbccc 100644
--- a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.cc
+++ b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.cc
@@ -19,8 +19,8 @@
 #include "url/gurl.h"
 
 #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router.h"
-#include "components/services/screen_ai/public/cpp/screen_ai_service_router_factory.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router.h"
+#include "chrome/browser/screen_ai/screen_ai_service_router_factory.h"
 #endif
 
 using read_anything::mojom::ReadAnythingTheme;
diff --git a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.h b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.h
index 26d9fab..610a25bd 100644
--- a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.h
+++ b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_page_handler.h
@@ -21,7 +21,7 @@
 #include "mojo/public/cpp/bindings/remote.h"
 
 #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
-#include "components/services/screen_ai/public/cpp/screen_ai_install_state.h"
+#include "chrome/browser/screen_ai/screen_ai_install_state.h"
 #endif
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index ce3a772..8282edeb 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -2563,8 +2563,8 @@
         "../browser/renderer_context_menu/pdf_ocr_menu_observer_browsertest.cc",
       ]
       deps += [
-        "//components/services/screen_ai/public/cpp:screen_ai_install_state",
-        "//components/services/screen_ai/public/cpp:screen_ai_service_router_factory",
+        "//chrome/browser/screen_ai:screen_ai_install_state",
+        "//chrome/browser/screen_ai:screen_ai_service_router_factory",
         "//components/services/screen_ai/public/mojom",
       ]
     }
diff --git a/components/services/screen_ai/BUILD.gn b/components/services/screen_ai/BUILD.gn
index 374abbb..296dac04 100644
--- a/components/services/screen_ai/BUILD.gn
+++ b/components/services/screen_ai/BUILD.gn
@@ -79,7 +79,6 @@
   testonly = true
 
   sources = [
-    "public/cpp/screen_ai_install_state_unittest.cc",
     "screen_ai_ax_tree_serializer_unittest.cc",
     "screen_ai_service_impl_unittest.cc",
   ]
@@ -97,7 +96,6 @@
     ":screen_ai",
     "//base/test:test_support",
     "//components/services/screen_ai/proto",
-    "//components/services/screen_ai/public/cpp:screen_ai_install_state",
     "//components/ukm:test_support",
     "//testing/gtest",
     "//ui/accessibility:test_support",
diff --git a/components/services/screen_ai/public/cpp/BUILD.gn b/components/services/screen_ai/public/cpp/BUILD.gn
index 24613dd..d8b2b43 100644
--- a/components/services/screen_ai/public/cpp/BUILD.gn
+++ b/components/services/screen_ai/public/cpp/BUILD.gn
@@ -2,59 +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/ui.gni")
-
-if (is_chromeos_ash) {
-  source_set("screen_ai_chromeos_installer") {
-    sources = [
-      "screen_ai_chromeos_installer.cc",
-      "screen_ai_chromeos_installer.h",
-    ]
-
-    deps = [
-      ":screen_ai_install_state",
-      ":utilities",
-      "//chromeos/ash/components/dbus/dlcservice",
-      "//chromeos/ash/components/dbus/dlcservice:dlcservice_proto",
-    ]
-  }
-}
-
-source_set("screen_ai_install_state") {
-  sources = [
-    "screen_ai_install_state.cc",
-    "screen_ai_install_state.h",
-  ]
-
-  deps = [
-    ":utilities",
-    "//base/",
-    "//components/prefs",
-    "//ui/accessibility:ax_base",
-  ]
-}
-
-source_set("screen_ai_service_router_factory") {
-  sources = [
-    "screen_ai_service_router.cc",
-    "screen_ai_service_router.h",
-    "screen_ai_service_router_factory.cc",
-    "screen_ai_service_router_factory.h",
-  ]
-
-  deps = [
-    ":screen_ai_install_state",
-    "//components/keyed_service/content",
-    "//components/keyed_service/core",
-    "//components/services/screen_ai/public/mojom",
-    "//content/public/browser",
-  ]
-}
-
 source_set("utilities") {
   sources = [
-    "pref_names.cc",
-    "pref_names.h",
     "utilities.cc",
     "utilities.h",
   ]
@@ -62,6 +11,5 @@
   deps = [
     "//base",
     "//components/component_updater",
-    "//components/prefs",
   ]
 }
diff --git a/components/services/screen_ai/public/cpp/DEPS b/components/services/screen_ai/public/cpp/DEPS
index 7e7224c..905953f 100644
--- a/components/services/screen_ai/public/cpp/DEPS
+++ b/components/services/screen_ai/public/cpp/DEPS
@@ -1,7 +1,3 @@
 include_rules = [
-  "+components/keyed_service/core",
-  "+components/keyed_service/content",
-  "+components/prefs",
   "+components/component_updater",
-  "+chromeos/ash/components/dbus/dlcservice"
 ]