From 5b1172b8d049189a6fa30a8cbb0830a7ebe1c178 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 21 Sep 2016 01:17:46 -0400 Subject: [PATCH] utils service. added browser detection method to utils --- src/background.js | 1 + src/manifest.json | 2 +- src/popup/app/services/backgroundService.js | 3 +++ src/popup/app/settings/settingsController.js | 21 ++++++++++++++++--- src/services/utilsService.js | 22 ++++++++++++++++++++ 5 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 src/services/utilsService.js diff --git a/src/background.js b/src/background.js index 50e1a90f..d1143172 100644 --- a/src/background.js +++ b/src/background.js @@ -1,3 +1,4 @@ +var utilsService = new UtilsService(); var cryptoService = new CryptoService(); var tokenService = new TokenService(); var apiService = new ApiService(tokenService); diff --git a/src/manifest.json b/src/manifest.json index 0033d1a9..a8b3a54a 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -30,7 +30,7 @@ "models/api/responseModels.js", "models/dataModels.js", "models/domainModels.js", - "services/cryptoService.js", + "services/utilsService.js", "services/cryptoService.js", "services/tokenService.js", "services/apiService.js", diff --git a/src/popup/app/services/backgroundService.js b/src/popup/app/services/backgroundService.js index ac4235f8..2be6403d 100644 --- a/src/popup/app/services/backgroundService.js +++ b/src/popup/app/services/backgroundService.js @@ -30,4 +30,7 @@ }) .factory('passwordGenerationService', function () { return chrome.extension.getBackgroundPage().passwordGenerationService; + }) + .factory('utilsService', function () { + return chrome.extension.getBackgroundPage().utilsService; }); diff --git a/src/popup/app/settings/settingsController.js b/src/popup/app/settings/settingsController.js index 9a1d7f70..b7874f05 100644 --- a/src/popup/app/settings/settingsController.js +++ b/src/popup/app/settings/settingsController.js @@ -1,7 +1,7 @@ angular .module('bit.settings') - .controller('settingsController', function ($scope, loginService, $state, syncService, SweetAlert) { + .controller('settingsController', function ($scope, loginService, $state, syncService, SweetAlert, utilsService) { $scope.sync = function () { syncService.fullSync(function () { alert('Sync done!'); @@ -65,7 +65,22 @@ } $scope.rate = function () { - // TODO: detect which extension store to send them to - chrome.tabs.create({ url: 'https://google.com' }); + switch (utilsService.getBrowser()) { + case 'chrome': + chrome.tabs.create({ url: 'https://chrome.com' }); + break; + case 'firefox': + chrome.tabs.create({ url: 'https://firefox.com' }); + break; + case 'edge': + chrome.tabs.create({ url: 'https://microsoft.com' }); + break; + case 'opera': + chrome.tabs.create({ url: 'https://opera.com' }); + break; + default: + return; + } + }; }); diff --git a/src/services/utilsService.js b/src/services/utilsService.js new file mode 100644 index 00000000..3c635200 --- /dev/null +++ b/src/services/utilsService.js @@ -0,0 +1,22 @@ +function UtilsService() { + initUtilsService(); +}; + +function initUtilsService() { + UtilsService.prototype.getBrowser = function () { + if (navigator.userAgent.indexOf("Firefox") !== -1 || navigator.userAgent.indexOf("Gecko/") !== -1) { + return 'firefox'; + } + if ((!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0) { + return 'opera'; + } + if (navigator.userAgent.indexOf(" Edge/") !== -1) { + return 'edge'; + } + if (window.chrome) { + return 'chrome'; + } + + return null; + }; +};