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

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


commit a0c39377f6e1fb66aeba90d32668f35a518efb34
Author: Peter Robinson <pbrobinson at gmail.com>
Date:   Wed Apr 18 11:21:40 2012 +0100

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

 webkit-r113389.diff |   30 ++++++++++++++++++++++++++++++
 webkit-r114385.diff |   40 ++++++++++++++++++++++++++++++++++++++++
 webkitgtk.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/webkitgtk.spec b/webkitgtk.spec
index ff250b6..b6f909d 100644
--- a/webkitgtk.spec
+++ b/webkitgtk.spec
@@ -23,7 +23,7 @@
 
 Name:		webkitgtk
 Version:	1.8.0
-Release:	3%{?dist}
+Release:	4%{?dist}
 Summary:	GTK+ Web content engine library
 
 Provides:	WebKit-gtk = %{version}-%{release}
@@ -37,6 +37,10 @@ Source0:	http://www.webkitgtk.org/releases/webkit-%{version}.tar.xz
 
 # add support for nspluginwrapper. 
 Patch2: 	webkit-1.3.10-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
@@ -102,6 +106,8 @@ This package contains developer documentation for %{name}.
 %prep
 %setup -qn "webkit-%{version}"
 %patch2 -p1 -b .nspluginwrapper
+%patch3 -p1 -b .fix-no-sse2
+%patch4 -p1 -b .fix-flicker
 
 %build
 %ifarch s390 %{arm}
@@ -202,6 +208,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas
 %{_datadir}/gtk-doc/html/webkitgtk
 
 %changelog
+* Wed Apr 18 2012 Peter Robinson <pbrobinson at fedoraproject.org> - 1.8.0-4
+- Add upstream patch to fix crash when SSE2 isn't present
+- Add upstream patch to flickering when some widgets are drawn
+
 * Fri Apr 13 2012 Dan HorĂ¡k <dan[at]danny.cz> - 1.8.0-3
 - updated s390/ppc build options to match webkitgtk3
 


More information about the scm-commits mailing list