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

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

Issue 1873783003: Convert //content/renderer from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 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
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/memory/ptr_util.h"
12 #include "base/memory/scoped_vector.h" 13 #include "base/memory/scoped_vector.h"
13 #include "cc/output/swap_promise.h" 14 #include "cc/output/swap_promise.h"
14 #include "content/renderer/gpu/frame_swap_message_queue.h" 15 #include "content/renderer/gpu/frame_swap_message_queue.h"
15 #include "content/renderer/gpu/render_widget_compositor.h" 16 #include "content/renderer/gpu/render_widget_compositor.h"
16 #include "content/renderer/render_widget.h" 17 #include "content/renderer/render_widget.h"
17 #include "content/test/mock_render_process.h" 18 #include "content/test/mock_render_process.h"
18 #include "ipc/ipc_message.h" 19 #include "ipc/ipc_message.h"
19 #include "ipc/ipc_sync_message_filter.h" 20 #include "ipc/ipc_sync_message_filter.h"
20 #include "ipc/ipc_test_sink.h" 21 #include "ipc/ipc_test_sink.h"
21 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
22 23
23 namespace content { 24 namespace content {
24 25
25 class TestRenderWidget : public RenderWidget { 26 class TestRenderWidget : public RenderWidget {
26 public: 27 public:
27 using RenderWidget::QueueMessageImpl; 28 using RenderWidget::QueueMessageImpl;
28 29
29 private: 30 private:
30 ~TestRenderWidget() override {} 31 ~TestRenderWidget() override {}
31 32
32 DISALLOW_COPY_AND_ASSIGN(TestRenderWidget); 33 DISALLOW_COPY_AND_ASSIGN(TestRenderWidget);
33 }; 34 };
34 35
35 class TestSyncMessageFilter : public IPC::SyncMessageFilter { 36 class TestSyncMessageFilter : public IPC::SyncMessageFilter {
36 public: 37 public:
37 TestSyncMessageFilter() : IPC::SyncMessageFilter(NULL, false) {} 38 TestSyncMessageFilter() : IPC::SyncMessageFilter(NULL, false) {}
38 39
39 bool Send(IPC::Message* message) override { 40 bool Send(IPC::Message* message) override {
40 messages_.push_back(make_scoped_ptr(message)); 41 messages_.push_back(base::WrapUnique(message));
41 return true; 42 return true;
42 } 43 }
43 44
44 std::vector<scoped_ptr<IPC::Message>>& messages() { return messages_; } 45 std::vector<std::unique_ptr<IPC::Message>>& messages() { return messages_; }
45 46
46 private: 47 private:
47 ~TestSyncMessageFilter() override {} 48 ~TestSyncMessageFilter() override {}
48 49
49 std::vector<scoped_ptr<IPC::Message>> messages_; 50 std::vector<std::unique_ptr<IPC::Message>> messages_;
50 51
51 DISALLOW_COPY_AND_ASSIGN(TestSyncMessageFilter); 52 DISALLOW_COPY_AND_ASSIGN(TestSyncMessageFilter);
52 }; 53 };
53 54
54 struct QueueMessageData { 55 struct QueueMessageData {
55 MessageDeliveryPolicy policy; 56 MessageDeliveryPolicy policy;
56 int source_frame_number; 57 int source_frame_number;
57 }; 58 };
58 59
59 class QueueMessageSwapPromiseTest : public testing::Test { 60 class QueueMessageSwapPromiseTest : public testing::Test {
60 public: 61 public:
61 QueueMessageSwapPromiseTest() 62 QueueMessageSwapPromiseTest()
62 : frame_swap_message_queue_(new FrameSwapMessageQueue()), 63 : frame_swap_message_queue_(new FrameSwapMessageQueue()),
63 sync_message_filter_(new TestSyncMessageFilter()) {} 64 sync_message_filter_(new TestSyncMessageFilter()) {}
64 65
65 ~QueueMessageSwapPromiseTest() override {} 66 ~QueueMessageSwapPromiseTest() override {}
66 67
67 scoped_ptr<cc::SwapPromise> QueueMessageImpl(IPC::Message* msg, 68 std::unique_ptr<cc::SwapPromise> QueueMessageImpl(
68 MessageDeliveryPolicy policy, 69 IPC::Message* msg,
69 int source_frame_number) { 70 MessageDeliveryPolicy policy,
71 int source_frame_number) {
70 return TestRenderWidget::QueueMessageImpl( 72 return TestRenderWidget::QueueMessageImpl(
71 msg, policy, frame_swap_message_queue_.get(), sync_message_filter_, 73 msg, policy, frame_swap_message_queue_.get(), sync_message_filter_,
72 source_frame_number); 74 source_frame_number);
73 } 75 }
74 76
75 const std::vector<scoped_ptr<IPC::Message>>& DirectSendMessages() { 77 const std::vector<std::unique_ptr<IPC::Message>>& DirectSendMessages() {
76 return sync_message_filter_->messages(); 78 return sync_message_filter_->messages();
77 } 79 }
78 80
79 std::vector<scoped_ptr<IPC::Message>>& NextSwapMessages() { 81 std::vector<std::unique_ptr<IPC::Message>>& NextSwapMessages() {
80 next_swap_messages_.clear(); 82 next_swap_messages_.clear();
81 scoped_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope = 83 std::unique_ptr<FrameSwapMessageQueue::SendMessageScope>
82 frame_swap_message_queue_->AcquireSendMessageScope(); 84 send_message_scope =
85 frame_swap_message_queue_->AcquireSendMessageScope();
83 frame_swap_message_queue_->DrainMessages(&next_swap_messages_); 86 frame_swap_message_queue_->DrainMessages(&next_swap_messages_);
84 return next_swap_messages_; 87 return next_swap_messages_;
85 } 88 }
86 89
87 bool ContainsMessage(const std::vector<scoped_ptr<IPC::Message>>& messages, 90 bool ContainsMessage(
88 const IPC::Message& message) { 91 const std::vector<std::unique_ptr<IPC::Message>>& messages,
92 const IPC::Message& message) {
89 if (messages.empty()) 93 if (messages.empty())
90 return false; 94 return false;
91 for (const auto& msg : messages) { 95 for (const auto& msg : messages) {
92 if (msg->type() == message.type()) 96 if (msg->type() == message.type())
93 return true; 97 return true;
94 } 98 }
95 return false; 99 return false;
96 } 100 }
97 101
98 bool NextSwapHasMessage(const IPC::Message& message) { 102 bool NextSwapHasMessage(const IPC::Message& message) {
(...skipping 26 matching lines...) Expand all
125 void VisualStateSwapPromiseDidNotSwap( 129 void VisualStateSwapPromiseDidNotSwap(
126 cc::SwapPromise::DidNotSwapReason reason); 130 cc::SwapPromise::DidNotSwapReason reason);
127 131
128 base::MessageLoop message_loop_; 132 base::MessageLoop message_loop_;
129 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_; 133 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_;
130 scoped_refptr<TestSyncMessageFilter> sync_message_filter_; 134 scoped_refptr<TestSyncMessageFilter> sync_message_filter_;
131 std::vector<IPC::Message> messages_; 135 std::vector<IPC::Message> messages_;
132 ScopedVector<cc::SwapPromise> promises_; 136 ScopedVector<cc::SwapPromise> promises_;
133 137
134 private: 138 private:
135 std::vector<scoped_ptr<IPC::Message>> next_swap_messages_; 139 std::vector<std::unique_ptr<IPC::Message>> next_swap_messages_;
136 140
137 DISALLOW_COPY_AND_ASSIGN(QueueMessageSwapPromiseTest); 141 DISALLOW_COPY_AND_ASSIGN(QueueMessageSwapPromiseTest);
138 }; 142 };
139 143
140 TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicySchedulesMessageForNextSwap) { 144 TEST_F(QueueMessageSwapPromiseTest, NextSwapPolicySchedulesMessageForNextSwap) {
141 QueueMessageData data[] = { 145 QueueMessageData data[] = {
142 /* { policy, source_frame_number } */ 146 /* { policy, source_frame_number } */
143 {MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 1}, 147 {MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 1},
144 }; 148 };
145 QueueMessages(data, arraysize(data)); 149 QueueMessages(data, arraysize(data));
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 /* { policy, source_frame_number } */ 249 /* { policy, source_frame_number } */
246 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1}, 250 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1},
247 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1}, 251 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 1},
248 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 2}, 252 {MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE, 2},
249 }; 253 };
250 QueueMessages(data, arraysize(data)); 254 QueueMessages(data, arraysize(data));
251 255
252 promises_[0]->DidActivate(); 256 promises_[0]->DidActivate();
253 promises_[0]->DidSwap(NULL); 257 promises_[0]->DidSwap(NULL);
254 ASSERT_FALSE(promises_[1]); 258 ASSERT_FALSE(promises_[1]);
255 std::vector<scoped_ptr<IPC::Message>> messages; 259 std::vector<std::unique_ptr<IPC::Message>> messages;
256 messages.swap(NextSwapMessages()); 260 messages.swap(NextSwapMessages());
257 EXPECT_EQ(2u, messages.size()); 261 EXPECT_EQ(2u, messages.size());
258 EXPECT_TRUE(ContainsMessage(messages, messages_[0])); 262 EXPECT_TRUE(ContainsMessage(messages, messages_[0]));
259 EXPECT_TRUE(ContainsMessage(messages, messages_[1])); 263 EXPECT_TRUE(ContainsMessage(messages, messages_[1]));
260 EXPECT_FALSE(ContainsMessage(messages, messages_[2])); 264 EXPECT_FALSE(ContainsMessage(messages, messages_[2]));
261 265
262 promises_[2]->DidActivate(); 266 promises_[2]->DidActivate();
263 promises_[2]->DidNotSwap(cc::SwapPromise::SWAP_FAILS); 267 promises_[2]->DidNotSwap(cc::SwapPromise::SWAP_FAILS);
264 messages.swap(NextSwapMessages()); 268 messages.swap(NextSwapMessages());
265 EXPECT_EQ(1u, messages.size()); 269 EXPECT_EQ(1u, messages.size());
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidNotSwapSwapFails) { 317 TEST_F(QueueMessageSwapPromiseTest, VisualStateSwapPromiseDidNotSwapSwapFails) {
314 VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::SWAP_FAILS); 318 VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::SWAP_FAILS);
315 } 319 }
316 320
317 TEST_F(QueueMessageSwapPromiseTest, 321 TEST_F(QueueMessageSwapPromiseTest,
318 VisualStateSwapPromiseDidNotSwapActivationFails) { 322 VisualStateSwapPromiseDidNotSwapActivationFails) {
319 VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::ACTIVATION_FAILS); 323 VisualStateSwapPromiseDidNotSwap(cc::SwapPromise::ACTIVATION_FAILS);
320 } 324 }
321 325
322 } // namespace content 326 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/queue_message_swap_promise.cc ('k') | content/renderer/gpu/render_widget_compositor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698