From 7a8d0273a07081696f9512d9c41419742a46c7b3 Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Tue, 4 Apr 2023 08:15:50 -0700 Subject: [PATCH] Don't include document in scuttling config for mv3 builds (#18356) * Don't include document in scuttling config for mv3 builds * Fix env var comparison * lint fix --- development/build/config.js | 1 + development/build/scripts.js | 23 ++++++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/development/build/config.js b/development/build/config.js index e07707caa..ef053a7ac 100644 --- a/development/build/config.js +++ b/development/build/config.js @@ -20,6 +20,7 @@ const configurationPropertyNames = [ 'DISABLE_WEB_SOCKET_ENCRYPTION', 'METAMASK_DEBUG', 'SKIP_OTP_PAIRING_FLOW', + 'ENABLE_MV3', ]; const productionConfigurationPropertyNames = [ diff --git a/development/build/scripts.js b/development/build/scripts.js index 7d6626050..55323a454 100644 --- a/development/build/scripts.js +++ b/development/build/scripts.js @@ -52,7 +52,7 @@ const { } = require('./transforms/remove-fenced-code'); // map dist files to bag of needed native APIs against LM scuttling -const scuttlingConfig = { +const scuttlingConfigBase = { 'sentry-install.js': { // globals sentry need to function window: '', @@ -70,7 +70,6 @@ const scuttlingConfig = { Number: '', Request: '', Date: '', - document: '', JSON: '', encodeURIComponent: '', crypto: '', @@ -87,6 +86,16 @@ const scuttlingConfig = { }, }; +const mv3ScuttlingConfig = { ...scuttlingConfigBase }; + +const standardScuttlingConfig = { + ...scuttlingConfigBase, + 'sentry-install.js': { + ...scuttlingConfigBase['sentry-install.js'], + document: '', + }, +}; + /** * Get the appropriate Infura project ID. * @@ -932,9 +941,8 @@ function setupBundlerDefaults( // Setup source maps setupSourcemaps(buildConfiguration, { buildTarget }); - // Setup wrapping of code against scuttling (before sourcemaps generation) - setupScuttlingWrapping(buildConfiguration, applyLavaMoat); + setupScuttlingWrapping(buildConfiguration, applyLavaMoat, envVars); } } @@ -988,7 +996,11 @@ function setupMinification(buildConfiguration) { }); } -function setupScuttlingWrapping(buildConfiguration, applyLavaMoat) { +function setupScuttlingWrapping(buildConfiguration, applyLavaMoat, envVars) { + const scuttlingConfig = + envVars.ENABLE_MV3 === 'true' + ? mv3ScuttlingConfig + : standardScuttlingConfig; const { events } = buildConfiguration; events.on('configurePipeline', ({ pipeline }) => { pipeline.get('scuttle').push( @@ -1111,6 +1123,7 @@ async function getEnvironmentVariables({ buildTarget, buildType, version }) { ICON_NAMES: iconNames, MULTICHAIN: config.MULTICHAIN === '1', CONF: devMode ? config : {}, + ENABLE_MV3: config.ENABLE_MV3, IN_TEST: testing, INFURA_PROJECT_ID: getInfuraProjectId({ buildType,