Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2624)

Unified Diff: chrome/browser/resources/bookmark_manager/js/main.js

Issue 62713002: Revert "BMM: Split initialization into two phases" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 d5e157fb5fb0758117cefaa7b93ad98fcba3c23e..4036b48730649800dfc88c1feb5a6ff71a864c32 100644
--- a/chrome/browser/resources/bookmark_manager/js/main.js
+++ b/chrome/browser/resources/bookmark_manager/js/main.js
@@ -144,7 +144,6 @@ function loadLocalizedStrings(data) {
*/
function updateHash() {
window.location.hash = tree.selectedItem.bookmarkId;
- updateAllCommands();
}
/**
@@ -360,21 +359,12 @@ function getAllUrls(nodes) {
*/
function getNodesForOpen(target) {
if (target == tree) {
- if (tree.selectedItem != searchTreeItem)
- return tree.selectedFolders;
- // Fall through to use all nodes in the list.
- } else {
- var items = list.selectedItems;
- if (items.length)
- return items;
+ var folderItem = tree.selectedItem;
+ return folderItem == searchTreeItem ?
+ list.dataModel.slice() : tree.selectedFolders;
}
-
- // The list starts off with a null dataModel. We can get here during startup.
- if (!list.dataModel)
- return [];
-
- // Return an array based on the dataModel.
- return list.dataModel.slice();
+ var items = list.selectedItems;
+ return items.length ? items : list.dataModel.slice();
}
/**
@@ -457,8 +447,7 @@ function handleCanExecuteForDocument(e) {
e.canExecute = true;
break;
case 'sort-command':
- e.canExecute = !list.isSearch() &&
- list.dataModel && list.dataModel.length > 1;
+ e.canExecute = !list.isSearch() && list.dataModel.length > 1;
break;
case 'undo-command':
// The global undo command has no visible UI, so always enable it, and
@@ -646,12 +635,25 @@ function handleCanExecuteForTree(e) {
}
/**
- * Update the canExecute state of all the commands.
+ * Update the canExecute state of the commands when the selection changes.
+ * @param {Event} e The change event object.
*/
-function updateAllCommands() {
- var commands = document.querySelectorAll('command');
- for (var i = 0; i < commands.length; i++) {
- commands[i].canExecuteChange();
+function updateCommandsBasedOnSelection(e) {
+ if (e.target == document.activeElement) {
+ // Paste only needs to be updated when the tree selection changes.
+ var commandNames = ['copy', 'cut', 'delete', 'rename-folder', 'edit',
+ 'add-new-bookmark', 'new-folder', 'open-in-new-tab',
+ 'open-in-background-tab', 'open-in-new-window', 'open-incognito-window',
+ 'open-in-same-window', 'show-in-folder'];
+
+ if (e.target == tree) {
+ commandNames.push('paste-from-context-menu', 'paste-from-organize-menu',
+ 'sort');
+ }
+
+ commandNames.forEach(function(baseId) {
+ $(baseId + '-command').canExecuteChange();
+ });
}
}
@@ -671,7 +673,7 @@ function updateEditingCommands() {
}
function handleChangeForTree(e) {
- updateAllCommands();
+ updateCommandsBasedOnSelection(e);
navigateTo(tree.selectedItem.bookmarkId, updateHash);
}
@@ -1215,11 +1217,7 @@ function initializeBookmarkManager() {
if (!chrome.bookmarks)
console.error('Bookmarks extension API is not available');
- chrome.bookmarkManagerPrivate.getStrings(continueInitializeBookmarkManager);
-}
-
-function continueInitializeBookmarkManager(localizedStrings) {
- loadLocalizedStrings(localizedStrings);
+ chrome.bookmarkManagerPrivate.getStrings(loadLocalizedStrings);
bmm.treeLookup[searchTreeItem.bookmarkId] = searchTreeItem;
@@ -1231,7 +1229,7 @@ function continueInitializeBookmarkManager(localizedStrings) {
list.addEventListener('canceledit', handleCancelEdit);
list.addEventListener('canExecute', handleCanExecuteForList);
- list.addEventListener('change', updateAllCommands);
+ list.addEventListener('change', updateCommandsBasedOnSelection);
list.addEventListener('contextmenu', updateEditingCommands);
list.addEventListener('dblclick', handleDoubleClickForList);
list.addEventListener('edit', handleEdit);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698