From 66af697ffdc6320a4694393a1293caca4240ccf5 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Wed, 11 May 2022 10:15:35 +0200 Subject: [PATCH 1/2] fix: crash when loading extension missing manifest --- electron_paks.gni | 2 ++ spec-main/extensions-spec.ts | 6 ++++++ spec-main/fixtures/extensions/missing-manifest/main.js | 1 + 3 files changed, 9 insertions(+) create mode 100644 spec-main/fixtures/extensions/missing-manifest/main.js diff --git a/electron_paks.gni b/electron_paks.gni index 0257db3fa9b1d..474dfaa2928c8 100644 --- a/electron_paks.gni +++ b/electron_paks.gni @@ -177,6 +177,7 @@ template("electron_paks") { "${root_gen_dir}/components/strings/components_strings_", "${root_gen_dir}/third_party/blink/public/strings/blink_strings_", "${root_gen_dir}/device/bluetooth/strings/bluetooth_strings_", + "${root_gen_dir}/extensions/strings/extensions_strings_", "${root_gen_dir}/services/strings/services_strings_", "${root_gen_dir}/ui/strings/app_locale_settings_", "${root_gen_dir}/ui/strings/ui_strings_", @@ -185,6 +186,7 @@ template("electron_paks") { "//chrome/app/resources:platform_locale_settings", "//components/strings:components_strings", "//device/bluetooth/strings", + "//extensions/strings:strings_grit", "//services/strings", "//third_party/blink/public/strings", "//ui/strings:app_locale_settings", diff --git a/spec-main/extensions-spec.ts b/spec-main/extensions-spec.ts index d3b62f9aa79db..6fd90d450b385 100644 --- a/spec-main/extensions-spec.ts +++ b/spec-main/extensions-spec.ts @@ -109,6 +109,12 @@ describe('chrome extensions', () => { expect(bg).to.equal('red'); }); + it('does not crash when loading an extension with missing manifest', async () => { + const customSession = session.fromPartition(`persist:${uuid.v4()}`); + const promise = customSession.loadExtension(path.join(fixtures, 'extensions', 'missing-manifest')); + await expect(promise).to.eventually.be.rejectedWith(/Manifest file is missing or unreadable/); + }); + it('does not crash when failing to load an extension', async () => { const customSession = session.fromPartition(`persist:${uuid.v4()}`); const promise = customSession.loadExtension(path.join(fixtures, 'extensions', 'load-error')); diff --git a/spec-main/fixtures/extensions/missing-manifest/main.js b/spec-main/fixtures/extensions/missing-manifest/main.js new file mode 100644 index 0000000000000..d1e760d7b9d07 --- /dev/null +++ b/spec-main/fixtures/extensions/missing-manifest/main.js @@ -0,0 +1 @@ +console.log('oh no where is my manifest'); From f422a0a979860448c19f7c6cc4f9857416bcda01 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Wed, 11 May 2022 14:12:26 +0200 Subject: [PATCH 2/2] Update electron_paks.gni Co-authored-by: Robo --- electron_paks.gni | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electron_paks.gni b/electron_paks.gni index 474dfaa2928c8..87f8375dc4a29 100644 --- a/electron_paks.gni +++ b/electron_paks.gni @@ -186,7 +186,7 @@ template("electron_paks") { "//chrome/app/resources:platform_locale_settings", "//components/strings:components_strings", "//device/bluetooth/strings", - "//extensions/strings:strings_grit", + "//extensions/strings", "//services/strings", "//third_party/blink/public/strings", "//ui/strings:app_locale_settings",