| Index: components/scheduler/renderer/renderer_scheduler_impl.cc
|
| diff --git a/components/scheduler/renderer/renderer_scheduler_impl.cc b/components/scheduler/renderer/renderer_scheduler_impl.cc
|
| index 3ae7991381cf6b59f152c4dbce6d4b3b2a3a95e5..1fdc4dc41e21fd51dfd43fd6875cf8291632fc32 100644
|
| --- a/components/scheduler/renderer/renderer_scheduler_impl.cc
|
| +++ b/components/scheduler/renderer/renderer_scheduler_impl.cc
|
| @@ -1128,18 +1128,23 @@ void RendererSchedulerImpl::OnIdlePeriodEnded() {
|
| UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED);
|
| }
|
|
|
| -void RendererSchedulerImpl::AddPendingNavigation() {
|
| +void RendererSchedulerImpl::AddPendingNavigation(bool main_frame_navigating) {
|
| helper_.CheckOnValidThread();
|
| - MainThreadOnly().navigation_task_expected_count++;
|
| - UpdatePolicy();
|
| + if (main_frame_navigating) {
|
| + MainThreadOnly().navigation_task_expected_count++;
|
| + UpdatePolicy();
|
| + }
|
| }
|
|
|
| -void RendererSchedulerImpl::RemovePendingNavigation() {
|
| +void RendererSchedulerImpl::RemovePendingNavigation(
|
| + bool main_frame_navigating) {
|
| helper_.CheckOnValidThread();
|
| DCHECK_GT(MainThreadOnly().navigation_task_expected_count, 0);
|
| - if (MainThreadOnly().navigation_task_expected_count > 0)
|
| + if (main_frame_navigating &&
|
| + MainThreadOnly().navigation_task_expected_count > 0) {
|
| MainThreadOnly().navigation_task_expected_count--;
|
| - UpdatePolicy();
|
| + UpdatePolicy();
|
| + }
|
| }
|
|
|
| void RendererSchedulerImpl::OnNavigationStarted() {
|
|
|