Quick Answers V2: Replace boolean consent flag with integral one

Currently we use a boolean flag to store the consent status for Quick
Answers, in order to do a one-time migration for existing users, replace
the boolean flag with an integral one which has three states.

Bug: b/186905922
Test: Manual Test
Change-Id: I93f429ff0c0119016177ec38d900b18fec878497
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2965098
Reviewed-by: Dominic Battré <[email protected]>
Reviewed-by: Xiaohui Chen <[email protected]>
Reviewed-by: Xiyuan Xia <[email protected]>
Commit-Queue: Yue Li <[email protected]>
Cr-Commit-Position: refs/heads/master@{#894447}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 4ecdb06..37650d1 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -587,6 +587,11 @@
 // Deprecated 06/2021.
 const char kDataReductionProxy[] = "auth.spdyproxy.origin";
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+// Deprecated 06/2021.
+const char kQuickAnswersConsented[] = "settings.quick_answers.user_consented";
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+
 // Register local state used only for migration (clearing or moving to a new
 // key).
 void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
@@ -733,6 +738,10 @@
 #endif
 
   registry->RegisterStringPref(kDataReductionProxy, std::string());
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+  registry->RegisterBooleanPref(kQuickAnswersConsented, false);
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 }
 
 }  // namespace
@@ -1474,6 +1483,11 @@
   // Added 06/2021
   profile_prefs->ClearPref(kDataReductionProxy);
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+  // Added 06/2021
+  profile_prefs->ClearPref(kQuickAnswersConsented);
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+
   // Please don't delete the following line. It is used by PRESUBMIT.py.
   // END_MIGRATE_OBSOLETE_PROFILE_PREFS
 }