Просмотр исходного кода

Merge pull request #29 from damencho/ds-error-handle

Improves desktop sharing error handling.
dev1
yanas 10 лет назад
Родитель
Сommit
794a815a94

+ 6
- 0
JitsiTrackErrors.js Просмотреть файл

@@ -22,9 +22,15 @@ module.exports = {
22 22
         }
23 23
     },
24 24
     UNSUPPORTED_RESOLUTION: "gum.unsupported_resolution",
25
+    /**
26
+     * An event which indicates that the jidesha extension for Firefox is
27
+     * needed to proceed with screen sharing, and that it is not installed.
28
+     */
25 29
     FIREFOX_EXTENSION_NEEDED: "gum.firefox_extension_needed",
26 30
     CHROME_EXTENSION_INSTALLATION_ERROR:
27 31
         "gum.chrome_extension_installation_error",
32
+    CHROME_EXTENSION_USER_CANCELED:
33
+        "gum.chrome_extension_user_canceled",
28 34
     GENERAL: "gum.general",
29 35
     TRACK_IS_DISPOSED: "track.track_is_disposed"
30 36
 };

+ 22
- 4
modules/RTC/ScreenObtainer.js Просмотреть файл

@@ -3,8 +3,6 @@
3 3
 var logger = require("jitsi-meet-logger").getLogger(__filename);
4 4
 var RTCBrowserType = require("./RTCBrowserType");
5 5
 var AdapterJS = require("./adapter.screenshare");
6
-var DesktopSharingEventTypes
7
-    = require("../../service/desktopsharing/DesktopSharingEventTypes");
8 6
 var JitsiTrackErrors = require("../../JitsiTrackErrors");
9 7
 
10 8
 /**
@@ -206,11 +204,18 @@ var ScreenObtainer = {
206 204
                         }, 500);
207 205
                     },
208 206
                     function (arg) {
209
-                        logger.log("Failed to install the extension", arg);
210
-                        failCallback(arg);
207
+                        logger.log("Failed to install the extension from:"
208
+                            + getWebStoreInstallUrl(self.options), arg);
209
+                        failCallback({
210
+                            type: "jitsiError",
211
+                            errorObject: JitsiTrackErrors
212
+                                .CHROME_EXTENSION_INSTALLATION_ERROR
213
+                        });
211 214
                     }
212 215
                 );
213 216
             } catch(e) {
217
+                logger.log("Failed to install the extension from:"
218
+                    + self.getWebStoreInstallUrl(this.options), arg);
214 219
                 failCallback({
215 220
                     type: "jitsiError",
216 221
                     errorObject:
@@ -350,6 +355,19 @@ function doGetStreamFromExtension(options, streamCallback, failCallback) {
350 355
                     failCallback,
351 356
                     {desktopStream: response.streamId});
352 357
             } else {
358
+                // As noted in Chrome Desktop Capture API:
359
+                // If user didn't select any source (i.e. canceled the prompt)
360
+                // then the callback is called with an empty streamId.
361
+                if(response.streamId === "")
362
+                {
363
+                    failCallback({
364
+                        type: "jitsiError",
365
+                        errorObject:
366
+                            JitsiTrackErrors.CHROME_EXTENSION_USER_CANCELED
367
+                    });
368
+                    return;
369
+                }
370
+
353 371
                 failCallback("Extension failed to get the stream");
354 372
             }
355 373
         }

+ 0
- 9
service/desktopsharing/DesktopSharingEventTypes.js Просмотреть файл

@@ -1,9 +0,0 @@
1
-var DesktopSharingEventTypes = {
2
-    /**
3
-     * An event which indicates that the jidesha extension for Firefox is
4
-     * needed to proceed with screen sharing, and that it is not installed.
5
-     */
6
-    FIREFOX_EXTENSION_NEEDED: "ds.firefox_extension_needed"
7
-};
8
-
9
-module.exports = DesktopSharingEventTypes;

Загрузка…
Отмена
Сохранить