From 0154c3343c9201181af81134b390ae1ff3602607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9sz=C3=A1ros=20Mih=C3=A1ly?= Date: Wed, 20 May 2020 13:13:24 +0200 Subject: [PATCH] Add configurable, supported brwoser list. --- app/public/config/config.example.js | 24 ++++++++++++++++++++++-- app/src/index.js | 20 +++++++++++++++++++- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/app/public/config/config.example.js b/app/public/config/config.example.js index 0d7eff0..7cbd401 100644 --- a/app/public/config/config.example.js +++ b/app/public/config/config.example.js @@ -5,6 +5,26 @@ var config = developmentPort : 3443, productionPort : 443, + /** + * Supported browsers version + * in bowser satisfy format. + * See more: + * https://www.npmjs.com/package/bowser#filtering-browsers + * Otherwise you got a unsupported browser page + */ + supportedBrowsers : + { + 'windows' : { + 'internet explorer' : '>12', + 'microsoft edge' : '>18' + }, + 'safari' : '>12', + 'firefox' : '>=60', + 'chrome' : '>=74', + 'opera' : '>=62', + 'samsung internet for android' : '>=11.1.1.52' + }, + /** * If defaultResolution is set, it will override user settings when joining: * low ~ 320x240 @@ -52,7 +72,7 @@ var config = { tcp : true }, - defaultAudio : + defaultAudio : { sampleRate : 48000, channelCount : 1, @@ -73,7 +93,7 @@ var config = * but use it with caution * full mesh audio strongly decrease room capacity! */ - autoMuteThreshold : 4, + autoMuteThreshold : 4, background : 'images/background.jpg', defaultLayout : 'democratic', // democratic, filmstrip // If true, will show media control buttons in separate diff --git a/app/src/index.js b/app/src/index.js index 97f9b25..9abbed6 100644 --- a/app/src/index.js +++ b/app/src/index.js @@ -71,6 +71,18 @@ const messages = 'lv' : messagesLatvian }; +const supportedBrowsers={ + 'windows' : { + 'internet explorer' : '>12', + 'microsoft edge' : '>18' + }, + 'safari' : '>12', + 'firefox' : '>=60', + 'chrome' : '>=74', + 'opera' : '>=62', + 'samsung internet for android' : '>=11.1.1.52' +}; + const browserLanguage = (navigator.language || navigator.browserLanguage).toLowerCase(); let locale = browserLanguage.split(/[-_]/)[0]; // language without region code @@ -159,8 +171,14 @@ function run() webrtcUnavailable=true; } else - if (device.name === 'safari' && !isNaN(device.version) && parseFloat(device.version) < 12) + if (!device.bowser.satisfies( + window.config.supportedBrowsers ? window.config.supportedBrowsers : supportedBrowsers) + ) { + logger.error( + 'Your browser is not on the supported list! Ask your server admin to add your browser to the supported list, if you think that your browser should be supported! deviceInfo: %o', + device + ); unsupportedBrowser=true; } else