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

Side by Side Diff: content/renderer/gpu/queue_message_swap_promise_unittest.cc

Issue 2580493002: Splitting DidSwap in cc::SwapPromise into WillSwap and DidSwap (Closed)
Patch Set: x Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/gpu/queue_message_swap_promise.h" 5 #include "content/renderer/gpu/queue_message_swap_promise.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 data[i].source_frame_number).release()); 113 data[i].source_frame_number).release());
114 } 114 }
115 } 115 }
116 116
117 void CleanupPromises() { 117 void CleanupPromises() {
118 for (ScopedVector<cc::SwapPromise>::iterator i = promises_.begin(); 118 for (ScopedVector<cc::SwapPromise>::iterator i = promises_.begin();
119 i != promises_.end(); 119 i != promises_.end();
120 ++i) { 120 ++i) {
121 if (*i) { 121 if (*i) {
122 (*i)->DidActivate(); 122 (*i)->DidActivate();
123 (*i)->DidSwap(NULL); 123 (*i)->WillSwap(NULL);
124 (*i)->DidSwap();
124 } 125 }
125 } 126 }
126 } 127 }
127 128
128 protected: 129 protected:
129 void VisualStateSwapPromiseDidNotSwap( 130 void VisualStateSwapPromiseDidNotSwap(
130 cc::SwapPromise::DidNotSwapReason reason); 131 cc::SwapPromise::DidNotSwapReason reason);
131 132
132 base::MessageLoop message_loop_; 133 base::MessageLoop message_loop_;
133 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_; 134 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_;
134 scoped_refptr<TestSyncMessageFilter> sync_message_filter_; 135 scoped_refptr<TestSyncMessageFilter> sync_message_filter_;
135 std::vector<IPC::Message> messages_; 136 std::vector<IPC::Message> messages_;
136 ScopedVector<cc::SwapPromise> promises_; 137 ScopedVector<cc::SwapPromise> promises_;
137 138
138 private: 139 private:
139 std::vector<std::unique_ptr<IPC::Message>> next_swap_messages_; 140 std::vector<std::unique_ptr<IPC::Message>> next_swap_messages_;
140 141
141 DISALLOW_COPY_AND_ASSIGN(QueueMessageSwapPromiseTest); 142 DISALLOW_COPY_AND_ASSIGN(QueueMessageSwapPromiseTest);
142 }; 143 };
143 144
144 TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicySchedulesMessageForNextSwap) { 145 TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicySchedulesMessageForNextSwap) {
145 QueueMessageData data[] = { 146 QueueMessageData data[] = {
146 /* { policy, source_frame_number } */ 147 /* { policy, source_frame_number } */
147 {MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 1}, 148 {MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 1},
148 }; 149 };
149 QueueMessages(data, arraysize(data)); 150 QueueMessages(data, arraysize(data));
150 151
151 ASSERT_TRUE(promises_[0]); 152 ASSERT_TRUE(promises_[0]);
152 promises_[0]->DidActivate(); 153 promises_[0]->DidActivate();
153 promises_[0]->DidSwap(NULL); 154 promises_[0]->WillSwap(NULL);
155 promises_[0]->DidSwap();
154 156
155 EXPECT_TRUE(DirectSendMessages().empty()); 157 EXPECT_TRUE(DirectSendMessages().empty());
156 EXPECT_FALSE(frame_swap_message_queue_->Empty()); 158 EXPECT_FALSE(frame_swap_message_queue_->Empty());
157 // frame_swap_message_queue_->DidSwap(1); 159 // frame_swap_message_queue_->WillSwap(1);
158 EXPECT_TRUE(NextSwapHasMessage(messages_[0])); 160 EXPECT_TRUE(NextSwapHasMessage(messages_[0]));
159 } 161 }
160 162
161 TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicyNeedsAtMostOnePromise) { 163 TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicyNeedsAtMostOnePromise) {
162 QueueMessageData data[] = { 164 QueueMessageData data[] = {
163 /* { policy, source_frame_number } */ 165 /* { policy, source_frame_number } */
164 {MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 1}, 166 {MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 1},
165 {MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 1}, 167 {MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 1},
166 }; 168 };
167 QueueMessages(data, arraysize(data)); 169 QueueMessages(data, arraysize(data));
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidActivate) { 249 TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidActivate) {
248 QueueMessageData data[] = { 250 QueueMessageData data[] = {
249 /* { policy, source_frame_number } */ 251 /* { policy, source_frame_number } */
250 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1}, 252 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1},
251 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1}, 253 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1},
252 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 2}, 254 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 2},
253 }; 255 };
254 QueueMessages(data, arraysize(data)); 256 QueueMessages(data, arraysize(data));
255 257
256 promises_[0]->DidActivate(); 258 promises_[0]->DidActivate();
257 promises_[0]->DidSwap(NULL); 259 promises_[0]->WillSwap(NULL);
260 promises_[0]->DidSwap();
258 ASSERT_FALSE(promises_[1]); 261 ASSERT_FALSE(promises_[1]);
259 std::vector<std::unique_ptr<IPC::Message>> messages; 262 std::vector<std::unique_ptr<IPC::Message>> messages;
260 messages.swap(NextSwapMessages()); 263 messages.swap(NextSwapMessages());
261 EXPECT_EQ(2u, messages.size()); 264 EXPECT_EQ(2u, messages.size());
262 EXPECT_TRUE(ContainsMessage(messages, messages_[0])); 265 EXPECT_TRUE(ContainsMessage(messages, messages_[0]));
263 EXPECT_TRUE(ContainsMessage(messages, messages_[1])); 266 EXPECT_TRUE(ContainsMessage(messages, messages_[1]));
264 EXPECT_FALSE(ContainsMessage(messages, messages_[2])); 267 EXPECT_FALSE(ContainsMessage(messages, messages_[2]));
265 268
266 promises_[2]->DidActivate(); 269 promises_[2]->DidActivate();
267 promises_[2]->DidNotSwap(cc::SwapPromise::SWAP_FAILS); 270 promises_[2]->DidNotSwap(cc::SwapPromise::SWAP_FAILS);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidNotSwapSwapFails) { 321 TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidNotSwapSwapFails) {
319 VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::SWAP_FAILS); 322 VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::SWAP_FAILS);
320 } 323 }
321 324
322 TEST_F(QueueMessageSwapPromiseTest, 325 TEST_F(QueueMessageSwapPromiseTest,
323 VisualStateSwapPromiseDidNotSwapActivationFails) { 326 VisualStateSwapPromiseDidNotSwapActivationFails) {
324 VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::ACTIVATION_FAILS); 327 VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::ACTIVATION_FAILS);
325 } 328 }
326 329
327 } // namespace content 330 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/queue_message_swap_promise.cc ('k') | content/renderer/render_view_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698