omo substituir o componente XPCOM incorporado no Firefox addo

Estou iniciando uma incursão no desenvolvimento de extensões do Firefox pela primeira vez e até agora tem sido bastante confortável, mas estou com um problema; uma das coisas que preciso fazer sobrescrevendo o nsIPromptService interno e substituindo-o por algo própri

Percorri o tutorial básico de criação de componentes XPCOM aqui e fiz com que o olá mundo funcionasse:

https: //developer.mozilla.org/en/creating_xpcom_component

E tudo o que parece funcionar bem, mas nada que eu possa encontrar ou pesquisar mostra como posso substituir uma interface do javascript. Eu vi coisas em C ++ e Java que parecem capazes de sobrescrever os componentes internos, mas não consigo encontrar nada sobre isso usando javascript, e apenas tentar alterar o ID do contrato não funcionou; quando tento obter o serviço a partir do ID do contrato (como abaixo), ele retorna a versão original do componente intern

var myComponent = Components.classes['@mozilla.org/embedcomp/prompt-service;1']
                                               .getService(Components.interfaces.nsIPromptService);

Existe algo realmente óbvio aqui que estou perdendo? Essa é a maneira errada de substituir componentes (não consigo encontrar nada em lugar nenhum, então não tenho muita certeza do que devo fazer ...).

questionAnswers(2)

yourAnswerToTheQuestion