Perhaps we want to merge https://chromium.googlesource.com/chromium/blink/+/ef4c6bc20eb31ea1900f2dd5a8420cd9b4566ba4 In CSSPrimitiveValue::computeLength, we decide which conversions to allow based on a template parameter which is a bitwise OR of several flags. Since viewport units are a <length> type (as per css3 values), we should be converting them whenever we can convert to a fixed length. This patch removes the ViewportPercentageConversion flag and enables the conversion whenever we enable a fixed length conversion. Similarly, we should also convert calcs with both percentage and length components (the CalculatedConversion flag) whenever both are allowed.