Re: Using microtask checkpoints for resetting the slow script dialog timer

Boris Zbarsky <[email protected]> Thu, 11 Jul 2013 01:36:11 -0400
Newsgroups gmane.comp.mozilla.devel.dom
Message-ID <[email protected]>
On 7/11/13 1:15 AM, Bobby Holley wrote:
> Ok. They seem pretty wack-a-mole in Gecko, though.

To the extent that the concept of "unwind the stack" is a bit 
whack-a-mole, yeah.  I'm not saying it couldn't be better.  ;)

> But CallbackObject constructs an AutoMicroTask, right? So doesn't that lend
> us to the same problem? Or is the idea that the 'checkpoint' only happens
> when the microtask depth hits zero?

Yes, exactly.

> If so, how do we handle nested event loops?

By doing a checkpoint when the event loop spins, like the spec requires. 
  See nsXPConnect::AfterProcessNextEvent.  Note that the only thing we 
do off a microtask checkpoint right now is 
nsDOMMutationObserver::HandleMutations.

-Boris