diff --git a/PRIVACY.md b/PRIVACY.md index 2bcccee..84cd214 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -1,6 +1,6 @@ # Privacy policy — Clay Slip -_Last updated: 2026-05-13_ +_Last updated: 2026-05-13 (per-site permissions model)_ Clay Slip is a developer tool. It runs entirely on your device, in your browser. **It does not collect, transmit, sell, or share any personal data.** @@ -33,7 +33,7 @@ You can clear everything from the extension's **Options** page (Reset preference ## What the extension reads from the page -To do its job, the content script reads: +The content script only runs on sites you have explicitly granted access to via Chrome's per-site permission prompt (see "Permissions" below). On those granted sites, it reads: - The `data-uri` and `data-editable` attributes that Clay sites set on rendered components. - Standard `
` metadata (`+ Clay Slip ships with no site access by default. Add the hostnames of your + Clay deployments here — Chrome will show a native permission prompt for each one. The + extension only runs on sites you’ve explicitly granted. +
+ + {grantedHosts.length === 0 && ( ++ No sites granted yet. Add one below or click the toolbar icon on a Clay page and grant + access from there. +
+ )} + + {grantedHosts.length > 0 && ( +{host}
+
+ www.thecut.com (no https://, no path).
+
+
+ {pendingMappingHosts.length} host
+ {pendingMappingHosts.length === 1 ? '' : 's'} from your site mappings below
+ {pendingMappingHosts.length === 1 ? ' is' : ' are'} not granted yet:{' '}
+ {pendingMappingHosts.map((h, i) => (
+
+ {i > 0 && ', '}
+ {h}
+
+ ))}
+
- This page does not appear to be powered by Clay. Open a Clay page and click the toolbar icon - to inspect components. -
+ + + {state.kind === 'loading' &&Loading…
} + + {state.kind === 'unsupported' && ( + <> +
+ This page uses an internal browser scheme (chrome://
+ , file://, extension stores, etc.) that extensions
+ can’t access.
+
+ Clay Slip needs your permission to run on{' '}
+ {state.host}. You’ll see a Chrome prompt —
+ click
+ Allow to enable inspection on every page of this site.
+
+ You can revoke access any time from{' '} + { + e.preventDefault(); + chrome.runtime.openOptionsPage().catch(() => undefined); + }} + > + Settings + + . +
+ > + )} + + {state.kind === 'grantedNonClay' && ( + <> +
+ This page on {state.host} doesn’t appear to be
+ powered by Clay. Open a Clay page and the panel will appear automatically.
+