A page opening a local file does not, by itself, tell you whether it uploads that file. Inspect what leaves the browser between selection and export. This walkthrough uses desktop Chrome and a practice image with no personal information.
Separate the image path from the website path
| Path | Current visdraw implementation | Meaning |
|---|---|---|
| Select → decode → adjust → encode | Browser file access, WebGL, Canvas and local JavaScript | Core rendering does not require submitting the original to a rendering server |
| Page loading, accounts, purchases and export quotas | Ordinary site requests may occur | Local editing does not mean no networking or data processing |
| Personal filter presets | Stored in the current browser | Saved settings are not image backups or a cloud gallery |
This describes the current implementation; it does not replace inspecting the deployed version you use. Code, third-party scripts and features can change. Read the privacy policy for website data handling and the cookie page for storage choices.
1. Start recording before selecting a file
- Open the editor without importing an image. Open developer tools from the browser menu and select Network.
- Ensure recording is on. Select All and remove text and type filters. Enable Preserve log when observing across navigation.
- After the main page assets load, clear the list to distinguish subsequent traffic. Do not clear it after importing your file.
- Record the time, browser version, page address and sign-in state. Use the public practice image or another nonsensitive file.
2. Observe three phases
| Phase | Action | Inspect |
|---|---|---|
| Import | Select a local image | New outgoing requests containing files, binary data or encoded text |
| Edit | Change Exposure and white balance, then use a brush | Traffic triggered by edits, including originals, thumbnails or rendered copies |
| Export | Complete an export and keep observing afterward | Quota or sign-in requests versus image transmission, including delayed sends |
Select a request and inspect its destination, method and content type in Headers, then its body or parameters in Payload. If there is a WebSocket connection, inspect outgoing Messages too. Looking only at Fetch/XHR can miss other transmission paths. See the Chrome DevTools Network reference for the panel controls.
3. Interpret the requests carefully
| Observation | What it supports | What it does not establish |
|---|---|---|
| Fonts, scripts and page resources | The website is loading resources | That any image was uploaded |
| Account or export quota request | Identity or usage processing | Whether image content is included; inspect it |
| Image bytes or encoded image content in a request | An image transmission occurred in this operation | Retention duration or who has access |
| No image transmission observed | No upload evidence within this check | That every version and feature will never transmit an image |
4. Use offline mode as a secondary check
After the code and practice image load, switch Network to Offline and try the current editing and export actions. Continued operation supports independence from live server rendering for those actions. It does not rule out earlier uploads or sending after reconnection. Failure offline may instead involve a quota check or unloaded resource; it does not by itself prove cloud image processing.
5. Write down the scope
Record the date, browser, page, sign-in state, public sample, completed actions and observations. Mark unfinished actions as unchecked and unreadable requests as unresolved. A page update, different account or new feature is not automatically covered by the old record.
Before sharing a HAR or screenshot, remove session cookies, tokens, personal information and file content. A complete debugging log may contain sensitive data.
Also consider where the export goes
Local processing does not manage browser extensions, shared devices, screen recording or a synced downloads folder. Recipients and sharing platforms create additional data paths after export. The current service has no recoverable cloud image session, so export before refreshing or closing the tab. Locally saved filter presets cannot restore the canvas.



