1 diff -urN yelp-2.30.2/m4/gecko.m4 yelp-2.30.2.new//m4/gecko.m4
2 --- yelp-2.30.2/m4/gecko.m4 2010-08-03 21:41:59.000000000 +0200
3 +++ yelp-2.30.2.new//m4/gecko.m4 2011-03-24 20:18:42.866573902 +0100
5 _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}-xpcom`"
6 _GECKO_NSPR=no # XXX asac: this is currently a blind guess and should be a AC test
8 - _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`/unstable"
9 - _GECKO_CFLAGS="`$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --cflags ${gecko_cv_gecko}-unstable`"
10 + _GECKO_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir ${gecko_cv_gecko}`"
11 + _GECKO_CFLAGS="`$PKG_CONFIG --cflags ${gecko_cv_gecko}` `$PKG_CONFIG --cflags ${gecko_cv_gecko}`"
12 _GECKO_LIBDIR="`$PKG_CONFIG --variable=sdkdir ${gecko_cv_gecko}`/bin"
13 _GECKO_HOME=$with_gecko_home
14 _GECKO_PREFIX="`$PKG_CONFIG --variable=prefix ${gecko_cv_gecko}`"
16 _SAVE_CPPFLAGS="$CPPFLAGS"
17 CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS"
19 -AC_MSG_CHECKING([[whether we have a gtk 2 gecko build]])
22 - [[#include <mozilla-config.h>
26 - if (strcmp (MOZ_DEFAULT_TOOLKIT, "gtk2") == 0 ||
27 - strcmp (MOZ_DEFAULT_TOOLKIT, "cairo-gtk2") == 0)
28 - return EXIT_SUCCESS;
30 - return EXIT_FAILURE;
34 - [AC_MSG_ERROR([[This program needs a gtk 2 gecko build]])],
36 -AC_MSG_RESULT([$result])
38 AC_MSG_CHECKING([[whether we have a gecko debug build]])
42 #ifdef MOZILLA_1_8_BRANCH
45 -if (strncmp (MOZILLA_VERSION, "1.9", strlen ("1.9")) == 0) {
46 +if (strncmp (MOZILLA_VERSION, "2.0", strlen ("2.0")) == 0) {
48 +} else if (strncmp (MOZILLA_VERSION, "1.9", strlen ("1.9")) == 0) {
50 } else if (strncmp (MOZILLA_VERSION, "1.8", strlen ("1.8")) == 0) {
54 gecko_cv_gecko_version_int="$(echo "$gecko_cv_gecko_version" | $AWK -F . '{print [$]1 * 1000000 + [$]2 * 1000 + [$]3}')"
56 -if test "$gecko_cv_gecko_version_int" -lt "1007000" -o "$gecko_cv_gecko_version_int" -gt "1009000"; then
57 +if test "$gecko_cv_gecko_version_int" -lt "1007000" -o "$gecko_cv_gecko_version_int" -gt "2000000"; then
58 AC_MSG_ERROR([Gecko version $gecko_cv_gecko_version is not supported!])
64 if test "${gecko_cv_gecko}" = "libxul-embedding" -o "${gecko_cv_gecko}" = "libxul"; then
65 - PKG_CHECK_EXISTS([${gecko_cv_gecko} >= 1.9.1],[gecko_cv_have_gecko_1_9_1=yes gecko_cv_gecko_version="1.9.1" gecko_cv_gecko_version_int=1009001],[gecko_cv_have_gecko_1_9_1=no])
66 + PKG_CHECK_EXISTS([${gecko_cv_gecko} >= 1.9.1],
67 + [ gecko_cv_have_gecko_1_9_1=yes
68 + if test "$gecko_cv_gecko_version_int" -lt "2000000"; then gecko_cv_gecko_version="1.9.1" gecko_cv_gecko_version_int=1009001; fi
69 + ],[gecko_cv_have_gecko_1_9_1=no])
71 gecko_cv_have_gecko_1_9_1=no
74 AC_DEFINE([HAVE_GECKO_1_9_1],[1],[Define if we have gecko 1.9.1])
77 +if test "$gecko_cv_gecko_version_int" -ge "2000000"; then
78 + AC_DEFINE([HAVE_GECKO_2_0],[1],[Define if we have gecko 2.0])
79 + gecko_cv_have_gecko_2_0=yes
82 fi # if gecko_cv_have_gecko
84 $1[]_VERSION=$gecko_cv_gecko_version
86 if ! test "$gecko_cv_have_xpcom_glue" = "yes"; then
87 gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul"
89 - gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue"
90 + gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue -ldl"
93 gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed"
95 AM_CONDITIONAL([HAVE_GECKO_1_8_1],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1008001"])
96 AM_CONDITIONAL([HAVE_GECKO_1_9],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_gecko_version_int" -ge "1009000"])
97 AM_CONDITIONAL([HAVE_GECKO_1_9_1],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_have_gecko_1_9_1" = "yes"])
98 +AM_CONDITIONAL([HAVE_GECKO_2_0],[test "$gecko_cv_have_gecko" = "yes" -a "$gecko_cv_have_gecko_2_0" = "yes"])
99 AM_CONDITIONAL([HAVE_GECKO_HOME],[test "x$_GECKO_HOME" != "x"])
100 AM_CONDITIONAL([HAVE_GECKO_DEBUG],[test "$gecko_cv_have_debug" = "yes"])
101 AM_CONDITIONAL([HAVE_GECKO_XPCOM_GLUE],[test "$gecko_cv_have_xpcom_glue" = "yes"])
103 _SAVE_LDFLAGS="$LDFLAGS"
105 if test "${gecko_cv_gecko}" = "libxul-embedding" -o "${gecko_cv_gecko}" = "libxul"; then
106 - CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-unstable)"
107 - CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko}-unstable)"
108 + CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko})"
109 + CXXFLAGS="$CXXFLAGS $_GECKO_EXTRA_CXXFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-other ${gecko_cv_gecko})"
110 LIBS="$LIBS $($PKG_CONFIG --libs ${gecko_cv_gecko}) -ldl"
112 CPPFLAGS="$CPPFLAGS $_GECKO_EXTRA_CPPFLAGS $_GECKO_CFLAGS $($PKG_CONFIG --cflags-only-I ${gecko_cv_gecko}-xpcom)"
113 diff -urN yelp-2.30.2/src/yelp-gecko-services.cpp yelp-2.30.2.new//src/yelp-gecko-services.cpp
114 --- yelp-2.30.2/src/yelp-gecko-services.cpp 2010-08-03 21:41:59.000000000 +0200
115 +++ yelp-2.30.2.new//src/yelp-gecko-services.cpp 2011-03-24 20:12:54.059907235 +0100
117 #include <nsIComponentManager.h>
118 #include <nsComponentManagerUtils.h>
119 #include <nsIComponentRegistrar.h>
120 +#ifndef HAVE_GECKO_2_0
121 #include <nsIGenericFactory.h>
123 +#include <nsIFactory.h>
125 #include <nsILocalFile.h>
126 #include <nsIPrintSettings.h>
127 #include <nsServiceManagerUtils.h>
130 /* component registration */
132 +#ifndef HAVE_GECKO_2_0
134 NS_GENERIC_FACTORY_CONSTRUCTOR(GPrintingPromptService)
136 static const nsModuleComponentInfo sAppComps[] = {
137 @@ -462,3 +468,115 @@
145 + * Adapted from code from ./embedding/browser/activex/src/control/PromptService.cpp in Firefox
148 +//*****************************************************************************
149 +// GPrintingPromptServiceFactory
150 +//*****************************************************************************
152 +class GPrintingPromptServiceFactory : public nsIFactory
158 + GPrintingPromptServiceFactory();
159 + virtual ~GPrintingPromptServiceFactory();
162 +//*****************************************************************************
164 +NS_IMPL_ISUPPORTS1(GPrintingPromptServiceFactory, nsIFactory)
166 +GPrintingPromptServiceFactory::GPrintingPromptServiceFactory()
170 +GPrintingPromptServiceFactory::~GPrintingPromptServiceFactory()
174 +NS_IMETHODIMP GPrintingPromptServiceFactory::CreateInstance(nsISupports *aOuter, const nsIID & aIID, void **aResult)
176 + NS_ENSURE_ARG_POINTER(aResult);
179 + GPrintingPromptService *inst = new GPrintingPromptService;
181 + return NS_ERROR_OUT_OF_MEMORY;
183 + nsresult rv = inst->QueryInterface(aIID, aResult);
185 + // We didn't get the right interface, so clean up
192 +NS_IMETHODIMP GPrintingPromptServiceFactory::LockFactory(PRBool lock)
197 +//*****************************************************************************
199 +nsresult NS_NewPrintingPromptServiceFactory(nsIFactory** aFactory)
201 + NS_ENSURE_ARG_POINTER(aFactory);
202 + *aFactory = nsnull;
204 + GPrintingPromptServiceFactory *result = new GPrintingPromptServiceFactory;
206 + return NS_ERROR_OUT_OF_MEMORY;
209 + *aFactory = result;
215 + * End of adapted code.
218 +static NS_DEFINE_CID(kGPrintingPromptServiceCID, G_PRINTINGPROMPTSERVICE_CID);
221 +yelp_register_printing ()
224 + nsCOMPtr<nsIComponentRegistrar> cr;
225 + rv = NS_GetComponentRegistrar(getter_AddRefs(cr));
226 + NS_ENSURE_SUCCESS (rv, );
228 + nsCOMPtr<nsIComponentManager> cm;
229 + rv = NS_GetComponentManager (getter_AddRefs (cm));
230 + NS_ENSURE_SUCCESS (rv, );
232 + nsCOMPtr<nsIFactory> componentFactory;
233 + rv = NS_NewPrintingPromptServiceFactory(getter_AddRefs(componentFactory));
235 + if (NS_FAILED(rv) || !componentFactory)
237 + g_warning ("Failed to make a factory for %s\n", G_PRINTINGPROMPTSERVICE_CLASSNAME);
241 + rv = cr->RegisterFactory(kGPrintingPromptServiceCID,
242 + G_PRINTINGPROMPTSERVICE_CLASSNAME,
243 + G_PRINTINGPROMPTSERVICE_CONTRACTID,
247 + g_warning ("Failed to register %s\n", G_PRINTINGPROMPTSERVICE_CLASSNAME);
253 diff -urN yelp-2.30.2/src/yelp-gecko-utils.cpp yelp-2.30.2.new//src/yelp-gecko-utils.cpp
254 --- yelp-2.30.2/src/yelp-gecko-utils.cpp 2010-08-03 21:41:59.000000000 +0200
255 +++ yelp-2.30.2.new//src/yelp-gecko-utils.cpp 2011-03-24 20:12:54.059907235 +0100
259 static const GREVersionRange greVersion = {
265 char xpcomLocation[PATH_MAX];
266 rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcomLocation, sizeof (xpcomLocation));