| Index: cc/thread_proxy.cc
|
| diff --git a/cc/thread_proxy.cc b/cc/thread_proxy.cc
|
| index d3aac84f1d7b01ea1446ccf4ae73a9898f8d0533..921b15a1f1f8191a5da930a89ec213ff1a5cbfea 100644
|
| --- a/cc/thread_proxy.cc
|
| +++ b/cc/thread_proxy.cc
|
| @@ -300,6 +300,15 @@ void ThreadProxy::didLoseOutputSurfaceOnImplThread()
|
| {
|
| DCHECK(isImplThread());
|
| TRACE_EVENT0("cc", "ThreadProxy::didLoseOutputSurfaceOnImplThread");
|
| + Proxy::implThread()->postTask(base::Bind(&ThreadProxy::checkOutputSurfaceStatusOnImplThread, m_implThreadWeakPtr));
|
| +}
|
| +
|
| +void ThreadProxy::checkOutputSurfaceStatusOnImplThread()
|
| +{
|
| + DCHECK(isImplThread());
|
| + TRACE_EVENT0("cc", "ThreadProxy::checkOutputSurfaceStatusOnImplThread");
|
| + if (!m_layerTreeHostImpl->isContextLost())
|
| + return;
|
| m_schedulerOnImplThread->didLoseOutputSurface();
|
| }
|
|
|
| @@ -842,6 +851,9 @@ ScheduledActionDrawAndSwapResult ThreadProxy::scheduledActionDrawAndSwapInternal
|
| Proxy::mainThread()->postTask(base::Bind(&ThreadProxy::didCommitAndDrawFrame, m_mainThreadWeakPtr));
|
| }
|
|
|
| + if (drawFrame)
|
| + checkOutputSurfaceStatusOnImplThread();
|
| +
|
| return result;
|
| }
|
|
|
|
|