Privacy Policy – Browser Extensions

Last updated: 14 October 2026 (Firefox editions, more extensions, Save Scroll Position, Tab Lock, Find and Replace, EXIF Viewer, Auto Refresh, ZIP to AI Chat, Duplicate Tab Guard, Link Extractor, Web Highlighter, Website Blocker, Tab Renamer; Contrast Checker license storage)

This policy applies to the Chrome extensions published by Lakeside Digital, currently: Table to Excel, CSS Viewer, Blur Sensitive Info, Bulk File Downloader, Contrast Checker, Disable Autoplay, Fake Form Filler, Form Recovery, Meet Attendance, Merge PDF Offline, Multi-Keyword Highlighter, Page Ruler, Save Scroll Position, Tab Lock, Find and Replace, EXIF Viewer, Auto Refresh, ZIP to AI Chat, Duplicate Tab Guard, Link Extractor, Web Highlighter, Website Blocker and Tab Renamer. They are available for Chrome and Firefox; "Chrome" below also means your browser in general.

Controller

Andreas Duca – Lakeside Digital
Leibstraße 90
85540 Haar
Germany
E-mail: scanlystudio.support@proton.me

Page content stays in your browser

By default the extensions only access the page you are on when you open them (permissions activeTab and scripting). Tables you export, copy, chart, compare or preview are processed entirely in your browser. CSS Viewer reads the styles of the elements you hover after you start inspecting and writes them to your clipboard only when you click or press a copy key. We never receive, store or transmit page content, styles or exported files.

Optional site access

If you switch on the hover menu or a feature that needs it, Chrome asks you to grant access to websites (optional permission). The extension then adds its table menu to pages you visit and reads tables only on those pages, locally. In Blur Sensitive Info, this optional access is requested only when you turn on "Remember on this site" (for that one site) or "Auto-blur on every site", so your saved blur picks or chosen auto-detection types are applied automatically on page load. You can withdraw this access at any time in the extension settings or in Chrome under Extensions › Details › Site access.

Watched tables

If you watch a table for changes (Pro), the extension reloads that page in the background at the interval you choose, using your normal browser session, and compares the table locally. The request goes directly from your browser to that website, not to us. Remove a watch to stop it.

Blurred elements, saved sites and custom words

Blur Sensitive Info only touches a page after you click the toolbar icon, press a keyboard shortcut or use the right-click menu, or on a site where you turned on "Remember on this site" or "Auto-blur on every site". What you cover, your saved sites with their element selectors, your custom word list and the chosen auto-detection types (emails, phone numbers, card numbers/IBANs, API keys, amounts) are saved locally with chrome.storage.local and never leave your device. Nothing on the page itself is read, stored or transmitted; the extension only adds a visual cover in your browser.

Contrast Checker: colors, screenshots and reports

Contrast Checker reads the text and background colors of the page in the current tab only after you start a scan from the toolbar icon or the keyboard shortcut. When you use the eyedropper in a browser without a built-in one, the extension takes a screenshot of the visible tab (permission activeTab) so you can click a pixel; the screenshot stays in memory in that tab and is discarded right after. Your last color pair and your last report (Pro: the page address, title, colors, selectors and short text snippets of the checked elements) are saved locally with chrome.storage.local and never leave your device. Reports you download are created in your browser.

Bulk File Downloader: links, downloads and file sizes

Bulk File Downloader reads the link addresses and link texts of the page in the current tab only when you open its popup there (permissions activeTab and scripting). The files you select are downloaded by your browser directly from the websites that host them (permission downloads); nothing passes through us. The Pro features "All tabs" and the size filter ask for optional access to all websites: with it, the extension reads the links of your other open tabs and asks the hosting servers for the file size (a HEAD request from your browser). Your folder and file name pattern are saved with chrome.storage.sync, the progress of a running download batch only for the browser session. The link list and the CSV export are created in your browser and never leave your device.

Save Scroll Position: positions, bookmarks and site rules

Save Scroll Position runs on the websites you allow (optional access to all websites, or to single sites you choose in the popup). On those pages it notes how far you have scrolled and stores the page address (without tracking parameters), the page title, the position and the time of your last visit in the extension's local storage (chrome.storage.local), so the page can open at the same spot next time. Pro bookmarks, the reading list and site rules are stored the same way. This data never leaves your device; the CSV or JSON export is created in your browser and saved only where you choose. You can delete single pages in the popup or all saved positions in the settings, and removing the extension deletes everything.

Tab Lock: locked tabs and rules

Tab Lock stores the address, title and position in the window of the tabs you lock, your auto-lock rules and your settings in the extension's local storage (chrome.storage.local), so a locked tab can be reopened after it was closed. It reads the address of open tabs only to show and reopen locked tabs and to apply your rules. Access to websites is optional and only requested when you turn on the close confirmation; it is used solely to add the browser's "Leave site?" prompt to locked pages, and no page content is read. This data never leaves your device. Unlocking a tab removes its entry, and removing the extension deletes everything.

Find and Replace: text in fields and saved sets

Find and Replace runs on a page only when you open it from the toolbar or with its keyboard shortcut (Chrome's activeTab; it has no access to websites in advance). It then reads and changes the text of the text fields and editors on that page inside your browser to find, highlight and replace matches. This text is never stored or transmitted. Your last search, your options and your saved replacement sets are kept in the extension's local storage (chrome.storage.local) on your device. Removing the extension deletes them.

EXIF Viewer: images you choose to inspect

EXIF Viewer runs only when you right-click an image and choose "Show EXIF data", or when you open its popup (Chrome's activeTab; it has no access to websites in advance). It then loads that image and reads its metadata (for example camera, exposure settings, date and GPS location) inside your browser. The image and its metadata are never stored or transmitted. If the image is stored on a different server than the page, the extension first asks for permission to load images from that site (optional site access, see above); you can remove it at any time. Clean copies without metadata and JSON/CSV exports (Pro) are created on your device and saved through your browser's normal download.

Auto Refresh: timers, page alerts and rules

Auto Refresh reloads the tabs you set a timer for. To keep the timers running after a browser restart and to list them in the popup, it reads the address and title of open tabs and stores, for each timer, the tab's address and title, the interval, your options and the time of the next reload in the extension's local storage (chrome.storage.local). Pro auto-start rules (address patterns with their settings) are stored the same way. It does not read page content for the free features. The Pro page alert reads the visible text of a page only on sites you allow it for (optional site access, requested in the popup for that single site); it compares the text with your keyword or with a fingerprint of the previous load inside your browser and shows a browser notification on a match. The page text is never stored or transmitted. This data never leaves your device. Stopping a timer or deleting a rule removes its entry, and removing the extension deletes everything.

ZIP to AI Chat: files, chat pages and GitHub

ZIP to AI Chat runs on the chat pages of ChatGPT (chatgpt.com, chat.openai.com), Claude (claude.ai) and Gemini (gemini.google.com), where it adds a side button and a panel. It does not read your conversations or any other page content. When you choose a ZIP file or a folder, it is unpacked and filtered inside your browser; the text files you select are handed to that page's own upload field, exactly as if you uploaded them yourself. From then on, what the chat service does with them is governed by that service's terms and privacy policy. With Pro you can enter the address of a public GitHub repository: your browser then requests the branch list from api.github.com and downloads the repository archive from codeload.github.com directly; GitHub receives that request like any visit to github.com. Your filter settings (excludes, size limit, your own patterns, bundle size) are stored in the extension's storage (chrome.storage.sync). Files and their contents are never stored by the extension and never sent to us. Removing the extension deletes its settings.

Duplicate Tab Guard: open tabs and site rules

Duplicate Tab Guard reads the address, title and pinned state of your open tabs to find pages that are open more than once, to show their number on the toolbar icon and to list them in the popup. This comparison happens only inside your browser; addresses and titles are never sent to us or anyone else. When you close duplicates, the addresses and titles of the closed tabs are kept in the browser's session storage (chrome.storage.session) so that Undo can reopen them; this is cleared when you undo or close the browser. Your settings and, with Pro, your site rules (site names and options) are stored in the extension's storage (chrome.storage.sync). Removing the extension deletes them.

Link Extractor: links, exports and status checks

Link Extractor reads the link addresses, link texts, rel and target attributes and web addresses written as text on the page in the current tab only when you open its popup there (permissions activeTab and scripting). It never opens, follows or downloads the linked pages or files. The Pro features "All tabs" and "Check status" ask for optional access to all websites: with it, the extension reads the links of your other open tabs, and the status check asks each linked server for its HTTP status code (a HEAD request from your browser, without cookies). The link list, the copied text and the CSV or Excel export are created in your browser and never leave your device. Your filter and copy-format settings are saved in the extension's storage (chrome.storage.local).

Web Highlighter: highlights, notes and automatic restore

Web Highlighter saves the text you highlight on a page, a few words before and after it (to find the passage again), its color, your optional notes and tags, and the page address and title. All of this is stored only in your browser (chrome.storage.local) and never uploaded. Without automatic restore, the extension works on a page only when you click its icon, use its keyboard shortcut or its right-click menu there (permissions activeTab, scripting and contextMenus). If you turn on "Restore automatically", it asks for optional access to all websites: it then runs on every page you open, looks up saved highlights for that address in your browser storage and draws them; it does not read or store anything from pages where you have not highlighted text. You can switch this off in the popup at any time. Backups and exports (JSON, Markdown, CSV, HTML) are files created in your browser and saved to your downloads.

Website Blocker: block list, schedule, password and statistics

Website Blocker stores the sites, subdomains and paths you add, your allowlist, schedule, pause time, optional redirect address and settings only in your browser (chrome.storage.local). It turns this list into browser blocking rules (declarativeNetRequest), so the browser stops a visit before the page loads; the extension does not read page content and does not record your browsing. The optional access to all websites is used only to send a stopped visit to the extension's own blocked page (or your redirect address) and to move tabs that are already open on a blocked site to that page when a pause or schedule ends. If you set a password (Pro), only a salted hash of it is stored in your browser. Statistics (Pro) count how often the blocked page was shown per entry and day; they are kept for 60 days in your browser and can be cleared at any time. The extension can still be turned off or removed on the browser's extensions page.

Tab Renamer: tab names, rules and keep names

Tab Renamer stores the names you give to tabs together with the page address (without the part after #), your optional tab icon (an emoji or a color), your rules (Pro) and settings only in your browser (chrome.storage.local). Without "Keep names" the extension changes a tab only when you click its icon, use its keyboard shortcut or its right-click menu there. The optional access to all websites ("Keep names after reload and restart") lets a small script run on every page you open: it compares the address with your saved names and rules, sets the tab title (and, with Pro, the tab icon) and puts it back when the site changes its title. It does not read or store page content. Import and export files (Pro) are created and read in your browser. You can switch "Keep names" off at any time, which removes the access.

Further extensions: what stays on your device

Disable Autoplay saves your allowed sites and rules with chrome.storage.sync; it does not read page content. Fake Form Filler saves your field rules locally and only writes generated test data into forms when you trigger it. Multi-Keyword Highlighter saves your keyword lists locally. Page Ruler measures the page in your browser and saves only its settings. Merge PDF Offline opens, merges and saves your PDF files entirely in your browser; files are never uploaded.

Form Recovery saves the text you type into forms on sites where you enabled it, together with the address and title of the page, locally with chrome.storage.local, so you can restore it after a crash or reload. Password, card number and one-time code fields are never saved. You choose how long drafts are kept and can delete them at any time.

Meet Attendance reads the participant list of a Google Meet call you join and saves participant names with join and last-seen times, plus your class lists, locally with chrome.storage.local. This data never leaves your device unless you download or copy it yourself (for example as CSV).

Data stored in your browser

Settings, your license e-mail address and whether Pro is unlocked are saved with chrome.storage.sync. If Chrome sync is enabled, Google syncs this data between your browsers. Exception: Contrast Checker keeps the license e-mail address and Pro state only in chrome.storage.local on your device, so they are not synced. Your export history (up to the last 100 tables) and snapshots of watched tables are saved locally in IndexedDB and chrome.storage.local and never leave your device. You can delete all of it at any time by removing the extension.

Purchase

Pro is a one-time purchase handled by Stripe (Stripe Payments Europe, Ltd., Dublin, Ireland) via a Stripe payment page. Stripe processes your payment details, name, billing address and e-mail address as an independent controller; we never see your card details. See stripe.com/privacy. We receive the order data (e-mail, country, amount) to fulfil the purchase and keep it as required by tax law (up to 10 years).

License check

To unlock Pro, the extension sends the e-mail address you enter and the extension name over HTTPS to our license server (lakeside-ext-api.expo.app, hosted by Expo / 650 Industries, Inc. on EAS Hosting). Contrast Checker sends them in the request body, not in the address. It does this when you check a purchase and again when you open the extension, so a refund or new purchase takes effect. The server asks Stripe whether a completed purchase exists for that e-mail and returns only yes or no. We do not store the request; the hosting provider keeps short-lived technical request logs (IP address, URL, time) for operation and security.

No tracking

No analytics, no advertising, no cookies, no sale or sharing of data beyond the processors named above. Data is used only for the extension's single purpose.

Legal basis and your rights

Processing for the purchase and license check is based on Art. 6(1)(b) GDPR (contract); request logs on Art. 6(1)(f) GDPR (secure operation). You have the right to access, rectification, erasure, restriction, data portability and objection, and to lodge a complaint with a supervisory authority, e.g. the Bavarian Data Protection Authority (BayLDA). Contact us at the e-mail above.

Changes

We update this page when the extensions change how they handle data.