Ideas necesarias. Javascript + XPCOM + C ++ add-on

Por lo tanto, hay un WebRTC dentro de Firefox y hay una clase conveniente para hacer posible la comunicación RTC llamada RTCPeerConnection, que puede ser instanciada y utilizada desde la aplicación JavaScript. Puedes encontrar un buen ejemplo de ello en[1]. Y aquí estoy con mi transporte personalizado (si está interesado -[2]) Quisiera usarlo para la comunicación RTC. Brevemente, necesito "sustituir" la capa de transporte del motor WebRTC por mi transporte personalizado mientras proporciono la misma interfaz de JavaScript similar a RTCPeerConnection para el usuario. Y, de preferencia, no debería verse como una compilación personalizada de Firefox (sin parches). Así que se me ocurrió la idea de la extensión, que se escribirá en C ++ (ya que debe estar vinculada con la biblioteca WebRTC y mi biblioteca de transporte personalizada) y de alguna manera expondrá su interfaz a Javascript. Y he encontrado XPCOM que, como pensé, me puede proporcionar esto. Así que comencé a pelear con información obsoleta y dispersa sobre este tema y luego de 3 días de lucha finalmente terminé con un complemento construido. Desafortunadamente, no puedo acceder a él desde Javascript, debido al error "Components.classes is undefined" de Javascript. Y parece que no hay forma de acceder a ella en absoluto. O me equivoco en eso?

Aquí está Javascript:

function check()
{
console.debug("checking...");   

const {Cc,Ci,Cu} = require("chrome");
var rtc = Components.classes["@named-data.net/ndnrtc;1"].createInstance();
rtc = rtc.QueryInterface(Ci.ndINrtc);   

console.debug("rtc: "+rtc);
}

Mi componente esvisible con XPCOM Viewer complemento y el código anterior Ipuede ejecutar en la consola mientraspágina vacía Está abierto en Firefox.

Dado todo eso, me gustaría preguntarle a los expertos de Firefox sobre los posibles enfoques que puedo tomar para implementar mi idea. Gracias de antemano

1 https://apprtc.appspot.com/

2 http://named-data.net

Respuestas a la pregunta(1)

Su respuesta a la pregunta