converting chrome refs to BrowserApi
This commit is contained in:
parent
1e11a89fc2
commit
8f438d818b
|
@ -1,4 +1,4 @@
|
|||
import BrowserApi from '../browser/browserApi';
|
||||
import { BrowserApi } from '../browser/browserApi';
|
||||
|
||||
import MainBackground from './main.background';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import BrowserApi from '../browser/browserApi';
|
||||
import { BrowserApi } from '../browser/browserApi';
|
||||
|
||||
import MainBackground from './main.background';
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ import {
|
|||
|
||||
import Analytics from '../scripts/analytics';
|
||||
|
||||
import BrowserApi from '../browser/browserApi';
|
||||
import { BrowserApi } from '../browser/browserApi';
|
||||
|
||||
import CommandsBackground from './commands.background';
|
||||
import ContextMenusBackground from './contextMenus.background';
|
||||
|
|
|
@ -7,7 +7,7 @@ import {
|
|||
PlatformUtilsService,
|
||||
} from 'jslib/abstractions';
|
||||
|
||||
import BrowserApi from '../browser/browserApi';
|
||||
import { BrowserApi } from '../browser/browserApi';
|
||||
|
||||
import MainBackground from './main.background';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export default class BrowserApi {
|
||||
class BrowserApi {
|
||||
static isSafariApi: boolean = (typeof safari !== 'undefined');
|
||||
static isChromeApi: boolean = (typeof chrome !== 'undefined');
|
||||
|
||||
|
@ -72,4 +72,37 @@ export default class BrowserApi {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static isPopupOpen(): boolean {
|
||||
if (BrowserApi.isChromeApi) {
|
||||
return chrome.extension.getViews({ type: 'popup' }).length > 0;
|
||||
} else if (BrowserApi.isSafariApi) {
|
||||
return true; // TODO
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static createNewTab(url: string): void {
|
||||
if (BrowserApi.isChromeApi) {
|
||||
chrome.tabs.create({ url: url });
|
||||
} else if (BrowserApi.isSafariApi) {
|
||||
return; // TODO
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static getAssetUrl(path: string): string {
|
||||
if (BrowserApi.isChromeApi) {
|
||||
return chrome.extension.getURL(path);
|
||||
} else if (BrowserApi.isSafariApi) {
|
||||
return './' + path; // TODO?
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export { BrowserApi };
|
||||
(window as any).BrowserApi = BrowserApi;
|
||||
|
|
|
@ -183,9 +183,8 @@ angular
|
|||
params = providers[constants.twoFactorProvider.email];
|
||||
$scope.twoFactorEmail = params.Email;
|
||||
|
||||
if (chrome.extension.getViews({ type: 'popup' }).length > 0 &&
|
||||
!popupUtilsService.inSidebar($window) && !popupUtilsService.inTab($window) &&
|
||||
!popupUtilsService.inPopout($window)) {
|
||||
if (BrowserApi.isPopupOpen() && !popupUtilsService.inSidebar($window) &&
|
||||
!popupUtilsService.inTab($window) && !popupUtilsService.inPopout($window)) {
|
||||
SweetAlert.swal({
|
||||
title: i18nService.twoStepLogin,
|
||||
text: i18nService.popup2faCloseMessage,
|
||||
|
@ -194,7 +193,7 @@ angular
|
|||
cancelButtonText: i18nService.no
|
||||
}, function (confirmed) {
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: '/popup/index.html?uilocation=tab#!/login' });
|
||||
BrowserApi.createNewTab('/popup/index.html?uilocation=tab#!/login');
|
||||
return;
|
||||
}
|
||||
else if (Object.keys(providers).length > 1) {
|
||||
|
|
|
@ -52,7 +52,7 @@ angular
|
|||
|
||||
$scope.recover = function () {
|
||||
$analytics.eventTrack('Selected Recover');
|
||||
chrome.tabs.create({ url: 'https://help.bitwarden.com/article/lost-two-step-device/' });
|
||||
BrowserApi.createNewTab('https://help.bitwarden.com/article/lost-two-step-device/');
|
||||
};
|
||||
|
||||
function add(type) {
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import * as template from './action-buttons.component.html';
|
||||
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
import { ConstantsService } from 'jslib/services/constants.service';
|
||||
|
||||
import PopupUtilsService from '../services/popupUtils.service';
|
||||
|
@ -23,7 +25,7 @@ export class ActionButtonsController implements ng.IController {
|
|||
this.$timeout(() => {
|
||||
if (self.cipher.login.uri.startsWith('http://') || self.cipher.login.uri.startsWith('https://')) {
|
||||
self.$analytics.eventTrack('Launched Website From Listing');
|
||||
chrome.tabs.create({ url: self.cipher.login.uri });
|
||||
BrowserApi.createNewTab(self.cipher.login.uri);
|
||||
if (PopupUtilsService.inPopup(self.$window)) {
|
||||
self.$window.close();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import * as template from './icon.component.html';
|
||||
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
import { CipherType } from 'jslib/enums/cipherType';
|
||||
|
||||
import { EnvironmentService } from 'jslib/abstractions/environment.service';
|
||||
|
@ -68,7 +70,7 @@ export class IconController implements ng.IController {
|
|||
try {
|
||||
const url = new URL(hostnameUri);
|
||||
this.image = this.iconsUrl + '/' + url.hostname + '/icon.png';
|
||||
this.fallbackImage = chrome.extension.getURL('images/fa-globe.png');
|
||||
this.fallbackImage = BrowserApi.getAssetUrl('images/fa-globe.png');
|
||||
} catch (e) { }
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -23,7 +23,7 @@ export class PopOutController implements ng.IController {
|
|||
}
|
||||
}
|
||||
|
||||
if (chrome && chrome.windows && chrome.windows.create) {
|
||||
if ((typeof chrome !== 'undefined') && chrome.windows && chrome.windows.create) {
|
||||
if (href.indexOf('?uilocation=') > -1) {
|
||||
href = href.replace('uilocation=popup', 'uilocation=popout')
|
||||
.replace('uilocation=tab', 'uilocation=popout')
|
||||
|
@ -44,13 +44,15 @@ export class PopOutController implements ng.IController {
|
|||
if (PopupUtilsService.inPopup(this.$window)) {
|
||||
this.$window.close();
|
||||
}
|
||||
} else if (chrome && chrome.tabs && chrome.tabs.create) {
|
||||
} else if ((typeof chrome !== 'undefined') && chrome.tabs && chrome.tabs.create) {
|
||||
href = href.replace('uilocation=popup', 'uilocation=tab')
|
||||
.replace('uilocation=popout', 'uilocation=tab')
|
||||
.replace('uilocation=sidebar', 'uilocation=tab');
|
||||
chrome.tabs.create({
|
||||
url: href,
|
||||
});
|
||||
} else if ((typeof safari !== 'undefined')) {
|
||||
// TODO?
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ angular
|
|||
$urlRouterProvider.otherwise(function ($injector, $location) {
|
||||
var $state = $injector.get('$state');
|
||||
|
||||
if ((typeof chrome !== 'undefined') && !chrome.extension.getBackgroundPage()) {
|
||||
if (!BrowserApi.getBackgroundPage()) {
|
||||
$state.go('privateMode');
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
export class PrivateModeController implements ng.IController {
|
||||
constructor($scope: any) {
|
||||
$scope.privateModeMessage = chrome.i18n.getMessage('privateModeMessage');
|
||||
$scope.learnMoreMessage = chrome.i18n.getMessage('learnMore');
|
||||
$scope.learnMore = () => {
|
||||
chrome.tabs.create({ url: 'https://help.bitwarden.com/article/extension-wont-load-in-private-mode/' });
|
||||
BrowserApi.createNewTab('https://help.bitwarden.com/article/extension-wont-load-in-private-mode/');
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import BrowserApi from '../../../browser/browserApi';
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
import { ConstantsService } from 'jslib/services/constants.service';
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import * as template from './about.component.html';
|
||||
|
||||
import BrowserApi from '../../../browser/browserApi';
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
export class AboutController {
|
||||
version: string;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import * as template from './credits.component.html';
|
||||
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
export class CreditsController {
|
||||
i18n: any;
|
||||
|
||||
|
@ -9,10 +11,7 @@ export class CreditsController {
|
|||
|
||||
learnMore() {
|
||||
this.$analytics.eventTrack('Contribute Learn More');
|
||||
|
||||
chrome.tabs.create({
|
||||
url: 'https://github.com/bitwarden/browser/blob/master/CONTRIBUTING.md',
|
||||
});
|
||||
BrowserApi.createNewTab('https://github.com/bitwarden/browser/blob/master/CONTRIBUTING.md');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import * as template from './help.component.html';
|
||||
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
export class HelpController {
|
||||
i18n: any;
|
||||
|
||||
|
@ -9,22 +11,22 @@ export class HelpController {
|
|||
|
||||
email() {
|
||||
this.$analytics.eventTrack('Selected Help Email');
|
||||
chrome.tabs.create({ url: 'mailto:hello@bitwarden.com' });
|
||||
BrowserApi.createNewTab('mailto:hello@bitwarden.com');
|
||||
}
|
||||
|
||||
website() {
|
||||
this.$analytics.eventTrack('Selected Help Website');
|
||||
chrome.tabs.create({ url: 'https://bitwarden.com/contact/' });
|
||||
BrowserApi.createNewTab('https://bitwarden.com/contact/');
|
||||
}
|
||||
|
||||
tutorial() {
|
||||
this.$analytics.eventTrack('Selected Help Tutorial');
|
||||
chrome.tabs.create({ url: 'https://bitwarden.com/browser-start/' });
|
||||
BrowserApi.createNewTab('https://bitwarden.com/browser-start/');
|
||||
}
|
||||
|
||||
bug() {
|
||||
this.$analytics.eventTrack('Selected Help Bug Report');
|
||||
chrome.tabs.create({ url: 'https://github.com/bitwarden/browser' });
|
||||
BrowserApi.createNewTab('https://github.com/bitwarden/browser');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import * as template from './premium.component.html';
|
||||
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
import { ApiService } from 'jslib/abstractions/api.service';
|
||||
import { TokenService } from 'jslib/abstractions/token.service';
|
||||
|
||||
|
@ -35,7 +37,7 @@ export class PremiumController {
|
|||
}, (confirmed: boolean) => {
|
||||
this.$analytics.eventTrack('Clicked Purchase Premium');
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: 'https://vault.bitwarden.com/#/?premium=purchase' });
|
||||
BrowserApi.createNewTab('https://vault.bitwarden.com/#/?premium=purchase');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -50,7 +52,7 @@ export class PremiumController {
|
|||
}, (confirmed: boolean) => {
|
||||
this.$analytics.eventTrack('Clicked Manage Membership');
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: 'https://vault.bitwarden.com/#/?premium=manage' });
|
||||
BrowserApi.createNewTab('https://vault.bitwarden.com/#/?premium=manage');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import * as angular from 'angular';
|
||||
import * as template from './settings.component.html';
|
||||
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
import { DeviceType } from 'jslib/enums/deviceType';
|
||||
|
||||
import { ConstantsService } from 'jslib/services/constants.service';
|
||||
|
@ -116,7 +118,7 @@ export class SettingsController {
|
|||
}, (confirmed: boolean) => {
|
||||
this.$analytics.eventTrack('Clicked Change Password');
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: 'https://help.bitwarden.com/article/change-your-master-password/' });
|
||||
BrowserApi.createNewTab('https://help.bitwarden.com/article/change-your-master-password/');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -131,7 +133,7 @@ export class SettingsController {
|
|||
}, (confirmed: boolean) => {
|
||||
this.$analytics.eventTrack('Clicked Change Email');
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: 'https://help.bitwarden.com/article/change-your-email/' });
|
||||
BrowserApi.createNewTab('https://help.bitwarden.com/article/change-your-email/');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -146,16 +148,14 @@ export class SettingsController {
|
|||
}, (confirmed: boolean) => {
|
||||
this.$analytics.eventTrack('Clicked Two-step Login');
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: 'https://help.bitwarden.com/article/setup-two-step-login/' });
|
||||
BrowserApi.createNewTab('https://help.bitwarden.com/article/setup-two-step-login/');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
rate() {
|
||||
this.$analytics.eventTrack('Rate Extension');
|
||||
chrome.tabs.create({
|
||||
url: RateUrls[this.platformUtilsService.getDevice()],
|
||||
});
|
||||
BrowserApi.createNewTab(RateUrls[this.platformUtilsService.getDevice()]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import * as template from './tools.component.html';
|
||||
|
||||
import { BrowserApi } from '../../../browser/browserApi';
|
||||
|
||||
import { EnvironmentService } from 'jslib/abstractions/environment.service';
|
||||
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
||||
|
||||
|
@ -22,20 +24,18 @@ export class ToolsController {
|
|||
|
||||
launchWebVault(createOrg: any) {
|
||||
this.$analytics.eventTrack('Launch Web Vault' + (createOrg ? ' For Share' : ''));
|
||||
chrome.tabs.create({ url: this.webVaultBaseUrl + '/#/' + (createOrg ? '?org=free' : '') });
|
||||
BrowserApi.createNewTab(this.webVaultBaseUrl + '/#/' + (createOrg ? '?org=free' : ''));
|
||||
}
|
||||
|
||||
launchAndroid() {
|
||||
this.$analytics.eventTrack('Launch Android');
|
||||
chrome.tabs.create({ url: 'https://play.google.com/store/apps/details?id=com.x8bit.bitwarden' });
|
||||
BrowserApi.createNewTab('https://play.google.com/store/apps/details?id=com.x8bit.bitwarden');
|
||||
}
|
||||
|
||||
launchiOS() {
|
||||
this.$analytics.eventTrack('Launch iOS');
|
||||
chrome.tabs.create({
|
||||
url: 'https://itunes.apple.com/us/app/bitwarden-free-password-manager/' +
|
||||
'id1137397744?mt=8',
|
||||
});
|
||||
BrowserApi.createNewTab('https://itunes.apple.com/us/app/bitwarden-free-password-manager/' +
|
||||
'id1137397744?mt=8');
|
||||
}
|
||||
|
||||
launchImport() {
|
||||
|
@ -48,7 +48,7 @@ export class ToolsController {
|
|||
}, (confirmed: boolean) => {
|
||||
if (confirmed) {
|
||||
this.$analytics.eventTrack('Launch Web Vault For Import');
|
||||
chrome.tabs.create({ url: 'https://help.bitwarden.com/article/import-data/' });
|
||||
BrowserApi.createNewTab('https://help.bitwarden.com/article/import-data/');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ angular
|
|||
cancelButtonText: i18nService.cancel
|
||||
}, function (confirmed) {
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: 'https://vault.bitwarden.com/#/?premium=purchase' });
|
||||
BrowserApi.createNewTab('https://vault.bitwarden.com/#/?premium=purchase');
|
||||
}
|
||||
});
|
||||
return;
|
||||
|
@ -44,7 +44,7 @@ angular
|
|||
cancelButtonText: i18nService.cancel
|
||||
}, function (confirmed) {
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: 'https://help.bitwarden.com/article/update-encryption-key/' });
|
||||
BrowserApi.createNewTab('https://help.bitwarden.com/article/update-encryption-key/');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -208,7 +208,7 @@ angular
|
|||
$scope.launchWebsite = function (cipher) {
|
||||
if (cipher.login && cipher.login.uri) {
|
||||
$analytics.eventTrack('Launched Website');
|
||||
chrome.tabs.create({ url: cipher.login.uri });
|
||||
BrowserApi.createNewTab(cipher.login.uri);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ angular
|
|||
$scope.launchWebsite = function (cipher) {
|
||||
if (cipher.showLaunch) {
|
||||
$analytics.eventTrack('Launched Website');
|
||||
chrome.tabs.create({ url: cipher.login.uri });
|
||||
BrowserApi.createNewTab(cipher.login.uri);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -133,7 +133,7 @@ angular
|
|||
cancelButtonText: i18nService.cancel
|
||||
}, function (confirmed) {
|
||||
if (confirmed) {
|
||||
chrome.tabs.create({ url: 'https://bitwarden.com' });
|
||||
BrowserApi.createNewTab('https://bitwarden.com');
|
||||
}
|
||||
});
|
||||
return;
|
||||
|
|
|
@ -216,7 +216,7 @@ angular
|
|||
$scope.launchWebsite = function (cipher) {
|
||||
if (cipher.login && cipher.login.uri) {
|
||||
$analytics.eventTrack('Launched Website');
|
||||
chrome.tabs.create({ url: cipher.login.uri });
|
||||
BrowserApi.createNewTab(cipher.login.uri);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import BrowserApi from '../browser/browserApi';
|
||||
import { BrowserApi } from '../browser/browserApi';
|
||||
|
||||
import { AppIdService } from 'jslib/abstractions/appId.service';
|
||||
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
||||
|
|
Loading…
Reference in New Issue