web-frame-init.js 823 B

123456789101112131415161718192021222324
  1. 'use strict'
  2. const { webFrame } = require('electron')
  3. const ipcRenderer = require('@electron/internal/renderer/ipc-renderer-internal')
  4. const errorUtils = require('@electron/internal/common/error-utils')
  5. module.exports = () => {
  6. // Call webFrame method
  7. ipcRenderer.on('ELECTRON_INTERNAL_RENDERER_WEB_FRAME_METHOD', (event, method, args) => {
  8. webFrame[method](...args)
  9. })
  10. ipcRenderer.on('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', (event, requestId, method, args) => {
  11. new Promise(resolve =>
  12. webFrame[method](...args, resolve)
  13. ).then(result => {
  14. return [null, result]
  15. }, error => {
  16. return [errorUtils.serialize(error)]
  17. }).then(responseArgs => {
  18. event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, ...responseArgs)
  19. })
  20. })
  21. }