chrome-extension-shim.ts 1.6 KB

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