Chromium Embedded Framework (CEF)  117.1.0+ga287baf+chromium-117.0.5938.62
cef_closure_task.h File Reference

Helpers for asynchronously executing a base::[Once|Repeating]Closure (bound function or method) on a CEF thread. More...

Functions

CefRefPtr< CefTaskCefCreateClosureTask (base::OnceClosure closure)
 Create a CefTask that wraps a base::[Once|Repeating]Closure. More...
 
CefRefPtr< CefTaskCefCreateClosureTask (const base::RepeatingClosure &closure)
 
bool CefPostTask (CefThreadId threadId, base::OnceClosure closure)
 Post a base::[Once|Repeating]Closure for execution on the specified thread. More...
 
bool CefPostTask (CefThreadId threadId, const base::RepeatingClosure &closure)
 
bool CefPostDelayedTask (CefThreadId threadId, base::OnceClosure closure, int64_t delay_ms)
 Post a base::[Once|Repeating]Closure for delayed execution on the specified thread. More...
 
bool CefPostDelayedTask (CefThreadId threadId, const base::RepeatingClosure &closure, int64_t delay_ms)
 

Detailed Description

Helpers for asynchronously executing a base::[Once|Repeating]Closure (bound function or method) on a CEF thread.

Creation of a base::[Once|Repeating]Closure can be facilitated using base::Bind[Once|Repeating]. See include/base/cef_callback.h for complete usage instructions.

To use these helpers you should include this header and the header that defines base::Bind[Once|Repeating].

  #include "include/base/cef_callback.h"
  #include "include/wrapper/cef_closure_task.h"

Example of executing a bound function:

  // Define a function.
  void MyFunc(int arg) { /* do something with |arg| on the UI thread *‍/ }

  // Post a task that will execute MyFunc on the UI thread and pass an |arg|
  // value of 5.
  CefPostTask(TID_UI, base::BindOnce(&MyFunc, 5));

Example of executing a bound method:

  // Define a class.
  class MyClass : public CefBaseRefCounted {
   public:
    MyClass() {}
    void MyMethod(int arg) { /* do something with |arg| on the UI thread *‍/
    }
   private:
    IMPLEMENT_REFCOUNTING(MyClass);
  };

  // Create an instance of MyClass.
  CefRefPtr<MyClass> instance = new MyClass();

  // Post a task that will execute MyClass::MyMethod on the UI thread and
  // pass an |arg| value of 5. |instance| will be kept alive until after the
  // task completes.
  CefPostTask(TID_UI, base::BindOnce(&MyClass::MyMethod, instance, 5));

Function Documentation

◆ CefCreateClosureTask() [1/2]

CefRefPtr<CefTask> CefCreateClosureTask ( base::OnceClosure  closure)

Create a CefTask that wraps a base::[Once|Repeating]Closure.

Can be used in combination with CefTaskRunner.

◆ CefCreateClosureTask() [2/2]

CefRefPtr<CefTask> CefCreateClosureTask ( const base::RepeatingClosure closure)

◆ CefPostDelayedTask() [1/2]

bool CefPostDelayedTask ( CefThreadId  threadId,
base::OnceClosure  closure,
int64_t  delay_ms 
)

Post a base::[Once|Repeating]Closure for delayed execution on the specified thread.

◆ CefPostDelayedTask() [2/2]

bool CefPostDelayedTask ( CefThreadId  threadId,
const base::RepeatingClosure closure,
int64_t  delay_ms 
)

◆ CefPostTask() [1/2]

bool CefPostTask ( CefThreadId  threadId,
base::OnceClosure  closure 
)

Post a base::[Once|Repeating]Closure for execution on the specified thread.

◆ CefPostTask() [2/2]

bool CefPostTask ( CefThreadId  threadId,
const base::RepeatingClosure closure 
)