Index: content/renderer/gpu/frame_swap_message_queue_unittest.cc |
diff --git a/content/renderer/gpu/frame_swap_message_queue_unittest.cc b/content/renderer/gpu/frame_swap_message_queue_unittest.cc |
index 8488b559b55c4a849ee2d8d3dc4b837a36d6e5c3..54e4f7de4a6a1c3fd21cb34fbc73ee6d5b533b6b 100644 |
--- a/content/renderer/gpu/frame_swap_message_queue_unittest.cc |
+++ b/content/renderer/gpu/frame_swap_message_queue_unittest.cc |
@@ -288,4 +288,21 @@ TEST_F(FrameSwapMessageQueueTest, TestDeletesQueuedVisualStateMessage) { |
ASSERT_TRUE(message_deleted); |
} |
+TEST_F(FrameSwapMessageQueueTest, TestDrainsMessageOnActivationThanDidNotSwap) { |
+ const int frame = 6; |
+ std::unique_ptr<IPC::Message> msg = CloneMessage(first_message_); |
+ IPC::Message* msgSent = msg.get(); |
+ QueueVisualStateMessage(frame, std::move(msg)); |
+ queue_->DidActivate(frame); |
+ EXPECT_TRUE(!queue_->Empty()); |
+ |
+ std::vector<std::unique_ptr<IPC::Message>> messages; |
+ queue_->DidNotSwap(frame, cc::SwapPromise::SWAP_FAILS, &messages); |
+ CHECK_EQ(1UL, messages.size()); |
+ EXPECT_EQ(messages[0].get(), msgSent); |
+ msgSent = nullptr; |
+ |
+ queue_ = nullptr; |
+} |
+ |
} // namespace content |