| Index: cc/test/layer_tree_test_common.cc
|
| diff --git a/cc/test/layer_tree_test_common.cc b/cc/test/layer_tree_test_common.cc
|
| index 2bb5d41ba5176758c09d417cb403c9548211551b..4fee06ca83fb029b34883ea998265ea98e2eeddb 100644
|
| --- a/cc/test/layer_tree_test_common.cc
|
| +++ b/cc/test/layer_tree_test_common.cc
|
| @@ -17,17 +17,15 @@
|
| #include "cc/scoped_thread_proxy.h"
|
| #include "cc/settings.h"
|
| #include "cc/single_thread_proxy.h"
|
| +#include "cc/thread_impl.h"
|
| #include "cc/test/animation_test_common.h"
|
| #include "cc/test/fake_web_compositor_output_surface.h"
|
| #include "cc/test/fake_web_graphics_context_3d.h"
|
| #include "cc/test/occlusion_tracker_test_common.h"
|
| #include "cc/test/test_common.h"
|
| #include "cc/test/tiled_layer_test_common.h"
|
| -#include "cc/thread_task.h"
|
| #include "cc/timing_function.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| -#include <public/Platform.h>
|
| -#include <public/WebCompositorSupport.h>
|
| #include <public/WebFilterOperation.h>
|
| #include <public/WebFilterOperations.h>
|
| #include <public/WebThread.h>
|
| @@ -270,50 +268,6 @@ private:
|
| TestHooks* m_testHooks;
|
| };
|
|
|
| -class TimeoutTask : public WebThread::Task {
|
| -public:
|
| - explicit TimeoutTask(ThreadedTest* test)
|
| - : m_test(test)
|
| - {
|
| - }
|
| -
|
| - void clearTest()
|
| - {
|
| - m_test = 0;
|
| - }
|
| -
|
| - virtual ~TimeoutTask()
|
| - {
|
| - if (m_test)
|
| - m_test->clearTimeout();
|
| - }
|
| -
|
| - virtual void run()
|
| - {
|
| - if (m_test)
|
| - m_test->timeout();
|
| - }
|
| -
|
| -private:
|
| - ThreadedTest* m_test;
|
| -};
|
| -
|
| -class BeginTask : public WebThread::Task {
|
| -public:
|
| - explicit BeginTask(ThreadedTest* test)
|
| - : m_test(test)
|
| - {
|
| - }
|
| -
|
| - virtual ~BeginTask() { }
|
| - virtual void run()
|
| - {
|
| - m_test->doBeginTest();
|
| - }
|
| -private:
|
| - ThreadedTest* m_test;
|
| -};
|
| -
|
| ThreadedTest::ThreadedTest()
|
| : m_beginning(false)
|
| , m_endWhenBeginReturns(false)
|
| @@ -337,57 +291,57 @@ void ThreadedTest::endTest()
|
| if (m_beginning)
|
| m_endWhenBeginReturns = true;
|
| else
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::realEndTest));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::realEndTest, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::endTestAfterDelay(int delayMilliseconds)
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::endTest));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::endTest, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::postSetNeedsAnimateToMainThread()
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSetNeedsAnimate));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchSetNeedsAnimate, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::postAddAnimationToMainThread()
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchAddAnimation));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchAddAnimation, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::postAddInstantAnimationToMainThread()
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchAddInstantAnimation));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchAddInstantAnimation, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::postSetNeedsCommitToMainThread()
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSetNeedsCommit));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchSetNeedsCommit, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::postAcquireLayerTextures()
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchAcquireLayerTextures));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchAcquireLayerTextures, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::postSetNeedsRedrawToMainThread()
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSetNeedsRedraw));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchSetNeedsRedraw, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::postSetNeedsAnimateAndCommitToMainThread()
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSetNeedsAnimateAndCommit));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchSetNeedsAnimateAndCommit, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::postSetVisibleToMainThread(bool visible)
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchSetVisible, visible));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchSetVisible, base::Unretained(this), visible));
|
| }
|
|
|
| void ThreadedTest::postDidAddAnimationToMainThread()
|
| {
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchDidAddAnimation));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchDidAddAnimation, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::doBeginTest()
|
| @@ -425,13 +379,13 @@ void ThreadedTest::scheduleComposite()
|
| if (!m_started || m_scheduled || m_finished)
|
| return;
|
| m_scheduled = true;
|
| - m_mainThreadProxy->postTask(createThreadTask(this, &ThreadedTest::dispatchComposite));
|
| + m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&ThreadedTest::dispatchComposite, base::Unretained(this)));
|
| }
|
|
|
| void ThreadedTest::realEndTest()
|
| {
|
| DCHECK(Proxy::isMainThread());
|
| - WebKit::Platform::current()->currentThread()->exitRunLoop();
|
| + MessageLoop::current()->Quit();
|
| }
|
|
|
| void ThreadedTest::dispatchSetNeedsAnimate()
|
| @@ -549,38 +503,36 @@ void ThreadedTest::runTest(bool threaded)
|
| Settings::setAcceleratedAnimationEnabled(true);
|
|
|
| if (threaded) {
|
| - m_webThread.reset(WebKit::Platform::current()->createThread("ThreadedTest"));
|
| - Platform::current()->compositorSupport()->initialize(m_webThread.get());
|
| - } else
|
| - Platform::current()->compositorSupport()->initialize(0);
|
| + m_implThread.reset(new base::Thread("ThreadedTest"));
|
| + ASSERT_TRUE(m_implThread->Start());
|
| + m_implCCThread = cc::ThreadImpl::createForDifferentThread(m_implThread->message_loop_proxy());
|
| + cc::Proxy::setImplThread(m_implCCThread.get());
|
| + }
|
|
|
| DCHECK(Proxy::isMainThread());
|
| m_mainThreadProxy = ScopedThreadProxy::create(Proxy::mainThread());
|
|
|
| initializeSettings(m_settings);
|
|
|
| - m_beginTask = new BeginTask(this);
|
| - WebKit::Platform::current()->currentThread()->postDelayedTask(m_beginTask, 0); // postDelayedTask takes ownership of the task
|
| - m_timeoutTask = new TimeoutTask(this);
|
| - WebKit::Platform::current()->currentThread()->postDelayedTask(m_timeoutTask, 5000);
|
| - WebKit::Platform::current()->currentThread()->enterRunLoop();
|
| -
|
| + cc::Proxy::mainThread()->postTask(base::Bind(&ThreadedTest::doBeginTest, base::Unretained(this)));
|
| + m_timeout.Reset(base::Bind(&ThreadedTest::timeout, base::Unretained(this)));
|
| + cc::Proxy::mainThread()->postDelayedTask(m_timeout.callback(), 5000);
|
| + MessageLoop::current()->Run();
|
| if (m_layerTreeHost.get() && m_layerTreeHost->rootLayer())
|
| m_layerTreeHost->rootLayer()->setLayerTreeHost(0);
|
| m_layerTreeHost.reset();
|
|
|
| - if (m_timeoutTask)
|
| - m_timeoutTask->clearTest();
|
| + cc::Proxy::setImplThread(0);
|
| +
|
| + m_timeout.Cancel();
|
|
|
| ASSERT_FALSE(m_layerTreeHost.get());
|
| m_client.reset();
|
| if (m_timedOut) {
|
| FAIL() << "Test timed out";
|
| - Platform::current()->compositorSupport()->shutdown();
|
| return;
|
| }
|
| afterTest();
|
| - Platform::current()->compositorSupport()->shutdown();
|
| }
|
|
|
| } // namespace WebKitTests
|
|
|