From 73dfdccb77d9de0081b91b10c7484dea40443b4e Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Fri, 14 Sep 2007 19:03:48 +0000 Subject: Move EphyHistoryListener from embed/ to components/ since it's only used by GlobalHistory code. svn path=/trunk/; revision=7437 --- embed/xulrunner/components/EphyHistoryListener.cpp | 170 +++++++++++++++++++++ embed/xulrunner/components/EphyHistoryListener.h | 49 ++++++ embed/xulrunner/components/Makefile.am | 2 + embed/xulrunner/embed/EphyHistoryListener.cpp | 170 --------------------- embed/xulrunner/embed/EphyHistoryListener.h | 49 ------ embed/xulrunner/embed/Makefile.am | 2 - 6 files changed, 221 insertions(+), 221 deletions(-) create mode 100644 embed/xulrunner/components/EphyHistoryListener.cpp create mode 100644 embed/xulrunner/components/EphyHistoryListener.h delete mode 100644 embed/xulrunner/embed/EphyHistoryListener.cpp delete mode 100644 embed/xulrunner/embed/EphyHistoryListener.h diff --git a/embed/xulrunner/components/EphyHistoryListener.cpp b/embed/xulrunner/components/EphyHistoryListener.cpp new file mode 100644 index 000000000..5da2170e7 --- /dev/null +++ b/embed/xulrunner/components/EphyHistoryListener.cpp @@ -0,0 +1,170 @@ +/* + * Copyright © 2004 Christian Persch + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include +#include "config.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "EphyUtils.h" + +#include "ephy-debug.h" + +#include "EphyHistoryListener.h" + +EphyHistoryListener::EphyHistoryListener () +{ + LOG ("EphyHistoryListener ctor"); +} + +EphyHistoryListener::~EphyHistoryListener () +{ + LOG ("EphyHistoryListener dtor"); +} + +nsresult +EphyHistoryListener::Init (EphyHistory *aHistory) +{ + mHistory = aHistory; + + nsresult rv; + nsCOMPtr webProgress + (do_GetService(NS_DOCUMENTLOADER_SERVICE_CONTRACTID, &rv)); + NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && webProgress, rv); + + rv = webProgress->AddProgressListener + (static_cast(this), + nsIWebProgress::NOTIFY_STATE_REQUEST); + + return rv; +} + +NS_IMPL_ISUPPORTS2 (EphyHistoryListener, + nsIWebProgressListener, + nsISupportsWeakReference) + +/* void onStateChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aStateFlags, in nsresult aStatus); */ +NS_IMETHODIMP +EphyHistoryListener::OnStateChange (nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRUint32 aStateFlags, + nsresult aStatus) +{ + nsresult rv = NS_OK; + + /* we only care about redirects */ + if (! (aStateFlags & nsIWebProgressListener::STATE_REDIRECTING)) + { + return rv; + } + + nsCOMPtr channel (do_QueryInterface (aRequest)); + nsCOMPtr httpChannel (do_QueryInterface (channel)); + if (!httpChannel) return rv; + + PRUint32 status = 0; + rv = httpChannel->GetResponseStatus (&status); + if (rv == NS_ERROR_NOT_AVAILABLE) return NS_OK; + NS_ENSURE_SUCCESS (rv, rv); + + /* we're only interested in 301 redirects (moved permanently) */ + if (status != 301) return NS_OK; + + nsCOMPtr fromURI; + rv = channel->GetURI (getter_AddRefs (fromURI)); + NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && fromURI, rv); + + nsCString location; + rv = httpChannel->GetResponseHeader + (nsCString ("Location"), location); + NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && location.Length(), rv); + + nsCOMPtr toURI; + rv = EphyUtils::NewURI (getter_AddRefs (toURI), location, + nsnull /* use origin charset of fromURI */, fromURI); + NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && toURI, rv); + + nsCString fromSpec, toSpec; + rv = fromURI->GetSpec (fromSpec); + rv |= toURI->GetSpec(toSpec); + NS_ENSURE_SUCCESS (rv, rv); + + g_signal_emit_by_name (mHistory, "redirect", + fromSpec.get(), toSpec.get()); + + return rv; +} + +/* void onProgressChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aCurSelfProgress, in long aMaxSelfProgress, in long aCurTotalProgress, in long aMaxTotalProgress); */ +NS_IMETHODIMP +EphyHistoryListener::OnProgressChange (nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRInt32 aCurSelfProgress, + PRInt32 aMaxSelfProgress, + PRInt32 aCurTotalProgress, + PRInt32 aMaxTotalProgress) +{ + NS_NOTREACHED("notification excluded in AddProgressListener(...)"); + return NS_OK; +} + +/* void onLocationChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsIURI location); */ +NS_IMETHODIMP +EphyHistoryListener::OnLocationChange (nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + nsIURI *location) +{ + NS_NOTREACHED("notification excluded in AddProgressListener(...)"); + return NS_OK; +} + +/* void onStatusChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsresult aStatus, in wstring aMessage); */ +NS_IMETHODIMP +EphyHistoryListener::OnStatusChange (nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + nsresult aStatus, + const PRUnichar *aMessage) +{ + NS_NOTREACHED("notification excluded in AddProgressListener(...)"); + return NS_OK; +} + +/* void onSecurityChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in unsigned long state); */ +NS_IMETHODIMP +EphyHistoryListener::OnSecurityChange (nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRUint32 state) +{ + NS_NOTREACHED("notification excluded in AddProgressListener(...)"); + return NS_OK; +} diff --git a/embed/xulrunner/components/EphyHistoryListener.h b/embed/xulrunner/components/EphyHistoryListener.h new file mode 100644 index 000000000..23f955f05 --- /dev/null +++ b/embed/xulrunner/components/EphyHistoryListener.h @@ -0,0 +1,49 @@ +/* + * Copyright © 2004 Christian Persch + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#ifndef EPHY_REDIRECT_LISTENER_H +#define EPHY_REDIRECT_LISTENER_H + +#include "ephy-history.h" + +#include +#include + +/* 6a9533c6-f068-4e63-8225-5feba0b54d6b */ +#define EPHY_REDIRECTLISTENER_CID \ +{ 0x6a9533c6, 0xf068, 0x4e63, { 0x82, 0x25, 0x5f, 0xeb, 0xa0, 0xb5, 0x4d, 0x6b } } +#define EPHY_REDIRECTLISTENER_CLASSNAME "Epiphany Redirect Listener Class" + +class EphyHistoryListener : public nsIWebProgressListener, + public nsSupportsWeakReference +{ + public: + EphyHistoryListener(); + virtual ~EphyHistoryListener(); + + nsresult Init (EphyHistory *aHistory); + + NS_DECL_ISUPPORTS + NS_DECL_NSIWEBPROGRESSLISTENER + private: + EphyHistory *mHistory; +}; + +#endif /* EPHY_REDIRECT_LISTENER_H */ diff --git a/embed/xulrunner/components/Makefile.am b/embed/xulrunner/components/Makefile.am index 7280d6541..d4c0d997b 100644 --- a/embed/xulrunner/components/Makefile.am +++ b/embed/xulrunner/components/Makefile.am @@ -9,6 +9,8 @@ libephycomponents_la_SOURCES = \ EphyAboutModule.h \ EphyContentPolicy.cpp \ EphyContentPolicy.h \ + EphyHistoryListener.cpp \ + EphyHistoryListener.h \ EphyRedirectChannel.cpp \ EphyRedirectChannel.h \ EphySidebar.cpp \ diff --git a/embed/xulrunner/embed/EphyHistoryListener.cpp b/embed/xulrunner/embed/EphyHistoryListener.cpp deleted file mode 100644 index 5da2170e7..000000000 --- a/embed/xulrunner/embed/EphyHistoryListener.cpp +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright © 2004 Christian Persch - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $Id$ - */ - -#include -#include "config.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "EphyUtils.h" - -#include "ephy-debug.h" - -#include "EphyHistoryListener.h" - -EphyHistoryListener::EphyHistoryListener () -{ - LOG ("EphyHistoryListener ctor"); -} - -EphyHistoryListener::~EphyHistoryListener () -{ - LOG ("EphyHistoryListener dtor"); -} - -nsresult -EphyHistoryListener::Init (EphyHistory *aHistory) -{ - mHistory = aHistory; - - nsresult rv; - nsCOMPtr webProgress - (do_GetService(NS_DOCUMENTLOADER_SERVICE_CONTRACTID, &rv)); - NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && webProgress, rv); - - rv = webProgress->AddProgressListener - (static_cast(this), - nsIWebProgress::NOTIFY_STATE_REQUEST); - - return rv; -} - -NS_IMPL_ISUPPORTS2 (EphyHistoryListener, - nsIWebProgressListener, - nsISupportsWeakReference) - -/* void onStateChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aStateFlags, in nsresult aStatus); */ -NS_IMETHODIMP -EphyHistoryListener::OnStateChange (nsIWebProgress *aWebProgress, - nsIRequest *aRequest, - PRUint32 aStateFlags, - nsresult aStatus) -{ - nsresult rv = NS_OK; - - /* we only care about redirects */ - if (! (aStateFlags & nsIWebProgressListener::STATE_REDIRECTING)) - { - return rv; - } - - nsCOMPtr channel (do_QueryInterface (aRequest)); - nsCOMPtr httpChannel (do_QueryInterface (channel)); - if (!httpChannel) return rv; - - PRUint32 status = 0; - rv = httpChannel->GetResponseStatus (&status); - if (rv == NS_ERROR_NOT_AVAILABLE) return NS_OK; - NS_ENSURE_SUCCESS (rv, rv); - - /* we're only interested in 301 redirects (moved permanently) */ - if (status != 301) return NS_OK; - - nsCOMPtr fromURI; - rv = channel->GetURI (getter_AddRefs (fromURI)); - NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && fromURI, rv); - - nsCString location; - rv = httpChannel->GetResponseHeader - (nsCString ("Location"), location); - NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && location.Length(), rv); - - nsCOMPtr toURI; - rv = EphyUtils::NewURI (getter_AddRefs (toURI), location, - nsnull /* use origin charset of fromURI */, fromURI); - NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && toURI, rv); - - nsCString fromSpec, toSpec; - rv = fromURI->GetSpec (fromSpec); - rv |= toURI->GetSpec(toSpec); - NS_ENSURE_SUCCESS (rv, rv); - - g_signal_emit_by_name (mHistory, "redirect", - fromSpec.get(), toSpec.get()); - - return rv; -} - -/* void onProgressChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aCurSelfProgress, in long aMaxSelfProgress, in long aCurTotalProgress, in long aMaxTotalProgress); */ -NS_IMETHODIMP -EphyHistoryListener::OnProgressChange (nsIWebProgress *aWebProgress, - nsIRequest *aRequest, - PRInt32 aCurSelfProgress, - PRInt32 aMaxSelfProgress, - PRInt32 aCurTotalProgress, - PRInt32 aMaxTotalProgress) -{ - NS_NOTREACHED("notification excluded in AddProgressListener(...)"); - return NS_OK; -} - -/* void onLocationChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsIURI location); */ -NS_IMETHODIMP -EphyHistoryListener::OnLocationChange (nsIWebProgress *aWebProgress, - nsIRequest *aRequest, - nsIURI *location) -{ - NS_NOTREACHED("notification excluded in AddProgressListener(...)"); - return NS_OK; -} - -/* void onStatusChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsresult aStatus, in wstring aMessage); */ -NS_IMETHODIMP -EphyHistoryListener::OnStatusChange (nsIWebProgress *aWebProgress, - nsIRequest *aRequest, - nsresult aStatus, - const PRUnichar *aMessage) -{ - NS_NOTREACHED("notification excluded in AddProgressListener(...)"); - return NS_OK; -} - -/* void onSecurityChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in unsigned long state); */ -NS_IMETHODIMP -EphyHistoryListener::OnSecurityChange (nsIWebProgress *aWebProgress, - nsIRequest *aRequest, - PRUint32 state) -{ - NS_NOTREACHED("notification excluded in AddProgressListener(...)"); - return NS_OK; -} diff --git a/embed/xulrunner/embed/EphyHistoryListener.h b/embed/xulrunner/embed/EphyHistoryListener.h deleted file mode 100644 index 23f955f05..000000000 --- a/embed/xulrunner/embed/EphyHistoryListener.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright © 2004 Christian Persch - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $Id$ - */ - -#ifndef EPHY_REDIRECT_LISTENER_H -#define EPHY_REDIRECT_LISTENER_H - -#include "ephy-history.h" - -#include -#include - -/* 6a9533c6-f068-4e63-8225-5feba0b54d6b */ -#define EPHY_REDIRECTLISTENER_CID \ -{ 0x6a9533c6, 0xf068, 0x4e63, { 0x82, 0x25, 0x5f, 0xeb, 0xa0, 0xb5, 0x4d, 0x6b } } -#define EPHY_REDIRECTLISTENER_CLASSNAME "Epiphany Redirect Listener Class" - -class EphyHistoryListener : public nsIWebProgressListener, - public nsSupportsWeakReference -{ - public: - EphyHistoryListener(); - virtual ~EphyHistoryListener(); - - nsresult Init (EphyHistory *aHistory); - - NS_DECL_ISUPPORTS - NS_DECL_NSIWEBPROGRESSLISTENER - private: - EphyHistory *mHistory; -}; - -#endif /* EPHY_REDIRECT_LISTENER_H */ diff --git a/embed/xulrunner/embed/Makefile.am b/embed/xulrunner/embed/Makefile.am index 3fcc011fc..30295708a 100644 --- a/embed/xulrunner/embed/Makefile.am +++ b/embed/xulrunner/embed/Makefile.am @@ -9,8 +9,6 @@ libephyxulrunnerembed_la_SOURCES = \ EphyBrowser.h \ EphyFind.cpp \ EphyFind.h \ - EphyHistoryListener.cpp \ - EphyHistoryListener.h \ EphySingle.cpp \ EphySingle.h \ EventContext.cpp \ -- cgit v1.2.3