[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