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

Side by Side Diff: cc/layers/delegated_frame_provider_unittest.cc

Issue 502203003: Remove implicit conversions from scoped_refptr to T* in cc/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change to use .get() instead of rewriting local variable Created 6 years, 4 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "cc/layers/delegated_frame_provider.h" 5 #include "cc/layers/delegated_frame_provider.h"
6 #include "cc/layers/delegated_frame_resource_collection.h" 6 #include "cc/layers/delegated_frame_resource_collection.h"
7 #include "cc/layers/delegated_renderer_layer.h" 7 #include "cc/layers/delegated_renderer_layer.h"
8 #include "cc/output/delegated_frame_data.h" 8 #include "cc/output/delegated_frame_data.h"
9 #include "cc/quads/texture_draw_quad.h" 9 #include "cc/quads/texture_draw_quad.h"
10 #include "cc/resources/returned_resource.h" 10 #include "cc/resources/returned_resource.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 SetFrameProvider(frame.Pass()); 152 SetFrameProvider(frame.Pass());
153 153
154 scoped_refptr<DelegatedRendererLayer> observer1 = 154 scoped_refptr<DelegatedRendererLayer> observer1 =
155 DelegatedRendererLayer::Create(frame_provider_); 155 DelegatedRendererLayer::Create(frame_provider_);
156 scoped_refptr<DelegatedRendererLayer> observer2 = 156 scoped_refptr<DelegatedRendererLayer> observer2 =
157 DelegatedRendererLayer::Create(frame_provider_); 157 DelegatedRendererLayer::Create(frame_provider_);
158 158
159 gfx::RectF damage; 159 gfx::RectF damage;
160 160
161 // Both observers get a full frame of damage on the first request. 161 // Both observers get a full frame of damage on the first request.
162 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); 162 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
163 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); 163 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString());
164 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); 164 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
165 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); 165 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString());
166 166
167 // And both get no damage on the 2nd request. This adds a second ref to the 167 // And both get no damage on the 2nd request. This adds a second ref to the
168 // resources. 168 // resources.
169 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); 169 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
170 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString()); 170 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString());
171 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); 171 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
172 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString()); 172 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString());
173 173
174 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 174 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
175 175
176 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 176 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
177 AddTextureQuad(frame.get(), 555); 177 AddTextureQuad(frame.get(), 555);
178 AddTransferableResource(frame.get(), 555); 178 AddTransferableResource(frame.get(), 555);
179 frame_provider_->SetFrameData(frame.Pass()); 179 frame_provider_->SetFrameData(frame.Pass());
180 180
181 // The resources from the first frame are still reffed by the observers. 181 // The resources from the first frame are still reffed by the observers.
(...skipping 28 matching lines...) Expand all
210 SetFrameProvider(frame.Pass()); 210 SetFrameProvider(frame.Pass());
211 211
212 scoped_refptr<DelegatedRendererLayer> observer1 = 212 scoped_refptr<DelegatedRendererLayer> observer1 =
213 DelegatedRendererLayer::Create(frame_provider_); 213 DelegatedRendererLayer::Create(frame_provider_);
214 scoped_refptr<DelegatedRendererLayer> observer2 = 214 scoped_refptr<DelegatedRendererLayer> observer2 =
215 DelegatedRendererLayer::Create(frame_provider_); 215 DelegatedRendererLayer::Create(frame_provider_);
216 216
217 gfx::RectF damage; 217 gfx::RectF damage;
218 218
219 // Take a ref on each observer. 219 // Take a ref on each observer.
220 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); 220 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
221 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); 221 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
222 222
223 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 223 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
224 224
225 // Release both refs. But there's still a ref held in the frame 225 // Release both refs. But there's still a ref held in the frame
226 // provider itself. 226 // provider itself.
227 frame_provider_->UnrefResourcesOnMainThread(returned); 227 frame_provider_->UnrefResourcesOnMainThread(returned);
228 frame_provider_->UnrefResourcesOnMainThread(returned); 228 frame_provider_->UnrefResourcesOnMainThread(returned);
229 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 229 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
230 230
231 // Setting a new frame will release it. 231 // Setting a new frame will release it.
(...skipping 20 matching lines...) Expand all
252 SetFrameProvider(frame.Pass()); 252 SetFrameProvider(frame.Pass());
253 253
254 scoped_refptr<DelegatedRendererLayer> observer1 = 254 scoped_refptr<DelegatedRendererLayer> observer1 =
255 DelegatedRendererLayer::Create(frame_provider_); 255 DelegatedRendererLayer::Create(frame_provider_);
256 scoped_refptr<DelegatedRendererLayer> observer2 = 256 scoped_refptr<DelegatedRendererLayer> observer2 =
257 DelegatedRendererLayer::Create(frame_provider_); 257 DelegatedRendererLayer::Create(frame_provider_);
258 258
259 gfx::RectF damage; 259 gfx::RectF damage;
260 260
261 // Take a ref on each observer. 261 // Take a ref on each observer.
262 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); 262 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
263 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); 263 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
264 264
265 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 265 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
266 266
267 // Release both refs. But there's still a ref held in the frame 267 // Release both refs. But there's still a ref held in the frame
268 // provider itself. 268 // provider itself.
269 frame_provider_->UnrefResourcesOnMainThread(returned); 269 frame_provider_->UnrefResourcesOnMainThread(returned);
270 frame_provider_->UnrefResourcesOnMainThread(returned); 270 frame_provider_->UnrefResourcesOnMainThread(returned);
271 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 271 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
272 272
273 // Releasing all references to the frame provider will release 273 // Releasing all references to the frame provider will release
(...skipping 22 matching lines...) Expand all
296 SetFrameProvider(frame.Pass()); 296 SetFrameProvider(frame.Pass());
297 297
298 scoped_refptr<DelegatedRendererLayer> observer1 = 298 scoped_refptr<DelegatedRendererLayer> observer1 =
299 DelegatedRendererLayer::Create(frame_provider_); 299 DelegatedRendererLayer::Create(frame_provider_);
300 scoped_refptr<DelegatedRendererLayer> observer2 = 300 scoped_refptr<DelegatedRendererLayer> observer2 =
301 DelegatedRendererLayer::Create(frame_provider_); 301 DelegatedRendererLayer::Create(frame_provider_);
302 302
303 gfx::RectF damage; 303 gfx::RectF damage;
304 304
305 // Both observers get a full frame of damage on the first request. 305 // Both observers get a full frame of damage on the first request.
306 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); 306 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
307 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); 307 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString());
308 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); 308 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
309 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); 309 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString());
310 310
311 // And both get no damage on the 2nd request. 311 // And both get no damage on the 2nd request.
312 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); 312 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
313 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString()); 313 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString());
314 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); 314 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
315 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString()); 315 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString());
316 316
317 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 317 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
318 AddTextureQuad(frame.get(), 555); 318 AddTextureQuad(frame.get(), 555);
319 AddTransferableResource(frame.get(), 555); 319 AddTransferableResource(frame.get(), 555);
320 frame_provider_->SetFrameData(frame.Pass()); 320 frame_provider_->SetFrameData(frame.Pass());
321 321
322 // Both observers get the damage for the new frame. 322 // Both observers get the damage for the new frame.
323 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); 323 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
324 EXPECT_EQ(gfx::RectF(2.f, 2.f).ToString(), damage.ToString()); 324 EXPECT_EQ(gfx::RectF(2.f, 2.f).ToString(), damage.ToString());
325 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); 325 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
326 EXPECT_EQ(gfx::RectF(2.f, 2.f).ToString(), damage.ToString()); 326 EXPECT_EQ(gfx::RectF(2.f, 2.f).ToString(), damage.ToString());
327 327
328 // And both get no damage on the 2nd request. 328 // And both get no damage on the 2nd request.
329 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); 329 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
330 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString()); 330 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString());
331 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); 331 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
332 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString()); 332 EXPECT_EQ(gfx::RectF().ToString(), damage.ToString());
333 } 333 }
334 334
335 TEST_F(DelegatedFrameProviderTest, LostNothing) { 335 TEST_F(DelegatedFrameProviderTest, LostNothing) {
336 scoped_ptr<DelegatedFrameData> frame = 336 scoped_ptr<DelegatedFrameData> frame =
337 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(5, 5)); 337 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(5, 5));
338 338
339 TransferableResourceArray reffed = frame->resource_list; 339 TransferableResourceArray reffed = frame->resource_list;
340 340
341 SetFrameProvider(frame.Pass()); 341 SetFrameProvider(frame.Pass());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 388
389 frame_provider_ = NULL; 389 frame_provider_ = NULL;
390 390
391 // Nothing is returned twice. 391 // Nothing is returned twice.
392 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 392 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
393 EXPECT_EQ(0u, resources_.size()); 393 EXPECT_EQ(0u, resources_.size());
394 } 394 }
395 395
396 } // namespace 396 } // namespace
397 } // namespace cc 397 } // namespace cc
OLDNEW
« no previous file with comments | « cc/debug/rasterize_and_record_benchmark_impl.cc ('k') | cc/layers/delegated_frame_resource_collection_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698