From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 13 Sep 2018 08:56:07 -0700 Subject: feat: initialize asar support This patch initializes asar support in Node.js. diff --git a/lib/internal/process/policy.js b/lib/internal/process/policy.js index 8e07cb92118c84b2bc1156532cae8b033b9a48f4..2073a024ad548fe80e84cafee012b003454d6c93 100644 --- a/lib/internal/process/policy.js +++ b/lib/internal/process/policy.js @@ -39,9 +39,6 @@ module.exports = ObjectFreeze({ process.binding = function binding(_module) { throw new ERR_ACCESS_DENIED('process.binding'); }; - process._linkedBinding = function _linkedBinding(_module) { - throw new ERR_ACCESS_DENIED('process._linkedBinding'); - }; }, get manifest() { diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js index 250a43c5455b4f9ff72dd3a34d5b0aa270f43cc6..2e35cbba2ac02494c44821af395fe0195b1ab6b5 100644 --- a/lib/internal/process/pre_execution.js +++ b/lib/internal/process/pre_execution.js @@ -117,12 +117,17 @@ function setupUserModules() { loadPreloadModules(); // Need to be done after --require setup. initializeFrozenIntrinsics(); + setupAsarSupport(); } function refreshRuntimeOptions() { refreshOptions(); } +function setupAsarSupport() { + process._linkedBinding('electron_common_asar').initAsarSupport(require); +} + function patchProcessObject(expandArgv1) { const binding = internalBinding('process_methods'); binding.patchProcessObject(process); diff --git a/test/fixtures/policy/process-binding/app.js b/test/fixtures/policy/process-binding/app.js index 16e26d12a160286b1b6aaeb64b15668b05b9865b..a287d0a2363acbf24077eec040116f96ef18a7b3 100644 --- a/test/fixtures/policy/process-binding/app.js +++ b/test/fixtures/policy/process-binding/app.js @@ -5,6 +5,3 @@ const assert = require('assert'); assert.throws(() => { process.binding(); }, { code: 'ERR_ACCESS_DENIED' }); -assert.throws(() => { process._linkedBinding(); }, { - code: 'ERR_ACCESS_DENIED' -});