Index: chrome/browser/resources/bookmark_manager/js/bmm.js |
diff --git a/chrome/browser/resources/bookmark_manager/js/bmm.js b/chrome/browser/resources/bookmark_manager/js/bmm.js |
index 8daf62cd720fded56fefc2f64486966d56809fc3..3c854aa6290aa44c0f61cdf3b66f31776dc3a01a 100644 |
--- a/chrome/browser/resources/bookmark_manager/js/bmm.js |
+++ b/chrome/browser/resources/bookmark_manager/js/bmm.js |
@@ -41,8 +41,14 @@ cr.define('bmm', function() { |
* @return {!Promise<!Array<!BookmarkTreeNode>>} . |
*/ |
function getSubtreePromise(id, foldersOnly) { |
- return new Promise(function(resolve) { |
- chrome.bookmarkManagerPrivate.getSubtree(id, foldersOnly, resolve); |
+ return new Promise(function(resolve, reject) { |
+ chrome.bookmarkManagerPrivate.getSubtree(id, foldersOnly, function(node) { |
+ if (chrome.runtime.lastError) { |
+ reject(new Error(chrome.runtime.lastError.message)); |
+ return; |
+ } |
+ resolve(node); |
+ }); |
}); |
} |
@@ -55,8 +61,16 @@ cr.define('bmm', function() { |
function loadSubtree(id) { |
if (!loadingPromises[id]) { |
loadingPromises[id] = getSubtreePromise(id, false).then(function(nodes) { |
- delete loadingPromises[id]; |
+ loadingPromises[id].then(function() { |
Bernhard Bauer
2015/04/30 15:08:07
You can pull this out into a single callback on lo
Deepak
2015/04/30 16:11:19
Done.
|
+ delete loadingPromises[id]; |
+ }); |
return nodes && nodes[0]; |
+ }, function(error) { |
+ loadingPromises[id].then(function() { |
+ delete loadingPromises[id]; |
+ }); |
+ console.error(error.message); |
+ return; |
}); |
} |
return loadingPromises[id]; |