aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/EphyHistoryListener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'embed/mozilla/EphyHistoryListener.cpp')
-rw-r--r--embed/mozilla/EphyHistoryListener.cpp170
1 files changed, 0 insertions, 170 deletions
diff --git a/embed/mozilla/EphyHistoryListener.cpp b/embed/mozilla/EphyHistoryListener.cpp
deleted file mode 100644
index 232c3ccb9..000000000
--- a/embed/mozilla/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 "mozilla-config.h"
-#include "config.h"
-
-#include <nsStringAPI.h>
-
-#include <nsCOMPtr.h>
-#include <nsCURILoader.h>
-#include <nsIChannel.h>
-#include <nsIDocumentLoader.h>
-#include <nsIHttpChannel.h>
-#include <nsIRequest.h>
-#include <nsIRequestObserver.h>
-#include <nsISupportsUtils.h>
-#include <nsIURI.h>
-#include <nsIWebProgress.h>
-#include <nsNetCID.h>
-#include <nsServiceManagerUtils.h>
-
-#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<nsIWebProgress> webProgress
- (do_GetService(NS_DOCUMENTLOADER_SERVICE_CONTRACTID, &rv));
- NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && webProgress, rv);
-
- rv = webProgress->AddProgressListener
- (static_cast<nsIWebProgressListener*>(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<nsIChannel> channel (do_QueryInterface (aRequest));
- nsCOMPtr<nsIHttpChannel> 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<nsIURI> 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<nsIURI> 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;
-}