| Index: components/scheduler/child/web_scheduler_impl.cc | 
| diff --git a/components/scheduler/child/web_scheduler_impl.cc b/components/scheduler/child/web_scheduler_impl.cc | 
| index 9d8aac9eab6d37cee7c7443cf0dfc099cbc6c973..5bf3dab324b0eb996d56442bfa0585ff1acfc1b8 100644 | 
| --- a/components/scheduler/child/web_scheduler_impl.cc | 
| +++ b/components/scheduler/child/web_scheduler_impl.cc | 
| @@ -15,11 +15,13 @@ WebSchedulerImpl::WebSchedulerImpl( | 
| ChildScheduler* child_scheduler, | 
| scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner, | 
| scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner, | 
| -    scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner) | 
| +    scoped_refptr<base::SingleThreadTaskRunner> timer_task_runner, | 
| +    scoped_refptr<base::SingleThreadTaskRunner> shutdown_task_runner) | 
| : child_scheduler_(child_scheduler), | 
| idle_task_runner_(idle_task_runner), | 
| loading_task_runner_(loading_task_runner), | 
| -      timer_task_runner_(timer_task_runner) { | 
| +      timer_task_runner_(timer_task_runner), | 
| +      shutdown_task_runner_(shutdown_task_runner) { | 
| } | 
|  | 
| WebSchedulerImpl::~WebSchedulerImpl() { | 
| @@ -104,4 +106,22 @@ void WebSchedulerImpl::postTimerTask( | 
| base::TimeDelta::FromMilliseconds(delayMs)); | 
| } | 
|  | 
| +void WebSchedulerImpl::postShutdownTask( | 
| +    const blink::WebTraceLocation& web_location, | 
| +    blink::WebThread::Task* task, | 
| +    long long delayMs) { | 
| +  DCHECK(shutdown_task_runner_); | 
| +  scoped_ptr<blink::WebThread::Task> scoped_task(task); | 
| +  tracked_objects::Location location(web_location.functionName(), | 
| +                                     web_location.fileName(), -1, nullptr); | 
| +  shutdown_task_runner_->PostDelayedTask( | 
| +      location, | 
| +      base::Bind(&WebSchedulerImpl::runTask, base::Passed(&scoped_task)), | 
| +      base::TimeDelta::FromMilliseconds(delayMs)); | 
| +} | 
| + | 
| +void WebSchedulerImpl::preShutdown() { | 
| +  child_scheduler_->PreShutdown(); | 
| +} | 
| + | 
| }  // namespace scheduler | 
|  |