diff --git a/main.js b/main.js index 8ac3f5d705..535d1c9a30 100644 --- a/main.js +++ b/main.js @@ -37,6 +37,7 @@ const { protocol: electronProtocol, session, shell, + systemPreferences, } = electron; const appUserModelId = `org.whispersystems.${packageJson.name}`; @@ -879,6 +880,24 @@ app.on('ready', async () => { logger.info('app ready'); logger.info(`starting version ${packageJson.version}`); + // This logging helps us debug user reports about broken devices. + { + let getMediaAccessStatus; + // This function is not supported on Linux, so we have a fallback. + if (systemPreferences.getMediaAccessStatus) { + getMediaAccessStatus = systemPreferences.getMediaAccessStatus.bind( + systemPreferences + ); + } else { + getMediaAccessStatus = _.noop; + } + logger.info( + 'media access status', + getMediaAccessStatus('microphone'), + getMediaAccessStatus('camera') + ); + } + if (!locale) { const appLocale = process.env.NODE_ENV === 'test' ? 'en' : app.getLocale(); locale = loadLocale({ appLocale, logger });