diff --git a/third_party/WebKit/Source/core/layout/line/RootInlineBox.cpp b/third_party/WebKit/Source/core/layout/line/RootInlineBox.cpp
index f50274036..03d7409 100644
--- a/third_party/WebKit/Source/core/layout/line/RootInlineBox.cpp
+++ b/third_party/WebKit/Source/core/layout/line/RootInlineBox.cpp
@@ -617,10 +617,12 @@
            ->LineHeight()
            .IsNegative() &&
        include_leading)) {
-    used_fonts->push_back(box->GetLineLayoutItem()
-                              .Style(IsFirstLineStyle())
-                              ->GetFont()
-                              .PrimaryFont());
+    const SimpleFontData* primary_font = box->GetLineLayoutItem()
+                                             .Style(IsFirstLineStyle())
+                                             ->GetFont()
+                                             .PrimaryFont();
+    if (primary_font)
+      used_fonts->push_back(primary_font);
     for (size_t i = 0; i < used_fonts->size(); ++i) {
       const FontMetrics& font_metrics = used_fonts->at(i)->GetFontMetrics();
       LayoutUnit used_font_ascent(font_metrics.Ascent(BaselineType()));
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.cpp
index e36a0f5..e6588e7 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.cpp
@@ -26,32 +26,6 @@
 // Field trial default parameters.
 constexpr size_t kOutstandingLimitForBackgroundFrameDefault = 16u;
 
-// Maximum request count that request count metrics assume.
-constexpr base::HistogramBase::Sample kMaximumReportSize10K = 10000;
-
-// Maximum traffic bytes that traffic metrics assume.
-constexpr base::HistogramBase::Sample kMaximumReportSize1G =
-    1 * 1000 * 1000 * 1000;
-
-// Bucket count for metrics.
-constexpr int32_t kReportBucketCount = 25;
-
-// Represents a resource load circumstance, e.g. from main frame vs sub-frames,
-// or on throttled state vs on not-throttled state.
-// Used to report histograms. Do not reorder or insert new items.
-enum class ReportCircumstance {
-  kMainframeThrottled,
-  kMainframeNotThrottled,
-  kSubframeThrottled,
-  kSubframeNotThrottled,
-  // Append new items here.
-  kNumOfCircumstances,
-};
-
-base::HistogramBase::Sample ToSample(ReportCircumstance circumstance) {
-  return static_cast<base::HistogramBase::Sample>(circumstance);
-}
-
 uint32_t GetFieldTrialUint32Param(const char* name, uint32_t default_param) {
   std::map<std::string, std::string> trial_params;
   bool result =
@@ -88,241 +62,12 @@
 
 }  // namespace
 
-// A class to gather throttling and traffic information to report histograms.
-class ResourceLoadScheduler::TrafficMonitor {
- public:
-  explicit TrafficMonitor(bool is_main_frame);
-  ~TrafficMonitor();
-
-  // Notified when the ThrottlingState is changed.
-  void OnThrottlingStateChanged(WebFrameScheduler::ThrottlingState);
-
-  // Reports resource request completion.
-  void Report(const ResourceLoadScheduler::TrafficReportHints&);
-
-  // Reports per-frame reports.
-  void ReportAll();
-
- private:
-  const bool is_main_frame_;
-
-  WebFrameScheduler::ThrottlingState current_state_ =
-      WebFrameScheduler::ThrottlingState::kStopped;
-
-  size_t total_throttled_request_count_ = 0;
-  size_t total_throttled_traffic_bytes_ = 0;
-  size_t total_throttled_decoded_bytes_ = 0;
-  size_t total_not_throttled_request_count_ = 0;
-  size_t total_not_throttled_traffic_bytes_ = 0;
-  size_t total_not_throttled_decoded_bytes_ = 0;
-  size_t throttling_state_change_count_ = 0;
-  bool report_all_is_called_ = false;
-};
-
-ResourceLoadScheduler::TrafficMonitor::TrafficMonitor(bool is_main_frame)
-    : is_main_frame_(is_main_frame) {}
-
-ResourceLoadScheduler::TrafficMonitor::~TrafficMonitor() {
-  ReportAll();
-}
-
-void ResourceLoadScheduler::TrafficMonitor::OnThrottlingStateChanged(
-    WebFrameScheduler::ThrottlingState state) {
-  current_state_ = state;
-  throttling_state_change_count_++;
-}
-
-void ResourceLoadScheduler::TrafficMonitor::Report(
-    const ResourceLoadScheduler::TrafficReportHints& hints) {
-  if (!hints.IsValid())
-    return;
-
-  DEFINE_STATIC_LOCAL(EnumerationHistogram, request_count_by_circumstance,
-                      ("Blink.ResourceLoadScheduler.RequestCount",
-                       ToSample(ReportCircumstance::kNumOfCircumstances)));
-
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_throttled_traffic_bytes,
-      ("Blink.ResourceLoadScheduler.TrafficBytes.MainframeThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_not_throttled_traffic_bytes,
-      ("Blink.ResourceLoadScheduler.TrafficBytes.MainframeNotThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_throttled_traffic_bytes,
-      ("Blink.ResourceLoadScheduler.TrafficBytes.SubframeThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_not_throttled_traffic_bytes,
-      ("Blink.ResourceLoadScheduler.TrafficBytes.SubframeNotThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_throttled_decoded_bytes,
-      ("Blink.ResourceLoadScheduler.DecodedBytes.MainframeThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_not_throttled_decoded_bytes,
-      ("Blink.ResourceLoadScheduler.DecodedBytes.MainframeNotThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_throttled_decoded_bytes,
-      ("Blink.ResourceLoadScheduler.DecodedBytes.SubframeThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_not_throttled_decoded_bytes,
-      ("Blink.ResourceLoadScheduler.DecodedBytes.SubframeNotThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-
-  switch (current_state_) {
-    case WebFrameScheduler::ThrottlingState::kThrottled:
-      if (is_main_frame_) {
-        request_count_by_circumstance.Count(
-            ToSample(ReportCircumstance::kMainframeThrottled));
-        main_frame_throttled_traffic_bytes.Count(hints.encoded_data_length());
-        main_frame_throttled_decoded_bytes.Count(hints.decoded_body_length());
-      } else {
-        request_count_by_circumstance.Count(
-            ToSample(ReportCircumstance::kSubframeThrottled));
-        sub_frame_throttled_traffic_bytes.Count(hints.encoded_data_length());
-        sub_frame_throttled_decoded_bytes.Count(hints.decoded_body_length());
-      }
-      total_throttled_request_count_++;
-      total_throttled_traffic_bytes_ += hints.encoded_data_length();
-      total_throttled_decoded_bytes_ += hints.decoded_body_length();
-      break;
-    case WebFrameScheduler::ThrottlingState::kNotThrottled:
-      if (is_main_frame_) {
-        request_count_by_circumstance.Count(
-            ToSample(ReportCircumstance::kMainframeNotThrottled));
-        main_frame_not_throttled_traffic_bytes.Count(
-            hints.encoded_data_length());
-        main_frame_not_throttled_decoded_bytes.Count(
-            hints.decoded_body_length());
-      } else {
-        request_count_by_circumstance.Count(
-            ToSample(ReportCircumstance::kSubframeNotThrottled));
-        sub_frame_not_throttled_traffic_bytes.Count(
-            hints.encoded_data_length());
-        sub_frame_not_throttled_decoded_bytes.Count(
-            hints.decoded_body_length());
-      }
-      total_not_throttled_request_count_++;
-      total_not_throttled_traffic_bytes_ += hints.encoded_data_length();
-      total_not_throttled_decoded_bytes_ += hints.decoded_body_length();
-      break;
-    case WebFrameScheduler::ThrottlingState::kStopped:
-      break;
-  }
-}
-
-void ResourceLoadScheduler::TrafficMonitor::ReportAll() {
-  if (report_all_is_called_)
-    return;
-  report_all_is_called_ = true;
-
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_total_throttled_request_count,
-      ("Blink.ResourceLoadScheduler.TotalRequestCount.MainframeThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_total_not_throttled_request_count,
-      ("Blink.ResourceLoadScheduler.TotalRequestCount.MainframeNotThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_total_throttled_request_count,
-      ("Blink.ResourceLoadScheduler.TotalRequestCount.SubframeThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_total_not_throttled_request_count,
-      ("Blink.ResourceLoadScheduler.TotalRequestCount.SubframeNotThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
-
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_total_throttled_traffic_bytes,
-      ("Blink.ResourceLoadScheduler.TotalTrafficBytes.MainframeThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_total_not_throttled_traffic_bytes,
-      ("Blink.ResourceLoadScheduler.TotalTrafficBytes.MainframeNotThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_total_throttled_traffic_bytes,
-      ("Blink.ResourceLoadScheduler.TotalTrafficBytes.SubframeThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_total_not_throttled_traffic_bytes,
-      ("Blink.ResourceLoadScheduler.TotalTrafficBytes.SubframeNotThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_total_throttled_decoded_bytes,
-      ("Blink.ResourceLoadScheduler.TotalDecodedBytes.MainframeThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, main_frame_total_not_throttled_decoded_bytes,
-      ("Blink.ResourceLoadScheduler.TotalDecodedBytes.MainframeNotThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_total_throttled_decoded_bytes,
-      ("Blink.ResourceLoadScheduler.TotalDecodedBytes.SubframeThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, sub_frame_total_not_throttled_decoded_bytes,
-      ("Blink.ResourceLoadScheduler.TotalDecodedBytes.SubframeNotThrottled", 0,
-       kMaximumReportSize1G, kReportBucketCount));
-
-  DEFINE_STATIC_LOCAL(CustomCountHistogram, throttling_state_change_count,
-                      ("Blink.ResourceLoadScheduler.ThrottlingStateChangeCount",
-                       0, 100, kReportBucketCount));
-
-  if (is_main_frame_) {
-    main_frame_total_throttled_request_count.Count(
-        total_throttled_request_count_);
-    main_frame_total_not_throttled_request_count.Count(
-        total_not_throttled_request_count_);
-    main_frame_total_throttled_traffic_bytes.Count(
-        total_throttled_traffic_bytes_);
-    main_frame_total_not_throttled_traffic_bytes.Count(
-        total_not_throttled_traffic_bytes_);
-    main_frame_total_throttled_decoded_bytes.Count(
-        total_throttled_decoded_bytes_);
-    main_frame_total_not_throttled_decoded_bytes.Count(
-        total_not_throttled_decoded_bytes_);
-  } else {
-    sub_frame_total_throttled_request_count.Count(
-        total_throttled_request_count_);
-    sub_frame_total_not_throttled_request_count.Count(
-        total_not_throttled_request_count_);
-    sub_frame_total_throttled_traffic_bytes.Count(
-        total_throttled_traffic_bytes_);
-    sub_frame_total_not_throttled_traffic_bytes.Count(
-        total_not_throttled_traffic_bytes_);
-    sub_frame_total_throttled_decoded_bytes.Count(
-        total_throttled_decoded_bytes_);
-    sub_frame_total_not_throttled_decoded_bytes.Count(
-        total_not_throttled_decoded_bytes_);
-  }
-
-  throttling_state_change_count.Count(throttling_state_change_count_);
-}
-
-ResourceLoadScheduler::TrafficReportHints&
-ResourceLoadScheduler::TrafficReportHints::InvalidInstance() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(TrafficReportHints, instance, ());
-  return instance;
-}
-
 constexpr ResourceLoadScheduler::ClientId
     ResourceLoadScheduler::kInvalidClientId;
 
 ResourceLoadScheduler::ResourceLoadScheduler(FetchContext* context)
     : outstanding_throttled_limit_(GetOutstandingThrottledLimit(context)),
       context_(context) {
-  traffic_monitor_ = std::make_unique<ResourceLoadScheduler::TrafficMonitor>(
-      context_->IsMainFrame());
-
   if (!RuntimeEnabledFeatures::ResourceLoadSchedulerEnabled())
     return;
 
@@ -335,8 +80,6 @@
                                    this);
 }
 
-ResourceLoadScheduler::~ResourceLoadScheduler() = default;
-
 void ResourceLoadScheduler::Trace(blink::Visitor* visitor) {
   visitor->Trace(pending_request_map_);
   visitor->Trace(context_);
@@ -348,9 +91,6 @@
     return;
   is_shutdown_ = true;
 
-  if (traffic_monitor_)
-    traffic_monitor_.reset();
-
   if (!is_enabled_)
     return;
   auto* scheduler = context_->GetFrameScheduler();
@@ -417,18 +157,13 @@
 
 bool ResourceLoadScheduler::Release(
     ResourceLoadScheduler::ClientId id,
-    ResourceLoadScheduler::ReleaseOption option,
-    const ResourceLoadScheduler::TrafficReportHints& hints) {
+    ResourceLoadScheduler::ReleaseOption option) {
   // Check kInvalidClientId that can not be passed to the HashSet.
   if (id == kInvalidClientId)
     return false;
 
   if (running_requests_.find(id) != running_requests_.end()) {
     running_requests_.erase(id);
-
-    if (traffic_monitor_)
-      traffic_monitor_->Report(hints);
-
     if (option == ReleaseOption::kReleaseAndSchedule)
       MaybeRun();
     return true;
@@ -453,37 +188,33 @@
 
 void ResourceLoadScheduler::OnNetworkQuiet() {
   DCHECK(IsMainThread());
-
-  // Flush out all traffic reports here for safety.
-  traffic_monitor_->ReportAll();
-
   if (maximum_running_requests_seen_ == 0)
     return;
 
   DEFINE_STATIC_LOCAL(
       CustomCountHistogram, main_frame_throttled,
-      ("Blink.ResourceLoadScheduler.PeakRequests.MainframeThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
+      ("Blink.ResourceLoadScheduler.PeakRequests.MainframeThrottled", 0, 10000,
+       25));
   DEFINE_STATIC_LOCAL(
       CustomCountHistogram, main_frame_not_throttled,
       ("Blink.ResourceLoadScheduler.PeakRequests.MainframeNotThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
+       10000, 25));
   DEFINE_STATIC_LOCAL(
       CustomCountHistogram, main_frame_partially_throttled,
       ("Blink.ResourceLoadScheduler.PeakRequests.MainframePartiallyThrottled",
-       0, kMaximumReportSize10K, kReportBucketCount));
+       0, 10000, 25));
   DEFINE_STATIC_LOCAL(
       CustomCountHistogram, sub_frame_throttled,
-      ("Blink.ResourceLoadScheduler.PeakRequests.SubframeThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
+      ("Blink.ResourceLoadScheduler.PeakRequests.SubframeThrottled", 0, 10000,
+       25));
   DEFINE_STATIC_LOCAL(
       CustomCountHistogram, sub_frame_not_throttled,
       ("Blink.ResourceLoadScheduler.PeakRequests.SubframeNotThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
+       10000, 25));
   DEFINE_STATIC_LOCAL(
       CustomCountHistogram, sub_frame_partially_throttled,
       ("Blink.ResourceLoadScheduler.PeakRequests.SubframePartiallyThrottled", 0,
-       kMaximumReportSize10K, kReportBucketCount));
+       10000, 25));
 
   switch (throttling_history_) {
     case ThrottlingHistory::kInitial:
@@ -530,11 +261,7 @@
 
 void ResourceLoadScheduler::OnThrottlingStateChanged(
     WebFrameScheduler::ThrottlingState state) {
-  if (traffic_monitor_)
-    traffic_monitor_->OnThrottlingStateChanged(state);
-
   frame_scheduler_throttling_state_ = state;
-
   switch (state) {
     case WebFrameScheduler::ThrottlingState::kThrottled:
       if (throttling_history_ == ThrottlingHistory::kInitial)
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.h b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.h
index 657e058b..6bddb0e 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.h
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.h
@@ -51,40 +51,6 @@
   // be scheduled within the call.
   enum class ReleaseOption { kReleaseOnly, kReleaseAndSchedule };
 
-  // A class to pass traffic report hints on calling Release().
-  class TrafficReportHints {
-   public:
-    // |encoded_data_length| is payload size in bytes sent over the network.
-    // |decoded_body_length| is received resource data size in bytes.
-    TrafficReportHints(int64_t encoded_data_length, int64_t decoded_body_length)
-        : valid_(true),
-          encoded_data_length_(encoded_data_length),
-          decoded_body_length_(decoded_body_length) {}
-
-    // Takes a shared instance to represent an invalid instance that will be
-    // used when a caller don't want to report traffic, i.e. on a failure.
-    static TrafficReportHints& InvalidInstance();
-
-    bool IsValid() const { return valid_; }
-
-    int64_t encoded_data_length() const {
-      DCHECK(valid_);
-      return encoded_data_length_;
-    }
-    int64_t decoded_body_length() const {
-      DCHECK(valid_);
-      return decoded_body_length_;
-    }
-
-   private:
-    // Default constructor makes an invalid instance that won't be recorded.
-    TrafficReportHints() = default;
-
-    bool valid_ = false;
-    int64_t encoded_data_length_ = 0;
-    int64_t decoded_body_length_ = 0;
-  };
-
   // Returned on Request(). Caller should need to return it via Release().
   using ClientId = uint64_t;
 
@@ -97,7 +63,7 @@
     return new ResourceLoadScheduler(context ? context
                                              : &FetchContext::NullInstance());
   }
-  ~ResourceLoadScheduler();
+  ~ResourceLoadScheduler() {}
   void Trace(blink::Visitor*);
 
   // Stops all operations including observing throttling signals.
@@ -122,9 +88,7 @@
   // ResourceLoadSchedulerClient should call this method when the loading is
   // finished, or canceled. This method can be called in a pre-finalization
   // step, bug the ReleaseOption must be kReleaseOnly in such a case.
-  // TrafficReportHints is for reporting histograms.
-  // TrafficReportHints::InvalidInstance() can be used to omit reporting.
-  bool Release(ClientId, ReleaseOption, const TrafficReportHints&);
+  bool Release(ClientId, ReleaseOption);
 
   // Sets outstanding limit for testing.
   void SetOutstandingLimitForTesting(size_t limit);
@@ -139,8 +103,6 @@
   void OnThrottlingStateChanged(WebFrameScheduler::ThrottlingState) override;
 
  private:
-  class TrafficMonitor;
-
   class ClientIdWithPriority {
    public:
     struct Compare {
@@ -234,9 +196,6 @@
   std::set<ClientIdWithPriority, ClientIdWithPriority::Compare>
       pending_requests_;
 
-  // Holds an internal class instance to monitor and report traffic.
-  std::unique_ptr<TrafficMonitor> traffic_monitor_;
-
   // Holds FetchContext reference to contact WebFrameScheduler.
   Member<FetchContext> context_;
 };
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp
index c6c14daf..0ec38a05 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp
@@ -106,27 +106,22 @@
 
   // Call Release() with different options just in case.
   EXPECT_TRUE(scheduler()->Release(
-      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id2, ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id2, ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule));
 
   // Should not succeed to call with the same ID twice.
   EXPECT_FALSE(scheduler()->Release(
-      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
 
   // Should not succeed to call with the invalid ID or unused ID.
-  EXPECT_FALSE(scheduler()->Release(
-      ResourceLoadScheduler::kInvalidClientId,
-      ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+  EXPECT_FALSE(
+      scheduler()->Release(ResourceLoadScheduler::kInvalidClientId,
+                           ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
 
-  EXPECT_FALSE(scheduler()->Release(
-      static_cast<ResourceLoadScheduler::ClientId>(774),
-      ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+  EXPECT_FALSE(
+      scheduler()->Release(static_cast<ResourceLoadScheduler::ClientId>(774),
+                           ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
 }
 
 TEST_F(ResourceLoadSchedulerTest, Throttled) {
@@ -167,23 +162,20 @@
 
   // Call Release() to run the second request.
   EXPECT_TRUE(scheduler()->Release(
-      id1, ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id1, ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule));
   EXPECT_TRUE(client2->WasRan());
 
   // Call Release() with kReleaseOnly should not run the third and the fourth
   // requests.
   EXPECT_TRUE(scheduler()->Release(
-      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_FALSE(client3->WasRan());
   EXPECT_FALSE(client4->WasRan());
 
   // Should be able to call Release() for a client that hasn't run yet. This
   // should run another scheduling to run the fourth request.
   EXPECT_TRUE(scheduler()->Release(
-      id3, ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id3, ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule));
   EXPECT_TRUE(client4->WasRan());
 }
 
@@ -220,14 +212,11 @@
 
   // Release all.
   EXPECT_TRUE(scheduler()->Release(
-      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
 }
 
 TEST_F(ResourceLoadSchedulerTest, Stopped) {
@@ -264,18 +253,15 @@
 
   // Calling Release() still does not run the second request.
   EXPECT_TRUE(scheduler()->Release(
-      id1, ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id1, ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule));
   EXPECT_FALSE(client2->WasRan());
   EXPECT_FALSE(client3->WasRan());
 
   // Release all.
   EXPECT_TRUE(scheduler()->Release(
-      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
 }
 
 TEST_F(ResourceLoadSchedulerTest, PriotrityIsNotConsidered) {
@@ -322,14 +308,11 @@
 
   // Release all.
   EXPECT_TRUE(scheduler()->Release(
-      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
 }
 
 TEST_F(RendererSideResourceSchedulerTest, PriotrityIsConsidered) {
@@ -386,17 +369,13 @@
 
   // Release all.
   EXPECT_TRUE(scheduler()->Release(
-      id4, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id4, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
 }
 
 TEST_F(RendererSideResourceSchedulerTest, IsThrottablePriority) {
@@ -460,14 +439,11 @@
 
   // Release all.
   EXPECT_TRUE(scheduler()->Release(
-      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id3, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id2, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
   EXPECT_TRUE(scheduler()->Release(
-      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-      ResourceLoadScheduler::TrafficReportHints::InvalidInstance()));
+      id1, ResourceLoadScheduler::ReleaseOption::kReleaseOnly));
 }
 
 }  // namespace
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp
index b7403728..636d65d 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp
@@ -150,11 +150,9 @@
     loader_->LoadAsynchronously(WrappedResourceRequest(request), this);
 }
 
-void ResourceLoader::Release(
-    ResourceLoadScheduler::ReleaseOption option,
-    const ResourceLoadScheduler::TrafficReportHints& hints) {
+void ResourceLoader::Release(ResourceLoadScheduler::ReleaseOption option) {
   DCHECK_NE(ResourceLoadScheduler::kInvalidClientId, scheduler_client_id_);
-  bool released = scheduler_->Release(scheduler_client_id_, option, hints);
+  bool released = scheduler_->Release(scheduler_client_id_, option);
   DCHECK(released);
   scheduler_client_id_ = ResourceLoadScheduler::kInvalidClientId;
 }
@@ -628,9 +626,7 @@
   resource_->SetEncodedBodyLength(encoded_body_length);
   resource_->SetDecodedBodyLength(decoded_body_length);
 
-  Release(ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule,
-          ResourceLoadScheduler::TrafficReportHints(encoded_data_length,
-                                                    decoded_body_length));
+  Release(ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule);
   loader_.reset();
 
   network_instrumentation::EndResourceLoad(
@@ -660,8 +656,7 @@
     return;
   }
 
-  Release(ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule,
-          ResourceLoadScheduler::TrafficReportHints::InvalidInstance());
+  Release(ResourceLoadScheduler::ReleaseOption::kReleaseAndSchedule);
   loader_.reset();
 
   network_instrumentation::EndResourceLoad(
@@ -724,10 +719,8 @@
   // DidFinishLoading() or DidFail(), but when a timer to call Cancel() is
   // ignored due to GC, this case happens. We just release here because we can
   // not schedule another request safely. See crbug.com/675947.
-  if (scheduler_client_id_ != ResourceLoadScheduler::kInvalidClientId) {
-    Release(ResourceLoadScheduler::ReleaseOption::kReleaseOnly,
-            ResourceLoadScheduler::TrafficReportHints::InvalidInstance());
-  }
+  if (scheduler_client_id_ != ResourceLoadScheduler::kInvalidClientId)
+    Release(ResourceLoadScheduler::ReleaseOption::kReleaseOnly);
 }
 
 void ResourceLoader::ActivateCacheAwareLoadingIfNeeded(
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.h b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.h
index 2d6c5c38..eda6cc6 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.h
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.h
@@ -139,8 +139,7 @@
 
   void StartWith(const ResourceRequest&);
 
-  void Release(ResourceLoadScheduler::ReleaseOption,
-               const ResourceLoadScheduler::TrafficReportHints&);
+  void Release(ResourceLoadScheduler::ReleaseOption);
 
   // This method is currently only used for service worker fallback request and
   // cache-aware loading, other users should be careful not to break
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 465dc12..ffb68cd 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -36146,13 +36146,6 @@
   <int value="5" label="HasContentEncoding"/>
 </enum>
 
-<enum name="ResourceLoadSchedulerCircumstance">
-  <int value="0" label="Main frame, throttled"/>
-  <int value="1" label="Main frame, not throttled"/>
-  <int value="2" label="Sub frame, throttled"/>
-  <int value="3" label="Sub frame, not throttled"/>
-</enum>
-
 <enum name="ResourcePrefetchPredictorMainFrameRequestStats">
   <int value="0" label="MAIN_FRAME_REQUEST_STATS_TOTAL_REQUESTS"/>
   <int value="1" label="MAIN_FRAME_REQUEST_STATS_PROCESSED_REQUESTS"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index b11ce6e..aac34fb 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -6852,14 +6852,6 @@
   </summary>
 </histogram>
 
-<histogram base="true" name="Blink.ResourceLoadScheduler.DecodedBytes"
-    units="bytes">
-<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->
-
-  <owner>toyoshim@chromium.org</owner>
-  <summary>Count received data size in bytes for each resource.</summary>
-</histogram>
-
 <histogram base="true" name="Blink.ResourceLoadScheduler.PeakRequests"
     units="requests">
 <!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->
@@ -6871,60 +6863,6 @@
   </summary>
 </histogram>
 
-<histogram name="Blink.ResourceLoadScheduler.RequestCounts"
-    enum="ResourceLoadSchedulerCircumstance">
-  <owner>toyoshim@chromium.org</owner>
-  <summary>
-    Count resource request circumstance, e.g. from the main frame vs sub-frames,
-    or in throttled state vs in not-throttled state, on each resource load
-    completion.
-  </summary>
-</histogram>
-
-<histogram base="true" name="Blink.ResourceLoadScheduler.TotalDecodedBytes"
-    units="bytes">
-<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->
-
-  <owner>toyoshim@chromium.org</owner>
-  <summary>
-    Total received data size in bytes to load resources from the frame creation
-    until network activity quiets.
-  </summary>
-</histogram>
-
-<histogram base="true" name="Blink.ResourceLoadScheduler.TotalRequestCount"
-    units="requests">
-<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->
-
-  <owner>toyoshim@chromium.org</owner>
-  <summary>
-    Total number of resource requests completed from the frame creation until
-    network activity quiets.
-  </summary>
-</histogram>
-
-<histogram base="true" name="Blink.ResourceLoadScheduler.TotalTrafficBytes"
-    units="bytes">
-<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->
-
-  <owner>toyoshim@chromium.org</owner>
-  <summary>
-    Total traffic data in bytes transferred over networks to load resources from
-    the frame creation until network activity quiets.
-  </summary>
-</histogram>
-
-<histogram base="true" name="Blink.ResourceLoadScheduler.TrafficBytes"
-    units="bytes">
-<!-- Name completed by histogram_suffixes name="ResourceLoadScheduler.FrameType" -->
-
-  <owner>toyoshim@chromium.org</owner>
-  <summary>
-    Count traffic data size in bytes transferred over networks to load each
-    resource.
-  </summary>
-</histogram>
-
 <histogram name="Blink.RestoredCachedStyleSheet"
     enum="RestoredCachedStyleSheet">
   <obsolete>
@@ -107555,12 +107493,7 @@
   <suffix name="SubframeNotThrottled" label="Sub frame, not throttled"/>
   <suffix name="SubframePartiallyThrottled"
       label="Sub frame, partially throttled"/>
-  <affected-histogram name="Blink.ResourceLoadScheduler.DecodedBytes"/>
   <affected-histogram name="Blink.ResourceLoadScheduler.PeakRequests"/>
-  <affected-histogram name="Blink.ResourceLoadScheduler.TotalDecodedBytes"/>
-  <affected-histogram name="Blink.ResourceLoadScheduler.TotalRequestCount"/>
-  <affected-histogram name="Blink.ResourceLoadScheduler.TotalTrafficBytes"/>
-  <affected-histogram name="Blink.ResourceLoadScheduler.TrafficBytes"/>
 </histogram_suffixes>
 
 <histogram_suffixes name="ResourcePrefetchPredictorNetworkTypePrefetch"