2008-09-15 5 views
9

Könnte jemand eine Schritt für Schritt Anleitung für die Entwicklung eines C++ basierten Plugins für FireFox unter Windows schreiben?Wie schreibt man ein C++ FireFox 3 Plugin (keine Erweiterung) unter Windows?

Die Links und Beispiele auf http://www.mozilla.org/projects/plugins/ sind alle alt und ungenau - der „NEW“ Link im Jahr 2004

Das Beispiel etwas auf der Seite versetzt sein könnte, aber ich war ein Plugin zu denken, dass JavaScript die festlegen kann Name und zeigt dann "Hallo {Name}". Um die 2-Wege-Kommunikation anzuzeigen, könnte eine Eigenschaft die vollständige Anrede zurückgeben.

Obwohl nicht so wichtig, wäre es schön, wenn das Plugin auch in Chrome funktionieren würde.

Antwort

3

Es ist ziemlich einfach, ein Plugin mit NPAPI zu machen. Die wichtigsten Header-Dateien, die Sie von der Gecko-Distribution benötigen, sind npapi.h und npupp.h. Sie exportieren Funktionen aus Ihrer Plugin-DLL oder gemeinsam genutzten Bibliothek mit den Namen NP_Initialize, NP_Shutdown, NP_GetMIMEDescription und NP_GetValue, und Sie müssen auch die Symboltabelle ausfüllen, die Sie im NP_Initialize-Aufruf mit Handlern für den gesamten NPP erhalten haben Funktionen.

Die Schlüsselfunktionen, die aus diesem Satz implementiert werden müssen, sind NPP_New und NPP_Destroy. Diese definieren den Lebenszyklus einer Plugin-Instanz. Wenn Sie mit einer Mediendatei arbeiten, die von einem < Objekt> oder < eingebettet ist, müssen Sie sich auch mit NPP_NewStream, NPP_WriteReady, NPP_Write und NPP_DestroyStream befassen, damit Ihr Plugin die Daten der Datei von der Browser. Es gibt viel mehr in the Gecko Plugin developer's guide.

2

Check out Nixysa http://code.google.com/p/nixysa/. Ich habe versucht, die Beispiele im Mozilla SDK zu erstellen, aber sie waren schwer zu erstellen. Das Nixysa-Beispiel ist einfach zu erstellen. Außerdem ist der Code viel besser als direkt mit NPAPI. Der einzige Nachteil ist, dass Nixysa heute nicht gut dokumentiert ist. Ich habe ein Nixysa-Beispiel, das Rückrufe implementiert, wenn Sie es wollen (ich plane, einen Patch an Nixysa zu senden, wenn ich dazu komme).

+0

Haben Sie es als Erweiterung versucht? Ich muss noch eine * einzige * NPAPI Visual Studio-Lösung finden, die gebaut werden würde! Wenn Sie es immer noch haben, würde ich gerne den Code, den Sie haben, und Anweisungen, wie man es bauen sehen ... nixysa hat Lösungsdatei zum Beispiel "komplex", aber es kompiliert auch nicht.Mit den SCONs kompilieren die Beispiele kompiliert aber die kompilierte DLL ist kaputt, es fehlen Sachen (?) Und Chrome findet die Methoden des Plugins nicht. Vielen Dank. – Ciantic

6

Wenn Sie brauchen etwas, das Cross-Browser funktioniert (Firefox und IE), können Sie bei firebreath aussehen könnte: http://www.firebreath.org

Allgemeine Informationen „wie ein NPAPI Plugin unter Windows zu bauen“, habe ich ein paar Blog-Posts zum Thema

http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/

ich wirklich empfehlen firebreath, aber (als gut verbunden von einigen der oben genannten Quellen), da wir es genau für Menschen geschaffen, die die Monate keine Zeit haben, zu tun (wörtlich:) der Forschung, die wir brauchten, um herauszufinden, wie alles funktioniert. Wenn Sie es jedoch nicht als Grundlage für Ihr Plugin verwenden möchten, können Sie dort immer noch eine Menge guten Beispielcode finden.

sollte auch auf Chrome, Firefox und Safari auf Windows arbeiten! =]

viel Glück!

+0

Wow, Kumpel, du hast gerade meinen Speck gerettet, danke für einen unglaublichen api und viel heroischen Beitrag. –

Verwandte Themen