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

Issue 719686 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug



Sign in to add a comment

Link click being ignored within nested frames

Reported by stephenf...@gmail.com, May 8 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36

Example URL:
I have a test page attached, open frame.html to start

Steps to reproduce the problem:
1. Go to a page that has an iframe that contains a link to itself (frame.html in my example)
2. Click on the link to (frame.html) to create a 'nested frame'
3. Click on the link again and navigation will not occur, no more nested frames will be created. 
4. You can even navigate to other pages (text.html or text2.html) and you cannot link back to (frame.html) from those pages once you have nested once. 

What is the expected behavior?
You should be able to create nested frames and continue navigating regardless of how deep you have nested.

What went wrong?
Attempts to click a link within a nested frame are being ignored 

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? Yes 57

Does this work in other browsers? Yes

Chrome version: 58.0.3029.96  Channel: stable
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: Shockwave Flash 25.0 r0
 
chromeBugPage.zip
1.3 KB Download
Labels: -Pri-2 Needs-Bisect Needs-Triage-M58 Pri-1
Labels: -Needs-Bisect hasbisect-per-revision
Owner: davidsac@chromium.org
Status: Assigned (was: Unconfirmed)
Able to reproduce this issue using latest Chrome version #58.0.3029.96 and 60.0.3091.0 on Win 10.

Below is the bisect info

Good build: 58.0.3013.0 (Revision: 450530)
Bad build: 58.0.3014.0 (Revision: 450840)

You are probably looking for a change made after 450727 (known good), but no later than 450728 (first known bad)

CHANGELOG URL:
https://chromium.googlesource.com/chromium/src/+log/183dc82ce88ae08056adfcc97e48937c0fe1be59..04fdd09f342badeb2af3a639d62a4da65d4baaa1

@davidsac: Could you please look into the issue, pardon me if it has nothing to do with your changes and if possible please assign it to concern owner.

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

Thank You.
 
Labels: -Needs-Triage-M58 M-58

Comment 4 by e...@chromium.org, May 9 2017

Components: -Blink Blink>HitTesting
Components: -Blink>HitTesting UI>Browser>Navigation Blink>HTML>IFrame

Comment 6 by creis@chromium.org, May 9 2017

Cc: davidsac@chromium.org creis@chromium.org nasko@chromium.org dcheng@chromium.org
Owner: alex...@chromium.org
Alex, can you take a look?
Yes, this is due to https://codereview.chromium.org/2528813002, which guards against an infinite loop of self-referencing iframes.  The iframes being created here use the same URL, so they're blocked once the nesting reaches three levels, but I can see the point that since each frame creation is user-driven (requires a link click), this is not really going to lead to an infinite loop.

I'm curious why the previous version of the check in Blink didn't block this.  It seems like it would've blocked it also.

We could relax the blocking to only happen when the resulting navigation isn't a result of a user gesture, as we really only care about buggy scripts or frame hierarchies.  It seems we've got the UG bit already available in NavigationHandleImpl.

We might also want to add a console error message for this blocking logic so people know what's going on.  We had a similar case in  issue 710008 .

stephenfox1911@gmail.com: if you need a workaround in the meantime, you could modify your test page to include a random token in the query string for the iframe's src, so it looks something like "link.html?654783145" (the goal is to make each frame's URL different).

Sign in to add a comment