void InProcessWorkerObjectProxy::didCloseWorkerGlobalScope() { getParentFrameTaskRunners() ->get(TaskType::Internal) ->postTask( BLINK_FROM_HERE, crossThreadBind(&InProcessWorkerMessagingProxy::terminateGlobalScope, m_messagingProxyWeakPtr)); }
void InProcessWorkerObjectProxy::confirmMessageFromWorkerObject() { getParentFrameTaskRunners() ->get(TaskType::Internal) ->postTask( BLINK_FROM_HERE, crossThreadBind( &InProcessWorkerMessagingProxy::confirmMessageFromWorkerObject, m_messagingProxyWeakPtr)); }
void InProcessWorkerObjectProxy::didTerminateWorkerThread() { // This will terminate the MessagingProxy. getParentFrameTaskRunners() ->get(TaskType::Internal) ->postTask(BLINK_FROM_HERE, crossThreadBind( &InProcessWorkerMessagingProxy::workerThreadTerminated, m_messagingProxyWeakPtr)); }
void InProcessWorkerObjectProxy::postMessageToWorkerObject( PassRefPtr<SerializedScriptValue> message, std::unique_ptr<MessagePortChannelArray> channels) { getParentFrameTaskRunners() ->get(TaskType::PostedMessage) ->postTask(BLINK_FROM_HERE, crossThreadBind( &InProcessWorkerMessagingProxy::postMessageToWorkerObject, m_messagingProxyWeakPtr, std::move(message), passed(std::move(channels)))); }
void ServiceWorkerGlobalScopeProxy::postMessageToPageInspector( const String& message) { DCHECK(m_embeddedWorker); // The TaskType of Inspector tasks need to be Unthrottled because they need to // run even on a suspended page. getParentFrameTaskRunners() ->get(TaskType::Unthrottled) ->postTask( BLINK_FROM_HERE, crossThreadBind(&WebEmbeddedWorkerImpl::postMessageToPageInspector, crossThreadUnretained(m_embeddedWorker), message)); }
void InProcessWorkerObjectProxy::reportException( const String& errorMessage, std::unique_ptr<SourceLocation> location, int exceptionId) { getParentFrameTaskRunners() ->get(TaskType::Internal) ->postTask( BLINK_FROM_HERE, crossThreadBind(&InProcessWorkerMessagingProxy::dispatchErrorEvent, m_messagingProxyWeakPtr, errorMessage, passed(location->clone()), exceptionId)); }
void InProcessWorkerObjectProxy::reportConsoleMessage( MessageSource source, MessageLevel level, const String& message, SourceLocation* location) { getParentFrameTaskRunners() ->get(TaskType::Internal) ->postTask( BLINK_FROM_HERE, crossThreadBind(&InProcessWorkerMessagingProxy::reportConsoleMessage, m_messagingProxyWeakPtr, source, level, message, passed(location->clone()))); }
void InProcessWorkerObjectProxy::checkPendingActivity(TimerBase*) { bool hasPendingActivity = V8GCController::hasPendingActivity( m_workerGlobalScope->thread()->isolate(), m_workerGlobalScope); if (!hasPendingActivity) { // Report all activities are done. getParentFrameTaskRunners() ->get(TaskType::Internal) ->postTask(BLINK_FROM_HERE, crossThreadBind( &InProcessWorkerMessagingProxy::pendingActivityFinished, m_messagingProxyWeakPtr)); // Don't schedule a timer. It will be started again when a message event // is dispatched. m_nextIntervalInSec = m_defaultIntervalInSec; return; } // There is still a pending activity. Check it later. startPendingActivityTimer(); }