Skip to content

Commit

Permalink
Remove browsers that don't support VAPID
Browse files Browse the repository at this point in the history
* OneSignal's backend no longer supports browsers that can't handle receiving data payloads with VAPID.
  • Loading branch information
jkasten2 committed Mar 12, 2019
1 parent 6892220 commit 0660c50
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 14 deletions.
8 changes: 5 additions & 3 deletions src/utils/BrowserSupportsPush.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export function isPushNotificationsSupported() {
return false;
}

if (browser.firefox && Number(browser.version) >= 44) {
if (browser.firefox && Number(browser.version) >= 47) {
// check for Firefox Extended Support Release (ESR)
// thanks to https://stackoverflow.com/questions/42674004/how-to-detect-difference-between-firefox-and-firefox-esr-in-javascript
const esrBuildIds = [
Expand Down Expand Up @@ -93,15 +93,17 @@ export function isPushNotificationsSupported() {
return true;
}

if ((browser.chrome || (<any>browser).chromium) && Number(browser.version) >= 42) {
if ((browser.chrome || (<any>browser).chromium) && Number(browser.version) >= 54) {
return true;
}

if ((<any>browser).yandexbrowser && Number(browser.version) >= 15.12)
// 17.3.1.838 supports VAPID on Mac OS X
return true;

// https://www.chromestatus.com/feature/5416033485586432
// https://help.opera.com/en/opera-version-history/
// Opera's Android versions do not match up with it's desktop versions.
// Example: Desktop Opera 58 is Android Opera 50
if (browser.opera && (browser.mobile || browser.tablet) && Number(browser.version) >= 37 ||
browser.opera && Number(browser.version) >= 42)
return true;
Expand Down
23 changes: 12 additions & 11 deletions test/support/sdk/TestEnvironment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,25 +49,26 @@ export enum BrowserUserAgent {
FirefoxTabletUnsupported = "Mozilla/5.0 (Android 4.4; Mobile ; rv:47.0) Gecko/47.0 Firefox/47.0",
FirefoxMobileSupported = "Mozilla/5.0 (Android 4.4; Mobile; rv:44.0) Gecko/48.0 Firefox/48.0",
FirefoxTabletSupported = "Mozilla/5.0 (Android 4.4; Mobile ; rv:44.0) Gecko/48.0 Firefox/48.0",
FirefoxWindowsSupported = "Mozilla/5.0 (Windows NT x.y; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
FirefoxMacSupported = "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:44.0) Gecko/20100101 Firefox/44.0",
FirefoxLinuxSupported = "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:44.0) Gecko/20100101 Firefox/44.0",
FirefoxWindowsUnSupported = "Mozilla/5.0 (Windows NT x.y; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
FirefoxWindowsSupported = "Mozilla/5.0 (Windows NT x.y; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0",
FirefoxMacSupported = "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:47.0) Gecko/20100101 Firefox/47.0",
FirefoxLinuxSupported = "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:47.0) Gecko/20100101 Firefox/47.0",
SafariUnsupportedMac= "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/538.32 (KHTML, like Gecko) Version/7.0 Safari/538.4",
SafariSupportedMac= "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/538.32 (KHTML, like Gecko) Version/7.1 Safari/538.4",
SafariSupportedMac121= "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15",
FacebookBrowseriOS = "Mozilla/5.0 (iPhone; CPU iPhone OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12D508 [FBAN/FBIOS;FBAV/27.0.0.10.12;FBBV/8291884;FBDV/iPhone7,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/8.2;FBSS/3;]",
FacebookBrowserAndroid = "Mozilla/5.0 (Linux; Android 5.1; Archos Diamond S Build/LMY47D; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.81 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/87.0.0.17.79;]",
ChromeAndroidSupported = "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/42 Mobile Safari/535.19",
ChromeWindowsSupported = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2228.0 Safari/537.36",
ChromeMacSupported = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.1636.0 Safari/537.36",
ChromeAndroidSupported = "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/54 Mobile Safari/535.19",
ChromeWindowsSupported = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2228.0 Safari/537.36",
ChromeMacSupported = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.1636.0 Safari/537.36",
ChromeMacSupported69 = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36",
ChromeLinuxSupported = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.1636.0 Safari/537.36",
ChromeTabletSupported = "Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.1547.72 Safari/537.36",
ChromeLinuxSupported = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.1636.0 Safari/537.36",
ChromeTabletSupported = "Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.1547.72 Safari/537.36",
ChromeAndroidUnsupported = "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/41 Mobile Safari/535.19",
ChromeWindowsUnsupported = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
ChromeMacUnsupported = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.1636.0 Safari/537.36",
ChromeWindowsUnsupported = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2228.0 Safari/537.36",
ChromeMacUnsupported = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.1636.0 Safari/537.36",
ChromeLinuxUnsupported = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.1636.0 Safari/537.36",
ChromeTabletUnsupported = "Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.1547.72 Safari/537.36",
ChromeTabletUnsupported = "Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.1547.72 Safari/537.36",
YandexDesktopSupportedHigh = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.12785 YaBrowser/17.1.0.2036 Safari/537.36",
YandexDesktopSupportedLow = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.12785 YaBrowser/15.12.1.6475 Safari/537.36",
YandexMobileSupported = "Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6P Build/N4F26T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 YaBrowser/17.1.2.339.00 Mobile Safari/537.36",
Expand Down
1 change: 1 addition & 0 deletions test/unit/modules/browserSupport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ test('should not support specific browser environments', async t => {
shouldNotSupport(t, BrowserUserAgent.EdgeUnsupported2);
shouldNotSupport(t, BrowserUserAgent.IE11);

shouldNotSupport(t, BrowserUserAgent.FirefoxWindowsUnSupported);
shouldNotSupport(t, BrowserUserAgent.FirefoxMobileUnsupported);
shouldNotSupport(t, BrowserUserAgent.FirefoxTabletUnsupported);

Expand Down

0 comments on commit 0660c50

Please sign in to comment.