Bug: MacOS WebBrowserComponent Orphaned/Leaking Processes

Noticed this issue when watching activity monitor. I made a basic JUCE 6.1.2 plugin that contains a WebBrowserComponent. The WkWebView implementation seems to be spinning up several processes behind the scenes, which seems fine; when you open a plugin with a WebBrowserComponent and watch Activity Monitor, several new processes are created: “\DAW name\ Networking” (tested in Live and Pro Tools, where it was Live Networking and Pro Tools Networking respectively), “\DAW name\ Web Content” and one with the name of the WebBrowserComponent’s current loaded page. (Sometimes the Web Content one is missing, but the other two I see consistently)

The issue is that when the plugin is de-instantiated, I verified that even if the WebBrowserComponent object is destroyed with the rest of the plugin, the processes spawned by it are leaked and remain active, albeit consuming only a small percentage of CPU. So if you create a new instance of the plugin, new processes are created in addition to the leaked ones, and the number of processes keeps growing and never shrinking.

Not sure how big of an issue this is to have orphaned processes piling up, but it does seem concerning to me at least…

I have a test plugin I can share, but it’s really just the WebBrowserDemo pasted into the AudioPluginDemo-- any JUCE plugin with a WebBrowserComponent should be able to repro I believe.

Thanks for reporting. This issue should be fixed here:

1 Like