From 14f2c9ae191b282713a6c390426699e7dc2ed4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20V=C3=A4nttinen?= Date: Thu, 7 Mar 2024 17:34:49 +0200 Subject: [PATCH] Add cookies permission to all manifests (#2134) Add cookies permission to all manifests --- CHANGELOG | 5 ++++ build.js | 30 ++++++++++++++----- dist/manifest_chromium.json | 7 +++-- dist/manifest_firefox.json | 5 ++-- keepassxc-browser/_locales/bg/messages.json | 18 +++++------ keepassxc-browser/_locales/nl/messages.json | 18 +++++------ keepassxc-browser/_locales/pl/messages.json | 18 +++++------ keepassxc-browser/_locales/ru/messages.json | 20 ++++++------- keepassxc-browser/_locales/sv/messages.json | 18 +++++------ .../_locales/zh_CN/messages.json | 18 +++++------ .../_locales/zh_TW/messages.json | 18 +++++------ keepassxc-browser/manifest.json | 6 ++-- package-lock.json | 2 +- package.json | 2 +- 14 files changed, 104 insertions(+), 81 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 65d251f..c1b7fd4 100755 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +1.9.0.1 (2024-03-06) +========================= +- Add cookies permission to missing manifest file [#2134] +- Fix showing filter logins input in the extension popup [#2137] + 1.9.0 (2024-03-04) ========================= - Add support for Manifest V3 with Chromium-based browsers [#1723] diff --git a/build.js b/build.js index f44c6a8..d0470ca 100755 --- a/build.js +++ b/build.js @@ -13,19 +13,33 @@ const BROWSERS = { 'Chromium': 'manifest_chromium.json', }; -async function getDestinationFilename(manifest) { +const getVersion = async () => { const manifestFile = await fs.readFile(DEFAULT, { encoding: 'utf8' }); const data = JSON.parse(manifestFile); + return data['version']; +}; + +const setVersion = async (manifest, version) => { + const manifestFile = await fs.readFile(manifest, { encoding: 'utf8' }); + const data = JSON.parse(manifestFile); + + data['version'] = version; + if (Object.hasOwn(data, 'version_name')) { + data['version_name'] = version; + } + fs.writeFile(manifest, JSON.stringify(data, null, 4)); +}; + +const getDestinationFilename = async (manifest, version) => { const browser = manifest.substring(manifest.indexOf('_') + 1, manifest.indexOf('.')); + return `keepassxc-browser_${version}_${browser}.zip`; +}; - return `keepassxc-browser_${data['version']}_${browser}.zip`; -} - -async function updateTranslations() { +const updateTranslations = async () => { console.log('Pulling translations from Transifex, please wait...'); const { stdout } = await exec('tx pull -af'); console.log(stdout); -} +}; (async() => { const params = process.argv.slice(2); @@ -34,11 +48,13 @@ async function updateTranslations() { } await fs.copyFile(`${DEST}/manifest.json`, `./${DEFAULT}`); + const version = await getVersion(); for (const browser in BROWSERS) { console.log(`KeePassXC-Browser: Creating extension package for ${browser}`); - const fileName = await getDestinationFilename(BROWSERS[browser]); + const fileName = await getDestinationFilename(BROWSERS[browser], version); + setVersion(`./dist/${BROWSERS[browser]}`, version); await fs.copyFile(`./dist/${BROWSERS[browser]}`, `${DEST}/manifest.json`); if (await fs.exists(fileName)) { diff --git a/dist/manifest_chromium.json b/dist/manifest_chromium.json index b3d49f6..b7dc2a5 100755 --- a/dist/manifest_chromium.json +++ b/dist/manifest_chromium.json @@ -1,8 +1,8 @@ { "manifest_version": 3, "name": "KeePassXC-Browser", - "version": "1.9.0", - "version_name": "1.9.0", + "version": "1.9.0.1", + "version_name": "1.9.0.1", "minimum_chrome_version": "93", "description": "__MSG_extensionDescription__", "author": "KeePassXC Team", @@ -138,8 +138,9 @@ }], "permissions": [ "activeTab", - "contextMenus", "clipboardWrite", + "contextMenus", + "cookies", "nativeMessaging", "notifications", "storage", diff --git a/dist/manifest_firefox.json b/dist/manifest_firefox.json index c821b2f..5eaf8a3 100644 --- a/dist/manifest_firefox.json +++ b/dist/manifest_firefox.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "KeePassXC-Browser", - "version": "1.9.0", + "version": "1.9.0.1", "description": "__MSG_extensionDescription__", "author": "KeePassXC Team", "icons": { @@ -142,8 +142,9 @@ ], "permissions": [ "activeTab", - "contextMenus", "clipboardWrite", + "contextMenus", + "cookies", "nativeMessaging", "notifications", "storage", diff --git a/keepassxc-browser/_locales/bg/messages.json b/keepassxc-browser/_locales/bg/messages.json index 4c94c5b..fb7ec73 100644 --- a/keepassxc-browser/_locales/bg/messages.json +++ b/keepassxc-browser/_locales/bg/messages.json @@ -148,39 +148,39 @@ "description": "Invalid URL provided." }, "errorMessagePasskeysOriginNotAllowed": { - "message": "Origin is empty or not allowed.", + "message": "Източникът е празен или забранен.", "description": "Origin is empty or not allowed." }, "errorMessagePasskeysDomainNotValid": { - "message": "Effective domain is not a valid domain.", + "message": "Ефективният домейн не е приемлив домейн.", "description": "Effective domain is not a valid domain." }, "errorMessagePasskeysDomainRpIdMismatch": { - "message": "Origin and RP ID do not match.", + "message": "Източникът и RP ID не съвпадат.", "description": "Origin and RP ID do not match." }, "errorMessagePasskeysNoSupportedAlgorithms": { - "message": "No supported algorithms were provided.", + "message": "Не са предоставени поддържани алгоритми.", "description": "No supported algorithms were provided." }, "errorMessagePasskeysWaitforLifeTimer": { - "message": "Wait for timer to expire.", + "message": "Изчакайте отброяването да приключи.", "description": "Wait for timer to expire." }, "errorMessagePasskeysUnknownError": { - "message": "Unknown Passkeys error.", + "message": "Неочаквана грешка на Passkey.", "description": "Unknown Passkeys error." }, "errorMessagePasskeysInvalidChallenge": { - "message": "Challenge is shorter than required minimum length.", + "message": "Предизвикването е по-късо от изискваната минимална дължина.", "description": "Challenge is shorter than required minimum length." }, "errorMessagePasskeysInvalidUserId": { - "message": "user.id does not match the required length.", + "message": "user.id не отговаря на изискваната дължина.", "description": "user.id does not match the required length." }, "errorMessagePasskeysContextIsNotSecure": { - "message": "Context is not secure.", + "message": "Контекстът не е сигурен.", "description": "Context is not secure." }, "errorNotConnected": { diff --git a/keepassxc-browser/_locales/nl/messages.json b/keepassxc-browser/_locales/nl/messages.json index d410637..b9c7038 100644 --- a/keepassxc-browser/_locales/nl/messages.json +++ b/keepassxc-browser/_locales/nl/messages.json @@ -148,39 +148,39 @@ "description": "Invalid URL provided." }, "errorMessagePasskeysOriginNotAllowed": { - "message": "Origin is empty or not allowed.", + "message": "De oorsprong is leeg of niet toegestaan.", "description": "Origin is empty or not allowed." }, "errorMessagePasskeysDomainNotValid": { - "message": "Effective domain is not a valid domain.", + "message": "Effectief domein is geen geldig domein.", "description": "Effective domain is not a valid domain." }, "errorMessagePasskeysDomainRpIdMismatch": { - "message": "Origin and RP ID do not match.", + "message": "Oorsprong en RP ID komen niet overeen.", "description": "Origin and RP ID do not match." }, "errorMessagePasskeysNoSupportedAlgorithms": { - "message": "No supported algorithms were provided.", + "message": "Geen ondersteunde algoritmes zijn verstrekt.", "description": "No supported algorithms were provided." }, "errorMessagePasskeysWaitforLifeTimer": { - "message": "Wait for timer to expire.", + "message": "Wacht tot de timer verloopt.", "description": "Wait for timer to expire." }, "errorMessagePasskeysUnknownError": { - "message": "Unknown Passkeys error.", + "message": "Onbekende Passkeys-fout.", "description": "Unknown Passkeys error." }, "errorMessagePasskeysInvalidChallenge": { - "message": "Challenge is shorter than required minimum length.", + "message": "De challenge is korter dan de vereiste minimale lengte.", "description": "Challenge is shorter than required minimum length." }, "errorMessagePasskeysInvalidUserId": { - "message": "user.id does not match the required length.", + "message": "user.id voldoet niet aan de vereiste lengte.", "description": "user.id does not match the required length." }, "errorMessagePasskeysContextIsNotSecure": { - "message": "Context is not secure.", + "message": "Context is niet veilig.", "description": "Context is not secure." }, "errorNotConnected": { diff --git a/keepassxc-browser/_locales/pl/messages.json b/keepassxc-browser/_locales/pl/messages.json index f2c12f0..3241544 100644 --- a/keepassxc-browser/_locales/pl/messages.json +++ b/keepassxc-browser/_locales/pl/messages.json @@ -148,39 +148,39 @@ "description": "Invalid URL provided." }, "errorMessagePasskeysOriginNotAllowed": { - "message": "Origin is empty or not allowed.", + "message": "Źródło jest puste lub niedozwolone.", "description": "Origin is empty or not allowed." }, "errorMessagePasskeysDomainNotValid": { - "message": "Effective domain is not a valid domain.", + "message": "Domena efektywna nie jest domeną prawidłową.", "description": "Effective domain is not a valid domain." }, "errorMessagePasskeysDomainRpIdMismatch": { - "message": "Origin and RP ID do not match.", + "message": "Źródło i identyfikator RP nie są zgodne.", "description": "Origin and RP ID do not match." }, "errorMessagePasskeysNoSupportedAlgorithms": { - "message": "No supported algorithms were provided.", + "message": "Nie zapewniono obsługiwanych algorytmów.", "description": "No supported algorithms were provided." }, "errorMessagePasskeysWaitforLifeTimer": { - "message": "Wait for timer to expire.", + "message": "Poczekaj, aż upłynie limit czasu.", "description": "Wait for timer to expire." }, "errorMessagePasskeysUnknownError": { - "message": "Unknown Passkeys error.", + "message": "Nieznany błąd klucza dostępu.", "description": "Unknown Passkeys error." }, "errorMessagePasskeysInvalidChallenge": { - "message": "Challenge is shorter than required minimum length.", + "message": "Wyzwanie jest krótsze niż wymagana długość minimalna.", "description": "Challenge is shorter than required minimum length." }, "errorMessagePasskeysInvalidUserId": { - "message": "user.id does not match the required length.", + "message": "user.id nie ma wymaganej długości.", "description": "user.id does not match the required length." }, "errorMessagePasskeysContextIsNotSecure": { - "message": "Context is not secure.", + "message": "Kontekst nie jest bezpieczny.", "description": "Context is not secure." }, "errorNotConnected": { diff --git a/keepassxc-browser/_locales/ru/messages.json b/keepassxc-browser/_locales/ru/messages.json index ba6915c..7064978 100644 --- a/keepassxc-browser/_locales/ru/messages.json +++ b/keepassxc-browser/_locales/ru/messages.json @@ -148,39 +148,39 @@ "description": "Invalid URL provided." }, "errorMessagePasskeysOriginNotAllowed": { - "message": "Origin is empty or not allowed.", + "message": "Источник пуст или не разрешен.", "description": "Origin is empty or not allowed." }, "errorMessagePasskeysDomainNotValid": { - "message": "Effective domain is not a valid domain.", + "message": "Эффективный домен не является действительным доменом.", "description": "Effective domain is not a valid domain." }, "errorMessagePasskeysDomainRpIdMismatch": { - "message": "Origin and RP ID do not match.", + "message": "Источник и идентификатор RP не совпадают.", "description": "Origin and RP ID do not match." }, "errorMessagePasskeysNoSupportedAlgorithms": { - "message": "No supported algorithms were provided.", + "message": "Не было предоставлено никаких поддерживаемых алгоритмов.", "description": "No supported algorithms were provided." }, "errorMessagePasskeysWaitforLifeTimer": { - "message": "Wait for timer to expire.", + "message": "Дождитесь истечения таймера.", "description": "Wait for timer to expire." }, "errorMessagePasskeysUnknownError": { - "message": "Unknown Passkeys error.", + "message": "Неизвестная ошибка Passkeys.", "description": "Unknown Passkeys error." }, "errorMessagePasskeysInvalidChallenge": { - "message": "Challenge is shorter than required minimum length.", + "message": "Вызов короче требуемой минимальной длины.", "description": "Challenge is shorter than required minimum length." }, "errorMessagePasskeysInvalidUserId": { - "message": "user.id does not match the required length.", + "message": "user.id не соответствует требуемой длине.", "description": "user.id does not match the required length." }, "errorMessagePasskeysContextIsNotSecure": { - "message": "Context is not secure.", + "message": "Контекст небезопасен.", "description": "Context is not secure." }, "errorNotConnected": { @@ -208,7 +208,7 @@ "description": "Password icon title text." }, "passwordGeneratorNotSupported": { - "message": "Launching the password generator is not supported in this KeePassXC version. Please update KeePassXC to a newer version." + "message": "Запуск генератора паролей не поддерживается в этой версии KeePassXC. Пожалуйста, обновите KeePassXC до более новой версии." }, "usernameFieldText": { "message": "Заполнить учётные данные из KeePassXC", diff --git a/keepassxc-browser/_locales/sv/messages.json b/keepassxc-browser/_locales/sv/messages.json index ea5ecf8..3debe54 100644 --- a/keepassxc-browser/_locales/sv/messages.json +++ b/keepassxc-browser/_locales/sv/messages.json @@ -148,39 +148,39 @@ "description": "Invalid URL provided." }, "errorMessagePasskeysOriginNotAllowed": { - "message": "Origin is empty or not allowed.", + "message": "Ursprung är tomt eller inte tillåtet.", "description": "Origin is empty or not allowed." }, "errorMessagePasskeysDomainNotValid": { - "message": "Effective domain is not a valid domain.", + "message": "Effektiv domän är inte en giltig domän.", "description": "Effective domain is not a valid domain." }, "errorMessagePasskeysDomainRpIdMismatch": { - "message": "Origin and RP ID do not match.", + "message": "Ursprung och RP-ID matchar inte.", "description": "Origin and RP ID do not match." }, "errorMessagePasskeysNoSupportedAlgorithms": { - "message": "No supported algorithms were provided.", + "message": "Inga algoritmer som stöds tillhandahölls.", "description": "No supported algorithms were provided." }, "errorMessagePasskeysWaitforLifeTimer": { - "message": "Wait for timer to expire.", + "message": "Vänta på att tiduret skall löpa ut.", "description": "Wait for timer to expire." }, "errorMessagePasskeysUnknownError": { - "message": "Unknown Passkeys error.", + "message": "Okänt passnyckelfel.", "description": "Unknown Passkeys error." }, "errorMessagePasskeysInvalidChallenge": { - "message": "Challenge is shorter than required minimum length.", + "message": "Utmaningen är kortare än den minimilängd som krävs.", "description": "Challenge is shorter than required minimum length." }, "errorMessagePasskeysInvalidUserId": { - "message": "user.id does not match the required length.", + "message": "user.id matchar inte den erforderliga längden.", "description": "user.id does not match the required length." }, "errorMessagePasskeysContextIsNotSecure": { - "message": "Context is not secure.", + "message": "Kontexten är inte säker.", "description": "Context is not secure." }, "errorNotConnected": { diff --git a/keepassxc-browser/_locales/zh_CN/messages.json b/keepassxc-browser/_locales/zh_CN/messages.json index 202a375..6688a09 100644 --- a/keepassxc-browser/_locales/zh_CN/messages.json +++ b/keepassxc-browser/_locales/zh_CN/messages.json @@ -148,39 +148,39 @@ "description": "Invalid URL provided." }, "errorMessagePasskeysOriginNotAllowed": { - "message": "Origin is empty or not allowed.", + "message": "Origin 为空或不被允许。", "description": "Origin is empty or not allowed." }, "errorMessagePasskeysDomainNotValid": { - "message": "Effective domain is not a valid domain.", + "message": "有效域名是无效的域名。", "description": "Effective domain is not a valid domain." }, "errorMessagePasskeysDomainRpIdMismatch": { - "message": "Origin and RP ID do not match.", + "message": "Origin 与 RP ID 不匹配。", "description": "Origin and RP ID do not match." }, "errorMessagePasskeysNoSupportedAlgorithms": { - "message": "No supported algorithms were provided.", + "message": "未提供受支持的算法。", "description": "No supported algorithms were provided." }, "errorMessagePasskeysWaitforLifeTimer": { - "message": "Wait for timer to expire.", + "message": "等待计时器过期。", "description": "Wait for timer to expire." }, "errorMessagePasskeysUnknownError": { - "message": "Unknown Passkeys error.", + "message": "未知 Passkey 错误。", "description": "Unknown Passkeys error." }, "errorMessagePasskeysInvalidChallenge": { - "message": "Challenge is shorter than required minimum length.", + "message": "挑战不满足所需最小长度。", "description": "Challenge is shorter than required minimum length." }, "errorMessagePasskeysInvalidUserId": { - "message": "user.id does not match the required length.", + "message": "user.id 不匹配所需长度。", "description": "user.id does not match the required length." }, "errorMessagePasskeysContextIsNotSecure": { - "message": "Context is not secure.", + "message": "上下文不安全。", "description": "Context is not secure." }, "errorNotConnected": { diff --git a/keepassxc-browser/_locales/zh_TW/messages.json b/keepassxc-browser/_locales/zh_TW/messages.json index edd471f..8deabd7 100644 --- a/keepassxc-browser/_locales/zh_TW/messages.json +++ b/keepassxc-browser/_locales/zh_TW/messages.json @@ -148,39 +148,39 @@ "description": "Invalid URL provided." }, "errorMessagePasskeysOriginNotAllowed": { - "message": "Origin is empty or not allowed.", + "message": "Origin 為空或不被允許。", "description": "Origin is empty or not allowed." }, "errorMessagePasskeysDomainNotValid": { - "message": "Effective domain is not a valid domain.", + "message": "有效域名是無效的域名。", "description": "Effective domain is not a valid domain." }, "errorMessagePasskeysDomainRpIdMismatch": { - "message": "Origin and RP ID do not match.", + "message": "Origin 與 RP ID 不匹配。", "description": "Origin and RP ID do not match." }, "errorMessagePasskeysNoSupportedAlgorithms": { - "message": "No supported algorithms were provided.", + "message": "未提供受支持的演算法。", "description": "No supported algorithms were provided." }, "errorMessagePasskeysWaitforLifeTimer": { - "message": "Wait for timer to expire.", + "message": "等待計時器過期。", "description": "Wait for timer to expire." }, "errorMessagePasskeysUnknownError": { - "message": "Unknown Passkeys error.", + "message": "未知的通行密鑰錯誤。", "description": "Unknown Passkeys error." }, "errorMessagePasskeysInvalidChallenge": { - "message": "Challenge is shorter than required minimum length.", + "message": "挑戰不滿足所需最小長度。", "description": "Challenge is shorter than required minimum length." }, "errorMessagePasskeysInvalidUserId": { - "message": "user.id does not match the required length.", + "message": "user.id 不匹配所需長度。", "description": "user.id does not match the required length." }, "errorMessagePasskeysContextIsNotSecure": { - "message": "Context is not secure.", + "message": "上下文不安全。", "description": "Context is not secure." }, "errorNotConnected": { diff --git a/keepassxc-browser/manifest.json b/keepassxc-browser/manifest.json index 8ff6e7b..d0c81f6 100755 --- a/keepassxc-browser/manifest.json +++ b/keepassxc-browser/manifest.json @@ -1,8 +1,8 @@ { "manifest_version": 2, "name": "KeePassXC-Browser", - "version": "1.9.0", - "version_name": "1.9.0", + "version": "1.9.0.1", + "version_name": "1.9.0.1", "minimum_chrome_version": "93", "description": "__MSG_extensionDescription__", "author": "KeePassXC Team", @@ -144,9 +144,9 @@ ], "permissions": [ "activeTab", + "clipboardWrite", "contextMenus", "cookies", - "clipboardWrite", "nativeMessaging", "notifications", "storage", diff --git a/package-lock.json b/package-lock.json index f992bd3..0fae26c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "keepassxc-browser", - "version": "1.9.0", + "version": "1.9.0.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 580235f..d3e2863 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "keepassxc-browser", - "version": "1.9.0", + "version": "1.9.0.1", "description": "KeePassXC-Browser", "main": "build.js", "devDependencies": {