philc / vimium

The hacker's browser.
https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb
MIT License
23.43k stars 2.48k forks source link

Vimium does not work with page JavaScript disabled #753

Open denis-sokolov opened 11 years ago

denis-sokolov commented 11 years ago

I disable JavaScript for pages a lot. I use Chrome built-in functionality for that, but I tried ScriptSafe as well. With both Vimium does not act on the page if JavaScript is disabled.

Since Feb 2012 extensions should work even if JavaScript is disabled on a page, as per Chromium bug 90843.

Chrome 25.0.1364.5 (Official Build 174090) dev on Linux Vimium 1.42

Perhaps it's something about the way you choose to inject content scripts?

I really like Vimium and I really want to use it. :(

philc commented 11 years ago

Yep, seems like Vimium should be able to work on a page with disabled javascript, in theory. Assuming it's an easy fix, a pull request would be very welcome.

smblott-github commented 8 years ago

Closing. Assume resolved.

radaiming commented 8 years ago

Hi,

Looks Vimium is still not working when I disable JavaScript in Chrome Settings, but works if I use ScriptSafe.

smblott-github commented 8 years ago

Help still wanted, then.

smblott-github commented 8 years ago

Some more information.

It looks like the issue here goes beyond chrome bug 90843.

Vimium's JS is running just fine, and messaging with the background page also works.

What's seems to be happening is simply that our keyboard event handlers are not firing - which looks like another Chrome bug.

I posted a Chrome bug here. Head on over there and star that bug if you're affected by this.

dsedivec commented 8 years ago

Chrome bug 607072 has been closed as fixed with label "M-52" which I would assume means "Chrome release 52." Chrome 54 now seems to be current.

Here in Chrome 54 with JavaScript disabled, some Vimium functions work but some do not. I can scroll with j and k, page up/down with u and d, and f hints all the links. But / for searching displays nothing. However, if I hit / then start hitting j or k to scroll, nothing happens until I hit escape, which leads me to believe it's taking my input but failing to give any feedback, such as highlighting matches or scrolling so that the match is in the viewport.

Steps to reproduce:

  1. Disable JavaScript in Chrome settings.
  2. Go to some page like http://www.everymac.com/systems/apple/macbook_pro/index-macbookpro.html for example. (Make sure you don't have an exception that allows JavaScript to run on this page.)
  3. Hit j and k a bit to verify that scrolling works.
  4. Press / to start a search.
  5. Type any search string, such as "MJLU2LL" which appears only at a the bottom of that everymac.com page.

Expected result: Normal Vimium search, including scrolling to match, highlighting match, and status feedback at bottom-right of window.

Observed result: No visible change. Pressing j or k or any other Vimium command key does nothing until you press escape. (Notably, pressing enter to terminate the search will not work.)

Other notes: ? to display help also doesn't work.

OS X 10.11.6 Chrome 54.0.2840.59 (64-bit) Vimium 1.57

lime45 commented 6 years ago

Same here as @dsedivec . I'm unable to search pages with JavaScript disabled, which I believe includes all github raw content pages where searching is VERY helpful.

Windows 10 (also see it in Ubuntu 16.04) Chrome 63.0.3239.132 (Official Build) (64-bit) Vimium 1.62.4

mrmr1993 commented 6 years ago

Sounds like javascript isn't getting run in frames that Vimium creates (i.e. the search bar/HUD, the help dialog and the Vomnibar). Getting Chrome to whitelist chrome-extension:// URLs in the JS blocker should fix this.

It might be possible to add chrome-extension://* or chrome-extension://{vimium's chrome extension ID}/* to the JS whitelist manually; if so, it should make these commands work again.

dovej commented 6 years ago

The former errors as not a valid web address. The latter removes the * automatically and leaves the same broken behavior. The whitelist UI does correctly pick up the address as Vimium.

dovej commented 6 years ago

Also tried [*] and [*.]. No luck. I think Chrome's wildcard functionality for these whitelists just don't support what we're trying to do here.

I also tried chrome-extension//{vimium's ID}/pages/ as well as specific html files under pages/ like vomnibar.html and hud.html. Still not working.

ETA: I tried enabling javascript, confirmed it goes back to working, then blocked a single website. The vomnibar, search hud, etc. will then all work fine on every page except the page that has been blacklisted. Time to file another Chrome bug?

eromoe commented 5 years ago

I have comfirmed manipulating tabs no work on:

  1. pdf
  2. picture
  3. CONNECTION_REFUSED page

I think at least the functions Scroll xxx , Manipulating tabs and Using the vomnibar should work without javascript .

innaterebel commented 5 years ago

@eromoe Modern browsers don't run extensions on browser's internal pages and pages created by other extensions for security reason, so there's nothing we can do about 3 (and all pages that have chrome:// at beginning).

1 is more complicated because Chrome's native PDF viewer is an internal plug-in. For some reason Vimium works to some extent, but not very stable and obvious from time to time. You can try hit Esc first to unfocus the PDF viewer then some basic key bindings may work. Also try searching issues related to PDF here for more information.

What does 2 mean?