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

Fixes the issue with SS external installation dialog is not closed after the plugin has been installed

dev1
hristoterezov 9 лет назад
Родитель
Сommit
32f05da153
1 измененных файлов: 15 добавлений и 17 удалений
  1. 15
    17
      modules/RTC/ScreenObtainer.js

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

@@ -240,7 +240,8 @@ var ScreenObtainer = {
240 240
         if( CHROME_EXTENSION_POPUP_ERROR === e && options.interval > 0 &&
241 241
             typeof(options.checkAgain) === "function" &&
242 242
             typeof(options.listener) === "function") {
243
-            options.listener(getWebStoreInstallUrl(this.options));
243
+            options.listener("waitingForExtension",
244
+                getWebStoreInstallUrl(this.options));
244 245
             this.checkForChromeExtensionOnInterval(options,
245 246
                 streamCallback, failCallback, e);
246 247
             return;
@@ -256,29 +257,26 @@ var ScreenObtainer = {
256 257
         ));
257 258
     },
258 259
     checkForChromeExtensionOnInterval: function (options,
259
-        streamCallback, failCallback, e) {
260
-        if ( CHROME_EXTENSION_POPUP_ERROR !== e &&
261
-            (e.name !== JitsiTrackErrors.CHROME_EXTENSION_GENERIC_ERROR ||
262
-            !e.message ||
263
-            e.message.message !== CHROME_NO_EXTENSION_ERROR_MSG)) {
264
-            this.handleExtensionInstallationError(null, streamCallback,
265
-                failCallback, e);
266
-            return;
267
-        }
260
+        streamCallback, failCallback) {
268 261
         if (options.checkAgain() === false) {
269 262
             failCallback(new JitsiTrackError(
270 263
                 JitsiTrackErrors.CHROME_EXTENSION_INSTALLATION_ERROR));
271 264
             return;
272 265
         }
273
-        var args = arguments;
274 266
         var self = this;
275 267
         window.setTimeout(function () {
276
-            doGetStreamFromExtension(self.options,
277
-                function () {
278
-                    chromeExtInstalled = true;
279
-                    streamCallback.apply(null, arguments);
280
-                }, self.checkForChromeExtensionOnInterval.bind(
281
-                    self, options, streamCallback, failCallback));
268
+            checkChromeExtInstalled(function (installed, updateRequired) {
269
+                chromeExtInstalled = installed;
270
+                chromeExtUpdateRequired = updateRequired;
271
+                if(installed) {
272
+                    options.listener("extensionFound");
273
+                    self.obtainScreenFromExtension(options,
274
+                        streamCallback, failCallback);
275
+                } else {
276
+                    self.checkForChromeExtensionOnInterval(options,
277
+                        streamCallback, failCallback);
278
+                }
279
+            }, self.options);
282 280
         }, options.interval);
283 281
     }
284 282
 };

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