Fixed bug in extension install code.

master
Håvar Aambø Fosstveit 2018-03-04 23:28:24 +01:00
parent 2a08722cf3
commit a1caff2af3
1 changed files with 31 additions and 35 deletions

View File

@ -197,17 +197,18 @@ export default class RoomClient
{ {
logger.debug('installExtension()'); logger.debug('installExtension()');
return Promise.resolve() return new Promise((resolve, reject) =>
.then(() =>
{ {
window.addEventListener('message', _onExtensionMessage, false); window.addEventListener('message', _onExtensionMessage, false);
// eslint-disable-next-line no-undef
chrome.webstore.install(null, _successfulInstall, _failedInstall);
function _onExtensionMessage({ data }) function _onExtensionMessage({ data })
{ {
if (data.type === 'ScreenShareInjected') if (data.type === 'ScreenShareInjected')
{ {
logger.debug('installExtension() | installation succeeded'); logger.debug('installExtension() | installation succeeded');
return; return resolve();
} }
} }
@ -215,7 +216,7 @@ export default class RoomClient
{ {
window.removeEventListener('message', _onExtensionMessage); window.removeEventListener('message', _onExtensionMessage);
return Promise.reject( return reject(
new Error('Failed to install extension: %s', reason)); new Error('Failed to install extension: %s', reason));
} }
@ -223,24 +224,19 @@ export default class RoomClient
{ {
logger.debug('installExtension() | installation accepted'); logger.debug('installExtension() | installation accepted');
} }
// eslint-disable-next-line no-undef
chrome.webstore.install(null, _successfulInstall, _failedInstall);
}) })
.then(() => .then(() =>
{ {
// This should be handled better
this._dispatch(stateActions.setScreenCapabilities( this._dispatch(stateActions.setScreenCapabilities(
{ {
canShareScreen : true, canShareScreen : this._room.canSend('video'),
needExtension : false needExtension : false
})); }));
}) })
.catch((error) => .catch((error) =>
{ {
logger.error('enableScreenSharing() | failed: %o', error); logger.error('installExtension() | failed: %o', error);
this._dispatch(
stateActions.setScreenShareInProgress(false));
}); });
} }