Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Enable HTTP Geolocation For Local Firefox Debugging

"A Geolocation request can only be fulfilled in a secure context"

Its great that HTTPS is needed for geolocation but I need to debug on insecure local server before it makes it to live.

I was hoping I could edit Firefoxes 'about:config' to disable this safeguard for debugging. How would I do this? Are there any other/better ways to debug location in insecure context? (mock https)

like image 258
BFalcon Avatar asked Oct 06 '17 02:10

BFalcon


2 Answers

Im wondering why its still working for me but this is my code:

    function geolocate() {
      if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(
            function(position) {
                let lat = position.coords.latitude;
                let lng = position.coords.longitude;
                var geolocation = {
                    lat: lat,
                    lng: lng
                };
                document.getElementById('lat').value = lat;
                document.getElementById('lng').value = lng;
                console.log("----------------------------------------------");
                console.log("Found Location: "+ lat + " / " + lng);

                var google_maps_geocoder = new google.maps.Geocoder();
                google_maps_geocoder.geocode(
                    { 'latLng': geolocation },
                    function( results, status ) {
                        let street = results[0].address_components[1].long_name;
                        let number = results[0].address_components[0].long_name;
                        let plz = results[0].address_components[6].long_name;
                        let city = results[3].address_components[0].long_name;
                        //let country = results[7].formatted_address;
                        let full = street+" "+number+", "+plz+" "+city;

                        // write the values in the fields
                        document.getElementById('autocomplete').value = full;
                        document.getElementById('route').value = street;
                        document.getElementById('street_number').value = number;
                        document.getElementById('postal_code').value = plz;
                        document.getElementById('locality').value = city;
                        //document.getElementById('country').value = country;
                        console.log("User Address: "+street+" "+number+", "+plz+" "+city);
                        $.ajax({
                            type: 'POST',
                            url: 'include/set-location.inc.php',
                            data: {lat: lat, lng: lng, street: street, number: number, plz: plz, city: city, full: full},
                            dataType: 'json',
                            success: function(response) {
                                if(response.status === 'success') {
                                    console.log("Saved address in a cookie!");
                                    if (site === "jobs") {
                                        location.reload(true);
                                    }
                                }
                            }
                        });
                    }
                );
            });
      }
    }

the browser "question": the browser "question":

my console: enter image description here

I hope my code will help you ;)

like image 94
Christopher Supertramp Avatar answered Oct 16 '22 19:10

Christopher Supertramp


You can test on localhost without encryption

Firefox will not send Geolocation over a non secure connection and this behaviour cannot be disabled. However, localhost is considered to be a secure connection so that might be an option when testing. This also explains why Christopher Supertramp could try his code over http- he's on localhost.

This is from Mozilla documentation:

Locally delivered files such as http://localhost and file:// paths are considered to have been delivered securely.

https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts

like image 41
amundsmark Avatar answered Oct 16 '22 20:10

amundsmark