This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
See: http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Sep/0046.html
See also http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Sep/0048.html
*** Bug 26636 has been marked as a duplicate of this bug. ***
See also http://lists.w3.org/Archives/Public/www-dom/2014JulSep/0091.html
Looks like the model should be: 1. scroll events and other such events that we want synchronised with rendering 2. requestAnimationFrame callbacks 3. microtasks triggered by requestAnimationFrame -- beyond this point no script executes until we've painted -- 3. resolve CSS animations, transitions, etc 4. compute style 5. compute layout 6. paint
What do people think? Is this controversial?
I have a little trouble with the "update the rendering" concept in general--it makes a lot of assumptions about a single-threaded rendering environment. In IE's case, we use a multi-threaded rendering model, and so "update the rendering" is not going to be so straightforward. Regardless of this, if the editors of the Timing control.. spec want to integrate, then I suppose I don't object; though in general, I'm a proponent of smaller modular specs of which this plan runs counter to that goal.
I think this makes sense. I'd be interested in hearing how we can allow for parallelization in rendering better. Travis, I assume you still deal with synchronizing scroll events and requestAnimationFrame callbacks and such somehow? I think in the end what this is doing is synchronizing when certain rendering bits happen that have hooks in scripts. Rendering itself is after that (3-6 in Ian's list) and those things could happen in parallel.
Travis: I'm interesting in hearing more about the multithreaded rendering model. What kinds of things do you do in separate threads? Are any of the things in comment 4 done in separate threads?
Checked in as WHATWG revision r8849. Check-in comment: Flesh out how rendering happens in the event loop. This also defines requestAnimationFrame() and obsoletes the 'Timing control for script-based animations' spec (by request of that spec's editors) https://html5.org/tools/web-apps-tracker?from=8848&to=8849
Travis, let me know if the resulting spec text is problematic for IE. Thanks.