Environment:
-
macOS 26.2 (Tahoe / 25C56)
-
Apple Silicon (M1 Pro)
-
JUCE 8.0.12
-
Ableton Live 12.3.2
-
Plugin using
juce::WebBrowserComponentfor UI
Crash Summary: Intermittent crash in WebKit’s process throttler when using WebBrowserComponent in an audio plugin. The crash occurs on the main thread with EXC_BREAKPOINT (SIGTRAP).
Stack Trace (relevant frames):
WebKit::ProcessThrottler::sendPrepareToSuspendIPC(WebKit::IsSuspensionImminent)
WebKit::ProcessThrottlerActivity::invalidate(WebKit::ProcessThrottlerActivity::ForceEnableActivityLogging)
WebKit::ProcessThrottlerActivity::~ProcessThrottlerActivity()
WTF::RefCounted<WebKit::ProcessThrottlerActivity>::deref() const
WebKit::AuxiliaryProcessProxy::sendMessage(...)::$_1
IPC::Connection::dispatchMessage(WTF::UniqueRef<IPC::Decoder>)
IPC::Connection::dispatchIncomingMessages()
WTF::RunLoop::performWork()
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
Behavior:
-
Crash is intermittent - plugin works fine most of the time
-
Seems to occur during UI interaction or when Ableton may be doing background operations
-
Audio processing is unaffected (crash is purely in WebKit’s UI process management)
-
The crash appears to be WebKit hitting an internal assertion when managing the web content process lifecycle
Analysis: The ProcessThrottler is WebKit’s mechanism for suspending/resuming the web content process to save resources. In a plugin context, this seems to malfunction because:
-
Plugin hosts have different lifecycle patterns than normal applications
-
The WebView may receive suspend/resume signals at unexpected times
-
There may be a race condition between WebKit’s IPC system and the host’s threading model
Workaround Attempts:
-
Not yet found a reliable workaround from the plugin side
-
The crash is in Apple’s WebKit framework code, not in JUCE or plugin code
Questions:
-
Has anyone else experienced ProcessThrottler crashes with WebBrowserComponent in plugins?
-
Are there any WebBrowserComponent configuration options that might help (e.g., preventing process throttling)?
-
Is there a way to disable WebKit’s process suspension behavior for embedded views?
