Closed Bug 231408 Opened 21 years ago Closed 2 years ago

Attempt to open a 0x0 chrome window silently fails on Linux

Categories

(Core :: XUL, defect)

All
Linux
defect
Not set
major

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: nrm, Unassigned)

References

Details

Attachments

(4 files, 3 obsolete files)

User-Agent:       Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.6) Gecko/20040113
Build Identifier: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.6) Gecko/20040113

Use of a <bindings> section in a template query can
hang Mozilla. Please see the attached files.

This topcrash.xul file, when invoked using -chrome from the
command line, used to cause a crash (1.5). Now it causes an
instance hang, which is rather more inconvenient. It also
erases all desktop icon images from the desktop on some Win
Windows versions (try Win98SE). That is new behaviour.


Reproducible: Always

Steps to Reproduce:
Save attachments to file:///tmp/. Run:

mozilla -chrome file:///tmp/topcrash.xul



Expected Results:  
In theory this code could be a legal template query.
It is certainly a combination most developers will
try at some point.
Attached file topcrash.xul (obsolete) —
Attached file test data - notetaker.rdf (obsolete) —
Attached file test data - notetaker.rdf (obsolete) —
When I perform your steps to reproduce with a current linux trunk build, I
correctly get a 0px by 0px transparent XUL window (since that's what you asked
for).  No hang.  I can't test the icon thing, obviously.
Bear with me while I trudge through OS compatibility issues
please. I've reduced things as follows:

On Windows, icon image disappearance is caused if 1.5b and
1.6 are used in some specific order without a Windows reboot
in between.  Alternating the two versions is too much for
Windows' little mind and for this special case of XUL. When I
rebooted and stuck to 1.6 only, I saw a 0px height window,
which is correct. The topcrash I saw in 1.2-1.5 is fixed in 1.6
and there is no issue for Windows.

I used standard 1.6 for my test on Linux; I'll pull the latest
trunk and see if Boris' results happen for me.
OS: All → Linux
Linux: I downloaded and tested this nightly build ...

http://ftp.mozilla.org/pub/mozilla.org/mozilla/nightly/latest-trunk/
mozilla-i686-pc-linux-gnu.tar.gz  18-Jan-2004 12:59  12.9M

mkdir -p /local/install/test
cd /local/install/test
gzip -bc /tmp/moz...tar.gz | tar xvf -
cd /local/install/test/mozilla
./mozilla -chrome file:///tmp/test/topcrash.xul

I get no window (GNOME 2.02, sawfish, vnc) and no process item
in the GNOME user panel. I tested with a fresh GNOME/vnc session,
no difference. GNOME 2.02 is self-compiled; I also have GNOME 1.2
out-of-the-red-hat-box. Test results the same under both.

If I add <description>foo</description> as the first tag
inside <window>, then I get both a window and a GNOME panel item.

On one occassion I got a window that was resizable, but
whose contents wasn't rendered before or after I
played with the sawfish resize handles. I can't reproduce that.
Creating and using a new profile does nothing.

I've reviewed the runtime and compile time requirements for
mozilla, and I meet all the specs except vnc. I use a lightly
updated RedHat 7.3 as my "act like a lagging reader" test box.

RH 7.3, kernel 2.4.7-10, GNOME 2.02, Xvnc 3.3.3r2
rpm -qa | grep glibc = 2.2.4
rpm -qa | grep libstdc = 2.96-98 and 3-3.0.1-3

bash 2.05.8(1), gcc 2.96-98, perl 5.6.0, gmake 3.79.1,
cvs 1.11.1p1, autoconf 2.13

Any other positives? Should I blame Xvnc?
Otherwise, a box comparison with bz is in order.

- N.
Do you get a mozilla process in the "ps" list?

With your exact steps I am still getting a 0px by 0px window; it may just be
that your WM fails to deal with those.  I'm using AftersStep as the WM on a RH
8.0 box.
A more general case: reduce the XUL to <window xmlns...></window>.
It's nothing to do with templates (prolly), except that templates can reduce
an apparently populated XUL document to zero final contents.
I'm used to the 1.5 template bug; sorry for the circuitous route here.

I think GNOME panels are part of GNOME, not the WM. I've tried
Enlightenment (0.16.4) + GNOME. Same bug. For the first time
since 1987 I tried twm (+ GNOME). Wow, twm's green. Same bug.
I tried twm without any GNOME desktop, ie near-raw X. Same bug.

The "TWM Icon Manager" (left click on background) does not report
a Mozilla X client. Neither does Enlightenment's root toolbar
(middle click). twm version = XFree86-twm-4.1.0-3 (from rpm -qa).

Mozilla processes are there: ps -fHunrm reports in part:

nrm       1966  1723  0 09:34 pts/0    00:00:00     /bin/sh
/local/install/test/mozilla/run-mozilla.sh ./mozilla-bin -chrome file:
nrm       1972  1966  5 09:34 pts/0    00:00:00       ./mozilla-bin -chrome
file:///tmp/test/topcrash.xul
nrm       1974  1972  0 09:34 pts/0    00:00:00         ./mozilla-bin -chrome
file:///tmp/test/topcrash.xul
nrm       1975  1974  0 09:34 pts/0    00:00:00           ./mozilla-bin -chrome
file:///tmp/test/topcrash.xul
nrm       1976  1974  0 09:34 pts/0    00:00:00           ./mozilla-bin -chrome
file:///tmp/test/topcrash.xul
nrm       1977  1974  0 09:34 pts/0    00:00:00           ./mozilla-bin -chrome
file:///tmp/test/topcrash.xul

Appears normal.

Can you try raw twm over Xvnc and/or Xfree86? I used a second box to telnet
to the x-server box and kill/start processes by hand that way. My only
X processes are: xterm, Xvnc, twm. My Xvnc command line (mostly default values):

Xvnc :1 -desktop X -httpd /usr/local/vnc/classes -auth /home/nrm/.Xauthority
-geometry 1280x1024 -depth 24 -rfbwait 120000 -rfbauth /home/nrm/passwd -rf
bport 5901

Xvnc uses the ~/.vnc/xstartup shellscript, should you choose to test Xvnc.
You can strip that down to "twm &" and "xterm &".

thanks, Nigel.
Attached file Testcase
OK, this shows the problem here...
Attachment #139390 - Attachment is obsolete: true
Attachment #139391 - Attachment is obsolete: true
Attachment #139392 - Attachment is obsolete: true
Changing summary accordingly.
Summary: Hang from cmdline on <template> with <bindings> only → Attempt to open a 0x0 chrome window silently fails on Linux
Confirmed on Firefox PR1. Downgrading severity to major to
get this off the user-features radar.

- N.
Severity: critical → major
Status: UNCONFIRMED → NEW
Ever confirmed: true
Test case showing bug when <window> tag has child tags.
Attached file Test case in plain XML
Also applies to plain (non-XUL) XML files.

firefox -chrome file:///tmp/test.xml
You can't create zero-sized windows in X.  It causes an X protocol error, iirc.

http://lxr.mozilla.org/seamonkey/ident?i=AreBoundsSane
Hmm. Boris said he got a 0x0 window in comment 4 and comment 7.
Not safe to rely on the WM saving the situation.

Even if X is restrictive there's still a hang to fix; still
under-performance against Windows; and confusion for XPFEers
and HTMLers. A remote XUL app with full security or a chrome
app can also hang the client using this feature.

Speculation: AreBoundsSane() could be a per-window state flag or
a wrapper rather than just a check. Then the X call args could be
math-fu'ed to 1x1 at the last instant. Or whenever the window is
dynamically adjusted to dimensions 0x0. A corner case that wouldn't
alter the state information the app stores about the window - just
an adjustment of the wire protocol data.

- N.
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: shrir → xptoolkit.widgets
Assignee: hyatt → nobody

Hello! I have tried to reproduce the issue with Firefox 96.0a1(2021-11-23) with the test case provided in comment 15 but unfortunately I wasn't able to reproduce it on Ubuntu 20.

Since no work has been done in the recent years I will mark this issue as RESOLVED->WORKSFORME. If the issue is still valid please feel free to reopen it or file another bug.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: