diff --git a/xpfe/components/bookmarks/public/nsIBookmarksService.idl b/xpfe/components/bookmarks/public/nsIBookmarksService.idl index eeea0348db7e..b109d07a6923 100644 --- a/xpfe/components/bookmarks/public/nsIBookmarksService.idl +++ b/xpfe/components/bookmarks/public/nsIBookmarksService.idl @@ -31,10 +31,11 @@ [scriptable, uuid(a82e9300-e4af-11d2-8fdf-0008c70adc7b)] interface nsIBookmarksService : nsISupports { - void ReadBookmarks(); - void AddBookmark(in string aURI, in wstring aTitle); - void UpdateBookmarkLastVisitedDate(in string aURL); - string FindShortcut(in wstring aName); + void ReadBookmarks(); + boolean IsBookmarked(in string aURI); + void AddBookmark(in string aURI, in wstring aTitle); + void UpdateBookmarkLastVisitedDate(in string aURL); + string FindShortcut(in wstring aName); }; %{C++ diff --git a/xpfe/components/bookmarks/src/nsBookmarksService.cpp b/xpfe/components/bookmarks/src/nsBookmarksService.cpp index 427bf21b1e8e..f6e57e9ed912 100644 --- a/xpfe/components/bookmarks/src/nsBookmarksService.cpp +++ b/xpfe/components/bookmarks/src/nsBookmarksService.cpp @@ -2673,6 +2673,27 @@ nsBookmarksService::AddBookmark(const char *aURI, const PRUnichar *aOptionalTitl +NS_IMETHODIMP +nsBookmarksService::IsBookmarked(const char *aURI, PRBool *isBookmarkedFlag) +{ + if (!aURI) return(NS_ERROR_UNEXPECTED); + if (!isBookmarkedFlag) return(NS_ERROR_UNEXPECTED); + if (!mInner) return(NS_ERROR_UNEXPECTED); + + *isBookmarkedFlag = PR_FALSE; + + nsresult rv; + nsCOMPtr bookmark; + if (NS_SUCCEEDED(rv = gRDF->GetResource(aURI, getter_AddRefs(bookmark)))) + { + rv = mInner->HasAssertion(bookmark, kRDF_type, kNC_Bookmark, + PR_TRUE, isBookmarkedFlag); + } + return(rv); +} + + + NS_IMETHODIMP nsBookmarksService::UpdateBookmarkLastVisitedDate(const char *aURL) {