- From: CSS Meeting Bot via GitHub <sysbot+gh@w3.org>
- Date: Fri, 07 Jun 2019 17:21:10 +0000
- To: public-houdini-archive@w3.org
The Houdini Task Force just discussed `Design to allow more layout engine optimizations`, and agreed to the following: * `RESOLVED: no change, engines are allowed to do analysis to optimize the invalidation logic` * `RESOLVED: Republish Layout API once Ian makes the edits from previous resolution.` <details><summary>The full IRC log of that discussion</summary> <TabAtkins> Topic: Design to allow more layout engine optimizations<br> <astearns> github: https://github.com/w3c/css-houdini-drafts/issues/898<br> <TabAtkins> iank_: Layout engines have a lot of optimizations for the inputs to layout<br> <TabAtkins> iank_: Gave one example in the issue that I think all UAs have today<br> <TabAtkins> iank_: % height descendant, if your height changes you have to lay out that subtree; if your height doesn't change you don't need to<br> <TabAtkins> iank_: While performing optiizations for layoutng, I realized it owuld be good for the layout api to get those optimizations too<br> <TabAtkins> iank_: We currently pass the layout() a bunch of information<br> <TabAtkins> iank_: It would be nice for the webdev to let us know which of these they actually use when generating the fragment<br> <TabAtkins> iank_: So if they only use the available sizes, and a % size changes, we don't need to re-call them.<br> <fremy> q+<br> <TabAtkins> iank_: Today we can't optimize that<br> <TabAtkins> iank_: emilio this morning had the same idea I had; could we just figure out when a dev reads a particular prop off the constraints?<br> <fremy> q- emilio's question is exactly what I was going to ask<br> <fremy> q0<br> <fremy> q-<br> <TabAtkins> iank_: Turns out not good enough. So we do need explicit dependencies expressed.<br> <TabAtkins> AmeliaBR: They might check that property, but then switch and read a different property for acutal use.<br> <TabAtkins> iank_: Right. You might read availableInlineSize, then switch to using % size if it's small enough.<br> <TabAtkins> dbaron: But you do still have a dependency then<br> <TabAtkins> emilio: I commented about that, yeah.<br> <TabAtkins> emilio: I thought the engine could be smart, but that's not enough. Yo uneed an allowlist, as your might branch off of something else to see which one you need.<br> <fremy> +1 to what dbaron just said<br> <TabAtkins> dbaron: If you have `if(A) { if(B) {...}}`, if you take the else, you ddon't have a dependency on B. You'll rerun layout when *A* changes, at which point you might be checking B, but before then you won't need to invalidate based on B<br> <TabAtkins> myles: The story dbaron just told sounds scary...<br> <TabAtkins> dbaron: I think it's less scary than making authors do it themselves<br> <TabAtkins> dbaron: If authors do it themselves, they'll make the same mistake Ian did, and not mark dependencies (and thus get broken layouts)<br> <TabAtkins> AmeliaBR: But that list of dependencies can change each time.<br> <Rossen_> q?<br> <TabAtkins> emilio: If we have an allowlist I"d like to not expose the values that aren't allowed. But if we're just doing dependencies, I'm fine with all.<br> <TabAtkins> proposed resolution: no change, engines are allowed to do analysis to optimize the invalidation logic<br> <TabAtkins> RESOLVED: no change, engines are allowed to do analysis to optimize the invalidation logic<br> <TabAtkins> dbaron: I think there should be a note in the spec about this<br> <TabAtkins> iank_: Definitely<br> <TabAtkins> Rossen_: Ian, can you repub this?<br> <TabAtkins> iank_: Yes.<br> <TabAtkins> RESOLVED: Republish Layout API once Ian makes the edits from previous resolution.<br> </details> -- GitHub Notification of comment by css-meeting-bot Please view or discuss this issue at https://github.com/w3c/css-houdini-drafts/issues/898#issuecomment-499968593 using your GitHub account
Received on Friday, 7 June 2019 17:21:11 UTC