diff --git a/package-lock.json b/package-lock.json index ae543f0ba4..6aed952671 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@giphy/react-components": "6.8.1", "@giphy/react-native-sdk": "2.3.0", "@jitsi/excalidraw": "https://github.com/jitsi/excalidraw/releases/download/v0.0.14/jitsi-excalidraw-0.0.14.tgz", - "@jitsi/js-utils": "2.1.3", + "@jitsi/js-utils": "2.2.0", "@jitsi/logger": "2.0.2", "@jitsi/rnnoise-wasm": "0.1.0", "@jitsi/rtcstats": "9.5.1", @@ -59,7 +59,7 @@ "js-md5": "0.6.1", "js-sha512": "0.8.0", "jwt-decode": "2.2.0", - "lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1693.0.0+c3a086f8/lib-jitsi-meet.tgz", + "lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1694.0.0+a0145343/lib-jitsi-meet.tgz", "lodash": "4.17.21", "moment": "2.29.4", "moment-duration-format": "2.2.2", @@ -3174,13 +3174,13 @@ } }, "node_modules/@jitsi/js-utils": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.1.3.tgz", - "integrity": "sha512-fXoNLu2JHQGPgzjCDG5qWPPStiXI+AxSzu1JIVY4dMULIFsw4a+doMgcjTIlSfB393J2xccKQYwZSejZUn9MEw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.2.0.tgz", + "integrity": "sha512-C1dZikxS899o49nclZe9TeehmDykxj1bMwmjcJidzzkq7lI593frHJRntPwV43zeZH5X0QslqeBnzOJq8B0ZIA==", "dependencies": { "@hapi/bourne": "^3.0.0", - "bowser": "2.7.0", - "js-md5": "0.7.3" + "js-md5": "0.7.3", + "ua-parser-js": "1.0.35" } }, "node_modules/@jitsi/js-utils/node_modules/js-md5": { @@ -7570,11 +7570,6 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, - "node_modules/bowser": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.7.0.tgz", - "integrity": "sha512-aIlMvstvu8x+34KEiOHD3AsBgdrzg6sxALYiukOWhFvGMbQI6TRP/iY0LMhUrHs56aD6P1G0Z7h45PUJaa5m9w==" - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -12855,12 +12850,12 @@ }, "node_modules/lib-jitsi-meet": { "version": "0.0.0", - "resolved": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1693.0.0+c3a086f8/lib-jitsi-meet.tgz", - "integrity": "sha512-SgdBOXWeK8cU4prXSiYS+pFVMMBXYzYikVV4qeg5diWc8dbai8C1NJZMFrh1NAMLX47BbiXzWme14l0orUi8Iw==", + "resolved": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1694.0.0+a0145343/lib-jitsi-meet.tgz", + "integrity": "sha512-mGk65o42ofP/O7hsZqz0w9QyHKi83is2dT1EEKDbgmL03wgkswG/ebhmz9VYrr8ZJkx0oVnnNEjkXCX/MYZW1A==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@jitsi/js-utils": "2.1.3", + "@jitsi/js-utils": "2.2.0", "@jitsi/logger": "2.0.2", "@jitsi/rtcstats": "9.5.1", "@jitsi/sdp-interop": "git+https://github.com/jitsi/sdp-interop#3d49eb4aa26863a3f8d32d7581cdb4321244266b", @@ -12883,6 +12878,16 @@ "webrtc-adapter": "8.1.1" } }, + "node_modules/lib-jitsi-meet/node_modules/@jitsi/js-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.2.0.tgz", + "integrity": "sha512-C1dZikxS899o49nclZe9TeehmDykxj1bMwmjcJidzzkq7lI593frHJRntPwV43zeZH5X0QslqeBnzOJq8B0ZIA==", + "dependencies": { + "@hapi/bourne": "^3.0.0", + "js-md5": "0.7.3", + "ua-parser-js": "1.0.35" + } + }, "node_modules/lib-jitsi-meet/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -12970,6 +12975,11 @@ "node": ">=8" } }, + "node_modules/lib-jitsi-meet/node_modules/js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + }, "node_modules/lib-jitsi-meet/node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -19069,6 +19079,24 @@ "node": ">=12.20" } }, + "node_modules/ua-parser-js": { + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -22637,13 +22665,13 @@ "integrity": "sha512-iK7p7i6qJFOkjTVZhWDvurDW1u+eMoOhAVgpab9CZEqCTX+W4Ih4AOPrUpf+mjaAHK5XqmQZSc5nVEpMg+xIGQ==" }, "@jitsi/js-utils": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.1.3.tgz", - "integrity": "sha512-fXoNLu2JHQGPgzjCDG5qWPPStiXI+AxSzu1JIVY4dMULIFsw4a+doMgcjTIlSfB393J2xccKQYwZSejZUn9MEw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.2.0.tgz", + "integrity": "sha512-C1dZikxS899o49nclZe9TeehmDykxj1bMwmjcJidzzkq7lI593frHJRntPwV43zeZH5X0QslqeBnzOJq8B0ZIA==", "requires": { "@hapi/bourne": "^3.0.0", - "bowser": "2.7.0", - "js-md5": "0.7.3" + "js-md5": "0.7.3", + "ua-parser-js": "1.0.35" }, "dependencies": { "js-md5": { @@ -25934,11 +25962,6 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, - "bowser": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.7.0.tgz", - "integrity": "sha512-aIlMvstvu8x+34KEiOHD3AsBgdrzg6sxALYiukOWhFvGMbQI6TRP/iY0LMhUrHs56aD6P1G0Z7h45PUJaa5m9w==" - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -29902,10 +29925,10 @@ } }, "lib-jitsi-meet": { - "version": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1693.0.0+c3a086f8/lib-jitsi-meet.tgz", - "integrity": "sha512-SgdBOXWeK8cU4prXSiYS+pFVMMBXYzYikVV4qeg5diWc8dbai8C1NJZMFrh1NAMLX47BbiXzWme14l0orUi8Iw==", + "version": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1694.0.0+a0145343/lib-jitsi-meet.tgz", + "integrity": "sha512-mGk65o42ofP/O7hsZqz0w9QyHKi83is2dT1EEKDbgmL03wgkswG/ebhmz9VYrr8ZJkx0oVnnNEjkXCX/MYZW1A==", "requires": { - "@jitsi/js-utils": "2.1.3", + "@jitsi/js-utils": "2.2.0", "@jitsi/logger": "2.0.2", "@jitsi/rtcstats": "9.5.1", "@jitsi/sdp-interop": "git+https://github.com/jitsi/sdp-interop#3d49eb4aa26863a3f8d32d7581cdb4321244266b", @@ -29928,6 +29951,16 @@ "webrtc-adapter": "8.1.1" }, "dependencies": { + "@jitsi/js-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-2.2.0.tgz", + "integrity": "sha512-C1dZikxS899o49nclZe9TeehmDykxj1bMwmjcJidzzkq7lI593frHJRntPwV43zeZH5X0QslqeBnzOJq8B0ZIA==", + "requires": { + "@hapi/bourne": "^3.0.0", + "js-md5": "0.7.3", + "ua-parser-js": "1.0.35" + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -29991,6 +30024,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -34501,6 +34539,11 @@ "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, + "ua-parser-js": { + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==" + }, "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", diff --git a/package.json b/package.json index d396349ff9..4091d479d0 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@giphy/react-components": "6.8.1", "@giphy/react-native-sdk": "2.3.0", "@jitsi/excalidraw": "https://github.com/jitsi/excalidraw/releases/download/v0.0.14/jitsi-excalidraw-0.0.14.tgz", - "@jitsi/js-utils": "2.1.3", + "@jitsi/js-utils": "2.2.0", "@jitsi/logger": "2.0.2", "@jitsi/rnnoise-wasm": "0.1.0", "@jitsi/rtcstats": "9.5.1", @@ -65,7 +65,7 @@ "js-md5": "0.6.1", "js-sha512": "0.8.0", "jwt-decode": "2.2.0", - "lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1693.0.0+c3a086f8/lib-jitsi-meet.tgz", + "lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/v1694.0.0+a0145343/lib-jitsi-meet.tgz", "lodash": "4.17.21", "moment": "2.29.4", "moment-duration-format": "2.2.2", diff --git a/react/features/analytics/functions.ts b/react/features/analytics/functions.ts index 51c0da9727..fae5778736 100644 --- a/react/features/analytics/functions.ts +++ b/react/features/analytics/functions.ts @@ -224,7 +224,7 @@ export function initAnalytics(store: IStore, handlers: Array) { // Set the handlers last, since this triggers emptying of the cache analytics.setAnalyticsHandlers(handlers); - if (!isMobileBrowser() && browser.isChrome()) { + if (!isMobileBrowser() && browser.isChromiumBased()) { const bannerCfg = state['features/base/config'].chromeExtensionBanner; checkChromeExtensionsInstalled(bannerCfg).then(extensionsInstalled => { diff --git a/react/features/base/environment/environment.ts b/react/features/base/environment/environment.ts index fad9795350..737e3efbb0 100644 --- a/react/features/base/environment/environment.ts +++ b/react/features/base/environment/environment.ts @@ -20,9 +20,8 @@ const browserNameToCheck = { chromium: browser.isChromiumBased.bind(browser), electron: browser.isElectron.bind(browser), firefox: browser.isFirefox.bind(browser), - nwjs: browser.isNWJS.bind(browser), - opera: browser.isOpera.bind(browser), - safari: browser.isSafari.bind(browser) + safari: browser.isSafari.bind(browser), + webkit: browser.isWebKitBased.bind(browser) }; /** diff --git a/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.tsx b/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.tsx index 2f93f40abc..712a361580 100644 --- a/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.tsx +++ b/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.tsx @@ -153,7 +153,7 @@ class ChromeExtensionBanner extends PureComponent { */ _isSupportedEnvironment() { return interfaceConfig.SHOW_CHROME_EXTENSION_BANNER - && browser.isChrome() + && browser.isChromiumBased() && !browser.isTwa() && !isMobileBrowser() && !this.props.isVpaas; diff --git a/react/features/screen-share/functions.ts b/react/features/screen-share/functions.ts index 645a370723..557258d3a9 100644 --- a/react/features/screen-share/functions.ts +++ b/react/features/screen-share/functions.ts @@ -33,7 +33,7 @@ export function isScreenAudioShared(state: IReduxState) { * @returns {boolean} */ export function isScreenAudioSupported() { - return (!isMobileBrowser() && browser.isChrome()) || (browser.isElectron() && isWindows()); + return (!isMobileBrowser() && browser.isChromiumBased()) || (browser.isElectron() && isWindows()); } /**