La géolocalisation arrive dans Firefox !
Par Clochix le mercredi 8 octobre 2008, 02:57 - Lézarderies - Lien permanent
Les Laboratoires Mozilla viennent d'annoncer Geode, une extension permettant à un site web de savoir où vous êtes, avec votre accord bien sûr. A défaut d'avoir pu la tester, voici une rapide présentation de ce que promet l'annonce.
L'implémentation de la future API de géolocalisation du W3C est en train d'arriver dans Firefox. La cible principale est Fennec, la future version de Firefox pour périphériques "portables", mais elle devrait être également disponible dans Firefox 3.1 (on peut déjà jouer avec dans les compilations nocturnes). Pour permettre aux internautes de commencer à se l'approprier et à inventer de nouveaux usages, les développeurs des Laboratoires Mozilla en ont porté une version sous la forme d'une extension, Geode, que l'on peut dès à présent installer dans Firefox 3.
Comment ça marche
L'Api permet à un script s'exécutant dans une page web de connaître la position du navigateur, via l'appel à une méthode du navigateur. Celui-ci détermine sa position en faisant appel à des services: GPS, Wifi, etc et, avec l'accord de l'utilisateur, communique sa position au script, qui peut lui-même la transmettre au serveur d'origine via une requête asynchrone.
Pour l'heure Geode ne permet de déterminer la position du navigateur qu'en faisant appel à un seul service, fournis par la société SkyHook Wireless, et basé sur la localisation des bornes wifi les plus proches.
L'API
L'APi de géolocalisation du W3C est encore à l'état de brouillon. Elle fournit une interface de haut niveau permettant de communiquer la position du navigateur, indépendamment de la technologie utilisée pour déterminer celle-ci.
La position du navigateur est retournée sous la forme d'un objet comportant les attributs suivants:
latitude: comme son nom l'indique, en degrés;longitude: idem;altitude: l'altitude en mètres au dessus du niveau de la mer;accuracy: la précision en mètres de la latitude et de la longitude;altitudeAccuracy: idem pour l'altitude;heading: la direction dans laquelle l'objet est tourné, en degrés par rapport au nord (donc 90 si vous êtes tournés vers le lever du soleil et que j'ai bien compris)velocity: la vitesse de déplacement en mètres par secondes;timestamp: l'heure exacte de la mesure sous la forme d'un timestamp;
Ces données sont manipulées via l'interface
ClientInformationGeolocation ajouté à
window.navigator. Celle-ci retourne un objet implémentant
Geolocation, qui possède les propriétés et méthodes suivantes:
lastPosition: la dernière position connue de l'objet;getCurrentPosition(): retourne immédiatement la dernière position connue de l'objet, puis met à jour la position (une opération qui peut prendre du temps). Elle accepte trois paramètres: le premier est une fonction de callback qui sera appelée en cas de réussite de la mise à jour de la position, la nouvelle position lui étant passée; le deuxième est une fonction de callback appelée en cas d'erreur. Enfin le dernier contient des options;watchPosition(): retourne immédiatement la dernière position connue de l'objet, puis la met à jour et la surveille, c'est à dire que la fonction passée en premier argument sera appelée à chaque fois que la position de l'objet change;clearWatch()permet d'arrêter le suivi de la position démarrée par le précédent appel;
Un exemple sera sans doute plus clair:
- pour juste connaître la position actuelle du navigateur:
navigator.geolocation.getCurrentPosition(function(pos) {
alert( pos.latitude + ", " + pos.longitude );
})
- pour afficher une alerte à chaque fois que la position change:
navigator.geolocation.watchPosition(function(pos) {
alert( pos.latitude + ", " + pos.longitude );
})
Enfin, les fonctions getCurrentPosition() et
watchPosition() acceptent une option sous la forme d'un objet
PositionOptions:
enableHiqhAccuracy: booléen indiquant si on veut une réponse précise ou non;timeout: la durée (en millisecondes) avant d'estimer que la recherche de la position est infructueuse;
Le service
Pour vous localiser, Geode fait appel à Loki, une technologie développée par SkyHook Wireless qui permet de géo-localiser un objet disposant d'une connexion wifi à partir des adresses MAC des bornes les plus proches. Dans les régions urbaines bien couvertes, la localisation se fait à 20 ou 30 mètres près. C'est ce service qui est déjà utilisé par exemple par les iPhones non munis de GPS. Il est censé être beaucoup plus rapide que le GPS. Reste à savoir quelle est sa fiabilité hors de l'Amérique du nord.
Pour quels usages ?
Les usages sont bien entendus à inventer, et c'est une des raisons d'être de Geode. L'annonce en suggère certains: des classiques, comme trouver des services à proximité de l'endroit où vous vous trouvez, et d'autres plus originaux. Par exemple, votre navigateur pourrait déterminer si vous êtes chez vous ou à votre bureau, et modifier son comportement en fonction (changer le thème, planquer certains marques pages etc). On peux aussi imaginer un renforcement de la sécurité en n'autorisant la connection à une application en ligne que si l'utilisateur est physiquement dans les locaux de l'entreprise (l'Api permet en théorie une géo-localisation précise, y compris en terme d'altitude, pour peu qu'on fasse appel à un service offrant une assez grande précision)
Et ma vie privée dans tout ça ???
C'est évidemment la première question que je me suis posée. Geode implémente une interface utilisateur qui, à chaque fois qu'un script dans une page veut interroger le navigateur pour savoir où vous êtes, vous avertit et vous permet de choisir si vous acceptez de répondre, et avec quelle précision. Si vous acceptez de répondre, Geode va faire appel à SkyHook pour vous localiser. Il ne vous reste plus qu'à faire confiance à la politique en matière de respect de la vie privé de celui-ci. A terme (normalement à partir de FF 3.1), l'utilisateur pourra choisir les services que son navigateur peut utiliser pour déterminer sa position.
Etant un grand sédentaire paranoïaque, je ne pense pas que cette extension va révolutionner mon usage du Net. Mais pour tous les internautes qui ne partagent pas avec moi ces deux détails, je pense que Geode est un grand pas de plus vers l'apparition de services que dans quelques mois vos petits enfants imagineront même pas que vous ayez pu vivre dans un monde sans. Décidément, Firefox, ça déchire !
Commentaires
Clair que ça peut être très intéressant. Ca me donne envie d'implémenter ça sur mes annuaires de resto.
Pour l'aspect sécurité, et en particulier l'exemple que tu donnes où une entreprise pourrait restreindre à l'accès à certaines de ses applications Web quand le salarié est effectivement dans les locaux de l'entreprise, je ne vois pas bien comment ça peut fonctionner. Les informations de localisation étant envoyées par le navigateur du poste du salarié, il suffit que celui-ci bricole le navigateur pour que celui-ci envoie des positions fausses au serveur.
Bref, la fonctionnalité me semble très intéressante pour de la géolocalisation volontaire (l'usager accepte d'être géolocalisé car ça lui apporte des informations plus pertinentes: restaurant, cinéma,etc.), mais je ne suis pas sûr que ça puisse marcher pour appliquer des contrôles de sécurité.
Encore des outils pour se faire battre
Je pense pas que ce soit un avantage pour firefox d'implémenter ce système. Il faut quand meme signaler que cette fonctionnalité est en grande partie destiné a des buts commerciaux
@Thomas : ce n'est évidemment pas la panacée, ni la seule mesure de protection sur laquelle s'appuyer, mais ça peut être un élément parmi d'autres. Il manque peut-être effectivement dans l'API une signature fournie par le service (pas le navigateur mais le service externe) et garantissant l'authenticité des informations.
@blip : pourquoi se faire battre ? Au contraire, une des batailles actuelle est celle du navigateur et de l'OS qui équiperont les périphériques mobiles. La concurrence est très rude : windows mobile, OSX, GNU/Linux (natif ou via Androïd), Opera, Firefox... (désolé je ne suis pas du tout cette actu, n'hésitez pas à me corriger). Sur ces périphériques, un système qui n'offre pas de fonctions de géolocalisation n'a aucune chance. C'était donc essentiel que Firefox implémente cela rapidement.Quant aux usages, c'est à nous de les inventer.
Quelqu'un sait où en est Microsoft sur le sujet ?
Ce que tout le monde occulte pour le moment c'est le côté "constitution des bases de géolocalisation à partir des réseaux WIFI". Sans vouloir être parano, moi ça m'emm.... que SkyHook ou tout autre boîte privé (hormis mon fournisseur d'accès, et encore...) sache que ma freebox qui a telle adresse MAC, émette un signal WIFI de tel type, à tel endroit et sous tel ESSID...