|
|
@@ -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
|
};
|