Introduce BorderImageLength and BorderImageLengthBox

Getting rid of the Relative length type has been a goal for a while
and this is step one for getting rid of it for the remaining user:
border-image.

Specifically, the 'border-image-width' and 'border-image-outset'
longhand properties are the remaining users of the Relative length
type. Relative is used to indicate that the Length doesn't contain a
length at all, but a plain number (in this case a multiple of the
respective computed border width).

Wrap this usage within a BorderImageLength for now, to prepare for
BorderImageLength conditionally acting as a number itself and thus making
it possible to remove the Relative length type.

To limit scope, not all use of Length as a BorderImageLength is wrapped.
Notably parts of RenderStyle and the related animation code haven't
been converted. For this to work there is compatibility code that goes
from LengthBox to BorderImageLengthBox and back.

No functional changes expected. To a large part covered by existing
tests in LayoutTests/fast/borders/border-image-*.

BUG=259107

Review URL: https://codereview.chromium.org/55783002

git-svn-id: svn://svn.chromium.org/blink/trunk@161527 bbb929c8-8fbe-4397-9dbb-9b2b20218538
12 files changed
tree: f0ab4096fa42376e1b7ae822680b9ec71f5a41bf
  1. third_party/