From f46edd5186b32987492b920d8e93001515712df9 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 9 Jun 2016 09:45:02 -0700 Subject: [PATCH] Throw errors reading/parsing manifest.json --- lib/browser/chrome-extension.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/browser/chrome-extension.js b/lib/browser/chrome-extension.js index fc49f5e06be5..69c1d0a566d3 100644 --- a/lib/browser/chrome-extension.js +++ b/lib/browser/chrome-extension.js @@ -22,12 +22,22 @@ const generateExtensionIdFromName = function (name) { // Create or get manifest object from |srcDirectory|. const getManifestFromPath = function (srcDirectory) { let manifest + let manifestContent try { - manifest = JSON.parse(fs.readFileSync(path.join(srcDirectory, 'manifest.json'))) - } catch (err) { - console.warn(`Attempted to load extension from ${srcDirectory}, but parsing the manifest failed.`) - console.warn('Error encountered:', err) + manifestContent = fs.readFileSync(path.join(srcDirectory, 'manifest.json')) + } catch (readError) { + console.warn(`Reading ${path.join(srcDirectory, 'manifest.json')} failed.`) + console.warn(readError.stack || readError) + throw readError + } + + try { + manifest = JSON.parse(manifestContent) + } catch (parseError) { + console.warn(`Parsing ${path.join(srcDirectory, 'manifest.json')} failed.`) + console.warn(parseError.stack || parseError) + throw parseError } if (!manifestNameMap[manifest.name]) {