Closed
Bug 352178
Opened 18 years ago
Closed 18 years ago
Popup not blocked; exiting popup crashes Firefox
Categories
(Firefox :: General, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 263160
People
(Reporter: robert.bradbury, Unassigned)
References
()
Details
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060903 Firefox/1.5.0.5
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060903 Firefox/1.5.0.5
A popup window appears, usually associated with a specific URL being observed. The window (in Gnome) has a title "Untitled Window". The window has no scroll bar. Closing the window *crashes* firefox, forcing one to restart it and reload the session [1].
The behavior started around mid-August and has been observed on at least 3 web sites -- The NY Times, ZDNET in AU and Newsfactor.com. The popup does not appear immediately -- there may be a delay of minutes to hours before the popup appears. Usually the popup displays the news text of the page being displayed with an advertisement at the top. In the NY Times instance it was a small advertisement for a subscription to the NY Times. It has happened multiple times and is repeatable to the extent that the window behavior is consistent (popping up, same text displayed, crashes Firefox when explicitly closed). Due to the seemingly random delay until the popup appears it may be difficult or impossible to reproduce. The window may also close itself after a random time period (though this is not confirmed). It should be noted that Noscript is normally being used to block Javascript to *all* but a few sites (e.g. gmail.com). Adblock is also installed though the automatic filter updates are not being used.
Upon closing the Window there is *no* Talkback window displayed, instead the terminal which started the Firefox session says:
----------------------------------------------------------------------------
...
(Gecko:21854): Gdk-CRITICAL **: gdk_window_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:21854): Gdk-CRITICAL **: gdk_window_hide: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:21854): Gdk-CRITICAL **: gdk_window_move_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:21854): Gdk-CRITICAL **: gdk_window_show_unraised: assertion `GDK_IS_WINDOW (window)' failed
The application 'Gecko' lost its connection to the display :0.0;
most likely the X server was shut down or you killed/destroyed
the application.
----------------------------------------------------------------------------
Only the "lost its connection" message may be important. The system libraries are compiled with debugging enabled and there are periodic Gecko errors which are a part of normal browsing (though one *could* consider them to be bugs) but these errors do not result in Firefox crashing.
1. If one has 50+ windows open as I often do restarting Firefox can take 15+ minutes of 50-100% CPU utilization (on a Pentium 4) -- so it is *very* annoying to have Firefox crash.
Reproducible: Sometimes
Steps to Reproduce:
1. Go to NY Times (wwww.nytimes.com? or various home page articles 11 Sep 2006)
2. Go to ZDNET AU, esp. article on Samsung home page corruption:
http://www.zdnet.com.au/news/security/soa/Samsung_Web_site_hosts_password_stealing_trojan/0,130061744,339270922,00.htm
3. Go to Newsfactor.com, esp. article on the Mac countering Windows Vista story:
http://www.newsfactor.com/news/Can-the-Mac-Counter-Windows-Vista-/story.xhtml?story_id=12100708D83L
4. Wait!
If these pages still have the evil code it may take some time for the popup window to appear. It is not uncommon for the page to be loaded during the middle of the day but the popup not to occur until the middle of the night (meaning it would be on your desktop the next morning).
Actual Results:
Nothing happens immediately. Pages load and display properly. It takes some time (in one case minutes, but typically hours) before the popup windows appear.
Expected Results:
No popup windows should appear.
Firefox should never crash when one closes a window.
This appears to be a subtle recently developed web site design, esp. by advertisers, "trick" to bypass popup blocking. It may be associated with AJAX/Web 2.0 "enhancements" but I make no claim to understand how this all works.
It is easy to identify sites which immediately create popup windows and fix them -- it is much more difficult to identify tricks if the sites make explicit efforts to introduce random delays (or even precision delays) involving when the popup windows appear.
This does not appear to be the same as other popup bugs, e.g. 342808 or 336329.
Reporter | ||
Comment 1•18 years ago
|
||
The web site @ abcnews.com appears to produce the popup windows sometimes.
For example, the article:
http://www.abcnews.go.com/US/wireStory?id=2478537
produced 2 popup windows.
The Harvard library web site produces the problem on a repeatable basis. The library appears to refresh the home page every several hours at which time a new popup window appears. See:
http://hollis.harvard.edu/
The problem involves an interaction between the initial tab and the popup windows because closing the tab which is responsible for the problem will close the popup windows (without crashing firefox). (The trick is to find the precise tab responsible for the problem if one is dealing with numerous tabs.) There are times when you can select the tab responsible for the problem (i.e. one can select the Hollis tab and the tab outline is outlined) but nothing displays in the window for the tab). In those cases you can still close the tab and close the associated offending popup windows.
There may be a complex interaction between Firefox (esp. Gecko) and the X window manager. The following is a trace of the console output (firefox being started from a terminal window) when the problem is taking place:
(Gecko:2444): Gdk-CRITICAL **: gdk_window_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_hide: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed
(Gecko:2444): Gdk-CRITICAL **: _gdk_window_destroy_hierarchy: assertion `window != NULL' failed
(Gecko:2444): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid cast from `GdkGCX11' to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f657d unexpectedly destroyed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWindow'
(Gecko:2444): Gtk-CRITICAL **: gtk_window_move: assertion `GTK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f65df unexpectedly destroyed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f65de unexpectedly destroyed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f65df unexpectedly destroyed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f65de unexpectedly destroyed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f65dc unexpectedly destroyed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f65db unexpectedly destroyed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f65e4 unexpectedly destroyed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWindow'
(Gecko:2444): Gtk-CRITICAL **: gtk_window_move: assertion `GTK_IS_WINDOW (window)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWindow'
(Gecko:2444): Gtk-CRITICAL **: gtk_window_move: assertion `GTK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_set_back_pixmap: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): GLib-GObject-CRITICAL **: g_object_set_data: assertion `G_IS_OBJECT (object)' failed
(Gecko:2444): GLib-GObject-CRITICAL **: g_object_set_data: assertion `G_IS_OBJECT (object)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_move_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_show_unraised: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_hide: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed
(Gecko:2444): Gdk-CRITICAL **: _gdk_window_destroy_hierarchy: assertion `window != NULL' failed
(Gecko:2444): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid cast from `GdkGCX11' to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid cast from `GdkGCX11' to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): GLib-GObject-WARNING **: invalid cast from `GdkGCX11' to `GtkWidget'
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): Gtk-CRITICAL **: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed
(Gecko:2444): Gdk-WARNING **: GdkWindow 0x36f861b unexpectedly destroyed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_set_user_data: assertion `window != NULL' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_set_back_pixmap: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): GLib-GObject-CRITICAL **: g_object_set_data: assertion `G_IS_OBJECT (object)' failed
(Gecko:2444): GLib-GObject-CRITICAL **: g_object_set_data: assertion `G_IS_OBJECT (object)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_move_resize: assertion `GDK_IS_WINDOW (window)' failed
(Gecko:2444): Gdk-CRITICAL **: gdk_window_show_unraised: assertion `GDK_IS_WINDOW (window)' failed
In particular I would be concerned with the Gdk-WARNING and Gdk-CRITICAL errors...
The libraries are from the Gentoo 2006.1 system:
dev-libs/glib-2.10.3 -- with the "debug" USE flag set; and
x11-libs/gtk+-2.8.19 -- without the "debug" USE flag set.
All of these are compiled using a GCC 3.4.6 standard C/C++ compiler.
Reporter | ||
Comment 2•18 years ago
|
||
Having more experience with this problem, it appears that this is a variant of # 263160 "frames open in new windows leaving the firefox window unusable".
The critical aspect appears to involve the "GdkWindow 0x######### unexpectedly destroyed" error and all subsequent errors due to the browser graphics library interface not properly handling such cases.
Status: UNCONFIRMED → RESOLVED
Closed: 18 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•