15

Muszę napisać rozszerzenie Google Chrome. Problem w tym, że interfejsy API JavaScript Chrome nie zapewniają wystarczającej mocy - muszę używać kodu natywnego. Pomyślałem o napisaniu wtyczki NPAPI, która zapewni rozszerzenie niektórych niestandardowych interfejsów API JS.Rozszerzenia przeglądarki Google Chrome i NPAPI

Czy można spakować rozszerzenie plus niestandardową wtyczkę NPAPI w pliku .crx, a następnie przesłać go do Chrome Extensions Store?

Inną kwestią związaną z tą metodą jest to, że wtyczka NPAPI będzie miała wiele wersji: Linux, Windows, OS X, x86, x86-64 itp. Czy można spakować wszystkie te pliki w Crx i użyć najlepszej wersji?

Dzięki.

EDIT: Po przeczytaniu this, zdałem sobie sprawę, że nie jest możliwe, aby elegancko rozwiązać ten problem dla wielu platform w jednym crx. Ale czy jest możliwe przesłanie różnych crx-ów dla każdej platformy do sklepu z rozszerzeniami Chrome?

+0

W swojej edycji powiedziałeś, że nie jest to możliwe, ale czy to nadal prawda w świetle odpowiedzi Mohameda poniżej? –

Odpowiedz

16

Jeśli chcesz Obsługa platform w jednym CRX, należy umieścić je w tej kolejności w manifeście:

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

Pamiętaj przesłać rozszerzenie NPAPI do sklepu będzie działać tylko w Google Chrome Extensions. W przypadku Google Chrome OS (korzystającego z przeglądarki Google Chrome) nie będzie można korzystać z NPAPI.

Ale trzeba spojrzeć PPAPI który będzie zalecany sposób prowadzenia rozwoju wtyczki rozszerzenia:

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

W NPAPI międzyczasie w rozszerzeniach, trzeba się do tej instrukcji (która działa świetnie):

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

pamiętaj tylko, czy naprawdę trzeba użyć NPAPI w rozszerzeniu? Jeśli możesz znaleźć obejście HTML5, byłoby lepiej.

+0

dll/tak pliki powinny być kompilowane dla x86 lub x86-64? W jakich wersjach Google Chrome działa PPAPI? –

+0

PPAPI jest obecnie w toku, możesz znaleźć więcej informacji na ten temat, tutaj: http://www.chromium.org/developers/design-documents/pepper-plugin-implementation Cóż, kompilacja nie powinna mieć znaczenia (afaik), Mam system 64-bitowy i kompiluję go tam normalnie i działa na 32-bitowych platformach. –

+1

@MohamedMansour Dla systemu Linux ma to znaczenie. Muszę skompilować plik * .so oddzielnie dla Linuksa 32-bitowego i 64-bitowego dla projektu http://slimtext.org –