Ваше расширение Firefox работает в контексте Javascript, отличном от вашей HTML-страницы, поэтому расширение не может быть вызвано напрямую из Javascript на вашей HTML-странице.
Однако вы можете спроектировать расширение, чтобы разрешить доступ из HTML. HTML Javascript, как правило, не имеет доступа к объекту Component, поэтому вам нужно разрешить HTML-коду способ получить объект в вашем расширении. Для этого создайте в своем расширении компонент XPCOM и установите объект в категории «глобальное свойство JavaScript» через объект nsICategoryManager. Имя записи - это строка, используемая из непривилегированного Javascript, значение - идентификатор контракта для вашего класса XPCOM.
Однако вам также необходимо разрешить непривилегированный доступ Javascript к вашему объекту, иначе менеджер безопасности скрипта заблокирует доступ. Чтобы разрешить это, реализуйте nsISecurityCheckedComponent - предоставляя canCreateWrapper (в nsIIDPtr iid), canCallMethod (в nsIIDPtr iid, в методе wstring methodName), canGetProperty (в nsIIDPtr iid, в свойстве wstring propertyName, в свойстве wstring для всех имен (inSringIperIt), в свойстве wstring для всех имен (inSringIperIt), в любом случае, wstring propertyName, inStingIperIt для всех имен (inSringIperIt) в любом случае, возвращая свойство wstring в свойстве nN, в любом случае для разрешенных свойств и noAccess в противном случае.
Будьте осторожны с тем, что вы делаете с пользовательским вводом и тем, к чему вы разрешаете доступ - очень легко случайно создать в браузере дыру в безопасности.