[webkitgtk3/f17] add patches to fix non SSE2 device crashes, flickering when drawing some widgets

Peter Robinson pbrobinson at fedoraproject.org
Wed Apr 18 10:18:03 UTC 2012


commit 37728c3c026b26471a6d9c81c236f7eed88b79fe
Author: Peter Robinson <pbrobinson at gmail.com>
Date:   Wed Apr 18 11:17:58 2012 +0100

    add patches to fix non SSE2 device crashes, flickering when drawing some widgets

 webkit-r113389.diff |   30 ++++++++++++++++++++++++++++++
 webkit-r114385.diff |   40 ++++++++++++++++++++++++++++++++++++++++
 webkitgtk3.spec     |   12 +++++++++++-
 3 files changed, 81 insertions(+), 1 deletions(-)
---
diff --git a/webkit-r113389.diff b/webkit-r113389.diff
new file mode 100644
index 0000000..ac7f728
--- /dev/null
+++ b/webkit-r113389.diff
@@ -0,0 +1,30 @@
+Index: /trunk/Source/JavaScriptCore/ChangeLog
+===================================================================
+--- /trunk/Source/JavaScriptCore/ChangeLog	(revision 113365)
++++ /trunk/Source/JavaScriptCore/ChangeLog	(revision 113389)
+@@ -1,2 +1,14 @@
++2012-04-05  Oliver Hunt  <oliver at apple.com>
++
++        SIGILL in JavaScriptCore on a Geode processor
++        https://bugs.webkit.org/show_bug.cgi?id=82496
++
++        Reviewed by Gavin Barraclough.
++
++        Don't attempt to use the DFG when SSE2 is not available.
++
++        * dfg/DFGCapabilities.cpp:
++        (JSC::DFG::canCompileOpcodes):
++
+ 2012-04-05  Oliver Hunt  <oliver at apple.com>
+ 
+Index: /trunk/Source/JavaScriptCore/dfg/DFGCapabilities.cpp
+===================================================================
+--- /trunk/Source/JavaScriptCore/dfg/DFGCapabilities.cpp	(revision 98179)
++++ /trunk/Source/JavaScriptCore/dfg/DFGCapabilities.cpp	(revision 113389)
+@@ -62,4 +62,6 @@
+ bool canCompileOpcodes(CodeBlock* codeBlock)
+ {
++    if (!MacroAssembler::supportsFloatingPoint())
++        return false;
+     return canHandleOpcodes<canCompileOpcode>(codeBlock);
+ }
diff --git a/webkit-r114385.diff b/webkit-r114385.diff
new file mode 100644
index 0000000..e85dafa
--- /dev/null
+++ b/webkit-r114385.diff
@@ -0,0 +1,40 @@
+Index: /trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp
+===================================================================
+--- /trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp	(revision 113147)
++++ /trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp	(revision 114385)
+@@ -3623,5 +3623,4 @@
+ 
+     gtk_widget_set_can_focus(GTK_WIDGET(webView), TRUE);
+-    gtk_widget_set_double_buffered(GTK_WIDGET(webView), FALSE);
+ 
+     priv->mainFrame = WEBKIT_WEB_FRAME(webkit_web_frame_new(webView));
+Index: /trunk/Source/WebKit/gtk/ChangeLog
+===================================================================
+--- /trunk/Source/WebKit/gtk/ChangeLog	(revision 113533)
++++ /trunk/Source/WebKit/gtk/ChangeLog	(revision 114385)
+@@ -1,2 +1,25 @@
++2012-04-17  Carlos Garnacho  <carlos at lanedo.com>
++
++        [GTK] Enable back double buffering on WebKitWebView to fix flickering
++        https://bugs.webkit.org/show_bug.cgi?id=84149
++
++        Reviewed by Martin Robinson.
++
++        Despite having WebKitWebView its own backing buffer, calling
++        gtk_widget_set_double_buffered(...,FALSE) may still pose side
++        effects, such as ensuring that all drawing operations are 
++        flushed to the X server before rendering a non-double buffered
++        widget, which may translate into flickering of the parent 
++        GdkWindow before the WebKitWebView itself is rendered. 
++
++        Enabling back double buffering solves this as all contents are 
++        first composited together before getting to the front buffer,
++        but effectively acts as 3rd buffer. This is sort of unavoidable
++        unless GTK+ gains a "let me take ownership of the backing buffer
++        for this widget", which currently lacks.
++
++        * webkit/webkitwebview.cpp:
++        (webkit_web_view_init): Remove call to gtk_widget_set_double_buffered(..., FALSE)
++
+ 2012-04-06  Martin Robinson  <mrobinson at igalia.com>
+ 
diff --git a/webkitgtk3.spec b/webkitgtk3.spec
index fa43a6f..b9a398d 100644
--- a/webkitgtk3.spec
+++ b/webkitgtk3.spec
@@ -7,7 +7,7 @@
 
 Name:           webkitgtk3
 Version:        1.8.0
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        GTK+ Web content engine library
 
 Group:          Development/Libraries
@@ -18,6 +18,10 @@ Source0:        http://www.webkitgtk.org/webkit-%{version}.tar.xz
 
 Patch1:         webkit-1.3.4-no-execmem.patch
 Patch2:         webkit-1.1.14-nspluginwrapper.patch
+# Fix crash when no SSE2: https://bugs.webkit.org/show_bug.cgi?id=82496
+Patch3:         webkit-r113389.diff
+# Fix flickering when rendering some widgets:  https://bugs.webkit.org/show_bug.cgi?id=84149
+Patch4:         webkit-r114385.diff
 
 BuildRequires:  bison
 BuildRequires:  chrpath
@@ -82,6 +86,8 @@ This package contains developer documentation for %{name}.
 # tbzatek - doesn't apply, is this fixed?
 # %patch1 -p1 -b .no-execmem
 %patch2 -p1 -b .nspluginwrapper
+%patch3 -p1 -b .fix-no-sse2
+%patch4 -p1 -b .fix-flicker
 
 %build
 %ifarch s390 %{arm} ppc
@@ -172,6 +178,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas
 
 
 %changelog
+* Wed Apr 18 2012 Peter Robinson <pbrobinson at fedoraproject.org> - 1.8.0-3
+- Add upstream patch to fix crash when SSE2 isn't present
+- Add upstream patch to flickering when some widgets are drawn
+
 * Mon Apr 09 2012 Kalev Lember <kalevlember at gmail.com> - 1.8.0-2
 - Finish splitting out a -doc subpackage (#808917)
 


More information about the scm-commits mailing list