Synchronize firefox webextension code
This commit is contained in:
@@ -56,23 +56,35 @@ function try_get_name(fields, type_filters, match)
|
||||
for (var i=0; i<fields.length; i++)
|
||||
{
|
||||
var field = fields[i];
|
||||
var to_test = !match;
|
||||
|
||||
for (var a=0; a<type_filters.length; a++)
|
||||
{
|
||||
if ((match && field.getAttribute("type") == type_filters[a]) ||
|
||||
(!match && field.getAttribute("type") != type_filters[a]))
|
||||
{
|
||||
if (field.hasAttribute("name") && field.value != "")
|
||||
{
|
||||
name = field.getAttribute("name");
|
||||
// Subset of common user field
|
||||
if (name == "user") user = field.value;
|
||||
else if (name == "usr") user = field.value;
|
||||
else if (name == "username") user = field.value;
|
||||
else if (name == "login") user = field.value;
|
||||
if (match && field.getAttribute("type") == type_filters[a])
|
||||
{
|
||||
to_test = true;
|
||||
break;
|
||||
}
|
||||
|
||||
_add_name(all_logins, field.value);
|
||||
}
|
||||
if(!match && field.getAttribute("type") == type_filters[a])
|
||||
{
|
||||
to_test = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (to_test)
|
||||
{
|
||||
if (field.hasAttribute("name") && field.value != "")
|
||||
{
|
||||
name = field.getAttribute("name");
|
||||
// Subset of common user field
|
||||
if (name == "user") user = field.value;
|
||||
else if (name == "usr") user = field.value;
|
||||
else if (name == "username") user = field.value;
|
||||
else if (name == "login") user = field.value;
|
||||
|
||||
_add_name(all_logins, field.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -83,28 +95,59 @@ function try_get_name(fields, type_filters, match)
|
||||
return all_logins;
|
||||
}
|
||||
|
||||
function get_logins(form, all_logins)
|
||||
{
|
||||
var fields = form.getElementsByTagName("input");
|
||||
var logins = null;
|
||||
|
||||
debug("get_logins");
|
||||
|
||||
var type_filters = new Array();
|
||||
|
||||
// Get all <input type="text"> && <input type="email">
|
||||
type_filters.push("text");
|
||||
type_filters.push("email");
|
||||
if (all_logins)
|
||||
logins = try_get_name(fields, type_filters, true);
|
||||
else
|
||||
{
|
||||
// Get all other fields except text, email and password
|
||||
type_filters.push("password");
|
||||
type_filters.push("hidden");
|
||||
logins = try_get_name(fields, type_filters, false);
|
||||
}
|
||||
|
||||
return logins;
|
||||
}
|
||||
|
||||
function on_focus(e)
|
||||
{
|
||||
if (gpass_enabled)
|
||||
if (!gpass_enabled)
|
||||
return;
|
||||
|
||||
var logins = get_logins(this.form, true);
|
||||
var all_logins = get_logins(this.form, false);
|
||||
|
||||
if (logins.length || all_logins.length)
|
||||
{
|
||||
parameters = {
|
||||
parameters = {
|
||||
type:"update_icon",
|
||||
icon_id:GPASS_ICON.ACTIVATED,
|
||||
};
|
||||
browser.runtime.sendMessage(parameters, {});
|
||||
};
|
||||
browser.runtime.sendMessage(parameters, {});
|
||||
}
|
||||
}
|
||||
|
||||
function on_blur(e)
|
||||
{
|
||||
if (gpass_enabled)
|
||||
{
|
||||
parameters = {
|
||||
type:"update_icon",
|
||||
icon_id:GPASS_ICON.NORMAL,
|
||||
};
|
||||
browser.runtime.sendMessage(parameters, {});
|
||||
}
|
||||
if (!gpass_enabled)
|
||||
return;
|
||||
|
||||
parameters = {
|
||||
type:"update_icon",
|
||||
icon_id:GPASS_ICON.NORMAL,
|
||||
};
|
||||
browser.runtime.sendMessage(parameters, {});
|
||||
}
|
||||
|
||||
function on_sumbit(e)
|
||||
@@ -116,15 +159,8 @@ function on_sumbit(e)
|
||||
|
||||
debug("on_submit");
|
||||
|
||||
type_filters = new Array();
|
||||
// Get all <input type="text"> && <input type="email">
|
||||
type_filters.push("text");
|
||||
type_filters.push("email");
|
||||
logins = try_get_name(fields, type_filters, true);
|
||||
|
||||
// Get all other fields except text, email and password
|
||||
type_filters.push("password");
|
||||
all_logins = try_get_name(fields, type_filters, false);
|
||||
logins = get_logins(form, true);
|
||||
all_logins = get_logins(form, false);
|
||||
|
||||
if (!logins.length)
|
||||
logins = all_logins;
|
||||
@@ -259,8 +295,6 @@ function unblock_all_forms()
|
||||
{
|
||||
debug("unblock all forms");
|
||||
|
||||
on_blur(null);
|
||||
|
||||
for(var i=0; i<managed_forms.length; i++)
|
||||
{
|
||||
var form = managed_forms[i];
|
||||
|
@@ -22,10 +22,6 @@ var DEBUG = false;
|
||||
SERVER = {OK : 0, FAILED : 1, RESTART_REQUEST : 2};
|
||||
GPASS_ICON = {NORMAL:0, DISABLED:1, ACTIVATED:2};
|
||||
|
||||
var default_preferences = {"pbkdf2_level": 1000,
|
||||
"account_url": "https://gpass-demo.soutade.fr/demo",
|
||||
"crypto_v1_compatible": true};
|
||||
|
||||
var browser = browser || chrome;
|
||||
var crypto = crypto || window.crypto;
|
||||
|
||||
|
Reference in New Issue
Block a user