Skip to content

Stremio's network requests are handled under a WebView2 process, causing issues with extensions that block VPN because you can't split tunnel Stremio altogether #2532

@musabagriyanik

Description

@musabagriyanik

Stremio Platform

Windows (Beta)

Describe the bug

This is totally my observation. Some extensions tend to block VPN IP ranges, and most VPN providers offer you a split tunnel feature, under different names from provider to provider. The feature is simply to let a specific application kept out of VPN tunnel, in order to keep using Stremio with those said extensions you can add all of Stremio's executables to the excluded list in your VPN program, said executables in my case are stremio-runtime.exe and stremio-shell-ng.exe, but this doesn't work because Stremio handling the network requests under WebView2, and you can't simply split tunnel WebView2, it's a shared infrastructure for other processes too.

To Reproduce

  1. Open Task Manager
  2. Open Stremio
  3. Go to Processes tab (not Details where you only see processes without their details about child processes)
  4. Type "Strem" so you will only watch the processes related to Stremio
  5. There should be one process appear under Applications list, its name is Freedom to Stream
  6. In the background processes list there should be two process, one is Stremio service (with a gray icon) and the other is WebView2 Manager
  7. Expand the WebView2 Manager, you will see two (or sometimes one) child process with Stremio's purple icon, so those are Stremio UI things.
  8. Now, put that Task Manager and Stremio window side by side.
  9. Go into Discover page in Stremio
  10. Scroll through the movies and watch the network activity in Task Manager. You simply force Stremio to download a lot of thumbnail and metadata, causing network activity.
  11. The network activity will happen in WebView2 Manager, not the other two independent Stremio processes.

Expected behavior

I'm not sure, but this doesn't look right. One because it makes VPN split tunneling impossible, you can split tunnel the system wide WebView2 (msedgewebview2.exe) executable but this will lead to excluding all applications that use WebView2, so it may affect use of other programs.

I expect Stremio to handle networking in its own processes instead of the UI renderer process, which is WebView2. So split tunneling in VPNs will work just fine.

Screenshots

You can see 1,7Mb/s network activity, this is not happening in the child processes, but it happens when you force Stremio to use network only. So I'm sure this network usage coming from Stremio. When I stop scrolling in the Discover tab, it goes to 0Mb/s

Image

App Version

5.0.0-beta.36

Device Info

Desktop

OS Version

Windows 11

Player Info

No response

Browser Info

No response

Logs

Notes

I also tried to use Stremio v4, and the problem was existing there as well, v4 uses Qt as the renderer, but Qt renderer was existing in the Stremio installation, so excluding that was easy since it's specific to Stremio, and when I excluded QtWeb...exe (don't remember the name) Stremio extensions worked just fine along with VPN. I don't know why this architecture is chosen, maybe to provide sandboxing for extensions? If it's, it's causing problems. I believe there should be other methods to make that. Maybe making WebView2 a child process of Stremio may fix it, I'm not sure if it really does, because I didn't try it. But I have an idea that VPNs with a good split tunneling implementation may be able to split tunnel the child processes of an excluded executable as well, even if they're a different executable.

Take a look at Microsoft Teams and WhatsApp for Windows, their WebView2 processes are listed under themself, not under WebView2 Manager. That's what I meant.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions