Index: ui/gl/gl_surface_egl.cc |
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc |
index 8c29342ab408e2f0e10fb0ff370807d449c5646c..9fe06ff6809216f10f77c42ae66185c3c1f38123 100644 |
--- a/ui/gl/gl_surface_egl.cc |
+++ b/ui/gl/gl_surface_egl.cc |
@@ -25,6 +25,10 @@ |
#include "ui/gl/gl_switches.h" |
#include "ui/gl/scoped_make_current.h" |
+#if defined(OS_ANDROID) |
+#include "ui/gl/android/surface_factory_webview.h" |
+#endif |
+ |
#if defined(USE_X11) |
extern "C" { |
#include <X11/Xlib.h> |
@@ -647,7 +651,15 @@ GLSurface::CreateViewGLSurface(gfx::AcceleratedWidget window) { |
if(surface->Initialize(sync_provider)) |
return surface; |
} else { |
- scoped_refptr<GLSurface> surface = new GLSurfaceStub(); |
+ scoped_refptr<GLSurface> surface; |
+ |
+#if defined(OS_ANDROID) |
+ if (SurfaceFactoryWebView* factory = SurfaceFactoryWebView::GetInstance()) |
+ surface = factory->CreateNonOwnedViewSurface(); |
+#endif |
+ |
+ if (!surface) |
+ surface = new GLSurfaceStub(); |
if (surface->Initialize()) |
return surface; |
} |