From 50f85248db5a2bf1ca860d864f20772f1b87c3d1 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 15 May 2018 14:08:57 +0100 Subject: [PATCH] Use https to launch the remote editor except for modern browsers Currently only Chrome 53+ and Firefox 55+ are known to support loading of http resources from localhost for an https page. --- Vendorfile | 1 + app/assets/javascripts/index.js | 10 +- app/controllers/application_controller.rb | 4 +- vendor/assets/javascripts/bowser.js | 620 ++++++++++++++++++++++ 4 files changed, 632 insertions(+), 3 deletions(-) create mode 100644 vendor/assets/javascripts/bowser.js diff --git a/Vendorfile b/Vendorfile index e57ab21fe..ac361e575 100644 --- a/Vendorfile +++ b/Vendorfile @@ -68,5 +68,6 @@ folder 'vendor/assets' do folder 'javascripts' do file 'html5shiv.js', 'https://raw.githubusercontent.com/aFarkas/html5shiv/master/src/html5shiv.js' + file 'bowser.js', 'https://github.com/lancedikson/bowser/releases/download/1.9.3/bowser.js' end end diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 4ea643b26..ccf4e561c 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -20,6 +20,7 @@ //= require index/changeset //= require index/query //= require router +//= require bowser $(document).ready(function () { var loaderTimeout; @@ -241,7 +242,7 @@ $(document).ready(function () { function remoteEditHandler(bbox, object) { var loaded = false, - url = "http://127.0.0.1:8111/load_and_zoom?", + url, query = { left: bbox.getWest() - 0.0001, top: bbox.getNorth() + 0.0001, @@ -249,6 +250,13 @@ $(document).ready(function () { bottom: bbox.getSouth() - 0.0001 }; + if (location.protocol === 'http' || + bowser.check({chrome: "53", firefox: "55"})) { + url = "http://127.0.0.1:8111/load_and_zoom?"; + } else { + url = "https://127.0.0.1:8112/load_and_zoom?"; + } + if (object) query.select = object.type + object.id; var iframe = $('