nsBookmarksService::UpdateBookmarkLastVisitedDate(const char *aURL)
nsBookmarksService::UpdateBookmarkLastVisitedDate(const char *aURL, const PRUnichar *aCharset)
nsBookmarksService::UpdateBookmarkLastVisitedDate(const char *aURL){	nsCOMPtr<nsIRDFResource>	bookmark;	nsresult			rv;	if (NS_SUCCEEDED(rv = gRDF->GetResource(aURL, getter_AddRefs(bookmark) )))	{		PRBool			isBookmark = PR_FALSE;		// Note: always use mInner!! Otherwise, could get into an infinite loop		// due to Assert/Change calling UpdateBookmarkLastModifiedDate()		if (NS_SUCCEEDED(rv = mInner->HasAssertion(bookmark, kRDF_type, kNC_Bookmark,			PR_TRUE, &isBookmark)) && (isBookmark == PR_TRUE))		{			nsCOMPtr<nsIRDFDate>	now;			if (NS_SUCCEEDED(rv = gRDF->GetDateLiteral(PR_Now(), getter_AddRefs(now))))			{				nsCOMPtr<nsIRDFNode>	lastMod;				if (NS_SUCCEEDED(rv = mInner->GetTarget(bookmark, kWEB_LastVisitDate, PR_TRUE,					getter_AddRefs(lastMod))) && (rv != NS_RDF_NO_VALUE))				{					rv = mInner->Change(bookmark, kWEB_LastVisitDate, lastMod, now);				}				else				{					rv = mInner->Assert(bookmark, kWEB_LastVisitDate, now, PR_TRUE);				}				// also update bookmark's "status"!				nsCOMPtr<nsIRDFNode>	currentStatusNode;				if (NS_SUCCEEDED(rv = mInner->GetTarget(bookmark, kWEB_Status, PR_TRUE,					getter_AddRefs(currentStatusNode))) && (rv != NS_RDF_NO_VALUE))				{					rv = mInner->Unassert(bookmark, kWEB_Status, currentStatusNode);					NS_ASSERTION(rv == NS_RDF_ASSERTION_ACCEPTED, "unable to Unassert changed status");				}				mDirty = PR_TRUE;			}		}	}	return(rv);}