[SPv175] Fix hittesting of <foreignObject> under non-identity SVG-related transform

If the SVG to border box transform or any other transform in SVG above <foreignObject>
is non-identity, then hit testing of the <foreignObject> and content below it is incorrect,
because it does not take into account such transforms.

Before SPv175 + <foreignObject> as stacking context, content underneath the
<foreignObject> did not paint with the correct sizing either, which hid this bug to
some extent.

To make this work requires a little bit of special-casing of foreignObject, because of
the quirk that its location offset is applied *after* transform, not before.

Bug: 820482,831591
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ided2b46f2ea12dd61c254892f5fbabb821f6229e
Reviewed-on: https://chromium-review.googlesource.com/974568
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550825}
15 files changed