From cc8e1597016d982022771e34fb1a22c55a28fd07 Mon Sep 17 00:00:00 2001 From: "roc+%cs.cmu.edu" Date: Tue, 16 Aug 2005 01:03:45 +0000 Subject: [PATCH] Bug 78510. Undoing backout; still no change. git-svn-id: svn://10.0.0.236/trunk@177800 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/docshell/base/nsDocShell.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/mozilla/docshell/base/nsDocShell.cpp b/mozilla/docshell/base/nsDocShell.cpp index d2c3726b805..87427bc9d10 100644 --- a/mozilla/docshell/base/nsDocShell.cpp +++ b/mozilla/docshell/base/nsDocShell.cpp @@ -66,6 +66,7 @@ #include "nsIWebBrowserChrome.h" #include "nsPoint.h" #include "nsGfxCIID.h" +#include "nsIObserverService.h" #include "nsIPrompt.h" #include "nsIAuthPrompt.h" #include "nsTextFormatter.h" @@ -7847,13 +7848,27 @@ NS_IMETHODIMP nsDocShell::MakeEditable(PRBool inWaitForUriLoad) nsresult nsDocShell::AddToGlobalHistory(nsIURI * aURI, PRBool aRedirect, nsIURI * aReferrer) { - if (mItemType != typeContent) + if (mItemType != typeContent || !mGlobalHistory) return NS_OK; - if (!mGlobalHistory) - return NS_OK; + PRBool visited; + nsresult rv = mGlobalHistory->IsVisited(aURI, &visited); + if (NS_FAILED(rv)) + return rv; + + rv = mGlobalHistory->AddURI(aURI, aRedirect, !IsFrame(), aReferrer); + if (NS_FAILED(rv)) + return rv; - return mGlobalHistory->AddURI(aURI, aRedirect, !IsFrame(), aReferrer); + if (!visited) { + nsCOMPtr obsService = + do_GetService("@mozilla.org/observer-service;1"); + if (obsService) { + obsService->NotifyObservers(aURI, NS_LINK_VISITED_EVENT_TOPIC, nsnull); + } + } + + return NS_OK; } //*****************************************************************************