mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-27 20:25:44 +00:00
Adds an annotation to livemarked uris.
bug=324556 r=brettw
This commit is contained in:
parent
ba00feff5e
commit
6323a7f888
@ -491,7 +491,8 @@ nsLivemarkLoadListener::HandleRDFItem (nsIRDFDataSource *aDS, nsIRDFResource *aI
|
|||||||
rv = NS_NewURI(getter_AddRefs(linkURI), NS_ConvertUTF16toUTF8(linkStr));
|
rv = NS_NewURI(getter_AddRefs(linkURI), NS_ConvertUTF16toUTF8(linkStr));
|
||||||
rv = mLivemarkService->InsertLivemarkChild(mLivemark->folderId,
|
rv = mLivemarkService->InsertLivemarkChild(mLivemark->folderId,
|
||||||
linkURI,
|
linkURI,
|
||||||
nsDependentString(titleStr));
|
nsDependentString(titleStr),
|
||||||
|
nsDependentString(linkStr));
|
||||||
if (NS_FAILED(rv)) return rv;
|
if (NS_FAILED(rv)) return rv;
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
@ -696,7 +697,8 @@ nsLivemarkLoadListener::TryParseAsSimpleRSS ()
|
|||||||
if (NS_FAILED(rv)) return rv;
|
if (NS_FAILED(rv)) return rv;
|
||||||
rv = mLivemarkService->InsertLivemarkChild(mLivemark->folderId,
|
rv = mLivemarkService->InsertLivemarkChild(mLivemark->folderId,
|
||||||
linkURI,
|
linkURI,
|
||||||
nsDependentString(titleStr));
|
nsDependentString(titleStr),
|
||||||
|
nsDependentString(linkStr));
|
||||||
if (NS_FAILED(rv)) return rv;
|
if (NS_FAILED(rv)) return rv;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -356,6 +356,9 @@ nsLivemarkService::OnContainerRemoving(PRInt64 aContainer)
|
|||||||
// Take the annotation out of the list of annotations.
|
// Take the annotation out of the list of annotations.
|
||||||
mLivemarks.RemoveElementAt(lmIndex);
|
mLivemarks.RemoveElementAt(lmIndex);
|
||||||
|
|
||||||
|
// Get rid of the children for this feed, clearing their annotations.
|
||||||
|
DeleteLivemarkChildren(aContainer);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -444,17 +447,59 @@ nsLivemarkService::FireTimer(nsITimer* aTimer, void* aClosure)
|
|||||||
nsresult
|
nsresult
|
||||||
nsLivemarkService::DeleteLivemarkChildren(PRInt64 aLivemarkFolderId)
|
nsLivemarkService::DeleteLivemarkChildren(PRInt64 aLivemarkFolderId)
|
||||||
{
|
{
|
||||||
|
nsresult rv;
|
||||||
nsNavBookmarks *bookmarks = nsNavBookmarks::GetBookmarksService();
|
nsNavBookmarks *bookmarks = nsNavBookmarks::GetBookmarksService();
|
||||||
|
nsNavHistory* history = History();
|
||||||
|
|
||||||
|
nsCOMPtr<nsINavHistoryQuery> query;
|
||||||
|
rv = history->GetNewQuery(getter_AddRefs(query));
|
||||||
|
NS_ENSURE_TRUE(query, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
|
rv = query->SetFolders(&aLivemarkFolderId, 1);
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
nsCOMPtr<nsINavHistoryQueryOptions> options;
|
||||||
|
rv = history->GetNewQueryOptions(getter_AddRefs(options));
|
||||||
|
NS_ENSURE_TRUE(options, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
PRUint32 mode = nsINavHistoryQueryOptions::GROUP_BY_FOLDER;
|
||||||
|
rv = options->SetGroupingMode(&mode, 1);
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
nsCOMPtr<nsINavHistoryResult> result;
|
||||||
|
rv = history->ExecuteQuery(query, options, getter_AddRefs(result));
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
nsCOMPtr<nsINavHistoryQueryResultNode> root;
|
||||||
|
rv = result->GetRoot(getter_AddRefs(root));
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
PRUint32 cc;
|
||||||
|
rv = root->GetChildCount(&cc);
|
||||||
|
for (PRUint32 i = 0; i < cc; i++) {
|
||||||
|
nsCOMPtr<nsINavHistoryResultNode> node;
|
||||||
|
rv = root->GetChild(i, getter_AddRefs(node));
|
||||||
|
if (NS_FAILED(rv)) continue;
|
||||||
|
nsCOMPtr<nsINavHistoryURIResultNode> uriNode = do_QueryInterface(node, &rv);
|
||||||
|
if (NS_FAILED(rv)) continue;
|
||||||
|
nsCAutoString spec;
|
||||||
|
rv = uriNode->GetUri(spec);
|
||||||
|
if (NS_FAILED(rv)) continue;
|
||||||
|
nsCOMPtr<nsIURI> uri;
|
||||||
|
rv = NS_NewURI(getter_AddRefs(uri), spec, nsnull);
|
||||||
|
if (NS_FAILED(rv)) continue;
|
||||||
|
rv = mAnnotationService->RemoveAnnotation(uri,
|
||||||
|
NS_LITERAL_CSTRING(LMANNO_BMANNO));
|
||||||
|
if (NS_FAILED(rv)) continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Get the folder children.
|
// Get the folder children.
|
||||||
nsresult rv = bookmarks->RemoveFolderChildren(aLivemarkFolderId);
|
rv = bookmarks->RemoveFolderChildren(aLivemarkFolderId);
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
nsLivemarkService::InsertLivemarkChild(PRInt64 aLivemarkFolderId,
|
nsLivemarkService::InsertLivemarkChild(PRInt64 aLivemarkFolderId,
|
||||||
nsIURI *aURI,
|
nsIURI *aURI,
|
||||||
const nsAString &aTitle)
|
const nsAString &aTitle,
|
||||||
|
const nsAString &aFeedURI)
|
||||||
{
|
{
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
nsNavBookmarks *bookmarks = nsNavBookmarks::GetBookmarksService();
|
nsNavBookmarks *bookmarks = nsNavBookmarks::GetBookmarksService();
|
||||||
@ -462,6 +507,12 @@ nsLivemarkService::InsertLivemarkChild(PRInt64 aLivemarkFolderId,
|
|||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
rv = bookmarks->SetItemTitle(aURI, aTitle);
|
rv = bookmarks->SetItemTitle(aURI, aTitle);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
mAnnotationService->SetAnnotationString(aURI,
|
||||||
|
NS_LITERAL_CSTRING(LMANNO_BMANNO),
|
||||||
|
aFeedURI,
|
||||||
|
0,
|
||||||
|
nsIAnnotationService::EXPIRE_NEVER);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
#define LMANNO_FEEDURI "livemark/feedURI"
|
#define LMANNO_FEEDURI "livemark/feedURI"
|
||||||
#define LMANNO_SITEURI "livemark/siteURI"
|
#define LMANNO_SITEURI "livemark/siteURI"
|
||||||
#define LMANNO_EXPIRATION "livemark/expiration"
|
#define LMANNO_EXPIRATION "livemark/expiration"
|
||||||
|
#define LMANNO_BMANNO "livemark/bookmarkFeedURI"
|
||||||
|
|
||||||
class nsLivemarkService : public nsILivemarkService
|
class nsLivemarkService : public nsILivemarkService
|
||||||
{
|
{
|
||||||
@ -63,7 +64,8 @@ public:
|
|||||||
nsresult DeleteLivemarkChildren(PRInt64 aLivemarkFolderId);
|
nsresult DeleteLivemarkChildren(PRInt64 aLivemarkFolderId);
|
||||||
nsresult InsertLivemarkChild(PRInt64 aLivemarkFolderId,
|
nsresult InsertLivemarkChild(PRInt64 aLivemarkFolderId,
|
||||||
nsIURI *aURI,
|
nsIURI *aURI,
|
||||||
const nsAString &aTitle);
|
const nsAString &aTitle,
|
||||||
|
const nsAString &aFeedURI);
|
||||||
nsresult InsertLivemarkLoadingItem(PRInt64 aFolder);
|
nsresult InsertLivemarkLoadingItem(PRInt64 aFolder);
|
||||||
nsresult InsertLivemarkFailedItem(PRInt64 aFolder);
|
nsresult InsertLivemarkFailedItem(PRInt64 aFolder);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user