FF 147.0.3 on NixOS.
Vimium opens links by sending synthetic click events. This is intentional behavior so that the page can respond in non-default ways if it wants to (e.g. by triggering soft navigation). Normally, trying to open a link in a new tab through Vimium sends a click event with ctrlKey=true. When privacy pass is enabled, it sends a click event with ctrlKey=false, metaKey=true (?!).
I think this is the code that implements the behavior:
const OPEN_IN_NEW_BG_TAB = {
name: "bg-tab",
indicator: "Open link in new tab",
clickModifiers: { metaKey: isMac, ctrlKey: !isMac },
};
where isMac is ultimately determined by looking at navigator.userAgent.
The privacy pass extension rewrites User-Agent to be Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:128.0) Gecko/20100101 Firefox/128.0 regardless of what you're actually running so that our servers can't see what OS you're using. That value makes it into navigator.userAgent, Vimium thinks it's running on a Mac, and we get the behavior we're seeing here.
I can get the same behavior on a Google SERP using a UA switcher extension to spoof macOS.
Changing the User-Agent that the privacy pass extension sets would work around the issue for Linux and Windows users at the cost of giving it to Mac users. (It would also allow our servers to differentiate between users running the old extension and users running the new extension.)
I think the real solution is going to have to be something that rhymes with "Vimium arranges to have its background scripts pass its content scripts an unspoofed copy of the User-Agent".
(I've been meaning to try out Vimium for a while now; thanks for giving me a reason to finally do it.)