Add Screen AI service for accessibility annotations.

To improve the accessibility tree based on visual data, a snapshot of
the screen is sent to a local machine learning library. The library will
provide annotations for the snapshot and the annotations will be used
to update the accessibility tree.
This CL adds a Screen AI sand-boxed service to load the library, and
general infrastructure to pass the images from renderer to the library
and getting back and applying the annotations.
The actual details on how the annotations are processed and used will be
added in subsequent CLs.

See more in go/chrome-screen-ai.

This change is behind kScreenAI flag and disabled by default.

Bug: 1278249
AX-Relnotes: ‌ N/A
Change-Id: I25861e9b288c729eafb6162992bc6fbe611f2152
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3358073
Reviewed-by: David Tseng <[email protected]>
Reviewed-by: Matthew Denton <[email protected]>
Reviewed-by: Alex Gough <[email protected]>
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Colin Blundell <[email protected]>
Commit-Queue: Ramin Halavati <[email protected]>
Cr-Commit-Position: refs/heads/main@{#974138}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 82112c1..35b3cc1 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2520,8 +2520,12 @@
     ]
   }
   if (is_linux || is_chromeos) {
-    deps += [ "//chrome/browser/error_reporting" ]
+    deps += [
+      "//chrome/browser/error_reporting",
+      "//components/services/screen_ai/public/cpp:screen_ai_service_router_factory",
+    ]
   }
+
   if (use_ozone) {
     deps += [
       "//ui/events/ozone",