From d2d2468f2a0d57fc55633a6a44665390547ce716 Mon Sep 17 00:00:00 2001 From: Erayd Date: Fri, 1 Jan 2021 01:51:13 +1300 Subject: [PATCH] Allow empty login (#232) --- src/background.js | 9 +++++++-- src/inject.js | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/background.js b/src/background.js index d516544..70031c5 100644 --- a/src/background.js +++ b/src/background.js @@ -895,6 +895,8 @@ async function parseFields(settings, login) { throw new Error(JSON.stringify(response)); // TODO handle host error } + var allowEmpty = ["login"]; + // save raw data inside login login.raw = response.data.contents; @@ -917,7 +919,7 @@ async function parseFields(settings, login) { } // split key / value & ignore non-k/v lines - var parts = line.match(/^(.+?):(.+)$/); + var parts = line.match(/^(.+?):(.*)$/); if (parts === null) { return; } @@ -925,7 +927,7 @@ async function parseFields(settings, login) { .slice(1) .map((value) => value.trim()) .filter((value) => value.length); - if (parts.length != 2) { + if (!parts.length) { return; } @@ -935,6 +937,9 @@ async function parseFields(settings, login) { Array.isArray(login.fields[key]) && login.fields[key].includes(parts[0].toLowerCase()) ) { + if (parts.length < 2 && !allowEmpty.includes(key)) { + return; + } login.fields[key] = parts[1]; break; } diff --git a/src/inject.js b/src/inject.js index 139562d..554b9f9 100644 --- a/src/inject.js +++ b/src/inject.js @@ -433,6 +433,11 @@ * @return bool Whether the update succeeded */ function update(field, value, form) { + if (value === undefined) { + // undefined values should not be filled, but are always considered successful + return true; + } + if (!value.length) { return false; }