[sync] Introduce PreviouslySyncingGaiaIdInfoForMetrics

The enum is computed by SyncServiceImpl when a new configuration is
triggered, based on the information available about the current user ID
and the last gaia ID known to have enabled sync.

The enum gets passed to datatype controllers but not actually consumed
for now. In follow-up patches, histograms will be introduced leveraging
this notion.

Change-Id: Idec0bd3deed5ec06b3d193d9b1bc6a27d2411a2a
Bug: 407729650
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6439644
Commit-Queue: Mikel Astiz <[email protected]>
Reviewed-by: Marc Treib <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1446970}
diff --git a/components/sync/service/configure_context.h b/components/sync/service/configure_context.h
index 018d3d6..08588f4 100644
--- a/components/sync/service/configure_context.h
+++ b/components/sync/service/configure_context.h
@@ -8,6 +8,7 @@
 #include <string>
 
 #include "base/time/time.h"
+#include "components/sync/base/previously_syncing_gaia_id_info_for_metrics.h"
 #include "components/sync/base/sync_mode.h"
 #include "components/sync/engine/configure_reason.h"
 #include "google_apis/gaia/core_account_id.h"
@@ -21,11 +22,17 @@
 // controllers, which propagate analogous information to the processor/bridge
 // via DataTypeActivationRequest.
 struct ConfigureContext {
+  ConfigureContext();
+  ConfigureContext(const ConfigureContext&);
+  ~ConfigureContext();
+
   CoreAccountId authenticated_account_id;
   std::string cache_guid;
   SyncMode sync_mode = SyncMode::kFull;
   ConfigureReason reason = CONFIGURE_REASON_UNKNOWN;
   base::Time configuration_start_time;
+  PreviouslySyncingGaiaIdInfoForMetrics previously_syncing_gaia_id_info =
+      PreviouslySyncingGaiaIdInfoForMetrics::kUnspecified;
 };
 
 }  // namespace syncer