mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-02 15:15:23 +00:00
118875675b
- add nspr to libs M mozilla/nppluglet.cpp - make sure to store instance pointer for return to browser, this enables shutdown to work properly - When HasPlugletForMimeType is called multiple times, actually check the mime type. M mozilla/nsISimplePlugin.idl - Fix this so it's callable from JavaScript M src/PlugletsDir.cpp - Fix bug for multiple plugin instances Index: mozilla/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/java/plugins/mozilla/Makefile.in,v retrieving revision 1.1 diff -u -r1.1 Makefile.in --- mozilla/Makefile.in 7 Oct 2006 23:31:52 -0000 1.1 +++ mozilla/Makefile.in 14 Oct 2006 12:26:06 -0000 @@ -59,7 +59,7 @@ XPIDLSRCS = nsISimplePlugin.idl -SHARED_LIBRARY_LIBS = $(PLUGIN_SDK)/samples/common/$(LIB_PREFIX)plugingate_s.$(LIB_SUFFIX) ../src/$(LIB_PREFIX)pluglet_s.$(LIB_SUFFIX) +SHARED_LIBRARY_LIBS = $(PLUGIN_SDK)/samples/common/$(LIB_PREFIX)plugingate_s.$(LIB_SUFFIX) ../src/$(LIB_PREFIX)pluglet.$(LIB_SUFFIX) $(XPCOM_LIBS) $(NSPR_LIBS) ifeq ($(OS_ARCH),WINNT) DEFFILE = $(win_srcdir)/nppluglet.def Index: mozilla/nppluglet.cpp =================================================================== RCS file: /cvsroot/mozilla/java/plugins/mozilla/nppluglet.cpp,v retrieving revision 1.3 diff -u -r1.3 nppluglet.cpp --- mozilla/nppluglet.cpp 13 Oct 2006 14:45:14 -0000 1.3 +++ mozilla/nppluglet.cpp 14 Oct 2006 12:26:07 -0000 @@ -47,6 +47,8 @@ #include "nsServiceManagerUtils.h" +#include "plstr.h" + // service manager which will give the access to all public browser services // we will use memory service as an illustration nsIServiceManager * gServiceManager = NULL; @@ -153,17 +155,21 @@ // nsPluginInstance class implementation // nsPluginInstance::nsPluginInstance(nsPluginCreateData * aCreateDataStruct) : nsPluginInstanceBase(), - mInstance(aCreateDataStruct->instance), mInitialized(PR_FALSE), mScriptablePeer(nsnull), mPluglet(nsnull) { + mInstance = aCreateDataStruct->instance; + mCreateDataStruct.instance = aCreateDataStruct->instance; mCreateDataStruct.type = aCreateDataStruct->type; mCreateDataStruct.mode = aCreateDataStruct->mode; mCreateDataStruct.argc = aCreateDataStruct->argc; mCreateDataStruct.argn = aCreateDataStruct->argn; mCreateDataStruct.saved = aCreateDataStruct->saved; + + mCreateDataStruct.instance->pdata = this; + mInstance->pdata = this; mString[0] = '\0'; } @@ -256,19 +262,27 @@ PRBool *outResult) { nsresult rv = NS_ERROR_FAILURE; - - nsCOMPtr<nsIPlugin> plugletEngine = - do_GetService(PLUGLETENGINE_ContractID, &rv); *outResult = PR_FALSE; + nsCOMPtr<nsIPlugin> plugletEngine = nsnull; nsIID scriptableIID = NS_ISIMPLEPLUGIN_IID; + + if (!mPluglet) { + plugletEngine = do_GetService(PLUGLETENGINE_ContractID, &rv); - if (NS_SUCCEEDED(rv)) { - rv = plugletEngine->CreatePluginInstance(nsnull, scriptableIID, - aMimeType, - getter_AddRefs(mPluglet)); - if (NS_SUCCEEDED(rv) && mPluglet) { + if (NS_SUCCEEDED(rv)) { + rv = plugletEngine->CreatePluginInstance(nsnull, scriptableIID, + aMimeType, + getter_AddRefs(mPluglet)); + if (NS_SUCCEEDED(rv) && mPluglet) { + *outResult = PR_TRUE; + } + } + } + else { + if (0 == PL_strcmp(aMimeType, mCreateDataStruct.type)) { *outResult = PR_TRUE; } + rv = NS_OK; } return rv; Index: mozilla/nsISimplePlugin.idl =================================================================== RCS file: /cvsroot/mozilla/java/plugins/mozilla/nsISimplePlugin.idl,v retrieving revision 1.2 diff -u -r1.2 nsISimplePlugin.idl --- mozilla/nsISimplePlugin.idl 12 Oct 2006 21:22:47 -0000 1.2 +++ mozilla/nsISimplePlugin.idl 14 Oct 2006 12:26:07 -0000 @@ -40,5 +40,5 @@ [scriptable, uuid(482e1890-1fe5-11d5-9cf8-0060b0fbd8ac)] interface nsISimplePlugin : nsISupports { - void hasPlugletForMimeType(in string aMimeType, out boolean isSupported); + boolean hasPlugletForMimeType(in string aMimeType); }; Index: src/PlugletsDir.cpp =================================================================== RCS file: /cvsroot/mozilla/java/plugins/src/PlugletsDir.cpp,v retrieving revision 1.10 diff -u -r1.10 PlugletsDir.cpp --- src/PlugletsDir.cpp 12 Oct 2006 21:22:47 -0000 1.10 +++ src/PlugletsDir.cpp 14 Oct 2006 12:26:07 -0000 @@ -124,6 +124,9 @@ if(!mMimeTypeToPlugletFacoryHash) { res = LoadPluglets(); } + else { + res = NS_OK; + } if (NS_SUCCEEDED(res) && mMimeTypeToPlugletFacoryHash) { *plugletFactory = (PlugletFactory *) PL_HashTableLookup(mMimeTypeToPlugletFacoryHash, |
||
---|---|---|
.. | ||
classes | ||
config | ||
examples | ||
jni | ||
mozilla | ||
src | ||
test | ||
wrappers | ||
build.xml | ||
README |
Java-Implemented Plug-ins. ================================ http://www.mozilla.org/projects/blackwood/java-plugins/ -------------------------------- This directory contains the beginnings of the Java-Implemented plug-uns. The sources is divided into four directories classes Java source files src Native code (c++/c) jni Implamentations of java native methods test Test code, including simple pluglet. ======================================================================== Win32 Directions: ======================================================================== Requirements: * current mozilla built tree * JDK1.3 or JDK1.2 if you are not using OJI * Perl 5 perl.exe must be in your path How To Build: * make sure the environment var JDKHOME is set to your jdk installation directory, ie SET JDKHOME=C:\jdk1.2 * if you do not have working OJI set OJI_DISABLE to 1 (You can do it in your command prompt, or you can set it in mozilla/java/plugins/src/makefile.win). * type "nmake /f makefile.win" How to Run: * Add following directories to to your path: %MOZILLA_FIVE_HOME% In case OJI_DISABLE add %JDKHOME%\jre\bin\client to your path * Copy class files from mozilla/dist/classes to your JRE/lib/ext directory and add JRE/lib/ext to your classpath How to build and run test * go to the test directory and type "nmake /f makefile.win" * Set PLUGLET environment to the directory you have test.jar * Run mozilla and load page test.html from test directory and if everething is ok you will see some awt demo. ========================================================================= Unix (Sparc Solaris and i386 Linux) Directions: ========================================================================= Requirements: * current mozilla built tree * JDK1.3 * Perl 5 must be in your path How To Build: * make sure the environment var JDKHOME is set to your jdk installation directory, ie export JDKHOME=/usr/local/jdk1.3 * Add following directories to to your LD_LIBRARY_PATH: $MOZILLA_FIVE_HOME:$JDKHOME/jre/lib/$HOSTTYPE/native_threads:$JDKHOME/jre/lib/$HOSTTYPE/client: $JDKHOME/jre/lib/$HOSTTYPE/: * type "gmake" How to Run: * Add $MOZILLA_FILE_HOME/../classes to your CLASSPATH How to build and run test * go to the test directory and type "gmake" test.jar will be placed in mozilla/dist/bin/plugins directory * set LD_PRELOAD to libXm.so (to libawt.so on linux platform) * Run mozilla and load page resource:///res/javadev/pluglets/test.html and if everething is ok you will see some awt demo. ======================================================================== Problems: * post to netscape.public.mozilla.java newsgroup