mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
MV3: Fix dynamic file list injection on service worker reload (#14795)
This commit is contained in:
parent
25aa3ab4b4
commit
d8e1961fd1
@ -48,8 +48,3 @@ function importAllScripts() {
|
||||
|
||||
// Placing script import call here ensures that scripts are inported each time service worker is activated.
|
||||
importAllScripts();
|
||||
|
||||
/**
|
||||
* An open issue is changes in this file break during hot reloading. Reason is dynamic injection of "FILE NAMES".
|
||||
* Developers need to restart local server if they change this file.
|
||||
*/
|
||||
|
@ -365,6 +365,15 @@ function createScriptTasks({
|
||||
}
|
||||
}
|
||||
|
||||
const postProcessServiceWorker = (mv3BrowserPlatforms, fileList) => {
|
||||
mv3BrowserPlatforms.forEach((browser) => {
|
||||
const appInitFile = `./dist/${browser}/app-init.js`;
|
||||
const fileContent = readFileSync('./app/scripts/app-init.js', 'utf8');
|
||||
const fileOutput = fileContent.replace('/** FILE NAMES */', fileList);
|
||||
writeFileSync(appInitFile, fileOutput);
|
||||
});
|
||||
};
|
||||
|
||||
// Function generates app-init.js for browsers chrome, brave and opera.
|
||||
// It dynamically injects list of files generated in the build.
|
||||
async function bundleMV3AppInitialiser({
|
||||
@ -400,12 +409,17 @@ async function bundleMV3AppInitialiser({
|
||||
shouldLintFenceFiles,
|
||||
})();
|
||||
|
||||
mv3BrowserPlatforms.forEach((browser) => {
|
||||
const appInitFile = `./dist/${browser}/app-init.js`;
|
||||
const fileContent = readFileSync('./app/scripts/app-init.js', 'utf8');
|
||||
const fileOutput = fileContent.replace('/** FILE NAMES */', fileList);
|
||||
writeFileSync(appInitFile, fileOutput);
|
||||
postProcessServiceWorker(mv3BrowserPlatforms, fileList);
|
||||
|
||||
let prevChromeFileContent;
|
||||
watch('./dist/chrome/app-init.js', () => {
|
||||
const chromeFileContent = readFileSync('./dist/chrome/app-init.js', 'utf8');
|
||||
if (chromeFileContent !== prevChromeFileContent) {
|
||||
prevChromeFileContent = chromeFileContent;
|
||||
postProcessServiceWorker(mv3BrowserPlatforms, fileList);
|
||||
}
|
||||
});
|
||||
|
||||
console.log(`Bundle end: service worker app-init.js`);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user