// Copyright (c) 2014 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/wrapper/cef_closure_task.h" #include "include/base/cef_callback.h" namespace { class CefClosureTask : public CefTask { public: explicit CefClosureTask(const base::Closure& closure) : closure_(closure) { } // CefTask method virtual void Execute() OVERRIDE { closure_.Run(); closure_.Reset(); } private: base::Closure closure_; IMPLEMENT_REFCOUNTING(CefClosureTask); DISALLOW_COPY_AND_ASSIGN(CefClosureTask); }; } // namespace CefRefPtr CefCreateClosureTask(const base::Closure& closure) { return new CefClosureTask(closure); } bool CefPostTask(CefThreadId threadId, const base::Closure& closure) { return CefPostTask(threadId, new CefClosureTask(closure)); } bool CefPostDelayedTask(CefThreadId threadId, const base::Closure& closure, int64 delay_ms) { return CefPostDelayedTask(threadId, new CefClosureTask(closure), delay_ms); }