Prefer unprefixed clip-path to (webkit) prefixed

In the world of prefixes, a property without takes precedence over a
property with. That tends to assume that there's not actually two
properties supported though. In the case of 'clip-path' and
'-webkit-clip-path', they both exist and are handled by different code.
The latter also takes precedence over the former which leads to strange
behavior in the cases where both the prefixed and unprefixed property is
specified in a rule.
Change the behavior in this case to be more in line with prefix handling
in general, byt preferring the unprefixed property if it exists.

This requires moving one or the other of the two code-blocks that setup the
clip. In this CL the application of 'clip-path' is moved before the
application of 'mask'. With this move, the rendering-clip-as-mask code-path
can be simplified a bit. Also fix an edge-case where a clip-shape which
referenced a non-existent filter would not be rendered (TC added.)

Also clean-up the rendering-clip-as-mask handling around
opacity/blend-mode/isolation, to avoid creating a (redundant) transparency
layer when a clip-shape has isolation specified.

BUG=391608

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

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