Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

Aller à la page :  1 2

# Re: XPCOM et plugin

Envoyé par : David Marteau

Date : 26/04/2007 09:42

Les exemples du tronc de mozilla qui utilisent XPConnect utilisent npruntime pour la partie non-scriptable (initialisation). Dans certains cas, la couche npruntime est simplement encapsulée dans une interface C++.

On peut créer des plugin qui utilisent à a 100% NPAPI pour la partie scriptable, cela à l'avantage de les rendre compatible avec Opéra ou Safari - Mais personnellement je trouve que c'est vraiment très pénible à implémenter.

Sinon cf http://developer.mozilla.org/en/docs/Category:NPAPI

# Re: XPCOM et plugin

Envoyé par : guillaume

Date : 26/04/2007 10:42

Merci pour ces réponses.

J'ai toujours le problème de non-detection de mon plugin. Malgré le fait que la compilation se passe bien, j'en viens à penser que j'utilise peut-être de mauvaises options, une mauvaise version de source ...

Je vous donne le détail de ce que j'utilise :

  • source de xulrunner 1.8.0.4, téléchargé sur http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/
  • voici mon .mozconfig pour la compilation :
. $topsrcdir/xulrunner/config/mozconfig
export MOZILLA_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options MOZ_CO_PROJECT=xulrunner
ac_add_options --enable-application=xulrunner
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --disable-optimize
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-xft
ac_add_options --disable-freetype2
ac_add_options --enable-svg
ac_add_options --enable-svg-renderer=libart
mk_add_options MOZ_CO_MODULE=mozilla/other-licenses/libart_lgpl
ac_add_options --enable-extensions=default,appliguillaume_video
ac_add_options --disable-javaxpcom
  • voici le makefile.in de mon application plugin :
DEPTH		= ../..
topsrcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULE		= nsVideo
LIBRARY_NAME	= nsVideo
REQUIRES        = xpcom \
                 idl \
              	  caps \
	  plugin \
	  dom \
	  java \
	  layout \
          gfx \
	  widget \
	  necko \
	  content \
	  string \
	  mimetype \
	  exthandler \
	  $(NULL)
CPPSRCS         = nsVideo.cpp \
	  plugin.cpp \
                 np_entry.cpp \
                 npp_gate.cpp \
                 npn_gate.cpp \
                 $(NULL)
XPIDLSRCS 	= nsIVideo.idl 
include $(topsrcdir)/config/rules.mk
DEFINES += -DMOZILLA_STRICT_API
EXTRA_DSO_LDOPTS +=  $(XLDFLAGS) -rdynamic  -lXi -lXext -lX11 -lm -lXt -Wl-rpath,/home/guillaume/xulrunner_source/mozilla/dist/lib `pkg-config --libs gtk+-2.0 gthread-2.0` \
	  $(XPCOM_GLUE_LDOPTS) \
         $(NSPR_LIBS) \
         $(NULL) \
CXXFLAGS += `pkg-config --cflags gtk+-2.0` \
               -fno-rtti              \
	-fno-exceptions        \
	-shared  
INSTALL_PLUGIN	= $(CONFIG_TOOLS)/nsinstall -R 
INSTALL = true
ifeq ($(OS_ARCH), UNIX)
# This needs to get defined for npapi.h on unix platforms.
DEFINES		+= -DXP_UNIX
endif
LOCAL_INCLUDES	+= -I$(srcdir)/$(XPIDL_GEN_DIR)  -I$(srcdir)/../../include -I$(srcdir)/../../../include
install-plugin:	$(SHARED_LIBRARY)
$(INSTALL_PLUGIN) $(IFLAGS1) $(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt $(DIST)/bin/plugins
ifdef SHARED_LIBRARY
$(INSTALL_PLUGIN) $(SHARED_LIBRARY) $(DIST)/bin/plugins
endif
libs:: install-plugin

Je compile en tapant "make -f client.mk build" en étant à la racine du répertoire source de xulrunner.

J'obtiens mon .so et mon .xpt. Mais lors de la copie de ces 2 fichiers dans le répertoire plugins de firefox (ou de mon appli xulrunner), il ne détecte rien !

D'où peut venir le problème ???

Est-ce que le browser n'accède pas à NP_GetMIMEDescription pour je ne sais quelle raison ?

Aller à la page :  1 2

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.