Potrzebne pomysły. Dodatek JavaScript + XPCOM + C ++

Istnieje więc WebRTC w Firefoksie i istnieje wygodna klasa umożliwiająca komunikację RTC, nazywaną RTCPeerConnection, która może być tworzona i używana z aplikacji JavaScript. Możesz znaleźć jakiś przyzwoity przykład tego[1]. I oto jestem z moim niestandardowym transportem (jeśli jesteś zainteresowany -[2]) chciałby użyć go do komunikacji RTC. W skrócie, muszę „zastąpić” warstwę transportową silnika WebRTC moim niestandardowym transportem, zapewniając użytkownikowi ten sam interfejs JavaScript podobny do RTCPeerConnection. I najlepiej, żeby nie wyglądał jak niestandardowa wersja Firefoksa (bez poprawek). Więc wpadłem na pomysł rozszerzenia, które będzie napisane w C ++ (ponieważ musi być połączone z biblioteką WebRTC i moją niestandardową biblioteką transportową) i jakoś narazi jego interfejs na Javascript. I znalazłem XPCOM, który, jak myślałem, może mi to zapewnić. Zacząłem więc walczyć z przestarzałymi i nielicznymi informacjami na ten temat i po 3 dniach zmagań ostatecznie skończyło się na wbudowanym dodatku. Niestety, nie mogę uzyskać do niego dostępu z poziomu Javascript z powodu błędu Javascript „Components.classes is undefined”. I wydaje się, że w ogóle nie ma do niego dostępu. A może się mylę?

Oto 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);
}

Mój komponent towidoczny za pomocą przeglądarki XPCOM dodatek i kod powyżej Imoże wykonać w konsolipusta strona jest otwarty w Firefoksie.

Biorąc to wszystko pod uwagę, chciałbym zapytać ekspertów Firefox o możliwe podejścia, które mogę podjąć w celu wdrożenia mojego pomysłu. Z góry dziękuję

1 https://apprtc.appspot.com/

2 http://named-data.net

questionAnswers(1)

yourAnswerToTheQuestion