aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortmclaugh <tmclaugh@FreeBSD.org>2007-01-04 02:13:55 +0800
committertmclaugh <tmclaugh@FreeBSD.org>2007-01-04 02:13:55 +0800
commitaa0ed1b8305925b371b1692df7c7382d43983bd4 (patch)
treea47207921fc495841341ddb80a944a6dc3fce3a8
parent50553017628224f4458da7e83eed7cbf5030820c (diff)
downloadfreebsd-ports-gnome-aa0ed1b8305925b371b1692df7c7382d43983bd4.tar.gz
freebsd-ports-gnome-aa0ed1b8305925b371b1692df7c7382d43983bd4.tar.zst
freebsd-ports-gnome-aa0ed1b8305925b371b1692df7c7382d43983bd4.zip
- Fixes for internal web browser [1]
- Fixes for internal web browser on amd64 [2] - Convert to USE_GECKO [3] Note: Port defaults to xulrunner as the preffered gecko port because it is the only port which allows the internal web browser to work but eclipse will build using other gecko ports (ie. firefox, mozilla, seamonkey) though it will lack a working internal web browser. An argument can be made that xulrunner should be the only available gecko but maybe 5 people have xulrunner installed and it's another 45 minute mozilla dependency on even my speedy machine. The maintainer mentioned working on getting the internal web browser to work with firefox so I'm leaving well enough alone. When eclipse fully works with firefox the USE_GECKO ordering should probably be revistited. PR: 105581 Submitted by: Maintainer [1], Kurt Miller <lists at intricatesoftware.com> [2], me [3]
-rw-r--r--java/eclipse/Makefile57
-rw-r--r--java/eclipse/distinfo1
-rw-r--r--java/eclipse/files/eclipse.in5
-rw-r--r--java/eclipse/files/patch-plugins-swt-amd64-build.xml45
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-gtk-build.sh6
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-gtk-make_freebsd.mak48
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-Browser.java186
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM.java21
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM.properties25
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM_PROFILE.properties25
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom.cpp143
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom.h12
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_profile.h11
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_stats.cpp21
-rw-r--r--java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_stats.h13
15 files changed, 587 insertions, 32 deletions
diff --git a/java/eclipse/Makefile b/java/eclipse/Makefile
index a265f04d84ba..6709c294000a 100644
--- a/java/eclipse/Makefile
+++ b/java/eclipse/Makefile
@@ -7,7 +7,7 @@
PORTNAME= eclipse
PORTVERSION= 3.2.1
-#PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= java devel
MASTER_SITES= ${MASTER_SITE_ECLIPSE}
MASTER_SITE_SUBDIR= R-${PORTVERSION}-200609210945
@@ -27,6 +27,10 @@ USE_GMAKE= yes
USE_ZIP= yes
USE_GCC= 3.4+
+.if !defined(WITHOUT_MOZILLA)
+USE_GECKO= xulrunner firefox mozilla seamonkey
+.endif
+
USE_JAVA= yes
JAVA_VERSION= 1.5+
JAVA_OS= native
@@ -39,26 +43,6 @@ ECLIPSE_OS= freebsd
ECLIPSE_WS= gtk
-.if !defined(WITHOUT_MOZILLA)
-MAKE_MOZILLA= make_mozilla
-.if defined(WITH_MOZILLA) && ${WITH_MOZILLA} != "mozilla"
-BROWSER= ${WITH_MOZILLA}
-BUILD_DEPENDS+= ${BROWSER}:${PORTSDIR}/www/${BROWSER}
-.else
-BUILD_DEPENDS+= mozilla:${PORTSDIR}/www/mozilla
-BROWSER= mozilla
-.endif
-.else
-BROWSER=
-MAKE_MOZILLA=
-.endif
-.if defined(WITHOUT_CAIRO)
-MAKE_CAIRO=
-.else
-LIB_DEPENDS= cairo.2:${PORTSDIR}/graphics/cairo
-MAKE_CAIRO= make_cairo
-.endif
-
.if defined(WITHOUT_GNOMEVFS)
MAKE_GNOME=
USE_GNOME= gtk20 pkgconfig desktopfileutils
@@ -67,8 +51,23 @@ MAKE_GNOME= make_gnome
USE_GNOME= gtk20 gnomevfs2 libgnome libgnomeui pkgconfig desktopfileutils
.endif
+.if defined(WITHOUT_CAIRO)
+MAKE_CAIRO=
+.else
+LIB_DEPENDS= cairo.2:${PORTSDIR}/graphics/cairo
+MAKE_CAIRO= make_cairo
+.endif
+
.include <bsd.port.pre.mk>
+.if !defined(WITHOUT_MOZILLA)
+MAKE_MOZILLA= make_mozilla
+BROWSER= ${GECKO}
+.else
+BROWSER=
+MAKE_MOZILLA=
+.endif
+
.if (${ARCH} == "amd64")
ECLIPSE_ARCH= amd64
ECLIPSE_SWT= gtk64
@@ -91,12 +90,25 @@ PLIST_FILES= bin/eclipse share/applications/eclipse.desktop
SWTCAIRO=${WRKSRC}/plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library
SWTGTK=${WRKSRC}/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library
+SWTMOZ=${WRKSRC}/plugins/org.eclipse.swt/Eclipse SWT Mozilla
# Manually patch some files with spaces in the path
post-patch:
@${PATCH} ${PATCH_DIST_ARGS} "${SWTGTK}/build.sh" ${FILESDIR}/post-patch-plugins-swt-gtk-build.sh
@${PATCH} ${PATCH_DIST_ARGS} "${SWTGTK}/make_freebsd.mak" ${FILESDIR}/post-patch-plugins-swt-gtk-make_freebsd.mak
@${PATCH} ${PATCH_DIST_ARGS} "${SWTGTK}/os_custom.h" ${FILESDIR}/post-patch-plugins-swt-gtk-os_custom.h
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOZ}/gtk/org/eclipse/swt/browser/Browser.java" ${FILESDIR}/post-patch-plugins-swt-mozilla-Browser.java
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOZ}/common/org/eclipse/swt/internal/mozilla/XPCOM.java" ${FILESDIR}/post-patch-plugins-swt-mozilla-XPCOM.java
+ @${PATCH} ${PATCH_DIST_ARGS} "${WRKSRC}/plugins/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties" ${FILESDIR}/post-patch-plugins-swt-mozilla-XPCOM.properties
+ @${PATCH} ${PATCH_DIST_ARGS} "${WRKSRC}/plugins/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM_PROFILE.properties" ${FILESDIR}/post-patch-plugins-swt-mozilla-XPCOM_PROFILE.properties
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOZ}/common/library/xpcom.cpp" ${FILESDIR}/post-patch-plugins-swt-mozilla-xpcom.cpp
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOZ}/common/library/xpcom.h" ${FILESDIR}/post-patch-plugins-swt-mozilla-xpcom.h
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOZ}/common/library/xpcom_profile.h" ${FILESDIR}/post-patch-plugins-swt-mozilla-xpcom_profile.h
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOZ}/common/library/xpcom_stats.cpp" ${FILESDIR}/post-patch-plugins-swt-mozilla-xpcom_stats.cpp
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOZ}/common/library/xpcom_stats.h" ${FILESDIR}/post-patch-plugins-swt-mozilla-xpcom_stats.h
+ @${REINPLACE_CMD} -e 's|%%GECKO%%|${GECKO}|g' \
+ "${WRKSRC}/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh" \
+ "${WRKSRC}/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak"
do-build:
@(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} \
@@ -109,6 +121,7 @@ do-install:
-e "s+%%ECLIPSE_HOME%%+${PORTDESTDIR}+g" \
-e "s+%%PREFIX%%+${PREFIX}+g" \
-e "s+%%X11BASE%%+${X11BASE}+g" \
+ -e "s+%%LOCALBASE%%+${LOCALBASE}+g" \
-e "s+%%BROWSER%%+${BROWSER}+g" \
-e "s,%%JAVA_VERSION%%,${JAVA_VERSION},g" \
-e "s+%%JAVA_OS%%+${JAVA_OS}+g" \
@@ -118,6 +131,7 @@ do-install:
-e "s+%%ECLIPSE_HOME%%+${PORTDESTDIR}+g" \
-e "s+%%PREFIX%%+${PREFIX}+g" \
${FILESDIR}/eclipse.desktop > ${WRKSRC}/eclipse.desktop.tmp
+ ${MKDIR} ${PREFIX}/share/applications/ || ${TRUE}
${INSTALL_DATA} ${WRKSRC}/eclipse.desktop.tmp ${PREFIX}/share/applications/eclipse.desktop
${INSTALL_PROGRAM} ${WRKSRC}/launchertmp/eclipse ${PREFIX}/eclipse/eclipse
@-update-desktop-database
@@ -127,4 +141,5 @@ do-install:
| ${SED} -ne 's,^,@dirrm ,p' >> ${TMPPLIST}
@echo '@unexec ${PREFIX}/bin/update-desktop-database > /dev/null || /usr/bin/true' >> ${TMPPLIST}
+.include "${.CURDIR}/../../www/mozilla/bsd.gecko.mk"
.include <bsd.port.post.mk>
diff --git a/java/eclipse/distinfo b/java/eclipse/distinfo
index f4aced74f712..c3c451174f3d 100644
--- a/java/eclipse/distinfo
+++ b/java/eclipse/distinfo
@@ -1,4 +1,3 @@
MD5 (eclipse/eclipse-sourceBuild-srcIncluded-3.2.1.zip) = 0fe89e9c7cf07a56c4fe8e2d7f5a394b
SHA256 (eclipse/eclipse-sourceBuild-srcIncluded-3.2.1.zip) = 2d6a0628333d068b6ab678c42f925d71df1c003035543830a30e3ee80fb855c7
SIZE (eclipse/eclipse-sourceBuild-srcIncluded-3.2.1.zip) = 82433420
-
diff --git a/java/eclipse/files/eclipse.in b/java/eclipse/files/eclipse.in
index 588c8815dce5..a1c7576eb288 100644
--- a/java/eclipse/files/eclipse.in
+++ b/java/eclipse/files/eclipse.in
@@ -10,8 +10,9 @@
DEFAULT_JAVA_HOME=%%PREFIX%%
ECLIPSE_HOME=%%ECLIPSE_HOME%%
DEFAULT_JAVA_CMD=java
-MOZILLA_FIVE_HOME=%%LOCALBASE%%/include/%%BROWSER%%
-export MOZILLA_FIVE_HOME
+MOZILLA_FIVE_HOME=%%LOCALBASE%%/lib/%%BROWSER%%
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MOZILLA_FIVE_HOME
+export MOZILLA_FIVE_HOME LD_LIBRARY_PATH
#-----------------------------------------------------------------------------
# Determine configuration settings
diff --git a/java/eclipse/files/patch-plugins-swt-amd64-build.xml b/java/eclipse/files/patch-plugins-swt-amd64-build.xml
new file mode 100644
index 000000000000..abd941e25dab
--- /dev/null
+++ b/java/eclipse/files/patch-plugins-swt-amd64-build.xml
@@ -0,0 +1,45 @@
+--- plugins/org.eclipse.swt.gtk.freebsd.amd64/build.xml.orig Mon Dec 11 01:10:05 2006
++++ plugins/org.eclipse.swt.gtk.freebsd.amd64/build.xml Mon Dec 11 01:20:33 2006
+@@ -39,18 +39,17 @@
+
+ <target name="properties" if="eclipse.running">
+ <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+- <!--compile the jar in org.eclipse.swt.tools-->
+ </target>
+
+ <target name="build.update.jar" depends="init">
+- <delete dir="${temp.folder}"/>
++ <!-- <delete dir="${temp.folder}"/>
+ <mkdir dir="${temp.folder}"/>
+ <antcall target="build.jars"/>
+ <antcall target="gather.bin.parts">
+ <param name="destination.temp.folder" value="${temp.folder}/"/>
+ </antcall>
+ <zip zipfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="false"/>
+- <delete dir="${temp.folder}"/>
++ <delete dir="${temp.folder}"/> -->
+ </target>
+
+ <target name="@dot" depends="init" unless="@dot" description="Create jar: @dot.">
+@@ -222,8 +221,11 @@
+ </target>
+
+ <target name="build.cfiles" depends="build.jars">
++ <!-- compile the jar in org.eclipse.swt.tools -->
++ <ant antfile="build.xml" dir="${toolsplugindir}" inheritAll="false" target="build.jars" />
++
+ <!-- generate the C code from the (64 bit) SWT PI java classes -->
+- <!-- assumes the swt.jar has already been built -->
++ <!-- assumes the swttools.jar has already been built -->
+ <java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.gtk.OS"/><arg value="${basedir}/src/Eclipse SWT PI/gtk/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+ <java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.accessibility.gtk.ATK"/><arg value="${basedir}/src/Eclipse SWT PI/gtk/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+ <java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.cairo.Cairo"/><arg value="${basedir}/src/Eclipse SWT PI/cairo/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+@@ -325,6 +327,8 @@
+ <delete file="${plugin.destination}/${full.name}.jar"/>
+ <delete file="${plugin.destination}/${full.name}.zip"/>
+ <delete dir="${temp.folder}"/>
++ <!-- delete swttools.jar so that it will be compiled in the build.jars target -->
++ <ant antfile="build.xml" dir="${toolsplugindir}" inheritAll="false" target="clean" />
+ </target>
+
+ <target name="refresh" depends="init" if="eclipse.running">
diff --git a/java/eclipse/files/post-patch-plugins-swt-gtk-build.sh b/java/eclipse/files/post-patch-plugins-swt-gtk-build.sh
index 5242e07e782f..516e926da1e5 100644
--- a/java/eclipse/files/post-patch-plugins-swt-gtk-build.sh
+++ b/java/eclipse/files/post-patch-plugins-swt-gtk-build.sh
@@ -68,9 +68,9 @@
- echo " *** Mozilla embedding support will not be compiled."
+if [ ${MAKE_MOZILLA} != "" ]; then
+ 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 %%GECKO%%-xpcom && echo YES` = "xYES" ]; then
++ GECKO_INCLUDES=`pkg-config --cflags %%GECKO%%-xpcom`
++ GECKO_LIBS=`pkg-config --libs %%GECKO%%-xpcom`
+ export GECKO_INCLUDES
+ export GECKO_LIBS
+ MAKE_MOZILLA=make_mozilla
diff --git a/java/eclipse/files/post-patch-plugins-swt-gtk-make_freebsd.mak b/java/eclipse/files/post-patch-plugins-swt-gtk-make_freebsd.mak
index ed565f244462..b9e4b6e9bae7 100644
--- a/java/eclipse/files/post-patch-plugins-swt-gtk-make_freebsd.mak
+++ b/java/eclipse/files/post-patch-plugins-swt-gtk-make_freebsd.mak
@@ -1,5 +1,5 @@
---- plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak.orig Mon Oct 9 16:06:20 2006
-+++ plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak Mon Oct 9 16:27:59 2006
+--- plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak.orig Thu Dec 14 18:01:12 2006
++++ plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak Thu Dec 14 18:03:00 2006
@@ -48,7 +48,7 @@
# Do not use pkg-config to get libs because it includes unnecessary dependencies (i.e. pangoxft-1.0)
@@ -22,9 +22,9 @@
-I. \
-I$(JAVA_HOME)/include \
-I$(JAVA_HOME)/include/freebsd \
-+ -I$(LOCALBASE)/include/mozilla \
-+ -I$(LOCALBASE)/include/mozilla/profdirserviceprovider \
-+ -I$(LOCALBASE)/include/mozilla/string \
++ -I$(LOCALBASE)/include/%%GECKO%% \
++ -I$(LOCALBASE)/include/%%GECKO%%/profdirserviceprovider \
++ -I$(LOCALBASE)/include/%%GECKO%%/string \
+ -I$(LOCALBASE)/include/nspr \
${SWT_PTR_CFLAGS}
MOZILLALIBS = -shared -s -Wl,--version-script=mozilla_exports -Bsymbolic
@@ -48,3 +48,41 @@
#
# SWT libs
+@@ -202,7 +207,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 +225,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
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-Browser.java b/java/eclipse/files/post-patch-plugins-swt-mozilla-Browser.java
new file mode 100644
index 000000000000..f8d7c65b806c
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-Browser.java
@@ -0,0 +1,186 @@
+--- plugins/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java.orig Wed Nov 29 14:32:45 2006
++++ plugins/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java Wed Nov 29 14:42:01 2006
+@@ -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,9 @@
+ * - 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;
+
+ int /*long*/[] retVal = new int /*long*/[1];
+ nsEmbedString pathString = new nsEmbedString(mozillaPath);
+@@ -218,11 +247,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 +312,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 +334,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);
+- }
+- });
+ }
+
+ /*
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM.java b/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM.java
new file mode 100644
index 000000000000..b18678a5aa28
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM.java
@@ -0,0 +1,21 @@
+--- plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java.orig Wed Nov 29 14:11:42 2006
++++ plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java Wed Nov 29 14:14:30 2006
+@@ -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);
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM.properties b/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM.properties
new file mode 100644
index 000000000000..c662b2c6935b
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM.properties
@@ -0,0 +1,25 @@
+--- plugins/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties.orig Wed Nov 29 14:17:21 2006
++++ plugins/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties Wed Nov 29 14:18:14 2006
+@@ -24,16 +24,17 @@
+ 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 *)
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM_PROFILE.properties b/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM_PROFILE.properties
new file mode 100644
index 000000000000..448c9445bd2d
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-XPCOM_PROFILE.properties
@@ -0,0 +1,25 @@
+--- plugins/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM_PROFILE.properties.orig Mon Dec 11 02:02:04 2006
++++ plugins/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM_PROFILE.properties Mon Dec 11 02:03:34 2006
+@@ -24,16 +24,17 @@
+ XPCOM_NS_GetServiceManager=
+ XPCOM_NS_GetServiceManager_0=
+
+-XPCOM_NS_InitEmbedding=
+-XPCOM_NS_InitEmbedding_0=
+-XPCOM_NS_InitEmbedding_1=
++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=
+ XPCOM_NS_NewLocalFile_1=
+ XPCOM_NS_NewLocalFile_2=
+-
+-XPCOM_NS_TermEmbedding=
+
+ XPCOM_PR_Free=
+ XPCOM_PR_Free_0=
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom.cpp b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom.cpp
new file mode 100644
index 000000000000..2c7342aec328
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom.cpp
@@ -0,0 +1,143 @@
+--- plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp.orig Thu Sep 21 10:57:23 2006
++++ plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp Wed Nov 29 19:46:27 2006
+@@ -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)
+@@ -141,7 +131,7 @@
+ {
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, PR_1Malloc_FUNC);
+- rc = (jint)PR_Malloc(arg0);
++ rc = (long)PR_Malloc(arg0);
+ XPCOM_NATIVE_EXIT(env, that, PR_1Malloc_FUNC);
+ return rc;
+ }
+@@ -2091,7 +2081,7 @@
+ {
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsEmbedCString_1get_FUNC);
+- rc = (jint)((nsEmbedCString *)arg0)->get();
++ rc = (long)((nsEmbedCString *)arg0)->get();
+ XPCOM_NATIVE_EXIT(env, that, nsEmbedCString_1get_FUNC);
+ return rc;
+ }
+@@ -2103,7 +2093,7 @@
+ {
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsEmbedCString_1new___FUNC);
+- rc = (jint)new nsEmbedCString();
++ rc = (long)new nsEmbedCString();
+ XPCOM_NATIVE_EXIT(env, that, nsEmbedCString_1new___FUNC);
+ return rc;
+ }
+@@ -2117,7 +2107,7 @@
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsEmbedCString_1new___3BI_FUNC);
+ if (arg0) if ((lparg0 = env->GetByteArrayElements(arg0, NULL)) == NULL) goto fail;
+- rc = (jint)new nsEmbedCString((const char *)lparg0, arg1);
++ rc = (long)new nsEmbedCString((const char *)lparg0, arg1);
+ fail:
+ if (arg0 && lparg0) env->ReleaseByteArrayElements(arg0, lparg0, 0);
+ XPCOM_NATIVE_EXIT(env, that, nsEmbedCString_1new___3BI_FUNC);
+@@ -2131,7 +2121,7 @@
+ {
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsEmbedString_1Length_FUNC);
+- rc = (jint)((nsEmbedString *)arg0)->Length();
++ rc = (long)((nsEmbedString *)arg0)->Length();
+ XPCOM_NATIVE_EXIT(env, that, nsEmbedString_1Length_FUNC);
+ return rc;
+ }
+@@ -2153,7 +2143,7 @@
+ {
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsEmbedString_1get_FUNC);
+- rc = (jint)((nsEmbedString *)arg0)->get();
++ rc = (long)((nsEmbedString *)arg0)->get();
+ XPCOM_NATIVE_EXIT(env, that, nsEmbedString_1get_FUNC);
+ return rc;
+ }
+@@ -2165,7 +2155,7 @@
+ {
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsEmbedString_1new___FUNC);
+- rc = (jint)new nsEmbedString();
++ rc = (long)new nsEmbedString();
+ XPCOM_NATIVE_EXIT(env, that, nsEmbedString_1new___FUNC);
+ return rc;
+ }
+@@ -2179,7 +2169,7 @@
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsEmbedString_1new___3C_FUNC);
+ if (arg0) if ((lparg0 = env->GetCharArrayElements(arg0, NULL)) == NULL) goto fail;
+- rc = (jint)new nsEmbedString(lparg0);
++ rc = (long)new nsEmbedString(lparg0);
+ fail:
+ if (arg0 && lparg0) env->ReleaseCharArrayElements(arg0, lparg0, 0);
+ XPCOM_NATIVE_EXIT(env, that, nsEmbedString_1new___3C_FUNC);
+@@ -2193,7 +2183,7 @@
+ {
+ jboolean rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsID_1Equals_FUNC);
+- rc = (jboolean)((nsID *)arg0)->Equals(*(nsID *)arg1);
++ rc = (long)((nsID *)arg0)->Equals(*(nsID *)arg1);
+ XPCOM_NATIVE_EXIT(env, that, nsID_1Equals_FUNC);
+ return rc;
+ }
+@@ -2207,7 +2197,7 @@
+ jboolean rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsID_1Parse_FUNC);
+ if (arg1) if ((lparg1 = env->GetStringUTFChars(arg1, NULL)) == NULL) goto fail;
+- rc = (jboolean)((nsID *)arg0)->Parse((const char *)lparg1);
++ rc = (long)((nsID *)arg0)->Parse((const char *)lparg1);
+ fail:
+ if (arg1 && lparg1) env->ReleaseStringUTFChars(arg1, lparg1);
+ XPCOM_NATIVE_EXIT(env, that, nsID_1Parse_FUNC);
+@@ -2231,7 +2221,7 @@
+ {
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsID_1new_FUNC);
+- rc = (jint)new nsID();
++ rc = (long)new nsID();
+ XPCOM_NATIVE_EXIT(env, that, nsID_1new_FUNC);
+ return rc;
+ }
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom.h b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom.h
new file mode 100644
index 000000000000..bd7827847566
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom.h
@@ -0,0 +1,12 @@
+--- plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h.orig Wed Nov 29 12:11:18 2006
++++ plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h Wed Nov 29 12:12:03 2006
+@@ -31,8 +31,7 @@
+
+ #define NDEBUG
+
+-#include "nsXPCOM.h"
+-#include "nsEmbedAPI.h"
++#include "nsXPCOM.h"
+ #include "nsEmbedString.h"
+ #include "nsIInputStream.h"
+ #include "nsISupportsUtils.h"
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_profile.h b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_profile.h
new file mode 100644
index 000000000000..254ff2218492
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_profile.h
@@ -0,0 +1,11 @@
+--- plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_profile.h.orig Wed Nov 29 12:08:43 2006
++++ plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_profile.h Wed Nov 29 12:09:33 2006
+@@ -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 */
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_stats.cpp b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_stats.cpp
new file mode 100644
index 000000000000..f8f19cc3d7e4
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_stats.cpp
@@ -0,0 +1,21 @@
+--- plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp.orig Wed Nov 29 12:03:05 2006
++++ plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp Wed Nov 29 12:05:26 2006
+@@ -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",
diff --git a/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_stats.h b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_stats.h
new file mode 100644
index 000000000000..eaa50b76ee8b
--- /dev/null
+++ b/java/eclipse/files/post-patch-plugins-swt-mozilla-xpcom_stats.h
@@ -0,0 +1,13 @@
+--- plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h.orig Wed Nov 29 13:51:40 2006
++++ plugins/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h Wed Nov 29 13:52:23 2006
+@@ -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,