aboutsummaryrefslogtreecommitdiffstats
path: root/src/models/UserAgent.js
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-04-23 01:59:21 +0200
committerLibravatar GitHub <noreply@github.com>2022-04-22 23:59:21 +0000
commitd02644f7c41150709795e57bfd40351b4da35a7b (patch)
tree2403fb76bd5fae1703f8b55172ffce9e0a5d2bce /src/models/UserAgent.js
parentComplete tray icons redesign for all platforms (#28) (diff)
downloadferdium-app-d02644f7c41150709795e57bfd40351b4da35a7b.tar.gz
ferdium-app-d02644f7c41150709795e57bfd40351b4da35a7b.tar.zst
ferdium-app-d02644f7c41150709795e57bfd40351b4da35a7b.zip
Preload safe debug shim (#29)
In https://github.com/ferdium/ferdium-app/pull/23 we removed usages of the debug package due to an electron bug. This patch aims to restore some debug functionality by introducing a shim. The shim detect whether if it is being introduced in a preload script where the electron but would be triggered, and falls back to a simple replacement for debug. However, in the main and renderer processes, where a preload script is not being used, we still get full debug functionality. In this way, a module can be used both in a preload script and outside of it, while still preserving debug functionality whenever possible. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
Diffstat (limited to 'src/models/UserAgent.js')
-rw-r--r--src/models/UserAgent.js11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/models/UserAgent.js b/src/models/UserAgent.js
index f818ee9d0..3e1394b45 100644
--- a/src/models/UserAgent.js
+++ b/src/models/UserAgent.js
@@ -2,8 +2,7 @@ import { action, computed, observe, observable } from 'mobx';
2 2
3import defaultUserAgent from '../helpers/userAgent-helpers'; 3import defaultUserAgent from '../helpers/userAgent-helpers';
4 4
5// TODO: Go back to 'debug' from 'console.log' when https://github.com/electron/electron/issues/31689 is fixed 5const debug = require('../preload-safe-debug')('Ferdium:UserAgent');
6// const debug = require('debug')('Ferdium:UserAgent');
7 6
8export default class UserAgent { 7export default class UserAgent {
9 _willNavigateListener = null; 8 _willNavigateListener = null;
@@ -79,7 +78,7 @@ export default class UserAgent {
79 @action _handleNavigate(url, forwardingHack = false) { 78 @action _handleNavigate(url, forwardingHack = false) {
80 if (url.startsWith('https://accounts.google.com')) { 79 if (url.startsWith('https://accounts.google.com')) {
81 if (!this.chromelessUserAgent) { 80 if (!this.chromelessUserAgent) {
82 console.log('Setting user agent to chromeless for url', url); 81 debug('Setting user agent to chromeless for url', url);
83 this.chromelessUserAgent = true; 82 this.chromelessUserAgent = true;
84 this.webview.userAgent = this.userAgent; 83 this.webview.userAgent = this.userAgent;
85 if (forwardingHack) { 84 if (forwardingHack) {
@@ -87,14 +86,14 @@ export default class UserAgent {
87 } 86 }
88 } 87 }
89 } else if (this.chromelessUserAgent) { 88 } else if (this.chromelessUserAgent) {
90 console.log('Setting user agent to contain chrome for url', url); 89 debug('Setting user agent to contain chrome for url', url);
91 this.chromelessUserAgent = false; 90 this.chromelessUserAgent = false;
92 this.webview.userAgent = this.userAgent; 91 this.webview.userAgent = this.userAgent;
93 } 92 }
94 } 93 }
95 94
96 _addWebviewEvents(webview) { 95 _addWebviewEvents(webview) {
97 console.log('Adding event handlers'); 96 debug('Adding event handlers');
98 97
99 this._willNavigateListener = event => this._handleNavigate(event.url, true); 98 this._willNavigateListener = event => this._handleNavigate(event.url, true);
100 webview.addEventListener('will-navigate', this._willNavigateListener); 99 webview.addEventListener('will-navigate', this._willNavigateListener);
@@ -104,7 +103,7 @@ export default class UserAgent {
104 } 103 }
105 104
106 _removeWebviewEvents(webview) { 105 _removeWebviewEvents(webview) {
107 console.log('Removing event handlers'); 106 debug('Removing event handlers');
108 107
109 webview.removeEventListener('will-navigate', this._willNavigateListener); 108 webview.removeEventListener('will-navigate', this._willNavigateListener);
110 webview.removeEventListener('did-navigate', this._didNavigateListener); 109 webview.removeEventListener('did-navigate', this._didNavigateListener);