8c71e2adc9
* chore: initial prototype of net api from utility process * chore: update url loader to work on both browser and utility processes * chore: add net files to utility process bundle * chore: re-add app ready check but only on main process * chore: replace browser thread dcheck's with sequence checker * refactor: move url loader from browser to common * refactor: move net-client-request.ts from browser to common * docs: add utility process to net api docs * refactor: move net module app ready check to browser only * refactor: switch import from main to common after moving to common * test: add basic net module test for utility process * refactor: switch browser pid with utility pid * refactor: move electron_api_net from browser to common * chore: add fetch to utility net module * chore: add isOnline and online to utility net module * refactor: move net spec helpers into helper file * refactor: break apart net module tests Adds two additional net module test files: `api-net-session-spec.ts` for tests that depend on a session being available (aka depend on running on the main process) and `api-net-custom-protocols-spec.ts` for custom protocol tests. This enables running `api-net-spec.ts` in the utility process. * test: add utility process mocha runner to run net module tests * docs: add utility process to net module classes * refactor: update imports in lib/utility to use electron/utility * chore: check browser context before using in main process Since the browser context supplied to the SimpleURLLoaderWrapper can now be null for use in the UtilityProcess, adding a null check for the main process before use to get a more sensible error if something goes wrong. Co-authored-by: Cheng Zhao <github@zcbenz.com> * chore: remove test debugging * chore: remove unnecessary header include * docs: add utility process net module limitations * test: run net module tests in utility process individually * refactor: clean up prior utility process net tests * chore: add resolveHost to utility process net module * chore: replace resolve host dcheck with sequence checker * test: add net module tests for net.resolveHost * docs: remove utility process limitation for resolveHost --------- Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: Cheng Zhao <github@zcbenz.com>
26 lines
978 B
TypeScript
26 lines
978 B
TypeScript
import { app, IncomingMessage, session } from 'electron/main';
|
|
import type { ClientRequestConstructorOptions } from 'electron/main';
|
|
import { ClientRequest } from '@electron/internal/common/api/net-client-request';
|
|
|
|
const { isOnline } = process._linkedBinding('electron_common_net');
|
|
|
|
export function request (options: ClientRequestConstructorOptions | string, callback?: (message: IncomingMessage) => void) {
|
|
if (!app.isReady()) {
|
|
throw new Error('net module can only be used after app is ready');
|
|
}
|
|
return new ClientRequest(options, callback);
|
|
}
|
|
|
|
export function fetch (input: RequestInfo, init?: RequestInit): Promise<Response> {
|
|
return session.defaultSession.fetch(input, init);
|
|
}
|
|
|
|
export function resolveHost (host: string, options?: Electron.ResolveHostOptions): Promise<Electron.ResolvedHost> {
|
|
return session.defaultSession.resolveHost(host, options);
|
|
}
|
|
|
|
exports.isOnline = isOnline;
|
|
|
|
Object.defineProperty(exports, 'online', {
|
|
get: () => isOnline()
|
|
});
|