Permissions, in plain English

Why Zero Hour needs these permissions.

When you install Zero Hour, Chrome shows a permissions screen. This is the dedicated explainer for what each permission is, why we ask for it, and what we explicitly don't do with it. Linked from the Chrome Web Store listing.

cookies

What it does: allows the extension to read browser cookies for the specified domains (eBay regional domains only).

Why we need it: at bid time, the extension reads your eBay session cookie so the bid POST includes it. Without this permission, the bid request would have no authentication and eBay would reject it.

What we don't do: we don't read cookies for any domain other than eBay's regional sites. We don't persist cookies to chrome.storage. We don't transmit cookies to our servers. We read them once per bid, attach them to the bid request, and let Chrome discard them as soon as the function returns.

alarms

What it does: allows the extension to register scheduled alarms that wake the service worker at specific times.

Why we need it: Chrome suspends idle service workers. chrome.alarms is the only reliable way to wake the worker for scheduled work, like firing a snipe at a specific moment.

What we don't do: we don't use alarms for any purpose other than snipe scheduling (and a once-daily entitlement refresh).

storage

What it does: allows the extension to read and write to chrome.storage.local and chrome.storage.sync.

Why we need it: we store your snipes (active and history), your settings (clock offset, power-nudge dismissed flag), and your install ID. All on your machine.

What we don't do: we don't transmit any of this storage to any server. Your snipes never leave your machine.

notifications

What it does: allows the extension to create Chrome system notifications.

Why we need it: when a snipe wins, loses, or fails, we tell you. The notification is what makes the entire "set a snipe and walk away" flow work.

What we don't do: we don't send notifications for any purpose other than snipe results. We don't notify based on promotional, marketing, or upsell triggers.

activeTab

What it does: grants temporary access to the active tab when you take an action that requires it.

Why we need it: when you click the "Snipe this auction" injected button on an eBay listing page, the extension reads the item details from the active tab to pre-fill the Add Snipe sheet.

What we don't do: we don't passively access browser tabs. activeTab is narrowly scoped to user-initiated actions.

tabs

What it does: lets the extension open a new tab, focus an existing one, or close a tab it created.

Why we need it: at fire time, the bid POST has to come from the eBay listing page so your cookies and eBay's anti-fraud token are present natively. The service worker opens (or reuses) a background tab on the listing, asks the bidder content script to place the bid, then closes the tab if it opened it.

What we don't do: we don't enumerate other tabs, read their URLs, or inspect their content. The tabs permission in Chrome's API surface lets the extension call chrome.tabs.create, update, and remove; it does not give us a window into your browsing.

host_permissions: ebay regional domains + zerohourbid.com

What it does: allows the extension to make network requests to and read cookies for the listed domains.

Why we need it: the eBay domains are required to place bids and read cookies; zerohourbid.com is required for the entitlement check.

What we don't do: we don't have permissions for any other domains. The extension cannot read cookies, place requests to, or modify pages on any non-listed domain. There is no <all_urls> permission.

What we explicitly do not ask for