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

Unified Diff: chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js

Issue 543863002: Typecheck chrome://bookmarks using Closure Compiler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@true_master
Patch Set: debug warns Created 6 years, 3 months 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
Index: chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js
diff --git a/chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js b/chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js
index 0a94621a4649c57fd12bba04c0ecee2cdffe37d8..e622db7f57f54a8f4f7261d9f492566bf0c9e06d 100644
--- a/chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js
+++ b/chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js
@@ -13,22 +13,23 @@ cr.define('bmm', function() {
/** @const */ var Tree = cr.ui.Tree;
/** @const */ var TreeItem = cr.ui.TreeItem;
+ /** @const */ var localStorage = window.localStorage;
var treeLookup = {};
- var tree;
// Manager for persisting the expanded state.
- var expandedManager = {
+ var expandedManager = /** @type {EventListener} */({
/**
* A map of the collapsed IDs.
* @type {Object}
*/
map: 'bookmarkTreeState' in localStorage ?
- JSON.parse(localStorage['bookmarkTreeState']) : {},
+ /** @type {Object} */(JSON.parse(localStorage['bookmarkTreeState'])) :
+ {},
/**
* Set the collapsed state for an ID.
- * @param {string} The bookmark ID of the tree item that was expanded or
+ * @param {string} id The bookmark ID of the tree item that was expanded or
* collapsed.
* @param {boolean} expanded Whether the tree item was expanded.
*/
@@ -83,7 +84,7 @@ cr.define('bmm', function() {
localStorage['bookmarkTreeState'] = JSON.stringify(map);
}, 100);
}
- };
+ });
// Clean up once per session but wait until things settle down a bit.
setTimeout(expandedManager.cleanUp.bind(expandedManager), 1e4);
@@ -131,12 +132,16 @@ cr.define('bmm', function() {
*
* @param {!cr.ui.TreeItem} parent The parent tree item.
* @param {!cr.ui.TreeItem} treeItem The tree item to add.
- * @param {Function=} f A function which gets called after the item has been
- * added at the right index.
+ * @param {Function=} opt_f A function which gets called after the item has
+ * been added at the right index.
*/
function addTreeItem(parent, treeItem, opt_f) {
chrome.bookmarks.getChildren(parent.bookmarkNode.id, function(children) {
- var index = children.filter(bmm.isFolder).map(function(item) {
+ var isFolder = /**
+ * @type {function (BookmarkTreeNode, number,
+ * Array.<(BookmarkTreeNode)>)}
+ */(bmm.isFolder);
+ var index = children.filter(isFolder).map(function(item) {
return item.id;
}).indexOf(treeItem.bookmarkNode.id);
parent.addAt(treeItem, index);
@@ -151,7 +156,7 @@ cr.define('bmm', function() {
* Creates a new bookmark list.
* @param {Object=} opt_propertyBag Optional properties.
* @constructor
- * @extends {HTMLButtonElement}
+ * @extends {cr.ui.Tree}
*/
var BookmarkTree = cr.ui.define('tree');
@@ -172,6 +177,10 @@ cr.define('bmm', function() {
treeItem.label = treeItem.bookmarkNode.title = changeInfo.title;
},
+ /**
+ * @param {string} id
+ * @param {ReorderInfo} reorderInfo
+ */
handleChildrenReordered: function(id, reorderInfo) {
var parentItem = treeLookup[id];
// The tree only contains folders.
@@ -190,6 +199,10 @@ cr.define('bmm', function() {
}
},
+ /**
+ * @param {string} id
+ * @param {MoveInfo} moveInfo
+ */
handleMoved: function(id, moveInfo) {
var treeItem = treeLookup[id];
if (treeItem) {
@@ -262,7 +275,8 @@ cr.define('bmm', function() {
hasDirectories = true;
var item = new BookmarkTreeItem(bookmarkNode);
parentTreeItem.add(item);
- var anyChildren = buildTreeItems(item, bookmarkNode.children);
+ var children = assert(bookmarkNode.children);
+ var anyChildren = buildTreeItems(item, children);
item.expanded = anyChildren && expandedManager.get(bookmarkNode.id);
}
}
@@ -301,7 +315,7 @@ cr.define('bmm', function() {
BookmarkTree: BookmarkTree,
BookmarkTreeItem: BookmarkTreeItem,
treeLookup: treeLookup,
- tree: tree,
+ tree: /** @type {Element} */(null), // Set when decorated.
ROOT_ID: ROOT_ID
};
});

Powered by Google App Engine
This is Rietveld 408576698