From f31c4b6332442aaff7d736e9317e2a61509ae888 Mon Sep 17 00:00:00 2001 From: Yuya Ochiai Date: Mon, 26 Mar 2018 22:37:36 +0900 Subject: [PATCH] Disable Certificate Transparency verification --- src/main.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main.js b/src/main.js index 944d5d41..751ad32f 100644 --- a/src/main.js +++ b/src/main.js @@ -14,6 +14,7 @@ const os = require('os'); const path = require('path'); const isDev = require('electron-is-dev'); const installExtension = require('electron-devtools-installer'); +const semver = require('semver'); const squirrelStartup = require('./main/squirrelStartup'); const CriticalErrorHandler = require('./main/CriticalErrorHandler'); @@ -610,6 +611,20 @@ app.on('ready', () => { permissionManager = new PermissionManager(permissionFile, trustedURLs); session.defaultSession.setPermissionRequestHandler(permissionRequestHandler(mainWindow, permissionManager)); + // Disable Certificate Transparency until Electron 1.8.3 + // due to https://github.com/electron/electron/issues/11997 + if (semver.lt(process.versions.electron, '1.8.3')) { + const SUCCESS_AND_DISABLE_CERTIFICATE_TRANSPARENCY = 0; + const USE_VERIFICATION_RESULT_FROM_CHROMIUM = -3; + session.defaultSession.setCertificateVerifyProc((request, callback) => { + if (request.verificationResult === 'net::OK') { + callback(SUCCESS_AND_DISABLE_CERTIFICATE_TRANSPARENCY); + } else { + callback(USE_VERIFICATION_RESULT_FROM_CHROMIUM); + } + }); + } + // Open the DevTools. // mainWindow.openDevTools(); });