JS favicon frame replacement

Watch this page’s browser tab. JavaScript generates a new, entirely static SVG image and assigns it to the page’s <link rel="icon"> element every 125 milliseconds: eight separate favicon frames per second.

The favicon contains no SVG animation, GIF, APNG, video, or CSS animation. Every frame is an embedded data: URL, so the favicon makes no network requests. If the tab icon appears to spin, the browser is accepting repeated replacements of static images—not playing an animated favicon resource.

Reference spinner updated by JavaScript
On-page reference

This image receives the same static frames. Movement here confirms that the script is running; the browser tab is the actual test.

Method
JavaScript frame replacement
Nominal rate
8 frames per second
Frame format
static SVG in a data: URL
Favicon network requests
none
Replacements so far
0

There are no controls and no alternative test modes. Frame replacement begins automatically when the page loads and continues for as long as the page’s JavaScript is allowed to run.