mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 09:15:35 +00:00
8289701d8c
disclaimer: this isn't an *amazing* cleanup, but more of a major step that unlocks the ability to do more minor cleanups and refinements. There's some messy things and inconsistencies here and there, but we can hopefully iron them out over time. 1. The primary change here is to move from struct { common_fields, enum(specific_fields) } to enum (maybe_common_fields, specific_fields) most notably this drops the common fields from a ton of things that don't need them PopXXX, SetXXX, ClipChain, etc. 2. Additionally some types have had some redundant states shaved off, for instance, rect no longer has *both* bounds and a clip_rect, as the intersection of the two can be used. This was done a bit conservatively as some adjustments will need to be done to the backend to fully eliminate some states, and this can be done more incrementally. 2.5. As a minor side-effect of 2, we now early-reject some primitives whose bounds and clip_rect are disjoint. 3. A HitTest display item has been added, which is just a Rect without color. In addition to the minor space wins from this, this makes it much easier to debug display lists 4. Adds a bunch of comments to the display list, making it easier to understand things. The end result of all these changes is a significantly smaller and easier to understand display list. Especially on pages like gmail which have so many clip chains. However this ultimately just makes text an even greater percentage of pages (often 70-80%). Differential Revision: https://phabricator.services.mozilla.com/D27439 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
base | ||
build | ||
doc | ||
forms | ||
generic | ||
inspector | ||
ipc | ||
mathml | ||
media | ||
painting | ||
printing | ||
reftests | ||
style | ||
svg | ||
tables | ||
tools | ||
xul | ||
moz.build |