[AXTreeFixing] Add preference to enable AXTree Fixing

Change-Id: If9befee11f76e262974e5de5e95e637575039277
Bug: 399384017
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6330183
Reviewed-by: Mark Schillaci <[email protected]>
Reviewed-by: Nektarios Paisios <[email protected]>
Commit-Queue: Tzarial <[email protected]>
Reviewed-by: Kyle Horimoto <[email protected]>
Reviewed-by: Wes Okuhara <[email protected]>
Reviewed-by: Maksim Moskvitin <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1430914}
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
index fb466eb..cdb53014 100644
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -557,6 +557,8 @@
       settings_api::PrefType::kBoolean;
   (*s_allowlist)[::prefs::kLiveTranslateTargetLanguageCode] =
       settings_api::PrefType::kString;
+  (*s_allowlist)[::prefs::kAccessibilityAXTreeFixingEnabled] =
+      settings_api::PrefType::kBoolean;
   (*s_allowlist)[::prefs::kAccessibilityMainNodeAnnotationsEnabled] =
       settings_api::PrefType::kBoolean;
 #endif
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index c46a6d7..66c8471 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -2253,6 +2253,9 @@
   registry->RegisterTimePref(prefs::kLastMemorySaverChipExpandedTimestamp,
                              base::Time());
   registry->RegisterBooleanPref(
+      prefs::kAccessibilityAXTreeFixingEnabled, false,
+      user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
+  registry->RegisterBooleanPref(
       prefs::kAccessibilityMainNodeAnnotationsEnabled, false,
       user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
 #endif
diff --git a/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc b/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc
index db3e3b0..de7ec19c 100644
--- a/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc
+++ b/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc
@@ -386,6 +386,7 @@
   kOfficeMoveConfirmationShownForCloudToDriveSyncable = 100321,
   kOfficeMoveConfirmationShownForCloudToOneDriveSyncable = 100322,
   kPinnedCastMigrationComplete = 100323,
+  kAccessibilityAXTreeFixingEnabled = 100324,
   // See components/sync_preferences/README.md about adding new entries here.
   // vvvvv IMPORTANT! vvvvv
   // Note to the reviewer: IT IS YOUR RESPONSIBILITY to ensure that new syncable
@@ -1300,6 +1301,10 @@
      {syncable_prefs_ids::kAccessibilityImageLabelsOptInAccepted,
       syncer::PREFERENCES, sync_preferences::PrefSensitivity::kNone,
       sync_preferences::MergeBehavior::kNone}},
+    {prefs::kAccessibilityAXTreeFixingEnabled,
+     {syncable_prefs_ids::kAccessibilityAXTreeFixingEnabled,
+      syncer::PREFERENCES, sync_preferences::PrefSensitivity::kNone,
+      sync_preferences::MergeBehavior::kNone}},
     {prefs::kAccessibilityMainNodeAnnotationsEnabled,
      {syncable_prefs_ids::kAccessibilityMainNodeAnnotationsEnabled,
       syncer::PREFERENCES, sync_preferences::PrefSensitivity::kNone,