diff options
author | Jean-François Rameau <jframeau@cvs.gnome.org> | 2006-10-23 01:08:06 +0800 |
---|---|---|
committer | Jean-François Rameau <jframeau@src.gnome.org> | 2006-10-23 01:08:06 +0800 |
commit | f2d423a34e23b3d785fab96c9c14925bdbe16591 (patch) | |
tree | 9bea04c2dc966a64887bd56796bc08c6051038f1 /src | |
parent | 461daa07586775c39d72c22287e0ab1fd1f9cf34 (diff) | |
download | gsoc2013-epiphany-f2d423a34e23b3d785fab96c9c14925bdbe16591.tar.gz gsoc2013-epiphany-f2d423a34e23b3d785fab96c9c14925bdbe16591.tar.zst gsoc2013-epiphany-f2d423a34e23b3d785fab96c9c14925bdbe16591.zip |
Get keyword search back by passing ALLOW_THIRD_PARTY_FIXUP flag to gecko.
2006-10-22 Jean-François Rameau <jframeau@cvs.gnome.org>
* embed/ephy-embed.h:
* embed/ephy-embed.c:
* embed/mozilla/EphyBrowser.cpp:
* embed/mozilla/EphyBrowser.h:
* embed/mozilla/mozilla-embed.cpp:
* src/ephy-link.h:
* src/ephy-location-action.c: (action_activated_cb):
* src/ephy-shell.c: (ephy_shell_new_tab_full):
* src/ephy-shell.h:
* src/ephy-window.c: (ephy_window_open_link):
Get keyword search back by passing ALLOW_THIRD_PARTY_FIXUP flag to gecko.
Add a new load method to EphyEmbed to custom load behaviour and pass (optional) referrer.
Fix bug #350053.
Diffstat (limited to 'src')
-rw-r--r-- | src/ephy-link.h | 3 | ||||
-rw-r--r-- | src/ephy-location-action.c | 4 | ||||
-rw-r--r-- | src/ephy-shell.c | 18 | ||||
-rw-r--r-- | src/ephy-shell.h | 4 | ||||
-rw-r--r-- | src/ephy-window.c | 20 |
5 files changed, 43 insertions, 6 deletions
diff --git a/src/ephy-link.h b/src/ephy-link.h index c7ff4971d..48dbc9f3a 100644 --- a/src/ephy-link.h +++ b/src/ephy-link.h @@ -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 --git a/src/ephy-location-action.c b/src/ephy-location-action.c index 6114d52e7..df230479c 100644 --- a/src/ephy-location-action.c +++ b/src/ephy-location-action.c @@ -139,7 +139,7 @@ action_activated_cb (GtkEntryCompletion *completion, 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 --git a/src/ephy-shell.c b/src/ephy-shell.c index 58b387872..30ee3135f 100644 --- a/src/ephy-shell.c +++ b/src/ephy-shell.c @@ -530,8 +530,24 @@ ephy_shell_new_tab_full (EphyShell *shell, } 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; + } + /* FIXME */ + /* We need to audit every caller to see if this + won't make us send referer for undesirable loads. + Passing NULL referrer atm */ + ephy_embed_load (embed, url, load_flags, NULL); + is_empty = url_is_empty (url); } diff --git a/src/ephy-shell.h b/src/ephy-shell.h index 0d8de4132..e1eca3ba2 100644 --- a/src/ephy-shell.h +++ b/src/ephy-shell.h @@ -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 --git a/src/ephy-window.c b/src/ephy-window.c index 04539f2b9..000c0fbab 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -2970,7 +2970,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; @@ -2987,6 +2989,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, @@ -2999,7 +3005,17 @@ ephy_window_open_link (EphyLink *link, embed = ephy_tab_get_embed (tab); - ephy_embed_load_url (embed, address); + 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) { |