Permission justifications

For the Chrome Web Store submission form. One or two sentences each, as asked.

Single purpose

Shows an animated cat on the page occasionally for fun.

storage

Saves the user's own preferences — which cat they picked, how often they want visits, quiet hours, blocked sites, size and sound — plus two local counters. No browsing data of any kind is stored.

alarms

Schedules the next cat visit. A Manifest V3 service worker is shut down whenever Chrome likes, so setTimeout cannot survive; alarms are the only mechanism that can.

scripting

Registers the content script that draws the cat, and injects it into a tab that was already open before the extension was installed. It is never used to read or modify page content.

idle

Checks whether the user has stepped away, so a cat does not perform to an empty chair and does not count against the hourly limit. It reports only active / idle / locked — never what the user is doing.

offscreen

Plays a short synthesised chime. A cat that appears on its own has no user gesture behind it, so Chrome's autoplay policy would block the sound from the page. The offscreen document is closed again once things go quiet, and sound can be switched off entirely.

activeTab

Lets the toolbar bell summon a cat onto the tab the user is looking at, even if they declined full host access. It applies only to that one tab, only after the user clicks.

<all_urls> — host access, declared in the manifest

The extension draws a decorative animated cat on top of the page the user is viewing. It does not read, modify, collect or transmit page content.

It is declared up front rather than requested at runtime because the extension's whole function is to appear on ordinary browsing, and an optional flow only moves Chrome's warning to a moment when the user has already installed and is puzzled about why a cat needs it. Users who want to narrow it can do so under chrome://extensions → Site access, and the extension keeps working on demand via activeTab if they do.

What the access is used for, in full: appending one element to the page, and reading the size of the window to decide where the cat should stand. The extension never reads page text, never touches form fields, never records which sites are visited, and makes no network requests at all.

Remote code

None. No remote code is used. Every asset ships in the package: the cats are SVG generated in JavaScript and the sounds are synthesised with the Web Audio API. The extension makes no network requests at all.