[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