FileLens
Privacy Policy
FileLens renders files your browser would otherwise show as raw text — Markdown and JSON — into something readable. It does this entirely inside your browser.
FileLens makes no network requests. Not to us, not to anyone. There is no server, no account, no analytics, and no telemetry. The only thing it stores is your own display preferences, in your browser.
That is not a promise about intent. It is tested.
An end-to-end test records every request a real browser makes while rendering the whole test corpus — including requests made by the extension's background worker — and fails the release if any of them is not the local file you opened or one of FileLens's own packaged files.
You can confirm the same thing from your side in about thirty seconds: open Chrome DevTools, switch to the Network tab, and open a document. The panel stays empty.
One honest exception, and it never leaves your machine
If live reload is on, FileLens re-reads the file you are currently looking at about once a second so it can re-render when you save. That read is done by the extension's background worker, because the page itself is not permitted to read its own file.
It reads that one file and nothing else — the address comes from the browser's own record of which document asked, not from anything a web page can influence — and nothing is sent anywhere. You can turn live reload off in FileLens's settings.
What FileLens stores
In chrome.storage, under these keys, and nothing else:
| Key | What it holds | Where |
|---|---|---|
theme |
Whether you chose Light, Dark, or System | synced |
railState |
Which sidebar tab was open, and whether the sidebar was collapsed | synced |
styleOverrides |
Any fonts, colours, sizes, spacing or borders you changed in the Style tab | synced |
preferences |
Which formats you left switched on, whether live reload is on, whether remote images are blocked | synced |
origins |
The websites you have chosen to enable FileLens on, if any | synced |
viewState |
How far down each file you had scrolled, so reopening it returns you there. Capped at the 200 most recent, oldest dropped first | this device only |
The synced items travel across your Chrome profile if you have Chrome Sync enabled — that is Chrome's own sync, between your own devices, and the data does not pass through us.
viewState is deliberately not synced. It is keyed by
file address, and most of those addresses are paths on one machine's disk; syncing
them would push a list of the files you open to every device signed into your
browser profile.
If your style settings grow past Chrome's per-item size limit, FileLens falls back
to chrome.storage.local, which stays on the one device, and tells you
it has done so.
What FileLens does not collect
- The content of your files. Files are read by the browser, rendered in the tab, and never leave it. Nothing is uploaded, logged, or cached anywhere outside the page you are looking at
- File names, paths, or URLs. None are recorded or transmitted
- Browsing history. FileLens has no access to your history and does not observe pages it is not rendering
- Any identifier. There is no install ID, no device ID, no user ID. Nothing distinguishes one installation of FileLens from another
- Analytics of any kind. No page views, no feature usage, no crash reports
Permissions, and why each exists
FileLens requests no access to any website when you install it.
-
storage— to remember the settings listed above. Grants no access to any page or any site. -
scripting— to start rendering on a website after you have enabled that specific site, and to restore that after a browser restart, which Chrome otherwise forgets. It cannot reach a site you have not enabled. -
activeTab— so the toolbar popup can tell you whether FileLens is on for the page you are looking at. This grants access to one tab, only while you have clicked the FileLens icon, and it ends when you navigate away. The alternative permission would let an extension read the address of every tab all the time; FileLens does not ask for it. -
file:///*— so FileLens can render local files you open. Chrome keeps this behind a switch it will not let an extension request for you: you must turn on "Allow access to file URLs" on the FileLens card atchrome://extensionsyourself. Until you do, FileLens does nothing to local files.
Websites: none at install
If you want FileLens to render files served by a particular site, you enable that one
site from the toolbar popup, Chrome asks you to confirm, and only that origin is
granted. You can see the list in FileLens's settings, remove any of them there, or
withdraw them from chrome://extensions. Removing a site in FileLens
hands the permission back to Chrome rather than keeping it.
One thing worth stating plainly rather than glossing: the origins list
is stored in chrome.storage.sync, so it reveals sites you visit and it
transits your own Google account sync. That is Chrome's mechanism, not ours.
Remote images in local files
When rendering a file from your own disk, FileLens blocks images hosted on remote servers and shows a marker where each one would have been.
This is deliberate. A local document that loads a remote image tells whoever runs
that server that you opened the file, and when. Since the point of a local file is
that it is local, FileLens does not let a document quietly make that request on your
behalf. Links are not affected — clicking an https:// link still goes
there, because that is you choosing to.
Data sharing and sale
There is no data to share or sell. We receive nothing, so there is nothing to pass on to anyone, under any circumstance.
Retention and deletion
Your preferences stay in your browser until you clear them. Removing FileLens from
chrome://extensions removes them with it, including the record of where
you had scrolled in each file. "Reset all" in the Style tab clears your style
customisations without uninstalling anything.
Because nothing is transmitted, there is no copy of anything held anywhere else that could need deleting.
Children
FileLens is a document viewer that collects no personal data from anyone, of any age.
Changes to this policy
Material changes will be recorded in the changelog and reflected in the "Last updated" date above. Any change that caused FileLens to transmit data would be a change to the product's central claim, and would be announced as such rather than buried in a policy revision.
Contact
Questions about this policy: waafaaofficial@gmail.com.
FileLens is published by WaaFaa and is free on the Chrome Web Store.