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

BUG=chromium-os:17012
TEST=metrics_library_test

This is a second try at committing http://gerrit.chromium.org/gerrit/#change,3865

Change-Id: I8c874ca26dd0d07471cfc66ded527ad5c3a1cd20
Reviewed-on: http://gerrit.chromium.org/gerrit/4578
Reviewed-by: Julian Pastarmov <pastarmovj@chromium.org>
Tested-by: Julian Pastarmov <pastarmovj@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_