| Index: chrome/test/data/extensions/samples/bookmarks/bookmark_api.html
 | 
| diff --git a/chrome/test/data/extensions/samples/bookmarks/bookmark_api.html b/chrome/test/data/extensions/samples/bookmarks/bookmark_api.html
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..4217ece3722295e41508d66a590a7e0b0738689c
 | 
| --- /dev/null
 | 
| +++ b/chrome/test/data/extensions/samples/bookmarks/bookmark_api.html
 | 
| @@ -0,0 +1,90 @@
 | 
| +<html>
 | 
| +<link rel="stylesheet" type="text/css" href="extensions_toolstrip.css">
 | 
| +<script>
 | 
| +var dump = function(obj, indent) {
 | 
| +  if (indent === undefined)
 | 
| +    indent = "";
 | 
| +  if (typeof obj == "object") {
 | 
| +    var ret = "{<br/>";
 | 
| +    var child_indent = indent + "  ";
 | 
| +    for (var item in obj) {
 | 
| +      var child = null;
 | 
| +      try {
 | 
| +        child = obj[item];
 | 
| +      } catch (e) {
 | 
| +        child = '<error>';
 | 
| +      }
 | 
| +      ret += child_indent + item + ": " + dump(child, indent + "  ");
 | 
| +    }
 | 
| +    return ret + indent + "}" + "<br/>";
 | 
| +  } else {
 | 
| +    return obj.toString() + "<br/>";
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +var testMoveBookmarks = function(event) {
 | 
| +  testMoveBookmarks2(event);
 | 
| +}
 | 
| +
 | 
| +var testMoveBookmarks2 = function(event) {
 | 
| +  console.log(testMoveBookmarks2.caller.name);
 | 
| +  if (event.shiftKey) {
 | 
| +    // TODO - it would be nice to have a mechanism to do this built-in to a
 | 
| +    // context menu.
 | 
| +    window.location.reload();
 | 
| +    return;
 | 
| +  }
 | 
| +  console.log("testMoveBookmarks2");
 | 
| +  chromium.bookmarks.get([], function(root) {
 | 
| +    console.log("1");
 | 
| +    chromium.bookmarks.get(root[0].childrenIds, function(root_children) {
 | 
| +      var bookmark_bar = root_children[0];  // bookmarks bar is always first
 | 
| +      chromium.bookmarks.get(bookmark_bar.childrenIds,
 | 
| +                                 function(bar_children) {
 | 
| +        var folder_search = [];
 | 
| +        bar_children.forEach(function(child) {
 | 
| +          if (child.title == "folder" && child.url == undefined) {
 | 
| +            folder_search.push(child);
 | 
| +          }
 | 
| +        });
 | 
| +        if (folder_search.length == 1) {
 | 
| +          console.log('moving children out of "folder"');
 | 
| +          var folder = folder_search[0];
 | 
| +          folder.childrenIds.forEach(function(folder_child_id) {
 | 
| +            chromium.bookmarks.move({'id': folder_child_id,
 | 
| +                                     'parentId': bookmark_bar.id});
 | 
| +          });
 | 
| +          chromium.bookmarks.remove({'id': folder.id});
 | 
| +        } else if (folder_search.length == 0) {
 | 
| +          console.log('creating "folder" and moving children into it');
 | 
| +          chromium.bookmarks.create({'parentId': bookmark_bar.id, 
 | 
| +                                     'title': 'folder'},
 | 
| +                                      function(folder) {
 | 
| +            chromium.bookmarks.search("oog", function(oog_search) {
 | 
| +              oog_search.forEach(function(oog_match) {
 | 
| +                chromium.bookmarks.move({'id': oog_match.id,
 | 
| +                                         'parentId': folder.id})
 | 
| +              });
 | 
| +            });
 | 
| +          });
 | 
| +        } else {
 | 
| +          console.log("my puny code wasn't written to handle this");
 | 
| +        }
 | 
| +      });
 | 
| +    });
 | 
| +  });
 | 
| +};
 | 
| +
 | 
| +var dumpBookmarks = function(event) {
 | 
| +  window.open("bookmark_view.html");
 | 
| +};
 | 
| +</script>
 | 
| +<body>
 | 
| +<div class="toolstrip-button" onclick="dumpBookmarks(window.event);">
 | 
| +<span>Dump Bookmarks</span>
 | 
| +</div>
 | 
| +<div class="toolstrip-button" onclick="testMoveBookmarks(window.event);">
 | 
| +<span>Test Move</span>
 | 
| +</div>
 | 
| +</body>
 | 
| +</html>
 | 
| 
 |