Gibt es einen Grund für die umständliche Verwendung von document.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'menuitem') anstelle von document.createXULElement('menuitem'), was dir ja kürzlich noch bekannt war? Im gesamten Firefox-Code gibt es die umständliche Schreibweise kein einziges Mal mehr.
once: false ist für addEventListener außerdem Standard. Das muss man nicht explizit übergeben.