Map Extender
Last updated: 16 August 2026
Map Extender (“the extension”) is a browser extension that hooks into Leaflet and Google Maps instances on web pages and runs JavaScript plugins that you write or enable. This policy explains what data the extension touches and, just as importantly, what it does not do.
Using the storage permission, Map Extender keeps the following in local extension
storage on your own machine only:
| Data | Purpose |
|---|---|
| Plugin source code, name, description, match patterns, and settings | So the plugins page can show, run, and re-run your plugins |
| Registry addresses you added, and the plugin list last downloaded from each | So the gallery works offline and can tell you when an update exists |
| Per-site on/off state for the map hook and for each plugin | So your preferences persist per website |
| A short rolling log (last 200 entries) per plugin | So you can debug a plugin from the log panel on the plugins page |
| A debug-mode flag | So verbose logging can be switched on from the popup |
None of this is transmitted to the developer or to any third party. It is read and written only by the extension’s own background, content, and popup scripts running on your machine. It uses local storage rather than synced storage, so uninstalling the extension removes it.
Map Extender does not phone home. The only outbound requests it makes are:
plugin.fetch(url), the extension’s background worker performs that HTTP(S)
request on the plugin’s behalf, because a plugin running in the page cannot read cross-origin
responses. The request goes directly from your browser to the address the plugin specifies —
typically a public map-data service such as the
Overpass API for the built-in
OpenStreetMap plugins. The extension does not inspect, log, or forward the response anywhere
except back to the plugin that asked for it.
| Permission | Why it is required |
|---|---|
storage |
Keep plugin code, settings, and per-site preferences on your device, as described above. |
scripting |
Insert the map-detection bridge into the page’s own JavaScript context, so it can find and interface with Leaflet and Google Maps objects. |
userScripts |
Run your plugin code in an isolated execution world. This is the extension’s core feature. |
declarativeNetRequest |
Set the Origin and Referer headers on requests to three public Overpass API mirrors, and the Referer header on map-tile requests to the OpenRailwayMap tile server — both services reject requests that lack them. The values sent are fixed and generic (openstreetmap.org and openrailwaymap.org), so the address of the page you are on is not disclosed to those services. No other requests are affected, no response headers are altered, and no request or response content is read, modified, or collected. |
tabs |
Read the active tab’s address so the popup can show the right site’s settings. Page content and browsing history are not read or stored. |
| Host access to all sites | Plugins are user-authored and can target any website that embeds a map, so the permission cannot be narrowed in advance. It is not used to collect browsing data — see below. |
To be precise about the all-sites permission: a small map-detection script does load on the http(s) pages you visit, so the extension can tell you whether a map is present and connect to it. That script reads no page content and sends nothing anywhere — it only looks for Leaflet and Google Maps objects. You can switch it off per site from the popup (“Map hook”).
Your plugins are separate. They run only on sites whose address matches the patterns you configure, and only while you have that plugin switched on for that site.
Map Extender includes a few built-in, optional plugins — train station markers, an OpenRailwayMap overlay, an Italian cadastral overlay, and a public-transport finder — that query public open-data services directly from your browser when you enable them: OpenStreetMap Overpass mirrors, the OpenRailwayMap tile server, and the Italian Agenzia delle Entrate WMS service. These are operated by third parties and subject to their own privacy practices. The extension does not act as an intermediary or add any tracking to those requests.
Plugins you write yourself, or install from a registry, are subject to the privacy practices of whichever service they contact. Before a plugin from a registry can be installed, the extension shows you its full source code and the sites it would run on, and installing it does not enable it — that remains a separate, per-site choice. Plugin code is never updated silently: an update is offered only from the same source the plugin was installed from, and you are shown exactly what changed before anything is applied.
Map Extender is not directed at children and does not knowingly collect information from anyone, including children.
If this policy changes, the “Last updated” date above will be revised and the updated policy published at the same address referenced from the extension’s store listing.
For questions about this policy, contact the developer through the support link on the extension’s store listing page.