vimium-c icon indicating copy to clipboard operation
vimium-c copied to clipboard

The JavaScript in all Firefox tabs becomes unresponsive after each update

Open 5j9 opened this issue 2 years ago • 1 comments

Describe the bug

After each update is released, Firefox automatically updates Vimium C, which is great! The issue however is that I've noticed after each update all Firefox tabs that have Javascript running (e.g. Gmail) stop working properly and become somewhat unresponsive to JS events.

This is usually not a big deal, a simple refresh on those tabs that have stopped will make things OK again. However, refreshing tabs might lead to losing unsaved data sometimes. I don't know if it is possible to fix this, but would be nice if it is.

One workaround could be to disable automatic updates for Vimium C and only update it manually when all important work is saved.

To Reproduce

Steps to reproduce the behavior:

  1. Open some websites with heavy JS usage.
  2. Wait for Vimium C to get updated (Might take a while. Sorry, I don't know any other way to reproduce.)
  3. Try interacting with those tabs after the update.

Browser, OS and Vimium C versions

  • Browser name: Firefox
  • Browser version: 115.0.2
  • Vimium C version: 1.99.993
  • OS name and version: Windows_NT 10.0 19045

5j9 avatar Jul 16 '23 16:07 5j9

Sorry this "conflict" happens "by design" and there's no way to turn off it easily.

The root cause is:

  1. Vimium C "needs to know" what words, links and buttons are "clickable"
  2. On Firefox, it installs a "hook" to collect the info, and the installation is done as soon as possible - once a page starts loading
  3. But Firefox kills the hook whenever it thinks an old version of Vimium C should go dead
  4. the hook will not work any more, making most web pages break

This is indeed annoying, but I can not change what the Firefox team wants ...

Besides, this feature can not be turned off by adding a checkbox on Vimium C Options, because:

  1. the hook must be added as early as possible; otherwise some pages will break when it "notices the hook"
  2. when a page starts loading, there's no way to access your configuration on Vimium C Options
  3. in fact, all configurations will be ready in a very small while - though the while does exist

gdh1995 avatar Jul 23 '23 13:07 gdh1995