зеркало из https://github.com/mozilla/pjs.git
* NOT PART OF TBOX BUILDS *
Updated Pluglets to tip of the tree and latest jdk1.3 on solaris Fixed 40615
This commit is contained in:
Родитель
a4e0bf9707
Коммит
52809cd832
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче