From d02644f7c41150709795e57bfd40351b4da35a7b Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sat, 23 Apr 2022 01:59:21 +0200 Subject: Preload safe debug shim (#29) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/models/UserAgent.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/models/UserAgent.js') 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'; import defaultUserAgent from '../helpers/userAgent-helpers'; -// TODO: Go back to 'debug' from 'console.log' when https://github.com/electron/electron/issues/31689 is fixed -// const debug = require('debug')('Ferdium:UserAgent'); +const debug = require('../preload-safe-debug')('Ferdium:UserAgent'); export default class UserAgent { _willNavigateListener = null; @@ -79,7 +78,7 @@ export default class UserAgent { @action _handleNavigate(url, forwardingHack = false) { if (url.startsWith('https://accounts.google.com')) { if (!this.chromelessUserAgent) { - console.log('Setting user agent to chromeless for url', url); + debug('Setting user agent to chromeless for url', url); this.chromelessUserAgent = true; this.webview.userAgent = this.userAgent; if (forwardingHack) { @@ -87,14 +86,14 @@ export default class UserAgent { } } } else if (this.chromelessUserAgent) { - console.log('Setting user agent to contain chrome for url', url); + debug('Setting user agent to contain chrome for url', url); this.chromelessUserAgent = false; this.webview.userAgent = this.userAgent; } } _addWebviewEvents(webview) { - console.log('Adding event handlers'); + debug('Adding event handlers'); this._willNavigateListener = event => this._handleNavigate(event.url, true); webview.addEventListener('will-navigate', this._willNavigateListener); @@ -104,7 +103,7 @@ export default class UserAgent { } _removeWebviewEvents(webview) { - console.log('Removing event handlers'); + debug('Removing event handlers'); webview.removeEventListener('will-navigate', this._willNavigateListener); webview.removeEventListener('did-navigate', this._didNavigateListener); -- cgit v1.2.3-70-g09d2