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"