Title: [147553] trunk/Source/WebCore
Revision
147553
Author
zeno.albis...@digia.com
Date
2013-04-03 08:02:37 -0700 (Wed, 03 Apr 2013)

Log Message

[Qt] Fail gracefully if an OpenGL context could not be created.
https://bugs.webkit.org/show_bug.cgi?id=113784

In case we fail to create or adopt a valid platform OpenGL context
we do not want to provide a GraphicsContext3D instance.
Otherwise we would crash as soon as the instance is being used.

Reviewed by Jocelyn Turcotte.

* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3D::GraphicsContext3D):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (147552 => 147553)


--- trunk/Source/WebCore/ChangeLog	2013-04-03 14:36:00 UTC (rev 147552)
+++ trunk/Source/WebCore/ChangeLog	2013-04-03 15:02:37 UTC (rev 147553)
@@ -1,3 +1,18 @@
+2013-04-03  Zeno Albisser  <z...@webkit.org>
+
+        [Qt] Fail gracefully if an OpenGL context could not be created.
+        https://bugs.webkit.org/show_bug.cgi?id=113784
+
+        In case we fail to create or adopt a valid platform OpenGL context
+        we do not want to provide a GraphicsContext3D instance.
+        Otherwise we would crash as soon as the instance is being used.
+
+        Reviewed by Jocelyn Turcotte.
+
+        * platform/graphics/qt/GraphicsContext3DQt.cpp:
+        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
+        (WebCore::GraphicsContext3D::GraphicsContext3D):
+
 2013-04-03  ChangSeok Oh  <changseok...@collabora.com>
 
         [GTK][AC] Implement matrix keyframe animations with clutter ac backend

Modified: trunk/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp (147552 => 147553)


--- trunk/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp	2013-04-03 14:36:00 UTC (rev 147552)
+++ trunk/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp	2013-04-03 15:02:37 UTC (rev 147553)
@@ -111,7 +111,8 @@
 {
     if (renderStyle == GraphicsContext3D::RenderToCurrentGLContext) {
         m_platformContext = QOpenGLContext::currentContext();
-        m_surface = m_platformContext->surface();
+        if (m_platformContext)
+            m_surface = m_platformContext->surface();
         return;
     }
 
@@ -395,8 +396,8 @@
 {
     validateAttributes();
 
-    if (!m_private->m_surface) {
-        LOG_ERROR("GraphicsContext3D: QGLWidget initialization failed.");
+    if (!m_private->m_surface || !m_private->m_platformContext) {
+        LOG_ERROR("GraphicsContext3D: GL context creation failed.");
         m_private = nullptr;
         return;
     }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to