Is Maps & Driving Directions safe?
Maps & Driving Directions fetches remote HTML from its own server and injects it into the new tab page without sanitization.
On each new tab open, the extension requests HTML content from mapsdrivingdirections.net and renders it directly into the DOM via React's dangerouslySetInnerHTML, allowing the server to inject arbitrary markup or scripts. Additionally, every character typed into the extension's search bar is transmitted to the vendor's autosuggest endpoint in real time, with no debounce delay. Submitted search queries are also routed through the vendor's redirect endpoint when local storage has been cleared.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Search input sent to autosuggest on each change
Typing in Maps & Driving Directions' new-tab search box updates search state and fires an autosuggest GET to mapsdrivingdirections.net, with the typed text as the q parameter, so partial terms are sent before you submit.
What actually happens
You type a search term into the extension's new-tab search UI.
This applies to both the header search box and the larger main search box.
The extension sends the current text to its autosuggest endpoint as the q parameter.
The code path runs when the search value changes and skips only the empty-string case.
Fields in the autosuggest request
- Current search textcoffee near union station
The words you are typing can reveal a destination, address fragment, business name, or other search interest before you press Enter.
- Autosuggest query parameterq=coffee%20near%20union%20station
The current text is placed into the web address sent to the suggestion service.
Captured request
The code that does this
The search inputs feed state that immediately drives autosuggest requests
Header search state and autosuggest request
static/js/main.1e7c191f.chunk.jsvar C = function (e) { var t = Object(c.useState)(""), n = Object(o.a)(t, 2), s = n[0], A = n[1]; Object(c.useEffect)( function () { de(); }, [s] ); var de = function () { countTop = 0; 0 !== s.length ? r.a.getJSON("https://mapsdrivingdirections.net/extension/public/autosuggest?q=" + encodeURIComponent(s), function (e) { var t; e.gossip.results.length > 0 && r()("#topbarsearch").val() ? r()(".search-border1").addClass("expand-search1") : r()(".search-border1").removeClass("expand-search1"), r()("#topbarsearch").blur(function () { r()(".search-border1").removeClass("expand-search1"); }), ee(e.gossip.results); r()("#topbarsearch").keydown(function (e) { var n = r()(".pointerCursor"); if (40 === e.which) if (t) { t.removeClass("active"); var c = t.next(); c.length > 0 ? ((t = c.addClass("active")), (document.getElementById("topbarsearch").value = 0 === document.getElementById("topbarsearch").value.length ? "" : t[0].innerText)) : ((t = n.first().addClass("active"))[0] && (document.getElementById("topbarsearch").value = 0 === document.getElementById("topbarsearch").value.length ? "" : t[0].innerText)); } else (t = n.first().addClass("active"))[0] && (document.getElementById("topbarsearch").value = 0 === document.getElementById("topbarsearch").value.length ? "" : t[0].innerText); else if (38 === e.which) if (t) { t.removeClass("active"); var s = t.prev(); s.length > 0 ? ((t = s.addClass("active")), (document.getElementById("topbarsearch").value = 0 === document.getElementById("topbarsearch").value.length ? "" : t[0].innerText)) : ((t = n.last().addClass("active"))[0] && (document.getElementById("topbarsearch").value = 0 === document.getElementById("topbarsearch").value.length ? "" : t[0].innerText)); } else (t = n.last().addClass("active"))[0] && (document.getElementById("topbarsearch").value = 0 === document.getElementById("topbarsearch").value.length ? "" : t[0].innerText); else if (13 === e.which) { if (countTop == 0) { return; } else { countTop++; } const topSearch = document.getElementById("topbarsearch").value; if (topSearch) { chrome.storage.local.get(['date'], results => { if (results && results.date) { executeSearch(topSearch, 'chrome'); } else { handlesuggestions(e, topSearch); } }); } } }); }) : ee([]); };};Header input assigns typed text to that state
static/js/main.1e7c191f.chunk.jsObject(b.jsx)("input", { list: "topbar_autosearch", id: "topbarsearch", autoComplete: "off", type: "search", placeholder: "Search", "aria-label": "Search", onChange: (function () { var e = Object(d.a)( h.a.mark(function e(t) { return h.a.wrap(function (e) { for (; ;) switch ((e.prev = e.next)) { case 0: A(t.target.value); case 1: case "end": return e.stop(); } }, e); }) ); return function (t) { return e.apply(this, arguments); }; })()})Main search state and autosuggest request
static/js/main.1e7c191f.chunk.jsvar y = function (e) { var t = Object(c.useState)(""), n = Object(o.a)(t, 2), s = n[0], A = n[1]; Object(c.useEffect)( function () { count = 0; !(function () { var e; 0 !== s.length ? m.a .get("https://mapsdrivingdirections.net/extension/public/autosuggest?q=" + encodeURIComponent(s)) .then(function (t) { var n, c = t.data; c.toString().includes("Server Error:") || (c.gossip.results.length > 0 && r()("#mainsearch").val() ? r()(".search-border").addClass("expand-search") : r()(".search-border").removeClass("expand-search"), r()("#mainsearch").blur(function () { r()(".search-border").removeClass("expand-search"); }), M(c.gossip.results), r()("#mainsearch").keydown(function (t) { var e = r()(".main_search_autocomplete_item") if (40 === t.which) if (n) { n.removeClass("active"); var c = n.next(); c.length > 0 ? (n = c.addClass("active"))[0] && (document.getElementById("mainsearch").value = 0 === document.getElementById("mainsearch").value.length ? "" : n[0].innerText) : (n = e.first().addClass("active"))[0] && (document.getElementById("mainsearch").value = 0 === document.getElementById("mainsearch").value.length ? "" : n[0].innerText); } else (n = e.first().addClass("active"))[0] && (document.getElementById("mainsearch").value = 0 === document.getElementById("mainsearch").value.length ? "" : n[0].innerText); else if (38 === t.which) if (n) { n.removeClass("active"); var s = n.prev(); s.length > 0 ? (n = s.addClass("active"))[0] && (document.getElementById("mainsearch").value = 0 === document.getElementById("mainsearch").value.length ? "" : n[0].innerText) : (n = e.last().addClass("active"))[0] && (document.getElementById("mainsearch").value = 0 === document.getElementById("mainsearch").value.length ? "" : n[0].innerText); } else (n = e.last().addClass("active"))[0] && (document.getElementById("mainsearch").value = 0 === document.getElementById("mainsearch").value.length ? "" : n[0].innerText); else if (13 === t.which) { if (count === 0) { return; } else { count++; } const mainsearch = document.getElementById("mainsearch").value; if (mainsearch) { chrome.storage.local.get(['date'], results => { if (results && results.date) { executeSearch(mainsearch, 'chrome'); } else { handlesuggestions(e, mainsearch); } }); } } })); }) .catch(function (e) { return console.log(e); }) : M([]); })(); }, [s] );};Main input assigns typed text to that state
static/js/main.1e7c191f.chunk.jsObject(b.jsx)("input", { id: "mainsearch", type: "search", placeholder: "Search or type a URL", ref: g, autoFocus: !0, autoComplete: "off", "aria-label": "Search or type a URL", onChange: (function () { var e = Object(d.a)( h.a.mark(function e(t) { return h.a.wrap(function (e) { for (; ;) switch ((e.prev = e.next)) { case 0: A(t.target.value); case 1: case "end": return e.stop(); } }, e); }) ); return function (t) { return e.apply(this, arguments); }; })()})Destination for the autosuggest request
- mapsdrivingdirections.net
Receives the search-box text as the q parameter and returns autocomplete suggestions consumed by the extension UI.
What it can do
Permissions this extension asks for, as declared in version 1.0.9. Asking for a permission is not a finding on its own - it is what the extension can do if it chooses to.
Run searches with your default search engine
search
Store data in your browser
storage
Where it sends data
Destinations our analysis observed Maps & Driving Directions contacting. Sending data somewhere is not a finding on its own - an extension that syncs your settings has to talk to its own server - but it is where your data can go, and who else it goes to.
- mapsdrivingdirections.net
Maps & Driving Directions sends data to mapsdrivingdirections.net. No other extension we have analyzed sends data here.
