An interface to thread manager. A vast majority of browser work
is performed in background thread. So, the engine actually is
unable to return anything back to the browser area directly. In
addition, general area functionality doesn't have anything allowing it
to manage threads.
This interface gives access to some implementation-dependent class
which is able to run some code in the main thread of
application. There are two types of the code which could be requested
to run: synchronous and asynchronous. The first type implies that
there is no need to wait until provided code is executed. The second
one means that the corresponding method may not return until the
requested code is fully executed. This allows to get the method return
value back to the caller.