mullvad / browser-extension

Mullvad Browser Extension improves your browsing experience while using Mullvad VPN.
Other
187 stars 15 forks source link

Per Tab Proxy is Obscure and Broken #226

Open issuant opened 1 month ago

issuant commented 1 month ago

A comment on reddit just informed me that it is possible to set a proxy per tab. This was surprising information as it's not mentioned in any official documents at all and almost impossible to 'stumble on' with how the extension popup is designed.

I played around with it and the UX is not good at all. With how it is currently, it isn't so much a 'per tab' proxy as it is a 'per site' proxy. There are no options to actually pre-set a preferred location in the new tab until after fully loading a website, identifying you to the website across both locations.

After setting it, I now cannot find a way to deactivate the 'per site' proxy. Only a notification that the website is proxied through a different location than the general browser and new buttons with no explanation that never go away, 'Never Proxy' and 'Turn Off DNS'. The per site proxy persists even with browser relaunches and the 'New Identity' button does nothing to help.

There is also no way to find out which sites may have a preexisting proxy configured so you simply have to wing it and be surprised when some website loads.

ruihildt commented 1 month ago

Thank you for your feedback @issuant.

This is not advertised as a Mullvad Browser feature, because it's a Mullvad Browser Extension feature (I have moved this issue to the extension project). You can use it outside of Mullvad Browser (basically on any modern Firefox-based browser), as long as you are a Mullvad VPN user.

The feature is not fully developed yet, and there are some hard edges as you have discovered. I'm currently working on having a list of configured proxies.

It is an interesting thought to open a new tab using a specific proxy, and I'm interested in how you imagine that would work in terms of user experience:

issuant commented 1 month ago

It is an interesting thought to open a new tab using a specific proxy, and I'm interested in how you imagine that would work in terms of user experience:

* would you set a "new tab" default proxy?

Not sure if I understand the question correctly. What I want is to have an option to set the proxy per tab, before loading any website, not so much a default for new tabs in general.

With this implemented, it would possible to open a new tab (A) then set its proxy to Location1 before navigating to any website, and then another new tab (B) to Location2 also before navigating to any website in there. Further, unlike the current design where it is 'per site', all traffic regardless of the sites navigated to will go through Location1 and Location2 in new tabs A and B respectively.

* how would that be different from "Proxy for all websites"?

'Proxy for all websites' applies to all tabs. What I am asking for is an option to have an exception to that when opening a new tab.

* there's a plan to randomize from available proxy location when visiting a website, would that solve your use case?

That sounds useful but is a different feature.

issuant commented 1 month ago

@ruihildt

Separately, there should be an option to turn this off (and maybe it shouldn't persist with browser relaunches unless the user explicitly sets it, like with a lock button). I currently have a few sites with a 'per site' proxy that I simply have not found a way to turn off. That's no good.

ruihildt commented 4 weeks ago

Here's my first try at addressing those issues. I would be grateful if any of you could give me some feedback.

Screencast_20240814_174934.webm

ruihildt commented 3 weeks ago

It's now possible to add a proxy manually: image

issuant commented 1 week ago

That looks fantastic! Love the 'full screen view' too.

On a related note, I cannot tell if it's changed already since it's not shown in the webm or screenshot but a searchbox when using 'Select location', like in the desktop and mobile apps, is needed.

issuant commented 1 week ago

Your reply in #232 has left me curious. This implementation is not 'per tab' so, and I am not sure if this is the right framing but, does the custom proxy apply to everything loaded 'through' the specific domain?

For example, Github has assets that come in from https://*.githubusercontent.com, which is a different domain than https://github.com. If my 'Default proxy' is Belgium and my 'Custom proxy' for https://github.com is Albania, what does https://*.githubusercontent.com in the tab see?