Allow (non)property fields to be hardcoded in make_computed_style_base.

Currently we divide ComputedStyle fields into two groups: properties
and nonproperties. Properties represent actual CSS properties and are
read from CSSProperties.json5. Nonproperties represent fields that do
not correspond to a CSS property and are read from a hardcoded list in
the generator script.

However, some fields act like properties, but do not correspond to
CSS properties (e.g. margin is a combination of four properties, but it
itself is not a CSS property). These need to be stored in the hardcoded
list. But since everything in the hardcoded list is considered a
nonproperty, this will not generate the right code.

Hence, this patch changes the hardcoded list to be rather a list of
"extra" fields which can be property or nonproperty fields. To
distinguish between properties and nonproperties, we introduce a
has_custom_compare_and_copy parameter. If true, the field is a
nonproperty.

This is prework for replacing the concept of nonproperties with
has_custom_compare_and_copy entirely.

This patch does not affect existing behaviour.

BUG=628043

Review-Url: https://codereview.chromium.org/2811273003
Cr-Commit-Position: refs/heads/master@{#466166}
1 file changed