Content script code cleaning. Removal of obsolete files

This commit is contained in:
varjolintu 2017-12-17 11:07:00 +02:00
parent f200fe8000
commit c9bdd79a8e
8 changed files with 20 additions and 274 deletions

View file

@ -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)
=========================

View file

@ -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/"
]
}

View file

@ -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/"
]
}

View file

@ -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"
]
}

View file

@ -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"
]
}

View file

@ -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

View file

@ -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."

View file

@ -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]});
}