From c4bf0a012b877011a47a255b67ba320b841dbbf2 Mon Sep 17 00:00:00 2001 From: "alecf%netscape.com" Date: Fri, 30 Aug 2002 17:51:48 +0000 Subject: [PATCH] fix for bug 97470 - don't display frame/iframe urls in the global history window r=radha, sr=darin git-svn-id: svn://10.0.0.236/trunk@128570 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/docshell/base/nsDocShell.cpp | 64 +++++++++++----------------- mozilla/docshell/base/nsDocShell.h | 5 +-- 2 files changed, 26 insertions(+), 43 deletions(-) diff --git a/mozilla/docshell/base/nsDocShell.cpp b/mozilla/docshell/base/nsDocShell.cpp index 6c4723017d9..8c76769b718 100644 --- a/mozilla/docshell/base/nsDocShell.cpp +++ b/mozilla/docshell/base/nsDocShell.cpp @@ -4021,26 +4021,8 @@ nsDocShell::OnStateChange(nsIWebProgress * aProgress, nsIRequest * aRequest, channel->GetURI(getter_AddRefs(uri)); // Add the original url to global History so that // visited url color changes happen. - if (uri) { - // Update Global history if necessary... - PRBool updateHistory = PR_FALSE; - ShouldAddToGlobalHistory(uri, &updateHistory); - if (updateHistory) { - AddToGlobalHistory(uri); - // this is a redirect, so hide the page from - // being enumerated in history - if (mGlobalHistory) { - nsCOMPtr browserHistory = - do_QueryInterface(mGlobalHistory); - if (browserHistory) { - nsCAutoString urlString; - if (NS_SUCCEEDED(uri->GetSpec(urlString))) - browserHistory->HidePage(urlString.get()); - } - } - - } - } // uri + if (uri) + AddToGlobalHistory(uri, PR_TRUE); } // channel } // aProgress } @@ -5558,7 +5540,6 @@ nsDocShell::OnNewURI(nsIURI * aURI, nsIChannel * aChannel, { NS_ASSERTION(aURI, "uri is null"); - UpdateCurrentGlobalHistory(); PRBool updateHistory = PR_TRUE; PRBool equalUri = PR_FALSE; PRBool shAvailable = PR_TRUE; @@ -5611,10 +5592,10 @@ nsDocShell::OnNewURI(nsIURI * aURI, nsIChannel * aChannel, * frameset pages is to add new methods to nsIDocShellTreeItem. * Hopefully I don't have to do that. */ - if ((mLoadType == LOAD_NORMAL || + if (equalUri && + (mLoadType == LOAD_NORMAL || mLoadType == LOAD_LINK) && - !inputStream && - equalUri) + !inputStream) { mLoadType = LOAD_NORMAL_REPLACE; } @@ -5653,12 +5634,8 @@ nsDocShell::OnNewURI(nsIURI * aURI, nsIChannel * aChannel, (void) AddToSessionHistory(aURI, aChannel, getter_AddRefs(mLSHE)); } - // Update Global history if necessary... - updateHistory = PR_FALSE; - ShouldAddToGlobalHistory(aURI, &updateHistory); - if (updateHistory) { - AddToGlobalHistory(aURI); - } + // Update Global history + AddToGlobalHistory(aURI, IsFrame()); } // If this was a history load, update the index in @@ -6091,7 +6068,7 @@ nsDocShell::ShouldDiscardLayoutState(nsIHttpChannel * aChannel) // nsDocShell: Global History //***************************************************************************** -NS_IMETHODIMP +nsresult nsDocShell::ShouldAddToGlobalHistory(nsIURI * aURI, PRBool * aShouldAdd) { *aShouldAdd = PR_FALSE; @@ -6193,9 +6170,14 @@ NS_IMETHODIMP nsDocShell::MakeEditable(PRBool inWaitForUriLoad) return mEditorData->MakeEditable(inWaitForUriLoad); } -NS_IMETHODIMP -nsDocShell::AddToGlobalHistory(nsIURI * aURI) +nsresult +nsDocShell::AddToGlobalHistory(nsIURI * aURI, PRBool aHidden) { + // first check if we should be adding it + PRBool updateHistory; + ShouldAddToGlobalHistory(aURI, &updateHistory); + if (!updateHistory) return NS_OK; + NS_ENSURE_STATE(mGlobalHistory); nsCAutoString spec; @@ -6203,13 +6185,15 @@ nsDocShell::AddToGlobalHistory(nsIURI * aURI) NS_ENSURE_SUCCESS(mGlobalHistory->AddPage(spec.get()), NS_ERROR_FAILURE); - return NS_OK; -} - -NS_IMETHODIMP -nsDocShell::UpdateCurrentGlobalHistory() -{ - // XXX Add code here that needs to update the current history item + // this is a redirect, so hide the page from + // being enumerated in history + if (aHidden) { + nsCOMPtr browserHistory = + do_QueryInterface(mGlobalHistory); + if (browserHistory) { + browserHistory->HidePage(spec.get()); + } + } return NS_OK; } diff --git a/mozilla/docshell/base/nsDocShell.h b/mozilla/docshell/base/nsDocShell.h index a58fb8c4cdf..d0eaf5a6509 100644 --- a/mozilla/docshell/base/nsDocShell.h +++ b/mozilla/docshell/base/nsDocShell.h @@ -236,9 +236,8 @@ protected: PRBool ShouldDiscardLayoutState(nsIHttpChannel * aChannel); // Global History - NS_IMETHOD ShouldAddToGlobalHistory(nsIURI * aURI, PRBool * aShouldAdd); - NS_IMETHOD AddToGlobalHistory(nsIURI * aURI); - NS_IMETHOD UpdateCurrentGlobalHistory(); + nsresult ShouldAddToGlobalHistory(nsIURI * aURI, PRBool * aShouldAdd); + nsresult AddToGlobalHistory(nsIURI * aURI, PRBool ); // Helper Routines NS_IMETHOD GetPromptAndStringBundle(nsIPrompt ** aPrompt,