Fix box-shadow clipping for opaque-background <body>

In the presence of an opaque background,
BoxPainterBase::PaintNormalBoxShadow() insets the shadow clip by one
unit (in order to mitigate seaming artifacs), effectively expanding the
shadow inwards, and relies on the opaque background overdrawing this
inset.

But <body> doesn't paint its own background -- it gets transferred to
the view and painted in a different context => the shadow inset remains
visible.

To address this, pass background-skip information to
PaintNormalBoxShadow(), and disable the inset logic when the background
is not being drawn.

Bug: 899342
Change-Id: I5e04a1c17c2be324bf4c6767d2159372f546cc24
Reviewed-on: https://chromium-review.googlesource.com/c/1336495
Commit-Queue: Florin Malita <[email protected]>
Reviewed-by: Fredrik Söderquist <[email protected]>
Cr-Commit-Position: refs/heads/master@{#609014}
9 files changed