浏览代码

feat(RTC) drop PERMISSION_PROMPT_IS_SHOWN event (#2609)

* feat(RTC) drop PERMISSION_PROMPT_IS_SHOWN event

It was never accurate since browsers have changed their behavior over
time and can be implemented in the application more reliably.

* squash: Update JitsiMeetJS.ts

* squash: Update hand-crafted JitsiMeetJS.d.ts

---------

Co-authored-by: Дамян Минков <damencho@jitsi.org>
release-8443
Saúl Ibarra Corretgé 10 个月前
父节点
当前提交
d7dc753db4
没有帐户链接到提交者的电子邮件

+ 2
- 12
JitsiMeetJS.ts 查看文件

71
 interface ICreateLocalTrackOptions {
71
 interface ICreateLocalTrackOptions {
72
     cameraDeviceId?: string;
72
     cameraDeviceId?: string;
73
     devices?: any[];
73
     devices?: any[];
74
-    firePermissionPromptIsShownEvent?: boolean;
75
     fireSlowPromiseEvent?: boolean;
74
     fireSlowPromiseEvent?: boolean;
76
     micDeviceId?: string;
75
     micDeviceId?: string;
77
     resolution?: string;
76
     resolution?: string;
273
      * which should be created. should be created or some additional
272
      * which should be created. should be created or some additional
274
      * configurations about resolution for example.
273
      * configurations about resolution for example.
275
      * @param {Array} options.effects optional effects array for the track
274
      * @param {Array} options.effects optional effects array for the track
276
-     * @param {boolean} options.firePermissionPromptIsShownEvent - if event
277
-     * JitsiMediaDevicesEvents.PERMISSION_PROMPT_IS_SHOWN should be fired
278
      * @param {Array} options.devices the devices that will be requested
275
      * @param {Array} options.devices the devices that will be requested
279
      * @param {string} options.resolution resolution constraints
276
      * @param {string} options.resolution resolution constraints
280
      * @param {string} options.cameraDeviceId
277
      * @param {string} options.cameraDeviceId
285
      * JitsiConferenceError if rejected.
282
      * JitsiConferenceError if rejected.
286
      */
283
      */
287
     createLocalTracks(options: ICreateLocalTrackOptions = {}) {
284
     createLocalTracks(options: ICreateLocalTrackOptions = {}) {
288
-        const { firePermissionPromptIsShownEvent, ...restOptions } = options;
289
-
290
-        if (firePermissionPromptIsShownEvent && !RTC.arePermissionsGrantedForAvailableDevices()) {
291
-            // @ts-ignore
292
-            JitsiMediaDevices.emit(JitsiMediaDevicesEvents.PERMISSION_PROMPT_IS_SHOWN, browser.getName());
293
-        }
294
-
295
         let isFirstGUM = false;
285
         let isFirstGUM = false;
296
         let startTS = window.performance.now();
286
         let startTS = window.performance.now();
297
 
287
 
306
         }
296
         }
307
         window.connectionTimes['obtainPermissions.start'] = startTS;
297
         window.connectionTimes['obtainPermissions.start'] = startTS;
308
 
298
 
309
-        return RTC.obtainAudioAndVideoPermissions(restOptions)
299
+        return RTC.obtainAudioAndVideoPermissions(options)
310
             .then(tracks => {
300
             .then(tracks => {
311
                 let endTS = window.performance.now();
301
                 let endTS = window.performance.now();
312
 
302
 
319
                 Statistics.sendAnalytics(
309
                 Statistics.sendAnalytics(
320
                     createGetUserMediaEvent(
310
                     createGetUserMediaEvent(
321
                         'success',
311
                         'success',
322
-                        getAnalyticsAttributesFromOptions(restOptions)));
312
+                        getAnalyticsAttributesFromOptions(options)));
323
 
313
 
324
                 if (this.isCollectingLocalStats()) {
314
                 if (this.isCollectingLocalStats()) {
325
                     for (let i = 0; i < tracks.length; i++) {
315
                     for (let i = 0; i < tracks.length; i++) {

+ 0
- 8
modules/RTC/RTC.js 查看文件

631
         return RTCUtils.getCurrentlyAvailableMediaDevices();
631
         return RTCUtils.getCurrentlyAvailableMediaDevices();
632
     }
632
     }
633
 
633
 
634
-    /**
635
-     * Returns whether available devices have permissions granted
636
-     * @returns {Boolean}
637
-     */
638
-    static arePermissionsGrantedForAvailableDevices() {
639
-        return RTCUtils.arePermissionsGrantedForAvailableDevices();
640
-    }
641
-
642
     /**
634
     /**
643
      * Returns event data for device to be reported to stats.
635
      * Returns event data for device to be reported to stats.
644
      * @returns {MediaDeviceInfo} device.
636
      * @returns {MediaDeviceInfo} device.

+ 0
- 8
modules/RTC/RTCUtils.js 查看文件

827
         return availableDevices;
827
         return availableDevices;
828
     }
828
     }
829
 
829
 
830
-    /**
831
-     * Returns whether available devices have permissions granted
832
-     * @returns {Boolean}
833
-     */
834
-    arePermissionsGrantedForAvailableDevices() {
835
-        return availableDevices.some(device => Boolean(device.label));
836
-    }
837
-
838
     /**
830
     /**
839
      * Returns event data for device to be reported to stats.
831
      * Returns event data for device to be reported to stats.
840
      * @returns {MediaDeviceInfo} device.
832
      * @returns {MediaDeviceInfo} device.

+ 1
- 1
types/hand-crafted/JitsiMeetJS.d.ts 查看文件

114
 
114
 
115
   setGlobalLogOptions: ( options: unknown ) => void; // TODO:
115
   setGlobalLogOptions: ( options: unknown ) => void; // TODO:
116
 
116
 
117
-  createLocalTracks: ( options: CreateLocalTracksOptions, firePermissionPromptIsShownEvent?: boolean, originalOptions?: CreateLocalTracksOptions ) => Promise<Array<JitsiLocalTrack> | JitsiConferenceErrors>; // TODO:
117
+  createLocalTracks: ( options: CreateLocalTracksOptions, originalOptions?: CreateLocalTracksOptions ) => Promise<Array<JitsiLocalTrack> | JitsiConferenceErrors>; // TODO:
118
 
118
 
119
   createTrackVADEmitter: ( localAudioDeviceId: string, sampleRate: 256 | 512 | 1024 | 4096 | 8192 | 16384, vadProcessor: VADProcessor ) => Promise<TrackVADEmitter>;
119
   createTrackVADEmitter: ( localAudioDeviceId: string, sampleRate: 256 | 512 | 1024 | 4096 | 8192 | 16384, vadProcessor: VADProcessor ) => Promise<TrackVADEmitter>;
120
 
120
 

+ 0
- 1
types/hand-crafted/modules/RTC/RTC.d.ts 查看文件

42
   isInForwardedSources: ( sourceName: string ) => boolean;
42
   isInForwardedSources: ( sourceName: string ) => boolean;
43
   setReceiverVideoConstraints: ( constraints: unknown ) => void; // TODO:
43
   setReceiverVideoConstraints: ( constraints: unknown ) => void; // TODO:
44
   setVideoMute: ( value: unknown ) => Promise<unknown>; // TODO:
44
   setVideoMute: ( value: unknown ) => Promise<unknown>; // TODO:
45
-  arePermissionsGrantedForAvailableDevices: () => boolean;
46
   sendEndpointStatsMessage: ( payload: unknown ) => void; // TODO:
45
   sendEndpointStatsMessage: ( payload: unknown ) => void; // TODO:
47
 }
46
 }

+ 0
- 1
types/hand-crafted/modules/RTC/RTCUtils.d.ts 查看文件

14
   getAudioOutputDevice: () => string;
14
   getAudioOutputDevice: () => string;
15
   getCurrentlyAvailableMediaDevices: () => unknown[]; // TODO:
15
   getCurrentlyAvailableMediaDevices: () => unknown[]; // TODO:
16
   getEventDataForActiveDevice: ( device: MediaDeviceInfo ) => unknown; // TODO:
16
   getEventDataForActiveDevice: ( device: MediaDeviceInfo ) => unknown; // TODO:
17
-  arePermissionsGrantedForAvailableDevices: () => boolean;
18
   isUserStreamById: ( streamId: string ) => boolean;
17
   isUserStreamById: ( streamId: string ) => boolean;
19
 }
18
 }
20
 
19
 

正在加载...
取消
保存