Bug 957588 - Bookmark navbar button is checked for non-metro bookmarks r=sfoster

This commit is contained in:
Rodrigo Silveira 2014-01-16 11:16:32 -08:00
Родитель 9eacba08bd
Коммит 760c8e154f
1 изменённых файлов: 13 добавлений и 4 удалений

Просмотреть файл

@ -41,11 +41,15 @@ var Bookmarks = {
});
},
_isMetroBookmark: function(aItemId) {
return PlacesUtils.bookmarks.getFolderIdForItem(aItemId) == Bookmarks.metroRoot;
},
isURIBookmarked: function bh_isURIBookmarked(aURI, callback) {
if (!callback)
return;
PlacesUtils.asyncGetBookmarkIds(aURI, function(aItemIds) {
callback(aItemIds && aItemIds.length > 0);
callback(aItemIds && aItemIds.length > 0 && aItemIds.some(this._isMetroBookmark));
}, this);
},
@ -53,10 +57,15 @@ var Bookmarks = {
// XXX blargle xpconnect! might not matter, but a method on
// nsINavBookmarksService that takes an array of items to
// delete would be faster. better yet, a method that takes a URI!
PlacesUtils.asyncGetBookmarkIds(aURI, function(aItemIds) {
aItemIds.forEach(PlacesUtils.bookmarks.removeItem);
PlacesUtils.asyncGetBookmarkIds(aURI, (aItemIds) => {
aItemIds.forEach((aItemId) => {
if (this._isMetroBookmark(aItemId)) {
PlacesUtils.bookmarks.removeItem(aItemId);
}
});
if (callback)
callback(aURI, aItemIds);
callback();
// XXX Used for browser-chrome tests
let event = document.createEvent("Events");