From d9654e0eb05c01bff52edd7cf606efdc1fb1a6ef Mon Sep 17 00:00:00 2001 From: "norris%netscape.com" Date: Fri, 3 Mar 2000 22:55:40 +0000 Subject: [PATCH] Fix 29541 r=travis,a=jar git-svn-id: svn://10.0.0.236/trunk@62166 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/docshell/base/nsDocShell.h | 4 ++-- mozilla/docshell/base/nsWebShell.cpp | 17 ++++++++++++++++- mozilla/webshell/src/nsWebShell.cpp | 17 ++++++++++++++++- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/mozilla/docshell/base/nsDocShell.h b/mozilla/docshell/base/nsDocShell.h index 661c831be0c..9cdb2f371b4 100644 --- a/mozilla/docshell/base/nsDocShell.h +++ b/mozilla/docshell/base/nsDocShell.h @@ -140,8 +140,8 @@ protected: NS_IMETHOD StopCurrentLoads(); NS_IMETHOD ScrollIfAnchor(nsIURI* aURI, PRBool* aWasAnchor); NS_IMETHOD OnLoadingSite(nsIURI* aURI); - void SetCurrentURI(nsIURI* aURI); - void SetReferrerURI(nsIURI* aURI); + virtual void SetCurrentURI(nsIURI* aURI); + virtual void SetReferrerURI(nsIURI* aURI); // Session History NS_IMETHOD ShouldAddToSessionHistory(nsIURI* aURI, PRBool* aShouldAdd); diff --git a/mozilla/docshell/base/nsWebShell.cpp b/mozilla/docshell/base/nsWebShell.cpp index ede053111eb..309423793bb 100644 --- a/mozilla/docshell/base/nsWebShell.cpp +++ b/mozilla/docshell/base/nsWebShell.cpp @@ -347,6 +347,7 @@ public: // nsIDocShell NS_DECL_NSIDOCSHELL + void SetCurrentURI(nsIURI* aURI); // nsWebShell nsIEventQueue* GetEventQueue(void); @@ -1163,10 +1164,24 @@ nsWebShell::GetURL(const PRUnichar** aURL) NS_IMETHODIMP nsWebShell::SetURL(const PRUnichar* aURL) { - mURL = aURL; + nsCOMPtr uri; + NS_ENSURE_SUCCESS(NS_NewURI(getter_AddRefs(uri), aURL, nsnull), + NS_ERROR_FAILURE); + SetCurrentURI(uri); return NS_OK; } +void +nsWebShell::SetCurrentURI(nsIURI* aURI) +{ + nsXPIDLCString spec; + if (NS_SUCCEEDED(aURI->GetSpec(getter_Copies(spec)))) { + mURL = spec; + nsDocShell::SetCurrentURI(aURI); + } +} + + NS_IMETHODIMP nsWebShell::GetIsInSHist(PRBool& aResult) { diff --git a/mozilla/webshell/src/nsWebShell.cpp b/mozilla/webshell/src/nsWebShell.cpp index ede053111eb..309423793bb 100644 --- a/mozilla/webshell/src/nsWebShell.cpp +++ b/mozilla/webshell/src/nsWebShell.cpp @@ -347,6 +347,7 @@ public: // nsIDocShell NS_DECL_NSIDOCSHELL + void SetCurrentURI(nsIURI* aURI); // nsWebShell nsIEventQueue* GetEventQueue(void); @@ -1163,10 +1164,24 @@ nsWebShell::GetURL(const PRUnichar** aURL) NS_IMETHODIMP nsWebShell::SetURL(const PRUnichar* aURL) { - mURL = aURL; + nsCOMPtr uri; + NS_ENSURE_SUCCESS(NS_NewURI(getter_AddRefs(uri), aURL, nsnull), + NS_ERROR_FAILURE); + SetCurrentURI(uri); return NS_OK; } +void +nsWebShell::SetCurrentURI(nsIURI* aURI) +{ + nsXPIDLCString spec; + if (NS_SUCCEEDED(aURI->GetSpec(getter_Copies(spec)))) { + mURL = spec; + nsDocShell::SetCurrentURI(aURI); + } +} + + NS_IMETHODIMP nsWebShell::GetIsInSHist(PRBool& aResult) {