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 |