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,50 +197,46 @@ 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
function _onExtensionMessage({ data }) chrome.webstore.install(null, _successfulInstall, _failedInstall);
{ function _onExtensionMessage({ data })
if (data.type === 'ScreenShareInjected') {
{ if (data.type === 'ScreenShareInjected')
logger.debug('installExtension() | installation succeeded'); {
logger.debug('installExtension() | installation succeeded');
return;
} return resolve();
} }
}
function _failedInstall(reason)
{ function _failedInstall(reason)
window.removeEventListener('message', _onExtensionMessage); {
window.removeEventListener('message', _onExtensionMessage);
return Promise.reject(
new Error('Failed to install extension: %s', reason)); return reject(
} new Error('Failed to install extension: %s', reason));
}
function _successfulInstall()
{ function _successfulInstall()
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));
}); });
} }