Bug 1460456 part 1 - Change the semantics of 'auto' color value. r?heycam
MozReview-Commit-ID: CRkhO35MoB8
--- a/layout/style/StyleComplexColor.h
+++ b/layout/style/StyleComplexColor.h
@@ -18,25 +18,29 @@ namespace mozilla {
class ComputedStyle;
/**
* This struct represents a combined color from a numeric color and
* the current foreground color (currentcolor keyword).
* Conceptually, the formula is "color * (1 - p) + currentcolor * p"
* where p is mForegroundRatio. See mozilla::LinearBlendColors for
* the actual algorithm.
+ *
+ * It can also represent an "auto" value, which is valid for some
+ * properties. See comment of mIsAuto.
*/
struct StyleComplexColor
{
nscolor mColor;
uint8_t mForegroundRatio;
// Whether the complex color represents a computed-value time auto
- // value. This is only a flag indicating that this value should not
- // be interpolatable with other colors, while other fields still
- // represents the actual used color of this value.
+ // value. This is a flag indicating that this value should not be
+ // interpolatable with other colors. When this flag is set, other
+ // fields represent a currentcolor. Properties can decide whether
+ // that should be used.
bool mIsAuto;
static StyleComplexColor FromColor(nscolor aColor) {
return {aColor, 0, false};
}
static StyleComplexColor CurrentColor() {
return {NS_RGBA(0, 0, 0, 0), 255, false};
}