<binding id="popups">
 <content>
 <!--xul:box class="popup-internal-box" orient="vertical" flex="1" style="overflow: auto">
 <children/>
 </xul:box-->
 <xul:arrowscrollbox class="popup-internal-box" flex="1" orient="vertical">
 <!--xul:box class="popup-internal-box" orient="vertical"-->
 <children/>
 <!--/xul:box-->
 </xul:arrowscrollbox>
 </content>
 <interface>
 <method name="openPopup">
 <argument name="element"/>
 <argument name="xpos"/>
 <argument name="ypos"/>
 <argument name="popuptype"/>
 <argument name="anchoralignment"/>
 <argument name="popupalignment"/>
 <body>
 <![CDATA[
 try {
 var popupSetBox =this.parentNode.boxObject.QueryInterface(Components.interfaces.nsIPopupSetBoxObject);
 var menuBox = this.parentNode.boxObject.QueryInterface(Components.interfaces.nsIMenuBoxObject);
 } catch(e) {}
 if (popupSetBox)
 popupSetBox.createPopup(element, this, xpos, ypos, popuptype, anchoralignment, popupalignment);
 else if (menuBox)
 menuBox.openMenu(true);
 ]]>
 </body>
 </method>
 <method name="closePopup">
 <body>
 <![CDATA[
 try {
 var popupSetBox = this.parentNode.boxObject.QueryInterface(Components.interfaces.nsIPopupSetBoxObject);
 var menuBox = this.parentNode.boxObject.QueryInterface(Components.interfaces.nsIMenuBoxObject);
 } catch(e) {}
 if (popupSetBox)
 popupSetBox.destroyPopup();
 else if (menuBox)
 menuBox.openMenu(false);
 ]]>
 </body>
 </method>
 </interface>
 </binding>