mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-05 23:07:31 +09:00
[Pale-Moon] Issue #1717 - Padlock Improvements
This commit is contained in:
parent
41ed98b736
commit
02f79388b4
1 changed files with 53 additions and 22 deletions
|
|
@ -22,50 +22,84 @@ var padlock_PadLock =
|
||||||
const wpl_security_bits = wpl.STATE_IS_SECURE |
|
const wpl_security_bits = wpl.STATE_IS_SECURE |
|
||||||
wpl.STATE_IS_BROKEN |
|
wpl.STATE_IS_BROKEN |
|
||||||
wpl.STATE_IS_INSECURE |
|
wpl.STATE_IS_INSECURE |
|
||||||
wpl.STATE_IDENTITY_EV_TOPLEVEL |
|
wpl.STATE_LOADED_MIXED_ACTIVE_CONTENT |
|
||||||
wpl.STATE_SECURE_HIGH |
|
wpl.STATE_LOADED_MIXED_DISPLAY_CONTENT |
|
||||||
wpl.STATE_SECURE_MED |
|
wpl.STATE_IDENTITY_EV_TOPLEVEL;
|
||||||
wpl.STATE_SECURE_LOW;
|
|
||||||
var level;
|
var level;
|
||||||
var is_insecure;
|
|
||||||
var highlight_urlbar = false;
|
var highlight_urlbar = false;
|
||||||
|
|
||||||
switch (aState & wpl_security_bits) {
|
switch (aState & wpl_security_bits) {
|
||||||
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_HIGH | wpl.STATE_IDENTITY_EV_TOPLEVEL:
|
case wpl.STATE_IS_SECURE | wpl.STATE_IDENTITY_EV_TOPLEVEL:
|
||||||
level = "ev";
|
level = "ev";
|
||||||
is_insecure = "";
|
|
||||||
highlight_urlbar = true;
|
highlight_urlbar = true;
|
||||||
break;
|
break;
|
||||||
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_HIGH:
|
case wpl.STATE_IS_SECURE:
|
||||||
|
case wpl.STATE_IS_SECURE |
|
||||||
|
wpl.STATE_LOADED_MIXED_DISPLAY_CONTENT:
|
||||||
level = "high";
|
level = "high";
|
||||||
is_insecure = "";
|
|
||||||
highlight_urlbar = true;
|
highlight_urlbar = true;
|
||||||
break;
|
break;
|
||||||
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_MED:
|
case wpl.STATE_IS_SECURE |
|
||||||
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_LOW:
|
wpl.STATE_LOADED_MIXED_ACTIVE_CONTENT:
|
||||||
level = "low";
|
level = "low";
|
||||||
is_insecure = "insecure";
|
|
||||||
break;
|
|
||||||
case wpl.STATE_IS_BROKEN | wpl.STATE_SECURE_LOW:
|
|
||||||
level = "mixed";
|
|
||||||
is_insecure = "insecure";
|
|
||||||
highlight_urlbar = true;
|
highlight_urlbar = true;
|
||||||
break;
|
break;
|
||||||
|
case wpl.STATE_IS_SECURE | wpl.STATE_IDENTITY_EV_TOPLEVEL |
|
||||||
|
wpl.STATE_LOADED_MIXED_ACTIVE_CONTENT |
|
||||||
|
wpl.STATE_LOADED_MIXED_DISPLAY_CONTENT:
|
||||||
|
case wpl.STATE_IS_SECURE | wpl.STATE_IDENTITY_EV_TOPLEVEL |
|
||||||
|
wpl.STATE_LOADED_MIXED_ACTIVE_CONTENT:
|
||||||
|
case wpl.STATE_IS_SECURE | wpl.STATE_IDENTITY_EV_TOPLEVEL |
|
||||||
|
wpl.STATE_LOADED_MIXED_DISPLAY_CONTENT:
|
||||||
case wpl.STATE_IS_BROKEN:
|
case wpl.STATE_IS_BROKEN:
|
||||||
level = "broken";
|
level = "broken";
|
||||||
is_insecure = "insecure";
|
|
||||||
highlight_urlbar = true;
|
highlight_urlbar = true;
|
||||||
break;
|
break;
|
||||||
default: // should not be reached
|
default: // should not be reached
|
||||||
level = null;
|
level = null;
|
||||||
is_insecure = "insecure";
|
}
|
||||||
|
|
||||||
|
if (level != null && level != "broken") {
|
||||||
|
var secUI = gBrowser.securityUI;
|
||||||
|
//if we wanted, we could use secUI.state instead of aState above?
|
||||||
|
var secState = secUI.QueryInterface(Ci.nsISSLStatusProvider).SSLStatus;
|
||||||
|
if (secState) {
|
||||||
|
secState.QueryInterface(Ci.nsISSLStatus);
|
||||||
|
var proto = secState.protocolVersion;
|
||||||
|
if (proto == Ci.nsISSLStatus.SSL_VERSION_3) {
|
||||||
|
level = "broken";
|
||||||
|
} else if (proto == Ci.nsISSLStatus.TLS_VERSION_1 ||
|
||||||
|
proto == Ci.nsISSLStatus.TLS_VERSION_1_1) {
|
||||||
|
level = "low";
|
||||||
|
}
|
||||||
|
if (level != "broken") {
|
||||||
|
var aCipher = secState.cipherSuite;
|
||||||
|
if (aCipher.indexOf("_EXPORT") > -1) {
|
||||||
|
level = "broken";
|
||||||
|
} else if (aCipher.indexOf("_RC2_") > -1) {
|
||||||
|
level = "broken";
|
||||||
|
} else if (aCipher.indexOf("_RC4_") > -1) {
|
||||||
|
if (aCipher.indexOf("_MD5") > -1) {
|
||||||
|
level = "broken";
|
||||||
|
} else if (aCipher.indexOf("_SHA") > -1) {
|
||||||
|
level = "low";
|
||||||
|
}
|
||||||
|
} else if (aCipher.indexOf("TLS_DHE_RSA_WITH_AES") > -1) {
|
||||||
|
level = "low";
|
||||||
|
} else if (aCipher.indexOf("TLS_RSA_WITH_AES_128_") > -1) {
|
||||||
|
level = "low";
|
||||||
|
} else if (aCipher.indexOf("_3DES_") > -1) {
|
||||||
|
level = "low";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var proto = gBrowser.contentWindow.location.protocol;
|
var proto = gBrowser.contentWindow.location.protocol;
|
||||||
if (proto == "about:" || proto == "chrome:" || proto == "file:" ) {
|
if (proto == "about:" || proto == "chrome:" || proto == "file:" ) {
|
||||||
// do not warn when using local protocols
|
// do not warn when using local protocols
|
||||||
is_insecure = false;
|
highlight_urlbar = false;
|
||||||
}
|
}
|
||||||
} catch(ex) {}
|
} catch(ex) {}
|
||||||
|
|
||||||
|
|
@ -111,9 +145,6 @@ var padlock_PadLock =
|
||||||
case "low":
|
case "low":
|
||||||
sectooltip = "Weak security";
|
sectooltip = "Weak security";
|
||||||
break;
|
break;
|
||||||
case "mixed":
|
|
||||||
sectooltip = "Mixed mode (partially encrypted)";
|
|
||||||
break;
|
|
||||||
case "broken":
|
case "broken":
|
||||||
sectooltip = "Not secure";
|
sectooltip = "Not secure";
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue