summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/content/bookmarks.js12
-rw-r--r--common/content/buffer.js8
-rw-r--r--common/modules/bookmarkcache.jsm6
3 files changed, 12 insertions, 14 deletions
diff --git a/common/content/bookmarks.js b/common/content/bookmarks.js
index 89ee37cc..52c1ecee 100644
--- a/common/content/bookmarks.js
+++ b/common/content/bookmarks.js
@@ -192,8 +192,8 @@ var Bookmarks = Module("bookmarks", {
let aliases = {};
return iter(services.browserSearch.getVisibleEngines({})).map(function ([, engine]) {
let alias = engine.alias;
- if (!alias || !/^[a-z-]+$/.test(alias))
- alias = engine.name.replace(/[^a-z_-]+/gi, "-").replace(/^-|-$/, "").toLowerCase();
+ if (!alias || !/^[a-z0-9-]+$/.test(alias))
+ alias = engine.name.replace(/[^a-z0-9]+/gi, "-").replace(/^-|-$/, "").toLowerCase();
if (!alias)
alias = "search"; // for search engines which we can't find a suitable alias
@@ -249,12 +249,6 @@ var Bookmarks = Module("bookmarks", {
},
/**
- * Returns an array of bookmark keyword objects.
- * @deprecated
- */
- getKeywords: function getKeywords() bookmarkcache.keywords,
-
- /**
* Returns an array containing a search URL and POST data for the
* given search string. If *useDefsearch* is true, the string is
* always passed to the default search engine. If it is not, the
@@ -600,7 +594,7 @@ var Bookmarks = Module("bookmarks", {
completion.search = function search(context, noSuggest) {
let [, keyword, space, args] = context.filter.match(/^\s*(\S*)(\s*)(.*)$/);
- let keywords = bookmarks.getKeywords();
+ let keywords = bookmarkcache.keywords;
let engines = bookmarks.searchEngines;
context.title = ["Search Keywords"];
diff --git a/common/content/buffer.js b/common/content/buffer.js
index 146daf9b..3c5f9cb8 100644
--- a/common/content/buffer.js
+++ b/common/content/buffer.js
@@ -324,13 +324,13 @@ var Buffer = Module("buffer", {
if (win && uri) {
statusline.progress = win.dactylProgress;
- let oldURI = webProgress.document.dactylURI;
- if (webProgress.document.dactylLoadIdx === webProgress.loadedTransIndex
+ let oldURI = win.document.dactylURI;
+ if (win.document.dactylLoadIdx === webProgress.loadedTransIndex
|| !oldURI || uri.spec.replace(/#.*/, "") !== oldURI.replace(/#.*/, ""))
for (let frame in values(buffer.allFrames(win)))
frame.document.dactylFocusAllowed = false;
- webProgress.document.dactylURI = uri.spec;
- webProgress.document.dactylLoadIdx = webProgress.loadedTransIndex;
+ win.document.dactylURI = uri.spec;
+ win.document.dactylLoadIdx = webProgress.loadedTransIndex;
}
// Workaround for bugs 591425 and 606877, dactyl bug #81
diff --git a/common/modules/bookmarkcache.jsm b/common/modules/bookmarkcache.jsm
index 89de5164..afaa56b9 100644
--- a/common/modules/bookmarkcache.jsm
+++ b/common/modules/bookmarkcache.jsm
@@ -63,7 +63,7 @@ var BookmarkCache = Module("BookmarkCache", XPCOM(Ci.nsINavBookmarkObserver), {
get bookmarks() Class.replaceProperty(this, "bookmarks", this.load()),
- get keywords() array.toObject([[b.keyword, b] for (b in this) if (b.keyword)]),
+ keywords: Class.memoize(function () array.toObject([[b.keyword, b] for (b in this) if (b.keyword)])),
rootFolders: ["toolbarFolder", "bookmarksMenuFolder", "unfiledBookmarksFolder"]
.map(function (s) services.bookmarks[s]),
@@ -185,11 +185,13 @@ var BookmarkCache = Module("BookmarkCache", XPCOM(Ci.nsINavBookmarkObserver), {
let bmark = this._loadBookmark(this.readBookmark(itemId));
this.bookmarks[bmark.id] = bmark;
storage.fireEvent(name, "add", bmark);
+ delete this.keywords;
}
}
},
onItemRemoved: function onItemRemoved(itemId, folder, index) {
let result = this._deleteBookmark(itemId);
+ delete this.keywords;
if (result)
storage.fireEvent(name, "remove", result);
},
@@ -204,6 +206,8 @@ var BookmarkCache = Module("BookmarkCache", XPCOM(Ci.nsINavBookmarkObserver), {
let bookmark = this.bookmarks[itemId];
if (bookmark) {
+ if (property == "keyword")
+ delete this.keywords;
if (property == "tags")
value = services.tagging.getTagsForURI(bookmark.uri, {});
if (property in bookmark) {