mirror of
https://github.com/keepassxreboot/keepassxc-browser.git
synced 2026-03-11 08:54:43 +00:00
Content script code cleaning. Removal of obsolete files
This commit is contained in:
parent
f200fe8000
commit
c9bdd79a8e
8 changed files with 20 additions and 274 deletions
|
|
@ -2,6 +2,7 @@
|
|||
=========================
|
||||
- Added support for OTP codes via context menu
|
||||
- Fixed HTTP auth
|
||||
- General content script code cleaning
|
||||
|
||||
0.4.3 (9-12-2017)
|
||||
=========================
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"name": "com.varjolintu.keepassxc_browser",
|
||||
"description": "KeepassXC integration with Chrome with Native Messaging support",
|
||||
"path" : "keepassxc-proxy.bat",
|
||||
"type": "stdio",
|
||||
"allowed_origins": [
|
||||
"chrome-extension://iopaggbpplllidnfmcghoonnokmjoicf/",
|
||||
"chrome-extension://fhakpkpdnjecjfceboihdjpfmgajebii/",
|
||||
"chrome-extension://jaikbblhommnkeialomogohhdlndpfbi/"
|
||||
]
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"name": "com.varjolintu.keepassxc_browser",
|
||||
"description": "KeepassXC integration with Chrome with Native Messaging support",
|
||||
"path" : "%%replace%%",
|
||||
"type": "stdio",
|
||||
"allowed_origins": [
|
||||
"chrome-extension://iopaggbpplllidnfmcghoonnokmjoicf/",
|
||||
"chrome-extension://fhakpkpdnjecjfceboihdjpfmgajebii/",
|
||||
"chrome-extension://jaikbblhommnkeialomogohhdlndpfbi/"
|
||||
]
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"name": "com.varjolintu.keepassxc_browser",
|
||||
"description": "KeepassXC integration with Firefox with Native Messaging support",
|
||||
"path" : "keepassxc-proxy.bat",
|
||||
"type": "stdio",
|
||||
"allowed_extensions": [
|
||||
"keepassxc-browser@sami.vanttinen"
|
||||
]
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"name": "com.varjolintu.keepassxc_browser",
|
||||
"description": "KeepassXC integration with Firefox with Native Messaging support",
|
||||
"path" : "%%replace%%",
|
||||
"type": "stdio",
|
||||
"allowed_extensions": [
|
||||
"keepassxc-browser@sami.vanttinen"
|
||||
]
|
||||
}
|
||||
34
install.bat
34
install.bat
|
|
@ -1,34 +0,0 @@
|
|||
:: Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
:: Copyright 2017 Sami Vänttinen <sami.vanttinen@protonmail.com>
|
||||
:: Use of this source code is governed by a BSD-style license that can be
|
||||
:: found in the LICENSE file.
|
||||
:: Change HKCU to HKLM if you want to install globally.
|
||||
:: %~dp0 is the directory containing this bat script and ends with a backslash.
|
||||
@echo off
|
||||
echo.
|
||||
echo Select your browser:
|
||||
echo ====================
|
||||
echo 1) Chrome
|
||||
echo 2) Chromium
|
||||
echo 3) Firefox
|
||||
echo 4) Vivaldi
|
||||
set choice=
|
||||
set /p choice=1-4:
|
||||
if '%choice%'=='1' goto chrome
|
||||
if '%choice%'=='2' goto chromium
|
||||
if '%choice%'=='3' goto firefox
|
||||
if '%choice%'=='3' goto vivaldi
|
||||
goto end
|
||||
:chrome
|
||||
REG ADD "HKCU\Software\Google\Chrome\NativeMessagingHosts\com.varjolintu.keepassxc_browser" /ve /t REG_SZ /d "%~dp0com.varjolintu.keepassxc-browser-chrome.win.json" /f
|
||||
goto end
|
||||
:chromium
|
||||
REG ADD "HKCU\Software\Chromium\NativeMessagingHosts\com.varjolintu.keepassxc_browser" /ve /t REG_SZ /d "%~dp0com.varjolintu.keepassxc-browser-chrome.win.json" /f
|
||||
goto end
|
||||
:firefox
|
||||
REG ADD "HKCU\Software\Mozilla\NativeMessagingHosts\com.varjolintu.keepassxc_browser" /ve /t REG_SZ /d "%~dp0com.varjolintu.keepassxc-browser-firefox.win.json" /f
|
||||
goto end
|
||||
:vivaldi
|
||||
REG ADD "HKCU\Software\Vivaldi\NativeMessagingHosts\com.varjolintu.keepassxc_browser" /ve /t REG_SZ /d "%~dp0com.varjolintu.keepassxc-browser-chrome.win.json" /f
|
||||
goto end
|
||||
:end
|
||||
141
install.sh
141
install.sh
|
|
@ -1,141 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# The MIT License (MIT)
|
||||
# Copyright (c) 2016 Danny van Kooten
|
||||
# Modifications (c) 2017 Sami Vänttinen
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
# and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
# including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
# subject to the following conditions:
|
||||
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
||||
# LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
# NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
set -e
|
||||
|
||||
DIR="$( cd "$( dirname "$0" )" && pwd )"
|
||||
APP_NAME="com.varjolintu.keepassxc_browser"
|
||||
HOST_FILE="$DIR"
|
||||
KEEPASSXC_PATH=""
|
||||
|
||||
# Find target dirs for various browsers & OS'es
|
||||
# https://developer.chrome.com/extensions/nativeMessaging#native-messaging-host-location
|
||||
# https://wiki.mozilla.org/WebExtensions/Native_Messaging
|
||||
if [ $(uname -s) == 'Darwin' ]; then
|
||||
if [ "$(whoami)" == "root" ]; then
|
||||
TARGET_DIR_CHROME="/Library/Google/Chrome/NativeMessagingHosts"
|
||||
TARGET_DIR_CHROMIUM="/Library/Application Support/Chromium/NativeMessagingHosts"
|
||||
TARGET_DIR_FIREFOX="/Library/Application Support/Mozilla/NativeMessagingHosts"
|
||||
TARGET_DIR_VIVALDI="/Library/Application Support/Vivaldi/NativeMessagingHosts"
|
||||
else
|
||||
TARGET_DIR_CHROME="$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts"
|
||||
TARGET_DIR_CHROMIUM="$HOME/Library/Application Support/Chromium/NativeMessagingHosts"
|
||||
TARGET_DIR_FIREFOX="$HOME/Library/Application Support/Mozilla/NativeMessagingHosts"
|
||||
TARGET_DIR_VIVALDI="$HOME/Library/Application Support/Vivaldi/NativeMessagingHosts"
|
||||
fi
|
||||
else
|
||||
if [ "$(whoami)" == "root" ]; then
|
||||
TARGET_DIR_CHROME="/etc/opt/chrome/native-messaging-hosts"
|
||||
TARGET_DIR_CHROMIUM="/etc/chromium/native-messaging-hosts"
|
||||
TARGET_DIR_FIREFOX="/usr/lib/mozilla/native-messaging-hosts"
|
||||
TARGET_DIR_VIVALDI="/etc/chromium/native-messaging-hosts"
|
||||
else
|
||||
TARGET_DIR_CHROME="$HOME/.config/google-chrome/NativeMessagingHosts"
|
||||
TARGET_DIR_CHROMIUM="$HOME/.config/chromium/NativeMessagingHosts"
|
||||
TARGET_DIR_FIREFOX="$HOME/.mozilla/native-messaging-hosts"
|
||||
TARGET_DIR_VIVALDI="$HOME/.config/vivaldi/NativeMessagingHosts"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -e "$DIR/keepassxc-browser" ]; then
|
||||
echo "Detected development binary"
|
||||
HOST_FILE="$DIR/keepassxc-browser"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Select your browser:"
|
||||
echo "===================="
|
||||
echo "1) Chrome"
|
||||
echo "2) Chromium"
|
||||
echo "3) Firefox"
|
||||
echo "4) Vivaldi"
|
||||
echo -n "1-4: "
|
||||
read BROWSER
|
||||
echo ""
|
||||
|
||||
# Set target dir from user input
|
||||
if [[ "$BROWSER" == "1" ]]; then
|
||||
BROWSER_NAME="Chrome"
|
||||
TARGET_DIR="$TARGET_DIR_CHROME"
|
||||
fi
|
||||
|
||||
if [[ "$BROWSER" == "2" ]]; then
|
||||
BROWSER_NAME="Chromium"
|
||||
TARGET_DIR="$TARGET_DIR_CHROMIUM"
|
||||
fi
|
||||
|
||||
if [[ "$BROWSER" == "3" ]]; then
|
||||
BROWSER_NAME="Firefox"
|
||||
TARGET_DIR="$TARGET_DIR_FIREFOX"
|
||||
fi
|
||||
|
||||
if [[ "$BROWSER" == "4" ]]; then
|
||||
BROWSER_NAME="Vivaldi"
|
||||
TARGET_DIR="$TARGET_DIR_VIVALDI"
|
||||
fi
|
||||
|
||||
# Try to find the KeePassXC binary.
|
||||
if [ $(uname -s) == 'Darwin' ]; then
|
||||
KEEPASSXC_PATH="/Applications/KeePassXC.app"
|
||||
else
|
||||
KEEPASSXC_PATH="$(command -v keepassxc)"
|
||||
if [ -z "$KEEPASSXC_PATH" ] ; then
|
||||
echo ""
|
||||
echo -n "KeePassXC binary not found. Give the location of KeePassXC binary: "
|
||||
read KEEPASSXC_PATH
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
echo "KeePassXC binary location set to $KEEPASSXC_PATH"
|
||||
echo "Installing $BROWSER_NAME host config with path $KEEPASSXC_PATH"
|
||||
echo "Press (ENTER) or give a new path to binary if it's not correct: "
|
||||
read NEW_PATH
|
||||
|
||||
if [ "$NEW_PATH" ]; then
|
||||
KEEPASSXC_PATH="$NEW_PATH"
|
||||
echo "New path set to: $KEEPASSXC_PATH"
|
||||
fi
|
||||
|
||||
# Add /Contents/MacOS/KeePassXC to darwin for exact binary path
|
||||
if [ $(uname -s) == 'Darwin' ]; then
|
||||
KEEPASSXC_PATH="$KEEPASSXC_PATH/Contents/MacOS/KeePassXC"
|
||||
fi
|
||||
|
||||
ESCAPED_PATH=${KEEPASSXC_PATH////\\/}
|
||||
|
||||
# Create config dir if not existing
|
||||
mkdir -p "$TARGET_DIR"
|
||||
|
||||
# Copy manifest host config file
|
||||
if [ "$BROWSER" == "1" ] || [ "$BROWSER" == "2" ] || [ "$BROWSER" == "4" ]; then
|
||||
cp "$DIR/com.varjolintu.keepassxc-browser-chrome.json" "$TARGET_DIR/$APP_NAME.json"
|
||||
else
|
||||
cp "$DIR/com.varjolintu.keepassxc-browser-firefox.json" "$TARGET_DIR//$APP_NAME.json"
|
||||
fi
|
||||
|
||||
# Replace path to host
|
||||
if [ $(uname -s) == 'Darwin' ]; then
|
||||
sed -i "" -e "s/%%replace%%/$ESCAPED_PATH/g" "$TARGET_DIR/$APP_NAME.json"
|
||||
else
|
||||
sed -i -e "s/%%replace%%/$ESCAPED_PATH/g" "$TARGET_DIR/$APP_NAME.json"
|
||||
fi
|
||||
|
||||
# Set permissions for the manifest so that all users can read it.
|
||||
chmod o+r "$TARGET_DIR/$APP_NAME.json"
|
||||
|
||||
echo "Native messaging host for $BROWSER_NAME has been installed to $TARGET_DIR."
|
||||
|
|
@ -22,7 +22,7 @@ browser.runtime.onMessage.addListener(function(req, sender, callback) {
|
|||
combination = cipFields.getCombination('password', cip.p);
|
||||
}
|
||||
|
||||
let list = {};
|
||||
let list = [];
|
||||
if (cip.fillInStringFields(combination.fields, cip.credentials[req.id].stringFields, list)) {
|
||||
cipForm.destroy(false, {'password': list.list[0], 'username': list.list[1]});
|
||||
}
|
||||
|
|
@ -36,7 +36,7 @@ browser.runtime.onMessage.addListener(function(req, sender, callback) {
|
|||
}
|
||||
else if (req.action === 'fill_pass_only') {
|
||||
cip.receiveCredentialsIfNecessary();
|
||||
cip.fillInFromActiveElementPassOnly(false);
|
||||
cip.fillInFromActiveElement(false, true);
|
||||
}
|
||||
else if (req.action === 'fill_totp') {
|
||||
cip.receiveCredentialsIfNecessary();
|
||||
|
|
@ -534,7 +534,7 @@ var cipDefine = {};
|
|||
cipDefine.selection = {
|
||||
username: null,
|
||||
password: null,
|
||||
fields: {}
|
||||
fields: []
|
||||
};
|
||||
cipDefine.eventFieldClick = null;
|
||||
|
||||
|
|
@ -671,7 +671,7 @@ cipDefine.resetSelection = function() {
|
|||
cipDefine.selection = {
|
||||
username: null,
|
||||
password: null,
|
||||
fields: {}
|
||||
fields: []
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -714,10 +714,8 @@ cipDefine.markAllStringFields = function($chooser) {
|
|||
};
|
||||
|
||||
cipDefine.markFields = function ($chooser, $pattern) {
|
||||
//var $found = false;
|
||||
jQuery($pattern).each(function() {
|
||||
if (cipDefine.isFieldSelected(jQuery(this).data('cip-id'))) {
|
||||
//continue
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -731,16 +729,8 @@ cipDefine.markFields = function ($chooser, $pattern) {
|
|||
.click(cipDefine.eventFieldClick)
|
||||
.hover(function() {jQuery(this).addClass('b2c-fixed-hover-field');}, function() {jQuery(this).removeClass('b2c-fixed-hover-field');});
|
||||
$chooser.append($field);
|
||||
//$found = true;
|
||||
}
|
||||
});
|
||||
|
||||
/* skip step if no entry was found
|
||||
if(!$found) {
|
||||
alert('No username field found.\nContinue with choosing a password field.'');
|
||||
jQuery('button#b2c-btn-skip').click();
|
||||
}
|
||||
*/
|
||||
};
|
||||
|
||||
cipDefine.prepareStep1 = function() {
|
||||
|
|
@ -763,14 +753,6 @@ cipDefine.prepareStep2 = function() {
|
|||
};
|
||||
|
||||
cipDefine.prepareStep3 = function() {
|
||||
/* skip step if no entry was found
|
||||
if(!jQuery('div#b2c-cipDefine-fields').data('username') && !jQuery('div#b2c-cipDefine-fields').data('password')) {
|
||||
alert('Neither an username field nor a password field were selected.\nNothing will be changed and chooser will be closed now.'');
|
||||
jQuery('button#b2c-btn-dismiss').click();
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
if (!cipDefine.selection.username && !cipDefine.selection.password) {
|
||||
jQuery('button#b2c-btn-confirm:first').removeClass('b2c-btn-primary').attr('disabled', true);
|
||||
}
|
||||
|
|
@ -1272,7 +1254,7 @@ cip.prepareFieldsForCredentials = function(autoFillInForSingle) {
|
|||
}
|
||||
|
||||
if (combination) {
|
||||
let list = {};
|
||||
let list = [];
|
||||
if (cip.fillInStringFields(combination.fields, cip.credentials[0].stringFields, list)) {
|
||||
cipForm.destroy(false, {'password': list.list[0], 'username': list.list[1]});
|
||||
}
|
||||
|
|
@ -1393,30 +1375,7 @@ cip.fillInCredentials = function(combination, onlyPassword, suppressWarnings) {
|
|||
}
|
||||
};
|
||||
|
||||
cip.fillInFromActiveElement = function(suppressWarnings) {
|
||||
const el = document.activeElement;
|
||||
if (el.tagName.toLowerCase() !== 'input') {
|
||||
if (cipFields.combinations.length > 0) {
|
||||
cip.fillInCredentials(cipFields.combinations[0], false, suppressWarnings);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
cipFields.setUniqueId(jQuery(el));
|
||||
const fieldId = cipFields.prepareId(jQuery(el).attr('data-cip-id'));
|
||||
let combination = null;
|
||||
if (el.type && el.type.toLowerCase() === 'password') {
|
||||
combination = cipFields.getCombination('password', fieldId);
|
||||
}
|
||||
else {
|
||||
combination = cipFields.getCombination('username', fieldId);
|
||||
}
|
||||
delete combination.loginId;
|
||||
|
||||
cip.fillInCredentials(combination, false, suppressWarnings);
|
||||
};
|
||||
|
||||
cip.fillInFromActiveElementPassOnly = function(suppressWarnings) {
|
||||
cip.fillInFromActiveElement = function(suppressWarnings, passOnly = false) {
|
||||
const el = document.activeElement;
|
||||
if (el.tagName.toLowerCase() !== 'input') {
|
||||
if (cipFields.combinations.length > 0) {
|
||||
|
|
@ -1435,18 +1394,20 @@ cip.fillInFromActiveElementPassOnly = function(suppressWarnings) {
|
|||
combination = cipFields.getCombination('username', fieldId);
|
||||
}
|
||||
|
||||
if (!_f(combination.password)) {
|
||||
const message = 'Unable to find a password field';
|
||||
browser.runtime.sendMessage({
|
||||
action: 'alert',
|
||||
args: [message]
|
||||
});
|
||||
return;
|
||||
if (passOnly) {
|
||||
if (!_f(combination.password)) {
|
||||
const message = 'Unable to find a password field';
|
||||
browser.runtime.sendMessage({
|
||||
action: 'alert',
|
||||
args: [message]
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
delete combination.loginId;
|
||||
|
||||
cip.fillInCredentials(combination, true, suppressWarnings);
|
||||
cip.fillInCredentials(combination, false, suppressWarnings);
|
||||
};
|
||||
|
||||
cip.fillInFromActiveElementTOTPOnly = function(suppressWarnings) {
|
||||
|
|
@ -1493,7 +1454,6 @@ cip.fillInStringFields = function(fields, StringFields, filledInFields) {
|
|||
for (let i = 0; i < fields.length; i++) {
|
||||
const $sf = _fs(fields[i]);
|
||||
if ($sf && StringFields[i]) {
|
||||
//$sf.val(StringFields[i].Value);
|
||||
cip.setValue($sf, StringFields[i].Value);
|
||||
filledInFields.list.push(fields[i]);
|
||||
$filledIn = true;
|
||||
|
|
@ -1549,7 +1509,7 @@ cip.fillIn = function(combination, onlyPassword, suppressWarnings) {
|
|||
filledIn = true;
|
||||
}
|
||||
|
||||
let list = {};
|
||||
let list = [];
|
||||
if (cip.fillInStringFields(combination.fields, cip.credentials[0].stringFields, list)) {
|
||||
cipForm.destroy(false, {'password': list.list[0], 'username': list.list[1]});
|
||||
filledIn = true;
|
||||
|
|
@ -1579,7 +1539,7 @@ cip.fillIn = function(combination, onlyPassword, suppressWarnings) {
|
|||
filledIn = true;
|
||||
}
|
||||
|
||||
let list = {};
|
||||
let list = [];
|
||||
if (cip.fillInStringFields(combination.fields, cip.credentials[combination.loginId].stringFields, list)) {
|
||||
cipForm.destroy(false, {'password': list.list[0], 'username': list.list[1]});
|
||||
filledIn = true;
|
||||
|
|
@ -1632,7 +1592,7 @@ cip.fillIn = function(combination, onlyPassword, suppressWarnings) {
|
|||
pField.data('unchanged', true);
|
||||
}
|
||||
|
||||
let list = {};
|
||||
let list = [];
|
||||
if (cip.fillInStringFields(combination.fields, valStringFields, list)) {
|
||||
cipForm.destroy(false, {'password': list.list[0], 'username': list.list[1]});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue