Reduce plugin_metrics_provider_ usage in MetricsService

This CL eliminates MetricsService's call to
PluginMetricsProvider::RecordPluginChanges (replaced by a new API on
MetricsProvider). It additionally adds a
MetricsServicesManager::OnPluginLoadingError() API and has the plugin observer
call that API rather than calling MetricsService directly. This change will
enable easily moving MetricsService::LogPluginLoadingError() to
ChromeMetricsServiceClient once the latter is the class that keeps a weak
pointer to the plugin metrics provider.

BUG=375776

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=274403

Review URL: https://codereview.chromium.org/308433004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275404 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/metrics/metrics_services_manager.h b/chrome/browser/metrics/metrics_services_manager.h
index 6e16b162..1d771772 100644
--- a/chrome/browser/metrics/metrics_services_manager.h
+++ b/chrome/browser/metrics/metrics_services_manager.h
@@ -13,6 +13,10 @@
 class MetricsService;
 class PrefService;
 
+namespace base {
+class FilePath;
+}
+
 namespace metrics {
 class MetricsStateManager;
 }
@@ -43,6 +47,9 @@
   // Returns the VariationsService, creating it if it hasn't been created yet.
   chrome_variations::VariationsService* GetVariationsService();
 
+  // Should be called when a plugin loading error occurs.
+  void OnPluginLoadingError(const base::FilePath& plugin_path);
+
  private:
   metrics::MetricsStateManager* GetMetricsStateManager();