UNPKG

website-page-frame

Version:

This library provides a way to allow browser based programs to have cross parent to child window communication through code.

50 lines (35 loc) 2.77 kB
var ElectronWebsitePageFrame = require("../../src/native/website-page-frames/ElectronWebsitePageFrame.js").ElectronWebsitePageFrame; var ElectronCacheFactory = require("../../src/native/factory/ElectronCacheFactory.js").ElectronCacheFactory; var WebsitePageFrameNavigationResponsePreparation = require("../../src/native/chain-links/WebsitePageFrameNavigationResponsePreparation.js").WebsitePageFrameNavigationResponsePreparation; var WebsitePageFrameResourceResponsePreparation = require("../../src/native/chain-links/WebsitePageFrameResourceResponsePreparation.js").WebsitePageFrameResourceResponsePreparation; var ElectronNetworkRequestHandler = require("../../src/native/network-request-handlers/ElectronNetworkRequestHandler.js").ElectronNetworkRequestHandler; var ElectronNetworkRequestInterceptor = require("../../src/native/interceptors/ElectronNetworkRequestInterceptor.js").ElectronNetworkRequestInterceptor; var ResponsibilityChainBuilder = require("../../src/general/builders/ResponsibilityChainBuilder.js").ResponsibilityChainBuilder; var Protocol = require("../../src/native/protocols/Protocol.js").Protocol; const { app, session, protocol, BrowserWindow } = require("electron"); let appWindow; function createWindow() { appWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: `${__dirname}/preload.js`, } }); appWindow.loadFile(`${__dirname}/index.html`); var cache = (new ElectronCacheFactory()).create(); var responsePreparationChainBuilder = new ResponsibilityChainBuilder(); responsePreparationChainBuilder.attachChainLink( new WebsitePageFrameNavigationResponsePreparation() ); responsePreparationChainBuilder.attachChainLink( new WebsitePageFrameResourceResponsePreparation() ); var electronNetworkRequestHandler = new ElectronNetworkRequestHandler( session.defaultSession, cache, responsePreparationChainBuilder ); var electronHttpRequestInterceptor = new ElectronNetworkRequestInterceptor( new Protocol("http"), electronNetworkRequestHandler ); interceptors = [ electronHttpRequestInterceptor ]; var electronWebsitePageFrame = new ElectronWebsitePageFrame(interceptors); electronWebsitePageFrame.setupProtocolInterceptors(); appWindow.on("closed", () => { appWindow = null; }); } app.on("ready", createWindow);