mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 13:51:41 +00:00
1999-10-07 <Ed Burns <ed.burns@sun.com>>
* This change fixes http://bugzilla.mozilla.org/show_bug.cgi?id=15793 which caused one to have to copy the component.reg and components directory. It also causes webclient to do autoregistration. It also adds a debugging method to BrowserControlMozillaShim.java nativeDebugBreak(). This changes makes webclient depend on having mozilla sources from 10/5/99 or later. Reviewed by Mark Lin <marklin@eng.sun.com> Approved by Ed Burns <edburns@acm.org>, module owner
This commit is contained in:
parent
f0c6611e7a
commit
a8e9d5219a
@ -7,6 +7,9 @@
|
|||||||
debugging method to BrowserControlMozillaShim.java
|
debugging method to BrowserControlMozillaShim.java
|
||||||
nativeDebugBreak().
|
nativeDebugBreak().
|
||||||
|
|
||||||
|
This changes makes webclient depend on having mozilla sources from
|
||||||
|
10/5/99 or later.
|
||||||
|
|
||||||
Reviewed by Mark Lin <marklin@eng.sun.com>
|
Reviewed by Mark Lin <marklin@eng.sun.com>
|
||||||
Approved by Ed Burns <edburns@acm.org>, module owner
|
Approved by Ed Burns <edburns@acm.org>, module owner
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ import java.awt.Rectangle;
|
|||||||
*
|
*
|
||||||
* <B>Lifetime And Scope</B> <P>
|
* <B>Lifetime And Scope</B> <P>
|
||||||
*
|
*
|
||||||
* @version $Id: BrowserControlImpl.java,v 1.2 1999/09/03 19:28:44 edburns%acm.org Exp $
|
* @version $Id: BrowserControlImpl.java,v 1.3 1999/10/08 00:48:01 edburns%acm.org Exp $
|
||||||
*
|
*
|
||||||
* @see org.mozilla.webclient.BrowserControl
|
* @see org.mozilla.webclient.BrowserControl
|
||||||
*
|
*
|
||||||
@ -69,7 +69,8 @@ public class BrowserControlImpl extends Object implements BrowserControl
|
|||||||
|
|
||||||
public BrowserControlImpl(int windowPtr, Rectangle bounds) throws Exception
|
public BrowserControlImpl(int windowPtr, Rectangle bounds) throws Exception
|
||||||
{
|
{
|
||||||
nativeWebShell = BrowserControlMozillaShim.webShellCreate(windowPtr, bounds);
|
nativeWebShell = BrowserControlMozillaShim.webShellCreate(windowPtr,
|
||||||
|
bounds);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -244,7 +245,7 @@ public static void main(String [] args)
|
|||||||
// BrowserControlImpl me = new BrowserControlImpl();
|
// BrowserControlImpl me = new BrowserControlImpl();
|
||||||
Log.setApplicationName("BrowserControlImpl");
|
Log.setApplicationName("BrowserControlImpl");
|
||||||
Log.setApplicationVersion("0.0");
|
Log.setApplicationVersion("0.0");
|
||||||
Log.setApplicationVersionDate("$Id: BrowserControlImpl.java,v 1.2 1999/09/03 19:28:44 edburns%acm.org Exp $");
|
Log.setApplicationVersionDate("$Id: BrowserControlImpl.java,v 1.3 1999/10/08 00:48:01 edburns%acm.org Exp $");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ import java.awt.*;
|
|||||||
* There is one instance of this class and all of the exposed methods
|
* There is one instance of this class and all of the exposed methods
|
||||||
* are static.
|
* are static.
|
||||||
|
|
||||||
* @version $Id: BrowserControlMozillaShim.java,v 1.3 1999/09/03 19:28:45 edburns%acm.org Exp $
|
* @version $Id: BrowserControlMozillaShim.java,v 1.4 1999/10/08 00:48:02 edburns%acm.org Exp $
|
||||||
*
|
*
|
||||||
* @see org.mozilla.webclient.BrowserControlImpl
|
* @see org.mozilla.webclient.BrowserControlImpl
|
||||||
|
|
||||||
@ -85,25 +85,19 @@ public BrowserControlMozillaShim()
|
|||||||
// Class methods
|
// Class methods
|
||||||
//
|
//
|
||||||
|
|
||||||
public static void initialize () throws Exception
|
/**
|
||||||
|
|
||||||
|
* it is safe to call this method multiple times, it is guaranteed
|
||||||
|
* to only actually do something once.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static void initialize(String verifiedBinDirAbsolutePath) throws Exception
|
||||||
{
|
{
|
||||||
if (!initialized) {
|
if (!initialized) {
|
||||||
instance = new BrowserControlMozillaShim();
|
instance = new BrowserControlMozillaShim();
|
||||||
|
|
||||||
// PENDING(mark): Try loading the native library in your own implemntation specfic canvas
|
instance.nativeInitialize(verifiedBinDirAbsolutePath);
|
||||||
// class (ie. Win32BrowserControlCanvas or MotifBrowserControlCanvas.
|
|
||||||
// The Unix port needs this. If this is a problem, let me know ASAP.
|
|
||||||
// - Mark
|
|
||||||
/*
|
|
||||||
try {
|
|
||||||
System.loadLibrary("webclient");
|
|
||||||
}
|
|
||||||
catch (java.lang.UnsatisfiedLinkError e) {
|
|
||||||
throw new Exception("Unable to open native webclient library");
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
instance.nativeInitialize();
|
|
||||||
initialized = true;
|
initialized = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -281,11 +275,14 @@ public static void widgetUpdate (int widgetPtr)
|
|||||||
//
|
//
|
||||||
|
|
||||||
public static int webShellCreate (int windowPtr,
|
public static int webShellCreate (int windowPtr,
|
||||||
Rectangle bounds) throws Exception
|
Rectangle bounds) throws Exception
|
||||||
{
|
{
|
||||||
synchronized(lock) {
|
synchronized(lock) {
|
||||||
if (initialized) {
|
if (initialized) {
|
||||||
return(instance.nativeWebShellCreate(windowPtr, bounds.x, bounds.y, bounds.width + 1, bounds.height + 1));
|
return(instance.nativeWebShellCreate(windowPtr,
|
||||||
|
bounds.x, bounds.y,
|
||||||
|
bounds.width + 1,
|
||||||
|
bounds.height + 1));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new Exception("Error: unable to create native nsIWebShell");
|
throw new Exception("Error: unable to create native nsIWebShell");
|
||||||
@ -504,7 +501,7 @@ public static boolean webShellRefresh(int webShellPtr) throws Exception
|
|||||||
// Native interfaces
|
// Native interfaces
|
||||||
//
|
//
|
||||||
|
|
||||||
private native void nativeInitialize () throws Exception;
|
private native void nativeInitialize (String verifiedBinDirAbsolutePath) throws Exception;
|
||||||
private native void nativeTerminate () throws Exception;
|
private native void nativeTerminate () throws Exception;
|
||||||
|
|
||||||
|
|
||||||
@ -573,6 +570,8 @@ private native String nativeWebShellGetURL (int webShellPtr, int aHistoryIndex
|
|||||||
*/
|
*/
|
||||||
private native boolean nativeWebShellRefresh (int webShellPtr) throws Exception;
|
private native boolean nativeWebShellRefresh (int webShellPtr) throws Exception;
|
||||||
|
|
||||||
|
public static native void nativeDebugBreak(String fileName, int lineNumber);
|
||||||
|
|
||||||
//
|
//
|
||||||
// General Methods
|
// General Methods
|
||||||
//
|
//
|
||||||
@ -589,7 +588,7 @@ public static void main(String [] args)
|
|||||||
BrowserControlMozillaShim me = new BrowserControlMozillaShim();
|
BrowserControlMozillaShim me = new BrowserControlMozillaShim();
|
||||||
Log.setApplicationName("BrowserControlMozillaShim");
|
Log.setApplicationName("BrowserControlMozillaShim");
|
||||||
Log.setApplicationVersion("0.0");
|
Log.setApplicationVersion("0.0");
|
||||||
Log.setApplicationVersionDate("$Id: BrowserControlMozillaShim.java,v 1.3 1999/09/03 19:28:45 edburns%acm.org Exp $");
|
Log.setApplicationVersionDate("$Id: BrowserControlMozillaShim.java,v 1.4 1999/10/08 00:48:02 edburns%acm.org Exp $");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ import org.mozilla.webclient.*;
|
|||||||
* This is a test application for using the BrowserControl.
|
* This is a test application for using the BrowserControl.
|
||||||
|
|
||||||
*
|
*
|
||||||
* @version $Id: EmbeddedMozilla.java,v 1.2 1999/09/03 19:28:45 edburns%acm.org Exp $
|
* @version $Id: EmbeddedMozilla.java,v 1.3 1999/10/08 00:48:04 edburns%acm.org Exp $
|
||||||
*
|
*
|
||||||
* @see org.mozilla.webclient.BrowserControlCanvasFactory
|
* @see org.mozilla.webclient.BrowserControlCanvasFactory
|
||||||
|
|
||||||
@ -46,17 +46,27 @@ public class EmbeddedMozilla extends Frame implements ActionListener {
|
|||||||
private BrowserControl browserControl;
|
private BrowserControl browserControl;
|
||||||
private Panel controlPanel;
|
private Panel controlPanel;
|
||||||
private Panel buttonsPanel;
|
private Panel buttonsPanel;
|
||||||
|
|
||||||
|
public static void printUsage()
|
||||||
|
{
|
||||||
|
System.out.println("usage: java org.mozilla.webclient.test.EmbeddedMozilla <path> [url]");
|
||||||
|
System.out.println(" <path> is the absolute path to the native browser bin directory, ");
|
||||||
|
System.out.println(" including the bin.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void main (String[] arg) {
|
public static void main (String[] arg) {
|
||||||
String urlArg =(0 < arg.length) ? arg[0] : "http://www.mozilla.org/";
|
if (1 > arg.length) {
|
||||||
|
printUsage();
|
||||||
|
System.exit(-1);
|
||||||
|
}
|
||||||
|
String urlArg =(2 == arg.length) ? arg[1] : "http://www.mozilla.org/";
|
||||||
|
|
||||||
EmbeddedMozilla gecko =
|
EmbeddedMozilla gecko =
|
||||||
new EmbeddedMozilla("Embedded Mozilla", urlArg);
|
new EmbeddedMozilla("Embedded Mozilla", arg[0], urlArg);
|
||||||
} // main()
|
} // main()
|
||||||
|
|
||||||
|
public EmbeddedMozilla (String title, String binDir, String url) {
|
||||||
public EmbeddedMozilla (String title, String url) {
|
|
||||||
super(title);
|
super(title);
|
||||||
System.out.println("constructed with " + url);
|
System.out.println("constructed with " + url);
|
||||||
|
|
||||||
@ -96,8 +106,17 @@ public class EmbeddedMozilla extends Frame implements ActionListener {
|
|||||||
controlPanel.add(buttonsPanel, BorderLayout.WEST);
|
controlPanel.add(buttonsPanel, BorderLayout.WEST);
|
||||||
|
|
||||||
// Create the browser
|
// Create the browser
|
||||||
BrowserControlCanvas browser =
|
BrowserControlCanvas browser = null;
|
||||||
BrowserControlCanvasFactory.newBrowserControlCanvas();
|
|
||||||
|
try {
|
||||||
|
BrowserControlCanvasFactory.setAppData(binDir);
|
||||||
|
browser = BrowserControlCanvasFactory.newBrowserControlCanvas();
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
System.out.println("Can't create BrowserControlCanvas: " +
|
||||||
|
e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
browser.setSize(defaultWidth, defaultHeight);
|
browser.setSize(defaultWidth, defaultHeight);
|
||||||
|
|
||||||
// Add the control panel and the browser
|
// Add the control panel and the browser
|
||||||
|
@ -60,6 +60,8 @@ nsMacMessageSink gMessageSink;
|
|||||||
#include "nsActions.h"
|
#include "nsActions.h"
|
||||||
|
|
||||||
#include "nsIRegistry.h"
|
#include "nsIRegistry.h"
|
||||||
|
#include "nsIServiceManager.h"
|
||||||
|
#include "nsIPref.h"
|
||||||
|
|
||||||
#define DEBUG_RAPTOR_CANVAS 1
|
#define DEBUG_RAPTOR_CANVAS 1
|
||||||
|
|
||||||
@ -71,9 +73,13 @@ static NS_DEFINE_IID(kIWebShellIID, NS_IWEB_SHELL_IID);
|
|||||||
|
|
||||||
static NS_DEFINE_IID(kIEventQueueServiceIID, NS_IEVENTQUEUESERVICE_IID);
|
static NS_DEFINE_IID(kIEventQueueServiceIID, NS_IEVENTQUEUESERVICE_IID);
|
||||||
static NS_DEFINE_IID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
static NS_DEFINE_IID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
||||||
|
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||||
|
|
||||||
extern "C" void NS_SetupRegistry();
|
extern "C" void NS_SetupRegistry();
|
||||||
|
extern nsresult NS_AutoregisterComponents();
|
||||||
|
|
||||||
|
static nsFileSpec registryFile;
|
||||||
|
static nsFileSpec componentDir;
|
||||||
|
|
||||||
struct WebShellInitContext {
|
struct WebShellInitContext {
|
||||||
#ifdef XP_UNIX
|
#ifdef XP_UNIX
|
||||||
@ -288,10 +294,27 @@ EmbeddedEventHandler (void * arg) {
|
|||||||
initContext->initFailCode = kInitWebShellError;
|
initContext->initFailCode = kInitWebShellError;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DEBUG_RAPTOR_CANVAS
|
||||||
|
printf("EmbeddedEventHandler(%lx): Install Prefs in the Webshell...\n", initContext);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
nsIPref *prefs;
|
||||||
|
|
||||||
|
rv = nsServiceManager::GetService(kPrefCID,
|
||||||
|
nsIPref::GetIID(),
|
||||||
|
(nsISupports **)&prefs);
|
||||||
|
if (NS_SUCCEEDED(rv)) {
|
||||||
|
// Set the prefs in the outermost webshell.
|
||||||
|
initContext->webShell->SetPrefs(prefs);
|
||||||
|
nsServiceManager::ReleaseService(kPrefCID, prefs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if DEBUG_RAPTOR_CANVAS
|
#if DEBUG_RAPTOR_CANVAS
|
||||||
printf("EmbeddedEventHandler(%lx): Show the WebShell...\n", initContext);
|
printf("EmbeddedEventHandler(%lx): Show the WebShell...\n", initContext);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rv = initContext->webShell->Show();
|
rv = initContext->webShell->Show();
|
||||||
if (NS_FAILED(rv)) {
|
if (NS_FAILED(rv)) {
|
||||||
initContext->initFailCode = kShowWebShellError;
|
initContext->initFailCode = kShowWebShellError;
|
||||||
@ -588,19 +611,29 @@ extern "C" {
|
|||||||
/*
|
/*
|
||||||
* Class: BrowserControlMozillaShim
|
* Class: BrowserControlMozillaShim
|
||||||
* Method: raptorInitialize
|
* Method: raptorInitialize
|
||||||
* Signature: ()V
|
* Signature: (Ljava/lang/String;)V
|
||||||
*/
|
*/
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
Java_org_mozilla_webclient_BrowserControlMozillaShim_nativeInitialize (
|
Java_org_mozilla_webclient_BrowserControlMozillaShim_nativeInitialize(
|
||||||
JNIEnv * env,
|
JNIEnv *env,
|
||||||
jobject obj)
|
jobject obj,
|
||||||
|
jstring verifiedBinDirAbsolutePath)
|
||||||
{
|
{
|
||||||
JNIEnv * pEnv = env;
|
JNIEnv * pEnv = env;
|
||||||
jobject jobj = obj;
|
jobject jobj = obj;
|
||||||
static PRBool gFirstTime = PR_TRUE;
|
static PRBool gFirstTime = PR_TRUE;
|
||||||
if (gFirstTime)
|
if (gFirstTime)
|
||||||
{
|
{
|
||||||
|
// set the registryFile and componentDir correctly
|
||||||
|
const char *nativePath = (const char *) env->GetStringUTFChars(verifiedBinDirAbsolutePath, 0);
|
||||||
|
registryFile = nativePath;
|
||||||
|
registryFile += "component.reg";
|
||||||
|
componentDir = nativePath;
|
||||||
|
componentDir += "components";
|
||||||
|
|
||||||
|
NS_InitXPCOM(NULL, ®istryFile, &componentDir);
|
||||||
NS_SetupRegistry();
|
NS_SetupRegistry();
|
||||||
|
NS_AutoregisterComponents();
|
||||||
gFirstTime = PR_FALSE;
|
gFirstTime = PR_FALSE;
|
||||||
}
|
}
|
||||||
} // Java_org_mozilla_webclient_BrowserControlMozillaShim_nativeInitialize()
|
} // Java_org_mozilla_webclient_BrowserControlMozillaShim_nativeInitialize()
|
||||||
@ -1845,6 +1878,21 @@ JNIEXPORT void JNICALL Java_org_mozilla_webclient_motif_MozillaEventThread_proce
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: org_mozilla_webclient_BrowserControlMozillaShim
|
||||||
|
* Method: nativeDebugBreak
|
||||||
|
* Signature: (Ljava/lang/String;I)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT void JNICALL
|
||||||
|
Java_org_mozilla_webclient_BrowserControlMozillaShim_nativeDebugBreak(JNIEnv *jEnv,
|
||||||
|
jclass myClass,
|
||||||
|
jstring fileName,
|
||||||
|
jint lineNumber)
|
||||||
|
{
|
||||||
|
const char *charFileName = (char *) jEnv->GetStringUTFChars(fileName, 0);
|
||||||
|
nsDebug::Break(charFileName, lineNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef XP_UNIX
|
#ifdef XP_UNIX
|
||||||
}// End extern "C"
|
}// End extern "C"
|
||||||
|
@ -67,7 +67,7 @@ install:: $(DLL)
|
|||||||
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).dll $(DIST)\bin
|
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).dll $(DIST)\bin
|
||||||
@echo +++ Creating $(MOZ_SRC)\mozilla\java\webclient\src\$(OBJDIR)\runem.bat. Use this to run the test browser.
|
@echo +++ Creating $(MOZ_SRC)\mozilla\java\webclient\src\$(OBJDIR)\runem.bat. Use this to run the test browser.
|
||||||
@echo set PATH=$(MOZ_SRC)\mozilla\dist\$(OBJDIR)\bin;$(PATH) > .\$(OBJDIR)\runem.bat
|
@echo set PATH=$(MOZ_SRC)\mozilla\dist\$(OBJDIR)\bin;$(PATH) > .\$(OBJDIR)\runem.bat
|
||||||
@echo $(JAVA) -Djava.library.path=$(MOZ_SRC)\mozilla\dist\$(OBJDIR)\bin -classpath $(JAVAC_CLASSPATH) org.mozilla.webclient.test.EmbeddedMozilla %1% >> .\$(OBJDIR)\runem.bat
|
@echo $(JAVA) -Djava.library.path=$(MOZ_SRC)\mozilla\dist\$(OBJDIR)\bin -classpath $(JAVAC_CLASSPATH) org.mozilla.webclient.test.EmbeddedMozilla $(MOZ_SRC)\mozilla\dist\$(OBJDIR)\bin %1% >> .\$(OBJDIR)\runem.bat
|
||||||
|
|
||||||
clobber_all:: clobber
|
clobber_all:: clobber
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user