[omnibox] Add feature-slicing to omnibox logs.

Adds a OmniboxTriggeredFeatureService, accessible through
AutocompleteProviderClient, that registers features as they're triggered
which are copied to the metrics logs once an omnibox session ends.

Change-Id: I311fc20b185dd58b1acc6174321e47a38f794c67
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2437743
Commit-Queue: manuk hovanesian <[email protected]>
Reviewed-by: Moe Ahmadi <[email protected]>
Reviewed-by: David Roger <[email protected]>
Reviewed-by: Mark Pearson <[email protected]>
Cr-Commit-Position: refs/heads/master@{#823683}
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
index 85b4082..fcb6fae 100644
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
@@ -62,6 +62,8 @@
   component_updater::ComponentUpdateService* GetComponentUpdateService()
       override;
   query_tiles::TileService* GetQueryTileService() const override;
+  OmniboxTriggeredFeatureService* GetOmniboxTriggeredFeatureService()
+      const override;
 
   bool IsOffTheRecord() const override;
   bool SearchSuggestEnabled() const override;
@@ -118,6 +120,9 @@
   // Injectable storage partitiion, used for testing.
   content::StoragePartition* storage_partition_;
 
+  std::unique_ptr<OmniboxTriggeredFeatureService>
+      omnibox_triggered_feature_service_;
+
   DISALLOW_COPY_AND_ASSIGN(ChromeAutocompleteProviderClient);
 };