diff options
Diffstat (limited to 'embed/mozilla')
-rw-r--r-- | embed/mozilla/StartHereProtocolHandler.cpp | 187 | ||||
-rw-r--r-- | embed/mozilla/StartHereProtocolHandler.h | 49 |
2 files changed, 0 insertions, 236 deletions
diff --git a/embed/mozilla/StartHereProtocolHandler.cpp b/embed/mozilla/StartHereProtocolHandler.cpp deleted file mode 100644 index 4d2c52c7d..000000000 --- a/embed/mozilla/StartHereProtocolHandler.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (C) 2001 Matt Aubury, Philip Langdale - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#include "ephy-file-helpers.h" -#include "ephy-start-here.h" -#include "ephy-embed-shell.h" - -#include <string.h> - -#include "StartHereProtocolHandler.h" -#include "nsIIOService.h" -#include "nsIServiceManager.h" -#include "nsIURI.h" -#include "nsNetCID.h" -#include "nsNetUtil.h" -#include "nsIStorageStream.h" - -static NS_DEFINE_CID(kSimpleURICID, NS_SIMPLEURI_CID); - -/* Implementation file */ -NS_IMPL_ISUPPORTS1 (GStartHereProtocolHandler, nsIProtocolHandler) - -GStartHereProtocolHandler::GStartHereProtocolHandler (void) -{ - NS_INIT_ISUPPORTS(); - -} - -GStartHereProtocolHandler::~GStartHereProtocolHandler() -{ - /* destructor code */ -} - -/* readonly attribute string scheme; */ -NS_IMETHODIMP GStartHereProtocolHandler::GetScheme(nsACString &aScheme) -{ - aScheme = NS_LITERAL_CSTRING("home"); - return NS_OK; -} - -/* readonly attribute long defaultPort; */ -NS_IMETHODIMP GStartHereProtocolHandler::GetDefaultPort(PRInt32 *aDefaultPort) -{ - nsresult rv = NS_OK; - if (aDefaultPort) - *aDefaultPort = -1; - else - rv = NS_ERROR_NULL_POINTER; - return rv; -} - -/* readonly attribute short protocolFlags; */ -NS_IMETHODIMP GStartHereProtocolHandler::GetProtocolFlags(PRUint32 *aProtocolFlags) -{ - if (aProtocolFlags) - *aProtocolFlags = nsIProtocolHandler::URI_STD; - else - return NS_ERROR_NULL_POINTER; - return NS_OK; -} - -/* nsIURI newURI (in string aSpec, in nsIURI aBaseURI); */ -NS_IMETHODIMP GStartHereProtocolHandler::NewURI(const nsACString &aSpec, - const char *aOriginCharset, - nsIURI *aBaseURI, - nsIURI **_retval) -{ - nsresult rv = NS_OK; - nsCOMPtr <nsIURI> newUri; - - rv = nsComponentManager::CreateInstance(kSimpleURICID, NULL, - NS_GET_IID(nsIURI), - getter_AddRefs(newUri)); - - if (NS_SUCCEEDED(rv)) - { - newUri->SetSpec(aSpec); - rv = newUri->QueryInterface(NS_GET_IID(nsIURI), - (void **) _retval); - } - return rv; -} - -/* nsIChannel newChannel (in nsIURI aURI); */ -NS_IMETHODIMP GStartHereProtocolHandler::NewChannel(nsIURI *aURI, - nsIChannel **_retval) -{ - nsresult rv; - EphyStartHere *sh; - char *buf; - const char *aBaseURI; - PRUint32 bytesWritten; - - nsCAutoString path; - rv = aURI->GetPath(path); - if (NS_FAILED(rv)) return rv; - - if (g_str_has_prefix (path.get(), "import-mozilla-bookmarks")) - { - g_signal_emit_by_name (embed_shell, "command", "import-mozilla-bookmarks", - path.get() + strlen ("import-mozilla-bookmarks?")); - return NS_ERROR_FAILURE; - } - else if (g_str_has_prefix (path.get(), "import-galeon-bookmarks")) - { - g_signal_emit_by_name (embed_shell, "command", - "import-galeon-bookmarks", - path.get() + strlen ("import-galeon-bookmarks?")); - return NS_ERROR_FAILURE; - } - else if (g_str_has_prefix (path.get(), "import-konqueror-bookmarks")) - { - g_signal_emit_by_name (embed_shell, "command", - "import-konqueror-bookmarks", - path.get() + strlen ("import-konqueror-bookmarks?")); - return NS_ERROR_FAILURE; - } - else if (g_str_has_prefix (path.get(), "configure-network")) - { - g_signal_emit_by_name (embed_shell, "command", "configure-network", - NULL); - return NS_ERROR_FAILURE; - } - - nsCOMPtr<nsIStorageStream> sStream; - nsCOMPtr<nsIOutputStream> stream; - - rv = NS_NewStorageStream(16384, (PRUint32)-1, getter_AddRefs(sStream)); - if (NS_FAILED(rv)) return rv; - - rv = sStream->GetOutputStream(0, getter_AddRefs(stream)); - if (NS_FAILED(rv)) return rv; - - sh = ephy_start_here_new (); - buf = ephy_start_here_get_page - (sh, path.IsEmpty() ? "index" : path.get ()); - if (buf == NULL) return NS_ERROR_FAILURE; - aBaseURI = ephy_start_here_get_base_uri (sh); - - rv = stream->Write (buf, strlen (buf), &bytesWritten); - if (NS_FAILED (rv)) return NS_ERROR_FAILURE; - - nsCOMPtr<nsIURI> uri; - nsCAutoString spec(aBaseURI); - rv = NS_NewURI(getter_AddRefs(uri), spec.get()); - if (NS_FAILED (rv)) return NS_ERROR_FAILURE; - - nsCOMPtr<nsIInputStream> iStream; - - rv = sStream->NewInputStream(0, getter_AddRefs(iStream)); - if (NS_FAILED(rv)) return rv; - - rv = NS_NewInputStreamChannel(getter_AddRefs(mChannel), uri, - iStream, NS_LITERAL_CSTRING("text/xml"), - NS_LITERAL_CSTRING("utf-8")); - - g_free (buf); - g_object_unref (sh); - - NS_IF_ADDREF (*_retval = mChannel); - - return rv; -} - -/* boolean allowPort (in long port, in string scheme); */ -NS_IMETHODIMP GStartHereProtocolHandler::AllowPort(PRInt32 port, const char *scheme, - PRBool *_retval) -{ - *_retval = PR_FALSE; - return NS_OK; -} - diff --git a/embed/mozilla/StartHereProtocolHandler.h b/embed/mozilla/StartHereProtocolHandler.h deleted file mode 100644 index ab8744523..000000000 --- a/embed/mozilla/StartHereProtocolHandler.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2001 Philip Langdale - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef StartHereProtocolHandler_h__ -#define StartHereProtocolHandler_h__ - -#include "nsError.h" -#include "nsIProtocolHandler.h" -#include "nsCOMPtr.h" -#include "nsIChannel.h" - -#define G_START_HERE_PROTOCOLHANDLER_CID \ -{ /* a3a7b6e5-7a92-431d-87e6-3bef8e7ada51*/ \ - 0xa3a7b6e5, \ - 0x7a92, \ - 0x431d, \ - {0x87, 0xe6, 0x3b, 0xef, 0x8e, 0x7a, 0xda, 0x51} \ -} -#define G_START_HERE_PROTOCOLHANDLER_CONTRACTID NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "home" -#define G_START_HERE_PROTOCOLHANDLER_CLASSNAME "Epiphany's start here protocol handler" - -class GStartHereProtocolHandler : public nsIProtocolHandler -{ - public: - NS_DECL_ISUPPORTS - NS_DECL_NSIPROTOCOLHANDLER - - GStartHereProtocolHandler (void); - virtual ~GStartHereProtocolHandler(); - - nsCOMPtr<nsIChannel> mChannel; -}; - -#endif // StarthereProtocolHandler_h__ |