[epiphany/f21] Actually add patches

catanzaro catanzaro at fedoraproject.org
Sat Feb 28 17:00:17 UTC 2015


commit 2620ae390f843f5bcbeb83c53c2b3385d6b3a2d4
Author: Michael Catanzaro <mcatanzaro at gnome.org>
Date:   Sat Feb 28 11:00:03 2015 -0600

    Actually add patches

 ...any-setup-web-extensions-connection-crash.patch | 30 +++++++++++++
 ...b-dom-utils-find-form-auth-elements-crash.patch | 50 ++++++++++++++++++++++
 ...hany-web-extension-proxy-created-cb-crash.patch | 48 +++++++++++++++++++++
 3 files changed, 128 insertions(+)
---
diff --git a/epiphany-setup-web-extensions-connection-crash.patch b/epiphany-setup-web-extensions-connection-crash.patch
new file mode 100644
index 0000000..677d39c
--- /dev/null
+++ b/epiphany-setup-web-extensions-connection-crash.patch
@@ -0,0 +1,30 @@
+From 7fd59fa5909e6fb5b87e9d216cbd0cb94ddecf61 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro at igalia.com>
+Date: Wed, 11 Feb 2015 16:37:16 -0600
+Subject: Fix crash when we can't connect to the session bus
+
+This GError is never initialized. g_application_get_dbus_connection()
+does not take a GError.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=744360
+
+diff --git a/embed/ephy-embed-shell.c b/embed/ephy-embed-shell.c
+index 360bffd..e5f447a 100644
+--- a/embed/ephy-embed-shell.c
++++ b/embed/ephy-embed-shell.c
+@@ -525,12 +525,9 @@ initialize_web_extensions (WebKitWebContext* web_context,
+ static void
+ ephy_embed_shell_setup_web_extensions_connection (EphyEmbedShell *shell)
+ {
+-  GError *error = NULL;
+-
+   shell->priv->bus = g_application_get_dbus_connection (G_APPLICATION (shell));
+   if (!shell->priv->bus) {
+-    g_warning ("Application not connected to session bus: %s\n", error->message);
+-    g_error_free (error);
++    g_warning ("Application not connected to session bus");
+     return;
+   }
+ 
+-- 
+cgit v0.10.2
diff --git a/epiphany-web-dom-utils-find-form-auth-elements-crash.patch b/epiphany-web-dom-utils-find-form-auth-elements-crash.patch
new file mode 100644
index 0000000..81f0b0b
--- /dev/null
+++ b/epiphany-web-dom-utils-find-form-auth-elements-crash.patch
@@ -0,0 +1,50 @@
+From 017109b4ad6f2cea1990c1be987aff19c475bbe2 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro at igalia.com>
+Date: Fri, 27 Feb 2015 13:07:43 -0600
+Subject: [PATCH] Fix crash when receiving a NULL string from DOM bindings
+
+As of WebKitGTK+ 2.6.5: "Object DOM bindings API now correctly returns
+NULL intead of empty strings to be able to differentiate between not
+present and present but empty."
+
+This was causing crashes on e.g.
+http://www.publico.pt/local/noticia/sindicato-anuncia-adiamento-de-greve-no-metro-de-lisboa-1687386
+
+https://bugzilla.gnome.org/show_bug.cgi?id=745306
+---
+ lib/ephy-web-dom-utils.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/ephy-web-dom-utils.c b/lib/ephy-web-dom-utils.c
+index 72df883..75c586c 100644
+--- a/lib/ephy-web-dom-utils.c
++++ b/lib/ephy-web-dom-utils.c
+@@ -375,7 +375,7 @@ ephy_web_dom_utils_find_form_auth_elements (WebKitDOMHTMLFormElement *form,
+ 
+     g_object_get (element, "type", &element_type, "name", &element_name, NULL);
+ 
+-    if (g_str_equal (element_type, "text") || g_str_equal (element_type, "email")) {
++    if (g_strcmp0 (element_type, "text") == 0 || g_strcmp0 (element_type, "email") == 0) {
+       /* We found more than one inputs of type text; we won't be saving here. */
+       if (username_node) {
+         g_free (element_type);
+@@ -385,7 +385,7 @@ ephy_web_dom_utils_find_form_auth_elements (WebKitDOMHTMLFormElement *form,
+ 
+       username_node = g_object_ref (element);
+       found_auth_elements = TRUE;
+-    } else if (g_str_equal (element_type, "password")) {
++    } else if (g_strcmp0 (element_type, "password") == 0) {
+       /* We found more than one inputs of type password; we won't be saving here. */
+       if (password_node) {
+         g_free (element_type);
+@@ -398,7 +398,7 @@ ephy_web_dom_utils_find_form_auth_elements (WebKitDOMHTMLFormElement *form,
+ 
+       /* We found an input that usually doesn't require a separate login
+        * adminpw is used by mailman admin pages */
+-      if (g_str_equal (element_name, "adminpw"))
++      if (g_strcmp0 (element_name, "adminpw") == 0)
+         found_auth_no_username_elements = TRUE;
+     }
+ 
+-- 
+2.1.0
diff --git a/epiphany-web-extension-proxy-created-cb-crash.patch b/epiphany-web-extension-proxy-created-cb-crash.patch
new file mode 100644
index 0000000..c506d6c
--- /dev/null
+++ b/epiphany-web-extension-proxy-created-cb-crash.patch
@@ -0,0 +1,48 @@
+From 75fffe3352faa519f5594b9d4f0d67d9418d38b7 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro at igalia.com>
+Date: Sat, 21 Feb 2015 10:19:24 -0600
+Subject: [PATCH 02/20] Fix UI process crash if the web process crashes on
+ start
+
+Currently there is a WebKit bug that causes the web process to crash
+when we use webkit_web_view_load_alternate_html() on a local page, say
+because Epiphany was closed when a file:// URI was opened in an embed
+other than the focused embed. That crash occurs after
+web_extension_appeared_cb() but prior to
+web_extension_proxy_created_cb(), triggering a call to
+web_extension_vanished_cb(), which deletes the EphyWebExtensionProxy
+object that is expected to still be alive when
+web_extension_proxy_created_cb() is called, crashing the UI process.
+We can fix this with a ref/unref pair.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=744896
+---
+ embed/ephy-web-extension-proxy.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/embed/ephy-web-extension-proxy.c b/embed/ephy-web-extension-proxy.c
+index 773e0f9..2e03996 100644
+--- a/embed/ephy-web-extension-proxy.c
++++ b/embed/ephy-web-extension-proxy.c
+@@ -90,6 +90,8 @@ web_extension_proxy_created_cb (GDBusProxy *proxy,
+     g_warning ("Error creating web extension proxy: %s\n", error->message);
+     g_error_free (error);
+   }
++
++  g_object_unref (web_extension);
+ }
+ 
+ static void
+@@ -110,7 +112,9 @@ web_extension_appeared_cb (GDBusConnection *connection,
+                     EPHY_WEB_EXTENSION_INTERFACE,
+                     web_extension->priv->cancellable,
+                     (GAsyncReadyCallback)web_extension_proxy_created_cb,
+-                    web_extension);
++                    /* Ref here because the web process could crash, triggering
++                     * web_extension_vanished_cb() before this finishes. */
++                    g_object_ref (web_extension));
+ }
+ 
+ static void
+-- 
+2.1.0


More information about the scm-commits mailing list