Telegram Web K can leave Firefox MediaPDecoder threads running at very high CPU usage while the Telegram tab is apparently idle. In the observed incident, four native WebM decoder threads consumed approximately 97–99% CPU each, for approximately 396–403% total CPU usage, and continued running for about seven hours.
The tab was used mainly for text messaging, with no intentional audio or video playback active. Reloading Telegram did not stop the decoder threads because Firefox reused the same content process. Fully closing the Telegram tab terminated the process and removed the CPU load.
After reload, the visible video elements were paused and had empty src/currentSrc, readyState=0, and networkState=0, with no active media resources visible. Profiling showed native MediaPDecoder/WebM code, including nestegg_track_video_params, rather than a JavaScript worker loop.
The exact trigger is unknown and deterministic reproduction has not yet been established. It may involve a temporary WebM object such as a video message, GIF/video sticker, or media preview.
Workaround: Fully close and reopen the Telegram Web K tab. No active microphone capture or signs of mining were found.
Steps to reproduce
Deterministic reproduction has not yet been established. These are the steps from the observed incident:
Open Telegram Web K in Firefox.
Use Telegram mainly for text messaging; do not intentionally play audio or video.
Leave the Telegram tab apparently idle.
Inspect Firefox CPU usage with about:processes or pidstat.
Four MediaPDecoder threads appear, each using approximately 97–99% CPU, with approximately 396–403% total CPU usage.
Leave the tab running. In the observed incident, the threads continued for about seven hours.
Reload the Telegram tab. The same content process and decoder threads continue running.
Fully close the Telegram tab. The old process terminates and the CPU load disappears.
Reopen Telegram Web K. The new process returns to approximately 2% idle CPU.
Current result
Firefox can keep four native WebM MediaPDecoder threads running at approximately 97–99% CPU each while Telegram Web K is apparently idle. Reloading the tab does not terminate the decoder work when the same Firefox content process is reused.
Expected result
When media is stopped or removed, Telegram should cancel the decoder work and release its resources. Reloading Telegram should not leave WebM decoder threads running and consuming CPU.