Add a default implementation in metrics_default.cc of histograms methods in system_wrappers/interface/metrics.h.

Updated tests to use the default implementation and removed the test implementation (webrtc/test/histograms.h).

BUG=

Review-Url: https://codereview.webrtc.org/1915523002
Cr-Commit-Position: refs/heads/master@{#12829}
diff --git a/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc b/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
index 667f6b0..2711de0 100644
--- a/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
+++ b/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
@@ -19,7 +19,7 @@
 #include "webrtc/modules/video_coding/utility/mock/mock_frame_dropper.h"
 #include "webrtc/system_wrappers/include/clock.h"
 #include "webrtc/system_wrappers/include/metrics.h"
-#include "webrtc/test/histogram.h"
+#include "webrtc/system_wrappers/include/metrics_default.h"
 
 using ::testing::_;
 using ::testing::NiceMock;
@@ -474,6 +474,7 @@
 }
 
 TEST_F(ScreenshareLayerTest, UpdatesHistograms) {
+  metrics::Reset();
   ConfigureBitrates();
   vpx_codec_enc_cfg_t cfg = GetConfig();
   bool trigger_drop = false;
@@ -519,42 +520,35 @@
 
   layers_.reset();  // Histograms are reported on destruction.
 
-  EXPECT_EQ(1, test::NumHistogramSamples(
-                   "WebRTC.Video.Screenshare.Layer0.FrameRate"));
-  EXPECT_EQ(1, test::NumHistogramSamples(
-                   "WebRTC.Video.Screenshare.Layer1.FrameRate"));
+  EXPECT_EQ(1,
+            metrics::NumSamples("WebRTC.Video.Screenshare.Layer0.FrameRate"));
+  EXPECT_EQ(1,
+            metrics::NumSamples("WebRTC.Video.Screenshare.Layer1.FrameRate"));
+  EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.Screenshare.FramesPerDrop"));
+  EXPECT_EQ(1,
+            metrics::NumSamples("WebRTC.Video.Screenshare.FramesPerOvershoot"));
+  EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.Screenshare.Layer0.Qp"));
+  EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.Screenshare.Layer1.Qp"));
   EXPECT_EQ(
-      1, test::NumHistogramSamples("WebRTC.Video.Screenshare.FramesPerDrop"));
-  EXPECT_EQ(1, test::NumHistogramSamples(
-                   "WebRTC.Video.Screenshare.FramesPerOvershoot"));
-  EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.Screenshare.Layer0.Qp"));
-  EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.Screenshare.Layer1.Qp"));
-  EXPECT_EQ(1, test::NumHistogramSamples(
-                   "WebRTC.Video.Screenshare.Layer0.TargetBitrate"));
-  EXPECT_EQ(1, test::NumHistogramSamples(
-                   "WebRTC.Video.Screenshare.Layer1.TargetBitrate"));
+      1, metrics::NumSamples("WebRTC.Video.Screenshare.Layer0.TargetBitrate"));
+  EXPECT_EQ(
+      1, metrics::NumSamples("WebRTC.Video.Screenshare.Layer1.TargetBitrate"));
 
-  EXPECT_GT(
-      test::LastHistogramSample("WebRTC.Video.Screenshare.Layer0.FrameRate"),
-      1);
-  EXPECT_GT(
-      test::LastHistogramSample("WebRTC.Video.Screenshare.Layer1.FrameRate"),
-      1);
-  EXPECT_GT(test::LastHistogramSample("WebRTC.Video.Screenshare.FramesPerDrop"),
+  EXPECT_GT(metrics::MinSample("WebRTC.Video.Screenshare.Layer0.FrameRate"), 1);
+  EXPECT_GT(metrics::MinSample("WebRTC.Video.Screenshare.Layer1.FrameRate"), 1);
+  EXPECT_GT(metrics::MinSample("WebRTC.Video.Screenshare.FramesPerDrop"), 1);
+  EXPECT_GT(metrics::MinSample("WebRTC.Video.Screenshare.FramesPerOvershoot"),
             1);
-  EXPECT_GT(
-      test::LastHistogramSample("WebRTC.Video.Screenshare.FramesPerOvershoot"),
-      1);
-  EXPECT_EQ(kTl0Qp,
-            test::LastHistogramSample("WebRTC.Video.Screenshare.Layer0.Qp"));
-  EXPECT_EQ(kTl1Qp,
-            test::LastHistogramSample("WebRTC.Video.Screenshare.Layer1.Qp"));
-  EXPECT_EQ(kDefaultTl0BitrateKbps,
-            test::LastHistogramSample(
-                "WebRTC.Video.Screenshare.Layer0.TargetBitrate"));
-  EXPECT_EQ(kDefaultTl1BitrateKbps,
-            test::LastHistogramSample(
-                "WebRTC.Video.Screenshare.Layer1.TargetBitrate"));
+  EXPECT_EQ(1,
+            metrics::NumEvents("WebRTC.Video.Screenshare.Layer0.Qp", kTl0Qp));
+  EXPECT_EQ(1,
+            metrics::NumEvents("WebRTC.Video.Screenshare.Layer1.Qp", kTl1Qp));
+  EXPECT_EQ(1,
+            metrics::NumEvents("WebRTC.Video.Screenshare.Layer0.TargetBitrate",
+                               kDefaultTl0BitrateKbps));
+  EXPECT_EQ(1,
+            metrics::NumEvents("WebRTC.Video.Screenshare.Layer1.TargetBitrate",
+                               kDefaultTl1BitrateKbps));
 }
 
 }  // namespace webrtc
diff --git a/webrtc/modules/video_coding/jitter_buffer_unittest.cc b/webrtc/modules/video_coding/jitter_buffer_unittest.cc
index af9c20a..9bdce7a 100644
--- a/webrtc/modules/video_coding/jitter_buffer_unittest.cc
+++ b/webrtc/modules/video_coding/jitter_buffer_unittest.cc
@@ -24,8 +24,8 @@
 #include "webrtc/system_wrappers/include/clock.h"
 #include "webrtc/system_wrappers/include/field_trial.h"
 #include "webrtc/system_wrappers/include/metrics.h"
+#include "webrtc/system_wrappers/include/metrics_default.h"
 #include "webrtc/test/field_trial.h"
-#include "webrtc/test/histogram.h"
 
 namespace webrtc {
 
@@ -498,7 +498,7 @@
 }
 
 TEST_P(TestBasicJitterBuffer, VerifyHistogramStats) {
-  test::ClearHistograms();
+  metrics::Reset();
   // Always start with a complete key frame when not allowing errors.
   jitter_buffer_->SetDecodeErrorMode(kNoErrors);
   packet_->frameType = kVideoFrameKey;
@@ -518,25 +518,21 @@
   // Verify that histograms are updated when the jitter buffer is stopped.
   clock_->AdvanceTimeMilliseconds(metrics::kMinRunTimeInSeconds * 1000);
   jitter_buffer_->Stop();
+  EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.DiscardedPacketsInPercent", 0));
+  EXPECT_EQ(1,
+            metrics::NumEvents("WebRTC.Video.DuplicatedPacketsInPercent", 0));
   EXPECT_EQ(
-      0, test::LastHistogramSample("WebRTC.Video.DiscardedPacketsInPercent"));
+      1, metrics::NumSamples("WebRTC.Video.CompleteFramesReceivedPerSecond"));
   EXPECT_EQ(
-      0, test::LastHistogramSample("WebRTC.Video.DuplicatedPacketsInPercent"));
-  EXPECT_NE(-1, test::LastHistogramSample(
-                    "WebRTC.Video.CompleteFramesReceivedPerSecond"));
-  EXPECT_EQ(1000, test::LastHistogramSample(
-                      "WebRTC.Video.KeyFramesReceivedInPermille"));
+      1, metrics::NumEvents("WebRTC.Video.KeyFramesReceivedInPermille", 1000));
 
   // Verify that histograms are not updated if stop is called again.
   jitter_buffer_->Stop();
+  EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.DiscardedPacketsInPercent"));
+  EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.DuplicatedPacketsInPercent"));
   EXPECT_EQ(
-      1, test::NumHistogramSamples("WebRTC.Video.DiscardedPacketsInPercent"));
-  EXPECT_EQ(
-      1, test::NumHistogramSamples("WebRTC.Video.DuplicatedPacketsInPercent"));
-  EXPECT_EQ(1, test::NumHistogramSamples(
-                   "WebRTC.Video.CompleteFramesReceivedPerSecond"));
-  EXPECT_EQ(
-      1, test::NumHistogramSamples("WebRTC.Video.KeyFramesReceivedInPermille"));
+      1, metrics::NumSamples("WebRTC.Video.CompleteFramesReceivedPerSecond"));
+  EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.KeyFramesReceivedInPermille"));
 }
 
 TEST_P(TestBasicJitterBuffer, DualPacketFrame) {