Bug 946549 - Remove dead code obsoleted by bug 355063 for filling passwords on load. r=MattN

This commit is contained in:
Justin Dolske 2013-12-16 13:27:47 -08:00
parent 2d643811e9
commit 406f121ef5
10 changed files with 8 additions and 325 deletions

View File

@ -38,9 +38,6 @@ if (Services.prefs.getBoolPref("browser.tabs.remote")) {
sendAsyncMessage("contextmenu", {}, { event: event });
}, false);
} else {
addEventListener("DOMContentLoaded", function(event) {
LoginManagerContent.onContentLoaded(event);
});
addEventListener("DOMFormHasPassword", function(event) {
InsecurePasswordUtils.checkForInsecurePasswords(event.target);
LoginManagerContent.onFormPassword(event);

View File

@ -199,7 +199,6 @@ let Content = {
break;
case "DOMContentLoaded":
LoginManagerContent.onContentLoaded(aEvent);
this._maybeNotifyErrorPage();
break;

View File

@ -3368,8 +3368,6 @@ Tab.prototype = {
case "DOMContentLoaded": {
let target = aEvent.originalTarget;
LoginManagerContent.onContentLoaded(aEvent);
// ignore on frames and other documents
if (target != this.browser.contentDocument)
return;

View File

@ -3897,7 +3897,6 @@ pref("signon.rememberSignons", true);
pref("signon.autofillForms", true);
pref("signon.autologin.proxy", false);
pref("signon.debug", false);
pref("signon.useDOMFormHasPassword", true);
// Satchel (Form Manager) prefs
pref("browser.formfill.debug", false);

View File

@ -14,7 +14,6 @@ Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
var gEnabled = false, gDebug = false, gAutofillForms = true; // these mirror signon.* prefs
var gUseDOMFormHasPassword = false; // use DOMFormHasPassword event for autofill
function log(...pieces) {
function generateLogMessage(args) {
@ -72,7 +71,6 @@ var observer = {
gDebug = Services.prefs.getBoolPref("signon.debug");
gEnabled = Services.prefs.getBoolPref("signon.rememberSignons");
gAutofillForms = Services.prefs.getBoolPref("signon.autofillForms");
gUseDOMFormHasPassword = Services.prefs.getBoolPref("signon.useDOMFormHasPassword");
},
};
@ -94,32 +92,8 @@ var LoginManagerContent = {
return this.__formFillService;
},
onContentLoaded : function (event) {
// If we're using the new DOMFormHasPassword event, don't fill at pageload.
if (gUseDOMFormHasPassword)
return;
if (!event.isTrusted)
return;
if (!gEnabled)
return;
let domDoc = event.target;
// Only process things which might have HTML forms.
if (!(domDoc instanceof Ci.nsIDOMHTMLDocument))
return;
this._fillDocument(domDoc);
},
onFormPassword: function (event) {
// If we're not using the new DOMFormHasPassword event, only fill at pageload.
if (!gUseDOMFormHasPassword)
return;
if (!event.isTrusted)
return;
@ -552,91 +526,6 @@ var LoginManagerContent = {
},
/*
* _fillDocument
*
* Called when a page has loaded. For each form in the document,
* we check to see if it can be filled with a stored login.
*/
_fillDocument : function (doc) {
var forms = doc.forms;
if (!forms || forms.length == 0)
return;
var formOrigin = LoginUtils._getPasswordOrigin(doc.documentURI);
// If there are no logins for this site, bail out now.
if (!Services.logins.countLogins(formOrigin, "", null))
return;
// If we're currently displaying a master password prompt, defer
// processing this document until the user handles the prompt.
if (Services.logins.uiBusy) {
log("deferring fillDoc for", doc.documentURI);
let self = this;
let observer = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
observe: function (subject, topic, data) {
log("Got deferred fillDoc notification:", topic);
// Only run observer once.
Services.obs.removeObserver(this, "passwordmgr-crypto-login");
Services.obs.removeObserver(this, "passwordmgr-crypto-loginCanceled");
if (topic == "passwordmgr-crypto-loginCanceled")
return;
self._fillDocument(doc);
},
handleEvent : function (event) {
// Not expected to be called
}
};
// Trickyness follows: We want an observer, but don't want it to
// cause leaks. So add the observer with a weak reference, and use
// a dummy event listener (a strong reference) to keep it alive
// until the document is destroyed.
Services.obs.addObserver(observer, "passwordmgr-crypto-login", true);
Services.obs.addObserver(observer, "passwordmgr-crypto-loginCanceled", true);
doc.addEventListener("mozCleverClosureHack", observer);
return;
}
log("fillDocument processing", forms.length, "forms on", doc.documentURI);
var autofillForm = gAutofillForms && !PrivateBrowsingUtils.isWindowPrivate(doc.defaultView);
var previousActionOrigin = null;
var foundLogins = null;
// Limit the number of forms we try to fill. If there are too many
// forms, just fill some at the beginning and end of the page.
const MAX_FORMS = 40; // assumed to be an even number
var skip_from = -1, skip_to = -1;
if (forms.length > MAX_FORMS) {
log("fillDocument limiting number of forms filled to", MAX_FORMS);
let chunk_size = MAX_FORMS / 2;
skip_from = chunk_size;
skip_to = forms.length - chunk_size;
}
for (var i = 0; i < forms.length; i++) {
// Skip some in the middle of the document if there were too many.
if (i == skip_from)
i = skip_to;
var form = forms[i];
// Only the actionOrigin might be changing, so if it's the same
// as the last form on the page we can reuse the same logins.
var actionOrigin = LoginUtils._getActionOrigin(form);
if (actionOrigin != previousActionOrigin) {
foundLogins = null;
previousActionOrigin = actionOrigin;
}
log("_fillDocument processing form[", i, "]");
foundLogins = this._fillForm(form, autofillForm, false, false, foundLogins)[1];
} // foreach form
},
/*
* _fillform
*

View File

@ -54,9 +54,6 @@ support-files =
# Bug 917797 - too many intermittent failures
skip-if = true
[test_master_password_cleanup.html]
[test_maxforms_1.html]
[test_maxforms_2.html]
[test_maxforms_3.html]
[test_notifications.html]
[test_notifications_popup.html]
skip-if = os == "linux" # bug 934057

View File

@ -34,19 +34,15 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=355063
SimpleTest.finish();
}
if (SpecialPowers.getBoolPref("signon.useDOMFormHasPassword")) {
commonInit();
commonInit();
// Password Manager's own listener should always have been added first, so
// the test's listener should be called after the pwmgr's listener fills in
// a login.
//
SpecialPowers.addChromeEventListener("DOMFormHasPassword", checkForm);
window.addEventListener("load", startTest);
SimpleTest.waitForExplicitFinish();
} else {
ok(true, "Skipping test when useDOMFormHasPassword is disabled");
}
// Password Manager's own listener should always have been added first, so
// the test's listener should be called after the pwmgr's listener fills in
// a login.
//
SpecialPowers.addChromeEventListener("DOMFormHasPassword", checkForm);
window.addEventListener("load", startTest);
SimpleTest.waitForExplicitFinish();
</script>
</head>
<body>

View File

@ -1,64 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Test for Login Manager</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="pwmgr_common.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
Test limiting number of forms filled.
<p id="display"></p>
<div id="content" style="display: none"></div>
<script>
commonInit();
SimpleTest.waitForExplicitFinish();
var FORMS_TO_CREATE = 39;
function createForm(id) {
var template1 = "<form id='form"
var template2 = "'><input name='u'><input type='password' name='p'></form>\n";
return id + template1 + id + template2;
}
var formsHtml = "";
for (var i = 1; i <= FORMS_TO_CREATE; i++) {
formsHtml += createForm(i);
}
var theDiv = document.getElementById("content");
theDiv.innerHTML = formsHtml;
</script>
<pre id="test">
<script class="testbody" type="text/javascript">
/** Test for Login Manager: form fill, multiple forms. **/
function startTest() {
for (var i = 1; i <= FORMS_TO_CREATE; i++) {
if (true) {
is($_(i, "u").value, "testuser", "Checking for filled username in form " + i);
is($_(i, "p").value, "testpass", "Checking for filled password in form " + i);
} else {
is($_(i, "u").value, "", "Checking for unfilled username in form " + i);
is($_(i, "p").value, "", "Checking for unfilled password in form " + i);
}
}
SimpleTest.finish();
}
if (SpecialPowers.getBoolPref("signon.useDOMFormHasPassword")) {
info("skipping test when signon.useDOMFormHasPassword is enabled");
SimpleTest.finish();
} else {
window.onload = startTest;
}
</script>
</pre>
</body>
</html>

View File

@ -1,64 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Test for Login Manager</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="pwmgr_common.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
Test limiting number of forms filled.
<p id="display"></p>
<div id="content" style="display: none"></div>
<script>
commonInit();
SimpleTest.waitForExplicitFinish();
var FORMS_TO_CREATE = 40;
function createForm(id) {
var template1 = "<form id='form"
var template2 = "'><input name='u'><input type='password' name='p'></form>\n";
return id + template1 + id + template2;
}
var formsHtml = "";
for (var i = 1; i <= FORMS_TO_CREATE; i++) {
formsHtml += createForm(i);
}
var theDiv = document.getElementById("content");
theDiv.innerHTML = formsHtml;
</script>
<pre id="test">
<script class="testbody" type="text/javascript">
/** Test for Login Manager: form fill, multiple forms. **/
function startTest() {
for (var i = 1; i <= FORMS_TO_CREATE; i++) {
if (true) {
is($_(i, "u").value, "testuser", "Checking for filled username in form " + i);
is($_(i, "p").value, "testpass", "Checking for filled password in form " + i);
} else {
is($_(i, "u").value, "", "Checking for unfilled username in form " + i);
is($_(i, "p").value, "", "Checking for unfilled password in form " + i);
}
}
SimpleTest.finish();
}
if (SpecialPowers.getBoolPref("signon.useDOMFormHasPassword")) {
info("skipping test when signon.useDOMFormHasPassword is enabled");
SimpleTest.finish();
} else {
window.onload = startTest;
}
</script>
</pre>
</body>
</html>

View File

@ -1,64 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Test for Login Manager</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="pwmgr_common.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
Test limiting number of forms filled.
<p id="display"></p>
<div id="content" style="display: none"></div>
<script>
commonInit();
SimpleTest.waitForExplicitFinish();
var FORMS_TO_CREATE = 41;
function createForm(id) {
var template1 = "<form id='form"
var template2 = "'><input name='u'><input type='password' name='p'></form>\n";
return id + template1 + id + template2;
}
var formsHtml = "";
for (var i = 1; i <= FORMS_TO_CREATE; i++) {
formsHtml += createForm(i);
}
var theDiv = document.getElementById("content");
theDiv.innerHTML = formsHtml;
</script>
<pre id="test">
<script class="testbody" type="text/javascript">
/** Test for Login Manager: form fill, multiple forms. **/
function startTest() {
for (var i = 1; i <= FORMS_TO_CREATE; i++) {
if (i != 21) {
is($_(i, "u").value, "testuser", "Checking for filled username in form " + i);
is($_(i, "p").value, "testpass", "Checking for filled password in form " + i);
} else {
is($_(i, "u").value, "", "Checking for unfilled username in form " + i);
is($_(i, "p").value, "", "Checking for unfilled password in form " + i);
}
}
SimpleTest.finish();
}
if (SpecialPowers.getBoolPref("signon.useDOMFormHasPassword")) {
info("skipping test when signon.useDOMFormHasPassword is enabled");
SimpleTest.finish();
} else {
window.onload = startTest;
}
</script>
</pre>
</body>
</html>