if (!this.charset || this.charset === "UTF-8")
return encodeURIComponent(str);
let conv = services.CharsetConv(this.charset);
- return escape(conv.ConvertFromUnicode(str) + conv.Finish());
+ return escape(conv.ConvertFromUnicode(str) + conv.Finish()).replace(/\+/g, encodeURIComponent);
+ },
+
+ get folder() {
+ let res = [];
+ res.toString = function () this.join("/");
+
+ let id = this.id, parent, title;
+ while ((id = services.bookmarks.getFolderIdForItem(id)) &&
+ (title = services.bookmarks.getItemTitle(id)))
+ res.push(title);
+
+ return res.reverse();
}
})
Bookmark.prototype.members.uri = Bookmark.prototype.members.url;
let uri = newURI(node.uri);
let keyword = services.bookmarks.getKeywordForBookmark(node.itemId);
- let tags = tags in node ? (node.tags ? node.tags.split(/, /g) : [])
- : services.tagging.getTagsForURI(uri, {}) || [];
+ let tags = "tags" in node ? (node.tags ? node.tags.split(/, /g) : [])
+ : services.tagging.getTagsForURI(uri, {}) || [];
let post = BookmarkCache.getAnnotation(node.itemId, this.POST);
let charset = BookmarkCache.getAnnotation(node.itemId, this.CHARSET);
let query = services.history.getNewQuery();
let options = services.history.getNewQueryOptions();
options.queryType = options.QUERY_TYPE_BOOKMARKS;
- options.excludeItemIfParentHasAnnotation = "livemark/feedURI";
+ try {
+ // https://bugzil.la/702639
+ options.excludeItemIfParentHasAnnotation = "livemark/feedURI";
+ }
+ catch (e) {}
let { root } = services.history.executeQuery(query, options);
root.containerOpen = true;