Index: cc/trees/thread_proxy.cc |
diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc |
index 15a15216e532f947691364dadd0baebf9e092421..5aa35337664b8d96a0291d7e212f479ee83f0a65 100644 |
--- a/cc/trees/thread_proxy.cc |
+++ b/cc/trees/thread_proxy.cc |
@@ -1110,17 +1110,9 @@ DrawSwapReadbackResult ThreadProxy::DrawSwapReadbackInternal( |
bool readback_requested) { |
TRACE_EVENT_SYNTHETIC_DELAY("cc.DrawAndSwap"); |
DrawSwapReadbackResult result; |
- result.did_draw = false; |
- result.did_swap = false; |
- result.did_readback = false; |
+ |
DCHECK(IsImplThread()); |
DCHECK(impl().layer_tree_host_impl.get()); |
- if (!impl().layer_tree_host_impl) |
- return result; |
- |
- DCHECK(impl().layer_tree_host_impl->renderer()); |
- if (!impl().layer_tree_host_impl->renderer()) |
- return result; |
base::TimeTicks start_time = base::TimeTicks::HighResNow(); |
base::TimeDelta draw_duration_estimate = DrawDurationEstimate(); |
@@ -1161,15 +1153,18 @@ DrawSwapReadbackResult ThreadProxy::DrawSwapReadbackInternal( |
if (drawing_for_readback) |
readback_rect = impl().readback_request->rect; |
- if (impl().layer_tree_host_impl->PrepareToDraw(&frame, readback_rect) || |
- forced_draw) |
- draw_frame = true; |
+ result.draw_result = |
+ impl().layer_tree_host_impl->PrepareToDraw(&frame, readback_rect); |
+ draw_frame = forced_draw || |
+ result.draw_result == DrawSwapReadbackResult::DRAW_SUCCESS; |
} |
if (draw_frame) { |
impl().layer_tree_host_impl->DrawLayers( |
&frame, impl().scheduler->LastBeginImplFrameTime()); |
- result.did_draw = true; |
+ result.draw_result = DrawSwapReadbackResult::DRAW_SUCCESS; |
+ } else { |
+ DCHECK_NE(DrawSwapReadbackResult::DRAW_SUCCESS, result.draw_result); |
} |
impl().layer_tree_host_impl->DidDrawAllLayers(frame); |