aboutsummaryrefslogtreecommitdiffstats
path: root/src/models
diff options
context:
space:
mode:
authorLibravatar vantezzen <hello@vantezzen.io>2019-10-09 09:48:41 +0200
committerLibravatar vantezzen <hello@vantezzen.io>2019-10-09 09:48:41 +0200
commitda9e8a3d5b11efcc8eeee325c0ac7eb7840f75af (patch)
treea189f4566c6380b86aeb04b9307aea23fc6e14d7 /src/models
parentUpdate zh-HANT.json (diff)
parentUpdate CHANGELOG.md (diff)
downloadferdium-app-da9e8a3d5b11efcc8eeee325c0ac7eb7840f75af.tar.gz
ferdium-app-da9e8a3d5b11efcc8eeee325c0ac7eb7840f75af.tar.zst
ferdium-app-da9e8a3d5b11efcc8eeee325c0ac7eb7840f75af.zip
Merge branch 'master' of https://github.com/meetfranz/franz into franz-5.4.0
Diffstat (limited to 'src/models')
-rw-r--r--src/models/Service.js41
1 files changed, 34 insertions, 7 deletions
diff --git a/src/models/Service.js b/src/models/Service.js
index 3ab6e2603..ddc169d47 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -192,19 +192,24 @@ export default class Service {
192 return userAgent; 192 return userAgent;
193 } 193 }
194 194
195 initializeWebViewEvents({ handleIPCMessage, openWindow }) { 195 initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) {
196 const webContents = this.webview.getWebContents();
197
196 this.webview.addEventListener('ipc-message', e => handleIPCMessage({ 198 this.webview.addEventListener('ipc-message', e => handleIPCMessage({
197 serviceId: this.id, 199 serviceId: this.id,
198 channel: e.channel, 200 channel: e.channel,
199 args: e.args, 201 args: e.args,
200 })); 202 }));
201 203
202 this.webview.addEventListener('new-window', (event, url, frameName, options) => openWindow({ 204 this.webview.addEventListener('new-window', (event, url, frameName, options) => {
203 event, 205 console.log('open window', event, url, frameName, options);
204 url, 206 openWindow({
205 frameName, 207 event,
206 options, 208 url,
207 })); 209 frameName,
210 options,
211 });
212 });
208 213
209 this.webview.addEventListener('did-start-loading', (event) => { 214 this.webview.addEventListener('did-start-loading', (event) => {
210 debug('Did start load', this.name, event); 215 debug('Did start load', this.name, event);
@@ -238,6 +243,28 @@ export default class Service {
238 debug('Service crashed', this.name); 243 debug('Service crashed', this.name);
239 this.hasCrashed = true; 244 this.hasCrashed = true;
240 }); 245 });
246
247 webContents.on('login', (event, request, authInfo, callback) => {
248 // const authCallback = callback;
249 debug('browser login event', authInfo);
250 event.preventDefault();
251
252 if (authInfo.isProxy && authInfo.scheme === 'basic') {
253 debug('Sending service echo ping');
254 webContents.send('get-service-id');
255
256 debug('Received service id', this.id);
257
258 const ps = stores.settings.proxy[this.id];
259
260 if (ps) {
261 debug('Sending proxy auth callback for service', this.id);
262 callback(ps.user, ps.password);
263 } else {
264 debug('No proxy auth config found for', this.id);
265 }
266 }
267 });
241 } 268 }
242 269
243 initializeWebViewListener() { 270 initializeWebViewListener() {