Updated Pluglets to tip of the tree and latest jdk1.3 on solaris
Fixed 40615
This commit is contained in:
idk%eng.sun.com 2000-09-26 06:53:53 +00:00
Родитель a4e0bf9707
Коммит 52809cd832
5 изменённых файлов: 78 добавлений и 75 удалений

Просмотреть файл

@ -1,4 +1,4 @@
/*
/* -*- Mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
@ -58,11 +58,13 @@ public class PlugletManagerImpl implements PlugletManager {
* 'javascript:' URLs, even if the user currently has JavaScript
* disabled (usually specify false)
*/
public native void getURL(Pluglet pluglet,
public void getURL(Pluglet pluglet,
URL url, String target,
PlugletStreamListener streamListener,
String altHost, URL referrer,
boolean forceJSEnabled);
boolean forceJSEnabled) {
throw(new UnsupportedOperationException("PlagletManager.getURL not implemented yet"));
}
/**
* Posts to a URL with post data and/or post headers.
*
@ -89,18 +91,20 @@ public class PlugletManagerImpl implements PlugletManager {
* are no post headers
*/
public native void postURL(Pluglet pluglet,
URL url,
int postDataLen,
byte[] postData,
boolean isFile,
String target,
PlugletStreamListener streamListener,
String altHost,
URL referrer,
boolean forceJSEnabled,
int postHeadersLength,
byte[] postHeaders);
public void postURL(Pluglet pluglet,
URL url,
int postDataLen,
byte[] postData,
boolean isFile,
String target,
PlugletStreamListener streamListener,
String altHost,
URL referrer,
boolean forceJSEnabled,
int postHeadersLength,
byte[] postHeaders) {
throw(new UnsupportedOperationException("PlagletManager.postURL not implemented yet"));
}
protected void finalize() {
nativeFinalize();
}

Просмотреть файл

@ -4,7 +4,8 @@ import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;
import javax.swing.tree.TreePath;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import javax.swing.JTextField;
import org.mozilla.pluglet.*;
import org.mozilla.pluglet.mozilla.*;
@ -43,7 +44,7 @@ class Node {
}
class ZipDecoder implements Pluglet {
Button extract;
JButton extract;
byte[] b;
Frame frm;
Panel panel;
@ -129,10 +130,13 @@ class ZipDecoder implements Pluglet {
extract.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (zipTree == null) return;
if (zipTree == null) {
return;
}
TreePath tp = zipTree.getSelectionPath();
if (tp == null) return;
if (tp == null) {
return;
}
Object[] elements = tp.getPath();
if (tp.getPathCount() == 1) return;
@ -267,7 +271,7 @@ class ZipDecoder implements Pluglet {
public void start() {
panel = new Panel();
extract = new Button("Extract");
extract = new JButton("Extract");
}
public void stop() {
@ -289,7 +293,10 @@ class ZipDecoder implements Pluglet {
frame.setLayout(new BorderLayout());
frame.setSize(defaultSize);
frame.add(panel);
panel.add(extract);
JPanel jpanel = new JPanel();
panel.add(jpanel);
jpanel.add(extract);
frame.pack();
frm=frame;
}

Просмотреть файл

@ -49,21 +49,21 @@ CPPSRCS = \
PlugletViewFactory.cpp \
$(NULL)
CXXFLAGS += $(MOZ_TOOLKIT_REGISTRY_CFLAGS) -D_REENTRANT -DOJI_DISABLE
CXXFLAGS := -I$(JDKHOME)/include -I$(JDKHOME)/include/solaris $(MOZ_TOOLKIT_REGISTRY_CFLAGS) -D_REENTRANT -DOJI_DISABLE $(CXXFLAGS)
DSO_LDOPTS += \
-L$(JDKHOME)/jre/lib/$(HOSTTYPE)/ \
-L$(JDKHOME)/jre/lib/$(HOSTTYPE)/classic \
-ljava -ljvm -lawt \
-ljava -ljvm -lawt -lXt\
-lgdk
ifneq ($(OS_ARCH), Linux)
DSO_LDOPTS += \
-lthread -lXm -lX11 -lXt -lm
-lthread
endif
include $(topsrcdir)/config/rules.mk
CCC += $(CXXFLAGS)

Просмотреть файл

@ -43,8 +43,8 @@ static NS_DEFINE_CID(kPluginManagerCID, NS_PLUGINMANAGER_CID);
PRLogModuleInfo* PlugletLog::log = NULL;
#define PLUGLETENGINE_PROGID \
"component://netscape/blackwood/pluglet-engine"
#define PLUGLETENGINE_ContractID \
"@mozilla.org/blackwood/pluglet-engine;1"
#define PLUGLETENGINE_CID \
{ /* C1E694F3-9BE1-11d3-837C-0004AC56C49E */ \
@ -58,7 +58,7 @@ static nsModuleComponentInfo components[] =
{
"Pluglet Engine",
PLUGLETENGINE_CID,
PLUGLETENGINE_PROGID,
PLUGLETENGINE_ContractID,
PlugletEngineConstructor
}
};
@ -173,42 +173,36 @@ PlugletEngine::~PlugletEngine(void) {
JavaVM *PlugletEngine::jvm = NULL;
void PlugletEngine::StartJVM(void) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("PlugletEngine::StartJVM\n"));
JNIEnv *env = NULL;
void PlugletEngine::StartJVM() {
JNIEnv *env = NULL;
jint res;
jsize jvmCount;
JNI_GetCreatedJavaVMs(&jvm, 1, &jvmCount);
if (jvmCount) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("PlugletEngine::StartJVM we have running jvm. We do not need to start another one\n"));
("PlugletEngine::StartJVM we got already started JVM\n"));
return;
}
JDK1_1InitArgs vm_args;
char classpath[1024];
JNI_GetDefaultJavaVMInitArgs(&vm_args);
vm_args.version = 0x00010001;
/* Append USER_CLASSPATH to the default system class path */
sprintf(classpath, "%s%c%s",
vm_args.classpath, PATH_SEPARATOR, PR_GetEnv("CLASSPATH"));
JavaVMInitArgs vm_args;
JavaVMOption options[2];
sprintf(classpath, "-Djava.class.path=%s",PR_GetEnv("CLASSPATH"));
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("PlugletEngine::StartJVM classpath=%s\n",classpath));
char **props = new char*[2];
props[0]="java.compiler=NONE";
props[1]=0;
vm_args.properties = props;
vm_args.classpath = classpath;
/* Create the Java VM */
res = JNI_CreateJavaVM(&jvm, &env, &vm_args);
if(res < 0 ) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("PlugletEngine::StartJVM JNI_CreateJavaVM failed \n"));
} else {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("PlugletEngine::StartJVM jvm was started \n"));
}
("PlugletEngine::StartJVM about to create JVM classpath=%s\n",classpath));
options[0].optionString = classpath;
options[1].optionString=""; //-Djava.compiler=NONE";
vm_args.version = 0x00010002;
vm_args.options = options;
vm_args.nOptions = 2;
vm_args.ignoreUnrecognized = JNI_TRUE;
/* Create the Java VM */
res = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
printf("--bcJavaGlobal::StartJVM jvm started res %d\n",res);
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("PlugletEngine::StartJVM after CreateJavaVM res = %d\n",res));
}
#endif /* OJI_DISABLE */
JNIEnv * PlugletEngine::GetJNIEnv(void) {
@ -238,7 +232,7 @@ JNIEnv * PlugletEngine::GetJNIEnv(void) {
StartJVM();
}
if (jvm) {
jvm->AttachCurrentThread(&res,NULL);
jvm->AttachCurrentThread((void**)&res,NULL);
}
#endif /* OJI_DISABLE */
return res;

Просмотреть файл

@ -49,18 +49,23 @@ PlugletViewMotif::PlugletViewMotif() {
WindowID = 0;
}
#ifdef SOLARIS //following futures are not available under Linux Blackdown JDK
extern "C" void getAwtData(int *awt_depth,
Colormap *awt_cmap,
Visual **awt_visual,
int *awt_num_colors,
void *pReserved);
extern "C" Display *getAwtDisplay(void);
extern "C" void getAwtLockFunctions(void (**AwtLock)(JNIEnv *),
void (**AwtUnlock)(JNIEnv *),
void (**AwtNoFlushUnlock)(JNIEnv *),
void *pReserved);
static int awt_depth;
static Colormap awt_cmap;
static Visual * awt_visual;
static int awt_num_colors;
#endif
void PlugletViewMotif::Initialize() {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
@ -77,21 +82,11 @@ void PlugletViewMotif::Initialize() {
clazz = NULL;
return;
}
#ifdef SOLARIS
getAwtData(&awt_depth, &awt_cmap, &awt_visual, &awt_num_colors, NULL);
#endif
getAwtData(&awt_depth, &awt_cmap, &awt_visual, &awt_num_colors, NULL);
}
#define AWT_LOCK() (env)->MonitorEnter(awt_lock)
#define AWT_UNLOCK() (env)->MonitorExit(awt_lock)
extern jobject awt_lock;
extern Display *awt_display;
PRBool PlugletViewMotif::SetWindow(nsPluginWindow* win) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("PlugletViewMotif.SetWindow this=%p\n",this));
JNIEnv *env = PlugletEngine::GetJNIEnv();
@ -136,7 +131,12 @@ PRBool PlugletViewMotif::SetWindow(nsPluginWindow* win) {
WindowID = containerWindowID;
AWT_LOCK();
void (*AwtLock)(JNIEnv *);
void (*AwtUnLock)(JNIEnv *);
void (*AwtNoFlushUnLock)(JNIEnv *);
getAwtLockFunctions(&AwtLock, &AwtUnLock, &AwtNoFlushUnLock,NULL);
AwtLock(env);
Display *awt_display = getAwtDisplay();
XSync(awt_display, FALSE);
Arg args[40];
int argc = 0;
@ -146,12 +146,10 @@ PRBool PlugletViewMotif::SetWindow(nsPluginWindow* win) {
XtSetArg(args[argc], XmNheight, win->height); argc++;
XtSetArg(args[argc], XmNx, 0); argc++;
XtSetArg(args[argc], XmNy, 0); argc++;
XtSetArg(args[argc],XmNmappedWhenManaged,False); argc++;
#ifdef SOLARIS
XtSetArg(args[argc], XmNmappedWhenManaged,False); argc++;
XtSetArg(args[argc], XmNvisual, awt_visual); argc++;
XtSetArg(args[argc], XmNdepth, awt_depth); argc++;
XtSetArg(args[argc], XmNcolormap, awt_cmap); argc++;
#endif
Widget w = XtAppCreateShell("AWTapp", "XApplication",
vendorShellWidgetClass,
awt_display,
@ -183,7 +181,7 @@ PRBool PlugletViewMotif::SetWindow(nsPluginWindow* win) {
}
}
AWT_UNLOCK();
AwtUnLock(env);
return PR_TRUE;
}