Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Unified Diff: content/renderer/gpu/frame_swap_message_queue_unittest.cc

Issue 1126963006: Move VISUAL_STATE promise to activation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: amend comments Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/gpu/frame_swap_message_queue.cc ('k') | content/renderer/gpu/queue_message_swap_promise.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 dc802c0e33c7748c278b6caf80d5969b2c3273e8..80405988717b26f278e2ec4a17a018602bcf16b6 100644
--- a/content/renderer/gpu/frame_swap_message_queue_unittest.cc
+++ b/content/renderer/gpu/frame_swap_message_queue_unittest.cc
@@ -47,6 +47,7 @@ class FrameSwapMessageQueueTest : public testing::Test {
void DrainMessages(int source_frame_number,
ScopedVector<IPC::Message>* messages) {
messages->clear();
+ queue_->DidActivate(source_frame_number);
queue_->DidSwap(source_frame_number);
scoped_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope =
queue_->AcquireSendMessageScope();
@@ -92,6 +93,7 @@ TEST_F(FrameSwapMessageQueueTest, TestEmpty) {
ASSERT_TRUE(queue_->Empty());
QueueVisualStateMessage(1, CloneMessage(first_message_));
ASSERT_FALSE(queue_->Empty());
+ queue_->DidActivate(1);
queue_->DidSwap(1);
ASSERT_FALSE(queue_->Empty());
}
@@ -208,17 +210,31 @@ void FrameSwapMessageQueueTest::TestDidNotSwap(
QueueNextSwapMessage(CloneMessage(first_message_));
QueueVisualStateMessage(2, CloneMessage(second_message_));
QueueVisualStateMessage(3, CloneMessage(third_message_));
+ const int rid[] = {first_message_.routing_id(),
+ second_message_.routing_id(),
+ third_message_.routing_id()};
- queue_->DidNotSwap(2, cc::SwapPromise::COMMIT_NO_UPDATE, &messages);
- ASSERT_EQ(2u, messages.size());
- ASSERT_TRUE(HasMessageForId(messages, first_message_.routing_id()));
- ASSERT_TRUE(HasMessageForId(messages, second_message_.routing_id()));
+ bool msg_delivered = reason != cc::SwapPromise::COMMIT_FAILS &&
+ reason != cc::SwapPromise::ACTIVATION_FAILS;
+
+ queue_->DidNotSwap(2, reason, &messages);
+ ASSERT_TRUE(msg_delivered == HasMessageForId(messages, rid[0]));
+ ASSERT_TRUE(msg_delivered == HasMessageForId(messages, rid[1]));
+ ASSERT_FALSE(HasMessageForId(messages, rid[2]));
messages.clear();
- queue_->DidNotSwap(3, cc::SwapPromise::COMMIT_NO_UPDATE, &messages);
- ASSERT_EQ(1u, messages.size());
- ASSERT_TRUE(HasMessageForId(messages, third_message_.routing_id()));
+ queue_->DidNotSwap(3, reason, &messages);
+ ASSERT_FALSE(HasMessageForId(messages, rid[0]));
+ ASSERT_FALSE(HasMessageForId(messages, rid[1]));
+ ASSERT_TRUE(msg_delivered == HasMessageForId(messages, rid[2]));
messages.clear();
+
+ // all undelivered messages should still be available for RenderFrameHostImpl
+ // to deliver.
+ DrainMessages(3, &messages);
+ ASSERT_TRUE(msg_delivered != HasMessageForId(messages, rid[0]));
+ ASSERT_TRUE(msg_delivered != HasMessageForId(messages, rid[1]));
+ ASSERT_TRUE(msg_delivered != HasMessageForId(messages, rid[2]));
}
TEST_F(FrameSwapMessageQueueTest, TestDidNotSwapNoUpdate) {
@@ -230,23 +246,11 @@ TEST_F(FrameSwapMessageQueueTest, TestDidNotSwapSwapFails) {
}
TEST_F(FrameSwapMessageQueueTest, TestDidNotSwapCommitFails) {
- ScopedVector<IPC::Message> messages;
-
- QueueNextSwapMessage(CloneMessage(first_message_));
- QueueVisualStateMessage(2, CloneMessage(second_message_));
- QueueVisualStateMessage(3, CloneMessage(third_message_));
-
- queue_->DidNotSwap(2, cc::SwapPromise::COMMIT_FAILS, &messages);
- ASSERT_EQ(0u, messages.size());
- messages.clear();
-
- queue_->DidNotSwap(3, cc::SwapPromise::COMMIT_FAILS, &messages);
- ASSERT_EQ(0u, messages.size());
- messages.clear();
+ TestDidNotSwap(cc::SwapPromise::COMMIT_FAILS);
+}
- DrainMessages(1, &messages);
- ASSERT_EQ(1u, messages.size());
- ASSERT_TRUE(HasMessageForId(messages, first_message_.routing_id()));
+TEST_F(FrameSwapMessageQueueTest, TestDidNotSwapActivationFails) {
+ TestDidNotSwap(cc::SwapPromise::ACTIVATION_FAILS);
}
class NotifiesDeletionMessage : public IPC::Message {
@@ -281,6 +285,7 @@ TEST_F(FrameSwapMessageQueueTest, TestDeletesQueuedVisualStateMessage) {
QueueVisualStateMessage(1,
make_scoped_ptr(new NotifiesDeletionMessage(
&message_deleted, first_message_)));
+ queue_->DidActivate(1);
queue_->DidSwap(1);
queue_ = NULL;
ASSERT_TRUE(message_deleted);
« no previous file with comments | « content/renderer/gpu/frame_swap_message_queue.cc ('k') | content/renderer/gpu/queue_message_swap_promise.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698