fanglingsu / vimb

Vimb - the vim like browser is a webkit based web browser that behaves like the vimperator plugin for the firefox and usage paradigms from the great editor vim. The goal of vimb is to build a completely keyboard-driven, efficient and pleasurable browsing-experience.
https://fanglingsu.github.io/vimb/
GNU General Public License v3.0
1.35k stars 100 forks source link

Hinting and page navigation stops working after some time #769

Open machinedgod opened 2 months ago

machinedgod commented 2 months ago
Version:         3.7.0
WebKit compile:  2.40.2
WebKit run:      2.44.3
GTK compile:     3.24.38
GTK run:         3.24.43
libsoup compile: 3.4.2
libsoup run:     3.4.4
Extension dir:   /usr/lib/vimb

Steps to reproduce

It happens so that after visiting certain pages, hinting and navigating the page using hjkl stops working. Navigating through history via <C-O> and <C-I>, opening new pages and new tabs works fine.

Unfortunately I can't find a repeatable pattern of reproduction. Sometimes it seems it works for hours at end, sometimes I have to restart immediately.

It /mainly/ seems to trigger by quickly jumping between arch wiki, duckduckgo and stack exchange.

I attempted to run it from the shell so I can observe stdout and stderr, but as mentioned I can't trigger it immediately.

Just as a note - hardware acceleration is set to never.

Expected behaviour

Application works as normal.

Actual behaviour

Hinting and page navigation stops working.

machinedgod commented 2 months ago

Some progress on this - I decided to log everything VImb does, and caught the error in the standard log:

** (vimb:1405660): WARNING **: 04:58:58.819: Failed dbus method EvalJs: The connection is closed

It consistently happens when trying to open websites which are a complete "modern web development" mess, one good reproducible example is Unreal Engine References

I can understand EvalJS for hints failing, but I think there should be an error presented to the user, and it should re-start whatever proxy is it running to append hints HTML and JS on it.

I found a piece of code that is adjacent to this, so I'll see if I can produce a fix for it.