Index: content/renderer/gpu/frame_swap_message_queue.cc |
diff --git a/content/renderer/gpu/frame_swap_message_queue.cc b/content/renderer/gpu/frame_swap_message_queue.cc |
index bf91dd84e0f89bdb19c8cb50922547114c474da6..5a313829cb14bdff612db09b06ed67116c6d0fec 100644 |
--- a/content/renderer/gpu/frame_swap_message_queue.cc |
+++ b/content/renderer/gpu/frame_swap_message_queue.cc |
@@ -161,10 +161,14 @@ void FrameSwapMessageQueue::DidNotSwap(int source_frame_number, |
case cc::SwapPromise::SWAP_FAILS: |
case cc::SwapPromise::COMMIT_NO_UPDATE: |
swap_queue_->DrainMessages(source_frame_number, messages); |
- // fallthrough |
- case cc::SwapPromise::COMMIT_FAILS: |
visual_state_queue_->DrainMessages(source_frame_number, messages); |
break; |
+ case cc::SwapPromise::COMMIT_FAILS: |
+ // Do not queue any responses here. |
+ // If COMMIT_FAILS the renderer is shutting down, which will |
+ // result in the RenderFrameHostImpl destructor firing the |
+ // remaining response callbacks itself. |
+ break; |
default: |
NOTREACHED(); |
} |