Closed Bug 103549 Opened 23 years ago Closed 23 years ago

Opening javascript:window.close() crash

Categories

(Core Graveyard :: Embedding: GTK Widget, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: mpgritti, Assigned: mscott)

References

Details

Attachments

(1 file)

If I open the url javascript:window.close() with galeon and TestGtkEmbed when
only one window is opened it crashes. Mozilla works correctly.
A stack trace is available at:
http://bugzilla.gnome.org/show_bug.cgi?id=61883
Blocks: 98993
Happens for me too with galeon 0.12.1-1 on top of mozilla-browser 0.9.4-4 from
debian/unstable.
There's some bad uriloader/xpcom/docshell interaction going on here.  Here's a
stack trace:

#0  0x4050aa01 in __kill () from /lib/i686/libc.so.6
#1  0x402295bb in raise (sig=6) at signals.c:65
#2  0x4050bf82 in abort () at ../sysdeps/generic/abort.c:88
#3  0x401e32a3 in PR_Assert () at prlog.c:495
#4  0x401fa847 in PR_Lock (lock=0x0) at ptsynch.c:182
#5  0x40161dec in NR_RegClose (hReg=0x80d1208) at reg.c:2422
#6  0x40130bf1 in nsRegistry::Close (this=0x80bb7f0) at nsRegistry.cpp:618
#7  0x4013059a in nsRegistry::~nsRegistry (this=0x80bb7f0, __in_chrg=3)
    at nsRegistry.cpp:383
#8  0x4012fd43 in nsRegistry::Release (this=0x80bb7f0) at nsRegistry.cpp:360
#9  0x4019550e in nsCOMPtr<nsIRegistry>::~nsCOMPtr (this=0x80bddd8, 
    __in_chrg=2) at ../../dist/include/xpcom/nsCOMPtr.h:490
#10 0x40133b13 in nsCategoryManager::~nsCategoryManager (this=0x80bdd90, 
    __in_chrg=3) at nsCategoryManager.cpp:244
#11 0x40133249 in nsCategoryManager::Release (this=0x80bdd90)
    at nsCategoryManager.cpp:167
#12 0x40192d02 in nsCOMPtr<nsICategoryManager>::~nsCOMPtr (this=0x815bb7c, 
    __in_chrg=2) at ../../dist/include/xpcom/nsCOMPtr.h:490
#13 0x419468bb in nsDSURIContentListener::~nsDSURIContentListener (
    this=0x815bb68, __in_chrg=3) at nsDSURIContentListener.cpp:41
#14 0x41946a4a in nsDSURIContentListener::Release (this=0x815bb68)
    at nsDSURIContentListener.cpp:57
#15 0x40042622 in nsCOMPtr<nsIURIContentListener>::~nsCOMPtr (this=0xbfffe0d0, 
    __in_chrg=2) at ../../../../dist/include/xpcom/nsCOMPtr.h:490
#16 0x4074db58 in nsURILoader::OpenURIVia (this=0x815bb38, channel=0x82dc000, 
    aCommand=0, aWindowContext=0x8117010, aLocalIP=0) at nsURILoader.cpp:548
#17 0x4074d8cd in nsURILoader::OpenURI (this=0x815bb38, channel=0x82dc000, 
    aCommand=0, aWindowContext=0x8117010) at nsURILoader.cpp:506
#18 0x419374c9 in nsDocShell::DoChannelLoad (this=0x8117010, 
    aChannel=0x82dc000, aLoadCmd=0, aURILoader=0x815bb38)
    at nsDocShell.cpp:4821
#19 0x41936d08 in nsDocShell::DoURILoad (this=0x8117010, aURI=0x82dbf88, 
    aReferrerURI=0x0, aOwner=0x0, aLoadCmd=0, aPostData=0x0, aHeadersData=0x0)
    at nsDocShell.cpp:4604
#20 0x41935e84 in nsDocShell::InternalLoad (this=0x8117010, aURI=0x82dbf88, 
    aReferrer=0x0, aOwner=0x0, aInheritOwner=1, aWindowTarget=0xbfffe4f8, 
    aPostData=0x0, aHeadersData=0x0, aLoadType=1, aSHEntry=0x0)
    at nsDocShell.cpp:4418
#21 0x41924143 in nsDocShell::LoadURI (this=0x8117010, aURI=0x82dbf88, 
    aLoadInfo=0x0, aLoadFlags=0) at nsDocShell.cpp:579
#22 0x4192c50f in nsDocShell::LoadURI (this=0x8117010, aURI=0x8112400, 
    aLoadFlags=0) at nsDocShell.cpp:2254
#23 0x4185af13 in nsWebBrowser::LoadURI (this=0x816b2d0, aURI=0x8112400, 
    aLoadFlags=0) at nsWebBrowser.cpp:571
#24 0x40038e15 in EmbedPrivate::LoadCurrentURI (this=0x806ade8)
    at EmbedPrivate.cpp:322
#25 0x40036236 in gtk_moz_embed_load_url (embed=0x806ada0, 
    url=0x82db490 "javascript:window.close()") at gtkmozembed2.cpp:725
#26 0x0804b7fc in url_activate_cb (widget=0x807a808, browser=0x806edc8)
    at TestGtkEmbed.cpp:572
#27 0x402cede1 in gtk_marshal_NONE__NONE ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#28 0x40302436 in gtk_handlers_run ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#29 0x4030176d in gtk_signal_real_emit ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#30 0x402ff525 in gtk_signal_emit ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#31 0x40339cd0 in gtk_widget_activate ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#32 0x402a2818 in gtk_entry_key_press ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#33 0x402ceaec in gtk_marshal_BOOL__POINTER ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#34 0x403017ad in gtk_signal_real_emit ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#35 0x402ff525 in gtk_signal_emit ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#36 0x40339b89 in gtk_widget_event ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#37 0x4034221f in gtk_window_key_press_event ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#38 0x402ceaec in gtk_marshal_BOOL__POINTER ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#39 0x403017ad in gtk_signal_real_emit ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#40 0x402ff525 in gtk_signal_emit ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#41 0x40339b89 in gtk_widget_event ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#42 0x402ce9c8 in gtk_propagate_event ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#43 0x402cda6f in gtk_main_do_event ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#44 0x41714c03 in handle_gdk_event (event=0x82d99a8, data=0x0)
    at nsGtkEventHandler.cpp:994
#45 0x4037ed7f in gdk_event_dispatch ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#46 0x403b1773 in g_main_dispatch ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#47 0x403b1d39 in g_main_iterate ()
    at ../../../dist/include/xpcom/nsCOMPtr.h:410
#48 0x403b1eec in g_main_run () at ../../../dist/include/xpcom/nsCOMPtr.h:410
#49 0x402cd333 in gtk_main () at ../../../dist/include/xpcom/nsCOMPtr.h:410
#50 0x08049fc2 in main (argc=1, argv=0xbffff744) at TestGtkEmbed.cpp:200
#51 0x404f8507 in __libc_start_main (main=0x8049e10 <main>, argc=1, 
    ubp_av=0xbffff744, init=0x8049764 <_init>, fini=0x804c850 <_fini>, 
    rtld_fini=0x4000dc14 <_dl_fini>, stack_end=0xbffff73c)
    at ../sysdeps/generic/libc-start.c:129
Assignee: blizzard → mscott
Status: UNCONFIRMED → NEW
Ever confirmed: true
With 0.9.6 the trace looks different.
I tried to trace the problem a bit and it seems like the JSContext is destroyed
after XPCOM is shutted down. So GetService tries to reinitialize XPCOM.

There is a very similar crash also when you close the last galeon window with a
key (ctrl+w). While window.close crash is a minor problem, this is really an
annoying bug :(
The crash was fixed in mozilla 0.9.4, but reapperead in mozilla 0.9.5. 

New Thread 1024 (LWP 760)]
[New Thread 2049 (LWP 766)]
0x408e28f9 in wait4 () from /lib/libc.so.6
#0 0x408e28f9 in wait4 () from /lib/libc.so.6
#1 0x4095b1f0 in __check_rhosts_file () from /lib/libc.so.6
#2 0x408340d3 in waitpid () from /lib/libpthread.so.0
#3 0x4040a2f6 in gnome_init () from /usr/lib/libgnomeui.so.32
#4 0x40831d04 in pthread_sighandler () from /lib/libpthread.so.0
#5 0x4086b848 in sigaction () from /lib/libc.so.6
#6 0x4011aa1f in nsIThread::GetCurrent ()
from /home/daniel/source/mozilla/dist/bin/libxpcom.so
#7 0x4011ab81 in nsIThread::SetMainThread ()
from /home/daniel/source/mozilla/dist/bin/libxpcom.so
#8 0x400c0510 in NS_InitXPCOM2 ()
from /home/daniel/source/mozilla/dist/bin/libxpcom.so
#9 0x4010d67f in NS_GetServiceManager ()
from /home/daniel/source/mozilla/dist/bin/libxpcom.so
#10 0x40106004 in nsGetServiceByCID::operator() ()
from /home/daniel/source/mozilla/dist/bin/libxpcom.so
#11 0x40151b3b in nsCOMPtr_base::assign_from_helper ()
from /home/daniel/source/mozilla/dist/bin/libxpcom.so
#12 0x4113a957 in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libjsdom.so
#13 0x410fec1c in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libjsdom.so
#14 0x410fee0b in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libjsdom.so
#15 0x40151a96 in nsCOMPtr_base::~nsCOMPtr_base ()
from /home/daniel/source/mozilla/dist/bin/libxpcom.so
#16 0x41a571fd in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libjsurl.so
#17 0x41a54362 in _res_opcodes ()
from /home/daniel/source/mozilla/dist/bin/components/libjsurl.so
#18 0x41a55625 in _res_opcodes ()
from /home/daniel/source/mozilla/dist/bin/components/libjsurl.so
#19 0x4101491c in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/liburiloader.so
#20 0x4101617b in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/liburiloader.so
#21 0x41015f27 in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/liburiloader.so
#22 0x40fe8206 in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libdocshell.so
#23 0x40fe79c4 in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libdocshell.so
#24 0x40fe69a8 in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libdocshell.so
#25 0x40fd7d39 in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libdocshell.so
#26 0x40fdf425 in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libdocshell.so
#27 0x40f7e316 in NSGetModule ()
from /home/daniel/source/mozilla/dist/bin/components/libwebbrwsr.so
#28 0x400318d9 in EmbedPrivate::LoadCurrentURI ()
from /home/daniel/source/mozilla/dist/bin/libgtkembedmoz.so
#29 0x4002ea2f in gtk_moz_embed_load_url ()
from /home/daniel/source/mozilla/dist/bin/libgtkembedmoz.so
#30 0x0808569e in embed_load_url (embed=0x8357ce0,
url=0x81b23a0 "javascript:window.close()") at embed.c:453
To reproduce:
- Open a web page
- Click on the page
- Press a key

I have not opened a new bug because the trace is the same. I hope it's ok.
It was another time our fault :( Sorry
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → INVALID
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: