diff options
author | Daniel Gryniewicz <dang@gentoo.org> | 2006-11-17 17:13:47 +0000 |
---|---|---|
committer | Daniel Gryniewicz <dang@gentoo.org> | 2006-11-17 17:13:47 +0000 |
commit | 1144416a60adb3bcad6d14f964e23e55572fadd0 (patch) | |
tree | 968a0bec1beebda423bf6d6948cd885775f171bf /www-client/epiphany/files | |
parent | Add ~sparc-fbsd keyword. (diff) | |
download | gentoo-2-1144416a60adb3bcad6d14f964e23e55572fadd0.tar.gz gentoo-2-1144416a60adb3bcad6d14f964e23e55572fadd0.tar.bz2 gentoo-2-1144416a60adb3bcad6d14f964e23e55572fadd0.zip |
fixes for bug #153902 and Bug #155380
(Portage version: 2.1.2_rc1-r7)
Diffstat (limited to 'www-client/epiphany/files')
-rw-r--r-- | www-client/epiphany/files/epiphany-2.16.1-dbus-1.patch | 38 | ||||
-rw-r--r-- | www-client/epiphany/files/epiphany-2.16.1-firefox2.patch | 326 |
2 files changed, 364 insertions, 0 deletions
diff --git a/www-client/epiphany/files/epiphany-2.16.1-dbus-1.patch b/www-client/epiphany/files/epiphany-2.16.1-dbus-1.patch new file mode 100644 index 000000000000..b8eb5f85063e --- /dev/null +++ b/www-client/epiphany/files/epiphany-2.16.1-dbus-1.patch @@ -0,0 +1,38 @@ +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/src/ephy-dbus.c epiphany-2.16.1/src/ephy-dbus.c +--- epiphany-2.16.1.orig/src/ephy-dbus.c 2006-09-13 07:48:50.000000000 -0400 ++++ epiphany-2.16.1/src/ephy-dbus.c 2006-11-17 11:20:53.000000000 -0500 +@@ -301,16 +301,6 @@ ephy_dbus_connect_to_session_bus (EphyDb + return TRUE; + } + +-static void +-ephy_dbus_disconnect_bus (DBusGConnection *bus) +-{ +- if (bus != NULL) { +- dbus_connection_close +- (dbus_g_connection_get_connection (bus)); +- dbus_g_connection_unref (bus); +- } +-} +- + /* Public methods */ + + static void +@@ -337,7 +327,7 @@ ephy_dbus_shutdown (EphyDbus *dbus) + dbus_connection_remove_filter + (dbus_g_connection_get_connection (priv->session_bus), + session_filter_func, dbus); +- ephy_dbus_disconnect_bus (priv->session_bus); ++ dbus_g_connection_unref (priv->session_bus); + priv->session_bus = NULL; + } + +@@ -346,7 +336,7 @@ ephy_dbus_shutdown (EphyDbus *dbus) + dbus_connection_remove_filter + (dbus_g_connection_get_connection (priv->system_bus), + system_filter_func, dbus); +- ephy_dbus_disconnect_bus (priv->system_bus); ++ dbus_g_connection_unref (priv->system_bus); + priv->system_bus = NULL; + } + } diff --git a/www-client/epiphany/files/epiphany-2.16.1-firefox2.patch b/www-client/epiphany/files/epiphany-2.16.1-firefox2.patch new file mode 100644 index 000000000000..9dbf6fc4d22b --- /dev/null +++ b/www-client/epiphany/files/epiphany-2.16.1-firefox2.patch @@ -0,0 +1,326 @@ +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/embed/ephy-embed.c epiphany-2.16.1/embed/ephy-embed.c +--- epiphany-2.16.1.orig/embed/ephy-embed.c 2006-09-13 07:48:29.000000000 -0400 ++++ epiphany-2.16.1/embed/ephy-embed.c 2006-11-17 11:17:32.000000000 -0500 +@@ -423,6 +423,25 @@ ephy_embed_load_url (EphyEmbed *embed, + } + + /** ++ * ephy_embed_load: ++ * @embed: an #EphyEmbed ++ * @url: an URL ++ * @flags: flags modifying load behaviour ++ * @previous_embed: the referrer embed or %NULL ++ * ++ * Loads a new web page in @embed. ++ **/ ++void ++ephy_embed_load (EphyEmbed *embed, ++ const char *url, ++ EphyEmbedLoadFlags flags, ++ EphyEmbed *referring_embed) ++{ ++ EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed); ++ iface->load (embed, url, flags, referring_embed); ++} ++ ++/** + * ephy_embed_stop_load: + * @embed: an #EphyEmbed + * +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/embed/ephy-embed.h epiphany-2.16.1/embed/ephy-embed.h +--- epiphany-2.16.1.orig/embed/ephy-embed.h 2006-09-13 07:48:29.000000000 -0400 ++++ epiphany-2.16.1/embed/ephy-embed.h 2006-11-17 11:17:32.000000000 -0500 +@@ -63,6 +63,12 @@ typedef enum + EPHY_EMBED_CHROME_BOOKMARKSBAR = 1 << 3 + } EphyEmbedChrome; + ++typedef enum ++{ ++ EPHY_EMBED_LOAD_FLAGS_NONE = 1 << 0, ++ EPHY_EMBED_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP = 1 << 1, ++} EphyEmbedLoadFlags; ++ + #define EPHY_EMBED_CHROME_ALL (EPHY_EMBED_CHROME_MENUBAR | \ + EPHY_EMBED_CHROME_TOOLBAR | \ + EPHY_EMBED_CHROME_STATUSBAR | \ +@@ -157,6 +163,10 @@ struct _EphyEmbedIface + /* Methods */ + void (* load_url) (EphyEmbed *embed, + const char *url); ++ void (* load) (EphyEmbed *embed, ++ const char *url, ++ EphyEmbedLoadFlags flags, ++ EphyEmbed *referring_embed); + void (* stop_load) (EphyEmbed *embed); + void (* reload) (EphyEmbed *embed, + gboolean force); +@@ -232,6 +242,10 @@ GType ephy_embed_get_type (void); + /* Base */ + void ephy_embed_load_url (EphyEmbed *embed, + const char *url); ++void ephy_embed_load (EphyEmbed *embed, ++ const char *url, ++ EphyEmbedLoadFlags flags, ++ EphyEmbed *referring_embed); + + void ephy_embed_stop_load (EphyEmbed *embed); + +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/embed/mozilla/EphyBrowser.cpp epiphany-2.16.1/embed/mozilla/EphyBrowser.cpp +--- epiphany-2.16.1.orig/embed/mozilla/EphyBrowser.cpp 2006-09-13 07:48:34.000000000 -0400 ++++ epiphany-2.16.1/embed/mozilla/EphyBrowser.cpp 2006-11-17 11:17:32.000000000 -0500 +@@ -1524,3 +1524,55 @@ EphyBrowser::Close () + + return domWin->Close(); + } ++ ++nsresult ++EphyBrowser::GetPIDOMWindow(nsPIDOMWindow **aPIWin) ++{ ++ *aPIWin = nsnull; ++ ++ // get the private DOM window ++ nsCOMPtr<nsPIDOMWindow> domWindowPrivate = do_QueryInterface(mDOMWindow); ++ ++ // and the root window for that DOM window ++ *aPIWin = domWindowPrivate->GetPrivateRoot(); ++ ++ if (*aPIWin) ++ { ++ NS_ADDREF(*aPIWin); ++ return NS_OK; ++ } ++ ++ return NS_ERROR_FAILURE; ++ ++} ++ ++nsresult ++EphyBrowser::LoadURI(const char *aURI, ++ PRUint32 aLoadFlags, ++ nsIURI *aReferrer) ++{ ++ nsString uURI; ++ nsresult rv = NS_OK; ++ ++ NS_CStringToUTF16 (nsCString (aURI), NS_CSTRING_ENCODING_UTF8, uURI); ++ ++ if (uURI.Length() == 0) return NS_OK; ++ ++ nsCOMPtr<nsIWebNavigation> contentNav = do_QueryInterface (mWebBrowser); ++ NS_ENSURE_TRUE (contentNav, NS_ERROR_FAILURE); ++ ++ nsCOMPtr<nsPIDOMWindow> piWin; ++ rv = GetPIDOMWindow(getter_AddRefs(piWin)); ++ NS_ENSURE_SUCCESS (rv, rv); ++ ++ nsAutoPopupStatePusher popupStatePusher(piWin, openAllowed); ++ ++ rv = contentNav->LoadURI(uURI.get(), // URI string ++ aLoadFlags, // Load flags ++ aReferrer, // Referring URI ++ nsnull, // Post data ++ nsnull); // extra headers ++ ++ return rv; ++} ++ +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/embed/mozilla/EphyBrowser.h epiphany-2.16.1/embed/mozilla/EphyBrowser.h +--- epiphany-2.16.1.orig/embed/mozilla/EphyBrowser.h 2006-09-13 07:48:35.000000000 -0400 ++++ epiphany-2.16.1/embed/mozilla/EphyBrowser.h 2006-11-17 11:17:32.000000000 -0500 +@@ -36,6 +36,7 @@ + #include <nsIWebBrowserFocus.h> + #include <nsIWebBrowser.h> + #include <nsIWebNavigation.h> ++#include <nsPIDOMWindow.h> + + #ifdef ALLOW_PRIVATE_API + #include <nsIContentViewer.h> +@@ -172,6 +173,7 @@ public: + nsresult GetDocumentURI (nsIURI **aURI); + nsresult GetTargetDocumentURI (nsIURI **aURI); + nsresult GetDOMWindow (nsIDOMWindow **window); ++ nsresult GetPIDOMWindow(nsPIDOMWindow **aPIWin); + + nsresult GetHasModifiedForms (PRBool *modified); + +@@ -183,6 +185,10 @@ public: + + nsresult Close (); + ++ nsresult LoadURI(const char *aURI, ++ PRUint32 aLoadFlags = nsIWebNavigation::LOAD_FLAGS_NONE, ++ nsIURI *aURI = nsnull); ++ + EphyEmbedDocumentType GetDocumentType (); + + nsCOMPtr<nsIWebBrowser> mWebBrowser; +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/embed/mozilla/mozilla-embed.cpp epiphany-2.16.1/embed/mozilla/mozilla-embed.cpp +--- epiphany-2.16.1.orig/embed/mozilla/mozilla-embed.cpp 2006-09-13 07:48:39.000000000 -0400 ++++ epiphany-2.16.1/embed/mozilla/mozilla-embed.cpp 2006-11-17 11:18:04.000000000 -0500 +@@ -324,6 +324,42 @@ impl_load_url (EphyEmbed *embed, + gtk_moz_embed_load_url (GTK_MOZ_EMBED(embed), url); + } + ++static char * impl_get_location (EphyEmbed *embed, gboolean toplevel); ++ ++static void ++impl_load (EphyEmbed *embed, ++ const char *url, ++ EphyEmbedLoadFlags flags, ++ EphyEmbed *preview_embed) ++{ ++ EphyBrowser *browser; ++ ++ browser = MOZILLA_EMBED(embed)->priv->browser; ++ g_return_if_fail (browser != NULL); ++ ++ nsCOMPtr<nsIURI> uri; ++ if (preview_embed != NULL) ++ { ++ EphyBrowser *pbrowser; ++ ++ pbrowser = MOZILLA_EMBED(preview_embed)->priv->browser; ++ if (pbrowser != NULL) ++ { ++ pbrowser->GetDocumentURI (getter_AddRefs (uri)); ++ } ++ } ++#ifdef HAVE_GECKO_1_8_1 ++ if (flags & EPHY_EMBED_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP) ++ { ++ browser->LoadURI (url, nsIWebNavigation::LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP, uri); ++ } ++ else ++#endif /* HAVE_GECKO_1_8_1 */ ++ { ++ browser->LoadURI (url, nsIWebNavigation::LOAD_FLAGS_NONE, uri); ++ } ++} ++ + static void + impl_stop_load (EphyEmbed *embed) + { +@@ -1114,6 +1150,7 @@ static void + ephy_embed_iface_init (EphyEmbedIface *iface) + { + iface->load_url = impl_load_url; ++ iface->load = impl_load; + iface->stop_load = impl_stop_load; + iface->can_go_back = impl_can_go_back; + iface->can_go_forward =impl_can_go_forward; +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/src/ephy-link.h epiphany-2.16.1/src/ephy-link.h +--- epiphany-2.16.1.orig/src/ephy-link.h 2006-09-13 07:48:52.000000000 -0400 ++++ epiphany-2.16.1/src/ephy-link.h 2006-11-17 11:17:32.000000000 -0500 +@@ -41,7 +41,8 @@ typedef enum
+ {
+ EPHY_LINK_NEW_WINDOW = 1 << 0,
+ EPHY_LINK_NEW_TAB = 1 << 1,
+- EPHY_LINK_JUMP_TO = 1 << 2
++ EPHY_LINK_JUMP_TO = 1 << 2,
++ EPHY_LINK_ALLOW_FIXUP = 1 << 3
+ } EphyLinkFlags;
+
+ struct _EphyLinkIface
+diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/src/ephy-location-action.c epiphany-2.16.1/src/ephy-location-action.c +--- epiphany-2.16.1.orig/src/ephy-location-action.c 2006-09-13 07:48:52.000000000 -0400 ++++ epiphany-2.16.1/src/ephy-location-action.c 2006-11-17 11:17:32.000000000 -0500 +@@ -139,7 +139,7 @@ action_activated_cb (GtkEntryCompletion + if (url == NULL) return; + + ephy_link_open (EPHY_LINK (action), url, NULL, +- ephy_link_flags_from_current_event ()); ++ ephy_link_flags_from_current_event () | EPHY_LINK_ALLOW_FIXUP); + + g_free (url); + } +@@ -162,7 +162,7 @@ entry_activate_cb (GtkEntry *entry, + g_return_if_fail (address != NULL); + + ephy_link_open (EPHY_LINK (action), address, NULL, +- ephy_link_flags_from_current_event ()); ++ ephy_link_flags_from_current_event () | EPHY_LINK_ALLOW_FIXUP); + + g_free (address); + } +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/src/ephy-shell.c epiphany-2.16.1/src/ephy-shell.c +--- epiphany-2.16.1.orig/src/ephy-shell.c 2006-09-13 07:48:52.000000000 -0400 ++++ epiphany-2.16.1/src/ephy-shell.c 2006-11-17 11:17:32.000000000 -0500 +@@ -530,8 +530,20 @@ ephy_shell_new_tab_full (EphyShell *shel + } + else if (flags & EPHY_NEW_TAB_OPEN_PAGE) + { ++ EphyEmbedLoadFlags load_flags = 0; ++ + g_assert (url != NULL); +- ephy_embed_load_url (embed, url); ++ ++ if (flags & EPHY_NEW_TAB_ALLOW_FIXUP) ++ { ++ load_flags = EPHY_EMBED_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP; ++ } ++ else ++ { ++ load_flags = EPHY_EMBED_LOAD_FLAGS_NONE; ++ } ++ ephy_embed_load (embed, url, load_flags, previous_embed); ++ + is_empty = url_is_empty (url); + } + +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/src/ephy-shell.h epiphany-2.16.1/src/ephy-shell.h +--- epiphany-2.16.1.orig/src/ephy-shell.h 2006-09-13 07:48:53.000000000 -0400 ++++ epiphany-2.16.1/src/ephy-shell.h 2006-11-17 11:17:32.000000000 -0500 +@@ -62,6 +62,10 @@ typedef enum + EPHY_NEW_TAB_JUMP = 1 << 9, + EPHY_NEW_TAB_IN_NEW_WINDOW = 1 << 10, + EPHY_NEW_TAB_IN_EXISTING_WINDOW = 1 << 11, ++ ++ /* The way to load */ ++ EPHY_NEW_TAB_ALLOW_FIXUP = 1 << 12, ++ + } EphyNewTabFlags; + + struct _EphyShell +diff --exclude-from=/home/dang/.diffrc -up -ruN epiphany-2.16.1.orig/src/ephy-window.c epiphany-2.16.1/src/ephy-window.c +--- epiphany-2.16.1.orig/src/ephy-window.c 2006-09-13 07:48:53.000000000 -0400 ++++ epiphany-2.16.1/src/ephy-window.c 2006-11-17 11:17:32.000000000 -0500 +@@ -2976,7 +2976,9 @@ ephy_window_open_link (EphyLink *link, + tab = ephy_window_get_active_tab (window); + } + +- if (flags != 0) ++ if (flags & (EPHY_LINK_JUMP_TO | ++ EPHY_LINK_NEW_TAB | ++ EPHY_LINK_NEW_WINDOW)) + { + EphyNewTabFlags ntflags = EPHY_NEW_TAB_OPEN_PAGE; + +@@ -2993,6 +2995,10 @@ ephy_window_open_link (EphyLink *link, + { + ntflags |= EPHY_NEW_TAB_IN_EXISTING_WINDOW; + } ++ if (flags & EPHY_LINK_ALLOW_FIXUP) ++ { ++ ntflags |= EPHY_NEW_TAB_ALLOW_FIXUP; ++ } + + new_tab = ephy_shell_new_tab + (ephy_shell, +@@ -3005,7 +3011,17 @@ ephy_window_open_link (EphyLink *link, + + embed = ephy_tab_get_embed (tab); + ++ if (flags & EPHY_LINK_ALLOW_FIXUP) ++ { ++ ephy_embed_load (embed, ++ address, ++ EPHY_EMBED_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP, ++ NULL); ++ } ++ else ++ { + ephy_embed_load_url (embed, address); ++ } + + if (address == NULL || address[0] == '\0' || strcmp (address, "about:blank") == 0) + { |