From 0ba3dca017f51e145d23dfd59a6cc63cc8ba9925 Mon Sep 17 00:00:00 2001 From: "rpotts%netscape.com" Date: Mon, 22 Nov 1999 05:47:26 +0000 Subject: [PATCH] fixes to make the web crawler work when sites which have meta-refresh tags are encountered... git-svn-id: svn://10.0.0.236/trunk@54127 18797224-902f-48f8-a5cc-f745e15eee43 --- .../webshell/tests/viewer/nsWebCrawler.cpp | 20 ++++++++++++++++++- mozilla/webshell/tests/viewer/nsWebCrawler.h | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/mozilla/webshell/tests/viewer/nsWebCrawler.cpp b/mozilla/webshell/tests/viewer/nsWebCrawler.cpp index 859e5411ae4..9802324523d 100644 --- a/mozilla/webshell/tests/viewer/nsWebCrawler.cpp +++ b/mozilla/webshell/tests/viewer/nsWebCrawler.cpp @@ -218,10 +218,25 @@ nsWebCrawler::OnEndDocumentLoad(nsIDocumentLoader* loader, nsresult aStatus, nsIDocumentLoaderObserver* aObserver) { + nsresult rv; PRTime endLoadTime = PR_Now(); + if (loader != mDocLoader) { + // This notifications is not for the "main" document... + return NS_OK; + } + + if (NS_BINDING_ABORTED == aStatus) { + // + // Sometimes a Refresh will interrupt a document that is loading... + // When this happens just ignore the ABORTED notification and wait + // for the notification that the Refreshed document has finished.. + // + return NS_OK; + } + nsCOMPtr aURL; - nsresult rv = channel->GetURI(getter_AddRefs(aURL)); + rv = channel->GetURI(getter_AddRefs(aURL)); if (NS_FAILED(rv)) { return rv; } @@ -493,6 +508,7 @@ nsWebCrawler::Start() nsIWebShell* shell = nsnull; mBrowser->GetWebShell(shell); shell->SetDocLoaderObserver(this); + shell->GetDocumentLoader(*getter_AddRefs(mDocLoader)); NS_RELEASE(shell); if (mPendingURLs.Count() > 1) { mHaveURLList = PR_TRUE; @@ -767,6 +783,8 @@ nsWebCrawler::LoadNextURL(PRBool aQueueLoad) nsIWebShell* webShell; mBrowser->GetWebShell(webShell); if (aQueueLoad) { + // Call stop to cancel any pending URL Refreshes... +/// webShell->Stop(); QueueLoadURL(*url); } else { diff --git a/mozilla/webshell/tests/viewer/nsWebCrawler.h b/mozilla/webshell/tests/viewer/nsWebCrawler.h index 6a38021cf58..7a779b77a61 100644 --- a/mozilla/webshell/tests/viewer/nsWebCrawler.h +++ b/mozilla/webshell/tests/viewer/nsWebCrawler.h @@ -24,6 +24,7 @@ #include "nsCOMPtr.h" #include "nsIBrowserWindow.h" +#include "nsIDocumentLoader.h" #include "nsIDocumentLoaderObserver.h" #include "nsVoidArray.h" #include "nsString.h" @@ -155,6 +156,7 @@ protected: void PerformRegressionTest(const nsString& aOutputName); + nsCOMPtr mDocLoader; nsIBrowserWindow* mBrowser; nsViewerApp* mViewer; nsITimer* mTimer;