diff -up epiphany-2.21.92/embed/Makefile.am.xulrunner19 epiphany-2.21.92/embed/Makefile.am --- epiphany-2.21.92/embed/Makefile.am.xulrunner19 2008-02-17 13:43:14.000000000 -0500 +++ epiphany-2.21.92/embed/Makefile.am 2008-02-26 00:13:33.000000000 -0500 @@ -117,6 +117,7 @@ libephyembedfactory_la_CPPFLAGS += -I$(G endif libephyembedfactory_la_CFLAGS = \ + $(GECKO_CFLAGS) \ $(DEPENDENCIES_CFLAGS) \ $(AM_CFLAGS) diff -up epiphany-2.21.92/embed/mozilla/mozilla-embed-single.cpp.xulrunner19 epiphany-2.21.92/embed/mozilla/mozilla-embed-single.cpp --- epiphany-2.21.92/embed/mozilla/mozilla-embed-single.cpp.xulrunner19 2008-02-26 00:13:33.000000000 -0500 +++ epiphany-2.21.92/embed/mozilla/mozilla-embed-single.cpp 2008-02-26 00:13:33.000000000 -0500 @@ -33,6 +33,11 @@ #include +#ifdef XPCOM_GLUE +#include +#include +#endif + #include #include #include @@ -374,6 +379,7 @@ mozilla_init_profile (void) profile_path = g_build_filename (ephy_dot_dir (), MOZILLA_PROFILE_DIR, (char *) NULL); + gtk_moz_embed_set_comp_path (profile_path); gtk_moz_embed_set_profile_path (profile_path, MOZILLA_PROFILE_NAME); g_free (profile_path); } @@ -615,6 +621,57 @@ impl_init (EphyEmbedSingle *esingle) NS_LogInit (); #endif + nsresult rv; +#ifdef XPCOM_GLUE + static const GREVersionRange greVersion = { + "1.9a", PR_TRUE, + "1.9.*", PR_TRUE + }; + char xpcomLocation[4096]; + rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096); + if (NS_FAILED (rv)) + { + g_warning ("Could not get gre path!\n"); + return FALSE; + } + + // Startup the XPCOM Glue that links us up with XPCOM. + rv = XPCOMGlueStartup(xpcomLocation); + if (NS_FAILED (rv)) + { + g_warning ("Could not determine locale!\n"); + return FALSE; + } + + rv = GTKEmbedGlueStartup(); + if (NS_FAILED (rv)) + { + g_warning ("Could not startup glue!\n"); + return FALSE; + } + + rv = GTKEmbedGlueStartupInternal(); + if (NS_FAILED (rv)) + { + g_warning ("Could not startup internal glue!\n"); + return FALSE; + } + + char *lastSlash = strrchr(xpcomLocation, '/'); + if (lastSlash) + *lastSlash = '\0'; + + gtk_moz_embed_set_path(xpcomLocation); +#else +#ifdef HAVE_GECKO_1_9 + gtk_moz_embed_set_path (MOZILLA_HOME); +#else + gtk_moz_embed_set_comp_path (MOZILLA_HOME); +#endif +#endif // XPCOM_GLUE + /* Fire up the beast */ + gtk_moz_embed_push_startup (); + /* Pre initialization */ mozilla_init_plugin_path (); @@ -631,8 +688,6 @@ impl_init (EphyEmbedSingle *esingle) gtk_moz_embed_set_directory_service_provider (dp); - /* Fire up the beast */ - gtk_moz_embed_push_startup (); /* FIXME check that it succeeded! */ mozilla_register_components (); diff -up epiphany-2.21.92/embed/mozilla/Makefile.am.xulrunner19 epiphany-2.21.92/embed/mozilla/Makefile.am --- epiphany-2.21.92/embed/mozilla/Makefile.am.xulrunner19 2008-02-17 16:23:30.000000000 -0500 +++ epiphany-2.21.92/embed/mozilla/Makefile.am 2008-02-26 00:13:33.000000000 -0500 @@ -159,6 +159,13 @@ libephymozillaembed_la_CPPFLAGS = \ -DALLOW_PRIVATE_API \ $(AM_CPPFLAGS) +if HAVE_GECKO_XPCOM_GLUE +if HAVE_GECKO_1_9 +libephymozillaembed_la_CPPFLAGS += \ + -DXPCOM_GLUE_USE_NSPR +endif +endif + libephymozillaembed_la_CXXFLAGS = \ $(GECKO_CFLAGS) \ $(DEPENDENCIES_CFLAGS) \ diff -up epiphany-2.21.92/embed/mozilla/AutoModalDialog.cpp.xulrunner19 epiphany-2.21.92/embed/mozilla/AutoModalDialog.cpp --- epiphany-2.21.92/embed/mozilla/AutoModalDialog.cpp.xulrunner19 2008-02-26 00:24:39.000000000 -0500 +++ epiphany-2.21.92/embed/mozilla/AutoModalDialog.cpp 2008-02-26 00:24:58.000000000 -0500 @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include diff -up epiphany-2.21.92/plugins/desktop-file/Makefile.am.xulrunner19 epiphany-2.21.92/plugins/desktop-file/Makefile.am --- epiphany-2.21.92/plugins/desktop-file/Makefile.am.xulrunner19 2008-02-17 13:43:04.000000000 -0500 +++ epiphany-2.21.92/plugins/desktop-file/Makefile.am 2008-02-26 00:13:33.000000000 -0500 @@ -25,8 +25,13 @@ libdesktopfileplugin_la_LIBADD = \ libdesktopfileplugin_la_LDFLAGS = \ -module -avoid-version \ -export-symbols $(srcdir)/plugin.symbols \ - -R$(GECKO_HOME) \ $(AM_LDFLAGS) +if !HAVE_GECKO_XPCOM_GLUE + libdesktopfileplugin_la_LDFLAGS += \ + -R$(GECKO_HOME) \ + $(NULL) +endif + EXTRA_DIST = \ plugin.symbols diff -up epiphany-2.21.92/m4/gecko.m4.xulrunner19 epiphany-2.21.92/m4/gecko.m4 --- epiphany-2.21.92/m4/gecko.m4.xulrunner19 2008-02-17 13:43:04.000000000 -0500 +++ epiphany-2.21.92/m4/gecko.m4 2008-02-26 00:13:33.000000000 -0500 @@ -32,6 +32,7 @@ # VARIABLE: Which gecko was found (e.g. "xulrunnner", "seamonkey", ...) # VARIABLE_FLAVOUR: The flavour of the gecko that was found # VARIABLE_HOME: +# VARIABLE_NSPR: set if nspr is provided by gecko flags # VARIABLE_PREFIX: # VARIABLE_INCLUDE_ROOT: # VARIABLE_VERSION: The version of the gecko that was found @@ -51,7 +52,7 @@ AC_PROG_AWK AC_MSG_CHECKING([which gecko to use]) AC_ARG_WITH([gecko], - AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner@:>@], + AS_HELP_STRING([--with-gecko@<:@=mozilla|firefox|seamonkey|xulrunner|libxul-embedding|libxul@:>@], [Which gecko engine to use (autodetected by default)])) # Backward compat @@ -60,12 +61,15 @@ AC_ARG_WITH([mozilla],[],[with_gecko=$wi gecko_cv_gecko=$with_gecko # Autodetect gecko -_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla" +_geckos="xulrunner firefox mozilla-firefox seamonkey mozilla libxul-embedding libxul" if test -z "$gecko_cv_gecko"; then for lizard in $_geckos; do if $PKG_CONFIG --exists $lizard-xpcom; then gecko_cv_gecko=$lizard break; + elif $PKG_CONFIG --exists $lizard-unstable; then + gecko_cv_gecko=$lizard + break; fi done fi @@ -82,6 +86,14 @@ else gecko_cv_have_gecko=yes fi +AC_MSG_CHECKING([manual gecko home set]) + +AC_ARG_WITH([gecko-home], + AS_HELP_STRING([--with-gecko-home@<:@=[path]@:>@], + [Manually set MOZILLA_FIVE_HOME])) + +gecko_cv_gecko_home=$with_gecko_home + # **************** # Define variables # **************** @@ -93,13 +105,24 @@ mozilla) gecko_cv_gecko_flavour=mozilla seamonkey) gecko_cv_gecko_flavour=mozilla ;; *firefox) gecko_cv_gecko_flavour=toolkit ;; xulrunner) gecko_cv_gecko_flavour=toolkit ;; +libxul*) gecko_cv_gecko_flavour=toolkit ;; esac -_GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`" -_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" -_GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" -_GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`" - +if $PKG_CONFIG --exists ${gecko_cv_gecko}-xpcom; then + _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}-xpcom`" + _GECKO_CFLAGS="-I$_GECKO_INCLUDE_ROOT" + _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" + _GECKO_HOME="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" + _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`" + _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test +else + _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`/unstable" + _GECKO_CFLAGS="`$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --cflags ${gecko_cv_gecko}-unstable`" + _GECKO_LIBDIR="`$PKG_CONFIG --variable=sdkdir ${gecko_cv_gecko}`/bin" + _GECKO_HOME=$with_gecko_home + _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}`" + _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test +fi fi # if gecko_cv_have_gecko if test "$gecko_cv_gecko_flavour" = "toolkit"; then @@ -109,9 +132,11 @@ fi $1[]=$gecko_cv_gecko $1[]_FLAVOUR=$gecko_cv_gecko_flavour $1[]_INCLUDE_ROOT=$_GECKO_INCLUDE_ROOT +$1[]_CFLAGS=$_GECKO_CFLAGS $1[]_LIBDIR=$_GECKO_LIBDIR $1[]_HOME=$_GECKO_HOME $1[]_PREFIX=$_GECKO_PREFIX +$1[]_NSPR=$_GECKO_NSPR # ************************************************************** # This is really gcc-only @@ -182,7 +207,7 @@ if test "$gecko_cv_have_gecko" = "yes"; AC_LANG_PUSH([C++]) _SAVE_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT" +CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS" AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]]) AC_RUN_IFELSE( @@ -215,6 +240,18 @@ AC_COMPILE_IFELSE( [gecko_cv_have_debug=no]) AC_MSG_RESULT([$gecko_cv_have_debug]) +AC_MSG_CHECKING([[whether we have a xpcom glue]]) +AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[ + #ifndef XPCOM_GLUE + #error "no xpcom glue found" + #endif]] + )], + [gecko_cv_have_xpcom_glue=yes], + [gecko_cv_have_xpcom_glue=no]) +AC_MSG_RESULT([$gecko_cv_have_xpcom_glue]) + CPPFLAGS="$_SAVE_CPPFLAGS" AC_LANG_POP([C++]) @@ -226,8 +263,14 @@ if test "$gecko_cv_have_debug" = "yes"; AC_DEFINE([HAVE_GECKO_DEBUG],[1],[Define if gecko is a debug build]) fi +if test "$gecko_cv_have_xpcom_glue" = "yes"; then + AC_DEFINE([HAVE_GECKO_XPCOM_GLUE],[1],[Define if xpcom glue is used]) +fi + fi # if gecko_cv_have_gecko +AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_debug" = "yes"]) +AM_CONDITIONAL([HAVE_GECKO_XPCOM_GLUE],[test "$gecko_cv_have_xpcom_glue" = "yes"]) # *********************** # Check for gecko version @@ -238,7 +281,7 @@ if test "$gecko_cv_have_gecko" = "yes"; AC_LANG_PUSH([C++]) _SAVE_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT" +CPPFLAGS="$CPPFLAGS $_GECKO_CFLAGS" AC_CACHE_CHECK([for gecko version], [gecko_cv_gecko_version], @@ -320,8 +363,11 @@ gecko_cv_glue_libs= gecko_cv_extra_pkg_dependencies= if test "$gecko_cv_gecko_version_int" -ge "1009000"; then - gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul" - gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue_s" + if ! test "$gecko_cv_have_xpcom_glue" = "yes"; then + gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul" + else + gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue" + fi else gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed" fi @@ -350,6 +396,7 @@ AM_CONDITIONAL([HAVE_GECKO_1_7],[test "$ AM_CONDITIONAL([HAVE_GECKO_1_8],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008000"]) AM_CONDITIONAL([HAVE_GECKO_1_8_1],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008001"]) AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1009000"]) +AM_CONDITIONAL([HAVE_GECKO_HOME],[test "x$_GECKO_HOME" != "x"]) ]) # *************************************************************************** @@ -371,10 +418,20 @@ _SAVE_CPPFLAGS="$CPPFLAGS" _SAVE_CXXFLAGS="$CXXFLAGS" _SAVE_LDFLAGS="$LDFLAGS" _SAVE_LIBS="$LIBS" -CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS -I$_GECKO_INCLUDE_ROOT $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)" -CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)" -LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME" -LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)" +if test "${gecko_cv_gecko}" = "libxul-embedding" -o "${gecko_cv_gecko}" = "libxul"; then + CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-unstable)" + CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-unstable)" + LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}) -ldl" +else + CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)" + CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-xpcom)" + LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}-xpcom)" +fi +if test -n "$_GECKO_HOME"; then + LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS -Wl,--rpath=$_GECKO_HOME" +else + LDFLAGS="$LDFLAGS $_GECKO_EXTRA_LDFLAGS" +fi _GECKO_DISPATCH_INCLUDEDIRS="$2" @@ -383,9 +440,11 @@ _GECKO_DISPATCH_INCLUDEDIRS="$2" # Mind you, it's useful to be able to test against uninstalled mozilla builds... _GECKO_DISPATCH_INCLUDEDIRS="$_GECKO_DISPATCH_INCLUDEDIRS dom necko pref" -# Now add them to CPPFLAGS +# Now add them to CPPFLAGS - asac: well ... not anymore since 1.9 -> test whether they exist before adding. for i in $_GECKO_DISPATCH_INCLUDEDIRS; do - CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i" + if test -d "$_GECKO_INCLUDE_ROOT/$i"; then + CPPFLAGS="$CPPFLAGS -I$_GECKO_INCLUDE_ROOT/$i" + fi done m4_indir([$1],m4_shiftn(2,$@)) @@ -438,11 +497,17 @@ AC_DEFUN([GECKO_XPCOM_PROGRAM], #include #include #include + +#ifdef XPCOM_GLUE +#include +#else #include +#endif // XPCOM_GLUE + #include #include #include -#ifdef HAVE_GECKO_1_8 +#if defined(HAVE_GECKO_1_8) || defined(HAVE_GECKO_1_9) #include #else #include @@ -450,16 +515,37 @@ AC_DEFUN([GECKO_XPCOM_PROGRAM], ]] [$1], [[ + +nsresult rv; +#ifdef XPCOM_GLUE + static const GREVersionRange greVersion = { + "1.8", PR_TRUE, + "1.9.*", PR_TRUE + }; + char xpcomLocation[4096]; + rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, 4096); + if (NS_FAILED(rv)) { + exit(123); + } + + // Startup the XPCOM Glue that links us up with XPCOM. + XPCOMGlueStartup(xpcomLocation); + if (NS_FAILED(rv)) { + exit(124); + } +#endif // XPCOM_GLUE + // redirect unwanted mozilla debug output to the bit bucket freopen ("/dev/null", "w", stdout); -nsresult rv; -nsCOMPtr directory; +nsCOMPtr directory = nsnull; +#ifndef XPCOM_GLUE rv = NS_NewNativeLocalFile (NS_LITERAL_CSTRING("$_GECKO_HOME"), PR_FALSE, getter_AddRefs (directory)); if (NS_FAILED (rv) || !directory) { exit (126); } +#endif rv = NS_InitXPCOM2 (nsnull, directory, nsnull); if (NS_FAILED (rv)) { @@ -607,21 +693,22 @@ fi AC_DEFUN([GECKO_XPIDL], [AC_REQUIRE([GECKO_INIT])dnl -_GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" +if test ${gecko_cv_gecko} = "libxul-embedding" -o ${gecko_cv_gecko} = "libxul"; then + _GECKO_LIBDIR="`$PKG_CONFIG pkg-config --variable=sdkdir ${gecko_cv_gecko}`/bin" +else + _GECKO_LIBDIR="`$PKG_CONFIG --variable=libdir ${gecko_cv_gecko}-xpcom`" +fi AC_PATH_PROG([XPIDL],[xpidl],[no],[$_GECKO_LIBDIR:$PATH]) +if test ${gecko_cv_gecko} = "libxul-embedding" -o ${gecko_cv_gecko} = "libxul"; then +XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}`" +else XPIDL_IDLDIR="`$PKG_CONFIG --variable=idldir ${gecko_cv_gecko}-xpcom`" - -# Older geckos don't have this variable, see -# https://bugzilla.mozilla.org/show_bug.cgi?id=240473 - if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then XPIDL_IDLDIR="`echo $_GECKO_LIBDIR | sed -e s!lib!share/idl!`" fi - # Some distributions (Gentoo) have it in unusual places - if test -z "$XPIDL_IDLDIR" -o ! -f "$XPIDL_IDLDIR/nsISupports.idl"; then XPIDL_IDLDIR="$_GECKO_INCLUDE_ROOT/idl" fi diff -up epiphany-2.21.92/configure.ac.xulrunner19 epiphany-2.21.92/configure.ac --- epiphany-2.21.92/configure.ac.xulrunner19 2008-02-25 14:37:07.000000000 -0500 +++ epiphany-2.21.92/configure.ac 2008-02-26 00:13:33.000000000 -0500 @@ -238,12 +238,44 @@ fi case "$gecko_cv_gecko" in xulrunner) min_version=1.8 ;; +libxul*) min_version=1.9 ;; *firefox) min_version=1.5 ;; *) AC_MSG_ERROR([Unsupported gecko "$gecko_cv_gecko"]) ;; esac # Added $gecko_cv_gecko-js for debian xulrunner brokenness -PKG_CHECK_MODULES([GECKO],[${gecko_cv_gecko}-xpcom >= $min_version ${gecko_cv_gecko}-js $gecko_cv_extra_pkg_dependencies]) +if test $gecko_cv_gecko != "libxul-embedding" -a $gecko_cv_gecko != "libxul"; then + PKG_CHECK_MODULES([GECKO],[ ${gecko_cv_gecko}-xpcom >= $min_version ${gecko_cv_gecko}-js $gecko_cv_extra_pkg_dependencies]) +else + GECKO_CFLAGS="$GECKO_CFLAGS -UDEBUG" + GECKO_LIBS="$GECKO_LIBS `pkg-config --libs ${gecko_cv_gecko}`" +fi + +AC_MSG_CHECKING(nspr in gecko) +if test "$GECKO_NSPR" != yes; then + AC_MSG_RESULT(no) + AC_MSG_CHECKING(nspr in system) + gecko_nspr= + if $PKG_CONFIG --exists mozilla-nspr; then + gecko_nspr=mozilla-nspr + elif $PKG_CONFIG --exists ${gecko_cv_gecko}-nspr; then + gecko_nspr=${gecko_cv_gecko}-nspr + fi + if $PKG_CONFIG --exists nspr; then + gecko_nspr=nspr + fi + if test -z "$gecko_nspr"; then + AC_MSG_ERROR([no nspr available]) + fi + + GECKO_CFLAGS="$GECKO_CFLAGS `$PKG_CONFIG --cflags ${gecko_nspr}`" + GECKO_LIBS="$GECKO_LIBS `$PKG_CONFIG --libs ${gecko_nspr}`" + _GECKO_CFLAGS="$GECKO_CFLAGS" + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(yes) +fi + AC_SUBST([GECKO_CFLAGS]) AC_SUBST([GECKO_LIBS]) @@ -533,7 +565,11 @@ AC_ARG_ENABLE([desktop-file-plugin], AC_MSG_RESULT([$enable_desktop_file_plugin]) if test "$enable_desktop_file_plugin" = "yes"; then - PKG_CHECK_MODULES([DESKTOP_FILE_PLUGIN_DEP],[${gecko_cv_gecko}-xpcom ${gecko_cv_gecko}-plugin gtk+-2.0 >= 2.6.0]) + if test "${gecko_cv_gecko}" = "libxul-embedding" -o "${gecko_cv_gecko}" = "libxul"; then + PKG_CHECK_MODULES([DESKTOP_FILE_PLUGIN_DEP],[${gecko_cv_gecko} mozilla-plugin gtk+-2.0 >= 2.6.0]) + else + PKG_CHECK_MODULES([DESKTOP_FILE_PLUGIN_DEP],[${gecko_cv_gecko}-xpcom ${gecko_cv_gecko}-plugin gtk+-2.0 >= 2.6.0]) + fi AC_SUBST([DESKTOP_FILE_PLUGIN_DEP_CFLAGS]) AC_SUBST([DESKTOP_FILE_PLUGIN_DEP_LIBS]) fi diff -up epiphany-2.21.92/src/Makefile.am.xulrunner19 epiphany-2.21.92/src/Makefile.am --- epiphany-2.21.92/src/Makefile.am.xulrunner19 2008-02-17 13:43:05.000000000 -0500 +++ epiphany-2.21.92/src/Makefile.am 2008-02-26 00:13:33.000000000 -0500 @@ -188,6 +188,16 @@ libpyphany_la_LIBADD = \ $(PYGTK_LIBS) endif + +# we do this to force c++ linkage if we are using the glue and +# are running gecko 1.9 because standalone glue embedders that use +# gtk_moz_embed_* need to #include +if HAVE_GECKO_1_9 +if HAVE_GECKO_XPCOM_GLUE +nodist_EXTRA_epiphany_SOURCES = dummy.cpp +endif +endif + epiphany_SOURCES = ephy-main.c epiphany_CPPFLAGS = \ @@ -202,6 +212,7 @@ epiphany_CPPFLAGS = \ epiphany_CFLAGS = \ $(DEPENDENCIES_CFLAGS) \ + $(GECKO_CFLAGS) \ $(DBUS_CFLAGS) \ $(AM_CFLAGS) @@ -222,6 +233,7 @@ endif if WITH_GECKO_ENGINE epiphany_LDADD += \ + $(GECKO_LIBS) \ $(top_builddir)/embed/mozilla/libephymozillaembed.la endif @@ -242,7 +254,9 @@ epiphany_LDADD += $(LIBXUL_LIBS) -lxpcom endif if WITH_GECKO_ENGINE +if !HAVE_GECKO_XPCOM_GLUE epiphany_LDFLAGS += -R$(GECKO_HOME) +endif epiphany_LDADD += \ $(GECKO_LIBS) \ @@ -256,6 +270,7 @@ epiphany_LDADD += \ endif epiphany_LDADD += \ + $(GECKO_LIBS) \ $(DEPENDENCIES_LIBS) \ $(DBUS_LIBS) \ $(LIBINTL) diff -up epiphany-2.21.92/doc/reference/Makefile.am.xulrunner19 epiphany-2.21.92/doc/reference/Makefile.am --- epiphany-2.21.92/doc/reference/Makefile.am.xulrunner19 2008-02-17 18:28:48.000000000 -0500 +++ epiphany-2.21.92/doc/reference/Makefile.am 2008-02-26 00:13:33.000000000 -0500 @@ -207,10 +207,10 @@ DOC_OVERRIDES = if GTK_DOC_USE_LIBTOOL GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS) -GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) +GTKDOC_LD = $(LIBTOOL) --mode=link $(CXX) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) else GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS) -GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) +GTKDOC_LD = $(CXX) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) endif # We set GPATH here; this gives us semantics for GNU make --- epiphany-2.21.92/embed/mozilla/FilePicker.cpp.xulrunner19 2008-02-18 08:41:03.000000000 -0500 +++ epiphany-2.21.92/embed/mozilla/FilePicker.cpp 2008-03-07 18:50:46.000000000 -0500 @@ -32,12 +32,11 @@ #include #include -#include #include #include #include #include -#include +#include #include #include #include @@ -357,22 +356,18 @@ return NS_OK; } -/* readonly attribute nsIFileURL fileURL; */ -NS_IMETHODIMP GFilePicker::GetFileURL(nsIFileURL **aFileURL) +/* readonly attribute nsIURI fileURL; */ +NS_IMETHODIMP GFilePicker::GetFileURL(nsIURI **aFileURL) { NS_ENSURE_TRUE (mDialog, NS_ERROR_FAILURE); - LOG ("GFilePicker::GetFileURL"); + LOG ("GFilePicker::GetFileURI"); nsCOMPtr file; GetFile (getter_AddRefs(file)); NS_ENSURE_TRUE (file, NS_ERROR_FAILURE); - nsCOMPtr fileURL = do_CreateInstance (NS_STANDARDURL_CONTRACTID); - fileURL->SetFile(file); - NS_IF_ADDREF(*aFileURL = fileURL); - - return NS_OK; + return NS_NewFileURI(aFileURL, file); } /* readonly attribute nsISimpleEnumerator files; */