philc / philc/vimium

Interaction within <iframe>s steal functionality (without any hint)

Open
#3,745 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
27k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

Describe the bug
Interacting on something within a page that's within an <iframe> will steal focus from the "main" frame

To Reproduce

  1. Go to a page that has an <iframe> element with (for example) a link in it
  2. Click the link (with your actual mouse pointer)
  3. Return to the original page with the <iframe>

Interacting with the page with Vimium is no longer possible for the "main" frame on the page.

It is possible to return to the main frame with the gf/gF commands. But, it's not always apparent that you need to do so. Because the child frame that now has focus gives no indication of that being the case, and Vimium doesn't hint at it either, you might return to a page and be confused as to why the page seems no longer responsive to Vimium. Only if you're familiar with a site (e.g. gmail) and know that certain frames exist in the markup will you know when there's a frame, and that you need to gf/gF to return focus back up to the main frame.

Include a screenshot if applicable.

Browser and Vimium version

Chrome: 87.0.4280.88 (Official Build) (x86_64)

Vimium: 1.66

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the iframe interaction described in the issue, then start with the focus and frame-navigation behavior exposed by the gf/gF commands. Trace how Vimium handles returning to the main frame and determine how the loss of focus can be indicated or avoided. Done means iframe interaction no longer silently leaves the main frame unusable, with the behavior covered by an appropriate verification.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.