| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { protocol } from 'electron';
- import { join } from 'path';
- import { parse } from 'url';
- import { ERROR_PROTOCOL, WEBUI_PROTOCOL } from '~/constants/files';
- protocol.registerSchemesAsPrivileged([
- {
- scheme: 'bluevchat',
- privileges: {
- bypassCSP: true,
- secure: true,
- standard: true,
- supportFetchAPI: true,
- allowServiceWorkers: true,
- corsEnabled: false,
- },
- },
- ]);
- export const registerProtocol = (session: Electron.Session) => {
- session.protocol.registerFileProtocol(
- ERROR_PROTOCOL,
- (request, callback: any) => {
- const parsed = parse(request.url);
- if (parsed.hostname === 'network-error') {
- return callback({
- path: join(__dirname, '../static/pages/', `network-error.html`),
- });
- }
- },
- );
- if (process.env.NODE_ENV !== 'development') {
- session.protocol.registerFileProtocol(
- WEBUI_PROTOCOL,
- (request, callback: any) => {
- const parsed = parse(request.url);
- if (parsed.path === '/') {
- return callback({
- path: join(__dirname, `${parsed.hostname}.html`),
- });
- }
- callback({ path: join(__dirname, parsed.path) });
- },
- );
- }
- };
|