¿Cómo sobrescribir el componente XPCOM integrado en el complemento de Firefox?

Estoy incursionando en el desarrollo de extensiones de Firefox por primera vez, y hasta ahora ha sido bastante cómodo, pero me encuentro con un problema; una de las cosas que necesito hacer sobrescribiendo el nsIPromptService incorporado y reemplazándolo por algo propio.

Revisé el tutorial básico de creación de componentes XPCOM aquí y conseguí que hello world one funcionara:

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

Y todo lo que parece funcionar bien, pero nada de lo que he podido encontrar o investigar muestra cómo puedo sobrescribir una interfaz de javascript. He visto cosas en C ++ y Java que parecen ser capaces de sobrescribir los componentes integrados, pero no puedo encontrar nada acerca de hacer esto desde javascript, y solo tratar de cambiar la identificación del contrato no funcionó; cuando intento obtener el servicio de la ID del contrato (como se muestra a continuación), solo devuelve la versión original incorporada del componente.

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

¿Hay algo realmente obvio aquí que me estoy perdiendo? ¿Es esta la forma incorrecta de anular componentes (parece que no puedo encontrar nada en ningún lado, así que no estoy muy seguro de lo que debería hacer ...).

Respuestas a la pregunta(2)

Su respuesta a la pregunta