Browse Source

feat(sanity): axe IE and Temasys plugin support 🔥🔥🔥

j8
Saúl Ibarra Corretgé 6 years ago
parent
commit
87fa8de815

+ 1
- 4
css/_filmstrip.scss View File

@@ -152,10 +152,7 @@
152 152
                 }
153 153
             }
154 154
 
155
-            /* With the TemasysWebRTC plugin <object/> element is used
156
-            instead of <video/> */
157
-            & > video,
158
-            & > object {
155
+            & > video {
159 156
                 cursor: hand;
160 157
                 border-radius: $borderRadius;
161 158
                 object-fit: cover;

+ 3
- 26
modules/UI/videolayout/LargeVideoManager.js View File

@@ -1,4 +1,4 @@
1
-/* global $, APP, JitsiMeetJS */
1
+/* global $, APP */
2 2
 /* eslint-disable no-unused-vars */
3 3
 import React from 'react';
4 4
 import ReactDOM from 'react-dom';
@@ -29,14 +29,6 @@ import AudioLevels from '../audio_levels/AudioLevels';
29 29
 
30 30
 const DESKTOP_CONTAINER_TYPE = 'desktop';
31 31
 
32
-/**
33
- * The time interval in milliseconds to check the video resolution of the video
34
- * being displayed.
35
- *
36
- * @type {number}
37
- */
38
-const VIDEO_RESOLUTION_POLL_INTERVAL = 2000;
39
-
40 32
 /**
41 33
  * Manager for all Large containers.
42 34
  */
@@ -103,30 +95,15 @@ export default class LargeVideoManager {
103 95
             = this._onVideoResolutionUpdate.bind(this);
104 96
 
105 97
         this.videoContainer.addResizeListener(this._onVideoResolutionUpdate);
106
-
107
-        if (!JitsiMeetJS.util.RTCUIHelper.isResizeEventSupported()) {
108
-            /**
109
-             * An interval for polling if the displayed video resolution is or
110
-             * is not high-definition. For browsers that do not support video
111
-             * resize events, polling is the fallback.
112
-             *
113
-             * @private
114
-             * @type {timeoutId}
115
-             */
116
-            this._updateVideoResolutionInterval = window.setInterval(
117
-                this._onVideoResolutionUpdate,
118
-                VIDEO_RESOLUTION_POLL_INTERVAL);
119
-        }
120 98
     }
121 99
 
122 100
     /**
123
-     * Stops any polling intervals on the instance and removes any
124
-     * listeners registered on child components, including React Components.
101
+     * Removes any listeners registered on child components, including
102
+     * React Components.
125 103
      *
126 104
      * @returns {void}
127 105
      */
128 106
     destroy() {
129
-        window.clearInterval(this._updateVideoResolutionInterval);
130 107
         this.videoContainer.removeResizeListener(
131 108
             this._onVideoResolutionUpdate);
132 109
 

+ 0
- 3
modules/UI/videolayout/LocalVideo.js View File

@@ -258,11 +258,8 @@ LocalVideo.prototype._onContainerClick = function(event) {
258 258
         = $source.parents('.displayNameContainer').length > 0;
259 259
     const clickedOnPopover = $source.parents('.popover').length > 0
260 260
             || classList.contains('popover');
261
-
262 261
     const ignoreClick = clickedOnDisplayName || clickedOnPopover;
263 262
 
264
-    // FIXME: with Temasys plugin event arg is not an event, but the clicked
265
-    // object itself, so we have to skip this call
266 263
     if (event.stopPropagation && !ignoreClick) {
267 264
         event.stopPropagation();
268 265
     }

+ 7
- 38
modules/UI/videolayout/RemoteVideo.js View File

@@ -158,14 +158,9 @@ RemoteVideo.prototype._generatePopupContent = function() {
158 158
         }
159 159
     }
160 160
 
161
-    let initialVolumeValue, onVolumeChange;
162
-
163
-    // Feature check for volume setting as temasys objects cannot adjust volume.
164
-    if (this._canSetAudioVolume()) {
165
-        initialVolumeValue = this._getAudioElement().volume;
166
-        onVolumeChange = this._setAudioVolume;
167
-    }
168
-
161
+    const initialVolumeValue
162
+        = this._audioStreamElement && this._audioStreamElement.volume;
163
+    const onVolumeChange = this._setAudioVolume;
169 164
     const { isModerator } = APP.conference;
170 165
     const participantID = this.id;
171 166
 
@@ -267,35 +262,14 @@ RemoteVideo.prototype._stopRemoteControl = function() {
267 262
     this.updateRemoteVideoMenu();
268 263
 };
269 264
 
270
-/**
271
- * Get the remote participant's audio element.
272
- *
273
- * @returns {Element} audio element
274
- */
275
-RemoteVideo.prototype._getAudioElement = function() {
276
-    return this._audioStreamElement;
277
-};
278
-
279
-/**
280
- * Check if the remote participant's audio can have its volume adjusted.
281
- *
282
- * @returns {boolean} true if the volume can be adjusted.
283
- */
284
-RemoteVideo.prototype._canSetAudioVolume = function() {
285
-    const audioElement = this._getAudioElement();
286
-
287
-
288
-    return audioElement && audioElement.volume !== undefined;
289
-};
290
-
291 265
 /**
292 266
  * Change the remote participant's volume level.
293 267
  *
294 268
  * @param {int} newVal - The value to set the slider to.
295 269
  */
296 270
 RemoteVideo.prototype._setAudioVolume = function(newVal) {
297
-    if (this._canSetAudioVolume()) {
298
-        this._getAudioElement().volume = newVal;
271
+    if (this._audioStreamElement) {
272
+        this._audioStreamElement.volume = newVal;
299 273
     }
300 274
 };
301 275
 
@@ -526,23 +500,18 @@ RemoteVideo.prototype.addRemoteStreamElement = function(stream) {
526 500
         return;
527 501
     }
528 502
 
529
-    let streamElement = SmallVideo.createStreamElement(stream);
503
+    const streamElement = SmallVideo.createStreamElement(stream);
530 504
 
531 505
     // Put new stream element always in front
532 506
     UIUtils.prependChild(this.container, streamElement);
533 507
 
534
-    // If we hide element when Temasys plugin is used then
535
-    // we'll never receive 'onplay' event and other logic won't work as expected
536
-    // NOTE: hiding will not have effect when Temasys plugin is in use, as
537
-    // calling attach will show it back
538 508
     $(streamElement).hide();
539 509
 
540 510
     // If the container is currently visible
541 511
     // we attach the stream to the element.
542 512
     if (!isVideo || (this.container.offsetParent !== null && isVideo)) {
543 513
         this.waitForPlayback(streamElement, stream);
544
-
545
-        streamElement = stream.attach(streamElement);
514
+        stream.attach(streamElement);
546 515
     }
547 516
 
548 517
     if (!isVideo) {

+ 3
- 6
modules/UI/videolayout/SmallVideo.js View File

@@ -1,4 +1,4 @@
1
-/* global $, APP, JitsiMeetJS, interfaceConfig */
1
+/* global $, APP, interfaceConfig */
2 2
 
3 3
 /* eslint-disable no-unused-vars */
4 4
 import React from 'react';
@@ -34,8 +34,6 @@ const logger = require('jitsi-meet-logger').getLogger(__filename);
34 34
 import UIUtil from '../util/UIUtil';
35 35
 import UIEvents from '../../../service/UI/UIEvents';
36 36
 
37
-const RTCUIHelper = JitsiMeetJS.util.RTCUIHelper;
38
-
39 37
 /**
40 38
  * Display mode constant used when video is being displayed on the small video.
41 39
  * @type {number}
@@ -240,8 +238,7 @@ SmallVideo.createStreamElement = function(stream) {
240 238
         element.setAttribute('muted', 'true');
241 239
     }
242 240
 
243
-    RTCUIHelper.setAutoPlay(element, true);
244
-
241
+    element.autoplay = true;
245 242
     element.id = SmallVideo.getStreamElementID(stream);
246 243
 
247 244
     return element;
@@ -438,7 +435,7 @@ SmallVideo.prototype.removeModeratorIndicator = function() {
438 435
  * array (after checking its length of course!).
439 436
  */
440 437
 SmallVideo.prototype.selectVideoElement = function() {
441
-    return $(RTCUIHelper.findVideoElement(this.container));
438
+    return $($(this.container).find('video')[0]);
442 439
 };
443 440
 
444 441
 /**

+ 3
- 8
modules/UI/videolayout/VideoContainer.js View File

@@ -186,7 +186,6 @@ function getDesktopVideoPosition(videoWidth, videoHeight, videoSpaceWidth) {
186 186
  * Container for user video.
187 187
  */
188 188
 export class VideoContainer extends LargeContainer {
189
-    // FIXME: With Temasys we have to re-select everytime
190 189
     /**
191 190
      *
192 191
      */
@@ -277,10 +276,6 @@ export class VideoContainer extends LargeContainer {
277 276
             this.wasVideoRendered = true;
278 277
         }.bind(this);
279 278
 
280
-        // This does not work with Temasys plugin - has to be a property to be
281
-        // copied between new <object> elements
282
-        // this.$video.on('play', onPlay);
283
-
284 279
         this.$video[0].onplaying = onPlayingCallback;
285 280
 
286 281
         /**
@@ -290,7 +285,6 @@ export class VideoContainer extends LargeContainer {
290 285
          */
291 286
         this._resizeListeners = new Set();
292 287
 
293
-        // As of May 16, 2017, temasys does not support resize events.
294 288
         this.$video[0].onresize = this._onResize.bind(this);
295 289
     }
296 290
 
@@ -605,6 +599,8 @@ export class VideoContainer extends LargeContainer {
605 599
      * <video> elements with plugin <object> tag. In Safari jQuery is
606 600
      * unable to store values on this plugin object which breaks all
607 601
      * animation effects performed on it directly.
602
+     *
603
+     * TODO: refactor this since Temasys is no longer supported.
608 604
      */
609 605
     show() {
610 606
         // its already visible
@@ -692,8 +688,7 @@ export class VideoContainer extends LargeContainer {
692 688
         // explicitly disabled.
693 689
         if (interfaceConfig.DISABLE_VIDEO_BACKGROUND
694 690
                 || browser.isFirefox()
695
-                || browser.isSafariWithWebrtc()
696
-                || browser.isTemasysPluginUsed()) {
691
+                || browser.isSafariWithWebrtc()) {
697 692
             return;
698 693
         }
699 694
 

+ 1
- 6
react/features/base/connection/actions.web.js View File

@@ -2,11 +2,7 @@
2 2
 
3 3
 import type { Dispatch } from 'redux';
4 4
 
5
-import {
6
-    libInitError,
7
-    WEBRTC_NOT_READY,
8
-    WEBRTC_NOT_SUPPORTED
9
-} from '../lib-jitsi-meet';
5
+import { libInitError, WEBRTC_NOT_SUPPORTED } from '../lib-jitsi-meet';
10 6
 
11 7
 declare var APP: Object;
12 8
 declare var config: Object;
@@ -45,7 +41,6 @@ export function connect() {
45 41
             // features/base/lib-jitsi-meet but we are not there yet on the
46 42
             // Web at the time of this writing.
47 43
             switch (error.name) {
48
-            case WEBRTC_NOT_READY:
49 44
             case WEBRTC_NOT_SUPPORTED:
50 45
                 dispatch(libInitError(error));
51 46
             }

+ 4
- 36
react/features/base/lib-jitsi-meet/actions.js View File

@@ -91,18 +91,13 @@ export function libInitError(error: Error) {
91 91
 }
92 92
 
93 93
 /**
94
- * Sets the indicator which determines whether WebRTC is ready. In execution
95
- * environments in which WebRTC is supported via a known plugin such
96
- * as Temasys WebRTC may start not ready and then become ready. Of course, there
97
- * are execution enviroments such as old Mozilla Firefox versions or
98
- * certains Microsoft Edge versions in which WebRTC is not supported at all.
94
+ * Sets the indicator which determines whether WebRTC is ready.
99 95
  *
100
- * @param {boolean|Promise} webRTCReady - The indicator which determines
101
- * whether WebRTC is ready. If a Promise is specified, its resolution will be
102
- * awaited.
96
+ * @param {boolean} webRTCReady - The indicator which determines
97
+ * whether WebRTC is ready.
103 98
  * @returns {Function}
104 99
  */
105
-export function setWebRTCReady(webRTCReady: boolean | Promise<*>) {
100
+export function setWebRTCReady(webRTCReady: boolean) {
106 101
     return (dispatch: Function, getState: Function) => {
107 102
         if (getState()['features/base/lib-jitsi-meet'].webRTCReady
108 103
                 !== webRTCReady) {
@@ -110,33 +105,6 @@ export function setWebRTCReady(webRTCReady: boolean | Promise<*>) {
110 105
                 type: SET_WEBRTC_READY,
111 106
                 webRTCReady
112 107
             });
113
-
114
-            // If the specified webRTCReady is a thenable (i.e. a Promise), then
115
-            // await its resolution.
116
-            switch (typeof webRTCReady) {
117
-            case 'function':
118
-            case 'object': {
119
-                const { then } = webRTCReady;
120
-
121
-                if (typeof then === 'function') {
122
-                    const onFulfilled = value => {
123
-                        // Is the app still interested in the specified
124
-                        // webRTCReady?
125
-                        if (getState()['features/base/lib-jitsi-meet']
126
-                                    .webRTCReady
127
-                                === webRTCReady) {
128
-                            dispatch(setWebRTCReady(value));
129
-                        }
130
-                    };
131
-
132
-                    then.call(
133
-                             webRTCReady,
134
-                             /* onFulfilled */ () => onFulfilled(true),
135
-                             /* onRejected*/ () => onFulfilled(false));
136
-                }
137
-                break;
138
-            }
139
-            }
140 108
         }
141 109
     };
142 110
 }

+ 1
- 9
react/features/base/lib-jitsi-meet/constants.js View File

@@ -1,13 +1,5 @@
1 1
 /**
2 2
  * The name of the Error thrown by {@link JitsiMeetJS.init()} which indicates
3
- * that WebRTC is not ready and its readiness may be tracked via the
4
- * webRTCReadyPromise property value of the Error.
5
- */
6
-export const WEBRTC_NOT_READY = 'WEBRTC_NOT_READY';
7
-
8
-/**
9
- * The name of the Error thrown by {@link JitsiMeetJS.init()} which indicates
10
- * that WebRTC is not supported by the execution environment either natively or
11
- * via a known plugin such as Temasys.
3
+ * that WebRTC is not supported by the execution environment.
12 4
  */
13 5
 export const WEBRTC_NOT_SUPPORTED = 'WEBRTC_NOT_SUPPORTED';

+ 3
- 15
react/features/base/lib-jitsi-meet/middleware.js View File

@@ -8,7 +8,7 @@ import { MiddlewareRegistry } from '../redux';
8 8
 import JitsiMeetJS from './_';
9 9
 import { disposeLib, initLib, setWebRTCReady } from './actions';
10 10
 import { LIB_DID_INIT, LIB_INIT_ERROR, LIB_WILL_INIT } from './actionTypes';
11
-import { WEBRTC_NOT_READY, WEBRTC_NOT_SUPPORTED } from './constants';
11
+import { WEBRTC_NOT_SUPPORTED } from './constants';
12 12
 
13 13
 declare var APP: Object;
14 14
 
@@ -74,20 +74,8 @@ function _libInitError(store, next, action) {
74 74
 
75 75
     const { error } = action;
76 76
 
77
-    if (error) {
78
-        let webRTCReady;
79
-
80
-        switch (error.name) {
81
-        case WEBRTC_NOT_READY:
82
-            webRTCReady = error.webRTCReadyPromise;
83
-            break;
84
-
85
-        case WEBRTC_NOT_SUPPORTED:
86
-            webRTCReady = false;
87
-            break;
88
-        }
89
-        typeof webRTCReady === 'undefined'
90
-            || store.dispatch(setWebRTCReady(webRTCReady));
77
+    if (error && error.name === WEBRTC_NOT_SUPPORTED) {
78
+        store.dispatch(setWebRTCReady(false));
91 79
     }
92 80
 
93 81
     return nextState;

+ 2
- 2
react/features/base/lib-jitsi-meet/native/RTCPeerConnection.js View File

@@ -30,8 +30,8 @@ const SOCK_STREAM = 1; /* stream socket */
30 30
  * The RTCPeerConnection provided by react-native-webrtc fires onaddstream
31 31
  * before it remembers remotedescription (and thus makes it available to API
32 32
  * clients). Because that appears to be a problem for lib-jitsi-meet which has
33
- * been successfully running on Chrome, Firefox, Temasys, etc. for a very long
34
- * time, attempt to meets its expectations (by extending RTCPPeerConnection).
33
+ * been successfully running on Chrome, Firefox, etc. for a very long
34
+ * time, attempt to meet its expectations (by extending RTCPPeerConnection).
35 35
  *
36 36
  * @class
37 37
  */

+ 11
- 35
react/features/base/media/components/web/Video.js View File

@@ -57,11 +57,10 @@ class Video extends Component {
57 57
 
58 58
         /**
59 59
          * The internal reference to the DOM/HTML element intended for
60
-         * displaying a video. This element may be an HTML video element or a
61
-         * temasys video object.
60
+         * displaying a video.
62 61
          *
63 62
          * @private
64
-         * @type {HTMLVideoElement|Object}
63
+         * @type {HTMLVideoElement}
65 64
          */
66 65
         this._videoElement = null;
67 66
 
@@ -79,8 +78,6 @@ class Video extends Component {
79 78
      * @returns {void}
80 79
      */
81 80
     componentDidMount() {
82
-        // Add these attributes directly onto the video element so temasys can
83
-        // use them when converting the video to an object.
84 81
         this._videoElement.volume = 0;
85 82
         this._videoElement.onplaying = this._onVideoPlaying;
86 83
 
@@ -101,9 +98,7 @@ class Video extends Component {
101 98
     /**
102 99
      * Updates the video display only if a new track is added. This component's
103 100
      * updating is blackboxed from React to prevent re-rendering of video
104
-     * element, as the lib uses track.attach(videoElement) instead. Also,
105
-     * re-rendering cannot be used with temasys, which replaces video elements
106
-     * with an object.
101
+     * element, as the lib uses track.attach(videoElement) instead.
107 102
      *
108 103
      * @inheritdoc
109 104
      * @returns {boolean} - False is always returned to blackbox this component.
@@ -130,17 +125,12 @@ class Video extends Component {
130 125
      * @returns {ReactElement}
131 126
      */
132 127
     render() {
133
-        // The wrapping div is necessary because temasys will replace the video
134
-        // with an object but react will keep expecting the video element. The
135
-        // div gives a constant element for react to keep track of.
136 128
         return (
137
-            <div>
138
-                <video
139
-                    autoPlay = { true }
140
-                    className = { this.props.className }
141
-                    id = { this.props.id }
142
-                    ref = { this._setVideoElement } />
143
-            </div>
129
+            <video
130
+                autoPlay = { true }
131
+                className = { this.props.className }
132
+                id = { this.props.id }
133
+                ref = { this._setVideoElement } />
144 134
         );
145 135
     }
146 136
 
@@ -158,19 +148,13 @@ class Video extends Component {
158 148
             return;
159 149
         }
160 150
 
161
-        const updatedVideoElement
162
-            = videoTrack.jitsiTrack.attach(this._videoElement);
163
-
164
-        // Sets the instance variable for the video element again as the element
165
-        // maybe have been replaced with a new object by temasys.
166
-        this._setVideoElement(updatedVideoElement);
151
+        videoTrack.jitsiTrack.attach(this._videoElement);
167 152
     }
168 153
 
169 154
     /**
170 155
      * Removes the association to the component's video element from the passed
171 156
      * in redux representation of jitsi video track to stop the track from
172
-     * rendering. With temasys, the video element must still be visible for
173
-     * detaching to complete.
157
+     * rendering.
174 158
      *
175 159
      * @param {Object} videoTrack -  The redux representation of the
176 160
      * {@code JitsiLocalTrack}.
@@ -178,15 +162,7 @@ class Video extends Component {
178 162
      * @returns {void}
179 163
      */
180 164
     _detachTrack(videoTrack) {
181
-        // Detach the video element from the track only if it has already
182
-        // been attached. This accounts for a special case with temasys
183
-        // where if detach is being called before attach, the video
184
-        // element is converted to Object without updating this
185
-        // component's reference to the video element.
186
-        if (this._videoElement
187
-            && videoTrack
188
-            && videoTrack.jitsiTrack
189
-            && videoTrack.jitsiTrack.containers.includes(this._videoElement)) {
165
+        if (this._videoElement && videoTrack && videoTrack.jitsiTrack) {
190 166
             videoTrack.jitsiTrack.detach(this._videoElement);
191 167
         }
192 168
     }

+ 0
- 39
react/features/base/react/components/web/HideNotificationBarStyle.js View File

@@ -1,39 +0,0 @@
1
-/* @flow */
2
-
3
-import React, { Component } from 'react';
4
-
5
-/**
6
- * React component that represents HTML style element with CSS specific to
7
- * unsupported mobile browser components.
8
- *
9
- * @private
10
- * @returns {ReactElement}
11
- */
12
-export default class HideNotificationBarStyles extends Component<*> {
13
-
14
-    /**
15
-     * Implements React's {@link Component#render()}.
16
-     *
17
-     * @inheritdoc
18
-     * @returns {ReactElement}
19
-     */
20
-    render() {
21
-        // Temasys provide lib-jitsi-meet/modules/RTC/adapter.screenshare.js
22
-        // which detects whether the browser supports WebRTC. If the browser
23
-        // does not support WebRTC, it displays an alert in the form of a yellow
24
-        // bar at the top of the page. The alert notifies the user that the
25
-        // browser does not support WebRTC and, if Temasys provide a plugin for
26
-        // the browser, the alert contains a button to initiate installing the
27
-        // browser. When Temasys do not provide a plugin for the browser, we do
28
-        // not want the alert on the unsupported-browser page because the
29
-        // notification about the lack of WebRTC support is the whole point of
30
-        // the unsupported-browser page.
31
-        return (
32
-            <style type = 'text/css'>
33
-                {
34
-                    'iframe[name="adapterjs-alert"] { display: none; }'
35
-                }
36
-            </style>
37
-        );
38
-    }
39
-}

+ 0
- 2
react/features/base/react/components/web/index.js View File

@@ -1,6 +1,4 @@
1 1
 export { default as Container } from './Container';
2
-export { default as HideNotificationBarStyle }
3
-    from './HideNotificationBarStyle';
4 2
 export { default as MultiSelectAutocomplete } from './MultiSelectAutocomplete';
5 3
 export { default as Text } from './Text';
6 4
 export { default as Watermarks } from './Watermarks';

+ 0
- 10
react/features/conference/components/Conference.web.js View File

@@ -8,7 +8,6 @@ import { connect, disconnect } from '../../base/connection';
8 8
 import { DialogContainer } from '../../base/dialog';
9 9
 import { translate } from '../../base/i18n';
10 10
 import { CalleeInfoContainer } from '../../base/jwt';
11
-import { HideNotificationBarStyle } from '../../base/react';
12 11
 import { Filmstrip } from '../../filmstrip';
13 12
 import { LargeVideo } from '../../large-video';
14 13
 import { NotificationsContainer } from '../../notifications';
@@ -162,15 +161,6 @@ class Conference extends Component<Props> {
162 161
                 <NotificationsContainer />
163 162
 
164 163
                 <CalleeInfoContainer />
165
-
166
-                {/*
167
-                  * Temasys automatically injects a notification bar, if
168
-                  * necessary, displayed at the top of the page notifying that
169
-                  * WebRTC is not installed or supported. We do not need/want
170
-                  * the notification bar in question because we have whole pages
171
-                  * dedicated to the respective scenarios.
172
-                  */}
173
-                <HideNotificationBarStyle />
174 164
             </div>
175 165
         );
176 166
     }

+ 1
- 2
react/features/deep-linking/components/DeepLinkingMobilePage.js View File

@@ -6,7 +6,7 @@ import { connect } from 'react-redux';
6 6
 
7 7
 import { createDeepLinkingPageEvent, sendAnalytics } from '../../analytics';
8 8
 import { translate, translateToHTML } from '../../base/i18n';
9
-import { HideNotificationBarStyle, Platform } from '../../base/react';
9
+import { Platform } from '../../base/react';
10 10
 import { DialInSummary } from '../../invite';
11 11
 
12 12
 import { _TNS } from '../constants';
@@ -154,7 +154,6 @@ class DeepLinkingMobilePage extends Component<*, *> {
154 154
                         clickableNumbers = { true }
155 155
                         room = { _room } />
156 156
                 </div>
157
-                <HideNotificationBarStyle />
158 157
             </div>
159 158
         );
160 159
     }

+ 0
- 3
react/features/deep-linking/components/NoMobileApp.js View File

@@ -3,7 +3,6 @@
3 3
 import React, { Component } from 'react';
4 4
 
5 5
 import { createDeepLinkingPageEvent, sendAnalytics } from '../../analytics';
6
-import { HideNotificationBarStyle } from '../../base/react';
7 6
 
8 7
 declare var interfaceConfig: Object;
9 8
 
@@ -41,8 +40,6 @@ export default class NoMobileApp extends Component<*> {
41 40
                     Please use { interfaceConfig.NATIVE_APP_NAME } on desktop to
42 41
                     join calls.
43 42
                 </p>
44
-
45
-                <HideNotificationBarStyle />
46 43
             </div>
47 44
         );
48 45
     }

+ 1
- 2
react/features/device-selection/components/DeviceSelection.js View File

@@ -60,8 +60,7 @@ export type Props = {
60 60
     /**
61 61
      * Whether or not the audio output source selector should display. If
62 62
      * true, the audio output selector and test audio link will not be
63
-     * rendered. This is specifically used for hiding audio output on
64
-     * temasys browsers which do not support such change.
63
+     * rendered.
65 64
      */
66 65
     hideAudioOutputSelect: boolean,
67 66
 

+ 1
- 3
react/features/unsupported-browser/components/UnsupportedDesktopBrowser.js View File

@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
4 4
 import React, { Component } from 'react';
5 5
 
6 6
 import { translate } from '../../base/i18n';
7
-import { HideNotificationBarStyle, Platform } from '../../base/react';
7
+import { Platform } from '../../base/react';
8 8
 
9 9
 import { CHROME, FIREFOX, IE, SAFARI } from './browserLinks';
10 10
 
@@ -60,8 +60,6 @@ class UnsupportedDesktopBrowser extends Component<*> {
60 60
                         this._renderOSSpecificBrowserDownloadLink()
61 61
                     }
62 62
                 </p>
63
-
64
-                <HideNotificationBarStyle />
65 63
             </div>
66 64
         );
67 65
     }

+ 1
- 2
react/features/welcome/components/WelcomePage.web.js View File

@@ -7,7 +7,7 @@ import React from 'react';
7 7
 import { connect } from 'react-redux';
8 8
 
9 9
 import { translate } from '../../base/i18n';
10
-import { HideNotificationBarStyle, Watermarks } from '../../base/react';
10
+import { Watermarks } from '../../base/react';
11 11
 
12 12
 import { AbstractWelcomePage, _mapStateToProps } from './AbstractWelcomePage';
13 13
 
@@ -151,7 +151,6 @@ class WelcomePage extends AbstractWelcomePage {
151 151
                             ref = { this._setAdditionalContentRef } />
152 152
                         : null }
153 153
                 </div>
154
-                <HideNotificationBarStyle />
155 154
             </AtlasKitThemeProvider>
156 155
         );
157 156
     }

Loading…
Cancel
Save