Add support for generating external types in ComputedStyleBase.
Many members in ComputedStyle are platform types like Length or
LengthBox. We currently can't generate them because they cannot be
bitfields. This patch does several things:
1) Generate different code based on whether a field is a bitfield or not.
This allows us to store external types without packing.
2) Add a new field template 'external' which creates getter/setters that
return/accept references and do not do any static_casts. This allows
us to expose external types efficiently.
3) Change "initial-keyword" to "default-value" in CSSProperties.json5 to
make keyword fields consistent with external fields.
BUG=628043
Review-Url: https://codereview.chromium.org/2697953004
Cr-Commit-Position: refs/heads/master@{#460958}
9 files changed