![trop[bot]](/assets/img/avatar_default.png)
* feat: redesign preload APIs Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com> * docs: remove service-worker mentions for now Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com> * fix lint Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com> * remove service-worker ipc code Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com> * add filename Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com> * fix: web preferences preload not included Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com> * fix: missing common init Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com> * fix: preload bundle script error Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com>
30 lines
971 B
TypeScript
30 lines
971 B
TypeScript
// Pre-initialization code for sandboxed renderers.
|
|
|
|
import * as events from 'events';
|
|
|
|
declare const binding: {
|
|
get: (name: string) => any;
|
|
process: NodeJS.Process;
|
|
};
|
|
|
|
// Expose internal binding getter.
|
|
process._linkedBinding = binding.get;
|
|
|
|
const { EventEmitter } = events;
|
|
const v8Util = process._linkedBinding('electron_common_v8_util');
|
|
|
|
// Include properties from script 'binding' parameter.
|
|
Object.assign(process, binding.process);
|
|
|
|
// Expose Buffer shim as a hidden value. This is used by C++ code to
|
|
// deserialize Buffer instances sent from browser process.
|
|
v8Util.setHiddenValue(global, 'Buffer', Buffer);
|
|
|
|
// The process object created by webpack is not an event emitter, fix it so
|
|
// the API is more compatible with non-sandboxed renderers.
|
|
for (const prop of Object.keys(EventEmitter.prototype) as (keyof typeof process)[]) {
|
|
if (Object.hasOwn(process, prop)) {
|
|
delete process[prop];
|
|
}
|
|
}
|
|
Object.setPrototypeOf(process, EventEmitter.prototype);
|