Index: chrome/browser/resources/bookmark_manager/js/main.js |
diff --git a/chrome/browser/resources/bookmark_manager/js/main.js b/chrome/browser/resources/bookmark_manager/js/main.js |
index acfc3d7db701566ae61ea65a88c2c33d5ebf04f4..f8c7638ab56b53bf918c5bc22b89edbfe4cb685c 100644 |
--- a/chrome/browser/resources/bookmark_manager/js/main.js |
+++ b/chrome/browser/resources/bookmark_manager/js/main.js |
@@ -398,7 +398,8 @@ function updateOpenCommand(e, command, singularId, pluralId, commandDisabled) { |
// how many bookmarks will be opened. For example if you right click an |
// empty area in a folder with 1 bookmark the text should still say "all". |
var selectedNodes = getSelectedBookmarkNodes(e.target).filter(notNewNode); |
- var singular = selectedNodes.length == 1 && !bmm.isFolder(selectedNodes[0]); |
+ var singular = selectedNodes && selectedNodes.length == 1 && |
+ !bmm.isFolder(selectedNodes[0]); |
command.label = loadTimeData.getString(singular ? singularId : pluralId); |
} |
@@ -841,8 +842,14 @@ function getLinkController() { |
* @return {!Array} Array of bookmark nodes. |
*/ |
function getSelectedBookmarkNodes(opt_target) { |
- return (opt_target || document.activeElement) == bmm.tree ? |
- bmm.tree.selectedFolders : bmm.list.selectedItems; |
+ if (opt_target) { |
Bernhard Bauer
2015/04/15 10:11:57
I don't really understand what's going on here. Yo
|
+ return (opt_target == bmm.tree) ? bmm.tree.selectedFolders : |
+ bmm.list.selectedItems; |
+ } else if (document.activeElement == bmm.tree || |
+ document.activeElement == bmm.list) { |
+ return (document.activeElement == bmm.tree) ? bmm.tree.selectedFolders : |
+ bmm.list.selectedItems; |
+ } |
} |
/** |
@@ -851,6 +858,8 @@ function getSelectedBookmarkNodes(opt_target) { |
*/ |
function getSelectedBookmarkIds(opt_target) { |
var selectedNodes = getSelectedBookmarkNodes(opt_target); |
+ if (!selectedNodes || !selectedNodes.length) |
+ return; |
selectedNodes.sort(function(a, b) { return a.index - b.index }); |
return selectedNodes.map(function(node) { |
return node.id; |
@@ -896,10 +905,12 @@ function openBookmarks(kind, opt_eventTarget) { |
function openItem() { |
var bookmarkNodes = getSelectedBookmarkNodes(); |
// If we double clicked or pressed enter on a single folder, navigate to it. |
- if (bookmarkNodes.length == 1 && bmm.isFolder(bookmarkNodes[0])) |
+ if (bookmarkNodes && bookmarkNodes.length == 1 && |
+ bmm.isFolder(bookmarkNodes[0])) { |
navigateTo(bookmarkNodes[0].id); |
- else |
+ } else { |
openBookmarks(LinkKind.FOREGROUND_TAB); |
+ } |
} |
/** |
@@ -918,7 +929,7 @@ function updateSearchResults() { |
*/ |
function deleteBookmarks(opt_target) { |
var selectedIds = getSelectedBookmarkIds(opt_target); |
- if (!selectedIds.length) |
+ if (!selectedIds || !selectedIds.length) |
return; |
var filteredIds = getFilteredSelectedBookmarkIds(opt_target); |
@@ -1232,6 +1243,8 @@ function getFilteredSelectedBookmarkIds(opt_target) { |
var filteredIds = []; |
// Selected nodes to iterate through for matches. |
var nodes = getSelectedBookmarkNodes(opt_target); |
+ if (!nodes) |
+ return filteredIds; |
for (var i = 0; i < nodes.length; i++) |
if (!hasSelectedAncestor(bmm.tree.getBookmarkNodeById(nodes[i].parentId))) |