diff options
author | Kristóf Marussy <kristof@marussy.com> | 2022-04-23 01:59:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-22 23:59:21 +0000 |
commit | d02644f7c41150709795e57bfd40351b4da35a7b (patch) | |
tree | 2403fb76bd5fae1703f8b55172ffce9e0a5d2bce /src/models/UserAgent.js | |
parent | Complete tray icons redesign for all platforms (#28) (diff) | |
download | ferdium-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.js | 11 |
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 | ||
3 | import defaultUserAgent from '../helpers/userAgent-helpers'; | 3 | import 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 | 5 | const debug = require('../preload-safe-debug')('Ferdium:UserAgent'); |
6 | // const debug = require('debug')('Ferdium:UserAgent'); | ||
7 | 6 | ||
8 | export default class UserAgent { | 7 | export 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); |