Consider dealing with implicitly shared permissions between google.com and google.com/maps
Categories
(Core :: Privacy: Anti-Tracking, defect)
Tracking
()
People
(Reporter: saschanaz, Unassigned)
References
Details
Google seems to ping geolocation permission silently since around April 2026:
yMi = class {
async Umb() {
var a = (0, _.Ef) (),
b = a();
a = a(1);
try {
let d,
e;
if (!((d = navigator) == null ? 0 : (e = d.permissions) == null ? 0 : e.query)) throw new _.ZW(1, 'HTML5 permissions API missing');
try {
const f = a(await b(navigator.permissions.query({
name: 'geolocation'
})));
if (!f) throw new _.ZW(
2,
'HTML5 geolocation permissions API returned null or undefined.'
);
var c = new _.nLi;
return _.bi(c, 4, xMi(f.state))
} catch (f) {
throw a(),
f instanceof TypeError ? new _.ZW(1, 'HTML5 geolocation permissions API missing') : f instanceof _.ZW ? f : new _.ZW(
4,
`The HTML5 geolocation permissions API returned an unknown error: ${ f }`
);
}
} finally {
b()
}
}
};
_.Un(_.mMi, class {
create() {
return new yMi
}
});
Umb (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19621)
wa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19265)
jKa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19293)
jKa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19452)
Yxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20111)
prompt (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20164)
Wxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20061)
start (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20147)
Oxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19930)
<anonymous> (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20274)
Pxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19939)
FIa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17153)
EIa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17156)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17092)
addEventListener (https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC#21)
addEventListener (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#10995)
AIa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17082)
je (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17066)
Pxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19934)
<anonymous> (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20273)
f (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22851)
f (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22857)
xpa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#6486)
f (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22845)
flatMap (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22265)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
Pf (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22105)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
Pf (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22105)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
apply (https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC#21)
IAa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#10717)
And then:
var byj = function (a) {
return new Promise((b, c) => {
navigator.geolocation.getCurrentPosition(b, c, a)
})
},
byj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20283)
byj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20282)
getCurrentPosition (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20309)
getCurrentPosition (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19114)
prompt (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20160)
Wxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20061)
start (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20147)
Oxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19930)
<anonymous> (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20274)
Pxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19939)
FIa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17153)
EIa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17156)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17092)
addEventListener (https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC#21)
addEventListener (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#10995)
AIa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17082)
je (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#17066)
Pxj (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#19934)
<anonymous> (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/(...skipped...),qmjr3?xjs=s3:formatted#20273)
f (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22851)
f (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22857)
xpa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#6486)
f (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22845)
flatMap (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22265)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
Pf (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22105)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
Pf (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22105)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
map (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22222)
b (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#22151)
apply (https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC#21)
IAa (http://web.archive.org/web/20260411004726js_/https://www.google.com/xjs/_/js/k=xjs.hd.en.MnQWgILN6NQ.2019.O/am=AA(...skipped...)eHDfl,YV5bee,d,csi:formatted#10717)
(You have to run Object.defineProperty(f, "state", { value: "granted" }) to work around Wayback Machine's geolocation override)
This means permanently giving geolocation permission to Google Maps also gives the Google Search the user location for every visit, without any in-page visual cue. This is concerning for privacy and we should consider doing something with it.
Comment 1•29 days ago
|
||
You can use container tabs and flip a pref to enable permission isolation between containers. One container for Google search and another for maps. But it requires manual setup. I’m considering building an extension similar to Facebook container that sets this up for you automatically. The permission isolation between containers unfortunately isn’t enabled by default yet.
Comment 2•29 days ago
|
||
flip a pref to enable permission isolation between containers.
Hi Emma, which pref are you referring to here?
Comment 3•29 days ago
|
||
It's permissions.isolateBy.userContext. Sorry I was on my phone earlier so I didn't have it.
Comment 4•29 days ago
|
||
Probably a bit off-topic here, but may I ask why it isn't enabled by default and isn't surfaced in the UI? Should we mention the pref in our support articles (I bet some number of users will definitely benefit from that)?
Comment 5•29 days ago
|
||
See https://bugzilla.mozilla.org/show_bug.cgi?id=1641584#c2 for more context and the bug to enable it. We should not recommend it to users because we don't have good UI for managing these permissions.
| Reporter | ||
Comment 6•29 days ago
•
|
||
For context: In Slack there was also some ideas:
- Make it more visible that geolocation is being observed in browser UI
- Force every second-level Google path to have separate permission storage
Comment 7•29 days ago
|
||
For the container approach:
I have a prototype extension that, assuming permissions.isolateBy.userContext=true, puts google.com/maps and google.com into separate containers. Works great! I did hack together a webextension API that allows extensions to enable permissions.isolateBy.userContext but I don't think that's the right solution. We should just enable this by default and figure out the remaining UX issues.
Description
•