You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 4, 2019. It is now read-only.
According to NodeJS conventions, the callback should be error-first, meaning getChromeExtensionStatus() should return a callback with an error as the first value and the status as the second value.
I am using Bluebird's promisify function with getChromeExtensionStatus() and I have to use .catch because of that.
Promise.promisify(window.getChromeExtensionStatus)()
.catch(function(error) {
console.log(error.message) // will get me the status
});
here is my suggestion
window.getChromeExtensionStatus = function(callback) {
// for Firefox:
if (!!navigator.mozGetUserMedia) {
callback(new Error('not-chrome'), null);
return;
}
window.addEventListener('message', onIFrameCallback);
function onIFrameCallback(event) {
if (!event.data) return;
if (event.data.chromeExtensionStatus) {
if (event.data.chromeExtensionStatus === 'installed-enabled') {
callback(null, event.data.chromeExtensionStatus);
} else {
callback(new Error(event.data.chromeExtensionStatus), null);
}
}
// this event listener is no more needed
window.removeEventListener('message', onIFrameCallback);
}
setTimeout(postGetChromeExtensionStatusMessage, 100);
};
The text was updated successfully, but these errors were encountered:
I realise it is quite opinionated in the way that it does not return a status but it will provide an error if the plugin is not installed and enabled.
Another solution could be
window.getChromeExtensionStatus = function(callback) {
// for Firefox:
if (!!navigator.mozGetUserMedia) {
callback(null, 'not-chrome');
return;
}
window.addEventListener('message', onIFrameCallback);
function onIFrameCallback(event) {
if (!event.data) return;
if (event.data.chromeExtensionStatus) {
callback(null, event.data.chromeExtensionStatus);
}
// this event listener is no more needed
window.removeEventListener('message', onIFrameCallback);
}
setTimeout(postGetChromeExtensionStatusMessage, 100);
};
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
According to NodeJS conventions, the callback should be error-first, meaning
getChromeExtensionStatus()
should return a callback with an error as the first value and the status as the second value.I am using Bluebird's promisify function with
getChromeExtensionStatus()
and I have to use.catch
because of that.here is my suggestion
The text was updated successfully, but these errors were encountered: