| 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 48c4c1b2228d3de8dd51845e05841d517f37a517..7827a2c3cfa2f805484dc14dae07781fe58c8007 100644
|
| --- a/components/scheduler/renderer/renderer_scheduler_impl.cc
|
| +++ b/components/scheduler/renderer/renderer_scheduler_impl.cc
|
| @@ -38,6 +38,7 @@ RendererSchedulerImpl::RendererSchedulerImpl(
|
| helper_.ControlTaskRunner()),
|
| current_policy_(Policy::NORMAL),
|
| renderer_hidden_(false),
|
| + was_shutdown_(false),
|
| last_input_type_(blink::WebInputEvent::Undefined),
|
| input_stream_state_(InputStreamState::INACTIVE),
|
| policy_may_need_update_(&incoming_signals_lock_),
|
| @@ -61,10 +62,15 @@ RendererSchedulerImpl::~RendererSchedulerImpl() {
|
| TRACE_EVENT_OBJECT_DELETED_WITH_ID(
|
| TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "RendererScheduler",
|
| this);
|
| + // Ensure the renderer scheduler was shut down explicitly, because otherwise
|
| + // we could end up having stale pointers to the Blink heap which has been
|
| + // terminated by this point.
|
| + DCHECK(was_shutdown_);
|
| }
|
|
|
| void RendererSchedulerImpl::Shutdown() {
|
| helper_.Shutdown();
|
| + was_shutdown_ = true;
|
| }
|
|
|
| scoped_refptr<base::SingleThreadTaskRunner>
|
|
|