Closed Bug 21647 Opened 25 years ago Closed 25 years ago

[BETA] locale/chrome.rdf hangs or causes funky window

Categories

(Core :: XUL, defect, P1)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: tao, Assigned: nisheeth_mozilla)

References

Details

Attachments

(1 file)

I tested dec-10-99 mozilla build and dec-13-99 commercial build on NT. It does
 not crash anymore; instead, when a chrome.rdf presents in a locale/ directory,
the first attempt to bring up the affected window (e.g. Addressbook) will
cause a funky browser frame to pop up with an oversized canvas/pixmap.
If you close this funky window and reopen it (Addressbook) again, the new
window will just render fine with the proper localized UI.

On Linux w/ dec-13-99 commercial build, this causes the client to hang.

To reproduce this problem, create a chrome.rdf w/ the following content

  <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns="http://chrome.mozilla.org/rdf#">
      <RDF:Description about="chrome://addressbook/locale/">
        <name>en-US</name>
      </RDF:Description>
  </RDF:RDF>

and drop it into chrome/addressbook/locale.

Then, open up the Mozilla client and then the Addressbook window. On NT,
the funky window shows up (for the first attempt). On Linux, it simply
hangs the client.

This is a L10n blocker.
Summary: Dropping chrome.rdf into locale/ causes funky new window on Windows and hang on Linux → [BETA] Dropping chrome.rdf into locale/ causes funky new window on Windows and hang on Linux
Adding beta to the summary
Assignee: rickg → hyatt
David -- I think this is an issue you can deal with better than I can.
Priority: P3 → P1
Summary: [BETA] Dropping chrome.rdf into locale/ causes funky new window on Windows and hang on Linux → [BETA] locale/chrome.rdf hangs or causes funky window
Target Milestone: M13
reproduced hang in today's build on Linux. targetting p1 for m13. rewrote
summary to fit field and emphasize the hang.
Adding myself to the CC list as im dependent on this bug
Blocks: 11652
Status: NEW → ASSIGNED
Target Milestone: M13 → M15
Add Laura to the CC list. This is a L10n blocker.
Hi, Hyatt:

This is a localization blocker and we plan to localize beta1. Is it possible
that we fix this by M14. Marking it M15 is making me nervous.

Do we have a clue of the root cause of this problem yet? I can spend some cycles
on this if you don't have bandwidth.
BULK MOVE: Changing component from XUL to XP Toolkit/Widgets: XUL.  XUL 
component will be deleted.
Component: XUL → XP Toolkit/Widgets: XUL
Target Milestone: M15 → M14
I tested this using the addressbook and specifying a chrome.rdf file for all 
three cases (skin, locale, and content).  In all three cases if the files were 
found in the location specified by chrome.rdf, then the window came up just fine 
on the very first try.

I tried the exact RDF file pasted into the bug below, and it worked just fine.

Marking as WORKSFORME.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → WORKSFORME
Which day's build you are running? I just tested it with 2000-01-21-09 NT 
commercial build (2000012108). On this first attempt of 
opening the Addressbook, a huge bogus frame popup with ghost shadow in it.
I needed to close the window and reopen the addressbook again to have the 
correct rendering of the whole frame with content. This is exactly what I 
observed on NT in logging the bug.

I haven't tested it on Linux yet. But, reopen the bug, anyway.
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Hyatt:


Could it be a memory corruption such as un-initialized memory references? Since
it behaved differently platforms and probably different development. The bug
might not surface in your development build.

I tried the exact test you supplied and verified that the chrome.rdf file is 
being used, and everything works fine for me.  Weird.  You aren't testing chrome 
switching or anything, are you?  You're just putting the file in the directory, 
launching the app, and experiencing trouble?

Status: REOPENED → ASSIGNED
Darnit, I guess it's probably occurring in optimized builds only?
No, plain chroome.rdf with en-US as the locale provider.
Ok, I'm running Win98, so maybe it's different from NT.  Let me try this on some 
other platforms (debug and optimized) so we can get a tally of which ones work 
and which ones don't.
Whiteboard: Works on Win98 debug. Testing other platforms.
Tao, do me a favor.  Try using a chrome.rdf in skin.  See if those work for you. 
 You should be able to replace "locale" with "skin", and "en-US" with "default". 
 Then just move the file over to chrome/addressbook/skin.

This worked for me also.  Let me know if it works for you or not.  If it does 
work for you, I suspect something to do with DTD/XML parsing.  IF it doesn't 
work for you, I suspect the chrome registry.
Skin is fine.
Hi, Hyatt:


The configurable chrome works fine on WIN98. Now we know the skin portion works on NT. 
I remember that the URL chrome conversion also works. Guess the only thing suspecious is
 XML/DTD parsing.  I'll try to purify it on NT tomorrow to see if I can catch some abnomalty.
I ran a purify session on a 01-14-2000 Mozilla build on NT. I didn't see any
memory corruption incidence appeared in opening up Addressbook. However, I hit
an assertion ("Reflowing tree row group with unconstrained height!!!!") at
http://lxr.mozilla.org/mozilla/source/layout/xul/base/src/nsTreeRowGroupFrame.cp
p#992. 

This is consistent with the bogus frame rendered with enormous huge height. Any 
idea who owns layout reflow? Is it vidur?


Thanks.
Another thing I observed is that nsTreeRowGroupFrame::ReflowBeforeRowLayout()
did not get called before the bogus frame poped up; it does when Addressbook 
chrome is rendered properly. Hope that this helps.
Ok, this seems to fail practically everywhere.  It doesn't appear to have 
anything to do with the chrome registry. I believe it's a parser problem.  
Reassigning to nisheeth.
Assignee: hyatt → nisheeth
Status: ASSIGNED → NEW
Yes, this bug appears whenever there is a chrome.rdf in 
any chrome/[package]/locale; it's not an Addressbook specific problem.

One question I have is: 

     what is the sequence of chrome.rdf loading and the external *.dtd. 

In theory, the former shall goes first and then the latter 
(sequentially). Also, the cache of that particular DTD shall be blown.

It's interesting that the first attempt always fails but not the 
subsequent ones.
away.
The parser may not be re-entrant here or something, e.g., the parser of the XUL 
doc is wanting to load a DTD, but it now has to parse an RDF/XML file 
synchronously first.  Only once that file is parsed can the chrome registry give 
the DTD name.  
But, how's this different from loading chrome/registry.rdf? Isn't it just a RDF
datasource?

 
registry.rdf was originally loaded up front when the first XUL file was loaded 
(and we know that works).  

The new scheme is lazier, i.e., it waits until a request comes in and loads a 
little fragment file (chrome.rdf) instead.  So this is the first time that an 
RDF file is being loaded synchronously when the parser is in a mode where it's 
trying to load a DTD.
 
Add Vidur to cc list.

When beta localization is done, all chrome/[package] directories, including 
global, prefs, xpinstall, navigator, etc...,  will have a "chrome.rdf" in their 
locale/. I suppose this implies a localized Mozilla client will not even start!

Is this going to be big fix in the parser side? If so, is there a walkaround 
inbetween the parser modoule and chrome registry?
The XML tokenizer was using static data and was not re-entrant.  I have code in 
my tree that makes it re-entrant.  I'll check it in once I have it tested 
properly by the end of this week.
Status: NEW → ASSIGNED
Whiteboard: Works on Win98 debug. Testing other platforms.
Hi, Nisheeth:


Mind if I have a sneak preview on the re-entrant patch? I'd like to see how it
works with the new configurable chrome scheme.


Thanks
The changes are on my tree at home.  I'm debugging an assertion that fires in 
the XBL service when it loads up the bindings file.  Once I get that debugged, 
I'll attach the patch to this bug report before continuing to test it.
I found the bug in my changes.  I've run the precheckin tests and everything 
looks good.  I need a code reviewer for my change, please.  I'm attaching the 
patch...
I applied the patch to a fresh tree pulled this afternoon. It built on both 
Linux and NT fine. 

However, dropping the chrome.rdf to locale/ does not affect the chrome URL 
conversion any more. Mozilla always pick up uses the files in en-US directories.

I installed a 2000-01-27-09-M14 Mozilla build on my NT. The problem described
in the summary field still persists.

With the patch, the bug did not appear in my debug tree; however, the chrome.rdf
does not cause Mozilla to pick up files from different directoy either.

What's missing now?
I just checked in the fix...
All right.  Just in time for me and warren to rework the chrome registry yet 
again, making chrome.rdf obsolete. ;)
I'm markign this bug fixed.  Tao, please open a new one to track the problem you 
are having.  Thanks.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago25 years ago
Resolution: --- → FIXED
Hi, Nisheeth:


I tried again after some email exchanges wth Hyatt. It does work, now. Sorry 
for the fuss!
marking verified per tao's comments
Status: RESOLVED → VERIFIED
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: paulmac → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: