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

Side by Side Diff: cc/threaded_unittest.cc

Issue 11189043: cc: Rename cc classes and members to match filenames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "config.h" 5 #include "config.h"
6 6
7 #include "CCThreadedTest.h" 7 #include "CCThreadedTest.h"
8 8
9 #include "CCActiveAnimation.h" 9 #include "CCActiveAnimation.h"
10 #include "CCInputHandler.h" 10 #include "CCInputHandler.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 void CompositorFakeWebGraphicsContext3DWithTextureTracking::resetUsedTextures() { m_usedTextures.clear(); } 76 void CompositorFakeWebGraphicsContext3DWithTextureTracking::resetUsedTextures() { m_usedTextures.clear(); }
77 77
78 CompositorFakeWebGraphicsContext3DWithTextureTracking::CompositorFakeWebGraphics Context3DWithTextureTracking(Attributes attrs) : CompositorFakeWebGraphicsContex t3D(attrs) 78 CompositorFakeWebGraphicsContext3DWithTextureTracking::CompositorFakeWebGraphics Context3DWithTextureTracking(Attributes attrs) : CompositorFakeWebGraphicsContex t3D(attrs)
79 { 79 {
80 } 80 }
81 81
82 CompositorFakeWebGraphicsContext3DWithTextureTracking::~CompositorFakeWebGraphic sContext3DWithTextureTracking() 82 CompositorFakeWebGraphicsContext3DWithTextureTracking::~CompositorFakeWebGraphic sContext3DWithTextureTracking()
83 { 83 {
84 } 84 }
85 85
86 bool TestHooks::prepareToDrawOnCCThread(cc::CCLayerTreeHostImpl*) 86 bool TestHooks::prepareToDrawOnThread(cc::LayerTreeHostImpl*)
87 { 87 {
88 return true; 88 return true;
89 } 89 }
90 90
91 scoped_ptr<WebCompositorOutputSurface> TestHooks::createOutputSurface() 91 scoped_ptr<WebCompositorOutputSurface> TestHooks::createOutputSurface()
92 { 92 {
93 return FakeWebCompositorOutputSurface::create(CompositorFakeWebGraphicsConte xt3DWithTextureTracking::create(WebGraphicsContext3D::Attributes()).PassAs<WebKi t::WebGraphicsContext3D>()).PassAs<WebKit::WebCompositorOutputSurface>(); 93 return FakeWebCompositorOutputSurface::create(CompositorFakeWebGraphicsConte xt3DWithTextureTracking::create(WebGraphicsContext3D::Attributes()).PassAs<WebKi t::WebGraphicsContext3D>()).PassAs<WebKit::WebCompositorOutputSurface>();
94 } 94 }
95 95
96 scoped_ptr<MockLayerTreeHostImpl> MockLayerTreeHostImpl::create(TestHooks* testH ooks, const CCLayerTreeSettings& settings, CCLayerTreeHostImplClient* client) 96 scoped_ptr<MockLayerTreeHostImpl> MockLayerTreeHostImpl::create(TestHooks* testH ooks, const LayerTreeSettings& settings, LayerTreeHostImplClient* client)
97 { 97 {
98 return make_scoped_ptr(new MockLayerTreeHostImpl(testHooks, settings, client )); 98 return make_scoped_ptr(new MockLayerTreeHostImpl(testHooks, settings, client ));
99 } 99 }
100 100
101 void MockLayerTreeHostImpl::beginCommit() 101 void MockLayerTreeHostImpl::beginCommit()
102 { 102 {
103 CCLayerTreeHostImpl::beginCommit(); 103 LayerTreeHostImpl::beginCommit();
104 m_testHooks->beginCommitOnCCThread(this); 104 m_testHooks->beginCommitOnThread(this);
105 } 105 }
106 106
107 void MockLayerTreeHostImpl::commitComplete() 107 void MockLayerTreeHostImpl::commitComplete()
108 { 108 {
109 CCLayerTreeHostImpl::commitComplete(); 109 LayerTreeHostImpl::commitComplete();
110 m_testHooks->commitCompleteOnCCThread(this); 110 m_testHooks->commitCompleteOnThread(this);
111 } 111 }
112 112
113 bool MockLayerTreeHostImpl::prepareToDraw(FrameData& frame) 113 bool MockLayerTreeHostImpl::prepareToDraw(FrameData& frame)
114 { 114 {
115 bool result = CCLayerTreeHostImpl::prepareToDraw(frame); 115 bool result = LayerTreeHostImpl::prepareToDraw(frame);
116 if (!m_testHooks->prepareToDrawOnCCThread(this)) 116 if (!m_testHooks->prepareToDrawOnThread(this))
117 result = false; 117 result = false;
118 return result; 118 return result;
119 } 119 }
120 120
121 void MockLayerTreeHostImpl::drawLayers(const FrameData& frame) 121 void MockLayerTreeHostImpl::drawLayers(const FrameData& frame)
122 { 122 {
123 CCLayerTreeHostImpl::drawLayers(frame); 123 LayerTreeHostImpl::drawLayers(frame);
124 m_testHooks->drawLayersOnCCThread(this); 124 m_testHooks->drawLayersOnThread(this);
125 } 125 }
126 126
127 void MockLayerTreeHostImpl::animateLayers(double monotonicTime, double wallClock Time) 127 void MockLayerTreeHostImpl::animateLayers(double monotonicTime, double wallClock Time)
128 { 128 {
129 m_testHooks->willAnimateLayers(this, monotonicTime); 129 m_testHooks->willAnimateLayers(this, monotonicTime);
130 CCLayerTreeHostImpl::animateLayers(monotonicTime, wallClockTime); 130 LayerTreeHostImpl::animateLayers(monotonicTime, wallClockTime);
131 m_testHooks->animateLayers(this, monotonicTime); 131 m_testHooks->animateLayers(this, monotonicTime);
132 } 132 }
133 133
134 base::TimeDelta MockLayerTreeHostImpl::lowFrequencyAnimationInterval() const 134 base::TimeDelta MockLayerTreeHostImpl::lowFrequencyAnimationInterval() const
135 { 135 {
136 return base::TimeDelta::FromMilliseconds(16); 136 return base::TimeDelta::FromMilliseconds(16);
137 } 137 }
138 138
139 MockLayerTreeHostImpl::MockLayerTreeHostImpl(TestHooks* testHooks, const CCLayer TreeSettings& settings, CCLayerTreeHostImplClient* client) 139 MockLayerTreeHostImpl::MockLayerTreeHostImpl(TestHooks* testHooks, const LayerTr eeSettings& settings, LayerTreeHostImplClient* client)
140 : CCLayerTreeHostImpl(settings, client) 140 : LayerTreeHostImpl(settings, client)
141 , m_testHooks(testHooks) 141 , m_testHooks(testHooks)
142 { 142 {
143 } 143 }
144 144
145 // Adapts CCLayerTreeHost for test. Injects MockLayerTreeHostImpl. 145 // Adapts LayerTreeHost for test. Injects MockLayerTreeHostImpl.
146 class MockLayerTreeHost : public cc::CCLayerTreeHost { 146 class MockLayerTreeHost : public cc::LayerTreeHost {
147 public: 147 public:
148 static scoped_ptr<MockLayerTreeHost> create(TestHooks* testHooks, cc::CCLaye rTreeHostClient* client, scoped_refptr<cc::LayerChromium> rootLayer, const cc::C CLayerTreeSettings& settings) 148 static scoped_ptr<MockLayerTreeHost> create(TestHooks* testHooks, cc::LayerT reeHostClient* client, scoped_refptr<cc::Layer> rootLayer, const cc::LayerTreeSe ttings& settings)
149 { 149 {
150 scoped_ptr<MockLayerTreeHost> layerTreeHost(new MockLayerTreeHost(testHo oks, client, settings)); 150 scoped_ptr<MockLayerTreeHost> layerTreeHost(new MockLayerTreeHost(testHo oks, client, settings));
151 bool success = layerTreeHost->initialize(); 151 bool success = layerTreeHost->initialize();
152 EXPECT_TRUE(success); 152 EXPECT_TRUE(success);
153 layerTreeHost->setRootLayer(rootLayer); 153 layerTreeHost->setRootLayer(rootLayer);
154 154
155 // LayerTreeHostImpl won't draw if it has 1x1 viewport. 155 // LayerTreeHostImpl won't draw if it has 1x1 viewport.
156 layerTreeHost->setViewportSize(IntSize(1, 1), IntSize(1, 1)); 156 layerTreeHost->setViewportSize(IntSize(1, 1), IntSize(1, 1));
157 157
158 layerTreeHost->rootLayer()->setLayerAnimationDelegate(testHooks); 158 layerTreeHost->rootLayer()->setLayerAnimationDelegate(testHooks);
159 159
160 return layerTreeHost.Pass(); 160 return layerTreeHost.Pass();
161 } 161 }
162 162
163 virtual scoped_ptr<cc::CCLayerTreeHostImpl> createLayerTreeHostImpl(cc::CCLa yerTreeHostImplClient* client) 163 virtual scoped_ptr<cc::LayerTreeHostImpl> createLayerTreeHostImpl(cc::LayerT reeHostImplClient* client)
164 { 164 {
165 return MockLayerTreeHostImpl::create(m_testHooks, settings(), client).Pa ssAs<cc::CCLayerTreeHostImpl>(); 165 return MockLayerTreeHostImpl::create(m_testHooks, settings(), client).Pa ssAs<cc::LayerTreeHostImpl>();
166 } 166 }
167 167
168 virtual void didAddAnimation() OVERRIDE 168 virtual void didAddAnimation() OVERRIDE
169 { 169 {
170 CCLayerTreeHost::didAddAnimation(); 170 LayerTreeHost::didAddAnimation();
171 m_testHooks->didAddAnimation(); 171 m_testHooks->didAddAnimation();
172 } 172 }
173 173
174 private: 174 private:
175 MockLayerTreeHost(TestHooks* testHooks, cc::CCLayerTreeHostClient* client, c onst cc::CCLayerTreeSettings& settings) 175 MockLayerTreeHost(TestHooks* testHooks, cc::LayerTreeHostClient* client, con st cc::LayerTreeSettings& settings)
176 : CCLayerTreeHost(client, settings) 176 : LayerTreeHost(client, settings)
177 , m_testHooks(testHooks) 177 , m_testHooks(testHooks)
178 { 178 {
179 } 179 }
180 180
181 TestHooks* m_testHooks; 181 TestHooks* m_testHooks;
182 }; 182 };
183 183
184 // Implementation of CCLayerTreeHost callback interface. 184 // Implementation of LayerTreeHost callback interface.
185 class MockLayerTreeHostClient : public MockCCLayerTreeHostClient { 185 class ThreadedMockLayerTreeHostClient : public MockLayerImplTreeHostClient {
186 public: 186 public:
187 static scoped_ptr<MockLayerTreeHostClient> create(TestHooks* testHooks) 187 static scoped_ptr<ThreadedMockLayerTreeHostClient> create(TestHooks* testHoo ks)
188 { 188 {
189 return make_scoped_ptr(new MockLayerTreeHostClient(testHooks)); 189 return make_scoped_ptr(new ThreadedMockLayerTreeHostClient(testHooks));
190 } 190 }
191 191
192 virtual void willBeginFrame() OVERRIDE 192 virtual void willBeginFrame() OVERRIDE
193 { 193 {
194 } 194 }
195 195
196 virtual void didBeginFrame() OVERRIDE 196 virtual void didBeginFrame() OVERRIDE
197 { 197 {
198 } 198 }
199 199
(...skipping 15 matching lines...) Expand all
215 virtual scoped_ptr<WebCompositorOutputSurface> createOutputSurface() OVERRID E 215 virtual scoped_ptr<WebCompositorOutputSurface> createOutputSurface() OVERRID E
216 { 216 {
217 return m_testHooks->createOutputSurface(); 217 return m_testHooks->createOutputSurface();
218 } 218 }
219 219
220 virtual void didRecreateOutputSurface(bool succeeded) OVERRIDE 220 virtual void didRecreateOutputSurface(bool succeeded) OVERRIDE
221 { 221 {
222 m_testHooks->didRecreateOutputSurface(succeeded); 222 m_testHooks->didRecreateOutputSurface(succeeded);
223 } 223 }
224 224
225 virtual scoped_ptr<CCInputHandler> createInputHandler() OVERRIDE 225 virtual scoped_ptr<InputHandler> createInputHandler() OVERRIDE
226 { 226 {
227 return scoped_ptr<CCInputHandler>(); 227 return scoped_ptr<InputHandler>();
228 } 228 }
229 229
230 virtual void willCommit() OVERRIDE 230 virtual void willCommit() OVERRIDE
231 { 231 {
232 } 232 }
233 233
234 virtual void didCommit() OVERRIDE 234 virtual void didCommit() OVERRIDE
235 { 235 {
236 m_testHooks->didCommit(); 236 m_testHooks->didCommit();
237 } 237 }
238 238
239 virtual void didCommitAndDrawFrame() OVERRIDE 239 virtual void didCommitAndDrawFrame() OVERRIDE
240 { 240 {
241 m_testHooks->didCommitAndDrawFrame(); 241 m_testHooks->didCommitAndDrawFrame();
242 } 242 }
243 243
244 virtual void didCompleteSwapBuffers() OVERRIDE 244 virtual void didCompleteSwapBuffers() OVERRIDE
245 { 245 {
246 } 246 }
247 247
248 virtual void scheduleComposite() OVERRIDE 248 virtual void scheduleComposite() OVERRIDE
249 { 249 {
250 m_testHooks->scheduleComposite(); 250 m_testHooks->scheduleComposite();
251 } 251 }
252 252
253 private: 253 private:
254 explicit MockLayerTreeHostClient(TestHooks* testHooks) : m_testHooks(testHoo ks) { } 254 explicit ThreadedMockLayerTreeHostClient(TestHooks* testHooks) : m_testHooks (testHooks) { }
255 255
256 TestHooks* m_testHooks; 256 TestHooks* m_testHooks;
257 }; 257 };
258 258
259 class TimeoutTask : public WebThread::Task { 259 class TimeoutTask : public WebThread::Task {
260 public: 260 public:
261 explicit TimeoutTask(CCThreadedTest* test) 261 explicit TimeoutTask(ThreadedTest* test)
262 : m_test(test) 262 : m_test(test)
263 { 263 {
264 } 264 }
265 265
266 void clearTest() 266 void clearTest()
267 { 267 {
268 m_test = 0; 268 m_test = 0;
269 } 269 }
270 270
271 virtual ~TimeoutTask() 271 virtual ~TimeoutTask()
272 { 272 {
273 if (m_test) 273 if (m_test)
274 m_test->clearTimeout(); 274 m_test->clearTimeout();
275 } 275 }
276 276
277 virtual void run() 277 virtual void run()
278 { 278 {
279 if (m_test) 279 if (m_test)
280 m_test->timeout(); 280 m_test->timeout();
281 } 281 }
282 282
283 private: 283 private:
284 CCThreadedTest* m_test; 284 ThreadedTest* m_test;
285 }; 285 };
286 286
287 class BeginTask : public WebThread::Task { 287 class BeginTask : public WebThread::Task {
288 public: 288 public:
289 explicit BeginTask(CCThreadedTest* test) 289 explicit BeginTask(ThreadedTest* test)
290 : m_test(test) 290 : m_test(test)
291 { 291 {
292 } 292 }
293 293
294 virtual ~BeginTask() { } 294 virtual ~BeginTask() { }
295 virtual void run() 295 virtual void run()
296 { 296 {
297 m_test->doBeginTest(); 297 m_test->doBeginTest();
298 } 298 }
299 private: 299 private:
300 CCThreadedTest* m_test; 300 ThreadedTest* m_test;
301 }; 301 };
302 302
303 CCThreadedTest::CCThreadedTest() 303 ThreadedTest::ThreadedTest()
304 : m_beginning(false) 304 : m_beginning(false)
305 , m_endWhenBeginReturns(false) 305 , m_endWhenBeginReturns(false)
306 , m_timedOut(false) 306 , m_timedOut(false)
307 , m_finished(false) 307 , m_finished(false)
308 , m_scheduled(false) 308 , m_scheduled(false)
309 , m_started(false) 309 , m_started(false)
310 { 310 {
311 } 311 }
312 312
313 CCThreadedTest::~CCThreadedTest() 313 ThreadedTest::~ThreadedTest()
314 { 314 {
315 } 315 }
316 316
317 void CCThreadedTest::endTest() 317 void ThreadedTest::endTest()
318 { 318 {
319 m_finished = true; 319 m_finished = true;
320 320
321 // For the case where we endTest during beginTest(), set a flag to indicate that 321 // For the case where we endTest during beginTest(), set a flag to indicate that
322 // the test should end the second beginTest regains control. 322 // the test should end the second beginTest regains control.
323 if (m_beginning) 323 if (m_beginning)
324 m_endWhenBeginReturns = true; 324 m_endWhenBeginReturns = true;
325 else 325 else
326 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::re alEndTest)); 326 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::realEn dTest));
327 } 327 }
328 328
329 void CCThreadedTest::endTestAfterDelay(int delayMilliseconds) 329 void ThreadedTest::endTestAfterDelay(int delayMilliseconds)
330 { 330 {
331 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::endTes t)); 331 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::endTest));
332 } 332 }
333 333
334 void CCThreadedTest::postSetNeedsAnimateToMainThread() 334 void ThreadedTest::postSetNeedsAnimateToMainThread()
335 { 335 {
336 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chSetNeedsAnimate)); 336 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSe tNeedsAnimate));
337 } 337 }
338 338
339 void CCThreadedTest::postAddAnimationToMainThread() 339 void ThreadedTest::postAddAnimationToMainThread()
340 { 340 {
341 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chAddAnimation)); 341 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchAd dAnimation));
342 } 342 }
343 343
344 void CCThreadedTest::postAddInstantAnimationToMainThread() 344 void ThreadedTest::postAddInstantAnimationToMainThread()
345 { 345 {
346 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chAddInstantAnimation)); 346 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchAd dInstantAnimation));
347 } 347 }
348 348
349 void CCThreadedTest::postSetNeedsCommitToMainThread() 349 void ThreadedTest::postSetNeedsCommitToMainThread()
350 { 350 {
351 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chSetNeedsCommit)); 351 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSe tNeedsCommit));
352 } 352 }
353 353
354 void CCThreadedTest::postAcquireLayerTextures() 354 void ThreadedTest::postAcquireLayerTextures()
355 { 355 {
356 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chAcquireLayerTextures)); 356 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchAc quireLayerTextures));
357 } 357 }
358 358
359 void CCThreadedTest::postSetNeedsRedrawToMainThread() 359 void ThreadedTest::postSetNeedsRedrawToMainThread()
360 { 360 {
361 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chSetNeedsRedraw)); 361 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSe tNeedsRedraw));
362 } 362 }
363 363
364 void CCThreadedTest::postSetNeedsAnimateAndCommitToMainThread() 364 void ThreadedTest::postSetNeedsAnimateAndCommitToMainThread()
365 { 365 {
366 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chSetNeedsAnimateAndCommit)); 366 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSe tNeedsAnimateAndCommit));
367 } 367 }
368 368
369 void CCThreadedTest::postSetVisibleToMainThread(bool visible) 369 void ThreadedTest::postSetVisibleToMainThread(bool visible)
370 { 370 {
371 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chSetVisible, visible)); 371 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSe tVisible, visible));
372 } 372 }
373 373
374 void CCThreadedTest::postDidAddAnimationToMainThread() 374 void ThreadedTest::postDidAddAnimationToMainThread()
375 { 375 {
376 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chDidAddAnimation)); 376 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchDi dAddAnimation));
377 } 377 }
378 378
379 void CCThreadedTest::doBeginTest() 379 void ThreadedTest::doBeginTest()
380 { 380 {
381 ASSERT(CCProxy::isMainThread()); 381 ASSERT(Proxy::isMainThread());
382 m_client = MockLayerTreeHostClient::create(this); 382 m_client = ThreadedMockLayerTreeHostClient::create(this);
383 383
384 scoped_refptr<LayerChromium> rootLayer = LayerChromium::create(); 384 scoped_refptr<Layer> rootLayer = Layer::create();
385 m_layerTreeHost = MockLayerTreeHost::create(this, m_client.get(), rootLayer, m_settings); 385 m_layerTreeHost = MockLayerTreeHost::create(this, m_client.get(), rootLayer, m_settings);
386 ASSERT_TRUE(m_layerTreeHost.get()); 386 ASSERT_TRUE(m_layerTreeHost.get());
387 rootLayer->setLayerTreeHost(m_layerTreeHost.get()); 387 rootLayer->setLayerTreeHost(m_layerTreeHost.get());
388 m_layerTreeHost->setSurfaceReady(); 388 m_layerTreeHost->setSurfaceReady();
389 389
390 m_started = true; 390 m_started = true;
391 m_beginning = true; 391 m_beginning = true;
392 beginTest(); 392 beginTest();
393 m_beginning = false; 393 m_beginning = false;
394 if (m_endWhenBeginReturns) 394 if (m_endWhenBeginReturns)
395 realEndTest(); 395 realEndTest();
396 } 396 }
397 397
398 void CCThreadedTest::timeout() 398 void ThreadedTest::timeout()
399 { 399 {
400 m_timedOut = true; 400 m_timedOut = true;
401 endTest(); 401 endTest();
402 } 402 }
403 403
404 void CCThreadedTest::scheduleComposite() 404 void ThreadedTest::scheduleComposite()
405 { 405 {
406 if (!m_started || m_scheduled || m_finished) 406 if (!m_started || m_scheduled || m_finished)
407 return; 407 return;
408 m_scheduled = true; 408 m_scheduled = true;
409 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadedTest::dispat chComposite)); 409 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchCo mposite));
410 } 410 }
411 411
412 void CCThreadedTest::realEndTest() 412 void ThreadedTest::realEndTest()
413 { 413 {
414 ASSERT(CCProxy::isMainThread()); 414 ASSERT(Proxy::isMainThread());
415 WebKit::Platform::current()->currentThread()->exitRunLoop(); 415 WebKit::Platform::current()->currentThread()->exitRunLoop();
416 } 416 }
417 417
418 void CCThreadedTest::dispatchSetNeedsAnimate() 418 void ThreadedTest::dispatchSetNeedsAnimate()
419 { 419 {
420 ASSERT(CCProxy::isMainThread()); 420 ASSERT(Proxy::isMainThread());
421 421
422 if (m_finished) 422 if (m_finished)
423 return; 423 return;
424 424
425 if (m_layerTreeHost.get()) 425 if (m_layerTreeHost.get())
426 m_layerTreeHost->setNeedsAnimate(); 426 m_layerTreeHost->setNeedsAnimate();
427 } 427 }
428 428
429 void CCThreadedTest::dispatchAddInstantAnimation() 429 void ThreadedTest::dispatchAddInstantAnimation()
430 { 430 {
431 ASSERT(CCProxy::isMainThread()); 431 ASSERT(Proxy::isMainThread());
432 432
433 if (m_finished) 433 if (m_finished)
434 return; 434 return;
435 435
436 if (m_layerTreeHost.get() && m_layerTreeHost->rootLayer()) 436 if (m_layerTreeHost.get() && m_layerTreeHost->rootLayer())
437 addOpacityTransitionToLayer(*m_layerTreeHost->rootLayer(), 0, 0, 0.5, fa lse); 437 addOpacityTransitionToLayer(*m_layerTreeHost->rootLayer(), 0, 0, 0.5, fa lse);
438 } 438 }
439 439
440 void CCThreadedTest::dispatchAddAnimation() 440 void ThreadedTest::dispatchAddAnimation()
441 { 441 {
442 ASSERT(CCProxy::isMainThread()); 442 ASSERT(Proxy::isMainThread());
443 443
444 if (m_finished) 444 if (m_finished)
445 return; 445 return;
446 446
447 if (m_layerTreeHost.get() && m_layerTreeHost->rootLayer()) 447 if (m_layerTreeHost.get() && m_layerTreeHost->rootLayer())
448 addOpacityTransitionToLayer(*m_layerTreeHost->rootLayer(), 10, 0, 0.5, t rue); 448 addOpacityTransitionToLayer(*m_layerTreeHost->rootLayer(), 10, 0, 0.5, t rue);
449 } 449 }
450 450
451 void CCThreadedTest::dispatchSetNeedsAnimateAndCommit() 451 void ThreadedTest::dispatchSetNeedsAnimateAndCommit()
452 { 452 {
453 ASSERT(CCProxy::isMainThread()); 453 ASSERT(Proxy::isMainThread());
454 454
455 if (m_finished) 455 if (m_finished)
456 return; 456 return;
457 457
458 if (m_layerTreeHost.get()) { 458 if (m_layerTreeHost.get()) {
459 m_layerTreeHost->setNeedsAnimate(); 459 m_layerTreeHost->setNeedsAnimate();
460 m_layerTreeHost->setNeedsCommit(); 460 m_layerTreeHost->setNeedsCommit();
461 } 461 }
462 } 462 }
463 463
464 void CCThreadedTest::dispatchSetNeedsCommit() 464 void ThreadedTest::dispatchSetNeedsCommit()
465 { 465 {
466 ASSERT(CCProxy::isMainThread()); 466 ASSERT(Proxy::isMainThread());
467 467
468 if (m_finished) 468 if (m_finished)
469 return; 469 return;
470 470
471 if (m_layerTreeHost.get()) 471 if (m_layerTreeHost.get())
472 m_layerTreeHost->setNeedsCommit(); 472 m_layerTreeHost->setNeedsCommit();
473 } 473 }
474 474
475 void CCThreadedTest::dispatchAcquireLayerTextures() 475 void ThreadedTest::dispatchAcquireLayerTextures()
476 { 476 {
477 ASSERT(CCProxy::isMainThread()); 477 ASSERT(Proxy::isMainThread());
478 478
479 if (m_finished) 479 if (m_finished)
480 return; 480 return;
481 481
482 if (m_layerTreeHost.get()) 482 if (m_layerTreeHost.get())
483 m_layerTreeHost->acquireLayerTextures(); 483 m_layerTreeHost->acquireLayerTextures();
484 } 484 }
485 485
486 void CCThreadedTest::dispatchSetNeedsRedraw() 486 void ThreadedTest::dispatchSetNeedsRedraw()
487 { 487 {
488 ASSERT(CCProxy::isMainThread()); 488 ASSERT(Proxy::isMainThread());
489 489
490 if (m_finished) 490 if (m_finished)
491 return; 491 return;
492 492
493 if (m_layerTreeHost.get()) 493 if (m_layerTreeHost.get())
494 m_layerTreeHost->setNeedsRedraw(); 494 m_layerTreeHost->setNeedsRedraw();
495 } 495 }
496 496
497 void CCThreadedTest::dispatchSetVisible(bool visible) 497 void ThreadedTest::dispatchSetVisible(bool visible)
498 { 498 {
499 ASSERT(CCProxy::isMainThread()); 499 ASSERT(Proxy::isMainThread());
500 500
501 if (m_finished) 501 if (m_finished)
502 return; 502 return;
503 503
504 if (m_layerTreeHost.get()) 504 if (m_layerTreeHost.get())
505 m_layerTreeHost->setVisible(visible); 505 m_layerTreeHost->setVisible(visible);
506 } 506 }
507 507
508 void CCThreadedTest::dispatchComposite() 508 void ThreadedTest::dispatchComposite()
509 { 509 {
510 m_scheduled = false; 510 m_scheduled = false;
511 if (m_layerTreeHost.get() && !m_finished) 511 if (m_layerTreeHost.get() && !m_finished)
512 m_layerTreeHost->composite(); 512 m_layerTreeHost->composite();
513 } 513 }
514 514
515 void CCThreadedTest::dispatchDidAddAnimation() 515 void ThreadedTest::dispatchDidAddAnimation()
516 { 516 {
517 ASSERT(CCProxy::isMainThread()); 517 ASSERT(Proxy::isMainThread());
518 518
519 if (m_finished) 519 if (m_finished)
520 return; 520 return;
521 521
522 if (m_layerTreeHost.get()) 522 if (m_layerTreeHost.get())
523 m_layerTreeHost->didAddAnimation(); 523 m_layerTreeHost->didAddAnimation();
524 } 524 }
525 525
526 void CCThreadedTest::runTest(bool threaded) 526 void ThreadedTest::runTest(bool threaded)
527 { 527 {
528 // For these tests, we will enable threaded animations. 528 // For these tests, we will enable threaded animations.
529 Platform::current()->compositorSupport()->setAcceleratedAnimationEnabled(tru e); 529 Platform::current()->compositorSupport()->setAcceleratedAnimationEnabled(tru e);
530 530
531 if (threaded) { 531 if (threaded) {
532 m_webThread.reset(WebKit::Platform::current()->createThread("CCThreadedT est")); 532 m_webThread.reset(WebKit::Platform::current()->createThread("ThreadedTes t"));
533 Platform::current()->compositorSupport()->initialize(m_webThread.get()); 533 Platform::current()->compositorSupport()->initialize(m_webThread.get());
534 } else 534 } else
535 Platform::current()->compositorSupport()->initialize(0); 535 Platform::current()->compositorSupport()->initialize(0);
536 536
537 ASSERT(CCProxy::isMainThread()); 537 ASSERT(Proxy::isMainThread());
538 m_mainThreadProxy = CCScopedThreadProxy::create(CCProxy::mainThread()); 538 m_mainThreadProxy = ScopedThreadProxy::create(Proxy::mainThread());
539 539
540 initializeSettings(m_settings); 540 initializeSettings(m_settings);
541 541
542 m_beginTask = new BeginTask(this); 542 m_beginTask = new BeginTask(this);
543 WebKit::Platform::current()->currentThread()->postDelayedTask(m_beginTask, 0 ); // postDelayedTask takes ownership of the task 543 WebKit::Platform::current()->currentThread()->postDelayedTask(m_beginTask, 0 ); // postDelayedTask takes ownership of the task
544 m_timeoutTask = new TimeoutTask(this); 544 m_timeoutTask = new TimeoutTask(this);
545 WebKit::Platform::current()->currentThread()->postDelayedTask(m_timeoutTask, 5000); 545 WebKit::Platform::current()->currentThread()->postDelayedTask(m_timeoutTask, 5000);
546 WebKit::Platform::current()->currentThread()->enterRunLoop(); 546 WebKit::Platform::current()->currentThread()->enterRunLoop();
547 547
548 if (m_layerTreeHost.get() && m_layerTreeHost->rootLayer()) 548 if (m_layerTreeHost.get() && m_layerTreeHost->rootLayer())
549 m_layerTreeHost->rootLayer()->setLayerTreeHost(0); 549 m_layerTreeHost->rootLayer()->setLayerTreeHost(0);
550 m_layerTreeHost.reset(); 550 m_layerTreeHost.reset();
551 551
552 if (m_timeoutTask) 552 if (m_timeoutTask)
553 m_timeoutTask->clearTest(); 553 m_timeoutTask->clearTest();
554 554
555 ASSERT_FALSE(m_layerTreeHost.get()); 555 ASSERT_FALSE(m_layerTreeHost.get());
556 m_client.reset(); 556 m_client.reset();
557 if (m_timedOut) { 557 if (m_timedOut) {
558 FAIL() << "Test timed out"; 558 FAIL() << "Test timed out";
559 Platform::current()->compositorSupport()->shutdown(); 559 Platform::current()->compositorSupport()->shutdown();
560 return; 560 return;
561 } 561 }
562 afterTest(); 562 afterTest();
563 Platform::current()->compositorSupport()->shutdown(); 563 Platform::current()->compositorSupport()->shutdown();
564 } 564 }
565 565
566 } // namespace WebKitTests 566 } // namespace WebKitTests
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698