Top
Best
New

Posted by enz 1 day ago

The <Geolocation> HTML Element(developer.chrome.com)
79 points | 52 comments
mkl 4 hours ago|
This might be easier than refusing permission every time - it sounds like I can just not click it. I really dislike location permission things. I don't know what location will be shared, I don't use anything that needs a precise location, and I don't ever want to share my actual location. If location permission things showed me a map with where they think I am and let me click a (vague) location to share, I might use them, but currently to find nearest stores or whatever I just type in a postcode or use their map.

Edit: this has prompted me to go find a way to turn off location permission requests in the browser settings. It turns out you can do it under Privacy and Security > Site Settings in Firefox and Chrome.

mpeg 1 hour ago||
This element has an autolocate attribute that will request permission automatically, plus it doesn't supersede the JS api, it simply provides a declarative alternative to it, so sites that follow this negative pattern will keep doing so.

At the same time, there is no reason to not implement this pattern today and require user intent prior to requesting the permission

jauco 1 hour ago||
According to the post, autolocate only does something after a user initiated permission has been granted.

So on the first vist you still need to click the button. On the second visit the callback will be triggered directly.

But, well, nothing prevents a big fat html modal on the page pointing to the button, now does it? If you want to annoy your product^H^H^H^H^H^H^Husers then you can always find ways to do so.

ivanjermakov 4 hours ago||
> easier than refusing permission every time

Most browsers allow setting default permissions for all sites at once.

mkl 4 hours ago||
Not default permissions, it turns out, but you have a global choice between letting sites ask for permission or blocking the requests entirely.
marginalia_nu 5 hours ago||
This seems pretty sketchy, and I don't really understand what prevents a website from clickjacking.

The original flow is awkward, but also renders the permission element in a location that can't be clickjacked, thus offering some protection from geolocation.

adzm 5 hours ago|
It still pops up a permission confirmation dialog
bflesch 4 hours ago||
It explicitly pops up the confirmation dialog even though user has previously DENIED that geolocation permission dialog. The whole thing is only created because they see "high denial rates" and want to create a way to permanently undo these denials.
jeroenhd 4 hours ago||
The spec doesn't mandate such behaviour, that's up to the user agent to implement.

I've had to deal with plenty of people who couldn't do things like use Jitsi or other web apps because they missed or denied the permission prompt before reading them. The tiny icons in the address bar are barely recognised as clickable items by most users, which is a good thing for toning down annoyances but an awful inconvenience when trying to help people.

In a few cases, the solution to "accidentally dismissed permission popup" was "make everyone else download an app full of trackers".

bflesch 4 hours ago||
Jitsi is about audio / video where this would make more sense, not about geolocation.

Geolocation based on IP address is always done in the background, so they already know what city you are from. But Google wants to have the nice high-precision location from our GPS chips so they can permanently associate the IP address, and available WIFIs/Bluetooth/network devices and all related MAC addresses to a specific building.

And they want to have this specific functionality so they can organically trick non-power-users who got accustomed to the permission popup dialogs into re-sharing their location.

jeroenhd 1 hour ago|||
> Geolocation based on IP address is always done in the background, so they already know what city you are from

They don't. Maybe the trackers do, but most websites place me 100km to the west. When I want to look up opening times for supermarkets near me, I like the "show nearby" button.

Even Google gets confused because I VPN back to my home network. Every time I spend a few days somewhere else, Google's IP-based geolocation is broken again.

wongarsu 3 hours ago||||
The audio/video version is in the works [1]. I imagine geolocation just got to this stage first because it's far simpler.

And IP-based geolocation is really unreliable beyond the country level. It depends on ISPs using a different pool of IP addresses for each city. That seems to be the norm in the US, but is not how every ISP runs their operation

1: https://developer.chrome.com/origintrials/#/view_trial/37362...

bflesch 2 hours ago||
Oh come on please stop this insincere false narrative. IP-to-geolocation works extremely well even with semi-public databases, and Google has spent billions on collecting a very powerful database of it.

Google is internally fusing data from all devices that were ever in your LAN or near your WIFI access point. It merges them based on:

  - outside IP address given by ISP and mobile phone carriers
  - list of network devices incl. IP address & MACs (do you have a 3d printer or not?)
  - any info they can extract via their Smartphone Apps both on Android and IOS
  - Android devices share geolocation data with google anyways
  - user agents & browsing history on google properties and 3rd party websites
  - every time your IP addresses hit anything in google cloud or google CDNs (e.g jquery from googlestatic.com or google fonts)
  - all data you have ever provided to them (payment data, gcloud, gmail)
  - all the tracking that is already built into chrome and other google software
Plus they procure data from third-party providers. Only a single app on your smartphone needs to have geolocation privilege and then the data (location, ip address and user data) is available for google to digest via their scripts/SDKs which are packaged into basically every smartphone app.

The large tech companies have significant incentive to mutually share data with each other, that's why you often see Javascript from one tech company included in the website or product of another one. It's enough to touch a google dc with a single packet included in the facebook app for them to associate your session with the new IP address and vice versa.

Google has years of data on how often user agents and devices behind a certain IP address change. They can very confidently say if your ISP-provided IP address has been rotated or not, and where it was rotated to. They most definitely have enough GPS positions from smartphones that they can predict where you sleep, so if your smartphone shows up under another IP address but the network devices around it stay the same they can easily deduce that this is your new dial-up IP address.

All of this not even discusses unethical or clearly illegal ways these companies have acquired data by abusing a lack of security measures on the smartphone operating systems. An example is Facebook uploading entire smartphone contact books to their servers to fuel their "organic" growth - Google most definitely has done exactly the same.

The "careless people" book highlights that Facebook deployed spyware with their smartphone apps which monitored what other apps the users were using - this is how they figured out that WhatsApp was going viral and based on this data they did the surprise acquisition of WhatsApp. I'm confident that google abuses the same security vulnerabilities in order to further collect data.

anamexis 1 hour ago||
Maybe I’m missing something, but Google does not offer an IP Geolocation service or publish their database.
bflesch 40 minutes ago||
You are incorrect. Google offers IP geolocation service at https://developers.google.com/maps/documentation/geolocation...

Of course they don't share the final database, because it is their core asset. And if the common public catches a glimpse of the data that google has saved they would be really upset.

kitd 3 hours ago|||
> Jitsi is about audio / video where this would make more sense, not about geolocation.

It's still permission-based. And the article mentions that the same ux is being done for media objects.

crote 5 hours ago||
I'm a bit confused about how it actually works, and somehow they decided to not include a demonstration video.

If clicking on it does trigger a location permission prompt: what's the point? The "issues" with prompts getting denied can already be solved by web developers doing this themselves, rather than just blindly firing off a request on page load.

If clicking on it does not trigger a location permission prompt: have we forgotten about the Line Of Death [0]? Clicking random website-styled elements should never result in dangerous actions being taken - and leaking the user's physical location is definitely dangerous. Sure, they are trying to restrict the styling, but that's a fools' errant: somebody will just make a browser game where the button looks to refer to something ingame, but actually leak your real-world location.

Besides, who's actually asking for this? Location is perhaps useful for Google Maps-like websites to save you a few seconds of scrolling, but in practice it has mostly been spammy websites trying to get me to "subscribe to local news". Making geolocation easier is the last thing I want in my browser!

[0]: https://textslashplain.com/2017/01/14/the-line-of-death/

rawling 5 hours ago||
> The "issues" with prompts getting denied can already be solved by web developers doing this themselves

Does that mean identifying the browser and trying to tell the user how to go into the browser settings and un-block permission prompts?

crote 3 hours ago||
No, I mean adding a "use your location" button yourself which the user has to click before it uses the geolocation API, rather than just blindly requesting it on page load.

The only reason people block it in settings is because they get sick of nagging prompts they never asked for.

rawling 3 hours ago||
Ah, gotcha. So this change is giving developers a more standardised way to follow that "add a button, pop up permission dialog" pattern that will hopefully drive more of them away from the bad pattern?
jeroenhd 4 hours ago|||
You get prompted to supply your location just like normal.

Using geolocation on the web is not something I do daily, but I do use it every now and then. The "locate stores near me" button for looking up store closing times is a lot easier than manually panning across a map.

I find Chrome's current implementation (on Android) to be acceptable as long as measures are taken to prevent clickjacking and such to automate repeating prompts after denying permissions. I expect other browsers like Firefox to be more conservative in showing popups like that.

IshKebab 3 hours ago||
Presumably at some point they'll turn off script-triggered location access or make it less undesirable for sites in some way.
zero0529 2 hours ago||
This is pretty cool. But what gets me really excited is the new generic <Permission>[0] element. I had to implement a webcam element one time for some CV pet project and I had a lot of trouble getting the basic api to just work (Highly likely a skill issue). So seeing that this will also expand to webcam and other IO seems like a really good UX improvement.

- [0] https://github.com/WICG/PEPC/blob/main/explainer.md

Barathkanna 2 hours ago||
This mostly changes how location is requested, not what you can do with it. Instead of imperative JS calls, location access becomes declarative in HTML, which gives browsers more context for permission UX and auditing. Your app logic, data flow, and fallbacks don’t change, and you’ll still need JS to actually use the location. Think of it as a cleaner permission and intent layer, not a new geolocation capability.
SquareWheel 4 hours ago||
Contextual permissions are a big improvement over early and uncertain prompts. I will never agree to grant my permission when first loading a page, however, I may do so if intentionally activating a map widget. At least then I understand the context by which it's being asked, and can make a more informed decision.
ramon156 2 hours ago||
Why not just expose a GeoLocationEvent and call it a day? why add another element people will wrap anyway?...
voxadam 2 hours ago|
Adding a new HTML element probably leads to a better bonus at Google.
nake89 5 hours ago||
I'm curious to why the polyfill example uses unpkg.com. It is quite unreliable and has broken sites many times.

jsdelivr.com is much more reliable (Multi-CDN, Multi-DNS). Comparison: https://www.jsdelivr.com/unpkg

I am not affiliated in anyway to jsdeliver or unpkg. I simply used to be a user on unpkg.

bflesch 5 hours ago|
Maybe for tracking purposes, because most google-affiliated CDNs are widely blocked and unpkg might be small enough to not immediately raise eyebrows with devs. Unpkg removed their SPONSORS.md file recently, and their README claims to be hosted at fly.io which seems to be behind Cloudflare.
jampekka 4 hours ago||
The demo crashes Chrome on Android for me.

https://permission.site/geolocation_element.html

jeroenhd 4 hours ago||
Works on my phone (after enabling the experiment in chrome-flags). Even includes localised permission prompts.
1023bytes 3 hours ago||
Also crashed for me on Chrome on Mac
More comments...