diff --git a/app/main.js b/app/main.js index be0d6cb8..527fff8d 100644 --- a/app/main.js +++ b/app/main.js @@ -27,6 +27,9 @@ if (process.env.NODE_ENV === 'production') { (async function start() { const capabilities = await getCapabilities(); + if (!capabilities.crypto) { + return window.location.assign('/unsupported/crypto'); + } if (capabilities.serviceWorker) { await navigator.serviceWorker.register('/serviceWorker.js'); await navigator.serviceWorker.ready; @@ -44,29 +47,6 @@ if (process.env.NODE_ENV === 'production') { }; const app = routes(choo()); - app.use((state, emitter) => { - window.appState = state; - window.appEmit = emitter.emit.bind(emitter); - let unsupportedReason = null; - - if ( - // Firefox < 50 - /firefox/i.test(navigator.userAgent) && - parseInt(navigator.userAgent.match(/firefox\/*([^\n\r]*)\./i)[1], 10) < 50 - ) { - unsupportedReason = 'outdated'; - } - if (!state.capabilities.crypto) { - unsupportedReason = /firefox/i.test(navigator.userAgent) - ? 'outdated' - : 'gcm'; - } - if (unsupportedReason) { - setTimeout(() => - emitter.emit('replaceState', `/unsupported/${unsupportedReason}`) - ); - } - }); app.use(metrics); app.use(controller); app.use(dragManager); diff --git a/server/initScript.js b/server/initScript.js index e57b179d..0bd35902 100644 --- a/server/initScript.js +++ b/server/initScript.js @@ -39,8 +39,16 @@ module.exports = function(state) { var isIE = /trident\\\/7\.|msie/i.test(navigator.userAgent); var isUnsupportedPage = /\\\/unsupported/.test(location.pathname); if (isIE && !isUnsupportedPage) { - window.location.replace('/unsupported/ie'); + window.location.assign('/unsupported/ie'); } + if ( + // Firefox < 50 + /firefox/i.test(navigator.userAgent) && + parseInt(navigator.userAgent.match(/firefox\\/*([^\\n\\r]*)\./i)[1], 10) < 50 + ) { + window.location.assign('/unsupported/outdated'); + } + var LIMITS = { ANON: { MAX_FILE_SIZE: ${config.anon_max_file_size},