On 24.12.06 17:20:30, Giuseppe D'Angelo wrote: > Please, could you send your modified xulrunner.dpatch (and/or any other file > you've modified) so I can try to build the patched eclipse as well (and you > can tag this RC bug as patched :)?
No problem, my xulrunner.dpath is attached. Andreas -- Tomorrow will be cancelled due to lack of interest.
#! /bin/sh -e ## ## DP: Debian specific patch, converted from eclipse-libswt-mozilla.patch [ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts patch_opts="${patch_opts:--f --no-backup-if-mismatch}" if [ $# -ne 1 ]; then echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" exit 1 fi case "$1" in -patch) patch $patch_opts -p0 < $0;; -unpatch) patch $patch_opts -p0 -R < $0;; *) echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" exit 1;; esac exit 0 @DPATCH@ diff -r -u --exclude='*.rej' --exclude='*.orig' source-tree.orig/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh source-tree/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh --- source-tree/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh.orig 2006-08-05 18:30:50.000000000 +0000 +++ source-tree/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh 2006-08-05 18:33:39.000000000 +0000 @@ -49,6 +49,9 @@ else MODEL=`uname -m` fi + if [ ${MODEL} = 'unknown' ]; then + MODEL=`uname -m` + fi fi case $MODEL in "x86_64") @@ -92,9 +95,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 xulrunner-xpcom && echo YES` = "xYES" ]; then + GECKO_INCLUDES=`pkg-config --cflags xulrunner-xpcom` + GECKO_LIBS=`pkg-config --libs xulrunner-xpcom` export GECKO_INCLUDES export GECKO_LIBS MAKE_MOZILLA=make_mozilla --- source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java.orig 2006-09-21 16:57:23.000000000 +0200 +++ source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java 2006-10-09 18:39:38.154184500 +0200 @@ -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,9 +104,8 @@ 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); public static final native int /*long*/ nsEmbedCString_new(); public static final native int /*long*/ nsEmbedCString_new(byte[] aString, int length); --- source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp.orig 2006-10-09 18:15:24.031307500 +0200 +++ source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp 2006-10-09 18:39:38.154184500 +0200 @@ -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) --- source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp.orig 2006-09-21 16:57:23.000000000 +0200 +++ source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp 2006-10-09 18:39:38.150184250 +0200 @@ -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", --- source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_profile.h.orig 2006-09-21 16:57:32.000000000 +0200 +++ source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_profile.h 2006-10-09 18:39:38.150184250 +0200 @@ -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 */ --- source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h.orig 2006-09-21 16:57:20.000000000 +0200 +++ source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h 2006-10-09 18:39:38.150184250 +0200 @@ -32,7 +32,6 @@ #define NDEBUG #include "nsXPCOM.h" -#include "nsEmbedAPI.h" #include "nsEmbedString.h" #include "nsIInputStream.h" #include "nsISupportsUtils.h" --- source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h.orig 2006-09-21 16:57:34.000000000 +0200 +++ source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h 2006-10-09 18:39:38.154184500 +0200 @@ -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, --- source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java.orig 2006-09-21 16:57:19.000000000 +0200 +++ source-tree/plugins/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java 2006-10-09 18:39:38.154184500 +0200 @@ -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() { diff -u -r1.11.2.1 org.eclipse.swt.internal.mozilla.XPCOM.properties --- source-tree/plugins/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties 26 Jul 2006 16:33:11 -0000 1.11.2.1 +++ source-tree/plugins/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties 29 Sep 2006 04:51:03 -0000 @@ -24,17 +24,18 @@ XPCOM_NS_GetServiceManager= XPCOM_NS_GetServiceManager_0=cast=(nsIServiceManager**) -XPCOM_NS_InitEmbedding= -XPCOM_NS_InitEmbedding_0=cast=(nsILocalFile *) -XPCOM_NS_InitEmbedding_1=cast=(nsIDirectoryServiceProvider *) +XPCOM_NS_InitXPCOM3= +XPCOM_NS_InitXPCOM3_0=cast=(nsIServiceManager**) +XPCOM_NS_InitXPCOM3_1=cast=(nsIFile *) +XPCOM_NS_InitXPCOM3_2=cast=(nsIDirectoryServiceProvider *) +XPCOM_NS_InitXPCOM3_3=cast=(const nsStaticModuleInfo *) +XPCOM_NS_InitXPCOM3_4=cast=(PRUint32) XPCOM_NS_NewLocalFile= XPCOM_NS_NewLocalFile_0=cast=(nsAString *),flags=struct XPCOM_NS_NewLocalFile_1= XPCOM_NS_NewLocalFile_2=cast=(nsILocalFile**) -XPCOM_NS_TermEmbedding= - XPCOM_PR_Free= XPCOM_PR_Free_0=cast=(void *)
pgpSHd2CPFgdf.pgp
Description: PGP signature