[pygtk] gtkmozembed crashes
Andriy Khavryuchenko
akhavr at khavr.com
Thu Dec 4 07:10:35 WST 2008
Andriy Khavryuchenko написав(ла):
> piotr maliński wrote:
>> try exporting this before running the app:
>> export MOZILLA_FIVE_HOME="/path/to/xulrunner"
>>
>> for example:
>>
>> export MOZILLA_FIVE_HOME="/usr/lib/xulrunner-1.9/"
>
> Sorry, previous emails went personally to Piotr.
>
> Wow! Black magic! Now it segfaults *after* show_all() :)
>
> $ MOZILLA_FIVE_HOME=/usr/lib/xulrunner-devel python /tmp/mozembed.py
> !!! here
> !!! there
> zsh: segmentation fault MOZILLA_FIVE_HOME=/usr/lib/xulrunner-devel
> python /tmp/mozembed.py
>
> Current backtrace is:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xb66ea346 in nsEmbedStream::AppendToStream () from /usr/lib/libxul.so
> (gdb) bt
> #0 0xb66ea346 in nsEmbedStream::AppendToStream () from /usr/lib/libxul.so
No wonder either.
gtkmozembed2.cpp:
void
gtk_moz_embed_render_data(GtkMozEmbed *embed, const char *data,
guint32 len, const char *base_uri,
const char *mime_type)
{
EmbedPrivate *embedPrivate;
g_return_if_fail (embed != NULL);
g_return_if_fail (GTK_IS_MOZ_EMBED(embed));
embedPrivate = (EmbedPrivate *)embed->data;
embedPrivate->OpenStream(base_uri, mime_type);
embedPrivate->AppendToStream((const PRUint8*)data, len);
embedPrivate->CloseStream();
}
Of course, noone checks for return codes...
The same time OpenStream here fails:
nsEmbedStream.cpp:
NS_METHOD
nsEmbedStream::OpenStream(nsIURI *aBaseURI, const nsACString& aContentType)
{
[...]
rv = catMan->GetCategoryEntry("Gecko-Content-Viewers",
flatContentType.get(),
getter_Copies(docLoaderContractID));
// Note: When the category manager does not find an entry for the
requested
// contract ID, it will return NS_ERROR_NOT_AVAILABLE. This conveniently
// matches what this method wants to return in that case.
if (NS_FAILED(rv))
return rv;
nsCOMPtr<nsIDocumentLoaderFactory> docLoaderFactory;
docLoaderFactory = do_GetService(docLoaderContractID.get(), &rv);
Last line fails with code 0x80040154, which is
NS_ERROR_FACTORY_NOT_REGISTERED
Why it could be?
Thanks
--
Sincerely,
Andrey Khavryuchenko http://a.khavr.com/
KDS Software Group http://www.kds.com.ua/
Software Solutions Company
More information about the pygtk
mailing list