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

Unified Diff: content/renderer/gpu/queue_message_swap_promise_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/queue_message_swap_promise.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/gpu/queue_message_swap_promise_unittest.cc
diff --git a/content/renderer/gpu/queue_message_swap_promise_unittest.cc b/content/renderer/gpu/queue_message_swap_promise_unittest.cc
index ab640bf1f9ff61bf269c89af8c789146526c6a9b..1261cb2bae6bc915e9c027d847b90eb575ed068d 100644
--- a/content/renderer/gpu/queue_message_swap_promise_unittest.cc
+++ b/content/renderer/gpu/queue_message_swap_promise_unittest.cc
@@ -115,8 +115,10 @@ class QueueMessageSwapPromiseTest : public testing::Test {
for (ScopedVector<cc::SwapPromise>::iterator i = promises_.begin();
i != promises_.end();
++i) {
- if (*i)
+ if (*i) {
+ (*i)->DidActivate();
(*i)->DidSwap(NULL);
+ }
}
}
@@ -144,11 +146,13 @@ TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicySchedulesMessageForNextSwap) {
QueueMessages(data, arraysize(data));
ASSERT_TRUE(promises_[0]);
+ promises_[0]->DidActivate();
+ promises_[0]->DidSwap(NULL);
+
EXPECT_TRUE(DirectSendMessages().empty());
EXPECT_FALSE(frame_swap_message_queue_->Empty());
+ // frame_swap_message_queue_->DidSwap(1);
EXPECT_TRUE(NextSwapHasMessage(messages_[0]));
-
- CleanupPromises();
}
TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicyNeedsAtMostOnePromise) {
@@ -201,6 +205,7 @@ TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicyRetainsMessageOnCommitFails) {
promises_[0]->DidNotSwap(cc::SwapPromise::COMMIT_FAILS);
EXPECT_TRUE(DirectSendMessages().empty());
EXPECT_FALSE(frame_swap_message_queue_->Empty());
+ frame_swap_message_queue_->DidSwap(2);
EXPECT_TRUE(NextSwapHasMessage(messages_[0]));
}
@@ -236,7 +241,7 @@ TEST_F(QueueMessageSwapPromiseTest,
CleanupPromises();
}
-TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidSwap) {
+TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidActivate) {
QueueMessageData data[] = {
/* { policy, source_frame_number } */
{MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1},
@@ -245,6 +250,7 @@ TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidSwap) {
};
QueueMessages(data, arraysize(data));
+ promises_[0]->DidActivate();
promises_[0]->DidSwap(NULL);
ASSERT_FALSE(promises_[1]);
ScopedVector<IPC::Message> messages;
@@ -254,7 +260,8 @@ TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidSwap) {
EXPECT_TRUE(ContainsMessage(messages, messages_[1]));
EXPECT_FALSE(ContainsMessage(messages, messages_[2]));
- promises_[2]->DidSwap(NULL);
+ promises_[2]->DidActivate();
+ promises_[2]->DidNotSwap(cc::SwapPromise::SWAP_FAILS);
messages.swap(NextSwapMessages());
EXPECT_EQ(1u, messages.size());
EXPECT_TRUE(ContainsMessage(messages, messages_[2]));
@@ -274,59 +281,43 @@ void QueueMessageSwapPromiseTest::VisualStateSwapPromiseDidNotSwap(
};
QueueMessages(data, arraysize(data));
+ // If we fail to swap with COMMIT_FAILS or ACTIVATE_FAILS, then
+ // messages are delivered by the RenderFrameHostImpl destructor,
+ // rather than directly by the swap promise.
+ bool msg_delivered = reason != cc::SwapPromise::COMMIT_FAILS &&
+ reason != cc::SwapPromise::ACTIVATION_FAILS;
+
promises_[0]->DidNotSwap(reason);
ASSERT_FALSE(promises_[1]);
EXPECT_TRUE(NextSwapMessages().empty());
- EXPECT_EQ(2u, DirectSendMessages().size());
- EXPECT_TRUE(ContainsMessage(DirectSendMessages(), messages_[0]));
- EXPECT_TRUE(ContainsMessage(DirectSendMessages(), messages_[1]));
+ EXPECT_EQ(msg_delivered, ContainsMessage(DirectSendMessages(), messages_[0]));
+ EXPECT_EQ(msg_delivered, ContainsMessage(DirectSendMessages(), messages_[1]));
EXPECT_FALSE(ContainsMessage(DirectSendMessages(), messages_[2]));
promises_[2]->DidNotSwap(reason);
EXPECT_TRUE(NextSwapMessages().empty());
- EXPECT_TRUE(ContainsMessage(DirectSendMessages(), messages_[2]));
+ EXPECT_EQ(msg_delivered, ContainsMessage(DirectSendMessages(), messages_[2]));
EXPECT_TRUE(NextSwapMessages().empty());
- EXPECT_TRUE(frame_swap_message_queue_->Empty());
+ EXPECT_EQ(msg_delivered, frame_swap_message_queue_->Empty());
}
-TEST_F(QueueMessageSwapPromiseTest, VisalStateSwapPromiseDidNotSwapNoUpdate) {
+TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidNotSwapNoUpdate) {
VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::COMMIT_NO_UPDATE);
}
TEST_F(QueueMessageSwapPromiseTest,
VisualStateSwapPromiseDidNotSwapCommitFails) {
- // COMMIT_FAILS is treated differently:
- // If we fail to swap with COMMIT_FAILS, then the renderer is
- // shutting down, which implies that the RenderFrameHostImpl
- // destructor will eventually be called, firing the remaining
- // response callbacks (with swap_success = false) itself.
- QueueMessageData data[] = {
- /* { policy, source_frame_number } */
- {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1},
- {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1},
- {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 2},
- };
- QueueMessages(data, arraysize(data));
-
- promises_[0]->DidNotSwap(cc::SwapPromise::COMMIT_FAILS);
- ASSERT_FALSE(promises_[1]);
- EXPECT_TRUE(NextSwapMessages().empty());
- EXPECT_EQ(0u, DirectSendMessages().size());
- EXPECT_FALSE(ContainsMessage(DirectSendMessages(), messages_[0]));
- EXPECT_FALSE(ContainsMessage(DirectSendMessages(), messages_[1]));
- EXPECT_FALSE(ContainsMessage(DirectSendMessages(), messages_[2]));
-
- promises_[2]->DidNotSwap(cc::SwapPromise::COMMIT_FAILS);
- EXPECT_TRUE(NextSwapMessages().empty());
- EXPECT_FALSE(ContainsMessage(DirectSendMessages(), messages_[2]));
-
- EXPECT_TRUE(NextSwapMessages().empty());
- EXPECT_FALSE(frame_swap_message_queue_->Empty());
+ VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::COMMIT_FAILS);
}
-TEST_F(QueueMessageSwapPromiseTest, VisalStateSwapPromiseDidNotSwapSwapFails) {
+TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidNotSwapSwapFails) {
VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::SWAP_FAILS);
}
+TEST_F(QueueMessageSwapPromiseTest,
+ VisualStateSwapPromiseDidNotSwapActivationFails) {
+ VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::ACTIVATION_FAILS);
+}
+
} // namespace content
« no previous file with comments | « content/renderer/gpu/queue_message_swap_promise.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698