New issue
Advanced search Search tips

Issue 908570 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 3
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

foreignObject link

Project Member Reported by stothardj@google.com, Nov 26

Issue description

Chrome Version: Google Chrome 71.0.3578.21 dev
OS: Chromebook Pixel 2

What steps will reproduce the problem?
(1) Navigate to https://jsfiddle.net/ss9j4ybv/3/
(2) Click on the "<circle>" link

What is the expected result?
Should go to https://www.xkcd.com

What happens instead?
Nothing happens. Does not recognize that the link was clicked.


Note that this works in Chrome stable (70.0.3538.110).
We saw this problem before in https://bugs.chromium.org/p/chromium/issues/detail?id=848179 so this appears to be a regression.
 
Components: Blink>SVG
Labels: -Type-Bug -Pri-3 M-71 OS-Android OS-Linux OS-Mac OS-Windows Pri-2 Type-Bug-Regression
Owner: wangxianzhu@chromium.org
Status: Assigned (was: Untriaged)
Bisected to:

https://chromium.googlesource.com/chromium/src/+log/3f5912ba03f3362f32d3cb3e0f382a41555495a6..e4b02117a9359cc7f27811af64f39c8475160c31

Suspecting 29f57056b2ce47b0a0a46e460cb74b36e92fb129.
Cc: wangxianzhu@chromium.org
Owner: f...@opera.com
Took a stab at it.
Thanks for taking over it! I'm swamped in other works and haven't had progress on it, except for just a test case which can reproduce the issue on Linux:

<!DOCTYPE html>
<svg style="width: 100px; height: 100px; background: yellow">
  <foreignObject style="transform: translateY(20px); width: 100px; height: 100px; background: lime">
    <a href="www.google.com">Link</a>
  </foreignObject>
</svg>


Project Member

Comment 4 by bugdroid1@chromium.org, Nov 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f6f00aca4fb7794ba38a36aaa806f83ca065f5b

commit 0f6f00aca4fb7794ba38a36aaa806f83ca065f5b
Author: Fredrik Söderquist <fs@opera.com>
Date: Fri Nov 30 14:34:15 2018

Restore "same layer" check in CalculateRectsWithGeometryMapper

If the root layer and the "current" layer are the same, we can't really
guarantee that the "pre"-transform is the same as the "local border
box"-transform - for example in the case where we're performing a hit-
test from/under a foreignObject element which has a 'transform' applied.

Bug:  908570 
Change-Id: Icbaf3c15ca7b483f8209d5d0cc8b4613d80d49ce
Reviewed-on: https://chromium-review.googlesource.com/c/1355184
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612643}
[modify] https://crrev.com/0f6f00aca4fb7794ba38a36aaa806f83ca065f5b/third_party/blink/renderer/core/paint/paint_layer_clipper.cc
[modify] https://crrev.com/0f6f00aca4fb7794ba38a36aaa806f83ca065f5b/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc
[add] https://crrev.com/0f6f00aca4fb7794ba38a36aaa806f83ca065f5b/third_party/blink/web_tests/svg/hittest/foreign-object-with-transform.html

Status: Fixed (was: Assigned)
Labels: Merge-Request-72
Looks like we missed 72 by a hair.
Project Member

Comment 7 by sheriffbot@chromium.org, Dec 4

Labels: -Merge-Request-72 Hotlist-Merge-Approved Merge-Approved-72
Your change meets the bar and is auto-approved for M72. Please go ahead and merge the CL to branch 3626 manually. Please contact milestone owner if you have questions.
Owners: govind@(Android), kariahda@(iOS), djmm@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 8 by bugdroid1@chromium.org, Dec 4

Labels: -merge-approved-72 merge-merged-3626
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/543097531a253319c6c06f0949d151f9a3d77b4f

commit 543097531a253319c6c06f0949d151f9a3d77b4f
Author: Fredrik Söderquist <fs@opera.com>
Date: Tue Dec 04 09:36:27 2018

Restore "same layer" check in CalculateRectsWithGeometryMapper

If the root layer and the "current" layer are the same, we can't really
guarantee that the "pre"-transform is the same as the "local border
box"-transform - for example in the case where we're performing a hit-
test from/under a foreignObject element which has a 'transform' applied.

Bug:  908570 
Change-Id: Icbaf3c15ca7b483f8209d5d0cc8b4613d80d49ce
Reviewed-on: https://chromium-review.googlesource.com/c/1355184
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#612643}(cherry picked from commit 0f6f00aca4fb7794ba38a36aaa806f83ca065f5b)
Reviewed-on: https://chromium-review.googlesource.com/c/1360590
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/branch-heads/3626@{#22}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}
[modify] https://crrev.com/543097531a253319c6c06f0949d151f9a3d77b4f/third_party/blink/renderer/core/paint/paint_layer_clipper.cc
[modify] https://crrev.com/543097531a253319c6c06f0949d151f9a3d77b4f/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc
[add] https://crrev.com/543097531a253319c6c06f0949d151f9a3d77b4f/third_party/blink/web_tests/svg/hittest/foreign-object-with-transform.html

Android: 
Works as per expected behavior, Verified on 72.0.3626.7
Cc: chrishtr@chromium.org gov...@chromium.org pbomm...@chromium.org
 Issue 916158  has been merged into this issue.
Labels: Merge-Merged-72-3626
The following revision refers to this bug: 
https://chromium.googlesource.com/chromium/src.git/+/543097531a253319c6c06f0949d151f9a3d77b4f

Commit: 543097531a253319c6c06f0949d151f9a3d77b4f
Author: fs@opera.com
Commiter: fs@opera.com
Date: 2018-12-04 09:36:27 +0000 UTC

Restore "same layer" check in CalculateRectsWithGeometryMapper

If the root layer and the "current" layer are the same, we can't really
guarantee that the "pre"-transform is the same as the "local border
box"-transform - for example in the case where we're performing a hit-
test from/under a foreignObject element which has a 'transform' applied.

Bug:  908570 
Change-Id: Icbaf3c15ca7b483f8209d5d0cc8b4613d80d49ce
Reviewed-on: https://chromium-review.googlesource.com/c/1355184
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#612643}(cherry picked from commit 0f6f00aca4fb7794ba38a36aaa806f83ca065f5b)
Reviewed-on: https://chromium-review.googlesource.com/c/1360590
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/branch-heads/3626@{#22}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}
 Issue 917324  has been merged into this issue.
Requesting postmortem for this bug.

I support a web application broken by this issue. For >1 month, my users are unable to click any links in monitoring dashboards. I'm concerned this issue will recur, as a similar issue has happened just recently: https://bugs.chromium.org/p/chromium/issues/detail?id=848179

Comment 14 by f...@opera.com, Jan 17 (5 days ago)

 Issue 922855  has been merged into this issue.

Sign in to add a comment