[a11y][ffr] Add kAccessibilityAnnotatorFirstRunPhase2 feature

This feature will be used to control behavior specific to the first run
phase 2 of the accessibility annotator

Bug: b:506869284
Change-Id: I30de4716e22bf238dc84c2290584ce2e4afb704b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7816798
Reviewed-by: Norge Vizcay <vizcay@google.com>
Auto-Submit: Mariam Ali <alimariam@google.com>
Reviewed-by: Nicola Tommasi <tommasin@chromium.org>
Commit-Queue: Mariam Ali <alimariam@google.com>
Cr-Commit-Position: refs/heads/main@{#1626779}
diff --git a/chrome/browser/accessibility_annotator/first_run/accessibility_annotator_first_run_service_factory.cc b/chrome/browser/accessibility_annotator/first_run/accessibility_annotator_first_run_service_factory.cc
index 19072ce64..314f895c 100644
--- a/chrome/browser/accessibility_annotator/first_run/accessibility_annotator_first_run_service_factory.cc
+++ b/chrome/browser/accessibility_annotator/first_run/accessibility_annotator_first_run_service_factory.cc
@@ -7,7 +7,6 @@
 #include <memory>
 #include <utility>
 
-#include "base/feature_list.h"
 #include "base/no_destructor.h"
 #include "chrome/browser/accessibility_annotator/accessibility_annotator_enablement_service_factory.h"
 #include "chrome/browser/accessibility_annotator/first_run/chrome_accessibility_annotator_first_run_client.h"
@@ -48,8 +47,8 @@
 std::unique_ptr<KeyedService> AccessibilityAnnotatorFirstRunServiceFactory::
     BuildServiceInstanceForBrowserContext(
         content::BrowserContext* context) const {
-  if (!base::FeatureList::IsEnabled(
-          accessibility_annotator::features::kAccessibilityAnnotatorFirstRun)) {
+  if (!accessibility_annotator::features::
+          IsAccessibilityAnnotatorFirstRunEnabled()) {
     return nullptr;
   }
   Profile* profile = Profile::FromBrowserContext(context);
diff --git a/components/accessibility_annotator/core/accessibility_annotator_features.cc b/components/accessibility_annotator/core/accessibility_annotator_features.cc
index 24ff00a..d669c16 100644
--- a/components/accessibility_annotator/core/accessibility_annotator_features.cc
+++ b/components/accessibility_annotator/core/accessibility_annotator_features.cc
@@ -93,6 +93,9 @@
 BASE_FEATURE(kAccessibilityAnnotatorFirstRun,
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+BASE_FEATURE(kAccessibilityAnnotatorFirstRunPhase2,
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 BASE_FEATURE(kAccessibilityAnnotatorGetEntities,
              base::FEATURE_DISABLED_BY_DEFAULT);
 
@@ -130,4 +133,9 @@
 BASE_FEATURE(kAccessibilityAnnotatorDatabaseStorage,
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+bool IsAccessibilityAnnotatorFirstRunEnabled() {
+  return base::FeatureList::IsEnabled(kAccessibilityAnnotatorFirstRun) ||
+         base::FeatureList::IsEnabled(kAccessibilityAnnotatorFirstRunPhase2);
+}
+
 }  // namespace accessibility_annotator::features
diff --git a/components/accessibility_annotator/core/accessibility_annotator_features.h b/components/accessibility_annotator/core/accessibility_annotator_features.h
index 1916e92..e2dc9d3 100644
--- a/components/accessibility_annotator/core/accessibility_annotator_features.h
+++ b/components/accessibility_annotator/core/accessibility_annotator_features.h
@@ -38,6 +38,8 @@
 
 BASE_DECLARE_FEATURE(kAccessibilityAnnotatorFirstRun);
 
+BASE_DECLARE_FEATURE(kAccessibilityAnnotatorFirstRunPhase2);
+
 BASE_DECLARE_FEATURE(kAccessibilityAnnotatorGetEntities);
 
 BASE_DECLARE_FEATURE(kAccessibilityAnnotatorLiveTabContext);
@@ -55,6 +57,12 @@
 
 BASE_DECLARE_FEATURE(kAccessibilityAnnotatorDatabaseStorage);
 
+// Returns true if either Phase 1 or Phase 2 of the first run experience is
+// enabled. Since Phase 2 is an extension/continuation of the first run
+// experience, checking both features ensures the whole first run feature
+// set is appropriately covered.
+bool IsAccessibilityAnnotatorFirstRunEnabled();
+
 }  // namespace accessibility_annotator::features
 
 #endif  // COMPONENTS_ACCESSIBILITY_ANNOTATOR_CORE_ACCESSIBILITY_ANNOTATOR_FEATURES_H_