'use strict'; // This is a temporary shim to aid in transition from the old // BrowserWindow-based extensions stuff to the new native-backed extensions // API. if (!process.electronBinding('features').isExtensionsEnabled()) { throw new Error('Attempted to load JS chrome-extension shim without //extensions support enabled'); } const { app, session, BrowserWindow, deprecate } = require('electron'); app.whenReady().then(function () { const addExtension = function (srcDirectory) { return session.defaultSession.loadExtension(srcDirectory); }; const removeExtension = function (name) { const extension = session.defaultSession.getAllExtensions().find(e => e.name === name); if (extension) { session.defaultSession.removeExtension(extension.id); } }; const getExtensions = function () { const extensions = {}; session.defaultSession.getAllExtensions().forEach(e => { extensions[e.name] = e; }); return extensions; }; BrowserWindow.addExtension = deprecate.moveAPI(addExtension, 'BrowserWindow.addExtension', 'session.loadExtension'); BrowserWindow.removeExtension = deprecate.moveAPI(removeExtension, 'BrowserWindow.removeExtension', 'session.removeExtension'); BrowserWindow.getExtensions = deprecate.moveAPI(getExtensions, 'BrowserWindow.getExtensions', 'session.getAllExtensions'); BrowserWindow.addDevToolsExtension = deprecate.moveAPI(addExtension, 'BrowserWindow.addDevToolsExtension', 'session.loadExtension'); BrowserWindow.removeDevToolsExtension = deprecate.moveAPI(removeExtension, 'BrowserWindow.removeDevToolsExtension', 'session.removeExtension'); BrowserWindow.getDevToolsExtensions = deprecate.moveAPI(getExtensions, 'BrowserWindow.getDevToolsExtensions', 'session.getAllExtensions'); });