1
0
mirror of https://github.com/XFox111/PasswordGeneratorExtension.git synced 2026-07-02 19:52:43 +03:00

Compare commits

...

3 Commits

Author SHA1 Message Date
Michael Gordeev 5c3a3ca756 Minor 1.1 (#3)
- Added "Prompt for password length every time before generating" option
- Added "Hide successful password generation message" option
2021-02-26 18:19:07 +03:00
Michael Gordeev 06c59cea41 - Updated CI config
- Added GitHub Release template
2020-11-03 14:13:27 +03:00
Michael Gordeev d7eaec0d68 Updated README.md 2020-10-09 12:00:35 +03:00
9 changed files with 90 additions and 23 deletions
+13
View File
@@ -0,0 +1,13 @@
## What's new
## How to install
1. Download attached archive and unpack it
2. Enable Developers mode on your browser extensions page
3. Click "Load unpacked" button and navigate to the extension root folder (contains `manifest.json`)
4. Done!
*On Firefox you should open manifest file instead of extension's folder
**Note:** If you delete extension folder it will disappear from your browser
_Sideloaded extensions don't replace officially installed ones_
+1 -10
View File
@@ -21,7 +21,7 @@ jobs:
with:
cmd: build
- name: Sign build
- name: 'Sign & publish'
id: web-ext-sign
uses: kewisch/action-web-ext@v1
with:
@@ -31,15 +31,6 @@ jobs:
apiKey: ${{ secrets.FIREFOX_API_KEY }}
apiSecret: ${{ secrets.FIREFOX_CLIENT_SECRET }}
- name: Publish to Firefox Webstore
uses: trmcnvn/firefox-addon@v1
with:
uuid: passwordgenerator@xfox111.net
xpi: ${{ steps.web-ext-sign.outputs.target }}
manifest: ./manifest.json
api-key: ${{ secrets.FIREFOX_API_KEY }}
api-secret: ${{ secrets.FIREFOX_CLIENT_SECRET }}
- name: Drop artifacts
uses: actions/upload-artifact@v2
with:
+4 -5
View File
@@ -1,13 +1,10 @@
# Password generator
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/xfox111/PasswordGeneratorExtension)](https://github.com/xfox111/PasswordGeneratorExtension/releases/latest)
![CI](https://github.com/XFox111/PasswordGeneratorExtension/workflows/CI/badge.svg)
[![Mozilla Add-on](https://img.shields.io/amo/rating/easy-password-generator?label=Firefox%20rating)](https://addons.mozilla.org/firefox/addon/easy-password-generator/)
[![Chrome Web Store](https://img.shields.io/chrome-web-store/users/jnjobgjobffgmgfnkpkjfjkkfhfikmfl?label=Chrome%20Webstore%20downloads)](https://chrome.google.com/webstore/detail/jnjobgjobffgmgfnkpkjfjkkfhfikmfl)
[![Chrome Web Store](https://img.shields.io/chrome-web-store/rating/jnjobgjobffgmgfnkpkjfjkkfhfikmfl)](https://chrome.google.com/webstore/detail/jnjobgjobffgmgfnkpkjfjkkfhfikmfl)
[![Mozilla Add-on](https://img.shields.io/amo/users/easy-password-generator?label=Firefox%20Webstore%20downloads)](https://addons.mozilla.org/firefox/addon/easy-password-generator/)
[![Mozilla Add-on](https://img.shields.io/amo/rating/easy-password-generator)](https://addons.mozilla.org/firefox/addon/easy-password-generator/)
[![Mozilla Add-on](https://img.shields.io/amo/dw/easy-password-generator)](https://addons.mozilla.org/firefox/addon/easy-password-generator/)
[![GitHub issues](https://img.shields.io/github/issues/xfox111/PasswordGeneratorExtension)](https://github.com/xfox111/PasswordGeneratorExtension/issues)
[![GitHub last commit](https://img.shields.io/github/last-commit/xfox111/PasswordGeneratorExtension)](https://github.com/xfox111/PasswordGeneratorExtension/commits/master)
@@ -18,7 +15,7 @@
[![GitHub followers](https://img.shields.io/github/followers/xfox111?label=Follow%20@xfox111&style=social)](https://github.com/xfox111)
[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-%40xfox111-orange)](https://buymeacoffee.com/xfox111)
![Password generator](https://xfox111.net/1cj439)
![Password generator](https://xfox111.net/ma4rop)
Extension for web browsers which helps you to easily generate strong passwords in one click
@@ -28,6 +25,8 @@ Extension for web browsers which helps you to easily generate strong passwords i
- Clean and simple UI
- Dark mode
![Password generator demo](https://xfox111.net/1cj439)
## Download
- [Google Chrome Webstore](https://chrome.google.com/webstore/detail/jnjobgjobffgmgfnkpkjfjkkfhfikmfl)
- [Microsoft Edge Add-ons Webstore](https://microsoftedge.microsoft.com/addons/detail/manimdhobjbkfpeeehlhhneookiokpbj)
+15
View File
@@ -29,6 +29,11 @@
"message": "Invalid generator settings. No password was generated",
"description": "Message which is shown after a creation of password failed"
},
"lengthPrompt":
{
"message": "Set password length. Press OK to use default password length (%LEN% characters)",
"description": "A prompt message when user generates a password"
},
"generatorOptions":
{
@@ -91,6 +96,16 @@
"message": "Add \"Generate password\" action to context menu",
"description": "Option checkbox label"
},
"hideAlert":
{
"message": "Hide successful password generation message",
"description": "Option checkbox label"
},
"promptForLength":
{
"message": "Prompt for password length every time before generating",
"description": "Option checkbox label"
},
"more":
{
"message": "More",
+15
View File
@@ -29,6 +29,11 @@
"message": "Установлены неправильные настройки генератора. Ничего не было сгенерировано",
"description": "Message which is shown after a creation of password failed"
},
"lengthPrompt":
{
"message": "Укажите длину пароля. Нажмите ОК чтобы использовать длину по умолчанию (%LEN% символов)",
"description": "A prompt message when user generates a password"
},
"generatorOptions":
{
@@ -91,6 +96,16 @@
"message": "Добавить действие \"Сгенерировать пароль\" в контекстное меню браузера",
"description": "Option checkbox label"
},
"hideAlert":
{
"message": "Не показывать сообщение при генерации пароля",
"description": "Option checkbox label"
},
"promptForLength":
{
"message": "Спрашивать длину пароля перед генерацией",
"description": "Option checkbox label"
},
"more":
{
"message": "Больше",
+7 -3
View File
@@ -13,7 +13,9 @@ chrome.storage.sync.get(
// Extension settings
showButton: true,
showContext: true
showContext: true,
hideAlert: false,
promptForLength: false
},
(settings) =>
{
@@ -32,7 +34,9 @@ chrome.storage.sync.get(
"excludeSpecial",
"showButton",
"showContext"
"showContext",
"hideAlert",
"promptForLength"
].forEach(i => document.querySelector("#" + i).checked = settings[i]);
SetupEventHandlers();
@@ -46,7 +50,7 @@ function SetupEventHandlers()
i.addEventListener("input",
() => chrome.storage.sync.set(JSON.parse("{ \"" + i.id + "\": " + (i.type == "checkbox" ? i.checked : i.value) + " }"))));
document.querySelector("#generate").addEventListener("click", () => GeneratePassword(null));
document.querySelector("#generate").addEventListener("click", () => GeneratePassword(null, true));
document.querySelector("#more").addEventListener("click", (s) =>
{
let group = document.querySelector("#about");
+24 -4
View File
@@ -34,7 +34,7 @@ function InsertButtons()
});
}
function GeneratePassword(e)
function GeneratePassword(e, useDefaultLength = false)
{
// Generating password
let availableCharacters = ""; // Set of available characters to generate a password from
@@ -47,7 +47,9 @@ function GeneratePassword(e)
includeLowercase: true,
includeUppercase: true,
excludeSimilar: true,
excludeSpecial: true
excludeSpecial: true,
hideAlert: false,
promptForLength: false
},
(settings) =>
{
@@ -72,7 +74,24 @@ function GeneratePassword(e)
}
let password = "";
for (k = 0; k < settings.length; k++)
var pwdLength = settings.length;
if (settings.promptForLength && !useDefaultLength)
while(true)
{
var response = prompt(chrome.i18n.getMessage("lengthPrompt").replace("%LEN%", settings.length));
if (response === null) // If user clicked 'Cancel'
return;
if (parseInt(response))
{
pwdLength = response;
break;
}
else if (!response) // Continue with default length if no response is provided. Try again if input is invalid
break;
}
for (k = 0; k < pwdLength; k++)
password += availableCharacters[GetRandomInt(0, availableCharacters.length)]; // Picking random characters
let field = e?.target.previousElementSibling;
@@ -97,7 +116,8 @@ function GeneratePassword(e)
if (!e)
field.remove();
alert(chrome.i18n.getMessage("success"));
if (settings.hideAlert === false)
alert(chrome.i18n.getMessage("success"));
});
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "__MSG_name__",
"version": "1.0",
"version": "1.1",
"manifest_version": 2,
"description": "__MSG_description__",
"author": "__MSG_author__",
+10
View File
@@ -68,6 +68,16 @@
<span class="mark"></span>
<span loc="showContext">Add "Generate password" action to context menu</span>
</label>
<label class="checkbox control">
<input id="hideAlert" type="checkbox" />
<span class="mark"></span>
<span loc="hideAlert">Hide successful password generation message</span>
</label>
<label class="checkbox control">
<input id="promptForLength" type="checkbox" />
<span class="mark"></span>
<span loc="promptForLength">Prompt for password length every time before generating</span>
</label>
</div>
<div style="margin-bottom: 10px;">