diff --git a/frontend/src/common.js b/frontend/src/common.js index 5fa712a3..ecee7102 100644 --- a/frontend/src/common.js +++ b/frontend/src/common.js @@ -3,8 +3,28 @@ window.Raven.config(window.dsn).install(); window.dsn = undefined; const testPilotGA = require('testpilot-ga'); +const {gcmCompliant, sendEvent} = require('./utils'); window.analytics = new testPilotGA({ an: 'Firefox Send', ds: 'web', tid: window.trackerId }); + +const isSender = !location.pathname.includes('/download'); + +gcmCompliant().catch(err => { + sendEvent(isSender ? 'sender' : 'recipient', 'unsupported', { + cd6: err + }).then(() => { + location.replace('/unsupported/gcm'); + }); +}); + +if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1 && + parseInt(navigator.userAgent.toLowerCase().match(/firefox\/*([^\n\r]*)\./)[1]) <= 49) { + sendEvent(isSender ? 'sender' : 'recipient', 'unsupported', { + cd6: new Error('Firefox is outdated.') + }).then(() => { + location.replace('/unsupported/outdated'); + }); +} \ No newline at end of file diff --git a/frontend/src/download.js b/frontend/src/download.js index 0a90f3dc..224d3731 100644 --- a/frontend/src/download.js +++ b/frontend/src/download.js @@ -1,6 +1,6 @@ require('./common'); const FileReceiver = require('./fileReceiver'); -const { notify, findMetric, gcmCompliant, sendEvent } = require('./utils'); +const { notify, findMetric, sendEvent } = require('./utils'); const bytes = require('bytes'); const Storage = require('./storage'); const storage = new Storage(localStorage); @@ -11,14 +11,6 @@ require('jquery-circle-progress'); const Raven = window.Raven; $(document).ready(function() { - gcmCompliant().catch(err => { - $('#download').attr('hidden', true); - sendEvent('recipient', 'unsupported', { - cd6: err - }).then(() => { - location.replace('/unsupported'); - }); - }); //link back to homepage $('.send-new').attr('href', window.location.origin); diff --git a/frontend/src/upload.js b/frontend/src/upload.js index ff11e00c..967eeb52 100644 --- a/frontend/src/upload.js +++ b/frontend/src/upload.js @@ -3,7 +3,6 @@ require('./common'); const FileSender = require('./fileSender'); const { notify, - gcmCompliant, findMetric, sendEvent, ONE_DAY_IN_MS @@ -25,15 +24,6 @@ if (storage.has('referrer')) { } $(document).ready(function() { - gcmCompliant().catch(err => { - $('#page-one').attr('hidden', true); - sendEvent('sender', 'unsupported', { - cd6: err - }).then(() => { - location.replace('/unsupported'); - }); - }); - $('#file-upload').change(onUpload); $('.legal-links a, .social-links a, #dl-firefox').click(function(target) { diff --git a/public/locales/en-US/send.ftl b/public/locales/en-US/send.ftl index f9ddf900..8f3b18bc 100644 --- a/public/locales/en-US/send.ftl +++ b/public/locales/en-US/send.ftl @@ -67,6 +67,8 @@ expiredPageHeader = This link has expired or never existed in the first place! notSupportedHeader = Your browser is not supported. // Firefox Send is a brand name and should not be localized. notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. You’ll need to try another browser. We recommend Firefox! +notSupportedOutdatedDetail = Unfortunately this version of Firefox does not support the web technology that powers Firefox Send. You’ll need to update your browser. +updateFirefox = Update Firefox downloadFirefoxButtonSub = Free Download uploadedFile = File copyFileList = Copy URL diff --git a/public/main.css b/public/main.css index 837d0aef..354238da 100644 --- a/public/main.css +++ b/public/main.css @@ -568,13 +568,13 @@ tbody { margin: 0 auto 23px; } -#firefox-logo { +.firefox-logo { width: 70px; } -#dl-firefox { +#dl-firefox, +#update-firefox { margin-bottom: 181px; - width: 260px; height: 80px; background: #12bc00; border-radius: 3px; @@ -589,14 +589,15 @@ tbody { justify-content: center; align-items: center; line-height: 1; + padding: 0 25px; } -#dl-firefox-text { +.unsupported-button-text { text-align: left; margin-left: 20.4px; } -#dl-firefox-text > span { +.unsupported-button-text > span { font-family: 'Fira Sans'; font-weight: 300; font-size: 18px; diff --git a/server/server.js b/server/server.js index b12f3f57..92fcee82 100644 --- a/server/server.js +++ b/server/server.js @@ -96,8 +96,11 @@ app.get('/', (req, res) => { res.render('index'); }); -app.get('/unsupported', (req, res) => { - res.render('unsupported'); +app.get('/unsupported/:reason', (req, res) => { + const outdated = req.params.reason === 'outdated'; + res.render('unsupported', { + outdated: outdated + }); }); app.get('/legal', (req, res) => { diff --git a/views/unsupported.handlebars b/views/unsupported.handlebars index 62814e57..04a428b2 100644 --- a/views/unsupported.handlebars +++ b/views/unsupported.handlebars @@ -1,11 +1,19 @@
-
- - -
Firefox
- -
-
+ {{#if outdated}} +
+ + +
+
+ {{else}} +
+ + +
Firefox
+ +
+
+ {{/if}}