<script>
'use strict';

Promise.resolve().then(() => navigator.permissions.query({name:'geolocation'}))
  .then(permissionStatus => {
  window.parent.postMessage({ state: permissionStatus.state }, '*');
}, error => {
  window.parent.postMessage({ state: null }, '*');
});
</script>

