Provide user demographics to UMA from browser.

Summary of changes:
 * Piped demographic metrics provider with chrome browser (iOS + others).
 * Expose user demographics from DemographicMetricsProvider.

[email protected]

Bug: 979371
Change-Id: Ib0d1eff9b767cf121fe768a9a46a3ff1fb57dd27
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1687019
Commit-Queue: Vincent Boisselle <[email protected]>
Reviewed-by: Roger McFarlane <[email protected]>
Reviewed-by: Eugene But <[email protected]>
Reviewed-by: Alexei Svitkine <[email protected]>
Cr-Commit-Position: refs/heads/master@{#680540}
diff --git a/ios/chrome/browser/metrics/BUILD.gn b/ios/chrome/browser/metrics/BUILD.gn
index 2e5c6aef..53e50b4 100644
--- a/ios/chrome/browser/metrics/BUILD.gn
+++ b/ios/chrome/browser/metrics/BUILD.gn
@@ -28,6 +28,22 @@
   ]
 }
 
+source_set("chrome_browser_state_client") {
+  configs += [ "//build/config/compiler:enable_arc" ]
+  sources = [
+    "chrome_browser_state_client.h",
+    "chrome_browser_state_client.mm",
+  ]
+  deps = [
+    "//base",
+    "//components/metrics:demographic_metrics_provider",
+    "//components/network_time",
+    "//ios/chrome/browser",
+    "//ios/chrome/browser/browser_state",
+    "//ios/chrome/browser/sync",
+  ]
+}
+
 source_set("metrics") {
   configs += [ "//build/config/compiler:enable_arc" ]
   sources = [
@@ -57,6 +73,7 @@
     ":ukm_url_recorder",
   ]
   deps = [
+    ":chrome_browser_state_client",
     ":features",
     "//base",
     "//components/browser_sync",
@@ -64,6 +81,7 @@
     "//components/keyed_service/core",
     "//components/keyed_service/ios",
     "//components/metrics",
+    "//components/metrics:demographic_metrics_provider",
     "//components/metrics:net",
     "//components/metrics:ui",
     "//components/metrics_services_manager",
@@ -103,6 +121,7 @@
   configs += [ "//build/config/compiler:enable_arc" ]
   testonly = true
   sources = [
+    "chrome_browser_state_client_unittest.mm",
     "ios_chrome_metrics_service_accessor_unittest.cc",
     "ios_chrome_stability_metrics_provider_unittest.mm",
     "mobile_session_shutdown_metrics_provider_unittest.mm",
@@ -110,18 +129,23 @@
     "ukm_url_recorder_unittest.mm",
   ]
   deps = [
+    ":chrome_browser_state_client",
     ":metrics",
     "//base",
     "//base/test:test_support",
     "//components/metrics",
     "//components/metrics:test_support",
+    "//components/network_time:network_time",
     "//components/prefs",
     "//components/prefs:test_support",
     "//components/ukm:test_support",
     "//components/version_info",
+    "//ios/chrome/browser",
+    "//ios/chrome/browser/browser_state:test_support",
     "//ios/chrome/browser/web:test_support",
     "//ios/chrome/test:test_support",
     "//ios/web/public:public",
+    "//ios/web/public/test",
     "//ios/web/public/test/fakes",
     "//net:test_support",
     "//testing/gtest",