Opened issue 3808 and attached a patch to it that reverts the change and
fixes the issue for me.
It's interesting you mentioned IE6/7. I didn't test them as thoroughly as
IE8, but I did notice a HUGE added delay in newToken calls at one point, in
the range of 10-20 seconds. I'm not sure if this was directly related to the
XHR change or any of the number of hacks I was trying out at the time
though.

Thanks.

- Amir

On Tue, Jul 7, 2009 at 5:45 AM, Joel Webber <j...@google.com> wrote:

> Changing IFrameTemplate to do a location.replace on the iframe probably
> made a difference because it loaded the compiled script normally, rather
> than through xhr/doc.write. But there are other problems with this -- though
> it shouldn't fetch the compiled script twice, it effectively loads it twice,
> once via xhr and once via location.replace.
> I'm starting to suspect that this xhr/doc.write trickery is implicated in a
> few strange issues. I originally put it into place to guarantee that the
> compiled script be fetched asynchronously alongside any other resources in
> the outer page (which it does).
>
> But it appears to be causing at least this problem, and I suspect it's also
> making the compiled script difficult to debug in Firebug, as well as (maybe)
> causing history navigation to become surprisingly slow on IE6/7. Would you
> mind creating an issue for this particular case so that I can track it? I'm
> going to try reverting this change locally to see which, if any, of these
> issues are resolved.
>
> Thanks,
> joel.
>
>
> On Wed, Jul 1, 2009 at 10:57 PM, Amir Kashani <amirkash...@gmail.com>wrote:
>
>>
>> I've verified that making the following changes to the 1.6 release
>> branch causes the bug:
>>
>> - Replace IFrameTemplate.js with tr...@r5523
>>  - Modify line 430 to not append .cache.html (seems to be appended
>> from somewhere else in the 1.6 branch)
>> - Replace hosted.html with tr...@5517 (not really necessary, as I'm
>> testing with compiled code)
>>
>> Now, set your face to stunned. I modified IFrameTemplate.js to skip
>> the XHR request and instead do a location.replace on the frame in
>> maybeCreateGwtFrame(). This single change fixed the issue. Again, I
>> can't begin to explain why populating the frame using  document.write
>> versus setting the location would cause IE to lose history state.
>>
>> I'm going to continue to work to try and find a simple example to
>> replicate this, though thus far I haven't had any luck outside of my
>> app.
>>
>> - Amir
>>
>> On Jul 1, 3:01 pm, Amir Kashani <amirkash...@gmail.com> wrote:
>> > Joel,
>> >
>> > The 1.6 release branch does not exhibit the problem; it works fine.
>> > The next thing I'll try is copying the IFrame linker changes over to
>> > the 1.6 branch and see if that's enough to cause the problem. Unless
>> > you have another suggestion?
>> >
>> > - Amir
>> >
>> > On Jun 30, 5:32 am, Joel Webber <j...@google.com> wrote:
>> >
>> >
>> >
>> > > Amir,
>> > > I'd be very interested in any way you can find to reproduce this bug
>> > > reliably. The History implementation in IE8 is very simple, because
>> they
>> > > added direct support for using the url #hash to update the history
>> state,
>> > > and for the onhashchange event. It is possible that we're doing
>> something in
>> > > the iframe linker's bootstrap script to tickle this bug, though it's
>> not
>> > > clear to me what that might be.
>> >
>> > > Since you're building with trunk right now, you could also try
>> building
>> > > against the current contents of the 1.6 release branch
>> (/releases/1.6),
>> > > which has full IE8 support, but not the linker changes. We're going to
>> be
>> > > releasing out of this branch very soon (as soon as we merge the fix
>> for a
>> > > Firefox 3.5 regression they are shipping today).
>> >
>> > > Cheers,
>> > > joel.
>> >
>> > > On Tue, Jun 30, 2009 at 12:01 AM, Amir Kashani <amirkash...@gmail.com
>> >wrote:
>> >
>> > > > I’m having a strange issue with trunk and IE8 where the browser’s
>> > > > history stack inexplicably “disappears”. That is, the history drop
>> > > > down list empties (including previously visited non-GWT sites, like
>> > > > MSN) and the back/forward buttons don’t work. My guess is that this
>> is
>> > > > a bug in IE8 that GWT is somehow triggering since as far as I know,
>> an
>> > > > application can’t explicitly clear a browser’s back history.
>> >
>> > > > I haven’t been able to find a definitive set of steps to duplicate
>> > > > this. I’ll be clicking along, adding items to the history stack and
>> > > > regularly checking the history drop-down menu until at some point,
>> the
>> > > > list is either completely empty or only contains the current page.
>> > > > Other times, I’ll click back or forward, and as soon as I do, the
>> > > > buttons become disabled (list is empty). To complicate matters, I
>> > > > haven’t been able to create a simple example that exhibits the bug;
>> it
>> > > > only occurs with my fairly large application.
>> >
>> > > > I _think_ I’ve narrowed down the issue to a change made to the
>> IFrame
>> > > > linker in r5393. Using r5392, history works exactly as expected.
>> > > > Unfortunately, I can’t use r5393 directly, as it has a bug which
>> isn’t
>> > > > fixed way until r5523, where document.body is accessed before it is
>> > > > initialized, causing my app to not load at all. Swapping out
>> > > > IFrameTemplate.js with r5523’s version exhibits the broken behavior
>> > > > with r5393.
>> >
>> > > > I can’t for the life of me explain how the IFrame linker change
>> causes
>> > > > this, or why it’s not a consistent set of steps (timing issue?) or
>> why
>> > > > it only happens with my application and not smaller ones.
>> >
>> > > > Any insight or tips on how to further track down the problem so I
>> can
>> > > > submit a coherent bug report would be greatly appreciated.
>> >
>> > > > - Amir
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to