summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/test/unit/chrome_test_suite.cc8
-rw-r--r--ui/gfx/compositor/compositor_gl.cc6
-rw-r--r--views/run_all_unittests.cc6
-rw-r--r--views/view.cc5
-rw-r--r--views/view.h1
-rw-r--r--views/widget/widget.cc3
6 files changed, 25 insertions, 4 deletions
diff --git a/chrome/test/unit/chrome_test_suite.cc b/chrome/test/unit/chrome_test_suite.cc
index f3e0335..3acb89a 100644
--- a/chrome/test/unit/chrome_test_suite.cc
+++ b/chrome/test/unit/chrome_test_suite.cc
@@ -21,6 +21,9 @@
#include "net/base/net_errors.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/ui_base_paths.h"
+#if defined(TOOLKIT_VIEWS)
+#include "views/view.h"
+#endif
#if defined(OS_MACOSX)
#include "base/mac/mac_util.h"
@@ -141,6 +144,11 @@ void ChromeTestSuite::Initialize() {
RemoveSharedMemoryFile(stats_filename_);
stats_table_ = new base::StatsTable(stats_filename_, 20, 200);
base::StatsTable::set_current(stats_table_);
+
+#if defined(TOUCH_UI)
+ // Turn of GPU compositing in browser during unit tests.
+ views::View::set_use_acceleration_when_possible(false);
+#endif
}
void ChromeTestSuite::Shutdown() {
diff --git a/ui/gfx/compositor/compositor_gl.cc b/ui/gfx/compositor/compositor_gl.cc
index 794d836..e591e2a 100644
--- a/ui/gfx/compositor/compositor_gl.cc
+++ b/ui/gfx/compositor/compositor_gl.cc
@@ -357,9 +357,9 @@ bool CompositorGL::InitShaders() {
// static
Compositor* Compositor::Create(gfx::AcceleratedWidget widget) {
- gfx::GLSurface::InitializeOneOff();
- if (gfx::GetGLImplementation() != gfx::kGLImplementationNone)
- return new glHidden::CompositorGL(widget);
+ gfx::GLSurface::InitializeOneOff();
+ if (gfx::GetGLImplementation() != gfx::kGLImplementationNone)
+ return new glHidden::CompositorGL(widget);
return NULL;
}
#else
diff --git a/views/run_all_unittests.cc b/views/run_all_unittests.cc
index 611a77c..3a0e106 100644
--- a/views/run_all_unittests.cc
+++ b/views/run_all_unittests.cc
@@ -6,6 +6,7 @@
#include "base/test/test_suite.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/ui_base_paths.h"
+#include "views/view.h"
class ViewTestSuite : public base::TestSuite {
public:
@@ -17,6 +18,11 @@ class ViewTestSuite : public base::TestSuite {
ui::RegisterPathProvider();
base::TestSuite::Initialize();
ResourceBundle::InitSharedInstance("en-US");
+
+#if defined(TOUCH_UI)
+ // Disable GPU browser compositor during unit tests.
+ views::View::set_use_acceleration_when_possible(false);
+#endif
}
};
diff --git a/views/view.cc b/views/view.cc
index 45c9a28..274384a 100644
--- a/views/view.cc
+++ b/views/view.cc
@@ -762,6 +762,11 @@ void View::set_use_acceleration_when_possible(bool use) {
use_acceleration_when_possible = use;
}
+// static
+bool View::get_use_acceleration_when_possible() {
+ return use_acceleration_when_possible;
+}
+
// Input -----------------------------------------------------------------------
View* View::GetEventHandlerForPoint(const gfx::Point& point) {
diff --git a/views/view.h b/views/view.h
index caf0ea7..84fd459 100644
--- a/views/view.h
+++ b/views/view.h
@@ -546,6 +546,7 @@ class View : public AcceleratorTarget {
// Enable/Disable accelerated compositing.
static void set_use_acceleration_when_possible(bool use);
+ static bool get_use_acceleration_when_possible();
// Input ---------------------------------------------------------------------
// The points (and mouse locations) in the following functions are in the
diff --git a/views/widget/widget.cc b/views/widget/widget.cc
index f81ee88..5dbfe44 100644
--- a/views/widget/widget.cc
+++ b/views/widget/widget.cc
@@ -757,7 +757,8 @@ void Widget::EnsureCompositor() {
// TODO(sad): If there is a parent Widget, then use the same compositor
// instead of creating a new one here.
gfx::AcceleratedWidget widget = native_widget_->GetAcceleratedWidget();
- if (widget != gfx::kNullAcceleratedWidget)
+ if (widget != gfx::kNullAcceleratedWidget &&
+ View::get_use_acceleration_when_possible())
compositor_ = ui::Compositor::Create(widget);
}