Title: [133570] trunk/Source/WebKit2
- Revision
- 133570
- Author
- [email protected]
- Date
- 2012-11-06 01:34:49 -0800 (Tue, 06 Nov 2012)
Log Message
[EFL] [WK2] Random crash in Minibrowser
https://bugs.webkit.org/show_bug.cgi?id=101241
Patch by Viatcheslav Ostapenko <[email protected]> on 2012-11-06
Reviewed by Gyuyoung Kim.
Do not clear GL context and GL surface in exitAcceleratedCompositing.
* UIProcess/API/efl/EwkViewImpl.cpp:
(EwkViewImpl::createGLSurface):
(EwkViewImpl::enterAcceleratedCompositingMode):
(EwkViewImpl::exitAcceleratedCompositingMode):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (133569 => 133570)
--- trunk/Source/WebKit2/ChangeLog 2012-11-06 08:49:20 UTC (rev 133569)
+++ trunk/Source/WebKit2/ChangeLog 2012-11-06 09:34:49 UTC (rev 133570)
@@ -1,3 +1,17 @@
+2012-11-06 Viatcheslav Ostapenko <[email protected]>
+
+ [EFL] [WK2] Random crash in Minibrowser
+ https://bugs.webkit.org/show_bug.cgi?id=101241
+
+ Reviewed by Gyuyoung Kim.
+
+ Do not clear GL context and GL surface in exitAcceleratedCompositing.
+
+ * UIProcess/API/efl/EwkViewImpl.cpp:
+ (EwkViewImpl::createGLSurface):
+ (EwkViewImpl::enterAcceleratedCompositingMode):
+ (EwkViewImpl::exitAcceleratedCompositingMode):
+
2012-11-05 Sam Weinig <[email protected]>
Need a way to send and receive messages between the WKWebProcessPlugIn object and the client
Modified: trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp (133569 => 133570)
--- trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp 2012-11-06 08:49:20 UTC (rev 133569)
+++ trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp 2012-11-06 09:34:49 UTC (rev 133570)
@@ -501,6 +501,21 @@
#if USE(ACCELERATED_COMPOSITING)
bool EwkViewImpl::createGLSurface(const IntSize& viewSize)
{
+ if (!m_evasGL) {
+ Evas* evas = evas_object_evas_get(m_view);
+ m_evasGL = adoptPtr(evas_gl_new(evas));
+ if (!m_evasGL)
+ return false;
+ }
+
+ if (!m_evasGLContext) {
+ m_evasGLContext = EvasGLContext::create(evasGL());
+ if (!m_evasGLContext) {
+ WARN("Failed to create GLContext.");
+ return false;
+ }
+ }
+
Ewk_View_Smart_Data* sd = smartData();
Evas_GL_Config evasGLConfig = {
@@ -530,42 +545,19 @@
bool EwkViewImpl::enterAcceleratedCompositingMode()
{
- if (m_evasGL) {
- EINA_LOG_DOM_WARN(_ewk_log_dom, "Accelerated compositing mode already entered.");
- return false;
+ if (!m_evasGLSurface) {
+ if (!createGLSurface(size())) {
+ WARN("Failed to create GLSurface.");
+ return false;
+ }
}
- Evas* evas = evas_object_evas_get(m_view);
- m_evasGL = adoptPtr(evas_gl_new(evas));
- if (!m_evasGL)
- return false;
-
- m_evasGLContext = EvasGLContext::create(evasGL());
- if (!m_evasGLContext) {
- EINA_LOG_DOM_WARN(_ewk_log_dom, "Failed to create GLContext.");
- m_evasGL.clear();
- return false;
- }
-
- if (!createGLSurface(size())) {
- EINA_LOG_DOM_WARN(_ewk_log_dom, "Failed to create GLSurface.");
- m_evasGLContext.clear();
- m_evasGL.clear();
- return false;
- }
-
page()->drawingArea()->layerTreeCoordinatorProxy()->layerTreeRenderer()->setActive(true);
return true;
}
bool EwkViewImpl::exitAcceleratedCompositingMode()
{
- EINA_SAFETY_ON_NULL_RETURN_VAL(m_evasGL, false);
-
- m_evasGLSurface.clear();
- m_evasGLContext.clear();
- m_evasGL.clear();
-
return true;
}
#endif
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes