| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/scheduler/renderer/web_view_scheduler_impl.h" | 5 #include "platform/scheduler/renderer/web_view_scheduler_impl.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "platform/RuntimeEnabledFeatures.h" | 9 #include "platform/RuntimeEnabledFeatures.h" |
| 10 #include "platform/WebFrameScheduler.h" | 10 #include "platform/WebFrameScheduler.h" |
| 11 #include "platform/scheduler/base/trace_helper.h" |
| 11 #include "platform/scheduler/base/virtual_time_domain.h" | 12 #include "platform/scheduler/base/virtual_time_domain.h" |
| 12 #include "platform/scheduler/child/scheduler_tqm_delegate.h" | 13 #include "platform/scheduler/child/scheduler_tqm_delegate.h" |
| 13 #include "platform/scheduler/renderer/auto_advancing_virtual_time_domain.h" | 14 #include "platform/scheduler/renderer/auto_advancing_virtual_time_domain.h" |
| 14 #include "platform/scheduler/renderer/budget_pool.h" | 15 #include "platform/scheduler/renderer/budget_pool.h" |
| 15 #include "platform/scheduler/renderer/renderer_scheduler_impl.h" | 16 #include "platform/scheduler/renderer/renderer_scheduler_impl.h" |
| 16 #include "platform/scheduler/renderer/web_frame_scheduler_impl.h" | 17 #include "platform/scheduler/renderer/web_frame_scheduler_impl.h" |
| 17 | 18 |
| 18 namespace blink { | 19 namespace blink { |
| 19 namespace scheduler { | 20 namespace scheduler { |
| 20 | 21 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 WebViewSchedulerImpl::WebViewSchedulerSettings* settings) { | 78 WebViewSchedulerImpl::WebViewSchedulerSettings* settings) { |
| 78 if (!settings) | 79 if (!settings) |
| 79 return kDefaultInitialBackgroundBudget; | 80 return kDefaultInitialBackgroundBudget; |
| 80 double initial_budget = | 81 double initial_budget = |
| 81 settings->ExpensiveBackgroundThrottlingInitialBudget(); | 82 settings->ExpensiveBackgroundThrottlingInitialBudget(); |
| 82 if (initial_budget == -1.0) | 83 if (initial_budget == -1.0) |
| 83 return kDefaultMaxBackgroundBudgetLevel; | 84 return kDefaultMaxBackgroundBudgetLevel; |
| 84 return base::TimeDelta::FromSecondsD(initial_budget); | 85 return base::TimeDelta::FromSecondsD(initial_budget); |
| 85 } | 86 } |
| 86 | 87 |
| 87 std::string PointerToId(void* pointer) { | |
| 88 return base::StringPrintf( | |
| 89 "0x%" PRIx64, | |
| 90 static_cast<uint64_t>(reinterpret_cast<uintptr_t>(pointer))); | |
| 91 } | |
| 92 | |
| 93 } // namespace | 88 } // namespace |
| 94 | 89 |
| 95 WebViewSchedulerImpl::WebViewSchedulerImpl( | 90 WebViewSchedulerImpl::WebViewSchedulerImpl( |
| 96 WebScheduler::InterventionReporter* intervention_reporter, | 91 WebScheduler::InterventionReporter* intervention_reporter, |
| 97 WebViewScheduler::WebViewSchedulerSettings* settings, | 92 WebViewScheduler::WebViewSchedulerSettings* settings, |
| 98 RendererSchedulerImpl* renderer_scheduler, | 93 RendererSchedulerImpl* renderer_scheduler, |
| 99 bool disable_background_timer_throttling) | 94 bool disable_background_timer_throttling) |
| 100 : intervention_reporter_(intervention_reporter), | 95 : intervention_reporter_(intervention_reporter), |
| 101 renderer_scheduler_(renderer_scheduler), | 96 renderer_scheduler_(renderer_scheduler), |
| 102 virtual_time_policy_(VirtualTimePolicy::ADVANCE), | 97 virtual_time_policy_(VirtualTimePolicy::ADVANCE), |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 state->SetBoolean("allow_virtual_time_to_advance", | 317 state->SetBoolean("allow_virtual_time_to_advance", |
| 323 allow_virtual_time_to_advance_); | 318 allow_virtual_time_to_advance_); |
| 324 state->SetBoolean("have_seen_loading_task", have_seen_loading_task_); | 319 state->SetBoolean("have_seen_loading_task", have_seen_loading_task_); |
| 325 state->SetBoolean("virtual_time", virtual_time_); | 320 state->SetBoolean("virtual_time", virtual_time_); |
| 326 state->SetBoolean("is_audio_playing", is_audio_playing_); | 321 state->SetBoolean("is_audio_playing", is_audio_playing_); |
| 327 state->SetBoolean("reported_background_throttling_since_navigation", | 322 state->SetBoolean("reported_background_throttling_since_navigation", |
| 328 reported_background_throttling_since_navigation_); | 323 reported_background_throttling_since_navigation_); |
| 329 | 324 |
| 330 state->BeginDictionary("frame_schedulers"); | 325 state->BeginDictionary("frame_schedulers"); |
| 331 for (WebFrameSchedulerImpl* frame_scheduler : frame_schedulers_) { | 326 for (WebFrameSchedulerImpl* frame_scheduler : frame_schedulers_) { |
| 332 state->BeginDictionaryWithCopiedName(PointerToId(frame_scheduler)); | 327 state->BeginDictionaryWithCopiedName( |
| 328 trace_helper::PointerToString(frame_scheduler)); |
| 333 frame_scheduler->AsValueInto(state); | 329 frame_scheduler->AsValueInto(state); |
| 334 state->EndDictionary(); | 330 state->EndDictionary(); |
| 335 } | 331 } |
| 336 state->EndDictionary(); | 332 state->EndDictionary(); |
| 337 } | 333 } |
| 338 | 334 |
| 339 CPUTimeBudgetPool* WebViewSchedulerImpl::BackgroundCPUTimeBudgetPool() { | 335 CPUTimeBudgetPool* WebViewSchedulerImpl::BackgroundCPUTimeBudgetPool() { |
| 340 MaybeInitializeBackgroundCPUTimeBudgetPool(); | 336 MaybeInitializeBackgroundCPUTimeBudgetPool(); |
| 341 return background_time_budget_pool_; | 337 return background_time_budget_pool_; |
| 342 } | 338 } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 case VirtualTimePolicy::DETERMINISTIC_LOADING: | 436 case VirtualTimePolicy::DETERMINISTIC_LOADING: |
| 441 return "DETERMINISTIC_LOADING"; | 437 return "DETERMINISTIC_LOADING"; |
| 442 default: | 438 default: |
| 443 NOTREACHED(); | 439 NOTREACHED(); |
| 444 return nullptr; | 440 return nullptr; |
| 445 } | 441 } |
| 446 } | 442 } |
| 447 | 443 |
| 448 } // namespace scheduler | 444 } // namespace scheduler |
| 449 } // namespace blink | 445 } // namespace blink |
| OLD | NEW |