Revert "Revert "Make the metrics library respect the policy settings instead of the consent file.""

This reverts commit aa91d046ac27a9bdc96e6cd9438741d98f1cef66

Change-Id: I1c84fb86d6eb56a5a8e88136c98104394be697b2
Reviewed-on: http://gerrit.chromium.org/gerrit/4614
Reviewed-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Ken Mixter <kmixter@chromium.org>
Tested-by: Ken Mixter <kmixter@chromium.org>
diff --git a/metrics/metrics_library.h b/metrics/metrics_library.h
index 3f860eb..456610f 100644
--- a/metrics/metrics_library.h
+++ b/metrics/metrics_library.h
@@ -8,8 +8,11 @@
 #include <sys/types.h>
 #include <string>
 
+#include <base/scoped_ptr.h>
 #include <gtest/gtest_prod.h>  // for FRIEND_TEST
 
+#include "policy/libpolicy.h"
+
 class MetricsLibraryInterface {
  public:
   virtual void Init() = 0;
@@ -122,6 +125,9 @@
   int32_t FormatChromeMessage(int32_t buffer_size, char* buffer,
                               const char* format, ...);
 
+  // This function is used by tests only to mock the device policies.
+  void SetPolicyProvider(policy::PolicyProvider* provider);
+
   // Time at which we last checked if metrics were enabled.
   static time_t cached_enabled_time_;
 
@@ -130,6 +136,8 @@
 
   const char* uma_events_file_;
   const char* consent_file_;
+
+  scoped_ptr<policy::PolicyProvider> policy_provider_;
 };
 
 #endif  // METRICS_LIBRARY_H_