Closed Bug 321099 Opened 19 years ago Closed 15 years ago

including same XUL file multiple times (iframe): only first onload fires in chrome context

Categories

(Core :: DOM: Events, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: sascha, Unassigned)

References

()

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.11) Gecko/20050728
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8) Gecko/20051111 Firefox/1.5

Including the same XUL file multiple times causes an onload event only for the first iframe.

e.g. in main.xul:
<iframe src="common.xul"/>
<iframe src="common.xul"/>
<iframe src="common.xul"/>

onload will fire only for the first iframe.

Happens only if:

- main.xul/common.xul are in chrome
- XUL cache is enabled (no nglayout.debug.disable_xul_cache)
- the browser is freshly started and has not seen main.xul/common.xul yet

Reproducible: Always

Steps to Reproduce:
1. Ensure "nglayout.debug.disable_xul_cache" is NOT set.
2. In the browser's installation directory, create chrome/test/content/
3. Put two files in chrome/test/content/

http://schumann.ag/onload/main.xul
http://schumann.ag/onload/common.xul

4. Create chrome/test.manifest

content test test/content/

5. Kill all running browser processes
6. (For MOZILLA_1_7) Delete XUL.mfl in user's profile
7. Start the browser and open the URL chrome://test/content/main.xul
Actual Results:  
onload fires three times:

common.xul (first iframe)
main.xul (bubbling phase)
main.xul

Expected Results:  
onload fires five times:

common.xul (first iframe)
main.xul (bubbling phase)
common.xul (second iframe)
main.xul (bubbling phase)
main.xul

Mozilla 1.7.12 exhibits the same erratic behaviour.

Workaround:

Use src="common.xul?1", src="common.xul?2" etc.

Note that the issue does NOT occur if the testcase is opened using 
"firefox.exe -chrome chrome://test/content/main.xul". We have confirmed that starting with -chrome does not address the issue, the bug just does not occur with the initial set of pages.
The url's are 404, could you attach a testcase to the bug?
I can reproduce that bug in thunderbird
here is a testcase http://ffsearchplugins.free.fr/bugzilla/321099/main.xul
it includes iframe.xul two times in <iframe/>s iframe.xul includes that script:

        function onload()
        {   
            dump('onload\n');
        }

(you need browser.dom.window.dump.enabled set to true to see the dump in a console), so we can see how many times onload event is triggered.
When I first load those files, onload is triggered twice (that's fine). But if I close thunderbird, and modify one of those files (or even just use "touch" command on them), only one onload is triggered.

I only saw that bug from chrome, I did not notice it in content.
I don't see that bug when i have nglayout.debug.disable_xul_cache set
I see that bug even if I open window with chrome url
thunderbird -chrome chrome://blabla/content/main.xul
Blocks: 468835
I think that bug 206691 also incidentally fixes this. Can someone try the next 1.9.2a1pre build of Minefield to see?
I tried with latests trunk (compiled), and problem does not appear anymore.
Status: UNCONFIRMED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Depends on: 206691
You need to log in before you can comment on or make changes to this bug.