### Eclipse Workspace Patch 1.0 #P org.eclipse.swt Index: Eclipse_SWT_PI/gtk/library/make_linux.mak =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_PI/gtk/library/make_linux.mak,v retrieving revision 1.33.2.1 diff -u -r1.33.2.1 make_linux.mak --- Eclipse_SWT_PI/gtk/library/make_linux.mak 26 Jul 2006 16:33:23 -0000 1.33.2.1 +++ Eclipse_SWT_PI/gtk/library/make_linux.mak 29 Sep 2006 13:21:51 -0000 @@ -202,7 +202,7 @@ # # Mozilla lib # -make_mozilla:$(MOZILLA_LIB) $(PROFILE14_LIB) $(PROFILE17_LIB) $(PROFILE18_LIB) +make_mozilla:$(MOZILLA_LIB) $(MOZILLA_LIB): $(MOZILLA_OBJECTS) $(CXX) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALIBS) ${GECKO_LIBS} @@ -220,22 +220,22 @@ $(CXX) $(MOZILLACFLAGS) ${GECKO_INCLUDES} -c xpcom_stats.cpp $(PROFILE14_OBJECTS): xpcom_profile.cpp - $(CXX) -o $(PROFILE14_OBJECTS) $(MOZILLACFLAGS) ${PROFILE14_INCLUDES} -c xpcom_profile.cpp + $(CXX) -o $(PROFILE14_OBJECTS) $(MOZILLACFLAGS) ${PROFILE14_INCLUDES} ${GECKO_INCLUDES} -c xpcom_profile.cpp $(PROFILE17_OBJECTS): xpcom_profile.cpp - $(CXX) -o $(PROFILE17_OBJECTS) $(MOZILLACFLAGS) ${PROFILE17_INCLUDES} -c xpcom_profile.cpp + $(CXX) -o $(PROFILE17_OBJECTS) $(MOZILLACFLAGS) ${PROFILE17_INCLUDES} ${GECKO_INCLUDES} -c xpcom_profile.cpp $(PROFILE18_OBJECTS): xpcom_profile.cpp - $(CXX) -o $(PROFILE18_OBJECTS) $(MOZILLACFLAGS) ${PROFILE18_INCLUDES} -c xpcom_profile.cpp + $(CXX) -o $(PROFILE18_OBJECTS) $(MOZILLACFLAGS) ${PROFILE18_INCLUDES} ${GECKO_INCLUDES} -c xpcom_profile.cpp $(PROFILE14_LIB): $(PROFILE14_OBJECTS) - $(CXX) -o $(PROFILE14_LIB) $(PROFILE14_OBJECTS) $(MOZILLALIBS) ${PROFILE14_LIBS} + $(CXX) -o $(PROFILE14_LIB) $(PROFILE14_OBJECTS) $(MOZILLALIBS) ${PROFILE14_LIBS} ${GECKO_LIBS} $(PROFILE17_LIB): $(PROFILE17_OBJECTS) - $(CXX) -o $(PROFILE17_LIB) $(PROFILE17_OBJECTS) $(MOZILLALIBS) ${PROFILE17_LIBS} + $(CXX) -o $(PROFILE17_LIB) $(PROFILE17_OBJECTS) $(MOZILLALIBS) ${PROFILE17_LIBS} ${GECKO_LIBS} $(PROFILE18_LIB): $(PROFILE18_OBJECTS) - $(CXX) -o $(PROFILE18_LIB) $(PROFILE18_OBJECTS) $(MOZILLALIBS) ${PROFILE18_LIBS} + $(CXX) -o $(PROFILE18_LIB) $(PROFILE18_OBJECTS) $(MOZILLALIBS) ${PROFILE18_LIBS} ${GECKO_LIBS} # # GLX lib @@ -264,4 +264,4 @@ # Clean # clean: - rm -f *.o *.so + rm -f *.o *.so \ No newline at end of file Index: Eclipse_SWT_PI/gtk/library/build.sh =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_PI/gtk/library/build.sh,v retrieving revision 1.40 diff -u -r1.40 build.sh --- Eclipse_SWT_PI/gtk/library/build.sh 22 Nov 2005 04:48:15 -0000 1.40 +++ Eclipse_SWT_PI/gtk/library/build.sh 29 Sep 2006 13:21:51 -0000 @@ -87,9 +87,9 @@ fi if [ -z "${GECKO_INCLUDES}" -a -z "${GECKO_LIBS}" ]; then - if [ x`pkg-config --exists mozilla-xpcom && echo YES` = "xYES" ]; then - GECKO_INCLUDES=`pkg-config --cflags mozilla-xpcom` - GECKO_LIBS=`pkg-config --libs mozilla-xpcom` + if [ x`pkg-config --exists firefox-xpcom && echo YES` = "xYES" ]; then + GECKO_INCLUDES=`pkg-config --cflags firefox-xpcom` + GECKO_LIBS=`pkg-config --libs firefox-xpcom` export GECKO_INCLUDES export GECKO_LIBS MAKE_MOZILLA=make_mozilla Index: Eclipse_SWT_Mozilla/common/library/xpcom_stats.cpp =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_Mozilla/common/library/xpcom_stats.cpp,v retrieving revision 1.15.2.1 diff -u -r1.15.2.1 xpcom_stats.cpp --- Eclipse_SWT_Mozilla/common/library/xpcom_stats.cpp 26 Jul 2006 16:33:23 -0000 1.15.2.1 +++ Eclipse_SWT_Mozilla/common/library/xpcom_stats.cpp 29 Sep 2006 13:21:49 -0000 @@ -31,15 +31,14 @@ #ifdef NATIVE_STATS -int XPCOM_nativeFunctionCount = 132; -int XPCOM_nativeFunctionCallCount[132]; +int XPCOM_nativeFunctionCount = 131; +int XPCOM_nativeFunctionCallCount[131]; char * XPCOM_nativeFunctionNames[] = { "Call", "NS_1GetComponentManager", "NS_1GetServiceManager", - "NS_1InitEmbedding", + "NS_1InitXPCOM3_FUNC", "NS_1NewLocalFile", - "NS_1TermEmbedding", "PR_1Free", "PR_1Malloc", "VtblCall__II", Index: Eclipse_SWT_Mozilla/common/library/xpcom_profile.h =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_Mozilla/common/library/xpcom_profile.h,v retrieving revision 1.1.2.1 diff -u -r1.1.2.1 xpcom_profile.h --- Eclipse_SWT_Mozilla/common/library/xpcom_profile.h 26 Jul 2006 16:33:23 -0000 1.1.2.1 +++ Eclipse_SWT_Mozilla/common/library/xpcom_profile.h 29 Sep 2006 13:21:48 -0000 @@ -32,7 +32,7 @@ #define NDEBUG #include "nsCOMPtr.h" -#include "nsProfileDirServiceProvider.h" +#include "profdirserviceprovider/nsProfileDirServiceProvider.h" #include "xpcom_stats.h" #endif /* INC_xpcom_profile_H */ Index: Eclipse_SWT_Mozilla/common/library/xpcom.h =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_Mozilla/common/library/xpcom.h,v retrieving revision 1.6.2.1 diff -u -r1.6.2.1 xpcom.h --- Eclipse_SWT_Mozilla/common/library/xpcom.h 26 Jul 2006 16:33:23 -0000 1.6.2.1 +++ Eclipse_SWT_Mozilla/common/library/xpcom.h 29 Sep 2006 13:21:48 -0000 @@ -32,7 +32,6 @@ #define NDEBUG #include "nsXPCOM.h" -#include "nsEmbedAPI.h" #include "nsEmbedString.h" #include "nsIInputStream.h" #include "nsISupportsUtils.h" Index: Eclipse_SWT_Mozilla/common/library/xpcom.cpp =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_Mozilla/common/library/xpcom.cpp,v retrieving revision 1.29.2.1 diff -u -r1.29.2.1 xpcom.cpp --- Eclipse_SWT_Mozilla/common/library/xpcom.cpp 26 Jul 2006 16:33:23 -0000 1.29.2.1 +++ Eclipse_SWT_Mozilla/common/library/xpcom.cpp 29 Sep 2006 13:21:48 -0000 @@ -85,14 +85,16 @@ } #endif -#ifndef NO_NS_1InitEmbedding -JNIEXPORT jint JNICALL XPCOM_NATIVE(NS_1InitEmbedding) - (JNIEnv *env, jclass that, jint arg0, jint arg1) +#ifndef NO_NS_1InitXPCOM3 +JNIEXPORT jint JNICALL XPCOM_NATIVE(NS_1InitXPCOM3) + (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4) { jint rc = 0; - XPCOM_NATIVE_ENTER(env, that, NS_1InitEmbedding_FUNC); - rc = (jint)NS_InitEmbedding((nsILocalFile *)arg0, (nsIDirectoryServiceProvider *)arg1); - XPCOM_NATIVE_EXIT(env, that, NS_1InitEmbedding_FUNC); + XPCOM_NATIVE_ENTER(env, that, NS_1GetComponentRegistrar_FUNC); + rc = (jint)NS_InitXPCOM3((nsIServiceManager **)arg0, (nsIFile *)arg1, + (nsIDirectoryServiceProvider *)arg2, (nsStaticModuleInfo *)arg3, + (PRUint32) arg4); + XPCOM_NATIVE_EXIT(env, that, NS_1GetComponentRegistrar_FUNC); return rc; } #endif @@ -113,18 +115,6 @@ } #endif -#ifndef NO_NS_1TermEmbedding -JNIEXPORT jint JNICALL XPCOM_NATIVE(NS_1TermEmbedding) - (JNIEnv *env, jclass that) -{ - jint rc = 0; - XPCOM_NATIVE_ENTER(env, that, NS_1TermEmbedding_FUNC); - rc = (jint)NS_TermEmbedding(); - XPCOM_NATIVE_EXIT(env, that, NS_1TermEmbedding_FUNC); - return rc; -} -#endif - #ifndef NO_PR_1Free JNIEXPORT void JNICALL XPCOM_NATIVE(PR_1Free) (JNIEnv *env, jclass that, jint arg0) Index: Eclipse_SWT_Mozilla/common/library/xpcom_stats.h =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_Mozilla/common/library/xpcom_stats.h,v retrieving revision 1.14.2.1 diff -u -r1.14.2.1 xpcom_stats.h --- Eclipse_SWT_Mozilla/common/library/xpcom_stats.h 26 Jul 2006 16:33:23 -0000 1.14.2.1 +++ Eclipse_SWT_Mozilla/common/library/xpcom_stats.h 29 Sep 2006 13:21:49 -0000 @@ -41,9 +41,8 @@ Call_FUNC, NS_1GetComponentManager_FUNC, NS_1GetServiceManager_FUNC, - NS_1InitEmbedding_FUNC, + NS_1InitXPCOM3_FUNC, NS_1NewLocalFile_FUNC, - NS_1TermEmbedding_FUNC, PR_1Free_FUNC, PR_1Malloc_FUNC, VtblCall__II_FUNC, Index: Eclipse_SWT_Mozilla/gtk/org/eclipse/swt/browser/Browser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_Mozilla/gtk/org/eclipse/swt/browser/Browser.java,v retrieving revision 1.61.2.2 diff -u -r1.61.2.2 Browser.java --- Eclipse_SWT_Mozilla/gtk/org/eclipse/swt/browser/Browser.java 24 Aug 2006 20:19:25 -0000 1.61.2.2 +++ Eclipse_SWT_Mozilla/gtk/org/eclipse/swt/browser/Browser.java 29 Sep 2006 13:21:51 -0000 @@ -10,15 +10,75 @@ *******************************************************************************/ package org.eclipse.swt.browser; -import java.io.*; -import java.util.*; -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.internal.*; -import org.eclipse.swt.internal.gtk.*; -import org.eclipse.swt.internal.mozilla.*; -import org.eclipse.swt.layout.*; +import java.io.File; +import java.io.UnsupportedEncodingException; +import java.util.Locale; +import java.util.StringTokenizer; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.SWTError; +import org.eclipse.swt.SWTException; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.internal.Callback; +import org.eclipse.swt.internal.Converter; +import org.eclipse.swt.internal.Library; +import org.eclipse.swt.internal.gtk.GdkEvent; +import org.eclipse.swt.internal.gtk.LONG; +import org.eclipse.swt.internal.gtk.OS; +import org.eclipse.swt.internal.mozilla.XPCOM; +import org.eclipse.swt.internal.mozilla.XPCOMObject; +import org.eclipse.swt.internal.mozilla.nsEmbedString; +import org.eclipse.swt.internal.mozilla.nsIAppShell; +import org.eclipse.swt.internal.mozilla.nsIBaseWindow; +import org.eclipse.swt.internal.mozilla.nsICategoryManager; +import org.eclipse.swt.internal.mozilla.nsIComponentManager; +import org.eclipse.swt.internal.mozilla.nsIComponentRegistrar; +import org.eclipse.swt.internal.mozilla.nsIContextMenuListener; +import org.eclipse.swt.internal.mozilla.nsICookie; +import org.eclipse.swt.internal.mozilla.nsICookieManager; +import org.eclipse.swt.internal.mozilla.nsID; +import org.eclipse.swt.internal.mozilla.nsIDOMEvent; +import org.eclipse.swt.internal.mozilla.nsIDOMMouseEvent; +import org.eclipse.swt.internal.mozilla.nsIDOMWindow; +import org.eclipse.swt.internal.mozilla.nsIDirectoryService; +import org.eclipse.swt.internal.mozilla.nsIDocShell; +import org.eclipse.swt.internal.mozilla.nsIEmbeddingSiteWindow; +import org.eclipse.swt.internal.mozilla.nsIFile; +import org.eclipse.swt.internal.mozilla.nsIIOService; +import org.eclipse.swt.internal.mozilla.nsIInterfaceRequestor; +import org.eclipse.swt.internal.mozilla.nsILocalFile; +import org.eclipse.swt.internal.mozilla.nsIPrefBranch; +import org.eclipse.swt.internal.mozilla.nsIPrefLocalizedString; +import org.eclipse.swt.internal.mozilla.nsIPrefService; +import org.eclipse.swt.internal.mozilla.nsIProperties; +import org.eclipse.swt.internal.mozilla.nsIRequest; +import org.eclipse.swt.internal.mozilla.nsIServiceManager; +import org.eclipse.swt.internal.mozilla.nsISimpleEnumerator; +import org.eclipse.swt.internal.mozilla.nsISupports; +import org.eclipse.swt.internal.mozilla.nsISupportsWeakReference; +import org.eclipse.swt.internal.mozilla.nsITooltipListener; +import org.eclipse.swt.internal.mozilla.nsIURI; +import org.eclipse.swt.internal.mozilla.nsIURIContentListener; +import org.eclipse.swt.internal.mozilla.nsIWeakReference; +import org.eclipse.swt.internal.mozilla.nsIWebBrowser; +import org.eclipse.swt.internal.mozilla.nsIWebBrowserChrome; +import org.eclipse.swt.internal.mozilla.nsIWebBrowserChromeFocus; +import org.eclipse.swt.internal.mozilla.nsIWebBrowserFocus; +import org.eclipse.swt.internal.mozilla.nsIWebBrowserStream; +import org.eclipse.swt.internal.mozilla.nsIWebNavigation; +import org.eclipse.swt.internal.mozilla.nsIWebProgress; +import org.eclipse.swt.internal.mozilla.nsIWebProgressListener; +import org.eclipse.swt.internal.mozilla.nsIWindowWatcher; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Widget; /** * Instances of this class implement the browser user interface @@ -175,40 +235,43 @@ * - mozilla17profile/mozilla17profile-gcc should succeed for mozilla 1.7.x and firefox * - mozilla18profile/mozilla18profile-gcc should succeed for mozilla 1.8.x (seamonkey) */ - try { - Library.loadLibrary ("swt-mozilla14-profile"); //$NON-NLS-1$ - usingProfile = true; - } catch (UnsatisfiedLinkError e1) { - try { - Library.loadLibrary ("swt-mozilla17-profile"); //$NON-NLS-1$ - usingProfile = true; - } catch (UnsatisfiedLinkError e2) { - try { - Library.loadLibrary ("swt-mozilla14-profile-gcc3"); //$NON-NLS-1$ - usingProfile = true; - } catch (UnsatisfiedLinkError e3) { - try { - Library.loadLibrary ("swt-mozilla17-profile-gcc3"); //$NON-NLS-1$ - usingProfile = true; - } catch (UnsatisfiedLinkError e4) { - try { - Library.loadLibrary ("swt-mozilla18-profile"); //$NON-NLS-1$ - usingProfile = true; - } catch (UnsatisfiedLinkError e5) { - try { - Library.loadLibrary ("swt-mozilla18-profile-gcc3"); //$NON-NLS-1$ - usingProfile = true; - } catch (UnsatisfiedLinkError e6) { - /* - * fail silently, the Browser will still work without profile support - * but will abort any attempts to navigate to HTTPS pages - */ - } - } - } - } - } - } +// Library.loadLibrary("swt-mozilla17-profile"); + // We build the profile stuff without the need for a separate DSO + usingProfile = true; +// try { +// Library.loadLibrary ("swt-mozilla14-profile"); //$NON-NLS-1$ +// usingProfile = true; +// } catch (UnsatisfiedLinkError e1) { +// try { +// Library.loadLibrary ("swt-mozilla17-profile"); //$NON-NLS-1$ +// usingProfile = true; +// } catch (UnsatisfiedLinkError e2) { +// try { +// Library.loadLibrary ("swt-mozilla14-profile-gcc3"); //$NON-NLS-1$ +// usingProfile = true; +// } catch (UnsatisfiedLinkError e3) { +// try { +// Library.loadLibrary ("swt-mozilla17-profile-gcc3"); //$NON-NLS-1$ +// usingProfile = true; +// } catch (UnsatisfiedLinkError e4) { +// try { +// Library.loadLibrary ("swt-mozilla18-profile"); //$NON-NLS-1$ +// usingProfile = true; +// } catch (UnsatisfiedLinkError e5) { +// try { +// Library.loadLibrary ("swt-mozilla18-profile-gcc3"); //$NON-NLS-1$ +// usingProfile = true; +// } catch (UnsatisfiedLinkError e6) { +// /* +// * fail silently, the Browser will still work without profile support +// * but will abort any attempts to navigate to HTTPS pages +// */ +// } +// } +// } +// } +// } +// } int /*long*/[] retVal = new int /*long*/[1]; nsEmbedString pathString = new nsEmbedString(mozillaPath); @@ -218,11 +281,11 @@ if (retVal[0] == 0) error(XPCOM.NS_ERROR_NULL_POINTER); nsILocalFile localFile = new nsILocalFile(retVal[0]); - rc = XPCOM.NS_InitEmbedding(localFile.getAddress(), 0); + rc = XPCOM.NS_InitXPCOM3(0, localFile.getAddress(), 0, 0, 0); localFile.Release(); if (rc != XPCOM.NS_OK) { dispose(); - SWT.error(SWT.ERROR_NO_HANDLES, null, " [NS_InitEmbedding "+mozillaPath+" error "+rc+"]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + SWT.error(SWT.ERROR_NO_HANDLES, null, " [NS_InitXPCOM3 "+mozillaPath+" error "+rc+"]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } rc = XPCOM.NS_GetComponentManager(result); @@ -283,7 +346,7 @@ rc = properties.Get(buffer, nsIFile.NS_IFILE_IID, result); if (rc != XPCOM.NS_OK) error(rc); if (result[0] == 0) error(XPCOM.NS_NOINTERFACE); - properties.Release(); + // properties.Release() is now after the Set below nsIFile profileDir = new nsIFile(result[0]); result[0] = 0; @@ -305,24 +368,15 @@ pathString.dispose(); // profileDir = new nsIFile(result[0]); - result[0] = 0; - - rc = XPCOM_PROFILE.NS_NewProfileDirServiceProvider(true, result); + + // Set the profile dir property so that it's initialized for + // things like password manager and https + buffer = Converter.wcsToMbcs(null, XPCOM.NS_APP_USER_PROFILE_50_DIR, true); + rc = properties.Set(buffer, profileDir.getAddress()); if (rc != XPCOM.NS_OK) error(rc); - if (result[0] == 0) error(XPCOM.NS_NOINTERFACE); - - final int /*long*/ dirServiceProvider = result[0]; + properties.Release(); + result[0] = 0; - rc = XPCOM_PROFILE.ProfileDirServiceProvider_Register(dirServiceProvider); - if (rc != XPCOM.NS_OK) error(rc); - rc = XPCOM_PROFILE.ProfileDirServiceProvider_SetProfileDir(dirServiceProvider, profileDir.getAddress()); - if (rc != XPCOM.NS_OK) error(rc); - - getDisplay().addListener(SWT.Dispose, new Listener() { - public void handleEvent(Event e) { - XPCOM_PROFILE.ProfileDirServiceProvider_Shutdown(dirServiceProvider); - } - }); } /* @@ -1354,27 +1408,6 @@ tip = null; BrowserCount--; - /* - * This code is intentionally commented. It is not possible to reinitialize - * Mozilla once it has been terminated. NS_InitEmbedding always fails after - * NS_TermEmbedding has been called. The workaround is to call NS_InitEmbedding - * once and never call NS_TermEmbedding. - */ -// if (BrowserCount == 0) { -// if (AppShell != null) { -// // Shutdown the appshell service. -// rc = AppShell.Spindown(); -// if (rc != XPCOM.NS_OK) error(rc); -// AppShell.Release(); -// AppShell = null; -// } -// WindowCreator.Release(); -// WindowCreator = null; -// PromptService.Release(); -// PromptService = null; -// XPCOM.NS_TermEmbedding(); -// mozilla = false; -// } } void Activate() { Index: Eclipse_SWT_Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java,v retrieving revision 1.48.2.1 diff -u -r1.48.2.1 XPCOM.java --- Eclipse_SWT_Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java 26 Jul 2006 16:33:23 -0000 1.48.2.1 +++ Eclipse_SWT_Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java 29 Sep 2006 13:21:49 -0000 @@ -89,6 +89,7 @@ public static final int NS_ERROR_HTMLPARSER_UNRESOLVEDDTD = 0x804e03f3; public static final int NS_ERROR_FILE_NOT_FOUND = 0x80520012; public static final String NS_APP_APPLICATION_REGISTRY_DIR = "AppRegD"; //$NON-NLS-1$ + public static final String NS_APP_USER_PROFILE_50_DIR = "ProfD"; //$NON-NLS-1$ public static final native void memmove(nsID dest, int /*long*/ src, int nbytes); public static final native void memmove(int /*long*/ dest, nsID src, int nbytes); @@ -103,7 +104,6 @@ public static final native void memmove(byte[] dest, char[] src, int nbytes); public static final native int NS_GetComponentManager(int /*long*/[] result); public static final native int NS_GetServiceManager(int /*long*/[] result); -public static final native int NS_InitEmbedding(int /*long*/ aMozBinDirectory, int /*long*/ aAppFileLocProvider); +public static final native int NS_InitXPCOM3(int /*long*/ result, int /*long*/ binDirectory, int /*long*/ appFileLocationProvider, int /*long*/ staticComponents, int componentCount); public static final native int NS_NewLocalFile(int /*long*/ path, boolean followLinks, int /*long*/[] result); -public static final native int NS_TermEmbedding(); public static final native int strlen_PRUnichar(int /*long*/ s);