[A11y] Add support to accessibility internals for switching API type

This change adds a dropdown box to chrome://accessibility, allowing
for users to pick an API type on platforms that have multiple supported
types.

to view the UIA tree.

AX-Relnotes: The chrome://accessibility page now has the ability
Bug: 325316128
Change-Id: Ie0702b7f446143e1386e70df9abe49f2645abbb0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5320280
Reviewed-by: Greg Thompson <[email protected]>
Reviewed-by: Avi Drissman <[email protected]>
Commit-Queue: Jacques Newman <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1275871}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 5eef5cd..2b18433f 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -1007,6 +1007,10 @@
 constexpr char kOobeGuestAcceptedTos[] = "oobe.guest_accepted_tos";
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
+// Deprecated 03/2024.
+constexpr char kShowInternalAccessibilityTree[] =
+    "accessibility.show_internal_accessibility_tree";
+
 // Register local state used only for migration (clearing or moving to a new
 // key).
 void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
@@ -1420,6 +1424,9 @@
 
   // Deprecated 03/2024.
   registry->RegisterBooleanPref(kPrivacySandboxApisEnabled, true);
+
+  // Deprecated 03/2024.
+  registry->RegisterBooleanPref(kShowInternalAccessibilityTree, false);
 }
 
 void ClearSyncRequestedPrefAndMaybeMigrate(PrefService* profile_prefs) {
@@ -2692,6 +2699,9 @@
   // TODO(crbug.com/40282890): Remove ~one year after full launch.
   browser_sync::MaybeMigrateSyncingUserToSignedIn(profile_path, profile_prefs);
 
+  // Added 03/2024.
+  profile_prefs->ClearPref(kShowInternalAccessibilityTree);
+
   // Please don't delete the following line. It is used by PRESUBMIT.py.
   // END_MIGRATE_OBSOLETE_PROFILE_PREFS