On May 30, 2013, at 10:38 AM, Boris Zbarsky <[email protected]> wrote:
> On 5/30/13 1:04 PM, Brady Eidson wrote:
>> The long standing design goals and implementation of our page cache
>> prevents us from delivering these events to a page that was just sent
>> “pagehide with persisted set to true”.
>
> Actually, let me try to clarify this a bit.
>
> The way I would imagine logic like this being implemented is something like:
>
> dispatchPageHide(true);
> flagPageFrozen();
>
> with the flagPageFrozen() call making it so that further event dispatch is
> impossible.
>
> If that is in fact the case, then logic like this:
>
> dispatchPageHide(true);
> setVisibility("hidden"); // happens to fire an event
> flagPageFrozen();
>
> should generally work fine; this is in fact more or less what Gecko does, if
> we ignore the "pagehide makes the page not cacheable" complication.
>
> So how does your setup differ in a way that actually makes this impossible to
> implement?
The design is that after pagehide returns, if the traversal is still taking
place and the page is going into the cache, no further events take place.
~Brady