From 600f97e1ba0d2ec09e2c71de99fcdb2fdbfa55ab Mon Sep 17 00:00:00 2001 From: "rjc%netscape.com" Date: Wed, 12 Sep 2007 17:47:37 +0000 Subject: [PATCH] Add "IsBookmarked" method. git-svn-id: svn://10.0.0.236/trunk@235652 18797224-902f-48f8-a5cc-f745e15eee43 --- .../browser/public/nsIBookmarksService.idl | 9 ++++---- .../suite/browser/src/nsBookmarksService.cpp | 21 +++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/mozilla/suite/browser/public/nsIBookmarksService.idl b/mozilla/suite/browser/public/nsIBookmarksService.idl index eeea0348db7..b109d07a692 100644 --- a/mozilla/suite/browser/public/nsIBookmarksService.idl +++ b/mozilla/suite/browser/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/mozilla/suite/browser/src/nsBookmarksService.cpp b/mozilla/suite/browser/src/nsBookmarksService.cpp index 427bf21b1e8..f6e57e9ed91 100644 --- a/mozilla/suite/browser/src/nsBookmarksService.cpp +++ b/mozilla/suite/browser/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) {