New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 923651 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Drag over div over iframe does not receive dragover events

Reported by i...@vivaldi.com, Jan 19 (3 days ago)

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 Vivaldi/2.2.1388.37

Steps to reproduce the problem:
1. Open the attached file. It contains a drag-drop example with an absolutely positioned div on top over iframe.

2. Drag the green "Drag me!" element over the yellow text.

What is the expected behavior?
When the drag object over the yellow div, the document should receive dragover events and continue to report their position.  

What went wrong?
The dragover events are only received and reported when the drag object is outside of the iframe. When it is dragged into iframe, no events are received even if the object over the yellow div positioned on top of the iframe.

Did this work before? Yes Chromium 71

Does this work in other browsers? Yes

Chrome version:  72.0.3626.55   Channel: beta
OS Version: Ubuntu 18.04
Flash Version: 

It seems this is regression due to enabled VizHitTestDrawQuad feature. In particular, the drag API calls into RenderWidgetHostInputEventRouter::GetRenderWidgetHostAtPoint(). That function calls FindViewAtLocation(). In the example that function return the view for the iframe and sets should_query_view to true when the mouse is over the div positioned over the iframe. But GetRenderWidgetHostAtPoint() ignores the flag and incorrectly returns the child view, not the view for the parent.
 
drag-drop.html
1.3 KB View Download

Comment 1 by woxxom@gmail.com, Jan 19 (3 days ago)

In the next beta 72.0.3626.65 setting iframe's style to "pointer-events: none" will work even with VizHitTestDrawQuad.
AFAICT the idea is that you can do it in your js handler so that the style is applied only while dragging.

Quoting  bug 908750 :

    The fix for pointer-events:none is [...] crrev.com/c/1372322 which can fix some cases. 
    There's no one actively looking at fixing drag-n-drop for OOPIFs in general.

Comment 2 by phistuck@chromium.org, Jan 19 (3 days ago)

 Issue 923652  has been merged into this issue.

Comment 3 by i...@vivaldi.com, Jan 19 (3 days ago)

pointer-events:none is not helpful at all as the iframe needs to react to the dragover events.

Comment 4 by susan.boorgula@chromium.org, Jan 20 (2 days ago)

Labels: Needs-Bisect Needs-Triage-M72

Comment 5 by phanindra.mandapaka@chromium.org, Yesterday (43 hours ago)

Cc: phanindra.mandapaka@chromium.org
Labels: -Pri-2 -Needs-Bisect RegressedIn-71 ReleaseBlock-Stable Triaged-ET Target-71 Target-72 Target-73 M-71 FoundIn-71 FoundIn-72 FoundIn-73 hasbisect Pri-1
Owner: dcheng@chromium.org
Able to reproduce the issue on the reported chrome 72.0.3626.55, chrome stable 71.0.3578.98 and canary 73.0.3678.0 using Ubuntu 17.10. Below is the Manual bisect (got all bad builds while running tool bisect) information for same. 

Note: Issue not seen on Mac and Windows.
Bisect Info:
================
Good build: 71.0.3554.0
Bad build:  71.0.3556.0

CHANGELOG URL:
https://chromium.googlesource.com/chromium/src/+log/71.0.3554.0..71.0.3556.0?pretty=fuller&n=10000
Suspect: https://chromium-review.googlesource.com/c/chromium/src/+/1225931/
Reviewed-on: https://chromium-review.googlesource.com/1225931

Daniel Cheng: Please confirm the issue and help in re-assigning if it is not related to your change. Adding RBS label for M-71 feel free to change it if not required.

Thanks!

Comment 6 by phanindra.mandapaka@chromium.org, Yesterday (43 hours ago)

Status: Assigned (was: Unconfirmed)

Comment 7 by gov...@chromium.org, Yesterday (38 hours ago)

Cc: abdulsyed@chromium.org
Labels: -M-71 -Target-71 M-72
We're not planning any further M71 releases, pls target fix for M72 if this is super critical.

Comment 8 by gov...@chromium.org, Today (10 hours ago)

Labels: OS-Android OS-Chrome OS-Mac OS-Windows

Comment 9 by gov...@chromium.org, Today (9 hours ago)

Cc: candr...@chromium.org pucchakayala@chromium.org
Per comment #0, this was working in M71. But per bisect provided at #5, this is broken in M71.

Pls confirm this is M71 or M72 regression.

Comment 10 by dcheng@chromium.org, Today (9 hours ago)

Cc: wjmaclean@chromium.org sadrul@chromium.org nzolghadr@chromium.org
Components: Internals>Sandbox>SiteIsolation
Labels: -OS-Android
Owner: riajiang@chromium.org
I'm guessing this is because VizHitTestDrawQuad was/is an experiment; it was changed to default on in https://chromium.googlesource.com/chromium/src/+/fda3ed7f1e8a2bf02e29b9c4c88e6a6fbae7b8ef.

If I disable both VizHitTestDrawQuad and VizDisplayCompositor, then the dragover events do fire.

I'm removing Android since SiteIsolation isn't enabled by default there. I'm not sure if this is going to be easy/possible to fix, especially in time for M72.

Sign in to add a comment