I thought I'd sent this to this list, but apparently not. These are
notes if from a conversation with dbaron back in August.
We tried to make a list of things we think we can do better than Gecko
right now and know how to, a list of things we think Gecko does well,
and a list of things we should do better but have no concrete plan.
It's been a few months, so we actually have more concrete plans for some
of those things now, but these are the notes I have, so...
Can do better (know how to!):
- Ordered style declaration storage; this is OK otherwise.
- Style data sharing across documents (see
https://bugzilla.mozilla.org/attachment.cgi?id=650734)
- Consider storing specified style in ruletree once we determine it;
need to measure memory overhead
Already good:
- Ruletree.
- Style structs, at least for inherited shorthands and color.
Should do better:
- Page breaking.
- Line layout. dbaron has thoughts on doing one-pass; unclear what the
right data structures are here.
- Location of style info and relationship between layout objects and
style objects. Who owns what? Can we hang style info on elements?
Would be desirable!
- Perf of computing struct differences. Can we pass current diff in and
optimize away compares that can't add to it? Can we increase the set of
cases in which the struct pointer matches (e.g. by changing our set of
structs or changing something else about style resolution)?
- Perf of style reresolution in general. For example, can we find cases
where nothing is inherited down into a subtree and not even walk into
it? Or something?
- First-letter and first-line need better setups.
- Less manual work for custom rendering objects (form controls and
mathml and other edge cases should not require so much code!). XBL form
controls tried; can we do something better?
- Constraint-based handling of incremental layout so we don't have to
hand-code all the optimizations and edge cases.
- More automatic error handling in CSS parser. e.g. if we hit an error
after hitting a '(', the skip to the ')' should be automagic.
- Faster handling of attr changes (HasAttributeDependentStyle). Reduce
virtual function calls, maybe have different model completely. Maybe
async (using COW stuff?). Not clear what the best approach is.
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo