From f220206df579a4d0bb1c4a29927692894b6b65a1 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Wed, 27 Jul 2011 09:27:59 -0400 Subject: [PATCH] Ignore unnamed and disabled fields in util.parseForm. Closes issue #564. --- common/modules/util.jsm | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/common/modules/util.jsm b/common/modules/util.jsm index cfe9792b..7129d620 100644 --- a/common/modules/util.jsm +++ b/common/modules/util.jsm @@ -1481,17 +1481,20 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]), if (field instanceof Ci.nsIDOMHTMLInputElement && field.type == "submit") elems.push(encode(field.name, field.value)); - for (let [, elem] in iter(form.elements)) { - if (Set.has(util.editableInputs, elem.type) - || /^(?:hidden|textarea)$/.test(elem.type) - || elem.checked && /^(?:checkbox|radio)$/.test(elem.type)) - elems.push(encode(elem.name, elem.value, elem === field)); - else if (elem instanceof Ci.nsIDOMHTMLSelectElement) { - for (let [, opt] in Iterator(elem.options)) - if (opt.selected) - elems.push(encode(elem.name, opt.value)); + for (let [, elem] in iter(form.elements)) + if (elem.name && !elem.disabled) { + if (Set.has(util.editableInputs, elem.type) + || /^(?:hidden|textarea)$/.test(elem.type) + || elem.type == "submit" && elem == field + || elem.checked && /^(?:checkbox|radio)$/.test(elem.type)) + elems.push(encode(elem.name, elem.value, elem === field)); + else if (elem instanceof Ci.nsIDOMHTMLSelectElement) { + for (let [, opt] in Iterator(elem.options)) + if (opt.selected) + elems.push(encode(elem.name, opt.value)); + } } - } + if (post) return [url, elems.join('&'), charset, elems]; return [url + "?" + elems.join('&'), null, charset, elems];