View | Details | Raw Unified
Collapse All | Expand All

(-) embed/mozilla/EphyBrowser.cpp (+52 lines)
 Lines 1524-1526   EphyBrowser::Close () Link Here 
	return domWin->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;
}
(-) embed/mozilla/EphyBrowser.h (+6 lines)
 Lines 36-41    Link Here 
#include <nsIWebBrowserFocus.h>
#include <nsIWebBrowserFocus.h>
#include <nsIWebBrowser.h>
#include <nsIWebBrowser.h>
#include <nsIWebNavigation.h>
#include <nsIWebNavigation.h>
#include <nsPIDOMWindow.h>
#ifdef ALLOW_PRIVATE_API
#ifdef ALLOW_PRIVATE_API
#include <nsIContentViewer.h>
#include <nsIContentViewer.h>
 Lines 172-177   public: Link Here 
	nsresult GetDocumentURI (nsIURI **aURI);
	nsresult GetDocumentURI (nsIURI **aURI);
	nsresult GetTargetDocumentURI (nsIURI **aURI);
	nsresult GetTargetDocumentURI (nsIURI **aURI);
	nsresult GetDOMWindow (nsIDOMWindow **window);
	nsresult GetDOMWindow (nsIDOMWindow **window);
	nsresult GetPIDOMWindow(nsPIDOMWindow **aPIWin);
	nsresult GetHasModifiedForms (PRBool *modified);
	nsresult GetHasModifiedForms (PRBool *modified);
 Lines 182-187   public: Link Here 
	                       PRBool copy_forward, PRBool copy_current);
	                       PRBool copy_forward, PRBool copy_current);
	nsresult Close ();
	nsresult Close ();
	nsresult LoadURI(const char *aURI, 
			 PRUint32 aLoadFlags = nsIWebNavigation::LOAD_FLAGS_NONE, 
			 nsIURI *aURI = nsnull);
        EphyEmbedDocumentType GetDocumentType ();
        EphyEmbedDocumentType GetDocumentType ();
(-) embed/mozilla/mozilla-embed.cpp (+37 lines)
 Lines 324-329   impl_load_url (EphyEmbed *embed, Link Here 
        gtk_moz_embed_load_url (GTK_MOZ_EMBED(embed), url);
        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;
		nsresult rv;
		pbrowser = MOZILLA_EMBED(preview_embed)->priv->browser;
		if (pbrowser != NULL)
		{
			pbrowser->GetDocumentURI (getter_AddRefs (uri));
		}
	}
	if (flags & EPHY_EMBED_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP)
	{
		browser->LoadURI (url, nsIWebNavigation::LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP, uri);	
	}
	else
	{
		browser->LoadURI (url, nsIWebNavigation::LOAD_FLAGS_NONE, uri);	
	}
}
static void
static void
impl_stop_load (EphyEmbed *embed)
impl_stop_load (EphyEmbed *embed)
{
{
 Lines 1114-1119   static void Link Here 
ephy_embed_iface_init (EphyEmbedIface *iface)
ephy_embed_iface_init (EphyEmbedIface *iface)
{
{
	iface->load_url = impl_load_url; 
	iface->load_url = impl_load_url; 
	iface->load = impl_load; 
	iface->stop_load = impl_stop_load;
	iface->stop_load = impl_stop_load;
	iface->can_go_back = impl_can_go_back;
	iface->can_go_back = impl_can_go_back;
	iface->can_go_forward =impl_can_go_forward;
	iface->can_go_forward =impl_can_go_forward;
(-) embed/ephy-embed.h (+14 lines)
 Lines 63-68   typedef enum Link Here 
	EPHY_EMBED_CHROME_BOOKMARKSBAR	= 1 << 3
	EPHY_EMBED_CHROME_BOOKMARKSBAR	= 1 << 3
} EphyEmbedChrome;
} 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 |	\
#define EPHY_EMBED_CHROME_ALL (EPHY_EMBED_CHROME_MENUBAR |	\
			       EPHY_EMBED_CHROME_TOOLBAR |	\
			       EPHY_EMBED_CHROME_TOOLBAR |	\
			       EPHY_EMBED_CHROME_STATUSBAR |	\
			       EPHY_EMBED_CHROME_STATUSBAR |	\
 Lines 157-162   struct _EphyEmbedIface Link Here 
	/* Methods  */
	/* Methods  */
	void		   (* load_url)			(EphyEmbed *embed,
	void		   (* load_url)			(EphyEmbed *embed,
							 const char *url);
							 const char *url);
	void		   (* load)			(EphyEmbed *embed,
							 const char *url,
							 EphyEmbedLoadFlags flags,
							 EphyEmbed *referring_embed);
	void		   (* stop_load)		(EphyEmbed *embed);
	void		   (* stop_load)		(EphyEmbed *embed);
	void		   (* reload)			(EphyEmbed *embed,
	void		   (* reload)			(EphyEmbed *embed,
							 gboolean force);
							 gboolean force);
 Lines 232-237   GType ephy_embed_get_type (void); Link Here 
/* Base */
/* Base */
void		  ephy_embed_load_url			(EphyEmbed *embed,
void		  ephy_embed_load_url			(EphyEmbed *embed,
							 const char *url);
							 const char *url);
void		  ephy_embed_load			(EphyEmbed *embed,
							 const char *url,
							 EphyEmbedLoadFlags flags,
							 EphyEmbed *referring_embed);
void		  ephy_embed_stop_load			(EphyEmbed *embed);
void		  ephy_embed_stop_load			(EphyEmbed *embed);
(-) embed/ephy-embed.c (+19 lines)
 Lines 423-428   ephy_embed_load_url (EphyEmbed *embed, Link Here 
}
}
/**
/**
 * 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:
 * ephy_embed_stop_load:
 * @embed: an #EphyEmbed
 * @embed: an #EphyEmbed
 *
 *
(-) src/ephy-link.h (-1 / +2 lines)
 Lines 41-47   typedef enum Link Here 
{
{
	EPHY_LINK_NEW_WINDOW	= 1 << 0,
	EPHY_LINK_NEW_WINDOW	= 1 << 0,
	EPHY_LINK_NEW_TAB	= 1 << 1,
	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;
} EphyLinkFlags;
struct _EphyLinkIface
struct _EphyLinkIface
(-) src/ephy-location-action.c (-2 / +2 lines)
 Lines 139-145   action_activated_cb (GtkEntryCompletion Link Here 
		if (url == NULL) return;
		if (url == NULL) return;
 		ephy_link_open (EPHY_LINK (action), url, NULL,
 		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);
		g_free (url);
	}
	}
 Lines 162-168   entry_activate_cb (GtkEntry *entry, Link Here 
	g_return_if_fail (address != NULL);
	g_return_if_fail (address != NULL);
	ephy_link_open (EPHY_LINK (action), 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);
	g_free (address);
}
}
(-) src/ephy-window.c (-1 / +17 lines)
 Lines 2970-2976   ephy_window_open_link (EphyLink *link, Link Here 
		tab = ephy_window_get_active_tab (window);
		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;
		EphyNewTabFlags ntflags = EPHY_NEW_TAB_OPEN_PAGE;
 Lines 2987-2992   ephy_window_open_link (EphyLink *link, Link Here 
		{
		{
			ntflags |= EPHY_NEW_TAB_IN_EXISTING_WINDOW;
			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
		new_tab = ephy_shell_new_tab
				(ephy_shell,
				(ephy_shell,
 Lines 2999-3005   ephy_window_open_link (EphyLink *link, Link Here 
		
		
		embed = ephy_tab_get_embed (tab);
		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);
		ephy_embed_load_url (embed, address);
		}
		if (address == NULL || address[0] == '\0' || strcmp (address, "about:blank") == 0)
		if (address == NULL || address[0] == '\0' || strcmp (address, "about:blank") == 0)
		{
		{
(-) src/ephy-shell.c (-1 / +13 lines)
 Lines 530-537   ephy_shell_new_tab_full (EphyShell *shel Link Here 
	}
	}
	else if (flags & EPHY_NEW_TAB_OPEN_PAGE)
	else if (flags & EPHY_NEW_TAB_OPEN_PAGE)
	{
	{
		EphyEmbedLoadFlags load_flags = 0;
		g_assert (url != NULL);
		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);
		is_empty = url_is_empty (url);
	}
	}
(-) src/ephy-shell.h (+4 lines)
 Lines 62-67   typedef enum Link Here 
	EPHY_NEW_TAB_JUMP		= 1 << 9,
	EPHY_NEW_TAB_JUMP		= 1 << 9,
	EPHY_NEW_TAB_IN_NEW_WINDOW	= 1 << 10,
	EPHY_NEW_TAB_IN_NEW_WINDOW	= 1 << 10,
	EPHY_NEW_TAB_IN_EXISTING_WINDOW	= 1 << 11,
	EPHY_NEW_TAB_IN_EXISTING_WINDOW	= 1 << 11,
	/* The way to load */
	EPHY_NEW_TAB_ALLOW_FIXUP	= 1 << 12,
	
} EphyNewTabFlags;
} EphyNewTabFlags;
struct _EphyShell
struct _EphyShell