88 |
|
|
89 |
GCJPluginFactory::GCJPluginFactory () |
GCJPluginFactory::GCJPluginFactory () |
90 |
{ |
{ |
91 |
DEBUG ("GCJPluginFactory::GCJPluginFactory\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::GCJPluginFactory\n"); |
92 |
|
|
93 |
m_classpath = getenv ("CLASSPATH"); |
m_classpath = getenv ("CLASSPATH"); |
94 |
} |
} |
95 |
|
|
96 |
GCJPluginFactory::~GCJPluginFactory () |
GCJPluginFactory::~GCJPluginFactory () |
97 |
{ |
{ |
98 |
DEBUG ("GCJPluginFactory::~FactoryGCJPluginFactory\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::~FactoryGCJPluginFactory\n"); |
99 |
|
|
100 |
free (m_classpath); |
free (m_classpath); |
101 |
} |
} |
108 |
const char* aComponentType, |
const char* aComponentType, |
109 |
const nsModuleComponentInfo *info) |
const nsModuleComponentInfo *info) |
110 |
{ |
{ |
111 |
DEBUG ("GCJPluginFactory::RegisterSelf\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::RegisterSelf\n"); |
112 |
|
|
113 |
nsIPluginManager* pm; |
nsIPluginManager* pm; |
114 |
nsresult rv = |
nsresult rv = |
132 |
const char* aRegistryLocation, |
const char* aRegistryLocation, |
133 |
const nsModuleComponentInfo *info) |
const nsModuleComponentInfo *info) |
134 |
{ |
{ |
135 |
DEBUG ("GCJPluginFactory::UnregisterSelf\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::UnregisterSelf\n"); |
136 |
|
|
137 |
nsIPluginManager* pm; |
nsIPluginManager* pm; |
138 |
nsresult rv = |
nsresult rv = |
152 |
NS_IMETHODIMP GCJPluginFactory::CreateOJIPlugin |
NS_IMETHODIMP GCJPluginFactory::CreateOJIPlugin |
153 |
(nsISupports* aOuter, REFNSIID aIID, void** aResult) |
(nsISupports* aOuter, REFNSIID aIID, void** aResult) |
154 |
{ |
{ |
155 |
DEBUG ("GCJPluginFactory::CreateOJIPlugin\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::CreateOJIPlugin\n"); |
156 |
|
|
157 |
GCJPluginFactory* plugin = new GCJPluginFactory (); |
GCJPluginFactory* plugin = new GCJPluginFactory (); |
158 |
return plugin->CreatePluginInstance (aOuter, aIID, NULL, aResult); |
return plugin->CreatePluginInstance (aOuter, aIID, NULL, aResult); |
162 |
GCJPluginFactory::CreatePluginInstance (nsISupports* aOuter, REFNSIID aIID, |
GCJPluginFactory::CreatePluginInstance (nsISupports* aOuter, REFNSIID aIID, |
163 |
const char* /*pluginMIMEType*/, void** result) |
const char* /*pluginMIMEType*/, void** result) |
164 |
{ |
{ |
165 |
DEBUG ("GCJPluginFactory::CreatePluginInstance\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::CreatePluginInstance\n"); |
166 |
|
|
167 |
StartVM (); |
StartVM (); |
168 |
return CreateInstance (aOuter, aIID, result); |
return CreateInstance (aOuter, aIID, result); |
171 |
NS_IMETHODIMP |
NS_IMETHODIMP |
172 |
GCJPluginFactory::CreateInstance (nsISupports* aOuter, REFNSIID aIID, void** result) |
GCJPluginFactory::CreateInstance (nsISupports* aOuter, REFNSIID aIID, void** result) |
173 |
{ |
{ |
174 |
DEBUG ("GCJPluginFactory::CreateInstance\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::CreateInstance\n"); |
175 |
|
|
176 |
GCJPluginInstance* pluginInstance = new GCJPluginInstance (this, s_jniEnv); |
GCJPluginInstance* pluginInstance = new GCJPluginInstance (this, s_jniEnv); |
177 |
|
|
185 |
NS_IMETHODIMP |
NS_IMETHODIMP |
186 |
GCJPluginFactory::LockFactory (PRBool aLock) |
GCJPluginFactory::LockFactory (PRBool aLock) |
187 |
{ |
{ |
188 |
DEBUG ("GCJPluginFactory::LockFactory\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::LockFactory\n"); |
189 |
|
|
190 |
return NS_ERROR_NOT_IMPLEMENTED; |
return NS_ERROR_NOT_IMPLEMENTED; |
191 |
} |
} |
193 |
NS_IMETHODIMP |
NS_IMETHODIMP |
194 |
GCJPluginFactory::Initialize () |
GCJPluginFactory::Initialize () |
195 |
{ |
{ |
196 |
DEBUG ("GCJPluginFactory::Inititalize\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::Inititalize\n"); |
197 |
|
|
198 |
StartVM (); |
StartVM (); |
199 |
return NS_OK; |
return NS_OK; |
202 |
NS_IMETHODIMP |
NS_IMETHODIMP |
203 |
GCJPluginFactory::Shutdown () |
GCJPluginFactory::Shutdown () |
204 |
{ |
{ |
205 |
DEBUG ("GCJPluginFactory::Shutdown\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::Shutdown\n"); |
206 |
|
|
207 |
StopVM (); |
StopVM (); |
208 |
return NS_OK; |
return NS_OK; |
211 |
NS_IMETHODIMP |
NS_IMETHODIMP |
212 |
GCJPluginFactory::GetMIMEDescription (const char** result) |
GCJPluginFactory::GetMIMEDescription (const char** result) |
213 |
{ |
{ |
214 |
DEBUG ("GCJPluginFactory::GetMIMEDescription\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::GetMIMEDescription\n"); |
215 |
|
|
216 |
(*result) = PLUGIN_MIME_DESC; |
(*result) = PLUGIN_MIME_DESC; |
217 |
return NS_OK; |
return NS_OK; |
220 |
NS_IMETHODIMP |
NS_IMETHODIMP |
221 |
GCJPluginFactory::GetValue (nsPluginVariable variable, void* value) |
GCJPluginFactory::GetValue (nsPluginVariable variable, void* value) |
222 |
{ |
{ |
223 |
DEBUG ("GCJPluginFactory::GetValue\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::GetValue\n"); |
224 |
|
|
225 |
if (variable == nsPluginVariable_NameString) |
if (variable == nsPluginVariable_NameString) |
226 |
(*((char**) value)) = PLUGIN_NAME; |
(*((char**) value)) = PLUGIN_NAME; |
228 |
(*((char**) value)) = PLUGIN_MIME_DESC; |
(*((char**) value)) = PLUGIN_MIME_DESC; |
229 |
else |
else |
230 |
{ |
{ |
231 |
DEBUG ("GCJPluginFactory::GetValue: unkown value requested\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::GetValue: unkown value requested\n"); |
232 |
return NS_ERROR_FAILURE; |
return NS_ERROR_FAILURE; |
233 |
} |
} |
234 |
|
|
238 |
NS_IMETHODIMP |
NS_IMETHODIMP |
239 |
GCJPluginFactory::AddToClassPath (const char* dirPath) |
GCJPluginFactory::AddToClassPath (const char* dirPath) |
240 |
{ |
{ |
241 |
DEBUG ("GCJPluginFactory::AddToClassPath\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::AddToClassPath\n"); |
242 |
|
|
243 |
char* tmp; |
char* tmp; |
244 |
int len_cp, len_path; |
int len_cp, len_path; |
257 |
NS_IMETHODIMP |
NS_IMETHODIMP |
258 |
GCJPluginFactory::RemoveFromClassPath (const char* dirPath) |
GCJPluginFactory::RemoveFromClassPath (const char* dirPath) |
259 |
{ |
{ |
260 |
DEBUG ("GCJPluginFactory::RemoveFromClasspath\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::RemoveFromClasspath\n"); |
261 |
|
|
262 |
return NS_ERROR_NOT_IMPLEMENTED; |
return NS_ERROR_NOT_IMPLEMENTED; |
263 |
} |
} |
265 |
NS_IMETHODIMP |
NS_IMETHODIMP |
266 |
GCJPluginFactory::GetClassPath (const char** result) |
GCJPluginFactory::GetClassPath (const char** result) |
267 |
{ |
{ |
268 |
DEBUG ("GCJPluginFactory::GetClasspath\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::GetClasspath\n"); |
269 |
|
|
270 |
(*result) = strdup (m_classpath); |
(*result) = strdup (m_classpath); |
271 |
return NS_OK; |
return NS_OK; |
274 |
NS_IMETHODIMP |
NS_IMETHODIMP |
275 |
GCJPluginFactory::GetJavaWrapper (JNIEnv* env, jint obj, jobject* jobj) |
GCJPluginFactory::GetJavaWrapper (JNIEnv* env, jint obj, jobject* jobj) |
276 |
{ |
{ |
277 |
DEBUG ("GCJPluginFactory::GetJavaWrapper\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::GetJavaWrapper\n"); |
278 |
|
|
279 |
return NS_ERROR_NOT_IMPLEMENTED; |
return NS_ERROR_NOT_IMPLEMENTED; |
280 |
} |
} |
282 |
NS_IMETHODIMP |
NS_IMETHODIMP |
283 |
GCJPluginFactory::CreateSecureEnv (JNIEnv* proxyEnv, nsISecureEnv** result) |
GCJPluginFactory::CreateSecureEnv (JNIEnv* proxyEnv, nsISecureEnv** result) |
284 |
{ |
{ |
285 |
DEBUG ("GCJPluginFactory::CreateSecureEnv\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::CreateSecureEnv\n"); |
286 |
|
|
287 |
if (!s_started) |
if (!s_started) |
288 |
return NS_ERROR_FAILURE; |
return NS_ERROR_FAILURE; |
293 |
NS_IMETHODIMP |
NS_IMETHODIMP |
294 |
GCJPluginFactory::SpendTime (PRUint32 timeMillis) |
GCJPluginFactory::SpendTime (PRUint32 timeMillis) |
295 |
{ |
{ |
296 |
DEBUG ("GCJPluginFactory::SpendTime"); |
PLUGIN_DEBUG ("GCJPluginFactory::SpendTime"); |
297 |
|
|
298 |
return NS_ERROR_NOT_IMPLEMENTED; |
return NS_ERROR_NOT_IMPLEMENTED; |
299 |
} |
} |
301 |
NS_IMETHODIMP |
NS_IMETHODIMP |
302 |
GCJPluginFactory::UnwrapJavaWrapper (JNIEnv* jenv, jobject jobj, jint* obj) |
GCJPluginFactory::UnwrapJavaWrapper (JNIEnv* jenv, jobject jobj, jint* obj) |
303 |
{ |
{ |
304 |
DEBUG ("GCJPluginFactory::UnwrapJavaWrapper\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::UnwrapJavaWrapper\n"); |
305 |
|
|
306 |
return NS_ERROR_NOT_IMPLEMENTED; |
return NS_ERROR_NOT_IMPLEMENTED; |
307 |
} |
} |
309 |
void |
void |
310 |
GCJPluginFactory::StartVM () |
GCJPluginFactory::StartVM () |
311 |
{ |
{ |
312 |
DEBUG ("GCJPluginFactory::StartVM\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::StartVM\n"); |
313 |
|
|
314 |
if (JNI_CreateJavaVM (&s_jvm, &s_jniEnv, NULL) != 0) |
if (JNI_CreateJavaVM (&s_jvm, &s_jniEnv, NULL) != 0) |
315 |
{ |
{ |
316 |
s_started = 0; |
s_started = 0; |
317 |
DEBUG ("JVM not started\n"); |
PLUGIN_DEBUG ("JVM not started\n"); |
318 |
} |
} |
319 |
else |
else |
320 |
{ |
{ |
321 |
s_started = 1; |
s_started = 1; |
322 |
DEBUG ("JVM successfully started\n"); |
PLUGIN_DEBUG ("JVM successfully started\n"); |
323 |
} |
} |
324 |
} |
} |
325 |
|
|
326 |
void |
void |
327 |
GCJPluginFactory::StopVM () |
GCJPluginFactory::StopVM () |
328 |
{ |
{ |
329 |
DEBUG ("GCJPluginFactory::StopVM\n"); |
PLUGIN_DEBUG ("GCJPluginFactory::StopVM\n"); |
330 |
|
|
331 |
s_jvm->DestroyJavaVM (); |
s_jvm->DestroyJavaVM (); |
332 |
s_started = 0; |
s_started = 0; |
333 |
DEBUG ("JVM successfully stopped\n"); |
PLUGIN_DEBUG ("JVM successfully stopped\n"); |
334 |
} |
} |