Index: chrome/browser/resources/enhanced_bookmark_manager/js/bmm.js |
diff --git a/chrome/browser/resources/enhanced_bookmark_manager/js/bmm.js b/chrome/browser/resources/enhanced_bookmark_manager/js/bmm.js |
deleted file mode 100644 |
index b238f4deabe0d6e3528147a1a971428af8be9698..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/enhanced_bookmark_manager/js/bmm.js |
+++ /dev/null |
@@ -1,248 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-cr.define('bmm', function() { |
- var Promise = cr.Promise; |
- |
- /** |
- * Whether a node contains another node. |
- * TODO(yosin): Once JavaScript style guide is updated and linter follows |
- * that, we'll remove useless documentations for |parent| and |descendant|. |
- * TODO(yosin): bmm.contains() should be method of BookmarkTreeNode. |
- * @param {!BookmarkTreeNode} parent . |
- * @param {!BookmarkTreeNode} descendant . |
- * @return {boolean} Whether the parent contains the descendant. |
- */ |
- function contains(parent, descendant) { |
- if (descendant.parentId == parent.id) |
- return true; |
- // the bmm.treeLookup contains all folders |
- var parentTreeItem = bmm.treeLookup[descendant.parentId]; |
- if (!parentTreeItem || !parentTreeItem.bookmarkNode) |
- return false; |
- return this.contains(parent, parentTreeItem.bookmarkNode); |
- } |
- |
- /** |
- * @param {!BookmarkTreeNode} node The node to test. |
- * @return {boolean} Whether a bookmark node is a folder. |
- */ |
- function isFolder(node) { |
- return !('url' in node); |
- } |
- |
- var loadingPromises = {}; |
- |
- /** |
- * Loads a subtree of the bookmark tree and returns a {@code cr.Promise} that |
- * will be fulfilled when done. This reuses multiple loads so that we do not |
- * load the same subtree more than once at the same time. |
- * @return {!cr.Promise} The future promise for the load. |
- */ |
- function loadSubtree(id) { |
- var p = new Promise; |
- if (!(id in loadingPromises)) { |
- loadingPromises[id] = new Promise; |
- loadingPromises[id].addListener(function(n) { |
- p.value = n; |
- }); |
- chrome.bookmarkManagerPrivate.getSubtree(id, false, function(nodes) { |
- loadingPromises[id].value = nodes && nodes[0]; |
- delete loadingPromises[id]; |
- }); |
- } else { |
- loadingPromises[id].addListener(function(n) { |
- p.value = n; |
- }); |
- } |
- return p; |
- } |
- |
- /** |
- * Loads the entire bookmark tree and returns a {@code cr.Promise} that will |
- * be fulfilled when done. This reuses multiple loads so that we do not load |
- * the same tree more than once at the same time. |
- * @return {!cr.Promise} The future promise for the load. |
- */ |
- function loadTree() { |
- return loadSubtree(''); |
- } |
- |
- var bookmarkCache = { |
- /** |
- * Removes the cached item from both the list and tree lookups. |
- */ |
- remove: function(id) { |
- var treeItem = bmm.treeLookup[id]; |
- if (treeItem) { |
- var items = treeItem.items; // is an HTMLCollection |
- for (var i = 0; i < items.length; ++i) { |
- var item = items[i]; |
- var bookmarkNode = item.bookmarkNode; |
- delete bmm.treeLookup[bookmarkNode.id]; |
- } |
- delete bmm.treeLookup[id]; |
- } |
- }, |
- |
- /** |
- * Updates the underlying bookmark node for the tree items and list items by |
- * querying the bookmark backend. |
- * @param {string} id The id of the node to update the children for. |
- * @param {Function=} opt_f A funciton to call when done. |
- */ |
- updateChildren: function(id, opt_f) { |
- function updateItem(bookmarkNode) { |
- var treeItem = bmm.treeLookup[bookmarkNode.id]; |
- if (treeItem) { |
- treeItem.bookmarkNode = bookmarkNode; |
- } |
- } |
- |
- chrome.bookmarks.getChildren(id, function(children) { |
- if (children) |
- children.forEach(updateItem); |
- |
- if (opt_f) |
- opt_f(children); |
- }); |
- } |
- }; |
- |
- /** |
- * Called when the title of a bookmark changes. |
- * @param {string} id The id of changed bookmark node. |
- * @param {!Object} changeInfo The information about how the node changed. |
- */ |
- function handleBookmarkChanged(id, changeInfo) { |
- if (bmm.tree) |
- bmm.tree.handleBookmarkChanged(id, changeInfo); |
- if (bmm.list) |
- bmm.list.handleBookmarkChanged(id, changeInfo); |
- } |
- |
- /** |
- * Callback for when the user reorders by title. |
- * @param {string} id The id of the bookmark folder that was reordered. |
- * @param {!Object} reorderInfo The information about how the items where |
- * reordered. |
- */ |
- function handleChildrenReordered(id, reorderInfo) { |
- if (bmm.tree) |
- bmm.tree.handleChildrenReordered(id, reorderInfo); |
- if (bmm.list) |
- bmm.list.handleChildrenReordered(id, reorderInfo); |
- bookmarkCache.updateChildren(id); |
- } |
- |
- /** |
- * Callback for when a bookmark node is created. |
- * @param {string} id The id of the newly created bookmark node. |
- * @param {!Object} bookmarkNode The new bookmark node. |
- */ |
- function handleCreated(id, bookmarkNode) { |
- if (bmm.list) |
- bmm.list.handleCreated(id, bookmarkNode); |
- if (bmm.tree) |
- bmm.tree.handleCreated(id, bookmarkNode); |
- bookmarkCache.updateChildren(bookmarkNode.parentId); |
- } |
- |
- /** |
- * Callback for when a bookmark node is moved. |
- * @param {string} id The id of the moved bookmark node. |
- * @param {!Object} moveInfo The information about move. |
- */ |
- function handleMoved(id, moveInfo) { |
- if (bmm.list) |
- bmm.list.handleMoved(id, moveInfo); |
- if (bmm.tree) |
- bmm.tree.handleMoved(id, moveInfo); |
- |
- bookmarkCache.updateChildren(moveInfo.parentId); |
- if (moveInfo.parentId != moveInfo.oldParentId) |
- bookmarkCache.updateChildren(moveInfo.oldParentId); |
- } |
- |
- /** |
- * Callback for when a bookmark node is removed. |
- * @param {string} id The id of the removed bookmark node. |
- * @param {!Object} bookmarkNode The information about removed. |
- */ |
- function handleRemoved(id, removeInfo) { |
- if (bmm.list) |
- bmm.list.handleRemoved(id, removeInfo); |
- if (bmm.tree) |
- bmm.tree.handleRemoved(id, removeInfo); |
- |
- bookmarkCache.updateChildren(removeInfo.parentId); |
- bookmarkCache.remove(id); |
- } |
- |
- /** |
- * Callback for when all bookmark nodes have been deleted. |
- */ |
- function handleRemoveAll() { |
- // Reload the list and the tree. |
- if (bmm.list) |
- bmm.list.reload(); |
- if (bmm.tree) |
- bmm.tree.reload(); |
- } |
- |
- /** |
- * Callback for when importing bookmark is started. |
- */ |
- function handleImportBegan() { |
- chrome.bookmarks.onCreated.removeListener(handleCreated); |
- chrome.bookmarks.onChanged.removeListener(handleBookmarkChanged); |
- } |
- |
- /** |
- * Callback for when importing bookmark node is finished. |
- */ |
- function handleImportEnded() { |
- // When importing is done we reload the tree and the list. |
- |
- function f() { |
- bmm.tree.removeEventListener('load', f); |
- |
- chrome.bookmarks.onCreated.addListener(handleCreated); |
- chrome.bookmarks.onChanged.addListener(handleBookmarkChanged); |
- |
- if (!bmm.list) |
- return; |
- |
- // TODO(estade): this should navigate to the newly imported folder, which |
- // may be the bookmark bar if there were no previous bookmarks. |
- bmm.list.reload(); |
- } |
- |
- if (bmm.tree) { |
- bmm.tree.addEventListener('load', f); |
- bmm.tree.reload(); |
- } |
- } |
- |
- /** |
- * Adds the listeners for the bookmark model change events. |
- */ |
- function addBookmarkModelListeners() { |
- chrome.bookmarks.onChanged.addListener(handleBookmarkChanged); |
- chrome.bookmarks.onChildrenReordered.addListener(handleChildrenReordered); |
- chrome.bookmarks.onCreated.addListener(handleCreated); |
- chrome.bookmarks.onMoved.addListener(handleMoved); |
- chrome.bookmarks.onRemoved.addListener(handleRemoved); |
- chrome.bookmarks.onImportBegan.addListener(handleImportBegan); |
- chrome.bookmarks.onImportEnded.addListener(handleImportEnded); |
- }; |
- |
- return { |
- contains: contains, |
- isFolder: isFolder, |
- loadSubtree: loadSubtree, |
- loadTree: loadTree, |
- addBookmarkModelListeners: addBookmarkModelListeners |
- }; |
-}); |