From 751a4ccf415539d62a54841e9c502644e4ba67cd Mon Sep 17 00:00:00 2001 From: "sspitzer@mozilla.org" Date: Fri, 22 Jun 2007 16:19:47 -0700 Subject: [PATCH] fix for bug #384731: "Bookmark This Page" throws exception on close in bookmarkProperties.js if you have "bookmarkPropertiesDialog/lastUsed" annotations that point to itemIds for folder that don't exist fix for bug #384733: "Add Bookmark" dialog truncated if you have "bookmarkPropertiesDialog/lastUsed" annotations that point to itemIds for folder that don't exist r=mano --- .../places/content/bookmarkProperties.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/browser/components/places/content/bookmarkProperties.js b/browser/components/places/content/bookmarkProperties.js index e415e447ca69..26368a57eb54 100755 --- a/browser/components/places/content/bookmarkProperties.js +++ b/browser/components/places/content/bookmarkProperties.js @@ -371,12 +371,19 @@ var BookmarkPropertiesPanel = { * @return the new menu item. */ _appendFolderItemToMenupopup: - function BPP__appendFolderItemToMenuList(aMenupopup, aFolderId) { + function BPP__appendFolderItemToMenupopup(aMenupopup, aFolderId) { + try { + var folderTitle = PlacesUtils.bookmarks.getItemTitle(aFolderId); + } + catch (ex) { + NS_ASSERT(folderTitle, "no title found for folderId of " + aFolderId); + return null; + } + // First make sure the folders-separator is visible this._element("foldersSeparator").hidden = false; var folderMenuItem = document.createElement("menuitem"); - var folderTitle = PlacesUtils.bookmarks.getItemTitle(aFolderId) folderMenuItem.folderId = aFolderId; folderMenuItem.setAttribute("label", folderTitle); folderMenuItem.className = "menuitem-iconic folder-icon"; @@ -424,6 +431,12 @@ var BookmarkPropertiesPanel = { var defaultItem = this._getFolderMenuItem(this._defaultInsertionPoint.itemId, true); + + // if we fail to get a menuitem for the default insertion point + // use the Bookmarks root + if (!defaultItem) + defaultItem = this._element("bookmarksRootItem"); + this._folderMenuList.selectedItem = defaultItem; }, @@ -1055,7 +1068,7 @@ var BookmarkPropertiesPanel = { var menupopup = this._folderMenuList.menupopup; // 0: Bookmarks root, 1: toolbar folder, 2: separator - for (var i=3; i < menupopup.childNodes.length; i++) { + for (var i=3; i < menupopup.childNodes.length; i++) { if (menupopup.childNodes[i].folderId == aFolderId) return menupopup.childNodes[i]; }