aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/index.js11
-rw-r--r--src/models/Service.js17
2 files changed, 21 insertions, 7 deletions
diff --git a/src/index.js b/src/index.js
index 9dfbb4d8f..dac8ec770 100644
--- a/src/index.js
+++ b/src/index.js
@@ -332,7 +332,7 @@ const createWindow = () => {
332 e.preventDefault(); 332 e.preventDefault();
333 333
334 if (isValidExternalURL(url)) { 334 if (isValidExternalURL(url)) {
335 shell.openExternal(url); 335 shell.openExternal(url);
336 } 336 }
337 }); 337 });
338 338
@@ -411,6 +411,15 @@ ipcMain.on('feature-basic-auth-credentials', (e, { user, password }) => {
411 authCallback = noop; 411 authCallback = noop;
412}); 412});
413 413
414ipcMain.on('open-browser-window', (e, {disposition, url}, serviceId) => {
415 if (disposition === 'foreground-tab') {
416 let serviceSession = session.fromPartition(`persist:service-${serviceId}`)
417 let child = new BrowserWindow({ parent: mainWindow, webPreferences: {session: serviceSession}});
418 child.show();
419 child.loadURL(url);
420 }
421 debug('Received open-browser-window', disposition, url);
422});
414 423
415ipcMain.on('modifyRequestHeaders', (e, { modifiedRequestHeaders, serviceId }) => { 424ipcMain.on('modifyRequestHeaders', (e, { modifiedRequestHeaders, serviceId }) => {
416 debug('Received modifyRequestHeaders', modifiedRequestHeaders, serviceId); 425 debug('Received modifyRequestHeaders', modifiedRequestHeaders, serviceId);
diff --git a/src/models/Service.js b/src/models/Service.js
index fb8a4298b..45dc55fce 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -266,12 +266,17 @@ export default class Service {
266 })); 266 }));
267 267
268 this.webview.addEventListener('new-window', (event, url, frameName, options) => { 268 this.webview.addEventListener('new-window', (event, url, frameName, options) => {
269 openWindow({ 269 debug('new-window', event, url, frameName, options);
270 event, 270 if (event.disposition === 'foreground-tab') {
271 url, 271 ipcRenderer.send('open-browser-window', event, this.id);
272 frameName, 272 } else {
273 options, 273 openWindow({
274 }); 274 event,
275 url,
276 frameName,
277 options,
278 });
279 }
275 }); 280 });
276 281
277 282