Mozilla Extensions und WebRTC

SchwarzeBeere

Moderator
Mitarbeiter
Moin zusammen,

ich arbeite derzeit an einem Projekt, bei dem mittels WebRTC eine Verbindung zwischen zwei Browsern ohne Öffnen einer Website hergestellt werden soll. Im ersten Schritt soll lediglich simpler Text übertragen werden.

Leider habe ich von der ganzen Materie (sowohl Firefox Extensions, als auch WebRTC, als auch Javascript...) aktuell überhaupt keine Ahnung. Gleichzeitig will ich allerdings auch nicht unnötig Zeit verschwenden. Deshalb meine kurze und für manch anderen sicherlich amateurhaft einfache Frage: Ist die Nutzung von WebRTC im Rahmen einer Firefox Extension überhaupt möglich?

Für Chrome habe ich bereits eine Möglichkeit gefunden, die für einen einfachen Proof-of-Concept ausreichen sollte. Chrome lässt nur dummerweise keinen Zugriff auf SSL Zertifikate zu, daher ist Firefox aktuell die einzige Möglichkeit für eine Implementierung.

Grüße,
SB
 
Zuletzt bearbeitet:

Fluffy

Stammuser
Wie Chrome das implementiert hat weiss ich nicht.
Aber du brauchst neben dem Kommunikationskanal einen Verhandlungskanal.
Dieser muss aber keine Webseite sein, aber es bedarf einer 3. Partei.

Dieser Verhandlungskanal kann eine Restschnittstelle, SOAP, eine Brieftaube (RFC 2549 - IP over Avian Carriers with Quality of Service) oder ein Deaddrop sein, ist also nicht weiter durch Spezifikationen eingeschränkt.

Wenn du diese Gegenstelle gewährleisten kannst, dann sollte das zumindest von Websocketseite aus gehen.
Browser-Erweiterungen haben ja auch noch weitgehendere Rechte und Möglichkeiten als Webseiten(will erst noch ein Plugin schreiben, habe also nicht wirklich viel Ahnung von Erweiterungen, aber Beobachtungen bzgl. Adblockplus, NoScript, RestClient/RestEasy und Greasemonkey unterstützen meine Behauptungen)
Gruß

Fluffy

P.s.: Witziger weise arbeite ich priv. auch gerade an eine WebRTC-Projkt. ;)

// edit
Womit du aber Probleme bekommen dürftest ist die Same-Origin-Policy.
 
Zuletzt bearbeitet:

ikkebins

Stammuser
Das Proof-of-Concept steht, basierend auf dieses Skelet: https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/Getting_Started_with_Firefox_Extensions

Hinzugefügt habe ich in content\ die Dateien webrtc.js und webrtc.xul. Dazu in browserOverlay.js ein bisschen Code, um diese Dateien einzubinden.

Ein .xul-Datei ist einfach nur ein .zip-Datei, die man per Drag&Drop installieren kann und die Erweiterung wird bei jeder Neu-Installation einfach ersetzt. Beim Attachment muss die Endung .zip gelöscht werden, man kann keine .xul-Dateien hochladen.

Der Quellcode ist zum großen Teil aus der PeerJS chat demo: PeerJS chat demo

Der Javascript-Code läuft im Hintergrund und das Fenster wird nur bei einem Event aktualisiert (und kann geschloßen sein). Dadurch bleibt die WebRTC-Verbindung offen. Nachrichten werden per alert() angezeigt und das Fenster aktualisiert. Es ist noch recht funktionslos, aber für den Einstieg sollte es reichen.
 
Oben