chore: Use browserwindow for launching urls in linux

This commit is contained in:
Susmitha Girumala committed 2021-09-06 22:49:59 -04:00
1 parent 1978b1c08e
commit 0bda47ec29
2 files changed
+24 -10

No files matched your search

+18 -4
View File
@@ -5,7 +5,7 @@ const boundaryCli = require('../cli/index.js');
const sessionManager = require('../services/session-manager.js');
const runtimeSettings = require('../services/runtime-settings.js');
const sanitizer = require('../utils/sanitizer.js');
const { isMac, isWindows } = require('../helpers/platform.js');
const { isMac, isWindows, isLinux } = require('../helpers/platform.js');
/**
* Returns the current runtime origin, which is used by the main thread to
@@ -38,9 +38,23 @@ handle('openExternal', async (href) => {
const isLocalhost =
href.startsWith('http://localhost') || href.startsWith('http://127.0.0.1');
if (isSecure || isLocalhost || isDev) {
// openExternal is necessary in order to display documentation and to
// support arbitrary OIDC flows. The protocol is validated (see above).
shell.openExternal(href); /* eng-disable OPEN_EXTERNAL_JS_CHECK */
/**
* Launch browser to display documentation and to support arbitrary OIDC flows.
* The protocol is validated (see above).
* In linux, launch application (xdg-open) does not launch browser window
* and fails silently. As a bypass, launch a new browser window attached
* to main window.
*/
if (isLinux()) {
const browserWindow = new BrowserWindow({
parent: BrowserWindow.getFocusedWindow(),
});
browserWindow.loadURL(href);
browserWindow.show();
} else {
// openExternal is necessary to open urls in Windows and MacOS
shell.openExternal(href); /* eng-disable OPEN_EXTERNAL_JS_CHECK */
}
} else {
throw new Error(
`URLs may only be opened over HTTPS in an external browser.
+6 -6
View File
@@ -13,7 +13,7 @@ For using locally built debian artifacts:
artifacts on MacOS
## Setup Ubuntu
- Create a ubuntu desktop box using vagrant: `vagrant up --provision-with setup,cli,staged-desktop`
- Create a ubuntu desktop box using vagrant: `vagrant up --provision-with setup,cli,staged-desktop`.
- Desktop client artifact and cli will be available in `/home/vagrant/Desktop` after logging into ubuntu.
Username/password for login: vagrant/vagrant. Navigate to `/home/vagrant/Desktop` in a terminal app.
- To install desktop app use either `apt` or `dpkg`
@@ -24,12 +24,12 @@ For using locally built debian artifacts:
## Provision types
User --provision-with option to setup machine for either cli or development
Setup for testing:
Setup for testing staged desktop release:
vagrant up --provision-with setup,cli,staged-desktop
Setup for testing artifacts built locally:
vagrant up --provision-with setup,cli
Setup for developing desktop client:
vagrant up --provision-with setup,development
Setup for staged desktop release:
vagrant up --provision-with setup,cli,staged-desktop
To destroy machine:
vagrant destroy -f
=end
@@ -50,7 +50,7 @@ Vagrant.configure("2") do |config|
config.vm.provision "setup", type: "shell", inline: <<-SHELL
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install curl
sudo apt-get install curl firefox
# Add vagrant to administrator group
sudo usermod -aG sudo vagrant
# Add vagrant to shared folder
@@ -85,7 +85,7 @@ Vagrant.configure("2") do |config|
sudo apt-get install -y nodejs
sudo apt-get remove cmdtest
sudo apt-get install -y npm git
sudo apt-get install -y npm git chromium-browser
git clone https://github.com/hashicorp/boundary-ui.git /home/vagrant/Desktop/boundary-ui
sudo npm install -g yarn