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
                 }
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
                 cursor: hand;
156
                 cursor: hand;
160
                 border-radius: $borderRadius;
157
                 border-radius: $borderRadius;
161
                 object-fit: cover;
158
                 object-fit: cover;

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

1
-/* global $, APP, JitsiMeetJS */
1
+/* global $, APP */
2
 /* eslint-disable no-unused-vars */
2
 /* eslint-disable no-unused-vars */
3
 import React from 'react';
3
 import React from 'react';
4
 import ReactDOM from 'react-dom';
4
 import ReactDOM from 'react-dom';
29
 
29
 
30
 const DESKTOP_CONTAINER_TYPE = 'desktop';
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
  * Manager for all Large containers.
33
  * Manager for all Large containers.
42
  */
34
  */
103
             = this._onVideoResolutionUpdate.bind(this);
95
             = this._onVideoResolutionUpdate.bind(this);
104
 
96
 
105
         this.videoContainer.addResizeListener(this._onVideoResolutionUpdate);
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
      * @returns {void}
104
      * @returns {void}
127
      */
105
      */
128
     destroy() {
106
     destroy() {
129
-        window.clearInterval(this._updateVideoResolutionInterval);
130
         this.videoContainer.removeResizeListener(
107
         this.videoContainer.removeResizeListener(
131
             this._onVideoResolutionUpdate);
108
             this._onVideoResolutionUpdate);
132
 
109
 

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

258
         = $source.parents('.displayNameContainer').length > 0;
258
         = $source.parents('.displayNameContainer').length > 0;
259
     const clickedOnPopover = $source.parents('.popover').length > 0
259
     const clickedOnPopover = $source.parents('.popover').length > 0
260
             || classList.contains('popover');
260
             || classList.contains('popover');
261
-
262
     const ignoreClick = clickedOnDisplayName || clickedOnPopover;
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
     if (event.stopPropagation && !ignoreClick) {
263
     if (event.stopPropagation && !ignoreClick) {
267
         event.stopPropagation();
264
         event.stopPropagation();
268
     }
265
     }

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

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
     const { isModerator } = APP.conference;
164
     const { isModerator } = APP.conference;
170
     const participantID = this.id;
165
     const participantID = this.id;
171
 
166
 
267
     this.updateRemoteVideoMenu();
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
  * Change the remote participant's volume level.
266
  * Change the remote participant's volume level.
293
  *
267
  *
294
  * @param {int} newVal - The value to set the slider to.
268
  * @param {int} newVal - The value to set the slider to.
295
  */
269
  */
296
 RemoteVideo.prototype._setAudioVolume = function(newVal) {
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
         return;
500
         return;
527
     }
501
     }
528
 
502
 
529
-    let streamElement = SmallVideo.createStreamElement(stream);
503
+    const streamElement = SmallVideo.createStreamElement(stream);
530
 
504
 
531
     // Put new stream element always in front
505
     // Put new stream element always in front
532
     UIUtils.prependChild(this.container, streamElement);
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
     $(streamElement).hide();
508
     $(streamElement).hide();
539
 
509
 
540
     // If the container is currently visible
510
     // If the container is currently visible
541
     // we attach the stream to the element.
511
     // we attach the stream to the element.
542
     if (!isVideo || (this.container.offsetParent !== null && isVideo)) {
512
     if (!isVideo || (this.container.offsetParent !== null && isVideo)) {
543
         this.waitForPlayback(streamElement, stream);
513
         this.waitForPlayback(streamElement, stream);
544
-
545
-        streamElement = stream.attach(streamElement);
514
+        stream.attach(streamElement);
546
     }
515
     }
547
 
516
 
548
     if (!isVideo) {
517
     if (!isVideo) {

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

1
-/* global $, APP, JitsiMeetJS, interfaceConfig */
1
+/* global $, APP, interfaceConfig */
2
 
2
 
3
 /* eslint-disable no-unused-vars */
3
 /* eslint-disable no-unused-vars */
4
 import React from 'react';
4
 import React from 'react';
34
 import UIUtil from '../util/UIUtil';
34
 import UIUtil from '../util/UIUtil';
35
 import UIEvents from '../../../service/UI/UIEvents';
35
 import UIEvents from '../../../service/UI/UIEvents';
36
 
36
 
37
-const RTCUIHelper = JitsiMeetJS.util.RTCUIHelper;
38
-
39
 /**
37
 /**
40
  * Display mode constant used when video is being displayed on the small video.
38
  * Display mode constant used when video is being displayed on the small video.
41
  * @type {number}
39
  * @type {number}
240
         element.setAttribute('muted', 'true');
238
         element.setAttribute('muted', 'true');
241
     }
239
     }
242
 
240
 
243
-    RTCUIHelper.setAutoPlay(element, true);
244
-
241
+    element.autoplay = true;
245
     element.id = SmallVideo.getStreamElementID(stream);
242
     element.id = SmallVideo.getStreamElementID(stream);
246
 
243
 
247
     return element;
244
     return element;
438
  * array (after checking its length of course!).
435
  * array (after checking its length of course!).
439
  */
436
  */
440
 SmallVideo.prototype.selectVideoElement = function() {
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
  * Container for user video.
186
  * Container for user video.
187
  */
187
  */
188
 export class VideoContainer extends LargeContainer {
188
 export class VideoContainer extends LargeContainer {
189
-    // FIXME: With Temasys we have to re-select everytime
190
     /**
189
     /**
191
      *
190
      *
192
      */
191
      */
277
             this.wasVideoRendered = true;
276
             this.wasVideoRendered = true;
278
         }.bind(this);
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
         this.$video[0].onplaying = onPlayingCallback;
279
         this.$video[0].onplaying = onPlayingCallback;
285
 
280
 
286
         /**
281
         /**
290
          */
285
          */
291
         this._resizeListeners = new Set();
286
         this._resizeListeners = new Set();
292
 
287
 
293
-        // As of May 16, 2017, temasys does not support resize events.
294
         this.$video[0].onresize = this._onResize.bind(this);
288
         this.$video[0].onresize = this._onResize.bind(this);
295
     }
289
     }
296
 
290
 
605
      * <video> elements with plugin <object> tag. In Safari jQuery is
599
      * <video> elements with plugin <object> tag. In Safari jQuery is
606
      * unable to store values on this plugin object which breaks all
600
      * unable to store values on this plugin object which breaks all
607
      * animation effects performed on it directly.
601
      * animation effects performed on it directly.
602
+     *
603
+     * TODO: refactor this since Temasys is no longer supported.
608
      */
604
      */
609
     show() {
605
     show() {
610
         // its already visible
606
         // its already visible
692
         // explicitly disabled.
688
         // explicitly disabled.
693
         if (interfaceConfig.DISABLE_VIDEO_BACKGROUND
689
         if (interfaceConfig.DISABLE_VIDEO_BACKGROUND
694
                 || browser.isFirefox()
690
                 || browser.isFirefox()
695
-                || browser.isSafariWithWebrtc()
696
-                || browser.isTemasysPluginUsed()) {
691
+                || browser.isSafariWithWebrtc()) {
697
             return;
692
             return;
698
         }
693
         }
699
 
694
 

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

2
 
2
 
3
 import type { Dispatch } from 'redux';
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
 declare var APP: Object;
7
 declare var APP: Object;
12
 declare var config: Object;
8
 declare var config: Object;
45
             // features/base/lib-jitsi-meet but we are not there yet on the
41
             // features/base/lib-jitsi-meet but we are not there yet on the
46
             // Web at the time of this writing.
42
             // Web at the time of this writing.
47
             switch (error.name) {
43
             switch (error.name) {
48
-            case WEBRTC_NOT_READY:
49
             case WEBRTC_NOT_SUPPORTED:
44
             case WEBRTC_NOT_SUPPORTED:
50
                 dispatch(libInitError(error));
45
                 dispatch(libInitError(error));
51
             }
46
             }

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

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
  * @returns {Function}
98
  * @returns {Function}
104
  */
99
  */
105
-export function setWebRTCReady(webRTCReady: boolean | Promise<*>) {
100
+export function setWebRTCReady(webRTCReady: boolean) {
106
     return (dispatch: Function, getState: Function) => {
101
     return (dispatch: Function, getState: Function) => {
107
         if (getState()['features/base/lib-jitsi-meet'].webRTCReady
102
         if (getState()['features/base/lib-jitsi-meet'].webRTCReady
108
                 !== webRTCReady) {
103
                 !== webRTCReady) {
110
                 type: SET_WEBRTC_READY,
105
                 type: SET_WEBRTC_READY,
111
                 webRTCReady
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
 /**
1
 /**
2
  * The name of the Error thrown by {@link JitsiMeetJS.init()} which indicates
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
 export const WEBRTC_NOT_SUPPORTED = 'WEBRTC_NOT_SUPPORTED';
5
 export const WEBRTC_NOT_SUPPORTED = 'WEBRTC_NOT_SUPPORTED';

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

8
 import JitsiMeetJS from './_';
8
 import JitsiMeetJS from './_';
9
 import { disposeLib, initLib, setWebRTCReady } from './actions';
9
 import { disposeLib, initLib, setWebRTCReady } from './actions';
10
 import { LIB_DID_INIT, LIB_INIT_ERROR, LIB_WILL_INIT } from './actionTypes';
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
 declare var APP: Object;
13
 declare var APP: Object;
14
 
14
 
74
 
74
 
75
     const { error } = action;
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
     return nextState;
81
     return nextState;

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

30
  * The RTCPeerConnection provided by react-native-webrtc fires onaddstream
30
  * The RTCPeerConnection provided by react-native-webrtc fires onaddstream
31
  * before it remembers remotedescription (and thus makes it available to API
31
  * before it remembers remotedescription (and thus makes it available to API
32
  * clients). Because that appears to be a problem for lib-jitsi-meet which has
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
  * @class
36
  * @class
37
  */
37
  */

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

57
 
57
 
58
         /**
58
         /**
59
          * The internal reference to the DOM/HTML element intended for
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
          * @private
62
          * @private
64
-         * @type {HTMLVideoElement|Object}
63
+         * @type {HTMLVideoElement}
65
          */
64
          */
66
         this._videoElement = null;
65
         this._videoElement = null;
67
 
66
 
79
      * @returns {void}
78
      * @returns {void}
80
      */
79
      */
81
     componentDidMount() {
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
         this._videoElement.volume = 0;
81
         this._videoElement.volume = 0;
85
         this._videoElement.onplaying = this._onVideoPlaying;
82
         this._videoElement.onplaying = this._onVideoPlaying;
86
 
83
 
101
     /**
98
     /**
102
      * Updates the video display only if a new track is added. This component's
99
      * Updates the video display only if a new track is added. This component's
103
      * updating is blackboxed from React to prevent re-rendering of video
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
      * @inheritdoc
103
      * @inheritdoc
109
      * @returns {boolean} - False is always returned to blackbox this component.
104
      * @returns {boolean} - False is always returned to blackbox this component.
130
      * @returns {ReactElement}
125
      * @returns {ReactElement}
131
      */
126
      */
132
     render() {
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
         return (
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
             return;
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
      * Removes the association to the component's video element from the passed
155
      * Removes the association to the component's video element from the passed
171
      * in redux representation of jitsi video track to stop the track from
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
      * @param {Object} videoTrack -  The redux representation of the
159
      * @param {Object} videoTrack -  The redux representation of the
176
      * {@code JitsiLocalTrack}.
160
      * {@code JitsiLocalTrack}.
178
      * @returns {void}
162
      * @returns {void}
179
      */
163
      */
180
     _detachTrack(videoTrack) {
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
             videoTrack.jitsiTrack.detach(this._videoElement);
166
             videoTrack.jitsiTrack.detach(this._videoElement);
191
         }
167
         }
192
     }
168
     }

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

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
 export { default as Container } from './Container';
1
 export { default as Container } from './Container';
2
-export { default as HideNotificationBarStyle }
3
-    from './HideNotificationBarStyle';
4
 export { default as MultiSelectAutocomplete } from './MultiSelectAutocomplete';
2
 export { default as MultiSelectAutocomplete } from './MultiSelectAutocomplete';
5
 export { default as Text } from './Text';
3
 export { default as Text } from './Text';
6
 export { default as Watermarks } from './Watermarks';
4
 export { default as Watermarks } from './Watermarks';

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

8
 import { DialogContainer } from '../../base/dialog';
8
 import { DialogContainer } from '../../base/dialog';
9
 import { translate } from '../../base/i18n';
9
 import { translate } from '../../base/i18n';
10
 import { CalleeInfoContainer } from '../../base/jwt';
10
 import { CalleeInfoContainer } from '../../base/jwt';
11
-import { HideNotificationBarStyle } from '../../base/react';
12
 import { Filmstrip } from '../../filmstrip';
11
 import { Filmstrip } from '../../filmstrip';
13
 import { LargeVideo } from '../../large-video';
12
 import { LargeVideo } from '../../large-video';
14
 import { NotificationsContainer } from '../../notifications';
13
 import { NotificationsContainer } from '../../notifications';
162
                 <NotificationsContainer />
161
                 <NotificationsContainer />
163
 
162
 
164
                 <CalleeInfoContainer />
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
             </div>
164
             </div>
175
         );
165
         );
176
     }
166
     }

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

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

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

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

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

60
     /**
60
     /**
61
      * Whether or not the audio output source selector should display. If
61
      * Whether or not the audio output source selector should display. If
62
      * true, the audio output selector and test audio link will not be
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
     hideAudioOutputSelect: boolean,
65
     hideAudioOutputSelect: boolean,
67
 
66
 

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

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

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

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

Loading…
Cancel
Save