diff --git a/public/scripts/network.js b/public/scripts/network.js index a66b3c8..47241f0 100644 --- a/public/scripts/network.js +++ b/public/scripts/network.js @@ -3,12 +3,21 @@ window.isRtcSupported = !!(window.RTCPeerConnection || window.mozRTCPeerConnecti if (!window.isRtcSupported) alert("WebRTC must be enabled for PairDrop to work"); +window.hiddenProperty = 'hidden' in document ? 'hidden' : + 'webkitHidden' in document ? 'webkitHidden' : + 'mozHidden' in document ? 'mozHidden' : + null; +window.visibilityChangeEvent = 'visibilitychange' in document ? 'visibilitychange' : + 'webkitvisibilitychange' in document ? 'webkitvisibilitychange' : + 'mozvisibilitychange' in document ? 'mozvisibilitychange' : + null; + class ServerConnection { constructor() { this._connect(); Events.on('pagehide', _ => this._disconnect()); - document.addEventListener('visibilitychange', _ => this._onVisibilityChange()); + document.addEventListener(window.visibilityChangeEvent, _ => this._onVisibilityChange()); if (navigator.connection) navigator.connection.addEventListener('change', _ => this._reconnect()); Events.on('room-secrets', e => this._sendRoomSecrets(e.detail)); Events.on('room-secrets-deleted', e => this.send({ type: 'room-secrets-deleted', roomSecrets: e.detail})); @@ -186,7 +195,7 @@ class ServerConnection { } _onVisibilityChange() { - if (document.hidden) return; + if (window.hiddenProperty) return; this._connect(); } diff --git a/public_included_ws_fallback/scripts/network.js b/public_included_ws_fallback/scripts/network.js index e07e85c..42076cc 100644 --- a/public_included_ws_fallback/scripts/network.js +++ b/public_included_ws_fallback/scripts/network.js @@ -1,12 +1,21 @@ window.URL = window.URL || window.webkitURL; window.isRtcSupported = !!(window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection); +window.hiddenProperty = 'hidden' in document ? 'hidden' : + 'webkitHidden' in document ? 'webkitHidden' : + 'mozHidden' in document ? 'mozHidden' : + null; +window.visibilityChangeEvent = 'visibilitychange' in document ? 'visibilitychange' : + 'webkitvisibilitychange' in document ? 'webkitvisibilitychange' : + 'mozvisibilitychange' in document ? 'mozvisibilitychange' : + null; + class ServerConnection { constructor() { this._connect(); Events.on('pagehide', _ => this._disconnect()); - document.addEventListener('visibilitychange', _ => this._onVisibilityChange()); + document.addEventListener(window.visibilityChangeEvent, _ => this._onVisibilityChange()); if (navigator.connection) navigator.connection.addEventListener('change', _ => this._reconnect()); Events.on('room-secrets', e => this._sendRoomSecrets(e.detail)); Events.on('room-secrets-deleted', e => this.send({ type: 'room-secrets-deleted', roomSecrets: e.detail})); @@ -197,7 +206,7 @@ class ServerConnection { } _onVisibilityChange() { - if (document.hidden) return; + if (window.hiddenProperty) return; this._connect(); }