01. OBJETIVO

  • Permitir avaliar e acessar geolocalização no browser para clientes sem HTTPs. 


02. PROBLEMA

  • De acordo com implementações de segurança algumas funcionalidades, como por exemplo "geolocation.getCurrentPosition()", somente serão permitidas em contextos protegidos(HTTPs), exceto em ambientes locais "http://localhost".

https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

           


03. SOLUÇÂO DE CONTORNO

  • Existe a possibilidade de configurar no Chrome uma exceção para uma URL externa insegura para captura da localização aproximada pelo browser através da configuração de flags.
    Informe a URL através da execução no browser da flag "chrome://flags/#unsafely-treat-insecure-origin-as-secure", após a atualização o chrome irá solicitar um "relaunch". 


  • Para ambientes MacOS também é possível abrir pelo console o browser com uma validação especifica e temporária, executando o comando: "open -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir=$HOME --unsafely-treat-insecure-Origin-as-secure=http://www.url.com.br --allow-running-insecure-content --reduce-security-for-testing"


  • A partir desse momento o browser para de reclamar de que você não está em um ambiente seguro, permitindo a continuidade para utilização da funcionalidade, mostrando uma localização aproximada.



04. UTILIZANDO SENSORS

  • Para simular outras localizações/timezone utilizando o Chrome basta acessar a opção "sensors", através do modo de debug(F12) item "more tools".

  • Nesse caso pode-se utilizar localidades pre-configuradas ou mesmo cadastrar alguma específica de acordo com a necessidade:

              

.



  • Sem rótulos