IWYU stats related files

caused Chromium compile failures:
  https://chromium-review.googlesource.com/c/chromium/src/+/6289230

BUG=webrtc:42226242

Change-Id: I6a5179638e23bf94326b3f8948a167c20f66591a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/378180
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@meta.com>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43989}
diff --git a/api/stats/attribute.h b/api/stats/attribute.h
index b5dd8d5..78fae20 100644
--- a/api/stats/attribute.h
+++ b/api/stats/attribute.h
@@ -11,8 +11,8 @@
 #ifndef API_STATS_ATTRIBUTE_H_
 #define API_STATS_ATTRIBUTE_H_
 
+#include <cstdint>
 #include <map>
-#include <memory>
 #include <optional>
 #include <string>
 #include <vector>
diff --git a/api/stats/rtc_stats_report.h b/api/stats/rtc_stats_report.h
index 632226e..7dfe4e8 100644
--- a/api/stats/rtc_stats_report.h
+++ b/api/stats/rtc_stats_report.h
@@ -24,9 +24,6 @@
 #include "api/scoped_refptr.h"
 #include "api/stats/rtc_stats.h"
 #include "api/units/timestamp.h"
-// TODO(tommi): Remove this include after fixing iwyu issue in chromium.
-// See: third_party/blink/renderer/platform/peerconnection/rtc_stats.cc
-#include "rtc_base/ref_counted_object.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 332a87a..710f215 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -950,21 +950,27 @@
     "../api:candidate",
     "../api:dtls_transport_interface",
     "../api:libjingle_peerconnection_api",
+    "../api:make_ref_counted",
     "../api:media_stream_interface",
     "../api:rtc_stats_api",
     "../api:rtp_parameters",
+    "../api:rtp_transceiver_direction",
     "../api:scoped_refptr",
     "../api:sequence_checker",
     "../api/audio:audio_device",
     "../api/audio:audio_processing_statistics",
+    "../api/environment",
     "../api/task_queue:task_queue",
+    "../api/transport:enums",
     "../api/units:time_delta",
+    "../api/units:timestamp",
     "../api/video:video_rtp_headers",
     "../api/video_codecs:scalability_mode",
     "../call:call_interfaces",
     "../common_video:common_video",
     "../media:media_channel",
     "../media:media_channel_impl",
+    "../media:stream_params",
     "../modules/audio_device",
     "../modules/rtp_rtcp:rtp_rtcp_format",
     "../p2p:connection",
@@ -972,6 +978,7 @@
     "../p2p:ice_transport_internal",
     "../p2p:p2p_constants",
     "../p2p:port",
+    "../p2p:transport_description",
     "../rtc_base:checks",
     "../rtc_base:event_tracer",
     "../rtc_base:ip_address",
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index 1091462..ddffa16 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -13,12 +13,13 @@
 #include <stdint.h>
 #include <stdio.h>
 
+#include <algorithm>
 #include <cstdint>
 #include <map>
 #include <memory>
+#include <optional>
 #include <set>
 #include <string>
-#include <type_traits>
 #include <utility>
 #include <vector>
 
@@ -28,40 +29,56 @@
 #include "api/audio/audio_device.h"
 #include "api/audio/audio_processing_statistics.h"
 #include "api/candidate.h"
+#include "api/data_channel_interface.h"
 #include "api/dtls_transport_interface.h"
+#include "api/environment/environment.h"
+#include "api/make_ref_counted.h"
 #include "api/media_stream_interface.h"
 #include "api/media_types.h"
 #include "api/rtp_parameters.h"
+#include "api/rtp_transceiver_direction.h"
+#include "api/scoped_refptr.h"
 #include "api/sequence_checker.h"
 #include "api/stats/rtc_stats.h"
+#include "api/stats/rtc_stats_collector_callback.h"
+#include "api/stats/rtc_stats_report.h"
 #include "api/stats/rtcstats_objects.h"
+#include "api/transport/enums.h"
 #include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
 #include "api/video/video_content_type.h"
 #include "api/video_codecs/scalability_mode.h"
 #include "common_video/include/quality_limitation_reason.h"
 #include "media/base/media_channel.h"
-#include "media/base/media_channel_impl.h"
+#include "media/base/stream_params.h"
 #include "modules/rtp_rtcp/include/report_block_data.h"
-#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "p2p/base/connection_info.h"
 #include "p2p/base/ice_transport_internal.h"
 #include "p2p/base/p2p_constants.h"
 #include "p2p/base/port.h"
+#include "p2p/base/transport_description.h"
 #include "pc/channel_interface.h"
 #include "pc/data_channel_utils.h"
+#include "pc/peer_connection_internal.h"
 #include "pc/rtc_stats_traversal.h"
 #include "pc/rtp_receiver_proxy.h"
 #include "pc/rtp_sender_proxy.h"
+#include "pc/rtp_transceiver.h"
+#include "pc/transport_stats.h"
 #include "pc/webrtc_sdp.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/event.h"
 #include "rtc_base/ip_address.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/network_constants.h"
 #include "rtc_base/rtc_certificate.h"
 #include "rtc_base/socket_address.h"
+#include "rtc_base/ssl_certificate.h"
 #include "rtc_base/ssl_stream_adapter.h"
 #include "rtc_base/string_encode.h"
 #include "rtc_base/strings/string_builder.h"
+#include "rtc_base/synchronization/mutex.h"
+#include "rtc_base/thread.h"
 #include "rtc_base/time_utils.h"
 #include "rtc_base/trace_event.h"
 
diff --git a/stats/BUILD.gn b/stats/BUILD.gn
index 22571a5..487a630 100644
--- a/stats/BUILD.gn
+++ b/stats/BUILD.gn
@@ -24,6 +24,8 @@
 
   deps = [
     "../api:rtc_stats_api",
+    "../api:scoped_refptr",
+    "../api/units:timestamp",
     "../rtc_base:checks",
     "../rtc_base:macromagic",
     "../rtc_base:stringutils",
@@ -67,6 +69,7 @@
       "../rtc_base:rtc_json",
       "../test:test_main",
       "../test:test_support",
+      "//third_party/jsoncpp",
     ]
 
     if (is_android) {
diff --git a/stats/attribute.cc b/stats/attribute.cc
index a6dd630..974b9fc 100644
--- a/stats/attribute.cc
+++ b/stats/attribute.cc
@@ -10,7 +10,13 @@
 
 #include "api/stats/attribute.h"
 
+#include <cstdint>
+#include <cstdio>
+#include <map>
+#include <optional>
 #include <string>
+#include <type_traits>
+#include <vector>
 
 #include "absl/types/variant.h"
 #include "rtc_base/arraysize.h"
diff --git a/stats/rtc_stats.cc b/stats/rtc_stats.cc
index abf8502..9553c76 100644
--- a/stats/rtc_stats.cc
+++ b/stats/rtc_stats.cc
@@ -11,7 +11,11 @@
 #include "api/stats/rtc_stats.h"
 
 #include <cstdio>
+#include <string>
+#include <vector>
 
+#include "api/stats/attribute.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace webrtc {
diff --git a/stats/rtc_stats_report.cc b/stats/rtc_stats_report.cc
index 42d0a5b..2b05421 100644
--- a/stats/rtc_stats_report.cc
+++ b/stats/rtc_stats_report.cc
@@ -10,9 +10,13 @@
 
 #include "api/stats/rtc_stats_report.h"
 
-#include <type_traits>
+#include <memory>
+#include <string>
 #include <utility>
 
+#include "api/scoped_refptr.h"
+#include "api/stats/rtc_stats.h"
+#include "api/units/timestamp.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/strings/string_builder.h"
 
diff --git a/stats/rtcstats_objects.cc b/stats/rtcstats_objects.cc
index 4a08133..d101168 100644
--- a/stats/rtcstats_objects.cc
+++ b/stats/rtcstats_objects.cc
@@ -10,11 +10,13 @@
 
 #include "api/stats/rtcstats_objects.h"
 
+#include <memory>
+#include <string>
 #include <utility>
 
 #include "api/stats/attribute.h"
 #include "api/stats/rtc_stats.h"
-#include "rtc_base/checks.h"
+#include "api/units/timestamp.h"
 
 namespace webrtc {
 
diff --git a/stats/test/rtc_test_stats.cc b/stats/test/rtc_test_stats.cc
index 834daee..656d764 100644
--- a/stats/test/rtc_test_stats.cc
+++ b/stats/test/rtc_test_stats.cc
@@ -10,8 +10,11 @@
 
 #include "stats/test/rtc_test_stats.h"
 
+#include <string>
+
 #include "api/stats/attribute.h"
-#include "rtc_base/checks.h"
+#include "api/stats/rtc_stats.h"
+#include "api/units/timestamp.h"
 
 namespace webrtc {