a exploración de marcadores de Firefox no va más allá del primer nivel con Javascript

He escrito un código para explorar mis marcadores de Firefox pero solo obtengo el primer nivel de marcadores (es decir, no obtengo los enlaces en las carpetas).

p.ej

Los motores de búsqueda

yahoo.com

google.com

En este ejemplo, solo tengo acceso a Search_engines y google.com, no yahoo.com

Mi función es recursiva No sé por qué sucede esto.

mi código

function browse_bookmark_node(bookmark_node, array)
{
    // We explore the bookmarks with this function     
   // iterate over the immediate children of this folder
   for (var i = 0; i < bookmark_node.childCount; i ++) {
       var node = bookmark_node.getChild(i);
       if (node.type ==0) {
          // the node is a link so we add it to the array
          array.push(node.title); 
       } else if (node.type ==6) {
          // the node is a folder so we explore it
          browse_bookmark_node(node, array);
       }
   }
}

function wrapper_browse_bookmark_node(bookmark_node) {
   // We use this function to wrapp the function browse_bookmark_node and keep track of the links
   var array = [];
   browse_bookmark_node(bookmark_node, array);
   return array;
}

// All the code following is used to access firefox bookmarks and works fine
var historyService = Components.classes["@mozilla.org/browser/nav-history-service;1"]
                               .getService(Components.interfaces.nsINavHistoryService);
var options = historyService.getNewQueryOptions();
var query = historyService.getNewQuery();

var bookmarksService = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"]
                                 .getService(Components.interfaces.nsINavBookmarksService);
var bookmarksMenuFolder = bookmarksService.bookmarksMenuFolder;

query.setFolders([bookmarksMenuFolder], 1);

var result = historyService.executeQuery(query, options);
var rootNode = result.root;
rootNode.containerOpen = true;

// The function call to explore the bookmarks
var links_array = wrapper_browse_bookmark_node(rootNode);

// close a container after using it!
rootNode.containerOpen = false;

Respuestas a la pregunta(2)

Su respuesta a la pregunta