chrome-extension-shim.js 1.6 KB

123456789101112131415161718192021222324252627282930313233
  1. 'use strict';
  2. // This is a temporary shim to aid in transition from the old
  3. // BrowserWindow-based extensions stuff to the new native-backed extensions
  4. // API.
  5. const { app, session, BrowserWindow, deprecate } = require('electron');
  6. app.whenReady().then(function () {
  7. const addExtension = function (srcDirectory) {
  8. return session.defaultSession.loadExtension(srcDirectory);
  9. };
  10. const removeExtension = function (name) {
  11. const extension = session.defaultSession.getAllExtensions().find(e => e.name === name);
  12. if (extension) { session.defaultSession.removeExtension(extension.id); }
  13. };
  14. const getExtensions = function () {
  15. const extensions = {};
  16. session.defaultSession.getAllExtensions().forEach(e => {
  17. extensions[e.name] = e;
  18. });
  19. return extensions;
  20. };
  21. BrowserWindow.addExtension = deprecate.moveAPI(addExtension, 'BrowserWindow.addExtension', 'session.loadExtension');
  22. BrowserWindow.removeExtension = deprecate.moveAPI(removeExtension, 'BrowserWindow.removeExtension', 'session.removeExtension');
  23. BrowserWindow.getExtensions = deprecate.moveAPI(getExtensions, 'BrowserWindow.getExtensions', 'session.getAllExtensions');
  24. BrowserWindow.addDevToolsExtension = deprecate.moveAPI(addExtension, 'BrowserWindow.addDevToolsExtension', 'session.loadExtension');
  25. BrowserWindow.removeDevToolsExtension = deprecate.moveAPI(removeExtension, 'BrowserWindow.removeDevToolsExtension', 'session.removeExtension');
  26. BrowserWindow.getDevToolsExtensions = deprecate.moveAPI(getExtensions, 'BrowserWindow.getDevToolsExtensions', 'session.getAllExtensions');
  27. });