Initial implementation of Color Pipeline classes.

Design doc:
https://docs.google.com/document/d/1rpNjGg0762tnjfChkA1WJwHalDUQ0ZwkcXsgwwuCuQE/edit?usp=sharing

This implements the core types:
* ColorId
* ColorMixer
* ColorModifier
* ColorProvider
* ColorRecipe
* ColorSet
* ColorSetId
* ColorVariant

It also adds a new "color_unittests" target with unittests that should provide
full coverage of the above, except for ColorVariant (which is not yet used).

Still unimplemented:
* ColorVariant support, including thought about how things like incognito and
  dark mode should work, whether ColorVariant is really the right primitive, and
  whether "inactive" deserves to be a variant.
* A fleshed-out ownership/lifetime model for ColorProfile, which affects what
  constructors or factory functions we expose, as well as the APIs for modifying
  the color pipeline.

This does not include this code anywhere in Chrome.

*.json are autogenerated and do not need review.

Bug: 1003612
Change-Id: I6edf603b407a4cc25315e383974ec0fc0718d9c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1807135
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Allen Bauer <kylixrd@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#698262}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8d5c4d6132db8f1333ce0e1e0c2a24ae5f9eb74d
1 file changed