third_party/js/mozmill/shared-modules/addons.js
function addonsManager_handleUtilsButton(aSpec) {
    var spec = aSpec || { };
    var item = spec.item;

    if (!item)
      throw new Error(arguments.callee.name + ": Menu item not specified.");

    var button = this.getElement({type: "utilsButton"});
    var menu = this.getElement({type: "utilsButton_menu"});

    try {
      this._controller.click(button);

      // Click the button and wait until menu has been opened
      
      // TODO: restore after 1.5.1 has landed
      // mozmill.utils.waitFor(function() {
      //   return menu.getNode() && menu.getNode().state == "open";
      // }, TIMEOUT, 100, "Menu of utils button has been opened.");
      
      mozmill.utils.waitForEval("subject && subject.state == 'open'",
                                TIMEOUT, 100, menu.getNode());

      // Click the given menu entry and make sure the 
      var menuItem = this.getElement({
        type: "utilsButton_menuItem",
        value: "#utils-" + item
      });

      this._controller.click(menuItem);
    } finally {
      // Make sure the menu has been closed
      this._controller.keypress(menu, "VK_ESCAPE", {});
      
      // TODO: restore after 1.5.1 has landed
      // mozmill.utils.waitFor(function() {
      //   return menu.getNode() && menu.getNode().state == "closed";
      // }, TIMEOUT, 100, "Menu of utils button has been closed.");
      
      mozmill.utils.waitForEval("subject && subject.state == 'closed'",
                                TIMEOUT, 100, menu.getNode());
    }
  }
function addonsManager_handleUtilsButton(aSpec) {
    var spec = aSpec || { };
    var item = spec.item;

    if (!item)
      throw new Error(arguments.callee.name + ": Menu item not specified.");

    var button = this.getElement({type: "utilsButton"});
    var menu = this.getElement({type: "utilsButton_menu"});

    try {
      this._controller.click(button);

      // Click the button and wait until menu has been opened
      
      // TODO: restore after 1.5.1 has landed
      // mozmill.utils.waitFor(function() {
      //   return menu.getNode() && menu.getNode().state == "open";
      // }, TIMEOUT, 100, "Menu of utils button has been opened.");
      
      mozmill.utils.waitForEval("subject && subject.state == 'open'",
                                TIMEOUT, 100, menu.getNode());

      // Click the given menu entry and make sure the 
      var menuItem = this.getElement({
        type: "utilsButton_menuItem",
        value: "#utils-" + item
      });

      this._controller.click(menuItem);
    } finally {
      // Make sure the menu has been closed
      this._controller.keypress(menu, "VK_ESCAPE", {});
      
      // TODO: restore after 1.5.1 has landed
      // mozmill.utils.waitFor(function() {
      //   return menu.getNode() && menu.getNode().state == "closed";
      // }, TIMEOUT, 100, "Menu of utils button has been closed.");
      
      mozmill.utils.waitForEval("subject && subject.state == 'closed'",
                                TIMEOUT, 100, menu.getNode());
    }
  }
function addonsManager_handleUtilsButton ( aSpec ) { var spec = aSpec || { } ; var item = spec . item ; if ( ! item ) throw new Error ( arguments . callee . name + ": Menu item not specified." ) ; var button = this . getElement ( { type : "utilsButton" } ) ; var menu = this . getElement ( { type : "utilsButton_menu" } ) ; try { this . _controller . click ( button ) ; // Click the button and wait until menu has been opened // TODO: restore after 1.5.1 has landed // mozmill.utils.waitFor(function() { //   return menu.getNode() && menu.getNode().state == "open"; // }, TIMEOUT, 100, "Menu of utils button has been opened."); mozmill . utils . waitForEval ( "subject && subject.state == 'open'" , TIMEOUT , 100 , menu . getNode ( ) ) ; // Click the given menu entry and make sure the  var menuItem = this . getElement ( { type : "utilsButton_menuItem" , value : "#utils-" + item } ) ; this . _controller . click ( menuItem ) ; } finally { // Make sure the menu has been closed this . _controller . keypress ( menu , "VK_ESCAPE" , { } ) ; // TODO: restore after 1.5.1 has landed // mozmill.utils.waitFor(function() { //   return menu.getNode() && menu.getNode().state == "closed"; // }, TIMEOUT, 100, "Menu of utils button has been closed."); mozmill . utils . waitForEval ( "subject && subject.state == 'closed'" , TIMEOUT , 100 , menu . getNode ( ) ) ; } }
Opens the utils button menu and clicks the specified menu entry

@param {object} aSpec
Information about the menu
Elements: item - menu item to click (updateNow, viewUpdates,
installFromFile, autoUpdateDefault,
resetAddonUpdatesToAutomatic,
resetAddonUpdatesToManual)
Opens the utils button menu and clicks the specified menu entry