Commit 44ed4bd7 authored by backer@chromium.org's avatar backer@chromium.org

Aura: Make compositor_unittests work with --ui-enable-threaded-compositing

Check that a draw occured, rather than just that it was scheduled. Verify that CompositorDelegate is not called if compositing is threaded.

BUG=173417
TEST=compositor_unittests --ui-enable-threaded-compositing


Review URL: https://chromiumcodereview.appspot.com/13555004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192661 0039d316-1c4b-4281-b951-d872f2087c98
parent 582eca66
...@@ -547,6 +547,7 @@ ui::EventTarget* RootWindow::GetParentTarget() { ...@@ -547,6 +547,7 @@ ui::EventTarget* RootWindow::GetParentTarget() {
// RootWindow, ui::CompositorDelegate implementation: // RootWindow, ui::CompositorDelegate implementation:
void RootWindow::ScheduleDraw() { void RootWindow::ScheduleDraw() {
DCHECK(!ui::Compositor::WasInitializedWithThread());
if (!defer_draw_scheduling_) { if (!defer_draw_scheduling_) {
defer_draw_scheduling_ = true; defer_draw_scheduling_ = true;
MessageLoop::current()->PostTask( MessageLoop::current()->PostTask(
......
...@@ -475,6 +475,7 @@ Compositor::~Compositor() { ...@@ -475,6 +475,7 @@ Compositor::~Compositor() {
ContextFactory::GetInstance()->RemoveCompositor(this); ContextFactory::GetInstance()->RemoveCompositor(this);
} }
// static
void Compositor::Initialize(bool use_thread) { void Compositor::Initialize(bool use_thread) {
if (use_thread) { if (use_thread) {
g_compositor_thread = new base::Thread("Browser Compositor"); g_compositor_thread = new base::Thread("Browser Compositor");
...@@ -482,6 +483,12 @@ void Compositor::Initialize(bool use_thread) { ...@@ -482,6 +483,12 @@ void Compositor::Initialize(bool use_thread) {
} }
} }
// static
bool Compositor::WasInitializedWithThread() {
return !!g_compositor_thread;
}
// static
void Compositor::Terminate() { void Compositor::Terminate() {
if (g_compositor_thread) { if (g_compositor_thread) {
g_compositor_thread->Stop(); g_compositor_thread->Stop();
......
...@@ -222,6 +222,7 @@ class COMPOSITOR_EXPORT Compositor ...@@ -222,6 +222,7 @@ class COMPOSITOR_EXPORT Compositor
virtual ~Compositor(); virtual ~Compositor();
static void Initialize(bool useThread); static void Initialize(bool useThread);
static bool WasInitializedWithThread();
static void Terminate(); static void Terminate();
// Schedules a redraw of the layer tree associated with this compositor. // Schedules a redraw of the layer tree associated with this compositor.
......
This diff is collapsed.
...@@ -85,6 +85,7 @@ ui::Compositor* TestCompositorHostLinux::GetCompositor() { ...@@ -85,6 +85,7 @@ ui::Compositor* TestCompositorHostLinux::GetCompositor() {
} }
void TestCompositorHostLinux::ScheduleDraw() { void TestCompositorHostLinux::ScheduleDraw() {
DCHECK(!ui::Compositor::WasInitializedWithThread());
if (!method_factory_.HasWeakPtrs()) { if (!method_factory_.HasWeakPtrs()) {
MessageLoopForUI::current()->PostTask( MessageLoopForUI::current()->PostTask(
FROM_HERE, FROM_HERE,
......
...@@ -138,6 +138,7 @@ ui::Compositor* TestCompositorHostMac::GetCompositor() { ...@@ -138,6 +138,7 @@ ui::Compositor* TestCompositorHostMac::GetCompositor() {
} }
void TestCompositorHostMac::ScheduleDraw() { void TestCompositorHostMac::ScheduleDraw() {
DCHECK(!ui::Compositor::WasInitializedWithThread());
if (!compositor_.get()) if (!compositor_.get())
return; return;
......
...@@ -35,6 +35,7 @@ class TestCompositorHostWin : public TestCompositorHost, ...@@ -35,6 +35,7 @@ class TestCompositorHostWin : public TestCompositorHost,
// Overridden from CompositorDelegate: // Overridden from CompositorDelegate:
virtual void ScheduleDraw() OVERRIDE { virtual void ScheduleDraw() OVERRIDE {
DCHECK(!ui::Compositor::WasInitializedWithThread());
RECT rect; RECT rect;
::GetClientRect(hwnd(), &rect); ::GetClientRect(hwnd(), &rect);
InvalidateRect(hwnd(), &rect, FALSE); InvalidateRect(hwnd(), &rect, FALSE);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment