| // Copyright (c) 2013 The Chromium Embedded Framework Authors. All rights |
| // reserved. Use of this source code is governed by a BSD-style license that can |
| // be found in the LICENSE file. |
| |
| #include "include/cef_task.h" |
| #include "libcef/common/task_runner_impl.h" |
| |
| #include "base/bind.h" |
| #include "base/location.h" |
| |
| bool CefCurrentlyOn(CefThreadId threadId) { |
| scoped_refptr<base::SequencedTaskRunner> task_runner = |
| CefTaskRunnerImpl::GetTaskRunner(threadId); |
| if (task_runner.get()) |
| return task_runner->RunsTasksInCurrentSequence(); |
| return false; |
| } |
| |
| bool CefPostTask(CefThreadId threadId, CefRefPtr<CefTask> task) { |
| scoped_refptr<base::SequencedTaskRunner> task_runner = |
| CefTaskRunnerImpl::GetTaskRunner(threadId); |
| if (task_runner.get()) { |
| return task_runner->PostTask(FROM_HERE, |
| base::Bind(&CefTask::Execute, task.get())); |
| } |
| return false; |
| } |
| |
| bool CefPostDelayedTask(CefThreadId threadId, |
| CefRefPtr<CefTask> task, |
| int64 delay_ms) { |
| scoped_refptr<base::SequencedTaskRunner> task_runner = |
| CefTaskRunnerImpl::GetTaskRunner(threadId); |
| if (task_runner.get()) { |
| return task_runner->PostDelayedTask( |
| FROM_HERE, base::Bind(&CefTask::Execute, task.get()), |
| base::TimeDelta::FromMilliseconds(delay_ms)); |
| } |
| return false; |
| } |