Partial Refresh with FireFox 3.5 and above and IFrames

I have the following situation:

we develop xPages application. We use widely partial refreshes and it’s quite stable. Everything is fine till some months ago FireFox 3.5 was released. Then suddenly partial refreshes started to not work. We investigated it and found that the Async process is created, the response(correct one) is returned, but it is not handled(displayed on the page in it’s pane holder).

after a while I think I’ve located the main target of the problem. In our application we use IFrames to show different xpages - to create application with multi-paging - many pages in the same time displayed in the browser. If we run the xpage(with the partial refres) alone - the partial refresh is working. If we run it from within the iframe it’s not. The other strange thing is that IF it’s the FIRST iframe - it’s still working. BUT if it’s SECOND or more - it’s not. And this is not always true - sometimes it’s working fine.

Honestly I think it’s because of dojo - it cannot decide exactly where to place the response HTML code - as it’s in IFrame and as I think dojo is always trying to reach the most - top level of the browser.

Now about the browsers - it’s happening only in FF after version 3.5. On older versions it’s working great. In Firefox 4beta it’s working great. In all other browsers it’s working great. Even in Firefox 3.5+ it’s working from time to time.

Any idea how I can fix it? ( telling FireFox to fix it is not an option :frowning: )

Subject: Domino remembers it’s last opened xPage

Something else I’ve just found:

if I refresh the IFrame before trying to make the partial refresh it’s working great. But if I refresh other IFrame - my current one stops.

So it seems that only the last one loaded is responding correctly for partial refresh. Is it possible that domino remembers the opened xPages and when handling partial refreshes to pass some unique keys to recognize to which handler to pass the result? And why it’s working on all other browsers?

When working in IFrame the IFrame itself is completely different browser. Each xpage shall be handled separately. But as mentioned above dojo is always trying to find the top-most level. So maybe FF did something that makes dojo leave itself and enter the IFrame holder?

Subject: not true

some last time discovery - it’s not from the order or loading…

at least it’s not always like this - I found a way / situation that does not depend on the order of loadings…

Subject: problem solved!

Hello all.

I found the problem - in one of my iframes(with xpage inside) I had a included xpage, that makes in a special case another iframe to the same this one xpage. So I had an occasional dead loop.

So when dojo makes partial request and the response is given it starts to trace the complete path to the source of the request, and if this dead loop occurs the source could not be found - as the loop is infinite.

Why it’s working in other browsers - maybe the limit(the number or tries before the browser gives up) is bigger(or smaller). or the error handling is different?

I don’t know. But it solved the solution.

The important one is - if you have partial request, that is received bad(trace with firebug), then the problem is that dojo cannot trace the source of the partial request back- so you have infinite loop or something weird. But it shall be similar.