147 |
// Load applet |
// Load applet |
148 |
// |
// |
149 |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.<init>\n"); |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.<init>\n"); |
150 |
m_appletLoader = m_jniEnv->NewObject (appletLoader_cl, appletLoader_init); |
JNI_NewObject0 (m_jniEnv, appletLoader_cl, appletLoader_init, m_appletLoader); |
|
assert (m_appletLoader != NULL); |
|
|
CHECK_EXCEPTIONS; |
|
151 |
|
|
152 |
if (tmp_code != NULL) |
if (tmp_code != NULL) |
153 |
{ |
{ |
154 |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.setCode\n"); |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.setCode\n"); |
155 |
m_jniEnv->CallVoidMethod (m_appletLoader, appletLoader_setCode, code); |
JNI_CallVoidMethod1 (m_jniEnv, m_appletLoader, appletLoader_setCode, code); |
|
CHECK_EXCEPTIONS; |
|
156 |
} |
} |
157 |
|
|
158 |
if (tmp_codeBase != NULL) |
if (tmp_codeBase != NULL) |
159 |
{ |
{ |
160 |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.setCodeBase\n"); |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.setCodeBase\n"); |
161 |
m_jniEnv->CallVoidMethod (m_appletLoader, appletLoader_setCodeBase, codeBase); |
JNI_CallVoidMethod1 (m_jniEnv, m_appletLoader, appletLoader_setCodeBase, codeBase); |
|
CHECK_EXCEPTIONS; |
|
162 |
} |
} |
163 |
|
|
164 |
if (tmp_documentBase != NULL) |
if (tmp_documentBase != NULL) |
165 |
{ |
{ |
166 |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.setDocumentBase\n"); |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.setDocumentBase\n"); |
167 |
m_jniEnv->CallVoidMethod (m_appletLoader, appletLoader_setDocumentBase, documentBase); |
JNI_CallVoidMethod1 (m_jniEnv, m_appletLoader, appletLoader_setDocumentBase, documentBase); |
|
CHECK_EXCEPTIONS; |
|
168 |
} |
} |
169 |
|
|
170 |
if (tmp_archive != NULL) |
if (tmp_archive != NULL) |
171 |
{ |
{ |
172 |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.setArchive\n"); |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.setArchive\n"); |
173 |
m_jniEnv->CallVoidMethod (m_appletLoader, appletLoader_setArchive, archive); |
JNI_CallVoidMethod1 (m_jniEnv, m_appletLoader, appletLoader_setArchive, archive); |
|
CHECK_EXCEPTIONS; |
|
174 |
} |
} |
175 |
|
|
176 |
for (int count = 0; count < numParams; count++) |
for (int count = 0; count < numParams; count++) |
177 |
{ |
{ |
178 |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.addParameter\n"); |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.addParameter\n"); |
179 |
m_jniEnv->CallVoidMethod (m_appletLoader, appletLoader_addParameter, |
JNI_CallVoidMethod2 (m_jniEnv, m_appletLoader, appletLoader_addParameter, |
180 |
m_jniEnv->NewStringUTF (tmp_paramNames [count]), |
m_jniEnv->NewStringUTF (tmp_paramNames [count]), |
181 |
m_jniEnv->NewStringUTF (tmp_paramValues [count])); |
m_jniEnv->NewStringUTF (tmp_paramValues [count])); |
|
CHECK_EXCEPTIONS; |
|
182 |
} |
} |
183 |
|
|
184 |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.loadApplet\n"); |
PLUGIN_DEBUG ("GCJPluginInstance::Initialize: AppletLoader.loadApplet\n"); |
185 |
m_applet = m_jniEnv->CallObjectMethod (m_appletLoader, appletLoader_loadApplet); |
JNI_CallObjectMethod0 (m_jniEnv, m_appletLoader, appletLoader_loadApplet, m_applet); |
|
CHECK_EXCEPTIONS; |
|
186 |
} |
} |
187 |
|
|
188 |
pluginTagInfo->Release(); |
pluginTagInfo->Release(); |
194 |
return NS_ERROR_FAILURE; |
return NS_ERROR_FAILURE; |
195 |
} |
} |
196 |
|
|
197 |
jclass applet_cl = m_jniEnv->GetObjectClass (m_applet); |
jclass applet_cl; |
198 |
assert (applet_cl != NULL); |
jmethodID applet_init; |
199 |
|
|
200 |
jmethodID applet_init = m_jniEnv->GetMethodID (applet_cl, "init", "()V"); |
JNI_GetObjectClass (m_jniEnv, m_applet, applet_cl); |
201 |
assert (applet_init); |
JNI_GetMethodID (m_jniEnv, applet_cl, "init", "()V", applet_init); |
202 |
|
JNI_CallVoidMethod0 (m_jniEnv, m_applet, applet_init); |
|
m_jniEnv->CallVoidMethod (m_applet, applet_init); |
|
|
CHECK_EXCEPTIONS; |
|
203 |
|
|
204 |
return NS_OK; |
return NS_OK; |
205 |
} |
} |
220 |
|
|
221 |
if (m_applet != NULL) |
if (m_applet != NULL) |
222 |
{ |
{ |
223 |
jclass applet_cl = m_jniEnv->GetObjectClass (m_applet); |
jclass applet_cl; |
224 |
assert (applet_cl != NULL); |
jmethodID applet_start; |
225 |
|
|
226 |
jmethodID applet_start = m_jniEnv->GetMethodID (applet_cl, "start", "()V"); |
JNI_GetObjectClass (m_jniEnv, m_applet, applet_cl); |
227 |
assert (applet_start); |
JNI_GetMethodID (m_jniEnv, applet_cl, "start", "()V", applet_start); |
228 |
|
JNI_CallVoidMethod0 (m_jniEnv, m_applet, applet_start); |
|
m_jniEnv->CallVoidMethod (m_applet, applet_start); |
|
|
CHECK_EXCEPTIONS; |
|
229 |
} |
} |
230 |
|
|
231 |
return NS_OK; |
return NS_OK; |
238 |
|
|
239 |
if (m_applet != NULL) |
if (m_applet != NULL) |
240 |
{ |
{ |
241 |
jclass applet_cl = m_jniEnv->GetObjectClass (m_applet); |
jclass applet_cl; |
242 |
assert (applet_cl != NULL); |
jmethodID applet_stop; |
243 |
|
|
244 |
jmethodID applet_stop = m_jniEnv->GetMethodID (applet_cl, "stop", "()V"); |
JNI_GetObjectClass (m_jniEnv, m_applet, applet_cl); |
245 |
assert (applet_stop); |
JNI_GetMethodID (m_jniEnv, applet_cl, "stop", "()V", applet_stop); |
246 |
|
JNI_CallVoidMethod0 (m_jniEnv, m_applet, applet_stop); |
|
m_jniEnv->CallVoidMethod (m_applet, applet_stop); |
|
|
CHECK_EXCEPTIONS; |
|
247 |
} |
} |
248 |
|
|
249 |
return NS_OK; |
return NS_OK; |
256 |
|
|
257 |
if (m_applet != NULL) |
if (m_applet != NULL) |
258 |
{ |
{ |
259 |
jclass applet_cl = m_jniEnv->GetObjectClass (m_applet); |
jclass applet_cl; |
260 |
assert (applet_cl != NULL); |
jmethodID applet_destroy; |
261 |
|
|
262 |
jmethodID applet_destroy = m_jniEnv->GetMethodID (applet_cl, |
JNI_GetObjectClass (m_jniEnv, m_applet, applet_cl); |
263 |
"destroy", "()V"); |
JNI_GetMethodID (m_jniEnv, applet_cl, "destroy", "()V", applet_destroy); |
264 |
assert (applet_destroy); |
JNI_CallVoidMethod0 (m_jniEnv, m_applet, applet_destroy); |
|
|
|
|
m_jniEnv->CallVoidMethod (m_applet, applet_destroy); |
|
|
CHECK_EXCEPTIONS; |
|
265 |
} |
} |
266 |
|
|
267 |
return NS_OK; |
return NS_OK; |
277 |
// First, create an embedded window. |
// First, create an embedded window. |
278 |
PLUGIN_DEBUG (" Finding EmbeddedWindow methods...\n"); |
PLUGIN_DEBUG (" Finding EmbeddedWindow methods...\n"); |
279 |
|
|
280 |
jclass embeddedWindow_cl = m_jniEnv->FindClass ( |
jclass embeddedWindow_cl; |
281 |
"gnu/java/awt/EmbeddedWindow"); |
jmethodID embeddedWindow_init; |
282 |
assert (embeddedWindow_cl); |
jmethodID embeddedWindow_setSize; |
283 |
|
|
284 |
jmethodID embeddedWindow_init = m_jniEnv->GetMethodID ( |
JNI_FindClass (m_jniEnv, "gnu/java/awt/EmbeddedWindow", |
285 |
embeddedWindow_cl, |
embeddedWindow_cl); |
286 |
"<init>", "(I)V"); |
JNI_GetMethodID (m_jniEnv, embeddedWindow_cl, "<init>", "(I)V", |
287 |
assert (embeddedWindow_init); |
embeddedWindow_init); |
288 |
|
JNI_GetMethodID (m_jniEnv, embeddedWindow_cl, "setSize", "(II)V", |
289 |
jmethodID embeddedWindow_setSize = m_jniEnv->GetMethodID ( |
embeddedWindow_setSize); |
|
embeddedWindow_cl, |
|
|
"setSize", "(II)V"); |
|
|
assert (embeddedWindow_setSize); |
|
290 |
|
|
291 |
PLUGIN_DEBUG2 (" Initializing EmbeddedWindow: %d...\n", (unsigned long) window->window); |
PLUGIN_DEBUG2 (" Initializing EmbeddedWindow: %d...\n", (unsigned long) window->window); |
292 |
|
|
293 |
m_embeddedWindow = m_jniEnv->NewObject (embeddedWindow_cl, embeddedWindow_init, |
JNI_NewObject1 (m_jniEnv, embeddedWindow_cl, embeddedWindow_init, |
294 |
(jint) window->window); |
(jint) window->window, m_embeddedWindow); |
|
assert (m_embeddedWindow); |
|
295 |
|
|
296 |
PLUGIN_DEBUG2 (" Setting EmbeddedWindow size: width %d...\n", (unsigned long) window->width); |
PLUGIN_DEBUG2 (" Setting EmbeddedWindow size: width %d...\n", (unsigned long) window->width); |
297 |
PLUGIN_DEBUG2 (" Setting EmbeddedWindow size: height %d...\n", (unsigned long) window->height); |
PLUGIN_DEBUG2 (" Setting EmbeddedWindow size: height %d...\n", (unsigned long) window->height); |
298 |
|
|
299 |
m_jniEnv->CallVoidMethod (m_embeddedWindow, embeddedWindow_setSize, |
JNI_CallVoidMethod2 (m_jniEnv, m_embeddedWindow, embeddedWindow_setSize, |
300 |
(jint) (window->width), (jint) (window->height)); |
(jint) (window->width), (jint) (window->height)); |
301 |
|
|
302 |
PLUGIN_DEBUG (" Finding AppletLoader...\n"); |
PLUGIN_DEBUG (" Finding AppletLoader...\n"); |
303 |
|
|
304 |
/* Now add the applet to this window. */ |
/* Now add the applet to this window. */ |
305 |
jclass appletLoader_cl = m_jniEnv->FindClass ("gnu/applet/AppletLoader"); |
jclass appletLoader_cl; |
306 |
assert (appletLoader_cl != NULL); |
jmethodID appletLoader_setEmbeddedWindow; |
307 |
|
|
308 |
|
JNI_FindClass (m_jniEnv, "gnu/applet/AppletLoader", appletLoader_cl); |
309 |
|
|
310 |
PLUGIN_DEBUG (" Finding setEmbeddedWindow...\n"); |
PLUGIN_DEBUG (" Finding setEmbeddedWindow...\n"); |
311 |
|
|
312 |
jmethodID appletLoader_setEmbeddedWindow = m_jniEnv->GetMethodID ( |
JNI_GetMethodID (m_jniEnv, appletLoader_cl, "setEmbeddedWindow", |
313 |
appletLoader_cl, |
"(Lgnu.java.awt.EmbeddedWindow;)V", appletLoader_setEmbeddedWindow); |
|
"setEmbeddedWindow", "(Lgnu.java.awt.EmbeddedWindow;)V"); |
|
|
assert (appletLoader_setEmbeddedWindow != NULL); |
|
314 |
|
|
315 |
PLUGIN_DEBUG (" Calling setEmbeddedWindow...\n"); |
PLUGIN_DEBUG (" Calling setEmbeddedWindow...\n"); |
316 |
|
|
320 |
if (!m_embeddedWindow) |
if (!m_embeddedWindow) |
321 |
PLUGIN_DEBUG (" no m_embeddedWindow!...\n"); |
PLUGIN_DEBUG (" no m_embeddedWindow!...\n"); |
322 |
|
|
323 |
m_jniEnv->CallVoidMethod (m_appletLoader, appletLoader_setEmbeddedWindow, m_embeddedWindow); |
JNI_CallVoidMethod1 (m_jniEnv, m_appletLoader, |
324 |
|
appletLoader_setEmbeddedWindow, m_embeddedWindow); |
325 |
|
|
|
CHECK_EXCEPTIONS; |
|
326 |
} |
} |
327 |
|
|
328 |
return NS_OK; |
return NS_OK; |
367 |
*(PRBool*) value = PR_FALSE; |
*(PRBool*) value = PR_FALSE; |
368 |
break; |
break; |
369 |
|
|
370 |
|
/* |
371 |
case (nsPluginInstanceVariable)NPPVpluginNeedsXEmbed: |
case (nsPluginInstanceVariable)NPPVpluginNeedsXEmbed: |
372 |
*(PRBool*) value = PR_TRUE; |
*(PRBool*) value = PR_TRUE; |
373 |
break; |
break; |
374 |
|
*/ |
375 |
|
|
376 |
default: |
default: |
377 |
PLUGIN_DEBUG ("GCJPluginInstance::GetValue: Requested unknown value\n"); |
PLUGIN_DEBUG ("GCJPluginInstance::GetValue: Requested unknown value\n"); |