Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc

Issue 2753843003: Create a new action triggered when a BeginMainFrame is not expected before vsync (Closed)
Patch Set: Add BeginMainFrameNotExpectedUntil to content::CompositorImpl for Android. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/renderer_scheduler_impl.h" 5 #include "platform/scheduler/renderer/renderer_scheduler_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/stack_trace.h" 8 #include "base/debug/stack_trace.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 return; 463 return;
464 464
465 GetMainThreadOnly().begin_frame_not_expected_soon = true; 465 GetMainThreadOnly().begin_frame_not_expected_soon = true;
466 idle_helper_.EnableLongIdlePeriod(); 466 idle_helper_.EnableLongIdlePeriod();
467 { 467 {
468 base::AutoLock lock(any_thread_lock_); 468 base::AutoLock lock(any_thread_lock_);
469 GetAnyThread().begin_main_frame_on_critical_path = false; 469 GetAnyThread().begin_main_frame_on_critical_path = false;
470 } 470 }
471 } 471 }
472 472
473 void RendererSchedulerImpl::BeginMainFrameNotExpectedUntil(
474 base::TimeTicks time) {
475 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"),
476 "RendererSchedulerImpl::BeginMainFrametime");
477 helper_.CheckOnValidThread();
478 if (helper_.IsShutdown())
479 return;
480
481 base::TimeTicks now(helper_.scheduler_tqm_delegate()->NowTicks());
482
483 if (now < time) {
484 // End any previous idle period.
485 EndIdlePeriod();
486
487 // TODO(rmcilroy): Consider reducing the idle period based on the runtime of
488 // the next pending delayed tasks (as currently done in for long idle times)
489 idle_helper_.StartIdlePeriod(
490 IdleHelper::IdlePeriodState::IN_SHORT_IDLE_PERIOD, now, time);
491 }
492 }
493
473 void RendererSchedulerImpl::SetAllRenderWidgetsHidden(bool hidden) { 494 void RendererSchedulerImpl::SetAllRenderWidgetsHidden(bool hidden) {
474 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), 495 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"),
475 "RendererSchedulerImpl::SetAllRenderWidgetsHidden", "hidden", 496 "RendererSchedulerImpl::SetAllRenderWidgetsHidden", "hidden",
476 hidden); 497 hidden);
477 498
478 helper_.CheckOnValidThread(); 499 helper_.CheckOnValidThread();
479 500
480 if (helper_.IsShutdown() || GetMainThreadOnly().renderer_hidden == hidden) 501 if (helper_.IsShutdown() || GetMainThreadOnly().renderer_hidden == hidden)
481 return; 502 return;
482 503
(...skipping 1474 matching lines...) Expand 10 before | Expand all | Expand 10 after
1957 case TimeDomainType::VIRTUAL: 1978 case TimeDomainType::VIRTUAL:
1958 return "virtual"; 1979 return "virtual";
1959 default: 1980 default:
1960 NOTREACHED(); 1981 NOTREACHED();
1961 return nullptr; 1982 return nullptr;
1962 } 1983 }
1963 } 1984 }
1964 1985
1965 } // namespace scheduler 1986 } // namespace scheduler
1966 } // namespace blink 1987 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698