This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push: new 3a5d245 [OPENMEETINGS-2583] browser detection is moved to main 3a5d245 is described below commit 3a5d245f6018a0f0f00e33776ea2a60945b9878b Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Wed Mar 3 16:21:18 2021 +0700 [OPENMEETINGS-2583] browser detection is moved to main --- openmeetings-web/src/main/front/main/package.json | 3 +++ .../src/main/front/main/src/omutils.js | 25 +++++++++++++++++++- openmeetings-web/src/main/front/room/src/sharer.js | 8 +++---- openmeetings-web/src/main/front/room/src/video.js | 6 ++--- .../src/main/front/settings/src/settings.js | 3 +-- .../src/main/front/settings/src/video-util.js | 27 +++------------------- 6 files changed, 37 insertions(+), 35 deletions(-) diff --git a/openmeetings-web/src/main/front/main/package.json b/openmeetings-web/src/main/front/main/package.json index 56c4177..f0510c5 100644 --- a/openmeetings-web/src/main/front/main/package.json +++ b/openmeetings-web/src/main/front/main/package.json @@ -14,5 +14,8 @@ "devDependencies": { "browserify": "^17.0.0", "tinyify": "^3.0.0" + }, + "dependencies": { + "ua-parser-js": "^0.7.24" } } diff --git a/openmeetings-web/src/main/front/main/src/omutils.js b/openmeetings-web/src/main/front/main/src/omutils.js index 09ef4b0..6e19753 100644 --- a/openmeetings-web/src/main/front/main/src/omutils.js +++ b/openmeetings-web/src/main/front/main/src/omutils.js @@ -1,4 +1,10 @@ /* Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 */ + +const UAParser = require('ua-parser-js') + , ua = (typeof window !== 'undefined' && window.navigator) ? window.navigator.userAgent : '' + , parser = new UAParser(ua) + , browser = parser.getBrowser(); + let options, alertId = 0; function _init(_options) { @@ -54,7 +60,7 @@ function _requestNotifyPermission(callback, elseCallback) { callback(); } } - if (VideoUtil.browser.name === 'Safari') { + if (_isSafari()) { Notification.requestPermission(onRequest); } else { Notification.requestPermission().then(onRequest); @@ -80,6 +86,18 @@ function _notify(msg, tag, elseCallback) { elseCallback(); } } +function _isSafari() { + return browser.name === 'Safari'; +} +function _isChrome() { + return browser.name === 'Chrome' || browser.name === 'Chromium'; +} +function _isEdge() { + return browser.name === 'Edge' && "MSGestureEvent" in window; +} +function _isEdgeChromium() { + return browser.name === 'Edge' && !("MSGestureEvent" in window); +} module.exports = { init: _init @@ -109,4 +127,9 @@ module.exports = { } , notify: _notify , requestNotifyPermission: _requestNotifyPermission + , browser: browser + , isEdge: _isEdge + , isEdgeChromium: _isEdgeChromium + , isChrome: _isChrome + , isSafari: _isSafari }; diff --git a/openmeetings-web/src/main/front/room/src/sharer.js b/openmeetings-web/src/main/front/room/src/sharer.js index 03517b1..827ac28 100644 --- a/openmeetings-web/src/main/front/room/src/sharer.js +++ b/openmeetings-web/src/main/front/room/src/sharer.js @@ -34,9 +34,8 @@ function _init() { sharer.find('.alert').show(); } else { type = sharer.find('select.type'); - const b = VideoUtil.browser; fps = sharer.find('select.fps'); - _disable(fps, VideoUtil.isEdge(b)); + _disable(fps, OmUtil.isEdge()); sbtn = sharer.find('.share-start-stop').off().click(function() { if (shareState === SHARE_STOPPED) { _setShareState(SHARE_STARTING); @@ -82,9 +81,8 @@ function _disable(e, state) { e.removeClass('disabled'); } } -function _typeDisabled(_b) { - const b = _b || VideoUtil.browser; - return VideoUtil.isEdge(b) || VideoUtil.isChrome(b) || VideoUtil.isEdgeChromium(b); +function _typeDisabled() { + return OmUtil.isEdge() || OmUtil.isChrome() || OmUtil.isEdgeChromium(); } function _setBtnState(btn, state) { const dis = SHARE_STOPPED !== state diff --git a/openmeetings-web/src/main/front/room/src/video.js b/openmeetings-web/src/main/front/room/src/video.js index 59cedd5..7f4d4b5 100644 --- a/openmeetings-web/src/main/front/room/src/video.js +++ b/openmeetings-web/src/main/front/room/src/video.js @@ -35,9 +35,9 @@ module.exports = class Video { Sharer.setRecState(Sharer.SHARE_STOPPED); OmUtil.error(err); } - const b = VideoUtil.browser; + const b = OmUtil.browser; let promise, cnts; - if (VideoUtil.isEdge(b) && b.major > 16) { + if (OmUtil.isEdge() && b.major > 16) { cnts = { video: true }; @@ -98,7 +98,7 @@ module.exports = class Video { data.aSrc = data.aCtx.createMediaStreamSource(stream); data.aSrc.connect(data.gainNode); data.gainNode.connect(data.analyser); - if (VideoUtil.isEdge()) { + if (OmUtil.isEdge()) { data.analyser.connect(data.aCtx.destination); } else { data.aDest = data.aCtx.createMediaStreamDestination(); diff --git a/openmeetings-web/src/main/front/settings/src/settings.js b/openmeetings-web/src/main/front/settings/src/settings.js index e982ec9..633eaf6 100644 --- a/openmeetings-web/src/main/front/settings/src/settings.js +++ b/openmeetings-web/src/main/front/settings/src/settings.js @@ -130,8 +130,7 @@ function _updateRec() { recBtn.prop('disabled', !recAllowed || (s.video.cam < 0 && s.video.mic < 0)); } function _setCntsDimensions(cnts) { - const b = VideoUtil.browser; - if (b.name === 'Safari') { + if (OmUtil.isSafari()) { let width = s.video.width; //valid widths are 320, 640, 1280 [320, 640, 1280].some(function(w) { diff --git a/openmeetings-web/src/main/front/settings/src/video-util.js b/openmeetings-web/src/main/front/settings/src/video-util.js index ca59500..a4469b5 100644 --- a/openmeetings-web/src/main/front/settings/src/video-util.js +++ b/openmeetings-web/src/main/front/settings/src/video-util.js @@ -8,11 +8,6 @@ const MIC_ACTIVITY = 'AUDIO'; const SCREEN_ACTIVITY = 'SCREEN'; const REC_ACTIVITY = 'RECORD'; -const UAParser = require('ua-parser-js') - , ua = (typeof window !== 'undefined' && window.navigator) ? window.navigator.userAgent : '' - , parser = new UAParser(ua) - , browser = parser.getBrowser(); - function _getVid(uid) { return 'video' + uid; } @@ -234,18 +229,6 @@ function _cleanPeer(peer) { } } } -function _isChrome(_b) { - const b = _b || browser; - return b.name === 'Chrome' || b.name === 'Chromium'; -} -function _isEdge(_b) { - const b = _b || browser; - return b.name === 'Edge' && "MSGestureEvent" in window; -} -function _isEdgeChromium(_b) { - const b = _b || browser; - return b.name === 'Edge' && !("MSGestureEvent" in window); -} function _setPos(v, pos) { if (v.dialog('instance')) { v.dialog('widget').css(pos); @@ -283,13 +266,13 @@ function _disconnect(node) { } } function _sharingSupported() { - const b = browser; + const b = OmUtil.browser; return (b.name === 'Edge' && b.major > 16) || (b.name === 'Firefox') || (b.name === 'Opera') || (b.name === 'Yandex') - || _isChrome(b) - || _isEdgeChromium(b) + || OmUtil.isChrome() + || OmUtil.isEdgeChromium() || (b.name === 'Mozilla' && b.major > 4); } function _highlight(el, clazz, count) { @@ -309,7 +292,6 @@ module.exports = { VIDWIN_SEL: VIDWIN_SEL , VID_SEL: VID_SEL - , browser: browser , getVid: _getVid , isSharing: _isSharing , isRecording: _isRecording @@ -329,9 +311,6 @@ module.exports = { } return opts; } - , isEdge: _isEdge - , isEdgeChromium: _isEdgeChromium - , isChrome: _isChrome , setPos: _setPos , askPermission: _askPermission , disconnect: _disconnect