Я впервые участвую в разработке расширений Firefox, и до сих пор это было довольно удобно, но я столкнулся с проблемой; одна из вещей, которые мне нужно сделать, переписать встроенный nsIPromptService и заменить его чем-то своим.
Я прошел здесь базовый урок по созданию компонентов XPCOM и начал работать над "Hello World":
https://developer.mozilla.org/en/creating_xpcom_components
И все в этом, кажется, работает нормально, но ничего из того, что я не смог найти, или исследование показывает, как я могу переписать интерфейс из javascript. Я видел вещи в C ++ и Java, которые, кажется, могут перезаписывать встроенные компоненты, но я ничего не могу найти в этом, используя javascript, и просто попытка изменить идентификатор контракта не сработала; когда я пытаюсь получить сервис из идентификатора контракта (как показано ниже), он просто возвращает исходную версию встроенного компонента.
var myComponent = Components.classes['@mozilla.org/embedcomp/prompt-service;1']
.getService(Components.interfaces.nsIPromptService);
Есть ли здесь что-то действительно очевидное, чего мне не хватает? Это неправильный способ переопределения компонентов (кажется, я нигде не могу найти ничего, поэтому я не совсем уверен, что мне следует делать ...).