[patch] fix plugin with xulrunner-1.9.1
Deepak Bhole
dbhole at redhat.com
Fri Sep 18 05:59:30 PDT 2009
* Matthias Klose <doko at ubuntu.com> [2009-09-17 20:16]:
> patch contributed by TJ, see https://launchpad.net/bugs/359407 for the
> original report.
>
> ok for 6, the 1.6 branch and 7?
>
> Matthias
>
I don't understand, why are there different run-time and build-time
IID's in Ubuntu in the first place? Also, there are multiple uses of
NS_GET_IID in the code, so I don't see why only this one fails. Looks
like an issue with the way xulrunner is being linked, rather than a
problem with the plugin...
The plugin is intended to be run with a compatible version of
xulrunner with which is was build.. if the IID is differing at runtime,
something else is wrong.
Cheers,
Deepak
> PS: No, I don't know the real name of TJ.
> diff -r b9a444f3081b ChangeLog
> --- a/ChangeLog Thu Sep 17 16:15:06 2009 -0400
> +++ b/ChangeLog Fri Sep 18 02:13:00 2009 +0200
> @@ -1,3 +1,9 @@
> +2009-09-18 Matthias Klose <doko at ubuntu.com>
> +
> + * IcedTeaPlugin.cc (IcedTeaPluginFactory::StartAppletviewer): Fix
> + IcedTeaPlugin failure to start with xulrunner 1.9.1 (Launchpad report
> + #359407, contributed by "TJ").
> +
> 2009-09-17 Man Lung Wong <mwong at redhat.com>
>
> * patches/icedtea-jtreg-layoutextragap.patch:
> diff -r b9a444f3081b IcedTeaPlugin.cc
> --- a/IcedTeaPlugin.cc Thu Sep 17 16:15:06 2009 -0400
> +++ b/IcedTeaPlugin.cc Fri Sep 18 02:13:00 2009 +0200
> @@ -3862,6 +3862,8 @@
>
> */
>
> +#include <nsIInterfaceInfoManager.h>
> +
> nsresult
> IcedTeaPluginFactory::StartAppletviewer ()
> {
> @@ -3883,9 +3885,15 @@
> result = file->InitWithNativePath (nsCString (appletviewer_executable));
> PLUGIN_CHECK_RETURN ("init with path", result);
>
> + // run-time query provided through nsIInterfaceInfoManager
> + nsCOMPtr<nsIInterfaceInfoManager> iim(do_GetService(NS_INTERFACEINFOMANAGER_SERVICE_CONTRACTID));
> + // get the run-time IID of nsIProcess (don't rely on a the build-time IID)
> + nsIID *nsIProcessIID;
> + iim->GetIIDForName("nsIProcess", &nsIProcessIID);
> +
> result = manager->CreateInstanceByContractID (NS_PROCESS_CONTRACTID,
> nsnull,
> - NS_GET_IID (nsIProcess),
> + *nsIProcessIID,
> getter_AddRefs (applet_viewer_process));
> PLUGIN_CHECK_RETURN ("create process", result);
>
More information about the distro-pkg-dev
mailing list