15

Ich muss eine Google Chrome-Erweiterung schreiben. Das Problem ist, dass die Chrome-JavaScript-APIs nicht genügend Energie liefern - ich muss nativen Code verwenden. Ich dachte über das Schreiben eines NPAPI-Plug-Ins nach, das der Erweiterung einige benutzerdefinierte JS-APIs zur Verfügung stellen würde.Google Chrome Extensions und NPAPI

Ist es möglich, die Erweiterung plus das benutzerdefinierte NPAPI-Plugin in eine .crx zu packen und dann auf die Chrome Extensions Store hochzuladen?

Ein anderes Problem mit dieser Methode ist, dass das NPAPI-Plugin viele Versionen haben wird: Linux, Windows, OS X, x86, x86-64, usw. Ist es möglich, all diese in der crx zu verpacken und die beste Version zu verwenden?

Danke.

EDIT: Nach dem Lesen this, erkannte ich, dass es nicht möglich ist, das Multi-Plattform-Problem in einem crx elegant zu lösen. Aber - ist es möglich, verschiedene crx-s für jede Plattform in den Chrome Extension Store zu laden?

+0

In Ihrer Bearbeitung sagten Sie, dass es nicht möglich ist, aber ist das angesichts Mohameds Antwort immer noch wahr? –

Antwort

16

Wenn Sie Multi-Plattform in einem CRX wollen, sollten Sie sie in dieser Reihenfolge im Manifest setzen:

"plugins": [ 
    { "path": "plugin-windows.dll" }, 
    { "path": "plugin-linux.so" }, 
    { "path": "plugin-mac.plugin" } 
] 

Denken Sie daran, Ihre NPAPI Erweiterung in den Laden Upload nur in Google Chrome-Erweiterungen arbeiten. Im Fall von Google Chrome OS (das Google Chrome verwendet) können Sie NPAPI nicht verwenden.

Aber Sie sollten in PPAPI aussehen, welche die empfohlene Methode Plugin-Entwicklung für die Erweiterung sein wird tun:

http://src.chromium.org/viewvc/chrome/trunk/src/ppapi/

In der Zwischenzeit NPAPI in Erweiterungen, müssen Sie diese Anleitung folgen (die großen Werke):

http://code.google.com/chrome/extensions/npapi.html

Denken Sie daran, haben Sie wirklich brauchen NPAPI in Ihrer Erweiterung zu benutzen? Wenn Sie eine HTML5-Problemumgehung finden könnten, wäre es besser.

+0

die dll/so Dateien sollten für x86 oder x86-64 kompiliert werden? In welchen Versionen von Google Chrome funktioniert PPAPI? –

+0

PPAPI ist zur Zeit in Arbeit, weitere Informationen dazu finden Sie hier: http://www.chromium.org/developers/design-documents/pepper-plugin-implementation Nun, Kompilierung sollte keine Rolle spielen (afaik), Ich habe ein 64bit System und kompiliere es dort normal und es läuft auf 32bit Plattformen. –

+1

@MohamedMansour Für Linux ist es wichtig. Ich muss * .so Datei separat für Linux 32-Bit und 64-Bit für das Projekt http://slimtext.org kompilieren –