Privacy Policy — Mobile Simulator

Last updated: 2026-05-31

Extension: Mobile Simulator (Chrome Web Store)

Mobile Simulator is a Chrome extension that lets web developers preview any

URL on multiple device frames (iPhone, Galaxy, Pixel, iPad) side by side

inside one Chrome tab. This document explains what data the extension

processes and what it does not.


1. We do not sell or share your data

We never sell, rent, license, or otherwise share any data with third

parties beyond what is described in this document. There is no advertising,

no profiling, no cross-site tracking.


2. Data the extension processes locally

The following is processed on your computer only, in chrome.storage.local,

and is never sent to our servers:

device IDs, orientations, dark-mode states, and current zoom level. Saved

so you can close and re-open the tab without losing your layout.

bar, so the "Recent" list in the sidebar can show them.

theme, etc.) and your custom device definitions, if any.

You can clear all of this at any time from Chrome's extension settings

(chrome://extensions → Mobile Simulator → Site data → Clear) or from the

"Clear history" button inside the extension.


3. Browsing-target data the extension touches

To make the iframe rendering work, the extension reads and modifies HTTP

headers on requests to the URL you preview. Specifically:

and Content-Security-Policy-Report-Only response headers, so the URL

can be displayed inside an iframe.

(e.g., iPhone Safari) so the target site serves its mobile layout.

navigation to the target server.

These modifications are scoped to the single Chrome tab running the

simulator. They use Chrome's declarativeNetRequest API, which processes

the rules natively inside Chrome — the extension does not see request or

response bodies, cookies, or page content.

The extension does not read, store, or transmit:

iframe.


4. Anonymous usage analytics (enabled by default, one-click disable)

Mobile Simulator includes anonymous-usage analytics that help us

understand which features are most valued and where to invest time. It

is enabled by default so that we can see how the extension is used

across the install base. You can disable it at any time via the

"Help improve Mobile Simulator" toggle in the extension's sidebar

(Display group). Disabling is immediate — one final

analytics_opt_in_changed event records the choice, then no further

events leave your computer.

What is collected when opt-in is ON

(crypto.randomUUID()), stored in chrome.storage.local. It is not

linked to your Chrome profile, your Google account, your email, or your

IP address.

rotating, taking a screenshot, or loading a preset, the extension sends

the name of that action (e.g., device_changed, screenshot_captured,

preset_loaded) plus a minimal, non-identifying payload. The full

schema of every event type is published in

docs/ANALYTICS_EVENTS.md.

Windows / Linux / ChromeOS), browser locale (en-US, ru-RU,

…), and extension version.

truncated 200-character message is sent. URLs, file paths, and email

addresses are automatically replaced with [URL] / [PATH] / [EMAIL]

placeholders before transmission.

What is NEVER collected — even when opt-in is ON

content.

string length).

server boundary (anonymize_ips=true setting on our project).

Analytics provider

Anonymous events are sent to PostHog (https://posthog.com), an

open-source product analytics service. Our project is hosted on PostHog

Cloud US (https://us.posthog.com). PostHog's own privacy practices are

described at https://posthog.com/privacy.


4a. Feedback forms (user-initiated, not automatic)

The extension includes a Send feedback button (sidebar → Settings →

Tools) that opens an in-extension form with three categories: report a

bug, suggest an improvement, or request a device. Submissions are

user-initiated — the form never sends anything automatically.

What is sent when you submit a feedback form

reply.

/ Linux / ChromeOS), browser locale, the active device name and

viewport size (e.g. iPhone 17 Pro Max (440×956)), the number of open

device panels.

anonymous analytics is enabled**. Lets us correlate a report with the

events from that install (e.g. "this report came from someone who saw

the screenshot error this week"). If you've disabled analytics, the

identifier is dropped before transmission.

What is NEVER sent with a feedback form

it is not stored in the message we receive).

Feedback delivery pipeline

Submissions are sent over HTTPS to a small Cloudflare Worker

(*.workers.dev) under our control. The Worker validates the request

came from a Chrome extension and forwards the message to a private

Telegram chat via the Telegram Bot API. Nothing is stored — the Worker

holds no database, and the only delivery destination is the developer's

Telegram. Cloudflare's privacy practices are described at

https://www.cloudflare.com/privacypolicy/, Telegram's at

https://telegram.org/privacy.

Spam protection

The submit button is disabled for 2 seconds after the form opens to

discourage automated submissions. The Worker additionally rejects any

request whose Origin header is not a Chrome extension.

How to turn it off

Open the extension, scroll to the Display section in the sidebar,

and toggle "Help improve Mobile Simulator" off (the toggle ships

checked on; one click disables it). The act of disabling fires one final

analytics_opt_in_changed event with enabled=false and then no further

events are sent. You can also clear the stored random identifier by

uninstalling the extension or by clearing site data in

chrome://extensions.


5. Permissions justification

The extension requests the following Chrome permissions. Each is used

strictly for the feature next to it; no permission is used for any other

purpose.

PermissionWhy we need it
storageSave your simulator layout, settings, URL history, and (if you opt in) the anonymous identifier.
tabsOpen the simulator in a new tab when you click the extension icon or the right-click menu.
activeTabRead the URL of the current tab when you click the extension icon so the simulator can preview the page you were on.
scriptingInject a small