From a9767eda72da152094597575ddc3bc85abe63303 Mon Sep 17 00:00:00 2001
From: horymury <39557534+horymury@users.noreply.github.com>
Date: Wed, 29 Jan 2020 14:30:17 +0200
Subject: [PATCH] Fix chrome extension banner (#5011)
* Fix chrome extension banner
* Address reviews
---
react/features/app/components/App.web.js | 2 ++
react/features/base/app/components/BaseApp.js | 7 -----
.../features/base/environment/environment.js | 16 ++---------
react/features/base/environment/utils.js | 10 +++++++
.../components/ChromeExtensionBanner.web.js | 28 +++++++++++++------
react/features/deep-linking/functions.js | 6 ++--
.../dial-in-info-page/DialInInfoApp.web.js | 7 ++---
.../welcome/components/WelcomePage.web.js | 8 ++----
8 files changed, 41 insertions(+), 43 deletions(-)
create mode 100644 react/features/base/environment/utils.js
diff --git a/react/features/app/components/App.web.js b/react/features/app/components/App.web.js
index 56b23c0d5..672442b18 100644
--- a/react/features/app/components/App.web.js
+++ b/react/features/app/components/App.web.js
@@ -4,6 +4,7 @@ import { AtlasKitThemeProvider } from '@atlaskit/theme';
import React from 'react';
import { DialogContainer } from '../../base/dialog';
+import { ChromeExtensionBanner } from '../../chrome-extension-banner';
import '../../base/user-interaction';
import '../../chat';
import '../../external-api';
@@ -31,6 +32,7 @@ export class App extends AbstractApp {
_createMainElement(component, props) {
return (
+
{ super._createMainElement(component, props) }
);
diff --git a/react/features/base/app/components/BaseApp.js b/react/features/base/app/components/BaseApp.js
index 2c445df83..ac7ca71e4 100644
--- a/react/features/base/app/components/BaseApp.js
+++ b/react/features/base/app/components/BaseApp.js
@@ -18,9 +18,7 @@ import { PersistenceRegistry } from '../../storage';
import { appWillMount, appWillUnmount } from '../actions';
import logger from '../logger';
-import { ChromeExtensionBanner } from '../../../chrome-extension-banner';
-declare var interfaceConfig: Object;
declare var APP: Object;
/**
@@ -131,11 +129,6 @@ export default class BaseApp extends Component<*, State> {
- {
- typeof interfaceConfig !== 'undefined'
- && interfaceConfig.SHOW_CHROME_EXTENSION_BANNER
- &&
- }
{ this._createMainElement(component) }
{ this._createExtraElement() }
diff --git a/react/features/base/environment/environment.js b/react/features/base/environment/environment.js
index 99ba508d0..7583b8c34 100644
--- a/react/features/base/environment/environment.js
+++ b/react/features/base/environment/environment.js
@@ -1,7 +1,7 @@
// @flow
import JitsiMeetJS from '../lib-jitsi-meet';
-import { Platform } from '../react';
+import { isMobileBrowser } from './utils';
const { browser } = JitsiMeetJS.util;
@@ -67,7 +67,7 @@ export function isSupportedBrowser() {
}
// Blacklists apply to desktop browsers only right now.
- if (!_isMobileBrowser() && _isCurrentBrowserInList(
+ if (!isMobileBrowser() && _isCurrentBrowserInList(
interfaceConfig.UNSUPPORTED_BROWSERS || DEFAULT_UNSUPPORTED_BROWSERS
)) {
return false;
@@ -77,7 +77,7 @@ export function isSupportedBrowser() {
// - the WelcomePage is mobile ready;
// - if the URL points to a conference then deep-linking will take
// care of it.
- return _isMobileBrowser() || JitsiMeetJS.isWebRtcSupported();
+ return isMobileBrowser() || JitsiMeetJS.isWebRtcSupported();
}
/**
@@ -96,13 +96,3 @@ function _isCurrentBrowserInList(list) {
return checkFunction ? checkFunction.call(browser) : false;
}));
}
-
-/**
- * Returns whether or not the current environment is a mobile device.
- *
- * @private
- * @returns {boolean}
- */
-function _isMobileBrowser() {
- return Platform.OS === 'android' || Platform.OS === 'ios';
-}
diff --git a/react/features/base/environment/utils.js b/react/features/base/environment/utils.js
new file mode 100644
index 000000000..3542217fa
--- /dev/null
+++ b/react/features/base/environment/utils.js
@@ -0,0 +1,10 @@
+import Platform from '../react/Platform';
+
+/**
+ * Returns whether or not the current environment is a mobile device.
+ *
+ * @returns {boolean}
+ */
+export function isMobileBrowser() {
+ return Platform.OS === 'android' || Platform.OS === 'ios';
+}
diff --git a/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.js b/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.js
index bba07eff7..75bf5a969 100644
--- a/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.js
+++ b/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.js
@@ -4,6 +4,10 @@ import { connect } from '../../base/redux';
import { Icon, IconClose } from '../../base/icons';
import { translate } from '../../base/i18n';
import { getCurrentConference } from '../../base/conference/functions';
+import { browser } from '../../base/lib-jitsi-meet';
+import { isMobileBrowser } from '../../base/environment/utils';
+
+declare var interfaceConfig: Object;
/**
* Local storage key name for flag telling if user checked 'Don't show again' checkbox on the banner
@@ -32,6 +36,11 @@ type Props = {
*/
chromeExtensionsInfo: Array