| Index: webkit/compositor_bindings/web_layer_tree_view_unittest.cc
|
| diff --git a/webkit/compositor_bindings/web_layer_tree_view_unittest.cc b/webkit/compositor_bindings/web_layer_tree_view_unittest.cc
|
| index 6fc3df0292ab7566fe778777c900a7e40f1dcc9f..3d40bdef989a184a19c9467b703a9cc2e77aa8b8 100644
|
| --- a/webkit/compositor_bindings/web_layer_tree_view_unittest.cc
|
| +++ b/webkit/compositor_bindings/web_layer_tree_view_unittest.cc
|
| @@ -4,19 +4,21 @@
|
|
|
| #include "config.h"
|
|
|
| +#include "base/cancelable_callback.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/threading/thread.h"
|
| +#include "cc/proxy.h"
|
| +#include "cc/thread_impl.h"
|
| #include "cc/test/compositor_fake_web_graphics_context_3d.h"
|
| #include "cc/test/fake_web_compositor_output_surface.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| -#include "third_party/WebKit/Source/Platform/chromium/public/Platform.h"
|
| -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorSupport.h"
|
| #include "third_party/WebKit/Source/Platform/chromium/public/WebLayer.h"
|
| #include "third_party/WebKit/Source/Platform/chromium/public/WebLayerTreeViewClient.h"
|
| #include "third_party/WebKit/Source/Platform/chromium/public/WebLayerTreeView.h"
|
| #include "third_party/WebKit/Source/Platform/chromium/public/WebThread.h"
|
| -#include "web_layer_impl.h"
|
| -#include "web_layer_tree_view_impl.h"
|
| -#include "web_layer_tree_view_test_common.h"
|
| +#include "webkit/compositor_bindings/test/web_layer_tree_view_test_common.h"
|
| +#include "webkit/compositor_bindings/web_layer_impl.h"
|
| +#include "webkit/compositor_bindings/web_layer_tree_view_impl.h"
|
|
|
| using namespace WebKit;
|
| using testing::Mock;
|
| @@ -28,7 +30,7 @@ class MockWebLayerTreeViewClientForThreadedTests : public MockWebLayerTreeViewCl
|
| public:
|
| virtual void didBeginFrame() OVERRIDE
|
| {
|
| - WebKit::Platform::current()->currentThread()->exitRunLoop();
|
| + MessageLoop::current()->Quit();
|
| MockWebLayerTreeViewClient::didBeginFrame();
|
| }
|
| };
|
| @@ -55,7 +57,6 @@ public:
|
|
|
| m_rootLayer.reset();
|
| m_view.reset();
|
| - WebKit::Platform::current()->compositorSupport()->shutdown();
|
| }
|
|
|
| protected:
|
| @@ -72,7 +73,6 @@ protected:
|
|
|
| virtual void initializeCompositor() OVERRIDE
|
| {
|
| - WebKit::Platform::current()->compositorSupport()->initialize(0);
|
| }
|
|
|
| virtual WebLayerTreeViewClient* client() OVERRIDE
|
| @@ -83,78 +83,30 @@ protected:
|
| MockWebLayerTreeViewClient m_client;
|
| };
|
|
|
| -class CancelableTaskWrapper : public base::RefCounted<CancelableTaskWrapper> {
|
| - class Task : public WebThread::Task {
|
| - public:
|
| - Task(CancelableTaskWrapper* cancelableTask)
|
| - : m_cancelableTask(cancelableTask)
|
| - {
|
| - }
|
| -
|
| - private:
|
| - virtual void run() OVERRIDE
|
| - {
|
| - m_cancelableTask->runIfNotCanceled();
|
| - }
|
| -
|
| - scoped_refptr<CancelableTaskWrapper> m_cancelableTask;
|
| - };
|
| -
|
| -public:
|
| - CancelableTaskWrapper(scoped_ptr<WebThread::Task> task)
|
| - : m_task(task.Pass())
|
| - {
|
| - }
|
| -
|
| - void cancel()
|
| - {
|
| - m_task.reset();
|
| - }
|
| -
|
| - WebThread::Task* createTask()
|
| - {
|
| - ASSERT(m_task);
|
| - return new Task(this);
|
| - }
|
| -
|
| - void runIfNotCanceled()
|
| - {
|
| - if (!m_task)
|
| - return;
|
| - m_task->run();
|
| - m_task.reset();
|
| - }
|
| -
|
| -private:
|
| - friend class base::RefCounted<CancelableTaskWrapper>;
|
| - ~CancelableTaskWrapper() { }
|
| -
|
| - scoped_ptr<WebThread::Task> m_task;
|
| -};
|
| -
|
| class WebLayerTreeViewThreadedTest : public WebLayerTreeViewTestBase {
|
| protected:
|
| - class TimeoutTask : public WebThread::Task {
|
| - virtual void run() OVERRIDE
|
| - {
|
| - WebKit::Platform::current()->currentThread()->exitRunLoop();
|
| - }
|
| - };
|
| + virtual ~WebLayerTreeViewThreadedTest()
|
| + {
|
| + cc::Proxy::setImplThread(0);
|
| + }
|
|
|
| void composite()
|
| {
|
| m_view->setNeedsRedraw();
|
| - scoped_refptr<CancelableTaskWrapper> timeoutTask(new CancelableTaskWrapper(scoped_ptr<WebThread::Task>(new TimeoutTask())));
|
| - WebKit::Platform::current()->currentThread()->postDelayedTask(timeoutTask->createTask(), 5000);
|
| - WebKit::Platform::current()->currentThread()->enterRunLoop();
|
| - timeoutTask->cancel();
|
| + base::CancelableClosure timeout(base::Bind(&MessageLoop::Quit, base::Unretained(MessageLoop::current())));
|
| + MessageLoop::current()->PostDelayedTask(FROM_HERE,
|
| + timeout.callback(),
|
| + base::TimeDelta::FromSeconds(5));
|
| + MessageLoop::current()->Run();
|
| m_view->finishAllRendering();
|
| }
|
|
|
| virtual void initializeCompositor() OVERRIDE
|
| {
|
| - m_webThread.reset(WebKit::Platform::current()->createThread("WebLayerTreeViewTest"));
|
| - WebKit::Platform::current()->compositorSupport()->initialize(m_webThread.get());
|
| + 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());
|
| }
|
|
|
| virtual WebLayerTreeViewClient* client() OVERRIDE
|
| @@ -163,7 +115,9 @@ protected:
|
| }
|
|
|
| MockWebLayerTreeViewClientForThreadedTests m_client;
|
| - scoped_ptr<WebThread> m_webThread;
|
| + scoped_ptr<base::Thread> m_implThread;
|
| + scoped_ptr<cc::Thread> m_implCCThread;
|
| + base::CancelableClosure m_timeout;
|
| };
|
|
|
| TEST_F(WebLayerTreeViewSingleThreadTest, InstrumentationCallbacks)
|
|
|