How ChromeOS Virtual Desks Throttle Background Canvas Elements and How to Keep Them Active

Why moving a browser game to an inactive ChromeOS Virtual Desk pauses game timers and drops multiplayer connections, and how to prevent background throttling.

ChromeOS Virtual Desks provide an organized workspace for separating schoolwork, research, and gaming. However, many players who place an idle browser game or multiplayer lobby on Desk 2 while working on Desk 1 discover that their game abruptly disconnects or freezes within 30 seconds.

This is caused by window occlusion and background timer clamping. When a Virtual Desk is not active on your screen, ChromeOS marks all windows on that desk as fully occluded, cutting their requestAnimationFrame loop and clamping JavaScript timers to 1 execution per second.

Here is how to prevent ChromeOS from throttling your games across Virtual Desks.


1. How Occlusion Detection Works

Chromium’s compositor tracks whether a window is physically visible on the display panel. If a window is hidden behind another app or placed on a hidden Virtual Desk:

  • Canvas rendering is completely halted to save power.
  • WebSocket ping/pong timers can miss keep-alive intervals, causing the game server to disconnect you for timing out.

2. Solution: Running in a Standalone PWA Window

Instead of running the game inside a regular browser tab on a hidden Virtual Desk:

  1. In the Chrome address bar on the game website, click the Install or Create Shortcut icon in the URL bar.
  2. Check the box labeled Open as window.
  3. Move this standalone app window to your secondary Virtual Desk.
  4. Standalone window PWAs receive higher process priority from the ChromeOS window manager and are less aggressively evicted than standard background tabs.

Share this guide
DV

About the Author: Devin Vance

Devin Vance writes technical guides and performance benchmarks at TabGamer, covering browser graphics, WebGL flags, low-spec laptop optimization, and retro WebAssembly emulation.